Files
mnote/kmind-plugin/app/js/1.js
T

13312 lines
7.3 MiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[1],{
/***/ "../simple-mind-map-plugin-checkbox/icons.js":
/*!***************************************************!*\
!*** ../simple-mind-map-plugin-checkbox/icons.js ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nconst checked = `<svg viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"1273\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"48\" height=\"48\"><path d=\"M813.056 107.008H204.8a102.4 102.4 0 0 0-102.4 102.4V819.2a102.4 102.4 0 0 0 102.4 102.4h609.28a102.4 102.4 0 0 0 102.4-102.4V208.896a102.4 102.4 0 0 0-103.424-101.888z m-31.744 240.128L413.696 716.8a25.6 25.6 0 0 1-17.92 7.68 25.6 25.6 0 0 1-18.944-7.68L235.008 556.544a25.6 25.6 0 1 1 37.888-33.792L396.288 660.48l349.184-349.184a25.6 25.6 0 1 1 35.84 35.84z\" p-id=\"1274\"></path></svg>`;\nconst unChecked = `<svg viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"1015\" width=\"48\" height=\"48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path d=\"M768 128H256c-70.4 0-128 57.6-128 128v512c0 70.4 57.6 128 128 128h512c70.4 0 128-57.6 128-128V256c0-70.4-57.6-128-128-128z m64 640c0 35.2-28.8 64-64 64H256c-35.2 0-64-28.8-64-64V256c0-35.2 28.8-64 64-64h512c35.2 0 64 28.8 64 64v512z\" p-id=\"1016\"></path></svg>`;\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n checked,\n unChecked\n});\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-checkbox/icons.js?");
/***/ }),
/***/ "../simple-mind-map-plugin-checkbox/index.js":
/*!***************************************************!*\
!*** ../simple-mind-map-plugin-checkbox/index.js ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"../simple-mind-map-plugin-checkbox/utils.js\");\n/* harmony import */ var _icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./icons */ \"../simple-mind-map-plugin-checkbox/icons.js\");\n\n\n\n// 待办插件\nclass Checkbox {\n // 构造函数\n constructor(opt) {\n this.mindMap = opt.mindMap;\n this.pluginOpt = {\n width: 20,\n // 图标大小\n height: 20,\n checkedIcon: _icons__WEBPACK_IMPORTED_MODULE_1__[\"default\"].checked,\n // 待办已完成的图标,svg字符串\n unCheckedIcon: _icons__WEBPACK_IMPORTED_MODULE_1__[\"default\"].unChecked,\n // 待办未完成的图标,svg字符串,需要注意去除svg字符串中的fill属性,否则颜色可能不生效\n colorIsFollowNode: true,\n // 图标颜色是否跟随节点文本的颜色\n color: '#3f9cfc',\n // 如果colorIsFollowNode设置为false时会使用该颜色\n ...(opt.pluginOpt || {})\n };\n this.name = 'checkbox'; // 库前置内容类型名称\n this.nodeKeyName = 'checkbox'; // 保存到节点实例选项中的字段名称\n this.nodeDataName = 'checkbox'; // 保存到节点数据中的字段名称\n this.bindEvent();\n }\n bindEvent() {\n this.mindMap.nodeInnerPrefixList.unshift({\n name: this.name,\n // 创建节点的显示内容:节点元素、宽高\n createContent: node => {\n return this.createCheckboxContent(node);\n }\n });\n this.setCheckbox = this.setCheckbox.bind(this);\n this.mindMap.command.add('SET_CHECKBOX', this.setCheckbox);\n }\n unBindEvent() {\n const index = this.mindMap.nodeInnerPrefixList.findIndex(item => {\n return item.name === this.name;\n });\n if (index !== -1) {\n this.mindMap.nodeInnerPrefixList.splice(index, 1);\n }\n this.mindMap.command.remove('SET_CHECKBOX', this.setCheckbox);\n }\n\n // 给节点设置待办数据\n /*\n checkboxData: {\n done: true\n }\n */\n setCheckbox(appointNodes, checkboxData) {\n appointNodes = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[\"formatDataToArray\"])(appointNodes);\n const activeNodeList = this.mindMap.renderer.activeNodeList;\n if (activeNodeList.length <= 0 && appointNodes.length <= 0) {\n return;\n }\n let nodeList = appointNodes.length > 0 ? appointNodes : activeNodeList;\n nodeList = nodeList.filter(node => {\n return !node.isGeneralization;\n });\n nodeList.forEach(node => {\n this.updateNodeData(node, checkboxData);\n });\n this.mindMap.render();\n }\n\n // 更新节点的待办数据\n updateNodeData(node, checkboxData) {\n let newCheckbox = null;\n if (checkboxData) {\n const oldCheckbox = node.getData(this.nodeDataName) || {};\n newCheckbox = {\n ...oldCheckbox,\n ...checkboxData\n };\n }\n this.mindMap.execCommand('SET_NODE_DATA', node, {\n [this.nodeDataName]: newCheckbox\n });\n }\n\n // 创建待办图标元素\n createIconNode({\n node,\n done,\n iconSize\n }) {\n const {\n checkedIcon,\n unCheckedIcon,\n colorIsFollowNode,\n color\n } = this.pluginOpt;\n const {\n SVG\n } = node.getSvgObjects();\n const iconNode = SVG(done ? checkedIcon : unCheckedIcon).size(...iconSize);\n if (colorIsFollowNode) {\n node.style.iconNode(iconNode);\n } else {\n iconNode.attr({\n fill: color\n });\n }\n return iconNode;\n }\n\n // 创建节点待办内容\n createCheckboxContent(node) {\n const checkboxData = node.getData(this.nodeDataName);\n if (!checkboxData) return null;\n const {\n width,\n height\n } = this.pluginOpt;\n const {\n SVG,\n Rect\n } = node.getSvgObjects();\n const checkboxNode = new SVG().attr('cursor', 'pointer').size(width, height);\n // 透明的层,用来作为鼠标区域\n checkboxNode.add(new Rect().size(width, height).fill({\n color: 'transparent'\n }));\n let iconNode = this.createIconNode({\n node,\n done: checkboxData.done,\n iconSize: [width, height]\n });\n checkboxNode.add(iconNode);\n checkboxNode.on('click', () => {\n const oldCheckbox = node.getData(this.nodeDataName) || {};\n const newDone = !oldCheckbox.done;\n this.updateNodeData(node, {\n done: newDone\n });\n iconNode.remove();\n iconNode = this.createIconNode({\n node,\n done: newDone,\n iconSize: [width, height]\n });\n checkboxNode.add(iconNode);\n });\n return {\n node: checkboxNode,\n width,\n height\n };\n }\n\n // 插件被移除前做的事情\n beforePluginRemove() {\n this.unBindEvent();\n }\n\n // 插件被卸载前做的事情\n beforePluginDestroy() {\n this.unBindEvent();\n }\n}\nCheckbox.instanceName = 'checkbox';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Checkbox);\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-checkbox/index.js?");
/***/ }),
/***/ "../simple-mind-map-plugin-checkbox/utils.js":
/*!***************************************************!*\
!*** ../simple-mind-map-plugin-checkbox/utils.js ***!
\***************************************************/
/*! exports provided: formatDataToArray */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"formatDataToArray\", function() { return formatDataToArray; });\n// 传入一个数据,如果该数据是数组,那么返回该数组,否则返回一个以该数据为成员的数组\nconst formatDataToArray = data => {\n if (!data) return [];\n return Array.isArray(data) ? data : [data];\n};\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-checkbox/utils.js?");
/***/ }),
/***/ "../simple-mind-map-plugin-freemind/freemindTo.js":
/*!********************************************************!*\
!*** ../simple-mind-map-plugin-freemind/freemindTo.js ***!
\********************************************************/
/*! exports provided: freemindToSmm */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"freemindToSmm\", function() { return freemindToSmm; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var xml_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! xml-js */ \"../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/index.js\");\n/* harmony import */ var xml_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(xml_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \"../simple-mind-map-plugin-freemind/utils.js\");\n\n\n\n\n// mm转换为smm格式\n// 转换时只支持保留节点文本、备注、超链接和一定的样式。\n// 关于图片:mm数据保存的是图片在电脑本地的路径,所以js是无法读取的。考虑到客户端场景可以读取,所以提供了transformImg选项来自定义图片加载的方法,如果没提供,那么默认是忽略图片的。\n// 关于图标:图标是各个思维导图的私有协议,所以无法保留。\nconst freemindToSmm = async (mm, opt) => {\n const {\n transformImg,\n withStyle\n } = opt || {};\n const jsonStr = xml_js__WEBPACK_IMPORTED_MODULE_1___default.a.xml2json(mm);\n const json = JSON.parse(jsonStr);\n const res = {\n children: []\n };\n const waitLoadImageList = [];\n const walk = (mm, smm) => {\n const {\n elements,\n attributes,\n name\n } = mm;\n let node = null;\n // 节点类型\n if (name === 'node') {\n const richcontent = getElementByName(elements, 'richcontent');\n const {\n LINK,\n TEXT\n } = attributes;\n node = {\n data: {\n text: TEXT || ''\n },\n children: []\n };\n // 样式\n if (withStyle) {\n addMmStyle({\n node,\n attributes,\n elements\n });\n }\n // 超链接\n if (LINK) {\n node.data.hyperlink = LINK;\n }\n if (richcontent) {\n const content = getElementByName(richcontent.elements, 'html');\n const body = getElementByName(content.elements, 'body');\n const {\n html,\n imgUrl\n } = richContentToHtml(body);\n // 图片\n if (imgUrl && transformImg) {\n // 处理异步逻辑\n let resolve = null;\n const promise = new Promise(_resolve => {\n resolve = _resolve;\n });\n waitLoadImageList.push(promise);\n transformImg(imgUrl).then(async res => {\n if (res && res.url) {\n let {\n url,\n width,\n height\n } = res;\n node.data.image = url;\n if (width === undefined || height === undefined) {\n try {\n const size = await Object(_utils__WEBPACK_IMPORTED_MODULE_2__[\"getImageSize\"])(url);\n width = size.width;\n height = size.height;\n } catch (err) {\n console.log(err);\n }\n }\n node.data.imageSize = {\n width,\n height\n };\n }\n resolve();\n }).catch(err => {\n console.log(err);\n resolve();\n });\n }\n if (richcontent.attributes.TYPE === 'NODE') {\n // 富文本\n node.data.richText = true;\n node.data.text = html;\n } else if (richcontent.attributes.TYPE === 'NOTE') {\n // 备注\n node.data.note = Object(_utils__WEBPACK_IMPORTED_MODULE_2__[\"nodeRichTextToTextWithWrap\"])(html);\n }\n }\n smm.children.push(node);\n }\n // 子节点\n if (elements && elements.length > 0) {\n elements.forEach(item => {\n walk(item, node || smm);\n });\n }\n };\n walk(json, res);\n if (waitLoadImageList.length > 0) {\n await Promise.all(waitLoadImageList);\n }\n return res.children[0];\n};\n\n// 应用mm的样式\nconst addMmStyle = ({\n node,\n attributes,\n elements\n}) => {\n if (!elements) return;\n const {\n COLOR,\n BACKGROUND_COLOR\n } = attributes;\n const edge = getElementByName(elements, 'edge');\n const font = getElementByName(elements, 'font');\n if (COLOR) {\n node.data.color = COLOR;\n }\n if (BACKGROUND_COLOR) {\n node.data.fillColor = BACKGROUND_COLOR;\n }\n if (edge) {\n const {\n COLOR,\n WIDTH\n } = edge.attributes || {};\n if (COLOR) {\n node.data.lineColor = COLOR;\n }\n if (WIDTH) {\n node.data.lineWidth = Number(WIDTH);\n }\n }\n if (font) {\n const {\n BOLD,\n NAME,\n SIZE,\n ITALIC\n } = font.attributes || {};\n if (BOLD && BOLD === 'true') {\n node.data.fontWeight = 'bold';\n }\n if (NAME) {\n node.data.fontFamily = NAME;\n }\n if (SIZE) {\n node.data.fontSize = Number(SIZE);\n }\n if (ITALIC) {\n node.data.fontStyle = 'italic';\n }\n }\n};\n\n// 根据名称获取指定元素数据\nconst getElementByName = (elements, name) => {\n return (elements || []).find(item => {\n return item.name === name;\n });\n};\n\n// 富文本树节点转html字符串\nconst richContentToHtml = body => {\n let imgUrl = '';\n const walk = node => {\n const {\n type,\n name,\n elements,\n text,\n attributes\n } = node;\n let str = '';\n let tagName = '';\n if (type === 'element') {\n if (name === 'img') {\n imgUrl = attributes.src;\n } else {\n tagName = name === 'body' ? 'div' : name;\n let props = '';\n if (attributes) {\n Object.keys(attributes).forEach(key => {\n props += `${key}=\"${attributes[key]}\"`;\n });\n }\n str += `<${tagName} ${props}>`;\n }\n } else if (type === 'text') {\n str += text;\n }\n if (elements && elements.length > 0) {\n elements.forEach(item => {\n str += walk(item);\n });\n }\n if (tagName) {\n str += `</${tagName}>`;\n }\n return str;\n };\n const html = walk(body);\n return {\n html,\n imgUrl\n };\n};\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-freemind/freemindTo.js?");
/***/ }),
/***/ "../simple-mind-map-plugin-freemind/index.js":
/*!***************************************************!*\
!*** ../simple-mind-map-plugin-freemind/index.js ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _toFreemind__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toFreemind */ \"../simple-mind-map-plugin-freemind/toFreemind.js\");\n/* harmony import */ var _freemindTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./freemindTo */ \"../simple-mind-map-plugin-freemind/freemindTo.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \"../simple-mind-map-plugin-freemind/utils.js\");\n\n\n\nasync function mm(name, opt) {\n const data = this.mindMap.getData();\n const content = Object(_toFreemind__WEBPACK_IMPORTED_MODULE_0__[\"smmToFreemind\"])(data, opt);\n const blob = new Blob([content]);\n const res = await Object(_utils__WEBPACK_IMPORTED_MODULE_2__[\"readBlob\"])(blob);\n return res;\n}\n\n// Freemind软件格式导入导出插件\nclass Freemind {\n constructor(opt) {\n this.opt = opt;\n this.mindMap = opt.mindMap;\n if (this.mindMap.doExport) {\n Object.getPrototypeOf(this.mindMap.doExport).mm = mm.bind(this.mindMap.doExport);\n }\n }\n onRemove() {\n if (this.mindMap.doExport) {\n Object.getPrototypeOf(this.mindMap.doExport).mm = null;\n }\n }\n\n // 插件被移除前做的事情\n beforePluginRemove() {\n this.onRemove();\n }\n\n // 插件被卸载前做的事情\n beforePluginDestroy() {\n this.onRemove();\n }\n}\nFreemind.smmToFreemind = _toFreemind__WEBPACK_IMPORTED_MODULE_0__[\"smmToFreemind\"];\nFreemind.freemindToSmm = _freemindTo__WEBPACK_IMPORTED_MODULE_1__[\"freemindToSmm\"];\nFreemind.instanceName = 'freemind';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Freemind);\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-freemind/index.js?");
/***/ }),
/***/ "../simple-mind-map-plugin-freemind/node_modules/sax/lib/sax.js":
/*!**********************************************************************!*\
!*** ../simple-mind-map-plugin-freemind/node_modules/sax/lib/sax.js ***!
\**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/* WEBPACK VAR INJECTION */(function(Buffer) {;(function (sax) { // wrapper for non-node envs\n sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }\n sax.SAXParser = SAXParser\n sax.SAXStream = SAXStream\n sax.createStream = createStream\n\n // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.\n // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),\n // since that's the earliest that a buffer overrun could occur. This way, checks are\n // as rare as required, but as often as necessary to ensure never crossing this bound.\n // Furthermore, buffers are only tested at most once per write(), so passing a very\n // large string into write() might have undesirable effects, but this is manageable by\n // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme\n // edge case, result in creating at most one complete copy of the string passed in.\n // Set to Infinity to have unlimited buffers.\n sax.MAX_BUFFER_LENGTH = 64 * 1024\n\n var buffers = [\n 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',\n 'procInstName', 'procInstBody', 'entity', 'attribName',\n 'attribValue', 'cdata', 'script'\n ]\n\n sax.EVENTS = [\n 'text',\n 'processinginstruction',\n 'sgmldeclaration',\n 'doctype',\n 'comment',\n 'opentagstart',\n 'attribute',\n 'opentag',\n 'closetag',\n 'opencdata',\n 'cdata',\n 'closecdata',\n 'error',\n 'end',\n 'ready',\n 'script',\n 'opennamespace',\n 'closenamespace'\n ]\n\n function SAXParser (strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt)\n }\n\n var parser = this\n clearBuffers(parser)\n parser.q = parser.c = ''\n parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH\n parser.opt = opt || {}\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags\n parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase'\n parser.tags = []\n parser.closed = parser.closedRoot = parser.sawRoot = false\n parser.tag = parser.error = null\n parser.strict = !!strict\n parser.noscript = !!(strict || parser.opt.noscript)\n parser.state = S.BEGIN\n parser.strictEntities = parser.opt.strictEntities\n parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES)\n parser.attribList = []\n\n // namespaces form a prototype chain.\n // it always points at the current tag,\n // which protos to its parent tag.\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS)\n }\n\n // disallow unquoted attribute values if not otherwise configured\n // and strict mode is true\n if (parser.opt.unquotedAttributeValues === undefined) {\n parser.opt.unquotedAttributeValues = !strict;\n }\n\n // mostly just for error reporting\n parser.trackPosition = parser.opt.position !== false\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0\n }\n emit(parser, 'onready')\n }\n\n if (!Object.create) {\n Object.create = function (o) {\n function F () {}\n F.prototype = o\n var newf = new F()\n return newf\n }\n }\n\n if (!Object.keys) {\n Object.keys = function (o) {\n var a = []\n for (var i in o) if (o.hasOwnProperty(i)) a.push(i)\n return a\n }\n }\n\n function checkBufferLength (parser) {\n var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)\n var maxActual = 0\n for (var i = 0, l = buffers.length; i < l; i++) {\n var len = parser[buffers[i]].length\n if (len > maxAllowed) {\n // Text/cdata nodes can get big, and since they're buffered,\n // we can get here under normal conditions.\n // Avoid issues by emitting the text node now,\n // so at least it won't get any bigger.\n switch (buffers[i]) {\n case 'textNode':\n closeText(parser)\n break\n\n case 'cdata':\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n break\n\n case 'script':\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n break\n\n default:\n error(parser, 'Max buffer length exceeded: ' + buffers[i])\n }\n }\n maxActual = Math.max(maxActual, len)\n }\n // schedule the next check for the earliest possible buffer overrun.\n var m = sax.MAX_BUFFER_LENGTH - maxActual\n parser.bufferCheckPosition = m + parser.position\n }\n\n function clearBuffers (parser) {\n for (var i = 0, l = buffers.length; i < l; i++) {\n parser[buffers[i]] = ''\n }\n }\n\n function flushBuffers (parser) {\n closeText(parser)\n if (parser.cdata !== '') {\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n }\n if (parser.script !== '') {\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n }\n }\n\n SAXParser.prototype = {\n end: function () { end(this) },\n write: write,\n resume: function () { this.error = null; return this },\n close: function () { return this.write(null) },\n flush: function () { flushBuffers(this) }\n }\n\n var Stream\n try {\n Stream = __webpack_require__(/*! stream */ \"./node_modules/stream-browserify/index.js\").Stream\n } catch (ex) {\n Stream = function () {}\n }\n if (!Stream) Stream = function () {}\n\n var streamWraps = sax.EVENTS.filter(function (ev) {\n return ev !== 'error' && ev !== 'end'\n })\n\n function createStream (strict, opt) {\n return new SAXStream(strict, opt)\n }\n\n function SAXStream (strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt)\n }\n\n Stream.apply(this)\n\n this._parser = new SAXParser(strict, opt)\n this.writable = true\n this.readable = true\n\n var me = this\n\n this._parser.onend = function () {\n me.emit('end')\n }\n\n this._parser.onerror = function (er) {\n me.emit('error', er)\n\n // if didn't throw, then means error was handled.\n // go ahead and clear error, so we can write again.\n me._parser.error = null\n }\n\n this._decoder = null\n\n streamWraps.forEach(function (ev) {\n Object.defineProperty(me, 'on' + ev, {\n get: function () {\n return me._parser['on' + ev]\n },\n set: function (h) {\n if (!h) {\n me.removeAllListeners(ev)\n me._parser['on' + ev] = h\n return h\n }\n me.on(ev, h)\n },\n enumerable: true,\n configurable: false\n })\n })\n }\n\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream\n }\n })\n\n SAXStream.prototype.write = function (data) {\n if (typeof Buffer === 'function' &&\n typeof Buffer.isBuffer === 'function' &&\n Buffer.isBuffer(data)) {\n if (!this._decoder) {\n var SD = __webpack_require__(/*! string_decoder */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder\n this._decoder = new SD('utf8')\n }\n data = this._decoder.write(data)\n }\n\n this._parser.write(data.toString())\n this.emit('data', data)\n return true\n }\n\n SAXStream.prototype.end = function (chunk) {\n if (chunk && chunk.length) {\n this.write(chunk)\n }\n this._parser.end()\n return true\n }\n\n SAXStream.prototype.on = function (ev, handler) {\n var me = this\n if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser['on' + ev] = function () {\n var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)\n args.splice(0, 0, ev)\n me.emit.apply(me, args)\n }\n }\n\n return Stream.prototype.on.call(me, ev, handler)\n }\n\n // this really needs to be replaced with character classes.\n // XML allows all manner of ridiculous numbers and digits.\n var CDATA = '[CDATA['\n var DOCTYPE = 'DOCTYPE'\n var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace'\n var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/'\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }\n\n // http://www.w3.org/TR/REC-xml/#NT-NameStartChar\n // This implementation works on strings, a single character at a time\n // as such, it cannot ever support astral-plane characters (10000-EFFFF)\n // without a significant breaking change to either this parser, or the\n // JavaScript language. Implementation of an emoji-capable xml parser\n // is left as an exercise for the reader.\n var nameStart = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n\n var nameBody = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n var entityStart = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n var entityBody = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n function isWhitespace (c) {\n return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t'\n }\n\n function isQuote (c) {\n return c === '\"' || c === '\\''\n }\n\n function isAttribEnd (c) {\n return c === '>' || isWhitespace(c)\n }\n\n function isMatch (regex, c) {\n return regex.test(c)\n }\n\n function notMatch (regex, c) {\n return !isMatch(regex, c)\n }\n\n var S = 0\n sax.STATE = {\n BEGIN: S++, // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++, // leading whitespace\n TEXT: S++, // general stuff\n TEXT_ENTITY: S++, // &amp and such.\n OPEN_WAKA: S++, // <\n SGML_DECL: S++, // <!BLARG\n SGML_DECL_QUOTED: S++, // <!BLARG foo \"bar\n DOCTYPE: S++, // <!DOCTYPE\n DOCTYPE_QUOTED: S++, // <!DOCTYPE \"//blah\n DOCTYPE_DTD: S++, // <!DOCTYPE \"//blah\" [ ...\n DOCTYPE_DTD_QUOTED: S++, // <!DOCTYPE \"//blah\" [ \"foo\n COMMENT_STARTING: S++, // <!-\n COMMENT: S++, // <!--\n COMMENT_ENDING: S++, // <!-- blah -\n COMMENT_ENDED: S++, // <!-- blah --\n CDATA: S++, // <![CDATA[ something\n CDATA_ENDING: S++, // ]\n CDATA_ENDING_2: S++, // ]]\n PROC_INST: S++, // <?hi\n PROC_INST_BODY: S++, // <?hi there\n PROC_INST_ENDING: S++, // <?hi \"there\" ?\n OPEN_TAG: S++, // <strong\n OPEN_TAG_SLASH: S++, // <strong /\n ATTRIB: S++, // <a\n ATTRIB_NAME: S++, // <a foo\n ATTRIB_NAME_SAW_WHITE: S++, // <a foo _\n ATTRIB_VALUE: S++, // <a foo=\n ATTRIB_VALUE_QUOTED: S++, // <a foo=\"bar\n ATTRIB_VALUE_CLOSED: S++, // <a foo=\"bar\"\n ATTRIB_VALUE_UNQUOTED: S++, // <a foo=bar\n ATTRIB_VALUE_ENTITY_Q: S++, // <foo bar=\"&quot;\"\n ATTRIB_VALUE_ENTITY_U: S++, // <foo bar=&quot\n CLOSE_TAG: S++, // </a\n CLOSE_TAG_SAW_WHITE: S++, // </a >\n SCRIPT: S++, // <script> ...\n SCRIPT_ENDING: S++ // <script> ... <\n }\n\n sax.XML_ENTITIES = {\n 'amp': '&',\n 'gt': '>',\n 'lt': '<',\n 'quot': '\"',\n 'apos': \"'\"\n }\n\n sax.ENTITIES = {\n 'amp': '&',\n 'gt': '>',\n 'lt': '<',\n 'quot': '\"',\n 'apos': \"'\",\n 'AElig': 198,\n 'Aacute': 193,\n 'Acirc': 194,\n 'Agrave': 192,\n 'Aring': 197,\n 'Atilde': 195,\n 'Auml': 196,\n 'Ccedil': 199,\n 'ETH': 208,\n 'Eacute': 201,\n 'Ecirc': 202,\n 'Egrave': 200,\n 'Euml': 203,\n 'Iacute': 205,\n 'Icirc': 206,\n 'Igrave': 204,\n 'Iuml': 207,\n 'Ntilde': 209,\n 'Oacute': 211,\n 'Ocirc': 212,\n 'Ograve': 210,\n 'Oslash': 216,\n 'Otilde': 213,\n 'Ouml': 214,\n 'THORN': 222,\n 'Uacute': 218,\n 'Ucirc': 219,\n 'Ugrave': 217,\n 'Uuml': 220,\n 'Yacute': 221,\n 'aacute': 225,\n 'acirc': 226,\n 'aelig': 230,\n 'agrave': 224,\n 'aring': 229,\n 'atilde': 227,\n 'auml': 228,\n 'ccedil': 231,\n 'eacute': 233,\n 'ecirc': 234,\n 'egrave': 232,\n 'eth': 240,\n 'euml': 235,\n 'iacute': 237,\n 'icirc': 238,\n 'igrave': 236,\n 'iuml': 239,\n 'ntilde': 241,\n 'oacute': 243,\n 'ocirc': 244,\n 'ograve': 242,\n 'oslash': 248,\n 'otilde': 245,\n 'ouml': 246,\n 'szlig': 223,\n 'thorn': 254,\n 'uacute': 250,\n 'ucirc': 251,\n 'ugrave': 249,\n 'uuml': 252,\n 'yacute': 253,\n 'yuml': 255,\n 'copy': 169,\n 'reg': 174,\n 'nbsp': 160,\n 'iexcl': 161,\n 'cent': 162,\n 'pound': 163,\n 'curren': 164,\n 'yen': 165,\n 'brvbar': 166,\n 'sect': 167,\n 'uml': 168,\n 'ordf': 170,\n 'laquo': 171,\n 'not': 172,\n 'shy': 173,\n 'macr': 175,\n 'deg': 176,\n 'plusmn': 177,\n 'sup1': 185,\n 'sup2': 178,\n 'sup3': 179,\n 'acute': 180,\n 'micro': 181,\n 'para': 182,\n 'middot': 183,\n 'cedil': 184,\n 'ordm': 186,\n 'raquo': 187,\n 'frac14': 188,\n 'frac12': 189,\n 'frac34': 190,\n 'iquest': 191,\n 'times': 215,\n 'divide': 247,\n 'OElig': 338,\n 'oelig': 339,\n 'Scaron': 352,\n 'scaron': 353,\n 'Yuml': 376,\n 'fnof': 402,\n 'circ': 710,\n 'tilde': 732,\n 'Alpha': 913,\n 'Beta': 914,\n 'Gamma': 915,\n 'Delta': 916,\n 'Epsilon': 917,\n 'Zeta': 918,\n 'Eta': 919,\n 'Theta': 920,\n 'Iota': 921,\n 'Kappa': 922,\n 'Lambda': 923,\n 'Mu': 924,\n 'Nu': 925,\n 'Xi': 926,\n 'Omicron': 927,\n 'Pi': 928,\n 'Rho': 929,\n 'Sigma': 931,\n 'Tau': 932,\n 'Upsilon': 933,\n 'Phi': 934,\n 'Chi': 935,\n 'Psi': 936,\n 'Omega': 937,\n 'alpha': 945,\n 'beta': 946,\n 'gamma': 947,\n 'delta': 948,\n 'epsilon': 949,\n 'zeta': 950,\n 'eta': 951,\n 'theta': 952,\n 'iota': 953,\n 'kappa': 954,\n 'lambda': 955,\n 'mu': 956,\n 'nu': 957,\n 'xi': 958,\n 'omicron': 959,\n 'pi': 960,\n 'rho': 961,\n 'sigmaf': 962,\n 'sigma': 963,\n 'tau': 964,\n 'upsilon': 965,\n 'phi': 966,\n 'chi': 967,\n 'psi': 968,\n 'omega': 969,\n 'thetasym': 977,\n 'upsih': 978,\n 'piv': 982,\n 'ensp': 8194,\n 'emsp': 8195,\n 'thinsp': 8201,\n 'zwnj': 8204,\n 'zwj': 8205,\n 'lrm': 8206,\n 'rlm': 8207,\n 'ndash': 8211,\n 'mdash': 8212,\n 'lsquo': 8216,\n 'rsquo': 8217,\n 'sbquo': 8218,\n 'ldquo': 8220,\n 'rdquo': 8221,\n 'bdquo': 8222,\n 'dagger': 8224,\n 'Dagger': 8225,\n 'bull': 8226,\n 'hellip': 8230,\n 'permil': 8240,\n 'prime': 8242,\n 'Prime': 8243,\n 'lsaquo': 8249,\n 'rsaquo': 8250,\n 'oline': 8254,\n 'frasl': 8260,\n 'euro': 8364,\n 'image': 8465,\n 'weierp': 8472,\n 'real': 8476,\n 'trade': 8482,\n 'alefsym': 8501,\n 'larr': 8592,\n 'uarr': 8593,\n 'rarr': 8594,\n 'darr': 8595,\n 'harr': 8596,\n 'crarr': 8629,\n 'lArr': 8656,\n 'uArr': 8657,\n 'rArr': 8658,\n 'dArr': 8659,\n 'hArr': 8660,\n 'forall': 8704,\n 'part': 8706,\n 'exist': 8707,\n 'empty': 8709,\n 'nabla': 8711,\n 'isin': 8712,\n 'notin': 8713,\n 'ni': 8715,\n 'prod': 8719,\n 'sum': 8721,\n 'minus': 8722,\n 'lowast': 8727,\n 'radic': 8730,\n 'prop': 8733,\n 'infin': 8734,\n 'ang': 8736,\n 'and': 8743,\n 'or': 8744,\n 'cap': 8745,\n 'cup': 8746,\n 'int': 8747,\n 'there4': 8756,\n 'sim': 8764,\n 'cong': 8773,\n 'asymp': 8776,\n 'ne': 8800,\n 'equiv': 8801,\n 'le': 8804,\n 'ge': 8805,\n 'sub': 8834,\n 'sup': 8835,\n 'nsub': 8836,\n 'sube': 8838,\n 'supe': 8839,\n 'oplus': 8853,\n 'otimes': 8855,\n 'perp': 8869,\n 'sdot': 8901,\n 'lceil': 8968,\n 'rceil': 8969,\n 'lfloor': 8970,\n 'rfloor': 8971,\n 'lang': 9001,\n 'rang': 9002,\n 'loz': 9674,\n 'spades': 9824,\n 'clubs': 9827,\n 'hearts': 9829,\n 'diams': 9830\n }\n\n Object.keys(sax.ENTITIES).forEach(function (key) {\n var e = sax.ENTITIES[key]\n var s = typeof e === 'number' ? String.fromCharCode(e) : e\n sax.ENTITIES[key] = s\n })\n\n for (var s in sax.STATE) {\n sax.STATE[sax.STATE[s]] = s\n }\n\n // shorthand\n S = sax.STATE\n\n function emit (parser, event, data) {\n parser[event] && parser[event](data)\n }\n\n function emitNode (parser, nodeType, data) {\n if (parser.textNode) closeText(parser)\n emit(parser, nodeType, data)\n }\n\n function closeText (parser) {\n parser.textNode = textopts(parser.opt, parser.textNode)\n if (parser.textNode) emit(parser, 'ontext', parser.textNode)\n parser.textNode = ''\n }\n\n function textopts (opt, text) {\n if (opt.trim) text = text.trim()\n if (opt.normalize) text = text.replace(/\\s+/g, ' ')\n return text\n }\n\n function error (parser, er) {\n closeText(parser)\n if (parser.trackPosition) {\n er += '\\nLine: ' + parser.line +\n '\\nColumn: ' + parser.column +\n '\\nChar: ' + parser.c\n }\n er = new Error(er)\n parser.error = er\n emit(parser, 'onerror', er)\n return parser\n }\n\n function end (parser) {\n if (parser.sawRoot && !parser.closedRoot) strictFail(parser, 'Unclosed root tag')\n if ((parser.state !== S.BEGIN) &&\n (parser.state !== S.BEGIN_WHITESPACE) &&\n (parser.state !== S.TEXT)) {\n error(parser, 'Unexpected end')\n }\n closeText(parser)\n parser.c = ''\n parser.closed = true\n emit(parser, 'onend')\n SAXParser.call(parser, parser.strict, parser.opt)\n return parser\n }\n\n function strictFail (parser, message) {\n if (typeof parser !== 'object' || !(parser instanceof SAXParser)) {\n throw new Error('bad call to strictFail')\n }\n if (parser.strict) {\n error(parser, message)\n }\n }\n\n function newTag (parser) {\n if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]()\n var parent = parser.tags[parser.tags.length - 1] || parser\n var tag = parser.tag = { name: parser.tagName, attributes: {} }\n\n // will be overridden if tag contails an xmlns=\"foo\" or xmlns:foo=\"bar\"\n if (parser.opt.xmlns) {\n tag.ns = parent.ns\n }\n parser.attribList.length = 0\n emitNode(parser, 'onopentagstart', tag)\n }\n\n function qname (name, attribute) {\n var i = name.indexOf(':')\n var qualName = i < 0 ? [ '', name ] : name.split(':')\n var prefix = qualName[0]\n var local = qualName[1]\n\n // <x \"xmlns\"=\"http://foo\">\n if (attribute && name === 'xmlns') {\n prefix = 'xmlns'\n local = ''\n }\n\n return { prefix: prefix, local: local }\n }\n\n function attrib (parser) {\n if (!parser.strict) {\n parser.attribName = parser.attribName[parser.looseCase]()\n }\n\n if (parser.attribList.indexOf(parser.attribName) !== -1 ||\n parser.tag.attributes.hasOwnProperty(parser.attribName)) {\n parser.attribName = parser.attribValue = ''\n return\n }\n\n if (parser.opt.xmlns) {\n var qn = qname(parser.attribName, true)\n var prefix = qn.prefix\n var local = qn.local\n\n if (prefix === 'xmlns') {\n // namespace binding attribute. push the binding into scope\n if (local === 'xml' && parser.attribValue !== XML_NAMESPACE) {\n strictFail(parser,\n 'xml: prefix must be bound to ' + XML_NAMESPACE + '\\n' +\n 'Actual: ' + parser.attribValue)\n } else if (local === 'xmlns' && parser.attribValue !== XMLNS_NAMESPACE) {\n strictFail(parser,\n 'xmlns: prefix must be bound to ' + XMLNS_NAMESPACE + '\\n' +\n 'Actual: ' + parser.attribValue)\n } else {\n var tag = parser.tag\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (tag.ns === parent.ns) {\n tag.ns = Object.create(parent.ns)\n }\n tag.ns[local] = parser.attribValue\n }\n }\n\n // defer onattribute events until all attributes have been seen\n // so any new bindings can take effect. preserve attribute order\n // so deferred events can be emitted in document order\n parser.attribList.push([parser.attribName, parser.attribValue])\n } else {\n // in non-xmlns mode, we can emit the event right away\n parser.tag.attributes[parser.attribName] = parser.attribValue\n emitNode(parser, 'onattribute', {\n name: parser.attribName,\n value: parser.attribValue\n })\n }\n\n parser.attribName = parser.attribValue = ''\n }\n\n function openTag (parser, selfClosing) {\n if (parser.opt.xmlns) {\n // emit namespace binding events\n var tag = parser.tag\n\n // add namespace info to tag\n var qn = qname(parser.tagName)\n tag.prefix = qn.prefix\n tag.local = qn.local\n tag.uri = tag.ns[qn.prefix] || ''\n\n if (tag.prefix && !tag.uri) {\n strictFail(parser, 'Unbound namespace prefix: ' +\n JSON.stringify(parser.tagName))\n tag.uri = qn.prefix\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (tag.ns && parent.ns !== tag.ns) {\n Object.keys(tag.ns).forEach(function (p) {\n emitNode(parser, 'onopennamespace', {\n prefix: p,\n uri: tag.ns[p]\n })\n })\n }\n\n // handle deferred onattribute events\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (var i = 0, l = parser.attribList.length; i < l; i++) {\n var nv = parser.attribList[i]\n var name = nv[0]\n var value = nv[1]\n var qualName = qname(name, true)\n var prefix = qualName.prefix\n var local = qualName.local\n var uri = prefix === '' ? '' : (tag.ns[prefix] || '')\n var a = {\n name: name,\n value: value,\n prefix: prefix,\n local: local,\n uri: uri\n }\n\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (prefix && prefix !== 'xmlns' && !uri) {\n strictFail(parser, 'Unbound namespace prefix: ' +\n JSON.stringify(prefix))\n a.uri = prefix\n }\n parser.tag.attributes[name] = a\n emitNode(parser, 'onattribute', a)\n }\n parser.attribList.length = 0\n }\n\n parser.tag.isSelfClosing = !!selfClosing\n\n // process the tag\n parser.sawRoot = true\n parser.tags.push(parser.tag)\n emitNode(parser, 'onopentag', parser.tag)\n if (!selfClosing) {\n // special case for <script> in non-strict mode.\n if (!parser.noscript && parser.tagName.toLowerCase() === 'script') {\n parser.state = S.SCRIPT\n } else {\n parser.state = S.TEXT\n }\n parser.tag = null\n parser.tagName = ''\n }\n parser.attribName = parser.attribValue = ''\n parser.attribList.length = 0\n }\n\n function closeTag (parser) {\n if (!parser.tagName) {\n strictFail(parser, 'Weird empty close tag.')\n parser.textNode += '</>'\n parser.state = S.TEXT\n return\n }\n\n if (parser.script) {\n if (parser.tagName !== 'script') {\n parser.script += '</' + parser.tagName + '>'\n parser.tagName = ''\n parser.state = S.SCRIPT\n return\n }\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n }\n\n // first make sure that the closing tag actually exists.\n // <a><b></c></b></a> will close everything, otherwise.\n var t = parser.tags.length\n var tagName = parser.tagName\n if (!parser.strict) {\n tagName = tagName[parser.looseCase]()\n }\n var closeTo = tagName\n while (t--) {\n var close = parser.tags[t]\n if (close.name !== closeTo) {\n // fail the first time in strict mode\n strictFail(parser, 'Unexpected close tag')\n } else {\n break\n }\n }\n\n // didn't find it. we already failed for strict, so just abort.\n if (t < 0) {\n strictFail(parser, 'Unmatched closing tag: ' + parser.tagName)\n parser.textNode += '</' + parser.tagName + '>'\n parser.state = S.TEXT\n return\n }\n parser.tagName = tagName\n var s = parser.tags.length\n while (s-- > t) {\n var tag = parser.tag = parser.tags.pop()\n parser.tagName = parser.tag.name\n emitNode(parser, 'onclosetag', parser.tagName)\n\n var x = {}\n for (var i in tag.ns) {\n x[i] = tag.ns[i]\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (parser.opt.xmlns && tag.ns !== parent.ns) {\n // remove namespace bindings introduced by tag\n Object.keys(tag.ns).forEach(function (p) {\n var n = tag.ns[p]\n emitNode(parser, 'onclosenamespace', { prefix: p, uri: n })\n })\n }\n }\n if (t === 0) parser.closedRoot = true\n parser.tagName = parser.attribValue = parser.attribName = ''\n parser.attribList.length = 0\n parser.state = S.TEXT\n }\n\n function parseEntity (parser) {\n var entity = parser.entity\n var entityLC = entity.toLowerCase()\n var num\n var numStr = ''\n\n if (parser.ENTITIES[entity]) {\n return parser.ENTITIES[entity]\n }\n if (parser.ENTITIES[entityLC]) {\n return parser.ENTITIES[entityLC]\n }\n entity = entityLC\n if (entity.charAt(0) === '#') {\n if (entity.charAt(1) === 'x') {\n entity = entity.slice(2)\n num = parseInt(entity, 16)\n numStr = num.toString(16)\n } else {\n entity = entity.slice(1)\n num = parseInt(entity, 10)\n numStr = num.toString(10)\n }\n }\n entity = entity.replace(/^0+/, '')\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n strictFail(parser, 'Invalid character entity')\n return '&' + parser.entity + ';'\n }\n\n return String.fromCodePoint(num)\n }\n\n function beginWhiteSpace (parser, c) {\n if (c === '<') {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else if (!isWhitespace(c)) {\n // have to process this as a text node.\n // weird, but happens.\n strictFail(parser, 'Non-whitespace before first tag.')\n parser.textNode = c\n parser.state = S.TEXT\n }\n }\n\n function charAt (chunk, i) {\n var result = ''\n if (i < chunk.length) {\n result = chunk.charAt(i)\n }\n return result\n }\n\n function write (chunk) {\n var parser = this\n if (this.error) {\n throw this.error\n }\n if (parser.closed) {\n return error(parser,\n 'Cannot write after close. Assign an onready handler.')\n }\n if (chunk === null) {\n return end(parser)\n }\n if (typeof chunk === 'object') {\n chunk = chunk.toString()\n }\n var i = 0\n var c = ''\n while (true) {\n c = charAt(chunk, i++)\n parser.c = c\n\n if (!c) {\n break\n }\n\n if (parser.trackPosition) {\n parser.position++\n if (c === '\\n') {\n parser.line++\n parser.column = 0\n } else {\n parser.column++\n }\n }\n\n switch (parser.state) {\n case S.BEGIN:\n parser.state = S.BEGIN_WHITESPACE\n if (c === '\\uFEFF') {\n continue\n }\n beginWhiteSpace(parser, c)\n continue\n\n case S.BEGIN_WHITESPACE:\n beginWhiteSpace(parser, c)\n continue\n\n case S.TEXT:\n if (parser.sawRoot && !parser.closedRoot) {\n var starti = i - 1\n while (c && c !== '<' && c !== '&') {\n c = charAt(chunk, i++)\n if (c && parser.trackPosition) {\n parser.position++\n if (c === '\\n') {\n parser.line++\n parser.column = 0\n } else {\n parser.column++\n }\n }\n }\n parser.textNode += chunk.substring(starti, i - 1)\n }\n if (c === '<' && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else {\n if (!isWhitespace(c) && (!parser.sawRoot || parser.closedRoot)) {\n strictFail(parser, 'Text data outside of root node.')\n }\n if (c === '&') {\n parser.state = S.TEXT_ENTITY\n } else {\n parser.textNode += c\n }\n }\n continue\n\n case S.SCRIPT:\n // only non-strict\n if (c === '<') {\n parser.state = S.SCRIPT_ENDING\n } else {\n parser.script += c\n }\n continue\n\n case S.SCRIPT_ENDING:\n if (c === '/') {\n parser.state = S.CLOSE_TAG\n } else {\n parser.script += '<' + c\n parser.state = S.SCRIPT\n }\n continue\n\n case S.OPEN_WAKA:\n // either a /, ?, !, or text is coming next.\n if (c === '!') {\n parser.state = S.SGML_DECL\n parser.sgmlDecl = ''\n } else if (isWhitespace(c)) {\n // wait for it...\n } else if (isMatch(nameStart, c)) {\n parser.state = S.OPEN_TAG\n parser.tagName = c\n } else if (c === '/') {\n parser.state = S.CLOSE_TAG\n parser.tagName = ''\n } else if (c === '?') {\n parser.state = S.PROC_INST\n parser.procInstName = parser.procInstBody = ''\n } else {\n strictFail(parser, 'Unencoded <')\n // if there was some whitespace, then add that in.\n if (parser.startTagPosition + 1 < parser.position) {\n var pad = parser.position - parser.startTagPosition\n c = new Array(pad).join(' ') + c\n }\n parser.textNode += '<' + c\n parser.state = S.TEXT\n }\n continue\n\n case S.SGML_DECL:\n if (parser.sgmlDecl + c === '--') {\n parser.state = S.COMMENT\n parser.comment = ''\n parser.sgmlDecl = ''\n continue;\n }\n\n if (parser.doctype && parser.doctype !== true && parser.sgmlDecl) {\n parser.state = S.DOCTYPE_DTD\n parser.doctype += '<!' + parser.sgmlDecl + c\n parser.sgmlDecl = ''\n } else if ((parser.sgmlDecl + c).toUpperCase() === CDATA) {\n emitNode(parser, 'onopencdata')\n parser.state = S.CDATA\n parser.sgmlDecl = ''\n parser.cdata = ''\n } else if ((parser.sgmlDecl + c).toUpperCase() === DOCTYPE) {\n parser.state = S.DOCTYPE\n if (parser.doctype || parser.sawRoot) {\n strictFail(parser,\n 'Inappropriately located doctype declaration')\n }\n parser.doctype = ''\n parser.sgmlDecl = ''\n } else if (c === '>') {\n emitNode(parser, 'onsgmldeclaration', parser.sgmlDecl)\n parser.sgmlDecl = ''\n parser.state = S.TEXT\n } else if (isQuote(c)) {\n parser.state = S.SGML_DECL_QUOTED\n parser.sgmlDecl += c\n } else {\n parser.sgmlDecl += c\n }\n continue\n\n case S.SGML_DECL_QUOTED:\n if (c === parser.q) {\n parser.state = S.SGML_DECL\n parser.q = ''\n }\n parser.sgmlDecl += c\n continue\n\n case S.DOCTYPE:\n if (c === '>') {\n parser.state = S.TEXT\n emitNode(parser, 'ondoctype', parser.doctype)\n parser.doctype = true // just remember that we saw it.\n } else {\n parser.doctype += c\n if (c === '[') {\n parser.state = S.DOCTYPE_DTD\n } else if (isQuote(c)) {\n parser.state = S.DOCTYPE_QUOTED\n parser.q = c\n }\n }\n continue\n\n case S.DOCTYPE_QUOTED:\n parser.doctype += c\n if (c === parser.q) {\n parser.q = ''\n parser.state = S.DOCTYPE\n }\n continue\n\n case S.DOCTYPE_DTD:\n if (c === ']') {\n parser.doctype += c\n parser.state = S.DOCTYPE\n } else if (c === '<') {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else if (isQuote(c)) {\n parser.doctype += c\n parser.state = S.DOCTYPE_DTD_QUOTED\n parser.q = c\n } else {\n parser.doctype += c\n }\n continue\n\n case S.DOCTYPE_DTD_QUOTED:\n parser.doctype += c\n if (c === parser.q) {\n parser.state = S.DOCTYPE_DTD\n parser.q = ''\n }\n continue\n\n case S.COMMENT:\n if (c === '-') {\n parser.state = S.COMMENT_ENDING\n } else {\n parser.comment += c\n }\n continue\n\n case S.COMMENT_ENDING:\n if (c === '-') {\n parser.state = S.COMMENT_ENDED\n parser.comment = textopts(parser.opt, parser.comment)\n if (parser.comment) {\n emitNode(parser, 'oncomment', parser.comment)\n }\n parser.comment = ''\n } else {\n parser.comment += '-' + c\n parser.state = S.COMMENT\n }\n continue\n\n case S.COMMENT_ENDED:\n if (c !== '>') {\n strictFail(parser, 'Malformed comment')\n // allow <!-- blah -- bloo --> in non-strict mode,\n // which is a comment of \" blah -- bloo \"\n parser.comment += '--' + c\n parser.state = S.COMMENT\n } else if (parser.doctype && parser.doctype !== true) {\n parser.state = S.DOCTYPE_DTD\n } else {\n parser.state = S.TEXT\n }\n continue\n\n case S.CDATA:\n if (c === ']') {\n parser.state = S.CDATA_ENDING\n } else {\n parser.cdata += c\n }\n continue\n\n case S.CDATA_ENDING:\n if (c === ']') {\n parser.state = S.CDATA_ENDING_2\n } else {\n parser.cdata += ']' + c\n parser.state = S.CDATA\n }\n continue\n\n case S.CDATA_ENDING_2:\n if (c === '>') {\n if (parser.cdata) {\n emitNode(parser, 'oncdata', parser.cdata)\n }\n emitNode(parser, 'onclosecdata')\n parser.cdata = ''\n parser.state = S.TEXT\n } else if (c === ']') {\n parser.cdata += ']'\n } else {\n parser.cdata += ']]' + c\n parser.state = S.CDATA\n }\n continue\n\n case S.PROC_INST:\n if (c === '?') {\n parser.state = S.PROC_INST_ENDING\n } else if (isWhitespace(c)) {\n parser.state = S.PROC_INST_BODY\n } else {\n parser.procInstName += c\n }\n continue\n\n case S.PROC_INST_BODY:\n if (!parser.procInstBody && isWhitespace(c)) {\n continue\n } else if (c === '?') {\n parser.state = S.PROC_INST_ENDING\n } else {\n parser.procInstBody += c\n }\n continue\n\n case S.PROC_INST_ENDING:\n if (c === '>') {\n emitNode(parser, 'onprocessinginstruction', {\n name: parser.procInstName,\n body: parser.procInstBody\n })\n parser.procInstName = parser.procInstBody = ''\n parser.state = S.TEXT\n } else {\n parser.procInstBody += '?' + c\n parser.state = S.PROC_INST_BODY\n }\n continue\n\n case S.OPEN_TAG:\n if (isMatch(nameBody, c)) {\n parser.tagName += c\n } else {\n newTag(parser)\n if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, 'Invalid character in tag name')\n }\n parser.state = S.ATTRIB\n }\n }\n continue\n\n case S.OPEN_TAG_SLASH:\n if (c === '>') {\n openTag(parser, true)\n closeTag(parser)\n } else {\n strictFail(parser, 'Forward-slash in opening tag not followed by >')\n parser.state = S.ATTRIB\n }\n continue\n\n case S.ATTRIB:\n // haven't read the attribute name yet.\n if (isWhitespace(c)) {\n continue\n } else if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c\n parser.attribValue = ''\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_NAME:\n if (c === '=') {\n parser.state = S.ATTRIB_VALUE\n } else if (c === '>') {\n strictFail(parser, 'Attribute without value')\n parser.attribValue = parser.attribName\n attrib(parser)\n openTag(parser)\n } else if (isWhitespace(c)) {\n parser.state = S.ATTRIB_NAME_SAW_WHITE\n } else if (isMatch(nameBody, c)) {\n parser.attribName += c\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_NAME_SAW_WHITE:\n if (c === '=') {\n parser.state = S.ATTRIB_VALUE\n } else if (isWhitespace(c)) {\n continue\n } else {\n strictFail(parser, 'Attribute without value')\n parser.tag.attributes[parser.attribName] = ''\n parser.attribValue = ''\n emitNode(parser, 'onattribute', {\n name: parser.attribName,\n value: ''\n })\n parser.attribName = ''\n if (c === '>') {\n openTag(parser)\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n parser.state = S.ATTRIB\n }\n }\n continue\n\n case S.ATTRIB_VALUE:\n if (isWhitespace(c)) {\n continue\n } else if (isQuote(c)) {\n parser.q = c\n parser.state = S.ATTRIB_VALUE_QUOTED\n } else {\n if (!parser.opt.unquotedAttributeValues) {\n error(parser, 'Unquoted attribute value')\n }\n parser.state = S.ATTRIB_VALUE_UNQUOTED\n parser.attribValue = c\n }\n continue\n\n case S.ATTRIB_VALUE_QUOTED:\n if (c !== parser.q) {\n if (c === '&') {\n parser.state = S.ATTRIB_VALUE_ENTITY_Q\n } else {\n parser.attribValue += c\n }\n continue\n }\n attrib(parser)\n parser.q = ''\n parser.state = S.ATTRIB_VALUE_CLOSED\n continue\n\n case S.ATTRIB_VALUE_CLOSED:\n if (isWhitespace(c)) {\n parser.state = S.ATTRIB\n } else if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else if (isMatch(nameStart, c)) {\n strictFail(parser, 'No whitespace between attributes')\n parser.attribName = c\n parser.attribValue = ''\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_VALUE_UNQUOTED:\n if (!isAttribEnd(c)) {\n if (c === '&') {\n parser.state = S.ATTRIB_VALUE_ENTITY_U\n } else {\n parser.attribValue += c\n }\n continue\n }\n attrib(parser)\n if (c === '>') {\n openTag(parser)\n } else {\n parser.state = S.ATTRIB\n }\n continue\n\n case S.CLOSE_TAG:\n if (!parser.tagName) {\n if (isWhitespace(c)) {\n continue\n } else if (notMatch(nameStart, c)) {\n if (parser.script) {\n parser.script += '</' + c\n parser.state = S.SCRIPT\n } else {\n strictFail(parser, 'Invalid tagname in closing tag.')\n }\n } else {\n parser.tagName = c\n }\n } else if (c === '>') {\n closeTag(parser)\n } else if (isMatch(nameBody, c)) {\n parser.tagName += c\n } else if (parser.script) {\n parser.script += '</' + parser.tagName\n parser.tagName = ''\n parser.state = S.SCRIPT\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, 'Invalid tagname in closing tag')\n }\n parser.state = S.CLOSE_TAG_SAW_WHITE\n }\n continue\n\n case S.CLOSE_TAG_SAW_WHITE:\n if (isWhitespace(c)) {\n continue\n }\n if (c === '>') {\n closeTag(parser)\n } else {\n strictFail(parser, 'Invalid characters in closing tag')\n }\n continue\n\n case S.TEXT_ENTITY:\n case S.ATTRIB_VALUE_ENTITY_Q:\n case S.ATTRIB_VALUE_ENTITY_U:\n var returnState\n var buffer\n switch (parser.state) {\n case S.TEXT_ENTITY:\n returnState = S.TEXT\n buffer = 'textNode'\n break\n\n case S.ATTRIB_VALUE_ENTITY_Q:\n returnState = S.ATTRIB_VALUE_QUOTED\n buffer = 'attribValue'\n break\n\n case S.ATTRIB_VALUE_ENTITY_U:\n returnState = S.ATTRIB_VALUE_UNQUOTED\n buffer = 'attribValue'\n break\n }\n\n if (c === ';') {\n var parsedEntity = parseEntity(parser)\n if (parser.opt.unparsedEntities && !Object.values(sax.XML_ENTITIES).includes(parsedEntity)) {\n parser.entity = ''\n parser.state = returnState\n parser.write(parsedEntity)\n } else {\n parser[buffer] += parsedEntity\n parser.entity = ''\n parser.state = returnState\n }\n } else if (isMatch(parser.entity.length ? entityBody : entityStart, c)) {\n parser.entity += c\n } else {\n strictFail(parser, 'Invalid character in entity name')\n parser[buffer] += '&' + parser.entity + c\n parser.entity = ''\n parser.state = returnState\n }\n\n continue\n\n default: /* istanbul ignore next */ {\n throw new Error(parser, 'Unknown state: ' + parser.state)\n }\n }\n } // while\n\n if (parser.position >= parser.bufferCheckPosition) {\n checkBufferLength(parser)\n }\n return parser\n }\n\n /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */\n /* istanbul ignore next */\n if (!String.fromCodePoint) {\n (function () {\n var stringFromCharCode = String.fromCharCode\n var floor = Math.floor\n var fromCodePoint = function () {\n var MAX_SIZE = 0x4000\n var codeUnits = []\n var highSurrogate\n var lowSurrogate\n var index = -1\n var length = arguments.length\n if (!length) {\n return ''\n }\n var result = ''\n while (++index < length) {\n var codePoint = Number(arguments[index])\n if (\n !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10FFFF || // not a valid Unicode code point\n floor(codePoint) !== codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint)\n }\n if (codePoint <= 0xFFFF) { // BMP code point\n codeUnits.push(codePoint)\n } else { // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000\n highSurrogate = (codePoint >> 10) + 0xD800\n lowSurrogate = (codePoint % 0x400) + 0xDC00\n codeUnits.push(highSurrogate, lowSurrogate)\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode.apply(null, codeUnits)\n codeUnits.length = 0\n }\n }\n return result\n }\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(String, 'fromCodePoint', {\n value: fromCodePoint,\n configurable: true,\n writable: true\n })\n } else {\n String.fromCodePoint = fromCodePoint\n }\n }())\n }\n})( false ? undefined : exports)\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../web/node_modules/buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-freemind/node_modules/sax/lib/sax.js?");
/***/ }),
/***/ "../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/array-helper.js":
/*!**********************************************************************************!*\
!*** ../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/array-helper.js ***!
\**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = {\r\n\r\n isArray: function(value) {\r\n if (Array.isArray) {\r\n return Array.isArray(value);\r\n }\r\n // fallback for older browsers like IE 8\r\n return Object.prototype.toString.call( value ) === '[object Array]';\r\n }\r\n\r\n};\r\n\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/array-helper.js?");
/***/ }),
/***/ "../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/index.js":
/*!***************************************************************************!*\
!*** ../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/index.js ***!
\***************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/*jslint node:true */\r\n\r\nvar xml2js = __webpack_require__(/*! ./xml2js */ \"../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/xml2js.js\");\r\nvar xml2json = __webpack_require__(/*! ./xml2json */ \"../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/xml2json.js\");\r\nvar js2xml = __webpack_require__(/*! ./js2xml */ \"../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/js2xml.js\");\r\nvar json2xml = __webpack_require__(/*! ./json2xml */ \"../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/json2xml.js\");\r\n\r\nmodule.exports = {\r\n xml2js: xml2js,\r\n xml2json: xml2json,\r\n js2xml: js2xml,\r\n json2xml: json2xml\r\n};\r\n\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/index.js?");
/***/ }),
/***/ "../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/js2xml.js":
/*!****************************************************************************!*\
!*** ../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/js2xml.js ***!
\****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var helper = __webpack_require__(/*! ./options-helper */ \"../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/options-helper.js\");\nvar isArray = __webpack_require__(/*! ./array-helper */ \"../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/array-helper.js\").isArray;\n\nvar currentElement, currentElementName;\n\nfunction validateOptions(userOptions) {\n var options = helper.copyOptions(userOptions);\n helper.ensureFlagExists('ignoreDeclaration', options);\n helper.ensureFlagExists('ignoreInstruction', options);\n helper.ensureFlagExists('ignoreAttributes', options);\n helper.ensureFlagExists('ignoreText', options);\n helper.ensureFlagExists('ignoreComment', options);\n helper.ensureFlagExists('ignoreCdata', options);\n helper.ensureFlagExists('ignoreDoctype', options);\n helper.ensureFlagExists('compact', options);\n helper.ensureFlagExists('indentText', options);\n helper.ensureFlagExists('indentCdata', options);\n helper.ensureFlagExists('indentAttributes', options);\n helper.ensureFlagExists('indentInstruction', options);\n helper.ensureFlagExists('fullTagEmptyElement', options);\n helper.ensureFlagExists('noQuotesForNativeAttributes', options);\n helper.ensureSpacesExists(options);\n if (typeof options.spaces === 'number') {\n options.spaces = Array(options.spaces + 1).join(' ');\n }\n helper.ensureKeyExists('declaration', options);\n helper.ensureKeyExists('instruction', options);\n helper.ensureKeyExists('attributes', options);\n helper.ensureKeyExists('text', options);\n helper.ensureKeyExists('comment', options);\n helper.ensureKeyExists('cdata', options);\n helper.ensureKeyExists('doctype', options);\n helper.ensureKeyExists('type', options);\n helper.ensureKeyExists('name', options);\n helper.ensureKeyExists('elements', options);\n helper.checkFnExists('doctype', options);\n helper.checkFnExists('instruction', options);\n helper.checkFnExists('cdata', options);\n helper.checkFnExists('comment', options);\n helper.checkFnExists('text', options);\n helper.checkFnExists('instructionName', options);\n helper.checkFnExists('elementName', options);\n helper.checkFnExists('attributeName', options);\n helper.checkFnExists('attributeValue', options);\n helper.checkFnExists('attributes', options);\n helper.checkFnExists('fullTagEmptyElement', options);\n return options;\n}\n\nfunction writeIndentation(options, depth, firstLine) {\n return (!firstLine && options.spaces ? '\\n' : '') + Array(depth + 1).join(options.spaces);\n}\n\nfunction writeAttributes(attributes, options, depth) {\n if (options.ignoreAttributes) {\n return '';\n }\n if ('attributesFn' in options) {\n attributes = options.attributesFn(attributes, currentElementName, currentElement);\n }\n var key, attr, attrName, quote, result = [];\n for (key in attributes) {\n if (attributes.hasOwnProperty(key) && attributes[key] !== null && attributes[key] !== undefined) {\n quote = options.noQuotesForNativeAttributes && typeof attributes[key] !== 'string' ? '' : '\"';\n attr = '' + attributes[key]; // ensure number and boolean are converted to String\n attr = attr.replace(/\"/g, '&quot;');\n attrName = 'attributeNameFn' in options ? options.attributeNameFn(key, attr, currentElementName, currentElement) : key;\n result.push((options.spaces && options.indentAttributes? writeIndentation(options, depth+1, false) : ' '));\n result.push(attrName + '=' + quote + ('attributeValueFn' in options ? options.attributeValueFn(attr, key, currentElementName, currentElement) : attr) + quote);\n }\n }\n if (attributes && Object.keys(attributes).length && options.spaces && options.indentAttributes) {\n result.push(writeIndentation(options, depth, false));\n }\n return result.join('');\n}\n\nfunction writeDeclaration(declaration, options, depth) {\n currentElement = declaration;\n currentElementName = 'xml';\n return options.ignoreDeclaration ? '' : '<?' + 'xml' + writeAttributes(declaration[options.attributesKey], options, depth) + '?>';\n}\n\nfunction writeInstruction(instruction, options, depth) {\n if (options.ignoreInstruction) {\n return '';\n }\n var key;\n for (key in instruction) {\n if (instruction.hasOwnProperty(key)) {\n break;\n }\n }\n var instructionName = 'instructionNameFn' in options ? options.instructionNameFn(key, instruction[key], currentElementName, currentElement) : key;\n if (typeof instruction[key] === 'object') {\n currentElement = instruction;\n currentElementName = instructionName;\n return '<?' + instructionName + writeAttributes(instruction[key][options.attributesKey], options, depth) + '?>';\n } else {\n var instructionValue = instruction[key] ? instruction[key] : '';\n if ('instructionFn' in options) instructionValue = options.instructionFn(instructionValue, key, currentElementName, currentElement);\n return '<?' + instructionName + (instructionValue ? ' ' + instructionValue : '') + '?>';\n }\n}\n\nfunction writeComment(comment, options) {\n return options.ignoreComment ? '' : '<!--' + ('commentFn' in options ? options.commentFn(comment, currentElementName, currentElement) : comment) + '-->';\n}\n\nfunction writeCdata(cdata, options) {\n return options.ignoreCdata ? '' : '<![CDATA[' + ('cdataFn' in options ? options.cdataFn(cdata, currentElementName, currentElement) : cdata.replace(']]>', ']]]]><![CDATA[>')) + ']]>';\n}\n\nfunction writeDoctype(doctype, options) {\n return options.ignoreDoctype ? '' : '<!DOCTYPE ' + ('doctypeFn' in options ? options.doctypeFn(doctype, currentElementName, currentElement) : doctype) + '>';\n}\n\nfunction writeText(text, options) {\n if (options.ignoreText) return '';\n text = '' + text; // ensure Number and Boolean are converted to String\n text = text.replace(/&amp;/g, '&'); // desanitize to avoid double sanitization\n text = text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n return 'textFn' in options ? options.textFn(text, currentElementName, currentElement) : text;\n}\n\nfunction hasContent(element, options) {\n var i;\n if (element.elements && element.elements.length) {\n for (i = 0; i < element.elements.length; ++i) {\n switch (element.elements[i][options.typeKey]) {\n case 'text':\n if (options.indentText) {\n return true;\n }\n break; // skip to next key\n case 'cdata':\n if (options.indentCdata) {\n return true;\n }\n break; // skip to next key\n case 'instruction':\n if (options.indentInstruction) {\n return true;\n }\n break; // skip to next key\n case 'doctype':\n case 'comment':\n case 'element':\n return true;\n default:\n return true;\n }\n }\n }\n return false;\n}\n\nfunction writeElement(element, options, depth) {\n currentElement = element;\n currentElementName = element.name;\n var xml = [], elementName = 'elementNameFn' in options ? options.elementNameFn(element.name, element) : element.name;\n xml.push('<' + elementName);\n if (element[options.attributesKey]) {\n xml.push(writeAttributes(element[options.attributesKey], options, depth));\n }\n var withClosingTag = element[options.elementsKey] && element[options.elementsKey].length || element[options.attributesKey] && element[options.attributesKey]['xml:space'] === 'preserve';\n if (!withClosingTag) {\n if ('fullTagEmptyElementFn' in options) {\n withClosingTag = options.fullTagEmptyElementFn(element.name, element);\n } else {\n withClosingTag = options.fullTagEmptyElement;\n }\n }\n if (withClosingTag) {\n xml.push('>');\n if (element[options.elementsKey] && element[options.elementsKey].length) {\n xml.push(writeElements(element[options.elementsKey], options, depth + 1));\n currentElement = element;\n currentElementName = element.name;\n }\n xml.push(options.spaces && hasContent(element, options) ? '\\n' + Array(depth + 1).join(options.spaces) : '');\n xml.push('</' + elementName + '>');\n } else {\n xml.push('/>');\n }\n return xml.join('');\n}\n\nfunction writeElements(elements, options, depth, firstLine) {\n return elements.reduce(function (xml, element) {\n var indent = writeIndentation(options, depth, firstLine && !xml);\n switch (element.type) {\n case 'element': return xml + indent + writeElement(element, options, depth);\n case 'comment': return xml + indent + writeComment(element[options.commentKey], options);\n case 'doctype': return xml + indent + writeDoctype(element[options.doctypeKey], options);\n case 'cdata': return xml + (options.indentCdata ? indent : '') + writeCdata(element[options.cdataKey], options);\n case 'text': return xml + (options.indentText ? indent : '') + writeText(element[options.textKey], options);\n case 'instruction':\n var instruction = {};\n instruction[element[options.nameKey]] = element[options.attributesKey] ? element : element[options.instructionKey];\n return xml + (options.indentInstruction ? indent : '') + writeInstruction(instruction, options, depth);\n }\n }, '');\n}\n\nfunction hasContentCompact(element, options, anyContent) {\n var key;\n for (key in element) {\n if (element.hasOwnProperty(key)) {\n switch (key) {\n case options.parentKey:\n case options.attributesKey:\n break; // skip to next key\n case options.textKey:\n if (options.indentText || anyContent) {\n return true;\n }\n break; // skip to next key\n case options.cdataKey:\n if (options.indentCdata || anyContent) {\n return true;\n }\n break; // skip to next key\n case options.instructionKey:\n if (options.indentInstruction || anyContent) {\n return true;\n }\n break; // skip to next key\n case options.doctypeKey:\n case options.commentKey:\n return true;\n default:\n return true;\n }\n }\n }\n return false;\n}\n\nfunction writeElementCompact(element, name, options, depth, indent) {\n currentElement = element;\n currentElementName = name;\n var elementName = 'elementNameFn' in options ? options.elementNameFn(name, element) : name;\n if (typeof element === 'undefined' || element === null || element === '') {\n return 'fullTagEmptyElementFn' in options && options.fullTagEmptyElementFn(name, element) || options.fullTagEmptyElement ? '<' + elementName + '></' + elementName + '>' : '<' + elementName + '/>';\n }\n var xml = [];\n if (name) {\n xml.push('<' + elementName);\n if (typeof element !== 'object') {\n xml.push('>' + writeText(element,options) + '</' + elementName + '>');\n return xml.join('');\n }\n if (element[options.attributesKey]) {\n xml.push(writeAttributes(element[options.attributesKey], options, depth));\n }\n var withClosingTag = hasContentCompact(element, options, true) || element[options.attributesKey] && element[options.attributesKey]['xml:space'] === 'preserve';\n if (!withClosingTag) {\n if ('fullTagEmptyElementFn' in options) {\n withClosingTag = options.fullTagEmptyElementFn(name, element);\n } else {\n withClosingTag = options.fullTagEmptyElement;\n }\n }\n if (withClosingTag) {\n xml.push('>');\n } else {\n xml.push('/>');\n return xml.join('');\n }\n }\n xml.push(writeElementsCompact(element, options, depth + 1, false));\n currentElement = element;\n currentElementName = name;\n if (name) {\n xml.push((indent ? writeIndentation(options, depth, false) : '') + '</' + elementName + '>');\n }\n return xml.join('');\n}\n\nfunction writeElementsCompact(element, options, depth, firstLine) {\n var i, key, nodes, xml = [];\n for (key in element) {\n if (element.hasOwnProperty(key)) {\n nodes = isArray(element[key]) ? element[key] : [element[key]];\n for (i = 0; i < nodes.length; ++i) {\n switch (key) {\n case options.declarationKey: xml.push(writeDeclaration(nodes[i], options, depth)); break;\n case options.instructionKey: xml.push((options.indentInstruction ? writeIndentation(options, depth, firstLine) : '') + writeInstruction(nodes[i], options, depth)); break;\n case options.attributesKey: case options.parentKey: break; // skip\n case options.textKey: xml.push((options.indentText ? writeIndentation(options, depth, firstLine) : '') + writeText(nodes[i], options)); break;\n case options.cdataKey: xml.push((options.indentCdata ? writeIndentation(options, depth, firstLine) : '') + writeCdata(nodes[i], options)); break;\n case options.doctypeKey: xml.push(writeIndentation(options, depth, firstLine) + writeDoctype(nodes[i], options)); break;\n case options.commentKey: xml.push(writeIndentation(options, depth, firstLine) + writeComment(nodes[i], options)); break;\n default: xml.push(writeIndentation(options, depth, firstLine) + writeElementCompact(nodes[i], key, options, depth, hasContentCompact(nodes[i], options)));\n }\n firstLine = firstLine && !xml.length;\n }\n }\n }\n return xml.join('');\n}\n\nmodule.exports = function (js, options) {\n options = validateOptions(options);\n var xml = [];\n currentElement = js;\n currentElementName = '_root_';\n if (options.compact) {\n xml.push(writeElementsCompact(js, options, 0, true));\n } else {\n if (js[options.declarationKey]) {\n xml.push(writeDeclaration(js[options.declarationKey], options, 0));\n }\n if (js[options.elementsKey] && js[options.elementsKey].length) {\n xml.push(writeElements(js[options.elementsKey], options, 0, !xml.length));\n }\n }\n return xml.join('');\n};\n\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/js2xml.js?");
/***/ }),
/***/ "../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/json2xml.js":
/*!******************************************************************************!*\
!*** ../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/json2xml.js ***!
\******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/* WEBPACK VAR INJECTION */(function(Buffer) {var js2xml = __webpack_require__(/*! ./js2xml.js */ \"../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/js2xml.js\");\r\n\r\nmodule.exports = function (json, options) {\r\n if (json instanceof Buffer) {\r\n json = json.toString();\r\n }\r\n var js = null;\r\n if (typeof (json) === 'string') {\r\n try {\r\n js = JSON.parse(json);\r\n } catch (e) {\r\n throw new Error('The JSON structure is invalid');\r\n }\r\n } else {\r\n js = json;\r\n }\r\n return js2xml(js, options);\r\n};\r\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../web/node_modules/buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/json2xml.js?");
/***/ }),
/***/ "../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/options-helper.js":
/*!************************************************************************************!*\
!*** ../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/options-helper.js ***!
\************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var isArray = __webpack_require__(/*! ./array-helper */ \"../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/array-helper.js\").isArray;\r\n\r\nmodule.exports = {\r\n\r\n copyOptions: function (options) {\r\n var key, copy = {};\r\n for (key in options) {\r\n if (options.hasOwnProperty(key)) {\r\n copy[key] = options[key];\r\n }\r\n }\r\n return copy;\r\n },\r\n\r\n ensureFlagExists: function (item, options) {\r\n if (!(item in options) || typeof options[item] !== 'boolean') {\r\n options[item] = false;\r\n }\r\n },\r\n\r\n ensureSpacesExists: function (options) {\r\n if (!('spaces' in options) || (typeof options.spaces !== 'number' && typeof options.spaces !== 'string')) {\r\n options.spaces = 0;\r\n }\r\n },\r\n\r\n ensureAlwaysArrayExists: function (options) {\r\n if (!('alwaysArray' in options) || (typeof options.alwaysArray !== 'boolean' && !isArray(options.alwaysArray))) {\r\n options.alwaysArray = false;\r\n }\r\n },\r\n\r\n ensureKeyExists: function (key, options) {\r\n if (!(key + 'Key' in options) || typeof options[key + 'Key'] !== 'string') {\r\n options[key + 'Key'] = options.compact ? '_' + key : key;\r\n }\r\n },\r\n\r\n checkFnExists: function (key, options) {\r\n return key + 'Fn' in options;\r\n }\r\n\r\n};\r\n\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/options-helper.js?");
/***/ }),
/***/ "../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/xml2js.js":
/*!****************************************************************************!*\
!*** ../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/xml2js.js ***!
\****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var sax = __webpack_require__(/*! sax */ \"../simple-mind-map-plugin-freemind/node_modules/sax/lib/sax.js\");\r\nvar expat /*= require('node-expat');*/ = { on: function () { }, parse: function () { } };\r\nvar helper = __webpack_require__(/*! ./options-helper */ \"../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/options-helper.js\");\r\nvar isArray = __webpack_require__(/*! ./array-helper */ \"../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/array-helper.js\").isArray;\r\n\r\nvar options;\r\nvar pureJsParser = true;\r\nvar currentElement;\r\n\r\nfunction validateOptions(userOptions) {\r\n options = helper.copyOptions(userOptions);\r\n helper.ensureFlagExists('ignoreDeclaration', options);\r\n helper.ensureFlagExists('ignoreInstruction', options);\r\n helper.ensureFlagExists('ignoreAttributes', options);\r\n helper.ensureFlagExists('ignoreText', options);\r\n helper.ensureFlagExists('ignoreComment', options);\r\n helper.ensureFlagExists('ignoreCdata', options);\r\n helper.ensureFlagExists('ignoreDoctype', options);\r\n helper.ensureFlagExists('compact', options);\r\n helper.ensureFlagExists('alwaysChildren', options);\r\n helper.ensureFlagExists('addParent', options);\r\n helper.ensureFlagExists('trim', options);\r\n helper.ensureFlagExists('nativeType', options);\r\n helper.ensureFlagExists('nativeTypeAttributes', options);\r\n helper.ensureFlagExists('sanitize', options);\r\n helper.ensureFlagExists('instructionHasAttributes', options);\r\n helper.ensureFlagExists('captureSpacesBetweenElements', options);\r\n helper.ensureAlwaysArrayExists(options);\r\n helper.ensureKeyExists('declaration', options);\r\n helper.ensureKeyExists('instruction', options);\r\n helper.ensureKeyExists('attributes', options);\r\n helper.ensureKeyExists('text', options);\r\n helper.ensureKeyExists('comment', options);\r\n helper.ensureKeyExists('cdata', options);\r\n helper.ensureKeyExists('doctype', options);\r\n helper.ensureKeyExists('type', options);\r\n helper.ensureKeyExists('name', options);\r\n helper.ensureKeyExists('elements', options);\r\n helper.ensureKeyExists('parent', options);\r\n helper.checkFnExists('doctype', options);\r\n helper.checkFnExists('instruction', options);\r\n helper.checkFnExists('cdata', options);\r\n helper.checkFnExists('comment', options);\r\n helper.checkFnExists('text', options);\r\n helper.checkFnExists('instructionName', options);\r\n helper.checkFnExists('elementName', options);\r\n helper.checkFnExists('attributeName', options);\r\n helper.checkFnExists('attributeValue', options);\r\n helper.checkFnExists('attributes', options);\r\n return options;\r\n}\r\n\r\nfunction nativeType(value) {\r\n var nValue = Number(value);\r\n if (!isNaN(nValue)) {\r\n return nValue;\r\n }\r\n var bValue = value.toLowerCase();\r\n if (bValue === 'true') {\r\n return true;\r\n } else if (bValue === 'false') {\r\n return false;\r\n }\r\n return value;\r\n}\r\n\r\nfunction addField(type, value) {\r\n var key;\r\n if (options.compact) {\r\n if (\r\n !currentElement[options[type + 'Key']] &&\r\n (isArray(options.alwaysArray) ? options.alwaysArray.indexOf(options[type + 'Key']) !== -1 : options.alwaysArray)\r\n ) {\r\n currentElement[options[type + 'Key']] = [];\r\n }\r\n if (currentElement[options[type + 'Key']] && !isArray(currentElement[options[type + 'Key']])) {\r\n currentElement[options[type + 'Key']] = [currentElement[options[type + 'Key']]];\r\n }\r\n if (type + 'Fn' in options && typeof value === 'string') {\r\n value = options[type + 'Fn'](value, currentElement);\r\n }\r\n if (type === 'instruction' && ('instructionFn' in options || 'instructionNameFn' in options)) {\r\n for (key in value) {\r\n if (value.hasOwnProperty(key)) {\r\n if ('instructionFn' in options) {\r\n value[key] = options.instructionFn(value[key], key, currentElement);\r\n } else {\r\n var temp = value[key];\r\n delete value[key];\r\n value[options.instructionNameFn(key, temp, currentElement)] = temp;\r\n }\r\n }\r\n }\r\n }\r\n if (isArray(currentElement[options[type + 'Key']])) {\r\n currentElement[options[type + 'Key']].push(value);\r\n } else {\r\n currentElement[options[type + 'Key']] = value;\r\n }\r\n } else {\r\n if (!currentElement[options.elementsKey]) {\r\n currentElement[options.elementsKey] = [];\r\n }\r\n var element = {};\r\n element[options.typeKey] = type;\r\n if (type === 'instruction') {\r\n for (key in value) {\r\n if (value.hasOwnProperty(key)) {\r\n break;\r\n }\r\n }\r\n element[options.nameKey] = 'instructionNameFn' in options ? options.instructionNameFn(key, value, currentElement) : key;\r\n if (options.instructionHasAttributes) {\r\n element[options.attributesKey] = value[key][options.attributesKey];\r\n if ('instructionFn' in options) {\r\n element[options.attributesKey] = options.instructionFn(element[options.attributesKey], key, currentElement);\r\n }\r\n } else {\r\n if ('instructionFn' in options) {\r\n value[key] = options.instructionFn(value[key], key, currentElement);\r\n }\r\n element[options.instructionKey] = value[key];\r\n }\r\n } else {\r\n if (type + 'Fn' in options) {\r\n value = options[type + 'Fn'](value, currentElement);\r\n }\r\n element[options[type + 'Key']] = value;\r\n }\r\n if (options.addParent) {\r\n element[options.parentKey] = currentElement;\r\n }\r\n currentElement[options.elementsKey].push(element);\r\n }\r\n}\r\n\r\nfunction manipulateAttributes(attributes) {\r\n if ('attributesFn' in options && attributes) {\r\n attributes = options.attributesFn(attributes, currentElement);\r\n }\r\n if ((options.trim || 'attributeValueFn' in options || 'attributeNameFn' in options || options.nativeTypeAttributes) && attributes) {\r\n var key;\r\n for (key in attributes) {\r\n if (attributes.hasOwnProperty(key)) {\r\n if (options.trim) attributes[key] = attributes[key].trim();\r\n if (options.nativeTypeAttributes) {\r\n attributes[key] = nativeType(attributes[key]);\r\n }\r\n if ('attributeValueFn' in options) attributes[key] = options.attributeValueFn(attributes[key], key, currentElement);\r\n if ('attributeNameFn' in options) {\r\n var temp = attributes[key];\r\n delete attributes[key];\r\n attributes[options.attributeNameFn(key, attributes[key], currentElement)] = temp;\r\n }\r\n }\r\n }\r\n }\r\n return attributes;\r\n}\r\n\r\nfunction onInstruction(instruction) {\r\n var attributes = {};\r\n if (instruction.body && (instruction.name.toLowerCase() === 'xml' || options.instructionHasAttributes)) {\r\n var attrsRegExp = /([\\w:-]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|(\\w+))\\s*/g;\r\n var match;\r\n while ((match = attrsRegExp.exec(instruction.body)) !== null) {\r\n attributes[match[1]] = match[2] || match[3] || match[4];\r\n }\r\n attributes = manipulateAttributes(attributes);\r\n }\r\n if (instruction.name.toLowerCase() === 'xml') {\r\n if (options.ignoreDeclaration) {\r\n return;\r\n }\r\n currentElement[options.declarationKey] = {};\r\n if (Object.keys(attributes).length) {\r\n currentElement[options.declarationKey][options.attributesKey] = attributes;\r\n }\r\n if (options.addParent) {\r\n currentElement[options.declarationKey][options.parentKey] = currentElement;\r\n }\r\n } else {\r\n if (options.ignoreInstruction) {\r\n return;\r\n }\r\n if (options.trim) {\r\n instruction.body = instruction.body.trim();\r\n }\r\n var value = {};\r\n if (options.instructionHasAttributes && Object.keys(attributes).length) {\r\n value[instruction.name] = {};\r\n value[instruction.name][options.attributesKey] = attributes;\r\n } else {\r\n value[instruction.name] = instruction.body;\r\n }\r\n addField('instruction', value);\r\n }\r\n}\r\n\r\nfunction onStartElement(name, attributes) {\r\n var element;\r\n if (typeof name === 'object') {\r\n attributes = name.attributes;\r\n name = name.name;\r\n }\r\n attributes = manipulateAttributes(attributes);\r\n if ('elementNameFn' in options) {\r\n name = options.elementNameFn(name, currentElement);\r\n }\r\n if (options.compact) {\r\n element = {};\r\n if (!options.ignoreAttributes && attributes && Object.keys(attributes).length) {\r\n element[options.attributesKey] = {};\r\n var key;\r\n for (key in attributes) {\r\n if (attributes.hasOwnProperty(key)) {\r\n element[options.attributesKey][key] = attributes[key];\r\n }\r\n }\r\n }\r\n if (\r\n !(name in currentElement) &&\r\n (isArray(options.alwaysArray) ? options.alwaysArray.indexOf(name) !== -1 : options.alwaysArray)\r\n ) {\r\n currentElement[name] = [];\r\n }\r\n if (currentElement[name] && !isArray(currentElement[name])) {\r\n currentElement[name] = [currentElement[name]];\r\n }\r\n if (isArray(currentElement[name])) {\r\n currentElement[name].push(element);\r\n } else {\r\n currentElement[name] = element;\r\n }\r\n } else {\r\n if (!currentElement[options.elementsKey]) {\r\n currentElement[options.elementsKey] = [];\r\n }\r\n element = {};\r\n element[options.typeKey] = 'element';\r\n element[options.nameKey] = name;\r\n if (!options.ignoreAttributes && attributes && Object.keys(attributes).length) {\r\n element[options.attributesKey] = attributes;\r\n }\r\n if (options.alwaysChildren) {\r\n element[options.elementsKey] = [];\r\n }\r\n currentElement[options.elementsKey].push(element);\r\n }\r\n element[options.parentKey] = currentElement; // will be deleted in onEndElement() if !options.addParent\r\n currentElement = element;\r\n}\r\n\r\nfunction onText(text) {\r\n if (options.ignoreText) {\r\n return;\r\n }\r\n if (!text.trim() && !options.captureSpacesBetweenElements) {\r\n return;\r\n }\r\n if (options.trim) {\r\n text = text.trim();\r\n }\r\n if (options.nativeType) {\r\n text = nativeType(text);\r\n }\r\n if (options.sanitize) {\r\n text = text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\r\n }\r\n addField('text', text);\r\n}\r\n\r\nfunction onComment(comment) {\r\n if (options.ignoreComment) {\r\n return;\r\n }\r\n if (options.trim) {\r\n comment = comment.trim();\r\n }\r\n addField('comment', comment);\r\n}\r\n\r\nfunction onEndElement(name) {\r\n var parentElement = currentElement[options.parentKey];\r\n if (!options.addParent) {\r\n delete currentElement[options.parentKey];\r\n }\r\n currentElement = parentElement;\r\n}\r\n\r\nfunction onCdata(cdata) {\r\n if (options.ignoreCdata) {\r\n return;\r\n }\r\n if (options.trim) {\r\n cdata = cdata.trim();\r\n }\r\n addField('cdata', cdata);\r\n}\r\n\r\nfunction onDoctype(doctype) {\r\n if (options.ignoreDoctype) {\r\n return;\r\n }\r\n doctype = doctype.replace(/^ /, '');\r\n if (options.trim) {\r\n doctype = doctype.trim();\r\n }\r\n addField('doctype', doctype);\r\n}\r\n\r\nfunction onError(error) {\r\n error.note = error; //console.error(error);\r\n}\r\n\r\nmodule.exports = function (xml, userOptions) {\r\n\r\n var parser = pureJsParser ? sax.parser(true, {}) : parser = new expat.Parser('UTF-8');\r\n var result = {};\r\n currentElement = result;\r\n\r\n options = validateOptions(userOptions);\r\n\r\n if (pureJsParser) {\r\n parser.opt = {strictEntities: true};\r\n parser.onopentag = onStartElement;\r\n parser.ontext = onText;\r\n parser.oncomment = onComment;\r\n parser.onclosetag = onEndElement;\r\n parser.onerror = onError;\r\n parser.oncdata = onCdata;\r\n parser.ondoctype = onDoctype;\r\n parser.onprocessinginstruction = onInstruction;\r\n } else {\r\n parser.on('startElement', onStartElement);\r\n parser.on('text', onText);\r\n parser.on('comment', onComment);\r\n parser.on('endElement', onEndElement);\r\n parser.on('error', onError);\r\n //parser.on('startCdata', onStartCdata);\r\n //parser.on('endCdata', onEndCdata);\r\n //parser.on('entityDecl', onEntityDecl);\r\n }\r\n\r\n if (pureJsParser) {\r\n parser.write(xml).close();\r\n } else {\r\n if (!parser.parse(xml)) {\r\n throw new Error('XML parsing error: ' + parser.getError());\r\n }\r\n }\r\n\r\n if (result[options.elementsKey]) {\r\n var temp = result[options.elementsKey];\r\n delete result[options.elementsKey];\r\n result[options.elementsKey] = temp;\r\n delete result.text;\r\n }\r\n\r\n return result;\r\n\r\n};\r\n\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/xml2js.js?");
/***/ }),
/***/ "../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/xml2json.js":
/*!******************************************************************************!*\
!*** ../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/xml2json.js ***!
\******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var helper = __webpack_require__(/*! ./options-helper */ \"../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/options-helper.js\");\r\nvar xml2js = __webpack_require__(/*! ./xml2js */ \"../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/xml2js.js\");\r\n\r\nfunction validateOptions (userOptions) {\r\n var options = helper.copyOptions(userOptions);\r\n helper.ensureSpacesExists(options);\r\n return options;\r\n}\r\n\r\nmodule.exports = function(xml, userOptions) {\r\n var options, js, json, parentKey;\r\n options = validateOptions(userOptions);\r\n js = xml2js(xml, options);\r\n parentKey = 'compact' in options && options.compact ? '_parent' : 'parent';\r\n // parentKey = ptions.compact ? '_parent' : 'parent'; // consider this\r\n if ('addParent' in options && options.addParent) {\r\n json = JSON.stringify(js, function (k, v) { return k === parentKey? '_' : v; }, options.spaces);\r\n } else {\r\n json = JSON.stringify(js, null, options.spaces);\r\n }\r\n return json.replace(/\\u2028/g, '\\\\u2028').replace(/\\u2029/g, '\\\\u2029');\r\n};\r\n\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-freemind/node_modules/xml-js/lib/xml2json.js?");
/***/ }),
/***/ "../simple-mind-map-plugin-freemind/toFreemind.js":
/*!********************************************************!*\
!*** ../simple-mind-map-plugin-freemind/toFreemind.js ***!
\********************************************************/
/*! exports provided: smmToFreemind */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"smmToFreemind\", function() { return smmToFreemind; });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"../simple-mind-map-plugin-freemind/utils.js\");\n\nconst prefix = `<map version=\"1.0.1\">\n<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->\n`;\nconst postfix = `</map>`;\n\n// smm转换为mm格式\n// 转换时只支持保留节点文本、备注(需自行提供转换方法)、超链接和一定的手动设置(不是主题提供的样式)的样式,当然,如果是富文本模式,那么内联的样式是会生效的。\n// 关于图片:Freemind不支持base64格式,只支持在线地址的图片,所以如果你思维导图节点的图片并不是在线地址,那么是是无法渲染的,可以通过transformImage选项来设置。\n// 关于备注:Freemind备注是html格式,虽然simple-mind-map官方Demo提供的是Markdown格式,但实际上是不限格式的,所以转换方法是需要根据你的实际格式来转换的,如果你的也是html格式,那么不需要转直接透传,否则需要自行实现转换方法。\n// 关于公式:Freemind不支持数学公式,所以默认会删除公式内容,如果你想保留,那么可以通过withFormula选项设置、\nconst smmToFreemind = (json, opt) => {\n const {\n transformNote,\n transformImage,\n withStyle,\n withFormula\n } = opt || {};\n const walk = node => {\n let {\n text,\n richText,\n hyperlink,\n note,\n image,\n color,\n fillColor,\n lineColor,\n lineWidth,\n fontWeight,\n fontFamily,\n fontSize,\n fontStyle\n } = node.data;\n // 样式\n let style = '';\n if (withStyle) {\n if (color) {\n style += `COLOR=\"${color}\"`;\n }\n if (fillColor) {\n style += ` BACKGROUND_COLOR=\"${fillColor}\"`;\n }\n }\n let str = `<node ${style} CREATED=\"${Date.now()}\" ID=\"ID_${String(Math.random()).split('.')[1].slice(0, 9)}\"`;\n // 超链接\n if (hyperlink) {\n str += ` LINK=\"${hyperlink.replace(/&/g, '&amp;')}\"`;\n }\n // 富文本\n if (richText) {\n // 删除公式内容\n if (!withFormula) {\n text = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[\"removeFormulaFromHtmlStr\"])(text);\n }\n str += `>\n <richcontent TYPE=\"NODE\">\n <html>\n <head></head>\n <body>\n ${image && transformImage && transformImage(image) ? `<p>\n <img src=\"${transformImage(image)}\" />\n </p>` : ''}\n ${text}\n </body>\n </html>\n </richcontent>\n `;\n } else {\n // 普通文本\n str += ` TEXT=\"${text}\">`;\n // 图片\n if (image && transformImage && transformImage(image)) {\n str += `<richcontent TYPE=\"NODE\">\n <html>\n <head></head>\n <body>\n <img src=\"${transformImage(image)}\" />\n </body>\n </html>\n </richcontent>`;\n }\n }\n if (withStyle) {\n // 连线\n if (lineColor || lineWidth !== undefined) {\n str += `<edge ${lineColor ? `COLOR=\"${lineColor}\"` : ''} ${lineWidth !== undefined ? `WIDTH=\"${lineWidth}\"` : ''}/>`;\n }\n // 字体\n if (fontWeight === 'bold' || fontFamily || fontSize || fontStyle === 'italic') {\n str += `<font ${fontWeight === 'bold' ? `BOLD=\"true\"` : ''} ${fontStyle === 'italic' ? `ITALIC=\"true\"` : ''} ${fontFamily ? `NAME=\"${fontFamily}\"` : ''} ${fontSize ? `SIZE=\"${fontSize}\"` : ''}/>`;\n }\n }\n // 备注\n if (note && transformNote) {\n str += `<richcontent TYPE=\"NOTE\">\n <html>\n <head></head>\n <body>\n ${transformNote(note)}\n </body>\n </html>\n </richcontent>`;\n }\n // 子节点\n if (node.children && node.children.length > 0) {\n node.children.forEach(child => {\n str += walk(child) + '\\n';\n });\n }\n str += '</node>';\n return str;\n };\n const content = walk(json);\n return prefix + content + postfix;\n};\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-freemind/toFreemind.js?");
/***/ }),
/***/ "../simple-mind-map-plugin-freemind/utils.js":
/*!***************************************************!*\
!*** ../simple-mind-map-plugin-freemind/utils.js ***!
\***************************************************/
/*! exports provided: nodeRichTextToTextWithWrap, removeFormulaFromHtmlStr, readBlob, getImageSize */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"nodeRichTextToTextWithWrap\", function() { return nodeRichTextToTextWithWrap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeFormulaFromHtmlStr\", function() { return removeFormulaFromHtmlStr; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"readBlob\", function() { return readBlob; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getImageSize\", function() { return getImageSize; });\n// 将<p><span></span><p>形式的节点富文本内容转换成\\n换行的文本\n// 会过滤掉节点中的格式节点\nlet nodeRichTextToTextWithWrapEl = null;\nconst nodeRichTextToTextWithWrap = html => {\n if (!nodeRichTextToTextWithWrapEl) {\n nodeRichTextToTextWithWrapEl = document.createElement('div');\n }\n nodeRichTextToTextWithWrapEl.innerHTML = html;\n const childNodes = nodeRichTextToTextWithWrapEl.childNodes;\n let res = '';\n for (let i = 0; i < childNodes.length; i++) {\n const node = childNodes[i];\n if (node.nodeType === 1) {\n // 元素节点\n if (node.tagName.toLowerCase() === 'p') {\n res += node.textContent + '\\n';\n } else {\n res += node.textContent;\n }\n } else if (node.nodeType === 3) {\n // 文本节点\n res += node.nodeValue;\n }\n }\n return res.replace(/\\n$/, '');\n};\n\n// 移除html字符串中的公式节点\nlet removeFormulaFromHtmlStrEl = null;\nconst removeFormulaFromHtmlStr = html => {\n if (!removeFormulaFromHtmlStrEl) {\n removeFormulaFromHtmlStrEl = document.createElement('div');\n }\n removeFormulaFromHtmlStrEl.innerHTML = html;\n const formulaList = removeFormulaFromHtmlStrEl.querySelectorAll('.ql-formula');\n Array.from(formulaList).forEach(el => {\n el.parentNode.removeChild(el);\n });\n return removeFormulaFromHtmlStrEl.innerHTML;\n};\n\n// 将blob转成data:url\nconst readBlob = blob => {\n return new Promise((resolve, reject) => {\n let reader = new FileReader();\n reader.onload = evt => {\n resolve(evt.target.result);\n };\n reader.onerror = err => {\n reject(err);\n };\n reader.readAsDataURL(blob);\n });\n};\n\n// 获取图片大小\nconst getImageSize = src => {\n return new Promise(resolve => {\n let img = new Image();\n img.src = src;\n img.onload = () => {\n resolve({\n width: img.width,\n height: img.height\n });\n };\n img.onerror = () => {\n resolve({\n width: 0,\n height: 0\n });\n };\n });\n};\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-freemind/utils.js?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/index.js":
/*!*************************************************!*\
!*** ../simple-mind-map-plugin-themes/index.js ***!
\*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _src_dark_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/dark/index */ \"../simple-mind-map-plugin-themes/src/dark/index.js\");\n/* harmony import */ var _src_light_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/light/index */ \"../simple-mind-map-plugin-themes/src/light/index.js\");\n\n\nconst themeList = [..._src_dark_index__WEBPACK_IMPORTED_MODULE_0__[\"default\"], ..._src_light_index__WEBPACK_IMPORTED_MODULE_1__[\"default\"]];\n\n// 主题扩展插件\nconst Themes = {\n darkList: _src_dark_index__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n lightList: _src_light_index__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n init(MindMap) {\n themeList.forEach(item => {\n MindMap.defineTheme(item.value, item.theme);\n });\n },\n remove(MindMap) {\n themeList.forEach(item => {\n MindMap.removeTheme(item.value);\n });\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Themes);\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/index.js?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/autumn.webp":
/*!*************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/autumn.webp ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/autumn.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/autumn.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/avocado.webp":
/*!**************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/avocado.webp ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/avocado.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/avocado.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/blackGold.webp":
/*!****************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/blackGold.webp ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/blackGold.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/blackGold.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/blackHumour.webp":
/*!******************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/blackHumour.webp ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/blackHumour.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/blackHumour.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/blueSky.webp":
/*!**************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/blueSky.webp ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/blueSky.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/blueSky.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/brainImpairedPink.webp":
/*!************************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/brainImpairedPink.webp ***!
\************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/brainImpairedPink.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/brainImpairedPink.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/cactus.webp":
/*!*************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/cactus.webp ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/cactus.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/cactus.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classic.webp":
/*!**************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classic.webp ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classic.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classic.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classic10.webp":
/*!****************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classic10.webp ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classic10.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classic10.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classic11.webp":
/*!****************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classic11.webp ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classic11.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classic11.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classic12.webp":
/*!****************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classic12.webp ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classic12.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classic12.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classic13.webp":
/*!****************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classic13.webp ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classic13.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classic13.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classic14.webp":
/*!****************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classic14.webp ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classic14.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classic14.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classic15.webp":
/*!****************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classic15.webp ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classic15.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classic15.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classic2.webp":
/*!***************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classic2.webp ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classic2.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classic2.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classic3.webp":
/*!***************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classic3.webp ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classic3.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classic3.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classic4.webp":
/*!***************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classic4.webp ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classic4.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classic4.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classic5.webp":
/*!***************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classic5.webp ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classic5.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classic5.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classic6.webp":
/*!***************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classic6.webp ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classic6.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classic6.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classic7.webp":
/*!***************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classic7.webp ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classic7.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classic7.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classic8.webp":
/*!***************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classic8.webp ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classic8.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classic8.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classic9.webp":
/*!***************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classic9.webp ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classic9.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classic9.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classicBlue.webp":
/*!******************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classicBlue.webp ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classicBlue.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classicBlue.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/classicGreen.webp":
/*!*******************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/classicGreen.webp ***!
\*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/classicGreen.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/classicGreen.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/coffee.webp":
/*!*************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/coffee.webp ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/coffee.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/coffee.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/courseGreen.webp":
/*!******************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/courseGreen.webp ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/courseGreen.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/courseGreen.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/dark.webp":
/*!***********************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/dark.webp ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/dark.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/dark.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/dark2.webp":
/*!************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/dark2.webp ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/dark2.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/dark2.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/dark3.webp":
/*!************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/dark3.webp ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/dark3.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/dark3.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/dark4.webp":
/*!************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/dark4.webp ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/dark4.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/dark4.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/dark5.webp":
/*!************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/dark5.webp ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/dark5.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/dark5.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/dark6.webp":
/*!************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/dark6.webp ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/dark6.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/dark6.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/dark7.webp":
/*!************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/dark7.webp ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/dark7.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/dark7.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/darkNightLceBlade.webp":
/*!************************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/darkNightLceBlade.webp ***!
\************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/darkNightLceBlade.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/darkNightLceBlade.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/default.webp":
/*!**************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/default.webp ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/default.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/default.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/earthYellow.webp":
/*!******************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/earthYellow.webp ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/earthYellow.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/earthYellow.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/freshGreen.webp":
/*!*****************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/freshGreen.webp ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/freshGreen.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/freshGreen.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/freshRed.webp":
/*!***************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/freshRed.webp ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/freshRed.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/freshRed.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/gold.webp":
/*!***********************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/gold.webp ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/gold.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/gold.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/greenLeaf.webp":
/*!****************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/greenLeaf.webp ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/greenLeaf.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/greenLeaf.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/lateNightOffice.webp":
/*!**********************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/lateNightOffice.webp ***!
\**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/lateNightOffice.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/lateNightOffice.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/lemonBubbles.webp":
/*!*******************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/lemonBubbles.webp ***!
\*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/lemonBubbles.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/lemonBubbles.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/minions.webp":
/*!**************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/minions.webp ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/minions.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/minions.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/mint.webp":
/*!***********************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/mint.webp ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/mint.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/mint.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/morandi.webp":
/*!**************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/morandi.webp ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/morandi.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/morandi.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/neonLamp.webp":
/*!***************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/neonLamp.webp ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/neonLamp.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/neonLamp.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/orangeJuice.webp":
/*!******************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/orangeJuice.webp ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/orangeJuice.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/orangeJuice.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/oreo.webp":
/*!***********************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/oreo.webp ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/oreo.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/oreo.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/pinkGrape.webp":
/*!****************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/pinkGrape.webp ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/pinkGrape.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/pinkGrape.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/redSpirit.webp":
/*!****************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/redSpirit.webp ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/redSpirit.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/redSpirit.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/romanticPurple.webp":
/*!*********************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/romanticPurple.webp ***!
\*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/romanticPurple.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/romanticPurple.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/rose.webp":
/*!***********************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/rose.webp ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/rose.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/rose.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/seaBlueLine.webp":
/*!******************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/seaBlueLine.webp ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/seaBlueLine.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/seaBlueLine.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/shallowSea.webp":
/*!*****************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/shallowSea.webp ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/shallowSea.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/shallowSea.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/simpleBlack.webp":
/*!******************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/simpleBlack.webp ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/simpleBlack.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/simpleBlack.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/skyGreen.webp":
/*!***************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/skyGreen.webp ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/skyGreen.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/skyGreen.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/src/imgs/vitalityOrange.webp":
/*!*********************************************************************!*\
!*** ../simple-mind-map-plugin-themes/src/imgs/vitalityOrange.webp ***!
\*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/vitalityOrange.webp\";\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/src/imgs/vitalityOrange.webp?");
/***/ }),
/***/ "../simple-mind-map-plugin-themes/themeImgMap.js":
/*!*******************************************************!*\
!*** ../simple-mind-map-plugin-themes/themeImgMap.js ***!
\*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _src_imgs_default_webp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/imgs/default.webp */ \"../simple-mind-map-plugin-themes/src/imgs/default.webp\");\n/* harmony import */ var _src_imgs_default_webp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_default_webp__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _src_imgs_minions_webp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/imgs/minions.webp */ \"../simple-mind-map-plugin-themes/src/imgs/minions.webp\");\n/* harmony import */ var _src_imgs_minions_webp__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_minions_webp__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _src_imgs_pinkGrape_webp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/imgs/pinkGrape.webp */ \"../simple-mind-map-plugin-themes/src/imgs/pinkGrape.webp\");\n/* harmony import */ var _src_imgs_pinkGrape_webp__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_pinkGrape_webp__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _src_imgs_mint_webp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/imgs/mint.webp */ \"../simple-mind-map-plugin-themes/src/imgs/mint.webp\");\n/* harmony import */ var _src_imgs_mint_webp__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_mint_webp__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _src_imgs_gold_webp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/imgs/gold.webp */ \"../simple-mind-map-plugin-themes/src/imgs/gold.webp\");\n/* harmony import */ var _src_imgs_gold_webp__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_gold_webp__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _src_imgs_vitalityOrange_webp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/imgs/vitalityOrange.webp */ \"../simple-mind-map-plugin-themes/src/imgs/vitalityOrange.webp\");\n/* harmony import */ var _src_imgs_vitalityOrange_webp__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_vitalityOrange_webp__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _src_imgs_greenLeaf_webp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./src/imgs/greenLeaf.webp */ \"../simple-mind-map-plugin-themes/src/imgs/greenLeaf.webp\");\n/* harmony import */ var _src_imgs_greenLeaf_webp__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_greenLeaf_webp__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _src_imgs_skyGreen_webp__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./src/imgs/skyGreen.webp */ \"../simple-mind-map-plugin-themes/src/imgs/skyGreen.webp\");\n/* harmony import */ var _src_imgs_skyGreen_webp__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_skyGreen_webp__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _src_imgs_classicGreen_webp__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./src/imgs/classicGreen.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classicGreen.webp\");\n/* harmony import */ var _src_imgs_classicGreen_webp__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classicGreen_webp__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _src_imgs_classicBlue_webp__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./src/imgs/classicBlue.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classicBlue.webp\");\n/* harmony import */ var _src_imgs_classicBlue_webp__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classicBlue_webp__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _src_imgs_blueSky_webp__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./src/imgs/blueSky.webp */ \"../simple-mind-map-plugin-themes/src/imgs/blueSky.webp\");\n/* harmony import */ var _src_imgs_blueSky_webp__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_blueSky_webp__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _src_imgs_brainImpairedPink_webp__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./src/imgs/brainImpairedPink.webp */ \"../simple-mind-map-plugin-themes/src/imgs/brainImpairedPink.webp\");\n/* harmony import */ var _src_imgs_brainImpairedPink_webp__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_brainImpairedPink_webp__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _src_imgs_earthYellow_webp__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./src/imgs/earthYellow.webp */ \"../simple-mind-map-plugin-themes/src/imgs/earthYellow.webp\");\n/* harmony import */ var _src_imgs_earthYellow_webp__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_earthYellow_webp__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var _src_imgs_freshGreen_webp__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./src/imgs/freshGreen.webp */ \"../simple-mind-map-plugin-themes/src/imgs/freshGreen.webp\");\n/* harmony import */ var _src_imgs_freshGreen_webp__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_freshGreen_webp__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var _src_imgs_freshRed_webp__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./src/imgs/freshRed.webp */ \"../simple-mind-map-plugin-themes/src/imgs/freshRed.webp\");\n/* harmony import */ var _src_imgs_freshRed_webp__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_freshRed_webp__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var _src_imgs_romanticPurple_webp__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./src/imgs/romanticPurple.webp */ \"../simple-mind-map-plugin-themes/src/imgs/romanticPurple.webp\");\n/* harmony import */ var _src_imgs_romanticPurple_webp__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_romanticPurple_webp__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var _src_imgs_simpleBlack_webp__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./src/imgs/simpleBlack.webp */ \"../simple-mind-map-plugin-themes/src/imgs/simpleBlack.webp\");\n/* harmony import */ var _src_imgs_simpleBlack_webp__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_simpleBlack_webp__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var _src_imgs_courseGreen_webp__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./src/imgs/courseGreen.webp */ \"../simple-mind-map-plugin-themes/src/imgs/courseGreen.webp\");\n/* harmony import */ var _src_imgs_courseGreen_webp__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_courseGreen_webp__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var _src_imgs_coffee_webp__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./src/imgs/coffee.webp */ \"../simple-mind-map-plugin-themes/src/imgs/coffee.webp\");\n/* harmony import */ var _src_imgs_coffee_webp__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_coffee_webp__WEBPACK_IMPORTED_MODULE_18__);\n/* harmony import */ var _src_imgs_redSpirit_webp__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./src/imgs/redSpirit.webp */ \"../simple-mind-map-plugin-themes/src/imgs/redSpirit.webp\");\n/* harmony import */ var _src_imgs_redSpirit_webp__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_redSpirit_webp__WEBPACK_IMPORTED_MODULE_19__);\n/* harmony import */ var _src_imgs_blackHumour_webp__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./src/imgs/blackHumour.webp */ \"../simple-mind-map-plugin-themes/src/imgs/blackHumour.webp\");\n/* harmony import */ var _src_imgs_blackHumour_webp__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_blackHumour_webp__WEBPACK_IMPORTED_MODULE_20__);\n/* harmony import */ var _src_imgs_lateNightOffice_webp__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./src/imgs/lateNightOffice.webp */ \"../simple-mind-map-plugin-themes/src/imgs/lateNightOffice.webp\");\n/* harmony import */ var _src_imgs_lateNightOffice_webp__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_lateNightOffice_webp__WEBPACK_IMPORTED_MODULE_21__);\n/* harmony import */ var _src_imgs_blackGold_webp__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./src/imgs/blackGold.webp */ \"../simple-mind-map-plugin-themes/src/imgs/blackGold.webp\");\n/* harmony import */ var _src_imgs_blackGold_webp__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_blackGold_webp__WEBPACK_IMPORTED_MODULE_22__);\n/* harmony import */ var _src_imgs_autumn_webp__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./src/imgs/autumn.webp */ \"../simple-mind-map-plugin-themes/src/imgs/autumn.webp\");\n/* harmony import */ var _src_imgs_autumn_webp__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_autumn_webp__WEBPACK_IMPORTED_MODULE_23__);\n/* harmony import */ var _src_imgs_avocado_webp__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./src/imgs/avocado.webp */ \"../simple-mind-map-plugin-themes/src/imgs/avocado.webp\");\n/* harmony import */ var _src_imgs_avocado_webp__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_avocado_webp__WEBPACK_IMPORTED_MODULE_24__);\n/* harmony import */ var _src_imgs_orangeJuice_webp__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./src/imgs/orangeJuice.webp */ \"../simple-mind-map-plugin-themes/src/imgs/orangeJuice.webp\");\n/* harmony import */ var _src_imgs_orangeJuice_webp__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_orangeJuice_webp__WEBPACK_IMPORTED_MODULE_25__);\n/* harmony import */ var _src_imgs_oreo_webp__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./src/imgs/oreo.webp */ \"../simple-mind-map-plugin-themes/src/imgs/oreo.webp\");\n/* harmony import */ var _src_imgs_oreo_webp__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_oreo_webp__WEBPACK_IMPORTED_MODULE_26__);\n/* harmony import */ var _src_imgs_shallowSea_webp__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./src/imgs/shallowSea.webp */ \"../simple-mind-map-plugin-themes/src/imgs/shallowSea.webp\");\n/* harmony import */ var _src_imgs_shallowSea_webp__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_shallowSea_webp__WEBPACK_IMPORTED_MODULE_27__);\n/* harmony import */ var _src_imgs_lemonBubbles_webp__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./src/imgs/lemonBubbles.webp */ \"../simple-mind-map-plugin-themes/src/imgs/lemonBubbles.webp\");\n/* harmony import */ var _src_imgs_lemonBubbles_webp__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_lemonBubbles_webp__WEBPACK_IMPORTED_MODULE_28__);\n/* harmony import */ var _src_imgs_rose_webp__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./src/imgs/rose.webp */ \"../simple-mind-map-plugin-themes/src/imgs/rose.webp\");\n/* harmony import */ var _src_imgs_rose_webp__WEBPACK_IMPORTED_MODULE_29___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_rose_webp__WEBPACK_IMPORTED_MODULE_29__);\n/* harmony import */ var _src_imgs_seaBlueLine_webp__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./src/imgs/seaBlueLine.webp */ \"../simple-mind-map-plugin-themes/src/imgs/seaBlueLine.webp\");\n/* harmony import */ var _src_imgs_seaBlueLine_webp__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_seaBlueLine_webp__WEBPACK_IMPORTED_MODULE_30__);\n/* harmony import */ var _src_imgs_neonLamp_webp__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./src/imgs/neonLamp.webp */ \"../simple-mind-map-plugin-themes/src/imgs/neonLamp.webp\");\n/* harmony import */ var _src_imgs_neonLamp_webp__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_neonLamp_webp__WEBPACK_IMPORTED_MODULE_31__);\n/* harmony import */ var _src_imgs_darkNightLceBlade_webp__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./src/imgs/darkNightLceBlade.webp */ \"../simple-mind-map-plugin-themes/src/imgs/darkNightLceBlade.webp\");\n/* harmony import */ var _src_imgs_darkNightLceBlade_webp__WEBPACK_IMPORTED_MODULE_32___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_darkNightLceBlade_webp__WEBPACK_IMPORTED_MODULE_32__);\n/* harmony import */ var _src_imgs_morandi_webp__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./src/imgs/morandi.webp */ \"../simple-mind-map-plugin-themes/src/imgs/morandi.webp\");\n/* harmony import */ var _src_imgs_morandi_webp__WEBPACK_IMPORTED_MODULE_33___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_morandi_webp__WEBPACK_IMPORTED_MODULE_33__);\n/* harmony import */ var _src_imgs_cactus_webp__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./src/imgs/cactus.webp */ \"../simple-mind-map-plugin-themes/src/imgs/cactus.webp\");\n/* harmony import */ var _src_imgs_cactus_webp__WEBPACK_IMPORTED_MODULE_34___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_cactus_webp__WEBPACK_IMPORTED_MODULE_34__);\n/* harmony import */ var _src_imgs_dark_webp__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./src/imgs/dark.webp */ \"../simple-mind-map-plugin-themes/src/imgs/dark.webp\");\n/* harmony import */ var _src_imgs_dark_webp__WEBPACK_IMPORTED_MODULE_35___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_dark_webp__WEBPACK_IMPORTED_MODULE_35__);\n/* harmony import */ var _src_imgs_dark2_webp__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./src/imgs/dark2.webp */ \"../simple-mind-map-plugin-themes/src/imgs/dark2.webp\");\n/* harmony import */ var _src_imgs_dark2_webp__WEBPACK_IMPORTED_MODULE_36___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_dark2_webp__WEBPACK_IMPORTED_MODULE_36__);\n/* harmony import */ var _src_imgs_dark3_webp__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./src/imgs/dark3.webp */ \"../simple-mind-map-plugin-themes/src/imgs/dark3.webp\");\n/* harmony import */ var _src_imgs_dark3_webp__WEBPACK_IMPORTED_MODULE_37___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_dark3_webp__WEBPACK_IMPORTED_MODULE_37__);\n/* harmony import */ var _src_imgs_dark4_webp__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./src/imgs/dark4.webp */ \"../simple-mind-map-plugin-themes/src/imgs/dark4.webp\");\n/* harmony import */ var _src_imgs_dark4_webp__WEBPACK_IMPORTED_MODULE_38___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_dark4_webp__WEBPACK_IMPORTED_MODULE_38__);\n/* harmony import */ var _src_imgs_dark5_webp__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./src/imgs/dark5.webp */ \"../simple-mind-map-plugin-themes/src/imgs/dark5.webp\");\n/* harmony import */ var _src_imgs_dark5_webp__WEBPACK_IMPORTED_MODULE_39___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_dark5_webp__WEBPACK_IMPORTED_MODULE_39__);\n/* harmony import */ var _src_imgs_dark6_webp__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./src/imgs/dark6.webp */ \"../simple-mind-map-plugin-themes/src/imgs/dark6.webp\");\n/* harmony import */ var _src_imgs_dark6_webp__WEBPACK_IMPORTED_MODULE_40___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_dark6_webp__WEBPACK_IMPORTED_MODULE_40__);\n/* harmony import */ var _src_imgs_dark7_webp__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./src/imgs/dark7.webp */ \"../simple-mind-map-plugin-themes/src/imgs/dark7.webp\");\n/* harmony import */ var _src_imgs_dark7_webp__WEBPACK_IMPORTED_MODULE_41___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_dark7_webp__WEBPACK_IMPORTED_MODULE_41__);\n/* harmony import */ var _src_imgs_classic_webp__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./src/imgs/classic.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classic.webp\");\n/* harmony import */ var _src_imgs_classic_webp__WEBPACK_IMPORTED_MODULE_42___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classic_webp__WEBPACK_IMPORTED_MODULE_42__);\n/* harmony import */ var _src_imgs_classic2_webp__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./src/imgs/classic2.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classic2.webp\");\n/* harmony import */ var _src_imgs_classic2_webp__WEBPACK_IMPORTED_MODULE_43___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classic2_webp__WEBPACK_IMPORTED_MODULE_43__);\n/* harmony import */ var _src_imgs_classic3_webp__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./src/imgs/classic3.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classic3.webp\");\n/* harmony import */ var _src_imgs_classic3_webp__WEBPACK_IMPORTED_MODULE_44___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classic3_webp__WEBPACK_IMPORTED_MODULE_44__);\n/* harmony import */ var _src_imgs_classic4_webp__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./src/imgs/classic4.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classic4.webp\");\n/* harmony import */ var _src_imgs_classic4_webp__WEBPACK_IMPORTED_MODULE_45___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classic4_webp__WEBPACK_IMPORTED_MODULE_45__);\n/* harmony import */ var _src_imgs_classic5_webp__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./src/imgs/classic5.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classic5.webp\");\n/* harmony import */ var _src_imgs_classic5_webp__WEBPACK_IMPORTED_MODULE_46___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classic5_webp__WEBPACK_IMPORTED_MODULE_46__);\n/* harmony import */ var _src_imgs_classic6_webp__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./src/imgs/classic6.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classic6.webp\");\n/* harmony import */ var _src_imgs_classic6_webp__WEBPACK_IMPORTED_MODULE_47___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classic6_webp__WEBPACK_IMPORTED_MODULE_47__);\n/* harmony import */ var _src_imgs_classic7_webp__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./src/imgs/classic7.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classic7.webp\");\n/* harmony import */ var _src_imgs_classic7_webp__WEBPACK_IMPORTED_MODULE_48___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classic7_webp__WEBPACK_IMPORTED_MODULE_48__);\n/* harmony import */ var _src_imgs_classic8_webp__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./src/imgs/classic8.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classic8.webp\");\n/* harmony import */ var _src_imgs_classic8_webp__WEBPACK_IMPORTED_MODULE_49___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classic8_webp__WEBPACK_IMPORTED_MODULE_49__);\n/* harmony import */ var _src_imgs_classic9_webp__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./src/imgs/classic9.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classic9.webp\");\n/* harmony import */ var _src_imgs_classic9_webp__WEBPACK_IMPORTED_MODULE_50___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classic9_webp__WEBPACK_IMPORTED_MODULE_50__);\n/* harmony import */ var _src_imgs_classic10_webp__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./src/imgs/classic10.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classic10.webp\");\n/* harmony import */ var _src_imgs_classic10_webp__WEBPACK_IMPORTED_MODULE_51___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classic10_webp__WEBPACK_IMPORTED_MODULE_51__);\n/* harmony import */ var _src_imgs_classic11_webp__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./src/imgs/classic11.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classic11.webp\");\n/* harmony import */ var _src_imgs_classic11_webp__WEBPACK_IMPORTED_MODULE_52___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classic11_webp__WEBPACK_IMPORTED_MODULE_52__);\n/* harmony import */ var _src_imgs_classic12_webp__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./src/imgs/classic12.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classic12.webp\");\n/* harmony import */ var _src_imgs_classic12_webp__WEBPACK_IMPORTED_MODULE_53___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classic12_webp__WEBPACK_IMPORTED_MODULE_53__);\n/* harmony import */ var _src_imgs_classic13_webp__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./src/imgs/classic13.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classic13.webp\");\n/* harmony import */ var _src_imgs_classic13_webp__WEBPACK_IMPORTED_MODULE_54___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classic13_webp__WEBPACK_IMPORTED_MODULE_54__);\n/* harmony import */ var _src_imgs_classic14_webp__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./src/imgs/classic14.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classic14.webp\");\n/* harmony import */ var _src_imgs_classic14_webp__WEBPACK_IMPORTED_MODULE_55___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classic14_webp__WEBPACK_IMPORTED_MODULE_55__);\n/* harmony import */ var _src_imgs_classic15_webp__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./src/imgs/classic15.webp */ \"../simple-mind-map-plugin-themes/src/imgs/classic15.webp\");\n/* harmony import */ var _src_imgs_classic15_webp__WEBPACK_IMPORTED_MODULE_56___default = /*#__PURE__*/__webpack_require__.n(_src_imgs_classic15_webp__WEBPACK_IMPORTED_MODULE_56__);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// 主题图片映射\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n default: _src_imgs_default_webp__WEBPACK_IMPORTED_MODULE_0___default.a,\n dark: (_src_imgs_dark_webp__WEBPACK_IMPORTED_MODULE_35___default()),\n dark2: (_src_imgs_dark2_webp__WEBPACK_IMPORTED_MODULE_36___default()),\n dark3: (_src_imgs_dark3_webp__WEBPACK_IMPORTED_MODULE_37___default()),\n dark4: (_src_imgs_dark4_webp__WEBPACK_IMPORTED_MODULE_38___default()),\n dark5: (_src_imgs_dark5_webp__WEBPACK_IMPORTED_MODULE_39___default()),\n dark6: (_src_imgs_dark6_webp__WEBPACK_IMPORTED_MODULE_40___default()),\n dark7: (_src_imgs_dark7_webp__WEBPACK_IMPORTED_MODULE_41___default()),\n classic: (_src_imgs_classic_webp__WEBPACK_IMPORTED_MODULE_42___default()),\n classic2: (_src_imgs_classic2_webp__WEBPACK_IMPORTED_MODULE_43___default()),\n classic3: (_src_imgs_classic3_webp__WEBPACK_IMPORTED_MODULE_44___default()),\n classic4: (_src_imgs_classic4_webp__WEBPACK_IMPORTED_MODULE_45___default()),\n classic5: (_src_imgs_classic5_webp__WEBPACK_IMPORTED_MODULE_46___default()),\n classic6: (_src_imgs_classic6_webp__WEBPACK_IMPORTED_MODULE_47___default()),\n classic7: (_src_imgs_classic7_webp__WEBPACK_IMPORTED_MODULE_48___default()),\n classic8: (_src_imgs_classic8_webp__WEBPACK_IMPORTED_MODULE_49___default()),\n classic9: (_src_imgs_classic9_webp__WEBPACK_IMPORTED_MODULE_50___default()),\n classic10: (_src_imgs_classic10_webp__WEBPACK_IMPORTED_MODULE_51___default()),\n classic11: (_src_imgs_classic11_webp__WEBPACK_IMPORTED_MODULE_52___default()),\n classic12: (_src_imgs_classic12_webp__WEBPACK_IMPORTED_MODULE_53___default()),\n classic13: (_src_imgs_classic13_webp__WEBPACK_IMPORTED_MODULE_54___default()),\n classic14: (_src_imgs_classic14_webp__WEBPACK_IMPORTED_MODULE_55___default()),\n classic15: (_src_imgs_classic15_webp__WEBPACK_IMPORTED_MODULE_56___default()),\n minions: (_src_imgs_minions_webp__WEBPACK_IMPORTED_MODULE_1___default()),\n pinkGrape: (_src_imgs_pinkGrape_webp__WEBPACK_IMPORTED_MODULE_2___default()),\n mint: (_src_imgs_mint_webp__WEBPACK_IMPORTED_MODULE_3___default()),\n gold: (_src_imgs_gold_webp__WEBPACK_IMPORTED_MODULE_4___default()),\n vitalityOrange: (_src_imgs_vitalityOrange_webp__WEBPACK_IMPORTED_MODULE_5___default()),\n greenLeaf: (_src_imgs_greenLeaf_webp__WEBPACK_IMPORTED_MODULE_6___default()),\n skyGreen: (_src_imgs_skyGreen_webp__WEBPACK_IMPORTED_MODULE_7___default()),\n classicGreen: (_src_imgs_classicGreen_webp__WEBPACK_IMPORTED_MODULE_8___default()),\n classicBlue: (_src_imgs_classicBlue_webp__WEBPACK_IMPORTED_MODULE_9___default()),\n blueSky: (_src_imgs_blueSky_webp__WEBPACK_IMPORTED_MODULE_10___default()),\n brainImpairedPink: (_src_imgs_brainImpairedPink_webp__WEBPACK_IMPORTED_MODULE_11___default()),\n earthYellow: (_src_imgs_earthYellow_webp__WEBPACK_IMPORTED_MODULE_12___default()),\n freshGreen: (_src_imgs_freshGreen_webp__WEBPACK_IMPORTED_MODULE_13___default()),\n freshRed: (_src_imgs_freshRed_webp__WEBPACK_IMPORTED_MODULE_14___default()),\n romanticPurple: (_src_imgs_romanticPurple_webp__WEBPACK_IMPORTED_MODULE_15___default()),\n simpleBlack: (_src_imgs_simpleBlack_webp__WEBPACK_IMPORTED_MODULE_16___default()),\n courseGreen: (_src_imgs_courseGreen_webp__WEBPACK_IMPORTED_MODULE_17___default()),\n coffee: (_src_imgs_coffee_webp__WEBPACK_IMPORTED_MODULE_18___default()),\n redSpirit: (_src_imgs_redSpirit_webp__WEBPACK_IMPORTED_MODULE_19___default()),\n blackHumour: (_src_imgs_blackHumour_webp__WEBPACK_IMPORTED_MODULE_20___default()),\n lateNightOffice: (_src_imgs_lateNightOffice_webp__WEBPACK_IMPORTED_MODULE_21___default()),\n blackGold: (_src_imgs_blackGold_webp__WEBPACK_IMPORTED_MODULE_22___default()),\n autumn: (_src_imgs_autumn_webp__WEBPACK_IMPORTED_MODULE_23___default()),\n avocado: (_src_imgs_avocado_webp__WEBPACK_IMPORTED_MODULE_24___default()),\n orangeJuice: (_src_imgs_orangeJuice_webp__WEBPACK_IMPORTED_MODULE_25___default()),\n oreo: (_src_imgs_oreo_webp__WEBPACK_IMPORTED_MODULE_26___default()),\n shallowSea: (_src_imgs_shallowSea_webp__WEBPACK_IMPORTED_MODULE_27___default()),\n lemonBubbles: (_src_imgs_lemonBubbles_webp__WEBPACK_IMPORTED_MODULE_28___default()),\n rose: (_src_imgs_rose_webp__WEBPACK_IMPORTED_MODULE_29___default()),\n seaBlueLine: (_src_imgs_seaBlueLine_webp__WEBPACK_IMPORTED_MODULE_30___default()),\n neonLamp: (_src_imgs_neonLamp_webp__WEBPACK_IMPORTED_MODULE_31___default()),\n darkNightLceBlade: (_src_imgs_darkNightLceBlade_webp__WEBPACK_IMPORTED_MODULE_32___default()),\n morandi: (_src_imgs_morandi_webp__WEBPACK_IMPORTED_MODULE_33___default()),\n cactus: (_src_imgs_cactus_webp__WEBPACK_IMPORTED_MODULE_34___default())\n});\n\n//# sourceURL=webpack:///../simple-mind-map-plugin-themes/themeImgMap.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/character-entities/index.js":
/*!*******************************************************************!*\
!*** ../simple-mind-map/node_modules/character-entities/index.js ***!
\*******************************************************************/
/*! exports provided: characterEntities */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"characterEntities\", function() { return characterEntities; });\n/**\n * Map of named character references.\n *\n * @type {Record<string, string>}\n */\nconst characterEntities = {\n AElig: 'Æ',\n AMP: '&',\n Aacute: 'Á',\n Abreve: 'Ă',\n Acirc: 'Â',\n Acy: 'А',\n Afr: '𝔄',\n Agrave: 'À',\n Alpha: 'Α',\n Amacr: 'Ā',\n And: '⩓',\n Aogon: 'Ą',\n Aopf: '𝔸',\n ApplyFunction: '',\n Aring: 'Å',\n Ascr: '𝒜',\n Assign: '≔',\n Atilde: 'Ã',\n Auml: 'Ä',\n Backslash: '',\n Barv: '⫧',\n Barwed: '⌆',\n Bcy: 'Б',\n Because: '∵',\n Bernoullis: '',\n Beta: 'Β',\n Bfr: '𝔅',\n Bopf: '𝔹',\n Breve: '˘',\n Bscr: '',\n Bumpeq: '≎',\n CHcy: 'Ч',\n COPY: '©',\n Cacute: 'Ć',\n Cap: '⋒',\n CapitalDifferentialD: '',\n Cayleys: '',\n Ccaron: 'Č',\n Ccedil: 'Ç',\n Ccirc: 'Ĉ',\n Cconint: '∰',\n Cdot: 'Ċ',\n Cedilla: '¸',\n CenterDot: '·',\n Cfr: '',\n Chi: 'Χ',\n CircleDot: '⊙',\n CircleMinus: '⊖',\n CirclePlus: '⊕',\n CircleTimes: '⊗',\n ClockwiseContourIntegral: '∲',\n CloseCurlyDoubleQuote: '”',\n CloseCurlyQuote: '',\n Colon: '∷',\n Colone: '⩴',\n Congruent: '≡',\n Conint: '∯',\n ContourIntegral: '∮',\n Copf: '',\n Coproduct: '∐',\n CounterClockwiseContourIntegral: '∳',\n Cross: '',\n Cscr: '𝒞',\n Cup: '⋓',\n CupCap: '≍',\n DD: '',\n DDotrahd: '⤑',\n DJcy: 'Ђ',\n DScy: 'Ѕ',\n DZcy: 'Џ',\n Dagger: '‡',\n Darr: '↡',\n Dashv: '⫤',\n Dcaron: 'Ď',\n Dcy: 'Д',\n Del: '∇',\n Delta: 'Δ',\n Dfr: '𝔇',\n DiacriticalAcute: '´',\n DiacriticalDot: '˙',\n DiacriticalDoubleAcute: '˝',\n DiacriticalGrave: '`',\n DiacriticalTilde: '˜',\n Diamond: '⋄',\n DifferentialD: '',\n Dopf: '𝔻',\n Dot: '¨',\n DotDot: '⃜',\n DotEqual: '≐',\n DoubleContourIntegral: '∯',\n DoubleDot: '¨',\n DoubleDownArrow: '⇓',\n DoubleLeftArrow: '⇐',\n DoubleLeftRightArrow: '⇔',\n DoubleLeftTee: '⫤',\n DoubleLongLeftArrow: '⟸',\n DoubleLongLeftRightArrow: '⟺',\n DoubleLongRightArrow: '⟹',\n DoubleRightArrow: '⇒',\n DoubleRightTee: '⊨',\n DoubleUpArrow: '⇑',\n DoubleUpDownArrow: '⇕',\n DoubleVerticalBar: '∥',\n DownArrow: '↓',\n DownArrowBar: '⤓',\n DownArrowUpArrow: '⇵',\n DownBreve: '̑',\n DownLeftRightVector: '⥐',\n DownLeftTeeVector: '⥞',\n DownLeftVector: '↽',\n DownLeftVectorBar: '⥖',\n DownRightTeeVector: '⥟',\n DownRightVector: '⇁',\n DownRightVectorBar: '⥗',\n DownTee: '',\n DownTeeArrow: '↧',\n Downarrow: '⇓',\n Dscr: '𝒟',\n Dstrok: 'Đ',\n ENG: 'Ŋ',\n ETH: 'Ð',\n Eacute: 'É',\n Ecaron: 'Ě',\n Ecirc: 'Ê',\n Ecy: 'Э',\n Edot: 'Ė',\n Efr: '𝔈',\n Egrave: 'È',\n Element: '∈',\n Emacr: 'Ē',\n EmptySmallSquare: '◻',\n EmptyVerySmallSquare: '▫',\n Eogon: 'Ę',\n Eopf: '𝔼',\n Epsilon: 'Ε',\n Equal: '⩵',\n EqualTilde: '≂',\n Equilibrium: '⇌',\n Escr: '',\n Esim: '⩳',\n Eta: 'Η',\n Euml: 'Ë',\n Exists: '∃',\n ExponentialE: '',\n Fcy: 'Ф',\n Ffr: '𝔉',\n FilledSmallSquare: '◼',\n FilledVerySmallSquare: '▪',\n Fopf: '𝔽',\n ForAll: '∀',\n Fouriertrf: '',\n Fscr: '',\n GJcy: 'Ѓ',\n GT: '>',\n Gamma: 'Γ',\n Gammad: 'Ϝ',\n Gbreve: 'Ğ',\n Gcedil: 'Ģ',\n Gcirc: 'Ĝ',\n Gcy: 'Г',\n Gdot: 'Ġ',\n Gfr: '𝔊',\n Gg: '⋙',\n Gopf: '𝔾',\n GreaterEqual: '≥',\n GreaterEqualLess: '⋛',\n GreaterFullEqual: '≧',\n GreaterGreater: '⪢',\n GreaterLess: '≷',\n GreaterSlantEqual: '⩾',\n GreaterTilde: '≳',\n Gscr: '𝒢',\n Gt: '≫',\n HARDcy: 'Ъ',\n Hacek: 'ˇ',\n Hat: '^',\n Hcirc: 'Ĥ',\n Hfr: '',\n HilbertSpace: '',\n Hopf: '',\n HorizontalLine: '─',\n Hscr: '',\n Hstrok: 'Ħ',\n HumpDownHump: '≎',\n HumpEqual: '≏',\n IEcy: 'Е',\n IJlig: 'IJ',\n IOcy: 'Ё',\n Iacute: 'Í',\n Icirc: 'Î',\n Icy: 'И',\n Idot: 'İ',\n Ifr: '',\n Igrave: 'Ì',\n Im: '',\n Imacr: 'Ī',\n ImaginaryI: '',\n Implies: '⇒',\n Int: '∬',\n Integral: '∫',\n Intersection: '⋂',\n InvisibleComma: '',\n InvisibleTimes: '',\n Iogon: 'Į',\n Iopf: '𝕀',\n Iota: 'Ι',\n Iscr: '',\n Itilde: 'Ĩ',\n Iukcy: 'І',\n Iuml: 'Ï',\n Jcirc: 'Ĵ',\n Jcy: 'Й',\n Jfr: '𝔍',\n Jopf: '𝕁',\n Jscr: '𝒥',\n Jsercy: 'Ј',\n Jukcy: 'Є',\n KHcy: 'Х',\n KJcy: 'Ќ',\n Kappa: 'Κ',\n Kcedil: 'Ķ',\n Kcy: 'К',\n Kfr: '𝔎',\n Kopf: '𝕂',\n Kscr: '𝒦',\n LJcy: 'Љ',\n LT: '<',\n Lacute: 'Ĺ',\n Lambda: 'Λ',\n Lang: '⟪',\n Laplacetrf: '',\n Larr: '↞',\n Lcaron: 'Ľ',\n Lcedil: 'Ļ',\n Lcy: 'Л',\n LeftAngleBracket: '⟨',\n LeftArrow: '←',\n LeftArrowBar: '⇤',\n LeftArrowRightArrow: '⇆',\n LeftCeiling: '⌈',\n LeftDoubleBracket: '⟦',\n LeftDownTeeVector: '⥡',\n LeftDownVector: '⇃',\n LeftDownVectorBar: '⥙',\n LeftFloor: '⌊',\n LeftRightArrow: '↔',\n LeftRightVector: '⥎',\n LeftTee: '⊣',\n LeftTeeArrow: '↤',\n LeftTeeVector: '⥚',\n LeftTriangle: '⊲',\n LeftTriangleBar: '⧏',\n LeftTriangleEqual: '⊴',\n LeftUpDownVector: '⥑',\n LeftUpTeeVector: '⥠',\n LeftUpVector: '↿',\n LeftUpVectorBar: '⥘',\n LeftVector: '↼',\n LeftVectorBar: '⥒',\n Leftarrow: '⇐',\n Leftrightarrow: '⇔',\n LessEqualGreater: '⋚',\n LessFullEqual: '≦',\n LessGreater: '≶',\n LessLess: '⪡',\n LessSlantEqual: '⩽',\n LessTilde: '≲',\n Lfr: '𝔏',\n Ll: '⋘',\n Lleftarrow: '⇚',\n Lmidot: 'Ŀ',\n LongLeftArrow: '⟵',\n LongLeftRightArrow: '⟷',\n LongRightArrow: '⟶',\n Longleftarrow: '⟸',\n Longleftrightarrow: '⟺',\n Longrightarrow: '⟹',\n Lopf: '𝕃',\n LowerLeftArrow: '↙',\n LowerRightArrow: '↘',\n Lscr: '',\n Lsh: '↰',\n Lstrok: 'Ł',\n Lt: '≪',\n Map: '⤅',\n Mcy: 'М',\n MediumSpace: '',\n Mellintrf: '',\n Mfr: '𝔐',\n MinusPlus: '∓',\n Mopf: '𝕄',\n Mscr: '',\n Mu: 'Μ',\n NJcy: 'Њ',\n Nacute: 'Ń',\n Ncaron: 'Ň',\n Ncedil: 'Ņ',\n Ncy: 'Н',\n NegativeMediumSpace: '',\n NegativeThickSpace: '',\n NegativeThinSpace: '',\n NegativeVeryThinSpace: '',\n NestedGreaterGreater: '≫',\n NestedLessLess: '≪',\n NewLine: '\\n',\n Nfr: '𝔑',\n NoBreak: '',\n NonBreakingSpace: ' ',\n Nopf: '',\n Not: '⫬',\n NotCongruent: '≢',\n NotCupCap: '≭',\n NotDoubleVerticalBar: '∦',\n NotElement: '∉',\n NotEqual: '≠',\n NotEqualTilde: '≂̸',\n NotExists: '∄',\n NotGreater: '≯',\n NotGreaterEqual: '≱',\n NotGreaterFullEqual: '≧̸',\n NotGreaterGreater: '≫̸',\n NotGreaterLess: '≹',\n NotGreaterSlantEqual: '⩾̸',\n NotGreaterTilde: '≵',\n NotHumpDownHump: '≎̸',\n NotHumpEqual: '≏̸',\n NotLeftTriangle: '⋪',\n NotLeftTriangleBar: '⧏̸',\n NotLeftTriangleEqual: '⋬',\n NotLess: '≮',\n NotLessEqual: '≰',\n NotLessGreater: '≸',\n NotLessLess: '≪̸',\n NotLessSlantEqual: '⩽̸',\n NotLessTilde: '≴',\n NotNestedGreaterGreater: '⪢̸',\n NotNestedLessLess: '⪡̸',\n NotPrecedes: '⊀',\n NotPrecedesEqual: '⪯̸',\n NotPrecedesSlantEqual: '⋠',\n NotReverseElement: '∌',\n NotRightTriangle: '⋫',\n NotRightTriangleBar: '⧐̸',\n NotRightTriangleEqual: '⋭',\n NotSquareSubset: '⊏̸',\n NotSquareSubsetEqual: '⋢',\n NotSquareSuperset: '⊐̸',\n NotSquareSupersetEqual: '⋣',\n NotSubset: '⊂⃒',\n NotSubsetEqual: '⊈',\n NotSucceeds: '⊁',\n NotSucceedsEqual: '⪰̸',\n NotSucceedsSlantEqual: '⋡',\n NotSucceedsTilde: '≿̸',\n NotSuperset: '⊃⃒',\n NotSupersetEqual: '⊉',\n NotTilde: '≁',\n NotTildeEqual: '≄',\n NotTildeFullEqual: '≇',\n NotTildeTilde: '≉',\n NotVerticalBar: '∤',\n Nscr: '𝒩',\n Ntilde: 'Ñ',\n Nu: 'Ν',\n OElig: 'Œ',\n Oacute: 'Ó',\n Ocirc: 'Ô',\n Ocy: 'О',\n Odblac: 'Ő',\n Ofr: '𝔒',\n Ograve: 'Ò',\n Omacr: 'Ō',\n Omega: 'Ω',\n Omicron: 'Ο',\n Oopf: '𝕆',\n OpenCurlyDoubleQuote: '“',\n OpenCurlyQuote: '',\n Or: '⩔',\n Oscr: '𝒪',\n Oslash: 'Ø',\n Otilde: 'Õ',\n Otimes: '⨷',\n Ouml: 'Ö',\n OverBar: '‾',\n OverBrace: '⏞',\n OverBracket: '⎴',\n OverParenthesis: '⏜',\n PartialD: '∂',\n Pcy: 'П',\n Pfr: '𝔓',\n Phi: 'Φ',\n Pi: 'Π',\n PlusMinus: '±',\n Poincareplane: '',\n Popf: '',\n Pr: '⪻',\n Precedes: '≺',\n PrecedesEqual: '⪯',\n PrecedesSlantEqual: '≼',\n PrecedesTilde: '≾',\n Prime: '″',\n Product: '∏',\n Proportion: '∷',\n Proportional: '∝',\n Pscr: '𝒫',\n Psi: 'Ψ',\n QUOT: '\"',\n Qfr: '𝔔',\n Qopf: '',\n Qscr: '𝒬',\n RBarr: '⤐',\n REG: '®',\n Racute: 'Ŕ',\n Rang: '⟫',\n Rarr: '↠',\n Rarrtl: '⤖',\n Rcaron: 'Ř',\n Rcedil: 'Ŗ',\n Rcy: 'Р',\n Re: '',\n ReverseElement: '∋',\n ReverseEquilibrium: '⇋',\n ReverseUpEquilibrium: '⥯',\n Rfr: '',\n Rho: 'Ρ',\n RightAngleBracket: '⟩',\n RightArrow: '→',\n RightArrowBar: '⇥',\n RightArrowLeftArrow: '⇄',\n RightCeiling: '⌉',\n RightDoubleBracket: '⟧',\n RightDownTeeVector: '⥝',\n RightDownVector: '⇂',\n RightDownVectorBar: '⥕',\n RightFloor: '⌋',\n RightTee: '⊢',\n RightTeeArrow: '↦',\n RightTeeVector: '⥛',\n RightTriangle: '⊳',\n RightTriangleBar: '⧐',\n RightTriangleEqual: '⊵',\n RightUpDownVector: '⥏',\n RightUpTeeVector: '⥜',\n RightUpVector: '↾',\n RightUpVectorBar: '⥔',\n RightVector: '⇀',\n RightVectorBar: '⥓',\n Rightarrow: '⇒',\n Ropf: '',\n RoundImplies: '⥰',\n Rrightarrow: '⇛',\n Rscr: '',\n Rsh: '↱',\n RuleDelayed: '⧴',\n SHCHcy: 'Щ',\n SHcy: 'Ш',\n SOFTcy: 'Ь',\n Sacute: 'Ś',\n Sc: '⪼',\n Scaron: 'Š',\n Scedil: 'Ş',\n Scirc: 'Ŝ',\n Scy: 'С',\n Sfr: '𝔖',\n ShortDownArrow: '↓',\n ShortLeftArrow: '←',\n ShortRightArrow: '→',\n ShortUpArrow: '↑',\n Sigma: 'Σ',\n SmallCircle: '∘',\n Sopf: '𝕊',\n Sqrt: '√',\n Square: '□',\n SquareIntersection: '⊓',\n SquareSubset: '⊏',\n SquareSubsetEqual: '⊑',\n SquareSuperset: '⊐',\n SquareSupersetEqual: '⊒',\n SquareUnion: '⊔',\n Sscr: '𝒮',\n Star: '⋆',\n Sub: '⋐',\n Subset: '⋐',\n SubsetEqual: '⊆',\n Succeeds: '≻',\n SucceedsEqual: '⪰',\n SucceedsSlantEqual: '≽',\n SucceedsTilde: '≿',\n SuchThat: '∋',\n Sum: '∑',\n Sup: '⋑',\n Superset: '⊃',\n SupersetEqual: '⊇',\n Supset: '⋑',\n THORN: 'Þ',\n TRADE: '™',\n TSHcy: 'Ћ',\n TScy: 'Ц',\n Tab: '\\t',\n Tau: 'Τ',\n Tcaron: 'Ť',\n Tcedil: 'Ţ',\n Tcy: 'Т',\n Tfr: '𝔗',\n Therefore: '∴',\n Theta: 'Θ',\n ThickSpace: '',\n ThinSpace: '',\n Tilde: '',\n TildeEqual: '≃',\n TildeFullEqual: '≅',\n TildeTilde: '≈',\n Topf: '𝕋',\n TripleDot: '⃛',\n Tscr: '𝒯',\n Tstrok: 'Ŧ',\n Uacute: 'Ú',\n Uarr: '↟',\n Uarrocir: '⥉',\n Ubrcy: 'Ў',\n Ubreve: 'Ŭ',\n Ucirc: 'Û',\n Ucy: 'У',\n Udblac: 'Ű',\n Ufr: '𝔘',\n Ugrave: 'Ù',\n Umacr: 'Ū',\n UnderBar: '_',\n UnderBrace: '⏟',\n UnderBracket: '⎵',\n UnderParenthesis: '⏝',\n Union: '',\n UnionPlus: '⊎',\n Uogon: 'Ų',\n Uopf: '𝕌',\n UpArrow: '↑',\n UpArrowBar: '⤒',\n UpArrowDownArrow: '⇅',\n UpDownArrow: '↕',\n UpEquilibrium: '⥮',\n UpTee: '⊥',\n UpTeeArrow: '↥',\n Uparrow: '⇑',\n Updownarrow: '⇕',\n UpperLeftArrow: '↖',\n UpperRightArrow: '↗',\n Upsi: 'ϒ',\n Upsilon: 'Υ',\n Uring: 'Ů',\n Uscr: '𝒰',\n Utilde: 'Ũ',\n Uuml: 'Ü',\n VDash: '⊫',\n Vbar: '⫫',\n Vcy: 'В',\n Vdash: '⊩',\n Vdashl: '⫦',\n Vee: '',\n Verbar: '‖',\n Vert: '‖',\n VerticalBar: '',\n VerticalLine: '|',\n VerticalSeparator: '❘',\n VerticalTilde: '≀',\n VeryThinSpace: '',\n Vfr: '𝔙',\n Vopf: '𝕍',\n Vscr: '𝒱',\n Vvdash: '⊪',\n Wcirc: 'Ŵ',\n Wedge: '⋀',\n Wfr: '𝔚',\n Wopf: '𝕎',\n Wscr: '𝒲',\n Xfr: '𝔛',\n Xi: 'Ξ',\n Xopf: '𝕏',\n Xscr: '𝒳',\n YAcy: 'Я',\n YIcy: 'Ї',\n YUcy: 'Ю',\n Yacute: 'Ý',\n Ycirc: 'Ŷ',\n Ycy: 'Ы',\n Yfr: '𝔜',\n Yopf: '𝕐',\n Yscr: '𝒴',\n Yuml: 'Ÿ',\n ZHcy: 'Ж',\n Zacute: 'Ź',\n Zcaron: 'Ž',\n Zcy: 'З',\n Zdot: 'Ż',\n ZeroWidthSpace: '',\n Zeta: 'Ζ',\n Zfr: '',\n Zopf: '',\n Zscr: '𝒵',\n aacute: 'á',\n abreve: 'ă',\n ac: '∾',\n acE: '∾̳',\n acd: '∿',\n acirc: 'â',\n acute: '´',\n acy: 'а',\n aelig: 'æ',\n af: '',\n afr: '𝔞',\n agrave: 'à',\n alefsym: 'ℵ',\n aleph: 'ℵ',\n alpha: 'α',\n amacr: 'ā',\n amalg: '⨿',\n amp: '&',\n and: '∧',\n andand: '⩕',\n andd: '⩜',\n andslope: '⩘',\n andv: '⩚',\n ang: '∠',\n ange: '⦤',\n angle: '∠',\n angmsd: '∡',\n angmsdaa: '⦨',\n angmsdab: '⦩',\n angmsdac: '⦪',\n angmsdad: '⦫',\n angmsdae: '⦬',\n angmsdaf: '⦭',\n angmsdag: '⦮',\n angmsdah: '⦯',\n angrt: '∟',\n angrtvb: '⊾',\n angrtvbd: '⦝',\n angsph: '∢',\n angst: 'Å',\n angzarr: '⍼',\n aogon: 'ą',\n aopf: '𝕒',\n ap: '≈',\n apE: '⩰',\n apacir: '⩯',\n ape: '≊',\n apid: '≋',\n apos: \"'\",\n approx: '≈',\n approxeq: '≊',\n aring: 'å',\n ascr: '𝒶',\n ast: '*',\n asymp: '≈',\n asympeq: '≍',\n atilde: 'ã',\n auml: 'ä',\n awconint: '∳',\n awint: '⨑',\n bNot: '⫭',\n backcong: '≌',\n backepsilon: '϶',\n backprime: '',\n backsim: '∽',\n backsimeq: '⋍',\n barvee: '⊽',\n barwed: '⌅',\n barwedge: '⌅',\n bbrk: '⎵',\n bbrktbrk: '⎶',\n bcong: '≌',\n bcy: 'б',\n bdquo: '„',\n becaus: '∵',\n because: '∵',\n bemptyv: '⦰',\n bepsi: '϶',\n bernou: '',\n beta: 'β',\n beth: 'ℶ',\n between: '≬',\n bfr: '𝔟',\n bigcap: '⋂',\n bigcirc: '◯',\n bigcup: '',\n bigodot: '⨀',\n bigoplus: '⨁',\n bigotimes: '⨂',\n bigsqcup: '⨆',\n bigstar: '★',\n bigtriangledown: '▽',\n bigtriangleup: '△',\n biguplus: '⨄',\n bigvee: '',\n bigwedge: '⋀',\n bkarow: '⤍',\n blacklozenge: '⧫',\n blacksquare: '▪',\n blacktriangle: '▴',\n blacktriangledown: '▾',\n blacktriangleleft: '◂',\n blacktriangleright: '▸',\n blank: '␣',\n blk12: '▒',\n blk14: '░',\n blk34: '▓',\n block: '█',\n bne: '=⃥',\n bnequiv: '≡⃥',\n bnot: '⌐',\n bopf: '𝕓',\n bot: '⊥',\n bottom: '⊥',\n bowtie: '⋈',\n boxDL: '╗',\n boxDR: '╔',\n boxDl: '╖',\n boxDr: '╓',\n boxH: '═',\n boxHD: '╦',\n boxHU: '╩',\n boxHd: '╤',\n boxHu: '╧',\n boxUL: '╝',\n boxUR: '╚',\n boxUl: '╜',\n boxUr: '╙',\n boxV: '║',\n boxVH: '╬',\n boxVL: '╣',\n boxVR: '╠',\n boxVh: '╫',\n boxVl: '╢',\n boxVr: '╟',\n boxbox: '⧉',\n boxdL: '╕',\n boxdR: '╒',\n boxdl: '┐',\n boxdr: '┌',\n boxh: '─',\n boxhD: '╥',\n boxhU: '╨',\n boxhd: '┬',\n boxhu: '┴',\n boxminus: '⊟',\n boxplus: '⊞',\n boxtimes: '⊠',\n boxuL: '╛',\n boxuR: '╘',\n boxul: '┘',\n boxur: '└',\n boxv: '│',\n boxvH: '╪',\n boxvL: '╡',\n boxvR: '╞',\n boxvh: '┼',\n boxvl: '┤',\n boxvr: '├',\n bprime: '',\n breve: '˘',\n brvbar: '¦',\n bscr: '𝒷',\n bsemi: '⁏',\n bsim: '∽',\n bsime: '⋍',\n bsol: '\\\\',\n bsolb: '⧅',\n bsolhsub: '⟈',\n bull: '•',\n bullet: '•',\n bump: '≎',\n bumpE: '⪮',\n bumpe: '≏',\n bumpeq: '≏',\n cacute: 'ć',\n cap: '∩',\n capand: '⩄',\n capbrcup: '⩉',\n capcap: '⩋',\n capcup: '⩇',\n capdot: '⩀',\n caps: '∩︀',\n caret: '',\n caron: 'ˇ',\n ccaps: '⩍',\n ccaron: 'č',\n ccedil: 'ç',\n ccirc: 'ĉ',\n ccups: '⩌',\n ccupssm: '⩐',\n cdot: 'ċ',\n cedil: '¸',\n cemptyv: '⦲',\n cent: '¢',\n centerdot: '·',\n cfr: '𝔠',\n chcy: 'ч',\n check: '✓',\n checkmark: '✓',\n chi: 'χ',\n cir: '○',\n cirE: '⧃',\n circ: 'ˆ',\n circeq: '≗',\n circlearrowleft: '↺',\n circlearrowright: '↻',\n circledR: '®',\n circledS: 'Ⓢ',\n circledast: '⊛',\n circledcirc: '⊚',\n circleddash: '⊝',\n cire: '≗',\n cirfnint: '⨐',\n cirmid: '⫯',\n cirscir: '⧂',\n clubs: '♣',\n clubsuit: '♣',\n colon: ':',\n colone: '≔',\n coloneq: '≔',\n comma: ',',\n commat: '@',\n comp: '∁',\n compfn: '∘',\n complement: '∁',\n complexes: '',\n cong: '≅',\n congdot: '⩭',\n conint: '∮',\n copf: '𝕔',\n coprod: '∐',\n copy: '©',\n copysr: '℗',\n crarr: '↵',\n cross: '✗',\n cscr: '𝒸',\n csub: '⫏',\n csube: '⫑',\n csup: '⫐',\n csupe: '⫒',\n ctdot: '⋯',\n cudarrl: '⤸',\n cudarrr: '⤵',\n cuepr: '⋞',\n cuesc: '⋟',\n cularr: '↶',\n cularrp: '⤽',\n cup: '',\n cupbrcap: '⩈',\n cupcap: '⩆',\n cupcup: '⩊',\n cupdot: '⊍',\n cupor: '⩅',\n cups: '︀',\n curarr: '↷',\n curarrm: '⤼',\n curlyeqprec: '⋞',\n curlyeqsucc: '⋟',\n curlyvee: '⋎',\n curlywedge: '⋏',\n curren: '¤',\n curvearrowleft: '↶',\n curvearrowright: '↷',\n cuvee: '⋎',\n cuwed: '⋏',\n cwconint: '∲',\n cwint: '∱',\n cylcty: '⌭',\n dArr: '⇓',\n dHar: '⥥',\n dagger: '†',\n daleth: 'ℸ',\n darr: '↓',\n dash: '',\n dashv: '⊣',\n dbkarow: '⤏',\n dblac: '˝',\n dcaron: 'ď',\n dcy: 'д',\n dd: '',\n ddagger: '‡',\n ddarr: '⇊',\n ddotseq: '⩷',\n deg: '°',\n delta: 'δ',\n demptyv: '⦱',\n dfisht: '⥿',\n dfr: '𝔡',\n dharl: '⇃',\n dharr: '⇂',\n diam: '⋄',\n diamond: '⋄',\n diamondsuit: '♦',\n diams: '♦',\n die: '¨',\n digamma: 'ϝ',\n disin: '⋲',\n div: '÷',\n divide: '÷',\n divideontimes: '⋇',\n divonx: '⋇',\n djcy: 'ђ',\n dlcorn: '⌞',\n dlcrop: '⌍',\n dollar: '$',\n dopf: '𝕕',\n dot: '˙',\n doteq: '≐',\n doteqdot: '≑',\n dotminus: '∸',\n dotplus: '∔',\n dotsquare: '⊡',\n doublebarwedge: '⌆',\n downarrow: '↓',\n downdownarrows: '⇊',\n downharpoonleft: '⇃',\n downharpoonright: '⇂',\n drbkarow: '⤐',\n drcorn: '⌟',\n drcrop: '⌌',\n dscr: '𝒹',\n dscy: 'ѕ',\n dsol: '⧶',\n dstrok: 'đ',\n dtdot: '⋱',\n dtri: '▿',\n dtrif: '▾',\n duarr: '⇵',\n duhar: '⥯',\n dwangle: '⦦',\n dzcy: 'џ',\n dzigrarr: '⟿',\n eDDot: '⩷',\n eDot: '≑',\n eacute: 'é',\n easter: '⩮',\n ecaron: 'ě',\n ecir: '≖',\n ecirc: 'ê',\n ecolon: '≕',\n ecy: 'э',\n edot: 'ė',\n ee: '',\n efDot: '≒',\n efr: '𝔢',\n eg: '⪚',\n egrave: 'è',\n egs: '⪖',\n egsdot: '⪘',\n el: '⪙',\n elinters: '⏧',\n ell: '',\n els: '⪕',\n elsdot: '⪗',\n emacr: 'ē',\n empty: '∅',\n emptyset: '∅',\n emptyv: '∅',\n emsp13: '',\n emsp14: '',\n emsp: '',\n eng: 'ŋ',\n ensp: '',\n eogon: 'ę',\n eopf: '𝕖',\n epar: '⋕',\n eparsl: '⧣',\n eplus: '⩱',\n epsi: 'ε',\n epsilon: 'ε',\n epsiv: 'ϵ',\n eqcirc: '≖',\n eqcolon: '≕',\n eqsim: '≂',\n eqslantgtr: '⪖',\n eqslantless: '⪕',\n equals: '=',\n equest: '≟',\n equiv: '≡',\n equivDD: '⩸',\n eqvparsl: '⧥',\n erDot: '≓',\n erarr: '⥱',\n escr: '',\n esdot: '≐',\n esim: '≂',\n eta: 'η',\n eth: 'ð',\n euml: 'ë',\n euro: '€',\n excl: '!',\n exist: '∃',\n expectation: '',\n exponentiale: '',\n fallingdotseq: '≒',\n fcy: 'ф',\n female: '♀',\n ffilig: 'ffi',\n fflig: 'ff',\n ffllig: 'ffl',\n ffr: '𝔣',\n filig: 'fi',\n fjlig: 'fj',\n flat: '♭',\n fllig: 'fl',\n fltns: '▱',\n fnof: 'ƒ',\n fopf: '𝕗',\n forall: '∀',\n fork: '⋔',\n forkv: '⫙',\n fpartint: '⨍',\n frac12: '½',\n frac13: '⅓',\n frac14: '¼',\n frac15: '⅕',\n frac16: '⅙',\n frac18: '⅛',\n frac23: '⅔',\n frac25: '⅖',\n frac34: '¾',\n frac35: '⅗',\n frac38: '⅜',\n frac45: '⅘',\n frac56: '⅚',\n frac58: '⅝',\n frac78: '⅞',\n frasl: '',\n frown: '⌢',\n fscr: '𝒻',\n gE: '≧',\n gEl: '⪌',\n gacute: 'ǵ',\n gamma: 'γ',\n gammad: 'ϝ',\n gap: '⪆',\n gbreve: 'ğ',\n gcirc: 'ĝ',\n gcy: 'г',\n gdot: 'ġ',\n ge: '≥',\n gel: '⋛',\n geq: '≥',\n geqq: '≧',\n geqslant: '⩾',\n ges: '⩾',\n gescc: '⪩',\n gesdot: '⪀',\n gesdoto: '⪂',\n gesdotol: '⪄',\n gesl: '⋛︀',\n gesles: '⪔',\n gfr: '𝔤',\n gg: '≫',\n ggg: '⋙',\n gimel: 'ℷ',\n gjcy: 'ѓ',\n gl: '≷',\n glE: '⪒',\n gla: '⪥',\n glj: '⪤',\n gnE: '≩',\n gnap: '⪊',\n gnapprox: '⪊',\n gne: '⪈',\n gneq: '⪈',\n gneqq: '≩',\n gnsim: '⋧',\n gopf: '𝕘',\n grave: '`',\n gscr: '',\n gsim: '≳',\n gsime: '⪎',\n gsiml: '⪐',\n gt: '>',\n gtcc: '⪧',\n gtcir: '⩺',\n gtdot: '⋗',\n gtlPar: '⦕',\n gtquest: '⩼',\n gtrapprox: '⪆',\n gtrarr: '⥸',\n gtrdot: '⋗',\n gtreqless: '⋛',\n gtreqqless: '⪌',\n gtrless: '≷',\n gtrsim: '≳',\n gvertneqq: '≩︀',\n gvnE: '≩︀',\n hArr: '⇔',\n hairsp: '',\n half: '½',\n hamilt: '',\n hardcy: 'ъ',\n harr: '↔',\n harrcir: '⥈',\n harrw: '↭',\n hbar: 'ℏ',\n hcirc: 'ĥ',\n hearts: '♥',\n heartsuit: '♥',\n hellip: '…',\n hercon: '⊹',\n hfr: '𝔥',\n hksearow: '⤥',\n hkswarow: '⤦',\n hoarr: '⇿',\n homtht: '∻',\n hookleftarrow: '↩',\n hookrightarrow: '↪',\n hopf: '𝕙',\n horbar: '―',\n hscr: '𝒽',\n hslash: 'ℏ',\n hstrok: 'ħ',\n hybull: '',\n hyphen: '',\n iacute: 'í',\n ic: '',\n icirc: 'î',\n icy: 'и',\n iecy: 'е',\n iexcl: '¡',\n iff: '⇔',\n ifr: '𝔦',\n igrave: 'ì',\n ii: '',\n iiiint: '⨌',\n iiint: '∭',\n iinfin: '⧜',\n iiota: '℩',\n ijlig: 'ij',\n imacr: 'ī',\n image: '',\n imagline: '',\n imagpart: '',\n imath: 'ı',\n imof: '⊷',\n imped: 'Ƶ',\n in: '∈',\n incare: '℅',\n infin: '∞',\n infintie: '⧝',\n inodot: 'ı',\n int: '∫',\n intcal: '⊺',\n integers: '',\n intercal: '⊺',\n intlarhk: '⨗',\n intprod: '⨼',\n iocy: 'ё',\n iogon: 'į',\n iopf: '𝕚',\n iota: 'ι',\n iprod: '⨼',\n iquest: '¿',\n iscr: '𝒾',\n isin: '∈',\n isinE: '⋹',\n isindot: '⋵',\n isins: '⋴',\n isinsv: '⋳',\n isinv: '∈',\n it: '',\n itilde: 'ĩ',\n iukcy: 'і',\n iuml: 'ï',\n jcirc: 'ĵ',\n jcy: 'й',\n jfr: '𝔧',\n jmath: 'ȷ',\n jopf: '𝕛',\n jscr: '𝒿',\n jsercy: 'ј',\n jukcy: 'є',\n kappa: 'κ',\n kappav: 'ϰ',\n kcedil: 'ķ',\n kcy: 'к',\n kfr: '𝔨',\n kgreen: 'ĸ',\n khcy: 'х',\n kjcy: 'ќ',\n kopf: '𝕜',\n kscr: '𝓀',\n lAarr: '⇚',\n lArr: '⇐',\n lAtail: '⤛',\n lBarr: '⤎',\n lE: '≦',\n lEg: '⪋',\n lHar: '⥢',\n lacute: 'ĺ',\n laemptyv: '⦴',\n lagran: '',\n lambda: 'λ',\n lang: '⟨',\n langd: '⦑',\n langle: '⟨',\n lap: '⪅',\n laquo: '«',\n larr: '←',\n larrb: '⇤',\n larrbfs: '⤟',\n larrfs: '⤝',\n larrhk: '↩',\n larrlp: '↫',\n larrpl: '⤹',\n larrsim: '⥳',\n larrtl: '↢',\n lat: '⪫',\n latail: '⤙',\n late: '⪭',\n lates: '⪭︀',\n lbarr: '⤌',\n lbbrk: '',\n lbrace: '{',\n lbrack: '[',\n lbrke: '⦋',\n lbrksld: '⦏',\n lbrkslu: '⦍',\n lcaron: 'ľ',\n lcedil: 'ļ',\n lceil: '⌈',\n lcub: '{',\n lcy: 'л',\n ldca: '⤶',\n ldquo: '“',\n ldquor: '„',\n ldrdhar: '⥧',\n ldrushar: '⥋',\n ldsh: '↲',\n le: '≤',\n leftarrow: '←',\n leftarrowtail: '↢',\n leftharpoondown: '↽',\n leftharpoonup: '↼',\n leftleftarrows: '⇇',\n leftrightarrow: '↔',\n leftrightarrows: '⇆',\n leftrightharpoons: '⇋',\n leftrightsquigarrow: '↭',\n leftthreetimes: '⋋',\n leg: '⋚',\n leq: '≤',\n leqq: '≦',\n leqslant: '⩽',\n les: '⩽',\n lescc: '⪨',\n lesdot: '⩿',\n lesdoto: '⪁',\n lesdotor: '⪃',\n lesg: '⋚︀',\n lesges: '⪓',\n lessapprox: '⪅',\n lessdot: '⋖',\n lesseqgtr: '⋚',\n lesseqqgtr: '⪋',\n lessgtr: '≶',\n lesssim: '≲',\n lfisht: '⥼',\n lfloor: '⌊',\n lfr: '𝔩',\n lg: '≶',\n lgE: '⪑',\n lhard: '↽',\n lharu: '↼',\n lharul: '⥪',\n lhblk: '▄',\n ljcy: 'љ',\n ll: '≪',\n llarr: '⇇',\n llcorner: '⌞',\n llhard: '⥫',\n lltri: '◺',\n lmidot: 'ŀ',\n lmoust: '⎰',\n lmoustache: '⎰',\n lnE: '≨',\n lnap: '⪉',\n lnapprox: '⪉',\n lne: '⪇',\n lneq: '⪇',\n lneqq: '≨',\n lnsim: '⋦',\n loang: '⟬',\n loarr: '⇽',\n lobrk: '⟦',\n longleftarrow: '⟵',\n longleftrightarrow: '⟷',\n longmapsto: '⟼',\n longrightarrow: '⟶',\n looparrowleft: '↫',\n looparrowright: '↬',\n lopar: '⦅',\n lopf: '𝕝',\n loplus: '⨭',\n lotimes: '⨴',\n lowast: '',\n lowbar: '_',\n loz: '◊',\n lozenge: '◊',\n lozf: '⧫',\n lpar: '(',\n lparlt: '⦓',\n lrarr: '⇆',\n lrcorner: '⌟',\n lrhar: '⇋',\n lrhard: '⥭',\n lrm: '',\n lrtri: '⊿',\n lsaquo: '',\n lscr: '𝓁',\n lsh: '↰',\n lsim: '≲',\n lsime: '⪍',\n lsimg: '⪏',\n lsqb: '[',\n lsquo: '',\n lsquor: '',\n lstrok: 'ł',\n lt: '<',\n ltcc: '⪦',\n ltcir: '⩹',\n ltdot: '⋖',\n lthree: '⋋',\n ltimes: '⋉',\n ltlarr: '⥶',\n ltquest: '⩻',\n ltrPar: '⦖',\n ltri: '◃',\n ltrie: '⊴',\n ltrif: '◂',\n lurdshar: '⥊',\n luruhar: '⥦',\n lvertneqq: '≨︀',\n lvnE: '≨︀',\n mDDot: '∺',\n macr: '¯',\n male: '♂',\n malt: '✠',\n maltese: '✠',\n map: '↦',\n mapsto: '↦',\n mapstodown: '↧',\n mapstoleft: '↤',\n mapstoup: '↥',\n marker: '▮',\n mcomma: '⨩',\n mcy: 'м',\n mdash: '—',\n measuredangle: '∡',\n mfr: '𝔪',\n mho: '℧',\n micro: 'µ',\n mid: '',\n midast: '*',\n midcir: '⫰',\n middot: '·',\n minus: '',\n minusb: '⊟',\n minusd: '∸',\n minusdu: '⨪',\n mlcp: '⫛',\n mldr: '…',\n mnplus: '∓',\n models: '⊧',\n mopf: '𝕞',\n mp: '∓',\n mscr: '𝓂',\n mstpos: '∾',\n mu: 'μ',\n multimap: '⊸',\n mumap: '⊸',\n nGg: '⋙̸',\n nGt: '≫⃒',\n nGtv: '≫̸',\n nLeftarrow: '⇍',\n nLeftrightarrow: '⇎',\n nLl: '⋘̸',\n nLt: '≪⃒',\n nLtv: '≪̸',\n nRightarrow: '⇏',\n nVDash: '⊯',\n nVdash: '⊮',\n nabla: '∇',\n nacute: 'ń',\n nang: '∠⃒',\n nap: '≉',\n napE: '⩰̸',\n napid: '≋̸',\n napos: 'ʼn',\n napprox: '≉',\n natur: '♮',\n natural: '♮',\n naturals: '',\n nbsp: ' ',\n nbump: '≎̸',\n nbumpe: '≏̸',\n ncap: '⩃',\n ncaron: 'ň',\n ncedil: 'ņ',\n ncong: '≇',\n ncongdot: '⩭̸',\n ncup: '⩂',\n ncy: 'н',\n ndash: '',\n ne: '≠',\n neArr: '⇗',\n nearhk: '⤤',\n nearr: '↗',\n nearrow: '↗',\n nedot: '≐̸',\n nequiv: '≢',\n nesear: '⤨',\n nesim: '≂̸',\n nexist: '∄',\n nexists: '∄',\n nfr: '𝔫',\n ngE: '≧̸',\n nge: '≱',\n ngeq: '≱',\n ngeqq: '≧̸',\n ngeqslant: '⩾̸',\n nges: '⩾̸',\n ngsim: '≵',\n ngt: '≯',\n ngtr: '≯',\n nhArr: '⇎',\n nharr: '↮',\n nhpar: '⫲',\n ni: '∋',\n nis: '⋼',\n nisd: '⋺',\n niv: '∋',\n njcy: 'њ',\n nlArr: '⇍',\n nlE: '≦̸',\n nlarr: '↚',\n nldr: '‥',\n nle: '≰',\n nleftarrow: '↚',\n nleftrightarrow: '↮',\n nleq: '≰',\n nleqq: '≦̸',\n nleqslant: '⩽̸',\n nles: '⩽̸',\n nless: '≮',\n nlsim: '≴',\n nlt: '≮',\n nltri: '⋪',\n nltrie: '⋬',\n nmid: '∤',\n nopf: '𝕟',\n not: '¬',\n notin: '∉',\n notinE: '⋹̸',\n notindot: '⋵̸',\n notinva: '∉',\n notinvb: '⋷',\n notinvc: '⋶',\n notni: '∌',\n notniva: '∌',\n notnivb: '⋾',\n notnivc: '⋽',\n npar: '∦',\n nparallel: '∦',\n nparsl: '⫽⃥',\n npart: '∂̸',\n npolint: '⨔',\n npr: '⊀',\n nprcue: '⋠',\n npre: '⪯̸',\n nprec: '⊀',\n npreceq: '⪯̸',\n nrArr: '⇏',\n nrarr: '↛',\n nrarrc: '⤳̸',\n nrarrw: '↝̸',\n nrightarrow: '↛',\n nrtri: '⋫',\n nrtrie: '⋭',\n nsc: '⊁',\n nsccue: '⋡',\n nsce: '⪰̸',\n nscr: '𝓃',\n nshortmid: '∤',\n nshortparallel: '∦',\n nsim: '≁',\n nsime: '≄',\n nsimeq: '≄',\n nsmid: '∤',\n nspar: '∦',\n nsqsube: '⋢',\n nsqsupe: '⋣',\n nsub: '⊄',\n nsubE: '⫅̸',\n nsube: '⊈',\n nsubset: '⊂⃒',\n nsubseteq: '⊈',\n nsubseteqq: '⫅̸',\n nsucc: '⊁',\n nsucceq: '⪰̸',\n nsup: '⊅',\n nsupE: '⫆̸',\n nsupe: '⊉',\n nsupset: '⊃⃒',\n nsupseteq: '⊉',\n nsupseteqq: '⫆̸',\n ntgl: '≹',\n ntilde: 'ñ',\n ntlg: '≸',\n ntriangleleft: '⋪',\n ntrianglelefteq: '⋬',\n ntriangleright: '⋫',\n ntrianglerighteq: '⋭',\n nu: 'ν',\n num: '#',\n numero: '№',\n numsp: '',\n nvDash: '⊭',\n nvHarr: '⤄',\n nvap: '≍⃒',\n nvdash: '⊬',\n nvge: '≥⃒',\n nvgt: '>⃒',\n nvinfin: '⧞',\n nvlArr: '⤂',\n nvle: '≤⃒',\n nvlt: '<⃒',\n nvltrie: '⊴⃒',\n nvrArr: '⤃',\n nvrtrie: '⊵⃒',\n nvsim: '∼⃒',\n nwArr: '⇖',\n nwarhk: '⤣',\n nwarr: '↖',\n nwarrow: '↖',\n nwnear: '⤧',\n oS: 'Ⓢ',\n oacute: 'ó',\n oast: '⊛',\n ocir: '⊚',\n ocirc: 'ô',\n ocy: 'о',\n odash: '⊝',\n odblac: 'ő',\n odiv: '⨸',\n odot: '⊙',\n odsold: '⦼',\n oelig: 'œ',\n ofcir: '⦿',\n ofr: '𝔬',\n ogon: '˛',\n ograve: 'ò',\n ogt: '⧁',\n ohbar: '⦵',\n ohm: 'Ω',\n oint: '∮',\n olarr: '↺',\n olcir: '⦾',\n olcross: '⦻',\n oline: '‾',\n olt: '⧀',\n omacr: 'ō',\n omega: 'ω',\n omicron: 'ο',\n omid: '⦶',\n ominus: '⊖',\n oopf: '𝕠',\n opar: '⦷',\n operp: '⦹',\n oplus: '⊕',\n or: '',\n orarr: '↻',\n ord: '⩝',\n order: '',\n orderof: '',\n ordf: 'ª',\n ordm: 'º',\n origof: '⊶',\n oror: '⩖',\n orslope: '⩗',\n orv: '⩛',\n oscr: '',\n oslash: 'ø',\n osol: '⊘',\n otilde: 'õ',\n otimes: '⊗',\n otimesas: '⨶',\n ouml: 'ö',\n ovbar: '⌽',\n par: '∥',\n para: '¶',\n parallel: '∥',\n parsim: '⫳',\n parsl: '⫽',\n part: '∂',\n pcy: 'п',\n percnt: '%',\n period: '.',\n permil: '‰',\n perp: '⊥',\n pertenk: '‱',\n pfr: '𝔭',\n phi: 'φ',\n phiv: 'ϕ',\n phmmat: '',\n phone: '☎',\n pi: 'π',\n pitchfork: '⋔',\n piv: 'ϖ',\n planck: 'ℏ',\n planckh: '',\n plankv: 'ℏ',\n plus: '+',\n plusacir: '⨣',\n plusb: '⊞',\n pluscir: '⨢',\n plusdo: '∔',\n plusdu: '⨥',\n pluse: '⩲',\n plusmn: '±',\n plussim: '⨦',\n plustwo: '⨧',\n pm: '±',\n pointint: '⨕',\n popf: '𝕡',\n pound: '£',\n pr: '≺',\n prE: '⪳',\n prap: '⪷',\n prcue: '≼',\n pre: '⪯',\n prec: '≺',\n precapprox: '⪷',\n preccurlyeq: '≼',\n preceq: '⪯',\n precnapprox: '⪹',\n precneqq: '⪵',\n precnsim: '⋨',\n precsim: '≾',\n prime: '',\n primes: '',\n prnE: '⪵',\n prnap: '⪹',\n prnsim: '⋨',\n prod: '∏',\n profalar: '⌮',\n profline: '⌒',\n profsurf: '⌓',\n prop: '∝',\n propto: '∝',\n prsim: '≾',\n prurel: '⊰',\n pscr: '𝓅',\n psi: 'ψ',\n puncsp: '',\n qfr: '𝔮',\n qint: '⨌',\n qopf: '𝕢',\n qprime: '⁗',\n qscr: '𝓆',\n quaternions: '',\n quatint: '⨖',\n quest: '?',\n questeq: '≟',\n quot: '\"',\n rAarr: '⇛',\n rArr: '⇒',\n rAtail: '⤜',\n rBarr: '⤏',\n rHar: '⥤',\n race: '∽̱',\n racute: 'ŕ',\n radic: '√',\n raemptyv: '⦳',\n rang: '⟩',\n rangd: '⦒',\n range: '⦥',\n rangle: '⟩',\n raquo: '»',\n rarr: '→',\n rarrap: '⥵',\n rarrb: '⇥',\n rarrbfs: '⤠',\n rarrc: '⤳',\n rarrfs: '⤞',\n rarrhk: '↪',\n rarrlp: '↬',\n rarrpl: '⥅',\n rarrsim: '⥴',\n rarrtl: '↣',\n rarrw: '↝',\n ratail: '⤚',\n ratio: '',\n rationals: '',\n rbarr: '⤍',\n rbbrk: '',\n rbrace: '}',\n rbrack: ']',\n rbrke: '⦌',\n rbrksld: '⦎',\n rbrkslu: '⦐',\n rcaron: 'ř',\n rcedil: 'ŗ',\n rceil: '⌉',\n rcub: '}',\n rcy: 'р',\n rdca: '⤷',\n rdldhar: '⥩',\n rdquo: '”',\n rdquor: '”',\n rdsh: '↳',\n real: '',\n realine: '',\n realpart: '',\n reals: '',\n rect: '▭',\n reg: '®',\n rfisht: '⥽',\n rfloor: '⌋',\n rfr: '𝔯',\n rhard: '⇁',\n rharu: '⇀',\n rharul: '⥬',\n rho: 'ρ',\n rhov: 'ϱ',\n rightarrow: '→',\n rightarrowtail: '↣',\n rightharpoondown: '⇁',\n rightharpoonup: '⇀',\n rightleftarrows: '⇄',\n rightleftharpoons: '⇌',\n rightrightarrows: '⇉',\n rightsquigarrow: '↝',\n rightthreetimes: '⋌',\n ring: '˚',\n risingdotseq: '≓',\n rlarr: '⇄',\n rlhar: '⇌',\n rlm: '',\n rmoust: '⎱',\n rmoustache: '⎱',\n rnmid: '⫮',\n roang: '⟭',\n roarr: '⇾',\n robrk: '⟧',\n ropar: '⦆',\n ropf: '𝕣',\n roplus: '⨮',\n rotimes: '⨵',\n rpar: ')',\n rpargt: '⦔',\n rppolint: '⨒',\n rrarr: '⇉',\n rsaquo: '',\n rscr: '𝓇',\n rsh: '↱',\n rsqb: ']',\n rsquo: '',\n rsquor: '',\n rthree: '⋌',\n rtimes: '⋊',\n rtri: '▹',\n rtrie: '⊵',\n rtrif: '▸',\n rtriltri: '⧎',\n ruluhar: '⥨',\n rx: '℞',\n sacute: 'ś',\n sbquo: '',\n sc: '≻',\n scE: '⪴',\n scap: '⪸',\n scaron: 'š',\n sccue: '≽',\n sce: '⪰',\n scedil: 'ş',\n scirc: 'ŝ',\n scnE: '⪶',\n scnap: '⪺',\n scnsim: '⋩',\n scpolint: '⨓',\n scsim: '≿',\n scy: 'с',\n sdot: '⋅',\n sdotb: '⊡',\n sdote: '⩦',\n seArr: '⇘',\n searhk: '⤥',\n searr: '↘',\n searrow: '↘',\n sect: '§',\n semi: ';',\n seswar: '⤩',\n setminus: '',\n setmn: '',\n sext: '✶',\n sfr: '𝔰',\n sfrown: '⌢',\n sharp: '♯',\n shchcy: 'щ',\n shcy: 'ш',\n shortmid: '',\n shortparallel: '∥',\n shy: '­',\n sigma: 'σ',\n sigmaf: 'ς',\n sigmav: 'ς',\n sim: '',\n simdot: '⩪',\n sime: '≃',\n simeq: '≃',\n simg: '⪞',\n simgE: '⪠',\n siml: '⪝',\n simlE: '⪟',\n simne: '≆',\n simplus: '⨤',\n simrarr: '⥲',\n slarr: '←',\n smallsetminus: '',\n smashp: '⨳',\n smeparsl: '⧤',\n smid: '',\n smile: '⌣',\n smt: '⪪',\n smte: '⪬',\n smtes: '⪬︀',\n softcy: 'ь',\n sol: '/',\n solb: '⧄',\n solbar: '⌿',\n sopf: '𝕤',\n spades: '♠',\n spadesuit: '♠',\n spar: '∥',\n sqcap: '⊓',\n sqcaps: '⊓︀',\n sqcup: '⊔',\n sqcups: '⊔︀',\n sqsub: '⊏',\n sqsube: '⊑',\n sqsubset: '⊏',\n sqsubseteq: '⊑',\n sqsup: '⊐',\n sqsupe: '⊒',\n sqsupset: '⊐',\n sqsupseteq: '⊒',\n squ: '□',\n square: '□',\n squarf: '▪',\n squf: '▪',\n srarr: '→',\n sscr: '𝓈',\n ssetmn: '',\n ssmile: '⌣',\n sstarf: '⋆',\n star: '☆',\n starf: '★',\n straightepsilon: 'ϵ',\n straightphi: 'ϕ',\n strns: '¯',\n sub: '⊂',\n subE: '⫅',\n subdot: '⪽',\n sube: '⊆',\n subedot: '⫃',\n submult: '⫁',\n subnE: '⫋',\n subne: '⊊',\n subplus: '⪿',\n subrarr: '⥹',\n subset: '⊂',\n subseteq: '⊆',\n subseteqq: '⫅',\n subsetneq: '⊊',\n subsetneqq: '⫋',\n subsim: '⫇',\n subsub: '⫕',\n subsup: '⫓',\n succ: '≻',\n succapprox: '⪸',\n succcurlyeq: '≽',\n succeq: '⪰',\n succnapprox: '⪺',\n succneqq: '⪶',\n succnsim: '⋩',\n succsim: '≿',\n sum: '∑',\n sung: '♪',\n sup1: '¹',\n sup2: '²',\n sup3: '³',\n sup: '⊃',\n supE: '⫆',\n supdot: '⪾',\n supdsub: '⫘',\n supe: '⊇',\n supedot: '⫄',\n suphsol: '⟉',\n suphsub: '⫗',\n suplarr: '⥻',\n supmult: '⫂',\n supnE: '⫌',\n supne: '⊋',\n supplus: '⫀',\n supset: '⊃',\n supseteq: '⊇',\n supseteqq: '⫆',\n supsetneq: '⊋',\n supsetneqq: '⫌',\n supsim: '⫈',\n supsub: '⫔',\n supsup: '⫖',\n swArr: '⇙',\n swarhk: '⤦',\n swarr: '↙',\n swarrow: '↙',\n swnwar: '⤪',\n szlig: 'ß',\n target: '⌖',\n tau: 'τ',\n tbrk: '⎴',\n tcaron: 'ť',\n tcedil: 'ţ',\n tcy: 'т',\n tdot: '⃛',\n telrec: '⌕',\n tfr: '𝔱',\n there4: '∴',\n therefore: '∴',\n theta: 'θ',\n thetasym: 'ϑ',\n thetav: 'ϑ',\n thickapprox: '≈',\n thicksim: '',\n thinsp: '',\n thkap: '≈',\n thksim: '',\n thorn: 'þ',\n tilde: '˜',\n times: '×',\n timesb: '⊠',\n timesbar: '⨱',\n timesd: '⨰',\n tint: '∭',\n toea: '⤨',\n top: '',\n topbot: '⌶',\n topcir: '⫱',\n topf: '𝕥',\n topfork: '⫚',\n tosa: '⤩',\n tprime: '‴',\n trade: '™',\n triangle: '▵',\n triangledown: '▿',\n triangleleft: '◃',\n trianglelefteq: '⊴',\n triangleq: '≜',\n triangleright: '▹',\n trianglerighteq: '⊵',\n tridot: '◬',\n trie: '≜',\n triminus: '⨺',\n triplus: '⨹',\n trisb: '⧍',\n tritime: '⨻',\n trpezium: '⏢',\n tscr: '𝓉',\n tscy: 'ц',\n tshcy: 'ћ',\n tstrok: 'ŧ',\n twixt: '≬',\n twoheadleftarrow: '↞',\n twoheadrightarrow: '↠',\n uArr: '⇑',\n uHar: '⥣',\n uacute: 'ú',\n uarr: '↑',\n ubrcy: 'ў',\n ubreve: 'ŭ',\n ucirc: 'û',\n ucy: 'у',\n udarr: '⇅',\n udblac: 'ű',\n udhar: '⥮',\n ufisht: '⥾',\n ufr: '𝔲',\n ugrave: 'ù',\n uharl: '↿',\n uharr: '↾',\n uhblk: '▀',\n ulcorn: '⌜',\n ulcorner: '⌜',\n ulcrop: '⌏',\n ultri: '◸',\n umacr: 'ū',\n uml: '¨',\n uogon: 'ų',\n uopf: '𝕦',\n uparrow: '↑',\n updownarrow: '↕',\n upharpoonleft: '↿',\n upharpoonright: '↾',\n uplus: '⊎',\n upsi: 'υ',\n upsih: 'ϒ',\n upsilon: 'υ',\n upuparrows: '⇈',\n urcorn: '⌝',\n urcorner: '⌝',\n urcrop: '⌎',\n uring: 'ů',\n urtri: '◹',\n uscr: '𝓊',\n utdot: '⋰',\n utilde: 'ũ',\n utri: '▵',\n utrif: '▴',\n uuarr: '⇈',\n uuml: 'ü',\n uwangle: '⦧',\n vArr: '⇕',\n vBar: '⫨',\n vBarv: '⫩',\n vDash: '⊨',\n vangrt: '⦜',\n varepsilon: 'ϵ',\n varkappa: 'ϰ',\n varnothing: '∅',\n varphi: 'ϕ',\n varpi: 'ϖ',\n varpropto: '∝',\n varr: '↕',\n varrho: 'ϱ',\n varsigma: 'ς',\n varsubsetneq: '⊊︀',\n varsubsetneqq: '⫋︀',\n varsupsetneq: '⊋︀',\n varsupsetneqq: '⫌︀',\n vartheta: 'ϑ',\n vartriangleleft: '⊲',\n vartriangleright: '⊳',\n vcy: 'в',\n vdash: '⊢',\n vee: '',\n veebar: '⊻',\n veeeq: '≚',\n vellip: '⋮',\n verbar: '|',\n vert: '|',\n vfr: '𝔳',\n vltri: '⊲',\n vnsub: '⊂⃒',\n vnsup: '⊃⃒',\n vopf: '𝕧',\n vprop: '∝',\n vrtri: '⊳',\n vscr: '𝓋',\n vsubnE: '⫋︀',\n vsubne: '⊊︀',\n vsupnE: '⫌︀',\n vsupne: '⊋︀',\n vzigzag: '⦚',\n wcirc: 'ŵ',\n wedbar: '⩟',\n wedge: '∧',\n wedgeq: '≙',\n weierp: '℘',\n wfr: '𝔴',\n wopf: '𝕨',\n wp: '℘',\n wr: '≀',\n wreath: '≀',\n wscr: '𝓌',\n xcap: '⋂',\n xcirc: '◯',\n xcup: '',\n xdtri: '▽',\n xfr: '𝔵',\n xhArr: '⟺',\n xharr: '⟷',\n xi: 'ξ',\n xlArr: '⟸',\n xlarr: '⟵',\n xmap: '⟼',\n xnis: '⋻',\n xodot: '⨀',\n xopf: '𝕩',\n xoplus: '⨁',\n xotime: '⨂',\n xrArr: '⟹',\n xrarr: '⟶',\n xscr: '𝓍',\n xsqcup: '⨆',\n xuplus: '⨄',\n xutri: '△',\n xvee: '',\n xwedge: '⋀',\n yacute: 'ý',\n yacy: 'я',\n ycirc: 'ŷ',\n ycy: 'ы',\n yen: '¥',\n yfr: '𝔶',\n yicy: 'ї',\n yopf: '𝕪',\n yscr: '𝓎',\n yucy: 'ю',\n yuml: 'ÿ',\n zacute: 'ź',\n zcaron: 'ž',\n zcy: 'з',\n zdot: 'ż',\n zeetrf: '',\n zeta: 'ζ',\n zfr: '𝔷',\n zhcy: 'ж',\n zigrarr: '⇝',\n zopf: '𝕫',\n zscr: '𝓏',\n zwj: '',\n zwnj: ''\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/character-entities/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/decode-named-character-reference/index.js":
/*!*********************************************************************************!*\
!*** ../simple-mind-map/node_modules/decode-named-character-reference/index.js ***!
\*********************************************************************************/
/*! exports provided: decodeNamedCharacterReference */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"decodeNamedCharacterReference\", function() { return decodeNamedCharacterReference; });\n/* harmony import */ var character_entities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! character-entities */ \"../simple-mind-map/node_modules/character-entities/index.js\");\n\n\n// To do: next major: use `Object.hasOwn`.\nconst own = {}.hasOwnProperty\n\n/**\n * Decode a single character reference (without the `&` or `;`).\n * You probably only need this when youre building parsers yourself that follow\n * different rules compared to HTML.\n * This is optimized to be tiny in browsers.\n *\n * @param {string} value\n * `notin` (named), `#123` (deci), `#x123` (hexa).\n * @returns {string|false}\n * Decoded reference.\n */\nfunction decodeNamedCharacterReference(value) {\n return own.call(character_entities__WEBPACK_IMPORTED_MODULE_0__[\"characterEntities\"], value) ? character_entities__WEBPACK_IMPORTED_MODULE_0__[\"characterEntities\"][value] : false\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/decode-named-character-reference/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/mdast-util-from-markdown/index.js":
/*!*************************************************************************!*\
!*** ../simple-mind-map/node_modules/mdast-util-from-markdown/index.js ***!
\*************************************************************************/
/*! exports provided: fromMarkdown */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _lib_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/index.js */ \"../simple-mind-map/node_modules/mdast-util-from-markdown/lib/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fromMarkdown\", function() { return _lib_index_js__WEBPACK_IMPORTED_MODULE_0__[\"fromMarkdown\"]; });\n\n// Note: types exported from `index.d.ts`.\n\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/mdast-util-from-markdown/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/mdast-util-from-markdown/lib/index.js":
/*!*****************************************************************************!*\
!*** ../simple-mind-map/node_modules/mdast-util-from-markdown/lib/index.js ***!
\*****************************************************************************/
/*! exports provided: fromMarkdown */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fromMarkdown\", function() { return fromMarkdown; });\n/* harmony import */ var mdast_util_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mdast-util-to-string */ \"../simple-mind-map/node_modules/mdast-util-to-string/index.js\");\n/* harmony import */ var micromark_lib_parse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark/lib/parse.js */ \"../simple-mind-map/node_modules/micromark/lib/parse.js\");\n/* harmony import */ var micromark_lib_preprocess_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark/lib/preprocess.js */ \"../simple-mind-map/node_modules/micromark/lib/preprocess.js\");\n/* harmony import */ var micromark_lib_postprocess_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark/lib/postprocess.js */ \"../simple-mind-map/node_modules/micromark/lib/postprocess.js\");\n/* harmony import */ var micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-decode-numeric-character-reference */ \"../simple-mind-map/node_modules/micromark-util-decode-numeric-character-reference/index.js\");\n/* harmony import */ var micromark_util_decode_string__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-decode-string */ \"../simple-mind-map/node_modules/micromark-util-decode-string/index.js\");\n/* harmony import */ var micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-normalize-identifier */ \"../simple-mind-map/node_modules/micromark-util-normalize-identifier/index.js\");\n/* harmony import */ var decode_named_character_reference__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! decode-named-character-reference */ \"../simple-mind-map/node_modules/decode-named-character-reference/index.js\");\n/* harmony import */ var unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! unist-util-stringify-position */ \"../simple-mind-map/node_modules/unist-util-stringify-position/index.js\");\n/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Root | Content} Node\n * @typedef {Extract<Node, UnistParent>} Parent\n *\n * @typedef {Omit<UnistParent, 'type' | 'children'> & {type: 'fragment', children: Array<PhrasingContent>}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | undefined | null | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {Record<string, Handle>} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isnt closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array<string>} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array<Transform>} transforms\n * Tree transforms.\n *\n * @typedef {Partial<Config>} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array<Node | Fragment>} stack\n * Stack of nodes.\n * @property {Array<TokenTuple>} tokenStack\n * Stack of tokens.\n * @property {<Key extends keyof CompileData>(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {<Key extends keyof CompileData>(key: Key, value?: CompileData[Key]) => void} setData\n * Set data into the key/value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {<Kind extends Node>(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array<Extension | Array<Extension>> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\n// To do: micromark: create a registry of tokens?\n// To do: next major: dont return given `Node` from `enter`.\n// To do: next major: remove setter/getter.\n\n\n\n\n\n\n\n\n\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param value\n * Markdown to parse.\n * @param encoding\n * Character encoding for when `value` is `Buffer`.\n * @param options\n * Configuration.\n * @returns\n * mdast tree.\n */\nconst fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &\n * ((value: Value, options?: Options | null | undefined) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding | Options | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n Object(micromark_lib_postprocess_js__WEBPACK_IMPORTED_MODULE_3__[\"postprocess\"])(\n Object(micromark_lib_parse_js__WEBPACK_IMPORTED_MODULE_1__[\"parse\"])(options).document().write(Object(micromark_lib_preprocess_js__WEBPACK_IMPORTED_MODULE_2__[\"preprocess\"])()(value, encoding, true))\n )\n )\n }\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array<Event>} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n /** @type {Array<number>} */\n const listStack = []\n let index = -1\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: well add `end` in a second.\n end: undefined\n }\n // @ts-expect-error: `listItem` is most definitely defined, TS...\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Set data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @param {CompileData[Key]} [value]\n * New value.\n * @returns {void}\n * Nothing.\n */\n function setData(key, value) {\n data[key] = value\n }\n\n /**\n * Get data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @returns {CompileData[Key]}\n * Value.\n */\n function getData(key) {\n return data[key]\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Node} create\n * Create a node.\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {void}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @template {Node} Kind\n * Node type.\n * @this {CompileContext}\n * Context.\n * @param {Kind} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {Kind}\n * The given node.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n // @ts-expect-error: `end` will be patched later.\n node.position = {\n start: point(token.start)\n }\n return node\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {Node}\n * The closed node.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n Object(unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_8__[\"stringifyPosition\"])({\n start: token.start,\n end: token.end\n }) +\n '): its not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n node.position.end = point(token.end)\n return node\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return Object(mdast_util_to_string__WEBPACK_IMPORTED_MODULE_0__[\"toString\"])(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = Object(micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_6__[\"normalizeIdentifier\"])(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n let tail = node.children[node.children.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n // @ts-expect-error: well add `end` later.\n tail.position = {\n start: point(token.start)\n }\n // @ts-expect-error: Assume `parent` accepts `text`.\n node.children.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If were at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = Object(micromark_util_decode_string__WEBPACK_IMPORTED_MODULE_5__[\"decodeString\"])(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = Object(micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_6__[\"normalizeIdentifier\"])(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n setData('inReference', true)\n if (node.type === 'link') {\n /** @type {Array<StaticPhrasingContent>} */\n // @ts-expect-error: Assume static phrasing content.\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n setData('inReference')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = Object(micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_6__[\"normalizeIdentifier\"])(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n let value\n if (type) {\n value = Object(micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_4__[\"decodeNumericCharacterReference\"])(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n const result = Object(decode_named_character_reference__WEBPACK_IMPORTED_MODULE_7__[\"decodeNamedCharacterReference\"])(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {HTML} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array<Extension | Array<Extension>>} extensions\n * @returns {void}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {void}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n if (key === 'canContainEols') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'transforms') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'enter' || key === 'exit') {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n Object(unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_8__[\"stringifyPosition\"])({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n Object(unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_8__[\"stringifyPosition\"])({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n Object(unist_util_stringify_position__WEBPACK_IMPORTED_MODULE_8__[\"stringifyPosition\"])({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/mdast-util-from-markdown/lib/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/mdast-util-to-string/index.js":
/*!*********************************************************************!*\
!*** ../simple-mind-map/node_modules/mdast-util-to-string/index.js ***!
\*********************************************************************/
/*! exports provided: toString */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _lib_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/index.js */ \"../simple-mind-map/node_modules/mdast-util-to-string/lib/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toString\", function() { return _lib_index_js__WEBPACK_IMPORTED_MODULE_0__[\"toString\"]; });\n\n/**\n * @typedef {import('./lib/index.js').Options} Options\n */\n\n\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/mdast-util-to-string/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/mdast-util-to-string/lib/index.js":
/*!*************************************************************************!*\
!*** ../simple-mind-map/node_modules/mdast-util-to-string/lib/index.js ***!
\*************************************************************************/
/*! exports provided: toString */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toString\", function() { return toString; });\n/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s.\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML.\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the nodes plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} value\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nfunction toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Node}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/mdast-util-to-string/lib/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/index.js":
/*!**************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/index.js ***!
\**************************************************************************/
/*! exports provided: attention, autolink, blankLine, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, content, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _lib_attention_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/attention.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/attention.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"attention\", function() { return _lib_attention_js__WEBPACK_IMPORTED_MODULE_0__[\"attention\"]; });\n\n/* harmony import */ var _lib_autolink_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/autolink.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/autolink.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"autolink\", function() { return _lib_autolink_js__WEBPACK_IMPORTED_MODULE_1__[\"autolink\"]; });\n\n/* harmony import */ var _lib_blank_line_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/blank-line.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/blank-line.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"blankLine\", function() { return _lib_blank_line_js__WEBPACK_IMPORTED_MODULE_2__[\"blankLine\"]; });\n\n/* harmony import */ var _lib_block_quote_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/block-quote.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/block-quote.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"blockQuote\", function() { return _lib_block_quote_js__WEBPACK_IMPORTED_MODULE_3__[\"blockQuote\"]; });\n\n/* harmony import */ var _lib_character_escape_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/character-escape.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/character-escape.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"characterEscape\", function() { return _lib_character_escape_js__WEBPACK_IMPORTED_MODULE_4__[\"characterEscape\"]; });\n\n/* harmony import */ var _lib_character_reference_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/character-reference.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/character-reference.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"characterReference\", function() { return _lib_character_reference_js__WEBPACK_IMPORTED_MODULE_5__[\"characterReference\"]; });\n\n/* harmony import */ var _lib_code_fenced_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/code-fenced.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/code-fenced.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"codeFenced\", function() { return _lib_code_fenced_js__WEBPACK_IMPORTED_MODULE_6__[\"codeFenced\"]; });\n\n/* harmony import */ var _lib_code_indented_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./lib/code-indented.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/code-indented.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"codeIndented\", function() { return _lib_code_indented_js__WEBPACK_IMPORTED_MODULE_7__[\"codeIndented\"]; });\n\n/* harmony import */ var _lib_code_text_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./lib/code-text.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/code-text.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"codeText\", function() { return _lib_code_text_js__WEBPACK_IMPORTED_MODULE_8__[\"codeText\"]; });\n\n/* harmony import */ var _lib_content_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./lib/content.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/content.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"content\", function() { return _lib_content_js__WEBPACK_IMPORTED_MODULE_9__[\"content\"]; });\n\n/* harmony import */ var _lib_definition_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./lib/definition.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/definition.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"definition\", function() { return _lib_definition_js__WEBPACK_IMPORTED_MODULE_10__[\"definition\"]; });\n\n/* harmony import */ var _lib_hard_break_escape_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./lib/hard-break-escape.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/hard-break-escape.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hardBreakEscape\", function() { return _lib_hard_break_escape_js__WEBPACK_IMPORTED_MODULE_11__[\"hardBreakEscape\"]; });\n\n/* harmony import */ var _lib_heading_atx_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./lib/heading-atx.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/heading-atx.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"headingAtx\", function() { return _lib_heading_atx_js__WEBPACK_IMPORTED_MODULE_12__[\"headingAtx\"]; });\n\n/* harmony import */ var _lib_html_flow_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./lib/html-flow.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/html-flow.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"htmlFlow\", function() { return _lib_html_flow_js__WEBPACK_IMPORTED_MODULE_13__[\"htmlFlow\"]; });\n\n/* harmony import */ var _lib_html_text_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./lib/html-text.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/html-text.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"htmlText\", function() { return _lib_html_text_js__WEBPACK_IMPORTED_MODULE_14__[\"htmlText\"]; });\n\n/* harmony import */ var _lib_label_end_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./lib/label-end.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/label-end.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"labelEnd\", function() { return _lib_label_end_js__WEBPACK_IMPORTED_MODULE_15__[\"labelEnd\"]; });\n\n/* harmony import */ var _lib_label_start_image_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./lib/label-start-image.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/label-start-image.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"labelStartImage\", function() { return _lib_label_start_image_js__WEBPACK_IMPORTED_MODULE_16__[\"labelStartImage\"]; });\n\n/* harmony import */ var _lib_label_start_link_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./lib/label-start-link.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/label-start-link.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"labelStartLink\", function() { return _lib_label_start_link_js__WEBPACK_IMPORTED_MODULE_17__[\"labelStartLink\"]; });\n\n/* harmony import */ var _lib_line_ending_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./lib/line-ending.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/line-ending.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lineEnding\", function() { return _lib_line_ending_js__WEBPACK_IMPORTED_MODULE_18__[\"lineEnding\"]; });\n\n/* harmony import */ var _lib_list_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./lib/list.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/list.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"list\", function() { return _lib_list_js__WEBPACK_IMPORTED_MODULE_19__[\"list\"]; });\n\n/* harmony import */ var _lib_setext_underline_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./lib/setext-underline.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/setext-underline.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setextUnderline\", function() { return _lib_setext_underline_js__WEBPACK_IMPORTED_MODULE_20__[\"setextUnderline\"]; });\n\n/* harmony import */ var _lib_thematic_break_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./lib/thematic-break.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/thematic-break.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"thematicBreak\", function() { return _lib_thematic_break_js__WEBPACK_IMPORTED_MODULE_21__[\"thematicBreak\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/attention.js":
/*!**********************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/attention.js ***!
\**********************************************************************************/
/*! exports provided: attention */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"attention\", function() { return attention; });\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-chunked */ \"../simple-mind-map/node_modules/micromark-util-chunked/index.js\");\n/* harmony import */ var micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-classify-character */ \"../simple-mind-map/node_modules/micromark-util-classify-character/index.js\");\n/* harmony import */ var micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-resolve-all */ \"../simple-mind-map/node_modules/micromark-util-resolve-all/index.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n\n/** @type {Construct} */\nconst attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n let open\n /** @type {Token} */\n let group\n /** @type {Token} */\n let text\n /** @type {Token} */\n let openingSequence\n /** @type {Token} */\n let closingSequence\n /** @type {number} */\n let use\n /** @type {Array<Event>} */\n let nextEvents\n /** @type {number} */\n let offset\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but its\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then dont match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n }\n\n // Number of markers to use from the sequence.\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = []\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__[\"push\"])(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n }\n\n // Opening.\n nextEvents = Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__[\"push\"])(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ])\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__[\"push\"])(\n nextEvents,\n Object(micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_2__[\"resolveAll\"])(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n nextEvents = Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__[\"push\"])(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ])\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__[\"push\"])(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__[\"splice\"])(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = Object(micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_1__[\"classifyCharacter\"])(previous)\n\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code\n effects.enter('attentionSequence')\n return inside(code)\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n const token = effects.exit('attentionSequence')\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = Object(micromark_util_classify_character__WEBPACK_IMPORTED_MODULE_1__[\"classifyCharacter\"])(code)\n\n // Always populated by defaults.\n\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! Its not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/attention.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/autolink.js":
/*!*********************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/autolink.js ***!
\*********************************************************************************/
/*! exports provided: autolink */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autolink\", function() { return autolink; });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n/** @type {Construct} */\nconst autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiAlpha\"])(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n return emailAtext(code)\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiAlphanumeric\"])(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1\n return schemeInsideOrEmailAtext(code)\n }\n return emailAtext(code)\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n size = 0\n return urlInside\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n (code === 43 || code === 45 || code === 46 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiAlphanumeric\"])(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n size = 0\n return emailAtext(code)\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiControl\"])(code)) {\n return nok(code)\n }\n effects.consume(code)\n return urlInside\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n return emailAtSignOrDot\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiAtext\"])(code)) {\n effects.consume(code)\n return emailAtext\n }\n return nok(code)\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiAlphanumeric\"])(code) ? emailLabel(code) : nok(code)\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n return emailValue(code)\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | a<user.name@ex-ample.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiAlphanumeric\"])(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel\n effects.consume(code)\n return next\n }\n return nok(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/autolink.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/blank-line.js":
/*!***********************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/blank-line.js ***!
\***********************************************************************************/
/*! exports provided: blankLine */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"blankLine\", function() { return blankLine; });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n/** @type {Construct} */\nconst blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)\n ? Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(effects, after, 'linePrefix')(code)\n : after(code)\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code) ? ok(code) : nok(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/blank-line.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/block-quote.js":
/*!************************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/block-quote.js ***!
\************************************************************************************/
/*! exports provided: blockQuote */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"blockQuote\", function() { return blockQuote; });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n/** @type {Construct} */\nconst blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this\n return contStart\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)) {\n // Always populated by defaults.\n\n return Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(\n effects,\n contBefore,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n return contBefore(code)\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code)\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/block-quote.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/character-escape.js":
/*!*****************************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/character-escape.js ***!
\*****************************************************************************************/
/*! exports provided: characterEscape */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"characterEscape\", function() { return characterEscape; });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n/** @type {Construct} */\nconst characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return inside\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiPunctuation\"])(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n return nok(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/character-escape.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/character-reference.js":
/*!********************************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/character-reference.js ***!
\********************************************************************************************/
/*! exports provided: characterReference */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"characterReference\", function() { return characterReference; });\n/* harmony import */ var decode_named_character_reference__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! decode-named-character-reference */ \"../simple-mind-map/node_modules/decode-named-character-reference/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n/** @type {Construct} */\nconst characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n let max\n /** @type {(code: Code) => boolean} */\n let test\n return start\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&amp;b\n * ^\n * > | a&#123;b\n * ^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&amp;b\n * ^\n * > | a&#123;b\n * ^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n effects.enter('characterReferenceValue')\n max = 31\n test = micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"asciiAlphanumeric\"]\n return value(code)\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a&#123;b\n * ^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"asciiHexDigit\"]\n return value\n }\n effects.enter('characterReferenceValue')\n max = 7\n test = micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"asciiDigit\"]\n return value(code)\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&amp;b\n * ^^^\n * > | a&#123;b\n * ^^^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit('characterReferenceValue')\n if (\n test === micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"asciiAlphanumeric\"] &&\n !Object(decode_named_character_reference__WEBPACK_IMPORTED_MODULE_0__[\"decodeNamedCharacterReference\"])(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n return nok(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/character-reference.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/code-fenced.js":
/*!************************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/code-fenced.js ***!
\************************************************************************************/
/*! exports provided: codeFenced */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"codeFenced\", function() { return codeFenced; });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n}\n\n/** @type {Construct} */\nconst codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n }\n let initialPrefix = 0\n let sizeOpen = 0\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code)\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1]\n initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n marker = code\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++\n effects.consume(code)\n return sequenceOpen\n }\n if (sizeOpen < 3) {\n return nok(code)\n }\n effects.exit('codeFencedFenceSequence')\n return Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)\n ? Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(effects, infoBefore, 'whitespace')(code)\n : infoBefore(code)\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n effects.exit('codeFencedFence')\n return self.interrupt\n ? ok(code)\n : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return infoBefore(code)\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(effects, metaBefore, 'whitespace')(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return info\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n return infoBefore(code)\n }\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return infoBefore(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return meta\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code)\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return contentStart\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)\n ? Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(\n effects,\n beforeContentChunk,\n 'linePrefix',\n initialPrefix + 1\n )(code)\n : beforeContentChunk(code)\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return contentChunk(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n effects.exit('codeFlowValue')\n return beforeContentChunk(code)\n }\n effects.consume(code)\n return contentChunk\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0\n return startBefore\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter('codeFencedFence')\n return Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)\n ? Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(\n effects,\n beforeSequenceClose,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : beforeSequenceClose(code)\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter('codeFencedFenceSequence')\n return sequenceClose(code)\n }\n return nok(code)\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++\n effects.consume(code)\n return sequenceClose\n }\n if (size >= sizeOpen) {\n effects.exit('codeFencedFenceSequence')\n return Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)\n ? Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(effects, sequenceCloseAfter, 'whitespace')(code)\n : sequenceCloseAfter(code)\n }\n return nok(code)\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n return nok(code)\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this\n return start\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code)\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/code-fenced.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/code-indented.js":
/*!**************************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/code-indented.js ***!
\**************************************************************************************/
/*! exports provided: codeIndented */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"codeIndented\", function() { return codeIndented; });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n/** @type {Construct} */\nconst codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n\n/** @type {Construct} */\nconst furtherStart = {\n tokenize: tokenizeFurtherStart,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n\n effects.enter('codeIndented')\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? atBreak(code)\n : nok(code)\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === null) {\n return after(code)\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return inside(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n effects.exit('codeFlowValue')\n return atBreak(code)\n }\n effects.consume(code)\n return inside\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit('codeIndented')\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this\n return furtherStart\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it cant be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return furtherStart\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We cant yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)\n ? furtherStart(code)\n : nok(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/code-indented.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/code-text.js":
/*!**********************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/code-text.js ***!
\**********************************************************************************/
/*! exports provided: codeText */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"codeText\", function() { return codeText; });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n/** @type {Construct} */\nconst codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n\n// To do: next major: dont resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n let index\n /** @type {number | undefined} */\n let enter\n\n // If we start and end with an EOL or a space.\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1\n tailExitIndex++\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n enter = undefined\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n let size\n /** @type {Token} */\n let token\n return start\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n effects.exit('codeTextSequence')\n return between(code)\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n }\n\n // To do: next major: dont do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs dont work, and virtual spaces dont make sense.\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return between\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return sequenceClose(code)\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEnding\"])(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return between\n }\n\n // Data.\n effects.enter('codeTextData')\n return data(code)\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEnding\"])(code)\n ) {\n effects.exit('codeTextData')\n return between(code)\n }\n effects.consume(code)\n return data\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return sequenceClose\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n }\n\n // More or less accents: mark as data.\n token.type = 'codeTextData'\n return data(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/code-text.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/content.js":
/*!********************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/content.js ***!
\********************************************************************************/
/*! exports provided: content */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"content\", function() { return content; });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/* harmony import */ var micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-subtokenize */ \"../simple-mind-map/node_modules/micromark-util-subtokenize/index.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nconst content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n\n/** @type {Construct} */\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n\n/**\n * Content is transparent: its parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n Object(micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_2__[\"subtokenize\"])(events)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous\n return chunkStart\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return chunkInside(code)\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n }\n\n // Data.\n effects.consume(code)\n return chunkInside\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return chunkInside\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(effects, prefixed, 'linePrefix')\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n return nok(code)\n }\n\n // Always populated by defaults.\n\n const tail = self.events[self.events.length - 1]\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/content.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/definition.js":
/*!***********************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/definition.js ***!
\***********************************************************************************/
/*! exports provided: definition */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"definition\", function() { return definition; });\n/* harmony import */ var micromark_factory_destination__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-destination */ \"../simple-mind-map/node_modules/micromark-factory-destination/index.js\");\n/* harmony import */ var micromark_factory_label__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-factory-label */ \"../simple-mind-map/node_modules/micromark-factory-label/index.js\");\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_factory_title__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-title */ \"../simple-mind-map/node_modules/micromark-factory-title/index.js\");\n/* harmony import */ var micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-factory-whitespace */ \"../simple-mind-map/node_modules/micromark-factory-whitespace/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/* harmony import */ var micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-normalize-identifier */ \"../simple-mind-map/node_modules/micromark-util-normalize-identifier/index.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n\n\n\n\n\n/** @type {Construct} */\nconst definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n\n/** @type {Construct} */\nconst titleBefore = {\n tokenize: tokenizeTitleBefore,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n let identifier\n return start\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter('definition')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n\n return micromark_factory_label__WEBPACK_IMPORTED_MODULE_1__[\"factoryLabel\"].call(\n self,\n effects,\n labelAfter,\n // Note: we dont need to reset the way `markdown-rs` does.\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = Object(micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_6__[\"normalizeIdentifier\"])(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker')\n return markerAfter\n }\n return nok(code)\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_5__[\"markdownLineEndingOrSpace\"])(code)\n ? Object(micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_4__[\"factoryWhitespace\"])(effects, destinationBefore)(code)\n : destinationBefore(code)\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return Object(micromark_factory_destination__WEBPACK_IMPORTED_MODULE_0__[\"factoryDestination\"])(\n effects,\n destinationAfter,\n // Note: we dont need to reset the way `markdown-rs` does.\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )(code)\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code)\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_5__[\"markdownSpace\"])(code)\n ? Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__[\"factorySpace\"])(effects, afterWhitespace, 'whitespace')(code)\n : afterWhitespace(code)\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_5__[\"markdownLineEnding\"])(code)) {\n effects.exit('definition')\n\n // Note: we dont care about uniqueness.\n // Its likely that that doesnt happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier)\n\n // To do: `markdown-rs` interrupt.\n // // Youd be interrupting.\n // tokenizer.interrupt = true\n return ok(code)\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_5__[\"markdownLineEndingOrSpace\"])(code)\n ? Object(micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_4__[\"factoryWhitespace\"])(effects, beforeMarker)(code)\n : nok(code)\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return Object(micromark_factory_title__WEBPACK_IMPORTED_MODULE_3__[\"factoryTitle\"])(\n effects,\n titleAfter,\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_5__[\"markdownSpace\"])(code)\n ? Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_2__[\"factorySpace\"])(effects, titleAfterOptionalWhitespace, 'whitespace')(code)\n : titleAfterOptionalWhitespace(code)\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_5__[\"markdownLineEnding\"])(code) ? ok(code) : nok(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/definition.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/hard-break-escape.js":
/*!******************************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/hard-break-escape.js ***!
\******************************************************************************************/
/*! exports provided: hardBreakEscape */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hardBreakEscape\", function() { return hardBreakEscape; });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n/** @type {Construct} */\nconst hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.consume(code)\n return after\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEnding\"])(code)) {\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n return nok(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/hard-break-escape.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/heading-atx.js":
/*!************************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/heading-atx.js ***!
\************************************************************************************/
/*! exports provided: headingAtx */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"headingAtx\", function() { return headingAtx; });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ \"../simple-mind-map/node_modules/micromark-util-chunked/index.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n\n/** @type {Construct} */\nconst headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n let content\n /** @type {Token} */\n let text\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n }\n\n // Suffix whitespace, part of the closing.\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__[\"splice\"])(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter('atxHeading')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('atxHeadingSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return sequenceOpen\n }\n\n // Always at least one `#`.\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEndingOrSpace\"])(code)) {\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n return nok(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequenceFurther(code)\n }\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n effects.exit('atxHeading')\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)) {\n return Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(effects, atBreak, 'whitespace')(code)\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible” hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code)\n return sequenceFurther\n }\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEndingOrSpace\"])(code)) {\n effects.exit('atxHeadingText')\n return atBreak(code)\n }\n effects.consume(code)\n return data\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/heading-atx.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/html-flow.js":
/*!**********************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/html-flow.js ***!
\**********************************************************************************/
/*! exports provided: htmlFlow */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"htmlFlow\", function() { return htmlFlow; });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/* harmony import */ var micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-html-tag-name */ \"../simple-mind-map/node_modules/micromark-util-html-tag-name/index.js\");\n/* harmony import */ var _blank_line_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./blank-line.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/blank-line.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n\n\n/** @type {Construct} */\nconst htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n\n/** @type {Construct} */\nconst blankLineBefore = {\n tokenize: tokenizeBlankLineBefore,\n partial: true\n}\nconst nonLazyContinuationStart = {\n tokenize: tokenizeNonLazyContinuationStart,\n partial: true\n}\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start\n // Remove the line prefix.\n events.splice(index - 2, 2)\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n let marker\n /** @type {boolean} */\n let closingTag\n /** @type {string} */\n let buffer\n /** @type {number} */\n let index\n /** @type {Code} */\n let markerB\n return start\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | <x />\n * ^\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n closingTag = true\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n marker = 3\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While were in an instruction instead of a declaration, were on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n // ASCII alphabetical.\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiAlpha\"])(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n marker = 2\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n marker = 5\n index = 0\n return cdataOpenInside\n }\n\n // ASCII alphabetical.\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiAlpha\"])(code)) {\n effects.consume(code)\n marker = 4\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After `<!-`, inside a comment, at another `-`.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After `<![`, inside CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | </x>\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiAlpha\"])(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | <ab>\n * ^^\n * > | </ab>\n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEndingOrSpace\"])(code)\n ) {\n const slash = code === 47\n const name = buffer.toLowerCase()\n if (!slash && !closingTag && micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_1__[\"htmlRawNames\"].includes(name)) {\n marker = 1\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n if (micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_1__[\"htmlBlockNames\"].includes(buffer.toLowerCase())) {\n marker = 6\n if (slash) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n marker = 7\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : closingTag\n ? completeClosingTagAfter(code)\n : completeAttributeNameBefore(code)\n }\n\n // ASCII alphanumerical and `-`.\n if (code === 45 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiAlphanumeric\"])(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > | <div/>\n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | <x/>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownSpace\"])(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n return completeEnd(code)\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | <a />\n * ^\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * > | <a >\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === 58 || code === 95 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiAlpha\"])(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownSpace\"])(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n return completeEnd(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiAlphanumeric\"])(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n return completeAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | <a b>\n * ^\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownSpace\"])(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n return completeAttributeNameBefore(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n markerB = code\n return completeAttributeValueQuoted\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownSpace\"])(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n return completeAttributeValueUnquoted(code)\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * > | <a b='c'>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code)\n markerB = null\n return completeAttributeValueQuotedAfter\n }\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEnding\"])(code)) {\n return nok(code)\n }\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 47 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEndingOrSpace\"])(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownSpace\"])(code)) {\n return completeAttributeNameBefore(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | <x>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEnding\"])(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code)\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownSpace\"])(code)) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n if (code === 60 && marker === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n if (code === 62 && marker === 4) {\n effects.consume(code)\n return continuationClose\n }\n if (code === 63 && marker === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n if (code === 93 && marker === 5) {\n effects.consume(code)\n return continuationCdataInside\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEnding\"])(code) && (marker === 6 || marker === 7)) {\n effects.exit('htmlFlowData')\n return effects.check(\n blankLineBefore,\n continuationAfter,\n continuationStart\n )(code)\n }\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEnding\"])(code)) {\n effects.exit('htmlFlowData')\n return continuationStart(code)\n }\n effects.consume(code)\n return continuation\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(\n nonLazyContinuationStart,\n continuationStartNonLazy,\n continuationAfter\n )(code)\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return continuationBefore\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | <x>\n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEnding\"])(code)) {\n return continuationStart(code)\n }\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `</`, in a raw tag name.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase()\n if (micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_1__[\"htmlRawNames\"].includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n return continuation(code)\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiAlpha\"])(code) && buffer.length < 8) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | <!-->\n * ^\n * > | <?>\n * ^\n * > | <!q>\n * ^\n * > | <!--ab-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEnding\"])(code)) {\n effects.exit('htmlFlowData')\n return continuationAfter(code)\n }\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit('htmlFlow')\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEnding\"])(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return after\n }\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > | <div>\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(_blank_line_js__WEBPACK_IMPORTED_MODULE_2__[\"blankLine\"], ok, nok)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/html-flow.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/html-text.js":
/*!**********************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/html-text.js ***!
\**********************************************************************************/
/*! exports provided: htmlText */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"htmlText\", function() { return htmlText; });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n/** @type {Construct} */\nconst htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable<Code> | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"asciiAlpha\"])(code)) {\n effects.consume(code)\n return tagOpen\n }\n return nok(code)\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * > | a <![CDATA[>&<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"asciiAlpha\"])(code)) {\n effects.consume(code)\n return declaration\n }\n return nok(code)\n }\n\n /**\n * In a comment, after `<!-`, at another `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62\n ? end(code)\n : code === 45\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After `<![`, in CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a <!b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"asciiAlpha\"])(code)) {\n effects.consume(code)\n return tagClose\n }\n return nok(code)\n }\n\n /**\n * After `</x`, in a tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"asciiAlphanumeric\"])(code)) {\n effects.consume(code)\n return tagClose\n }\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n return end(code)\n }\n\n /**\n * After `<x`, in opening tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"asciiAlphanumeric\"])(code)) {\n effects.consume(code)\n return tagOpen\n }\n if (code === 47 || code === 62 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEndingOrSpace\"])(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"asciiAlpha\"])(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"asciiAlphanumeric\"])(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n if (code === null) {\n return nok(code)\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 47 || code === 62 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEndingOrSpace\"])(code)) {\n return tagOpenBetween(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEndingOrSpace\"])(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n return nok(code)\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we cant have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a <!--a\n * ^\n * | b-->\n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we cant have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)\n ? Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we cant have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/html-text.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/label-end.js":
/*!**********************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/label-end.js ***!
\**********************************************************************************/
/*! exports provided: labelEnd */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"labelEnd\", function() { return labelEnd; });\n/* harmony import */ var micromark_factory_destination__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-destination */ \"../simple-mind-map/node_modules/micromark-factory-destination/index.js\");\n/* harmony import */ var micromark_factory_label__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-factory-label */ \"../simple-mind-map/node_modules/micromark-factory-label/index.js\");\n/* harmony import */ var micromark_factory_title__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-factory-title */ \"../simple-mind-map/node_modules/micromark-factory-title/index.js\");\n/* harmony import */ var micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-factory-whitespace */ \"../simple-mind-map/node_modules/micromark-factory-whitespace/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-chunked */ \"../simple-mind-map/node_modules/micromark-util-chunked/index.js\");\n/* harmony import */ var micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-util-normalize-identifier */ \"../simple-mind-map/node_modules/micromark-util-normalize-identifier/index.js\");\n/* harmony import */ var micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! micromark-util-resolve-all */ \"../simple-mind-map/node_modules/micromark-util-resolve-all/index.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n\n\n\n\n\n\n/** @type {Construct} */\nconst labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n while (++index < events.length) {\n const token = events[index][1]\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array<Event>} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\n if (open) {\n // If we see another link, or inactive link label, weve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n }\n\n // Mark other link openings as inactive, as we cant have links in\n // links.\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ]\n\n // Opening marker.\n media = Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_5__[\"push\"])(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_5__[\"push\"])(media, [['enter', text, context]])\n\n // Always populated by defaults.\n\n // Between.\n media = Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_5__[\"push\"])(\n media,\n Object(micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_7__[\"resolveAll\"])(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_5__[\"push\"])(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_5__[\"push\"])(media, events.slice(close + 1))\n\n // Media close.\n media = Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_5__[\"push\"])(media, [['exit', group, context]])\n Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_5__[\"splice\"])(events, open, events.length, media)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means wed be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We cant have that, so its just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\n defined = self.parser.defined.includes(\n Object(micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_6__[\"normalizeIdentifier\"])(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, its nothing.\n *\n * There was an okay opening, but we didnt match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_4__[\"markdownLineEndingOrSpace\"])(code)\n ? Object(micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_3__[\"factoryWhitespace\"])(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code)\n }\n return Object(micromark_factory_destination__WEBPACK_IMPORTED_MODULE_0__[\"factoryDestination\"])(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_4__[\"markdownLineEndingOrSpace\"])(code)\n ? Object(micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_3__[\"factoryWhitespace\"])(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return Object(micromark_factory_title__WEBPACK_IMPORTED_MODULE_2__[\"factoryTitle\"])(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_4__[\"markdownLineEndingOrSpace\"])(code)\n ? Object(micromark_factory_whitespace__WEBPACK_IMPORTED_MODULE_3__[\"factoryWhitespace\"])(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return micromark_factory_label__WEBPACK_IMPORTED_MODULE_1__[\"factoryLabel\"].call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(\n Object(micromark_util_normalize_identifier__WEBPACK_IMPORTED_MODULE_6__[\"normalizeIdentifier\"])(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if theres a `[`.\n\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n return nok(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/label-end.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/label-start-image.js":
/*!******************************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/label-start-image.js ***!
\******************************************************************************************/
/*! exports provided: labelStartImage */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"labelStartImage\", function() { return labelStartImage; });\n/* harmony import */ var _label_end_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./label-end.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/label-end.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n/** @type {Construct} */\nconst labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: _label_end_js__WEBPACK_IMPORTED_MODULE_0__[\"labelEnd\"].resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n * <p>!<a href=\\\"b\\\">^a</a></p>\n * <p>!<a href=\\\"c\\\">^a</a></p>\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isnt.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/label-start-image.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/label-start-link.js":
/*!*****************************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/label-start-link.js ***!
\*****************************************************************************************/
/*! exports provided: labelStartLink */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"labelStartLink\", function() { return labelStartLink; });\n/* harmony import */ var _label_end_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./label-end.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/label-end.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n/** @type {Construct} */\nconst labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: _label_end_js__WEBPACK_IMPORTED_MODULE_0__[\"labelEnd\"].resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isnt needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/label-start-link.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/line-ending.js":
/*!************************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/line-ending.js ***!
\************************************************************************************/
/*! exports provided: lineEnding */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lineEnding\", function() { return lineEnding; });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n/** @type {Construct} */\nconst lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(effects, ok, 'linePrefix')\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/line-ending.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/list.js":
/*!*****************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/list.js ***!
\*****************************************************************************/
/*! exports provided: list */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"list\", function() { return list; });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/* harmony import */ var _blank_line_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./blank-line.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/blank-line.js\");\n/* harmony import */ var _thematic_break_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./thematic-break.js */ \"../simple-mind-map/node_modules/micromark-core-commonmark/lib/thematic-break.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n\n\n\n/** @type {Construct} */\nconst list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n\n/** @type {Construct} */\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"asciiDigit\"])(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(_thematic_break_js__WEBPACK_IMPORTED_MODULE_3__[\"thematicBreak\"], nok, atMarker)(code)\n : atMarker(code)\n }\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n return nok(code)\n }\n\n /** @type {State} */\n function inside(code) {\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"asciiDigit\"])(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n return nok(code)\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n _blank_line_js__WEBPACK_IMPORTED_MODULE_2__[\"blankLine\"],\n // Cant be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n return nok(code)\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(_blank_line_js__WEBPACK_IMPORTED_MODULE_2__[\"blankLine\"], onBlank, notBlank)\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true\n // As were closing flow, were no longer interrupting.\n self.interrupt = undefined\n // Always populated by defaults.\n\n return Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n\n // Always populated by defaults.\n\n return Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/list.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/setext-underline.js":
/*!*****************************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/setext-underline.js ***!
\*****************************************************************************************/
/*! exports provided: setextUnderline */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setextUnderline\", function() { return setextUnderline; });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n/** @type {Construct} */\nconst setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length\n /** @type {number | undefined} */\n let content\n /** @type {number | undefined} */\n let text\n /** @type {number | undefined} */\n let definition\n\n // Find the opening of the content.\n // Itll always exist: we dont tokenize if it isnt there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n }\n // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed well add it later)\n events.splice(index, 1)\n }\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n\n // Change the paragraph to setext heading text.\n events[text][1].type = 'setextHeadingText'\n\n // If we have definitions in the content, well keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context])\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length\n /** @type {boolean | undefined} */\n let paragraph\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n marker = code\n return before(code)\n }\n return nok(code)\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('setextHeadingLineSequence')\n return inside(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n effects.exit('setextHeadingLineSequence')\n return Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)\n ? Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(effects, after, 'lineSuffix')(code)\n : after(code)\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n return nok(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/setext-underline.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-core-commonmark/lib/thematic-break.js":
/*!***************************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-core-commonmark/lib/thematic-break.js ***!
\***************************************************************************************/
/*! exports provided: thematicBreak */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"thematicBreak\", function() { return thematicBreak; });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n\n\n/** @type {Construct} */\nconst thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('thematicBreak')\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code\n return atBreak(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n if (size >= 3 && (code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code))) {\n effects.exit('thematicBreak')\n return ok(code)\n }\n return nok(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n effects.exit('thematicBreakSequence')\n return Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)\n ? Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(effects, atBreak, 'whitespace')(code)\n : atBreak(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-core-commonmark/lib/thematic-break.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-factory-destination/index.js":
/*!******************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-factory-destination/index.js ***!
\******************************************************************************/
/*! exports provided: factoryDestination */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"factoryDestination\", function() { return factoryDestination; });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\n\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * <a>\n * <a\\>b>\n * <a b>\n * <a)>\n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`<a>` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (`<a>`).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nfunction factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return enclosedBefore\n }\n\n // ASCII control, space, closing paren.\n if (code === null || code === 32 || code === 41 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiControl\"])(code)) {\n return nok(code)\n }\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return raw(code)\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return enclosed(code)\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return enclosedBefore(code)\n }\n if (code === null || code === 60 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEnding\"])(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? enclosedEscape : enclosed\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | <a\\*a>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return enclosed\n }\n return enclosed(code)\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (\n !balance &&\n (code === null || code === 41 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEndingOrSpace\"])(code))\n ) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n if (balance < limit && code === 40) {\n effects.consume(code)\n balance++\n return raw\n }\n if (code === 41) {\n effects.consume(code)\n balance--\n return raw\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesnt.\n if (code === null || code === 32 || code === 40 || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"asciiControl\"])(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? rawEscape : raw\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return raw\n }\n return raw(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-factory-destination/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-factory-label/index.js":
/*!************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-factory-label/index.js ***!
\************************************************************************/
/*! exports provided: factoryLabel */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"factoryLabel\", function() { return factoryLabel; });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\n\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nfunction factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n let seen\n return start\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (\n size > 999 ||\n code === null ||\n code === 91 ||\n (code === 93 && !seen) ||\n // To do: remove in the future once weve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesnt need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEnding\"])(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return labelInside(code)\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEnding\"])(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n if (!seen) seen = !Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownSpace\"])(code)\n return code === 92 ? labelEscape : labelInside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return labelInside\n }\n return labelInside(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-factory-label/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-factory-space/index.js":
/*!************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-factory-space/index.js ***!
\************************************************************************/
/*! exports provided: factorySpace */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"factorySpace\", function() { return factorySpace; });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\n\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns\n * Start state.\n */\nfunction factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownSpace\"])(code)) {\n effects.enter(type)\n return prefix(code)\n }\n return ok(code)\n }\n\n /** @type {State} */\n function prefix(code) {\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownSpace\"])(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n effects.exit(type)\n return ok(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-factory-space/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-factory-title/index.js":
/*!************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-factory-title/index.js ***!
\************************************************************************/
/*! exports provided: factoryTitle */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"factoryTitle\", function() { return factoryTitle; });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\n\n\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nfunction factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker\n return start\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 34 || code === 39 || code === 40) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return begin\n }\n return nok(code)\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n return atBreak(code)\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return begin(marker)\n }\n if (code === null) {\n return nok(code)\n }\n\n // Note: blank lines cant exist in content.\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(effects, atBreak, 'linePrefix')\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return inside(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === null || Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n return code === 92 ? escape : inside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return inside\n }\n return inside(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-factory-title/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-factory-whitespace/index.js":
/*!*****************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-factory-whitespace/index.js ***!
\*****************************************************************************/
/*! exports provided: factoryWhitespace */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"factoryWhitespace\", function() { return factoryWhitespace; });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\n\n\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns\n * Start state.\n */\nfunction factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\n\n /** @type {State} */\n function start(code) {\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownSpace\"])(code)) {\n return Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n return ok(code)\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-factory-whitespace/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-util-character/index.js":
/*!*************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-util-character/index.js ***!
\*************************************************************************/
/*! exports provided: asciiAlpha, asciiAlphanumeric, asciiAtext, asciiControl, asciiDigit, asciiHexDigit, asciiPunctuation, markdownLineEnding, markdownLineEndingOrSpace, markdownSpace, unicodePunctuation, unicodeWhitespace */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asciiAlpha\", function() { return asciiAlpha; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asciiAlphanumeric\", function() { return asciiAlphanumeric; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asciiAtext\", function() { return asciiAtext; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asciiControl\", function() { return asciiControl; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asciiDigit\", function() { return asciiDigit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asciiHexDigit\", function() { return asciiHexDigit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asciiPunctuation\", function() { return asciiPunctuation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"markdownLineEnding\", function() { return markdownLineEnding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"markdownLineEndingOrSpace\", function() { return markdownLineEndingOrSpace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"markdownSpace\", function() { return markdownSpace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unicodePunctuation\", function() { return unicodePunctuation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unicodeWhitespace\", function() { return unicodeWhitespace; });\n/* harmony import */ var _lib_unicode_punctuation_regex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/unicode-punctuation-regex.js */ \"../simple-mind-map/node_modules/micromark-util-character/lib/unicode-punctuation-regex.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nconst asciiAlpha = regexCheck(/[A-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nconst asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nconst asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nfunction asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nconst asciiDigit = regexCheck(/\\d/)\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nconst asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nconst asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nfunction markdownLineEnding(code) {\n return code !== null && code < -2\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nfunction markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nfunction markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nconst unicodePunctuation = regexCheck(_lib_unicode_punctuation_regex_js__WEBPACK_IMPORTED_MODULE_0__[\"unicodePunctuationRegex\"])\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nconst unicodeWhitespace = regexCheck(/\\s/)\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-util-character/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-util-character/lib/unicode-punctuation-regex.js":
/*!*************************************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-util-character/lib/unicode-punctuation-regex.js ***!
\*************************************************************************************************/
/*! exports provided: unicodePunctuationRegex */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unicodePunctuationRegex\", function() { return unicodePunctuationRegex; });\n// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\n\n/**\n * Regular expression that matches a unicode punctuation character.\n */\nconst unicodePunctuationRegex =\n /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52-\\u2E5D\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-util-character/lib/unicode-punctuation-regex.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-util-chunked/index.js":
/*!***********************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-util-chunked/index.js ***!
\***********************************************************************/
/*! exports provided: splice, push */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"splice\", function() { return splice; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"push\", function() { return push; });\n/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array<T>} items\n * Items to inject into `list`.\n * @returns {void}\n * Nothing.\n */\nfunction splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {Array<unknown>} */\n let parameters\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n remove = remove > 0 ? remove : 0\n\n // No need to chunk the items if theres only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n // @ts-expect-error Hush, its fine.\n list.splice(...parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove)\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n // @ts-expect-error Hush, its fine.\n list.splice(...parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {Array<T>} items\n * Items to add to `list`.\n * @returns {Array<T>}\n * Either `list` or `items`.\n */\nfunction push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n return items\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-util-chunked/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-util-classify-character/index.js":
/*!**********************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-util-classify-character/index.js ***!
\**********************************************************************************/
/*! exports provided: classifyCharacter */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"classifyCharacter\", function() { return classifyCharacter; });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nfunction classifyCharacter(code) {\n if (\n code === null ||\n Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEndingOrSpace\"])(code) ||\n Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"unicodeWhitespace\"])(code)\n ) {\n return 1\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"unicodePunctuation\"])(code)) {\n return 2\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-util-classify-character/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-util-combine-extensions/index.js":
/*!**********************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-util-combine-extensions/index.js ***!
\**********************************************************************************/
/*! exports provided: combineExtensions, combineHtmlExtensions */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"combineExtensions\", function() { return combineExtensions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"combineHtmlExtensions\", function() { return combineHtmlExtensions; });\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-chunked */ \"../simple-mind-map/node_modules/micromark-util-chunked/index.js\");\n/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Handles} Handles\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n */\n\n\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {Array<Extension>} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nfunction combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record<string, unknown>} */\n const left = maybe || (all[hook] = {})\n /** @type {Record<string, unknown> | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n * @param {Array<unknown>} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array<unknown>} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__[\"splice\"])(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array<HtmlExtension>} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * A single combined HTML extension.\n */\nfunction combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-util-combine-extensions/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-util-decode-numeric-character-reference/index.js":
/*!**************************************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-util-decode-numeric-character-reference/index.js ***!
\**************************************************************************************************/
/*! exports provided: decodeNumericCharacterReference */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"decodeNumericCharacterReference\", function() { return decodeNumericCharacterReference; });\n/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nfunction decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) ||\n // Control character (DEL) of C0, and C1 controls.\n (code > 126 && code < 160) ||\n // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) ||\n // Noncharacters.\n (code > 64975 && code < 65008) /* eslint-disable no-bitwise */ ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 /* eslint-enable no-bitwise */ ||\n // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n return String.fromCharCode(code)\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-util-decode-numeric-character-reference/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-util-decode-string/index.js":
/*!*****************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-util-decode-string/index.js ***!
\*****************************************************************************/
/*! exports provided: decodeString */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"decodeString\", function() { return decodeString; });\n/* harmony import */ var decode_named_character_reference__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! decode-named-character-reference */ \"../simple-mind-map/node_modules/decode-named-character-reference/index.js\");\n/* harmony import */ var micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-decode-numeric-character-reference */ \"../simple-mind-map/node_modules/micromark-util-decode-numeric-character-reference/index.js\");\n\n\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nfunction decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return Object(micromark_util_decode_numeric_character_reference__WEBPACK_IMPORTED_MODULE_1__[\"decodeNumericCharacterReference\"])($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return Object(decode_named_character_reference__WEBPACK_IMPORTED_MODULE_0__[\"decodeNamedCharacterReference\"])($2) || $0\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-util-decode-string/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-util-html-tag-name/index.js":
/*!*****************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-util-html-tag-name/index.js ***!
\*****************************************************************************/
/*! exports provided: htmlBlockNames, htmlRawNames */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"htmlBlockNames\", function() { return htmlBlockNames; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"htmlRawNames\", function() { return htmlRawNames; });\n/**\n * List of lowercase HTML “block” tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesnt have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nconst htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML “raw” tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nconst htmlRawNames = ['pre', 'script', 'style', 'textarea']\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-util-html-tag-name/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-util-normalize-identifier/index.js":
/*!************************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-util-normalize-identifier/index.js ***!
\************************************************************************************/
/*! exports provided: normalizeIdentifier */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeIdentifier\", function() { return normalizeIdentifier; });\n/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nfunction normalizeIdentifier(value) {\n return (\n value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ')\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-util-normalize-identifier/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-util-resolve-all/index.js":
/*!***************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-util-resolve-all/index.js ***!
\***************************************************************************/
/*! exports provided: resolveAll */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resolveAll\", function() { return resolveAll; });\n/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {Array<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array<Event>}\n * Changed events.\n */\nfunction resolveAll(constructs, events, context) {\n /** @type {Array<Resolver>} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-util-resolve-all/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark-util-subtokenize/index.js":
/*!***************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark-util-subtokenize/index.js ***!
\***************************************************************************/
/*! exports provided: subtokenize */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subtokenize\", function() { return subtokenize; });\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-chunked */ \"../simple-mind-map/node_modules/micromark-util-chunked/index.js\");\n/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n */\n\n\n/**\n * Tokenize subcontent.\n *\n * @param {Array<Event>} events\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\nfunction subtokenize(events) {\n /** @type {Record<string, number>} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n let event\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number} */\n let otherIndex\n /** @type {Event} */\n let otherEvent\n /** @type {Array<Event>} */\n let parameters\n /** @type {Array<Event>} */\n let subevents\n /** @type {boolean | undefined} */\n let more\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n event = events[index]\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start)\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__[\"splice\"])(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n return !more\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {Array<Event>} events\n * @param {number} eventIndex\n * @returns {Record<string, number>}\n */\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {Array<number>} */\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {Array<[number, number]>} */\n const jumps = []\n /** @type {Record<string, number>} */\n const gaps = {}\n /** @type {Array<Chunk>} */\n let stream\n /** @type {Token | undefined} */\n let previous\n let index = -1\n /** @type {Token | undefined} */\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start]\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n startPositions.push(startPosition)\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n if (!current.next) {\n stream.push(null)\n }\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n tokenizer.write(stream)\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n }\n\n // Unravel the next token.\n previous = current\n current = current.next\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start)\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n }\n\n // Help GC.\n tokenizer.events = []\n\n // If theres one more token (which is the cases for lines that end in an\n // EOF), thats perfect: the last point we found starts it.\n // If there isnt then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices arent affected.\n index = breaks.length\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__[\"splice\"])(events, start, 2, slice)\n }\n index = -1\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n return gaps\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark-util-subtokenize/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark/lib/constructs.js":
/*!*******************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark/lib/constructs.js ***!
\*******************************************************************/
/*! exports provided: document, contentInitial, flowInitial, flow, string, text, insideSpan, attentionMarkers, disable */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"document\", function() { return document; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"contentInitial\", function() { return contentInitial; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flowInitial\", function() { return flowInitial; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"string\", function() { return string; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"text\", function() { return text; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insideSpan\", function() { return insideSpan; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"attentionMarkers\", function() { return attentionMarkers; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"disable\", function() { return disable; });\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-core-commonmark */ \"../simple-mind-map/node_modules/micromark-core-commonmark/index.js\");\n/* harmony import */ var _initialize_text_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./initialize/text.js */ \"../simple-mind-map/node_modules/micromark/lib/initialize/text.js\");\n/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\n\n\n\n/** @satisfies {Extension['document']} */\nconst document = {\n [42]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"list\"],\n [43]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"list\"],\n [45]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"list\"],\n [48]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"list\"],\n [49]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"list\"],\n [50]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"list\"],\n [51]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"list\"],\n [52]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"list\"],\n [53]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"list\"],\n [54]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"list\"],\n [55]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"list\"],\n [56]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"list\"],\n [57]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"list\"],\n [62]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"blockQuote\"]\n}\n\n/** @satisfies {Extension['contentInitial']} */\nconst contentInitial = {\n [91]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"definition\"]\n}\n\n/** @satisfies {Extension['flowInitial']} */\nconst flowInitial = {\n [-2]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"codeIndented\"],\n [-1]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"codeIndented\"],\n [32]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"codeIndented\"]\n}\n\n/** @satisfies {Extension['flow']} */\nconst flow = {\n [35]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"headingAtx\"],\n [42]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"thematicBreak\"],\n [45]: [micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"setextUnderline\"], micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"thematicBreak\"]],\n [60]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"htmlFlow\"],\n [61]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"setextUnderline\"],\n [95]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"thematicBreak\"],\n [96]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"codeFenced\"],\n [126]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"codeFenced\"]\n}\n\n/** @satisfies {Extension['string']} */\nconst string = {\n [38]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"characterReference\"],\n [92]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"characterEscape\"]\n}\n\n/** @satisfies {Extension['text']} */\nconst text = {\n [-5]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"lineEnding\"],\n [-4]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"lineEnding\"],\n [-3]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"lineEnding\"],\n [33]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"labelStartImage\"],\n [38]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"characterReference\"],\n [42]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"attention\"],\n [60]: [micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"autolink\"], micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"htmlText\"]],\n [91]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"labelStartLink\"],\n [92]: [micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"hardBreakEscape\"], micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"characterEscape\"]],\n [93]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"labelEnd\"],\n [95]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"attention\"],\n [96]: micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"codeText\"]\n}\n\n/** @satisfies {Extension['insideSpan']} */\nconst insideSpan = {\n null: [micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"attention\"], _initialize_text_js__WEBPACK_IMPORTED_MODULE_1__[\"resolver\"]]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nconst attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nconst disable = {\n null: []\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark/lib/constructs.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark/lib/create-tokenizer.js":
/*!*************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark/lib/create-tokenizer.js ***!
\*************************************************************************/
/*! exports provided: createTokenizer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createTokenizer\", function() { return createTokenizer; });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-chunked */ \"../simple-mind-map/node_modules/micromark-util-chunked/index.js\");\n/* harmony import */ var micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-resolve-all */ \"../simple-mind-map/node_modules/micromark-util-resolve-all/index.js\");\n/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * @callback Restore\n * @returns {void}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\n\n\n\n\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesnt receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]\n * @returns {TokenizeContext}\n */\nfunction createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record<string, number>} */\n const columnStart = {}\n /** @type {Array<Construct>} */\n const resolveAllConstructs = []\n /** @type {Array<Chunk>} */\n let chunks = []\n /** @type {Array<Token>} */\n let stack = []\n /** @type {boolean | undefined} */\n let consumed = true\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n\n /**\n * The state function.\n *\n * @type {State | void}\n */\n let state = initialize.tokenize.call(context, effects)\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n return context\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_1__[\"push\"])(chunks, slice)\n main()\n\n // Exit if were not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n addResult(initialize, 0)\n\n // Otherwise, resolve, and exit.\n context.events = Object(micromark_util_resolve_all__WEBPACK_IMPORTED_MODULE_2__[\"resolveAll\"])(resolveAllConstructs, context.events, context)\n return context.events\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {line, column, offset, _index, _bufferIndex} = point\n return {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n }\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n function main() {\n /** @type {number} */\n let chunkIndex\n while (point._index < chunks.length) {\n const chunk = chunks[point._index]\n\n // If were in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_0__[\"markdownLineEnding\"])(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++\n\n // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n }\n\n // Expose the previous character.\n context.previous = code\n\n // Mark as consumed.\n consumed = true\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n */\n function constructFactory(onreturn, fields) {\n return hook\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array<Construct> | Construct | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {Array<Construct>} */\n let listOfConstructs\n /** @type {number} */\n let constructIndex\n /** @type {Construct} */\n let currentConstruct\n /** @type {Info} */\n let info\n return Array.isArray(constructs) /* c8 ignore next 1 */\n ? handleListOfConstructs(constructs)\n : 'tokenize' in constructs\n ? // @ts-expect-error Looks like a construct.\n handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n function handleMapOfConstructs(map) {\n return start\n\n /** @type {State} */\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {Array<Construct>} list\n * @returns {State}\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n if (list.length === 0) {\n return bogusState\n }\n return handleConstruct(list[constructIndex])\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n function handleConstruct(construct) {\n return start\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesnt work because `inspect` in document does a check\n // w/o a bogus, which doesnt make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n // Always populated by defaults.\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true\n info.restore()\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n return bogusState\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n if (construct.resolve) {\n Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_1__[\"splice\"])(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n */\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n\n /**\n * Restore state.\n *\n * @returns {void}\n */\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n /**\n * Move the current point a bit forward in the line when its on a column\n * skip.\n *\n * @returns {void}\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array<Chunk>} chunks\n * @param {Pick<Token, 'end' | 'start'>} token\n * @returns {Array<Chunk>}\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array<Chunk>} */\n let view\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n if (startBufferIndex > -1) {\n const head = view[0]\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex)\n } else {\n view.shift()\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n return view\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array<Chunk>} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array<string>} */\n const result = []\n /** @type {boolean | undefined} */\n let atTab\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n let value\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n case -4: {\n value = '\\n'\n break\n }\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n atTab = chunk === -2\n result.push(value)\n }\n return result.join('')\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark/lib/create-tokenizer.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark/lib/initialize/content.js":
/*!***************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark/lib/initialize/content.js ***!
\***************************************************************************/
/*! exports provided: content */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"content\", function() { return content; });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n\n\n/** @type {InitialConstruct} */\nconst content = {\n tokenize: initializeContent\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n let previous\n return contentStart\n\n /** @type {State} */\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(effects, contentStart, 'linePrefix')\n }\n\n /** @type {State} */\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n /** @type {State} */\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n if (previous) {\n previous.next = token\n }\n previous = token\n return data(code)\n }\n\n /** @type {State} */\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark/lib/initialize/content.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark/lib/initialize/document.js":
/*!****************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark/lib/initialize/document.js ***!
\****************************************************************************/
/*! exports provided: document */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"document\", function() { return document; });\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ \"../simple-mind-map/node_modules/micromark-util-chunked/index.js\");\n/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n */\n\n\n\n\n/** @type {InitialConstruct} */\nconst document = {\n tokenize: initializeDocument\n}\n\n/** @type {Construct} */\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeDocument(effects) {\n const self = this\n /** @type {Array<StackItem>} */\n const stack = []\n let continued = 0\n /** @type {TokenizeContext | undefined} */\n let childFlow\n /** @type {Token | undefined} */\n let childToken\n /** @type {number} */\n let lineStartOffset\n return start\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n }\n\n // Done.\n return checkNewContainers(code)\n }\n\n /** @type {State} */\n function documentContinue(code) {\n continued++\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but its already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n if (childFlow) {\n closeFlow()\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point | undefined} */\n let point\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n let index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (theyre still also at the end).\n Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__[\"splice\"])(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n return checkNewContainers(code)\n }\n return start(code)\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether theres a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we cant have containers “pierce” into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n }\n\n // If we do have flow, it could still be a blank line,\n // but wed be interrupting it w/ a new container if theres a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n }\n\n // Check if there is a new container.\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n /** @type {State} */\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState])\n // Try another.\n return documentContinued(code)\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n if (Object(micromark_util_character__WEBPACK_IMPORTED_MODULE_1__[\"markdownLineEnding\"])(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow'))\n // Get ready for the next line.\n continued = 0\n self.interrupt = undefined\n return start\n }\n effects.consume(code)\n return flowContinue\n }\n\n /**\n * @param {Token} token\n * @param {boolean | undefined} [eof]\n * @returns {void}\n */\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream)\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line cant “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // Weve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset &&\n // …and either is not ended yet…\n (!childFlow.events[index][1].end ||\n // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: theres still something open, which means its a lazy line\n // part of something.\n return\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean | undefined} */\n let seen\n /** @type {Point | undefined} */\n let point\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n seen = true\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (theyre still also at the end).\n Object(micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__[\"splice\"])(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n }\n }\n\n /**\n * @param {number} size\n * @returns {void}\n */\n function exitContainers(size) {\n let index = stack.length\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n stack.length = size\n }\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n\n return Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_0__[\"factorySpace\"])(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark/lib/initialize/document.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark/lib/initialize/flow.js":
/*!************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark/lib/initialize/flow.js ***!
\************************************************************************/
/*! exports provided: flow */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flow\", function() { return flow; });\n/* harmony import */ var micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-core-commonmark */ \"../simple-mind-map/node_modules/micromark-core-commonmark/index.js\");\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-factory-space */ \"../simple-mind-map/node_modules/micromark-factory-space/index.js\");\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-character */ \"../simple-mind-map/node_modules/micromark-util-character/index.js\");\n/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n\n\n\n/** @type {InitialConstruct} */\nconst flow = {\n tokenize: initializeFlow\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"blankLine\"],\n atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n Object(micromark_factory_space__WEBPACK_IMPORTED_MODULE_1__[\"factorySpace\"])(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(micromark_core_commonmark__WEBPACK_IMPORTED_MODULE_0__[\"content\"], afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark/lib/initialize/flow.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark/lib/initialize/text.js":
/*!************************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark/lib/initialize/text.js ***!
\************************************************************************/
/*! exports provided: resolver, string, text */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resolver\", function() { return resolver; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"string\", function() { return string; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"text\", function() { return text; });\n/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nconst resolver = {\n resolveAll: createResolver()\n}\nconst string = initializeFactory('string')\nconst text = initializeFactory('text')\n\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n function atBreak(code) {\n if (code === null) {\n return true\n }\n const list = constructs[code]\n let index = -1\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index]\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n return false\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number | undefined} */\n let enter\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Dont do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n enter = undefined\n }\n }\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we cant hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean | undefined} */\n let tabs\n while (index--) {\n const chunk = chunks[index]\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n if (bufferIndex) break\n bufferIndex = -1\n }\n // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n eventIndex++\n }\n }\n return events\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark/lib/initialize/text.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark/lib/parse.js":
/*!**************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark/lib/parse.js ***!
\**************************************************************/
/*! exports provided: parse */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parse\", function() { return parse; });\n/* harmony import */ var micromark_util_combine_extensions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-combine-extensions */ \"../simple-mind-map/node_modules/micromark-util-combine-extensions/index.js\");\n/* harmony import */ var _initialize_content_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./initialize/content.js */ \"../simple-mind-map/node_modules/micromark/lib/initialize/content.js\");\n/* harmony import */ var _initialize_document_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./initialize/document.js */ \"../simple-mind-map/node_modules/micromark/lib/initialize/document.js\");\n/* harmony import */ var _initialize_flow_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./initialize/flow.js */ \"../simple-mind-map/node_modules/micromark/lib/initialize/flow.js\");\n/* harmony import */ var _initialize_text_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./initialize/text.js */ \"../simple-mind-map/node_modules/micromark/lib/initialize/text.js\");\n/* harmony import */ var _create_tokenizer_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./create-tokenizer.js */ \"../simple-mind-map/node_modules/micromark/lib/create-tokenizer.js\");\n/* harmony import */ var _constructs_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./constructs.js */ \"../simple-mind-map/node_modules/micromark/lib/constructs.js\");\n/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\n\n\n\n\n\n\n\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nfunction parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n Object(micromark_util_combine_extensions__WEBPACK_IMPORTED_MODULE_0__[\"combineExtensions\"])([_constructs_js__WEBPACK_IMPORTED_MODULE_6__, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(_initialize_content_js__WEBPACK_IMPORTED_MODULE_1__[\"content\"]),\n document: create(_initialize_document_js__WEBPACK_IMPORTED_MODULE_2__[\"document\"]),\n flow: create(_initialize_flow_js__WEBPACK_IMPORTED_MODULE_3__[\"flow\"]),\n string: create(_initialize_text_js__WEBPACK_IMPORTED_MODULE_4__[\"string\"]),\n text: create(_initialize_text_js__WEBPACK_IMPORTED_MODULE_4__[\"text\"])\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return Object(_create_tokenizer_js__WEBPACK_IMPORTED_MODULE_5__[\"createTokenizer\"])(parser, initial, from)\n }\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark/lib/parse.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark/lib/postprocess.js":
/*!********************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark/lib/postprocess.js ***!
\********************************************************************/
/*! exports provided: postprocess */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"postprocess\", function() { return postprocess; });\n/* harmony import */ var micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-subtokenize */ \"../simple-mind-map/node_modules/micromark-util-subtokenize/index.js\");\n/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n\n\n/**\n * @param {Array<Event>} events\n * @returns {Array<Event>}\n */\nfunction postprocess(events) {\n while (!Object(micromark_util_subtokenize__WEBPACK_IMPORTED_MODULE_0__[\"subtokenize\"])(events)) {\n // Empty\n }\n return events\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark/lib/postprocess.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/micromark/lib/preprocess.js":
/*!*******************************************************************!*\
!*** ../simple-mind-map/node_modules/micromark/lib/preprocess.js ***!
\*******************************************************************/
/*! exports provided: preprocess */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"preprocess\", function() { return preprocess; });\n/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array<Chunk>}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nfunction preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n function preprocessor(value, encoding, end) {\n /** @type {Array<Chunk>} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n\n // @ts-expect-error `Buffer` does allow an encoding.\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/micromark/lib/preprocess.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/quill/dist/quill.snow.css":
/*!*****************************************************************!*\
!*** ../simple-mind-map/node_modules/quill/dist/quill.snow.css ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../web/node_modules/css-loader/dist/cjs.js??ref--7-oneOf-3-1!../../../../web/node_modules/postcss-loader/src??ref--7-oneOf-3-2!./quill.snow.css */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!../simple-mind-map/node_modules/quill/dist/quill.snow.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../web/node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5b657fe4\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/quill/dist/quill.snow.css?");
/***/ }),
/***/ "../simple-mind-map/node_modules/unist-util-stringify-position/index.js":
/*!******************************************************************************!*\
!*** ../simple-mind-map/node_modules/unist-util-stringify-position/index.js ***!
\******************************************************************************/
/*! exports provided: stringifyPosition */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _lib_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/index.js */ \"../simple-mind-map/node_modules/unist-util-stringify-position/lib/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stringifyPosition\", function() { return _lib_index_js__WEBPACK_IMPORTED_MODULE_0__[\"stringifyPosition\"]; });\n\n\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/unist-util-stringify-position/index.js?");
/***/ }),
/***/ "../simple-mind-map/node_modules/unist-util-stringify-position/lib/index.js":
/*!**********************************************************************************!*\
!*** ../simple-mind-map/node_modules/unist-util-stringify-position/lib/index.js ***!
\**********************************************************************************/
/*! exports provided: stringifyPosition */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stringifyPosition\", function() { return stringifyPosition; });\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nfunction stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/unist-util-stringify-position/lib/index.js?");
/***/ }),
/***/ "../simple-mind-map/src/parse/markdown.js":
/*!************************************************!*\
!*** ../simple-mind-map/src/parse/markdown.js ***!
\************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _toMarkdown__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toMarkdown */ \"../simple-mind-map/src/parse/toMarkdown.js\");\n/* harmony import */ var _markdownTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./markdownTo */ \"../simple-mind-map/src/parse/markdownTo.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n transformToMarkdown: _toMarkdown__WEBPACK_IMPORTED_MODULE_0__[\"transformToMarkdown\"],\n transformMarkdownTo: _markdownTo__WEBPACK_IMPORTED_MODULE_1__[\"transformMarkdownTo\"]\n});\n\n//# sourceURL=webpack:///../simple-mind-map/src/parse/markdown.js?");
/***/ }),
/***/ "../simple-mind-map/src/parse/markdownTo.js":
/*!**************************************************!*\
!*** ../simple-mind-map/src/parse/markdownTo.js ***!
\**************************************************/
/*! exports provided: transformMarkdownTo */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transformMarkdownTo\", function() { return transformMarkdownTo; });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mdast_util_from_markdown__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mdast-util-from-markdown */ \"../simple-mind-map/node_modules/mdast-util-from-markdown/index.js\");\n\n\nconst getNodeText = node => {\n // 优先找出其中的text类型的子节点\n let textChild = (node.children || []).find(item => {\n return item.type === 'text';\n });\n // 没有找到,那么直接使用第一个子节点\n textChild = textChild || node.children[0];\n if (textChild) {\n if (textChild.value !== undefined) {\n return textChild.value;\n }\n return getNodeText(textChild);\n }\n return '';\n};\n\n// 处理list的情况\nconst handleList = node => {\n let list = [];\n let walk = (arr, newArr) => {\n for (let i = 0; i < arr.length; i++) {\n let cur = arr[i];\n let node = {};\n node.data = {\n // 节点内容\n text: getNodeText(cur)\n };\n node.children = [];\n newArr.push(node);\n if (cur.children.length > 1) {\n for (let j = 1; j < cur.children.length; j++) {\n let cur2 = cur.children[j];\n if (cur2.type === 'list') {\n walk(cur2.children, node.children);\n }\n }\n }\n }\n };\n walk(node.children, list);\n return list;\n};\n\n// 将markdown转换成节点树\nconst transformMarkdownTo = md => {\n const tree = Object(mdast_util_from_markdown__WEBPACK_IMPORTED_MODULE_1__[\"fromMarkdown\"])(md);\n let root = {\n children: []\n };\n let childrenQueue = [root.children];\n let currentChildren = root.children;\n let depthQueue = [-1];\n let currentDepth = -1;\n for (let i = 0; i < tree.children.length; i++) {\n let cur = tree.children[i];\n if (cur.type === 'heading') {\n if (!cur.children[0]) continue;\n // 创建新节点\n let node = {};\n node.data = {\n // 节点内容\n text: getNodeText(cur)\n };\n node.children = [];\n // 如果当前的层级大于上一个节点的层级,那么是其子节点\n if (cur.depth > currentDepth) {\n // 添加到上一个节点的子节点列表里\n currentChildren.push(node);\n // 更新当前栈和数据\n childrenQueue.push(node.children);\n currentChildren = node.children;\n depthQueue.push(cur.depth);\n currentDepth = cur.depth;\n } else if (cur.depth === currentDepth) {\n // 如果当前层级等于上一个节点的层级,说明它们是同级节点\n // 将上一个节点出栈\n childrenQueue.pop();\n currentChildren = childrenQueue[childrenQueue.length - 1];\n depthQueue.pop();\n currentDepth = depthQueue[depthQueue.length - 1];\n // 追加到上上个节点的子节点列表里\n currentChildren.push(node);\n // 更新当前栈和数据\n childrenQueue.push(node.children);\n currentChildren = node.children;\n depthQueue.push(cur.depth);\n currentDepth = cur.depth;\n } else {\n // 如果当前层级小于上一个节点的层级,那么一直出栈,直到遇到比当前层级小的节点\n while (depthQueue.length) {\n childrenQueue.pop();\n currentChildren = childrenQueue[childrenQueue.length - 1];\n depthQueue.pop();\n currentDepth = depthQueue[depthQueue.length - 1];\n if (currentDepth < cur.depth) {\n // 追加到该节点的子节点列表里\n currentChildren.push(node);\n // 更新当前栈和数据\n childrenQueue.push(node.children);\n currentChildren = node.children;\n depthQueue.push(cur.depth);\n currentDepth = cur.depth;\n break;\n }\n }\n }\n } else if (cur.type === 'list') {\n currentChildren.push(...handleList(cur));\n }\n }\n return root.children[0];\n};\n\n//# sourceURL=webpack:///../simple-mind-map/src/parse/markdownTo.js?");
/***/ }),
/***/ "../simple-mind-map/src/plugins/RichText.js":
/*!**************************************************!*\
!*** ../simple-mind-map/src/plugins/RichText.js ***!
\**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.reduce.js */ \"./node_modules/core-js/modules/es.array.reduce.js\");\n/* harmony import */ var core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var quill__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! quill */ \"../simple-mind-map/node_modules/quill/quill.js\");\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! quill-delta */ \"../simple-mind-map/node_modules/quill-delta/dist/Delta.js\");\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(quill_delta__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var quill_dist_quill_snow_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! quill/dist/quill.snow.css */ \"../simple-mind-map/node_modules/quill/dist/quill.snow.css\");\n/* harmony import */ var quill_dist_quill_snow_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(quill_dist_quill_snow_css__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils */ \"../simple-mind-map/src/utils/index.js\");\n/* harmony import */ var _constants_constant__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../constants/constant */ \"../simple-mind-map/src/constants/constant.js\");\n/* harmony import */ var _core_render_node_MindMapNode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/render/node/MindMapNode */ \"../simple-mind-map/src/core/render/node/MindMapNode.js\");\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! parchment */ \"../simple-mind-map/node_modules/parchment/dist/parchment.js\");\n\n\n\n\n\n\n\n\n\nlet extended = false;\n\n// 扩展quill的字体列表\nlet fontFamilyList = ['宋体, SimSun, Songti SC', '微软雅黑, Microsoft YaHei', '楷体, 楷体_GB2312, SimKai, STKaiti', '黑体, SimHei, Heiti SC', '隶书, SimLi', 'andale mono', 'arial, helvetica, sans-serif', 'arial black, avant garde', 'comic sans ms', 'impact, chicago', 'times new roman', 'sans-serif', 'serif'];\n\n// 扩展quill的字号列表\nlet fontSizeList = new Array(100).fill(0).map((_, index) => {\n return index + 'px';\n});\n\n// 富文本编辑插件\nclass RichText {\n constructor({\n mindMap,\n pluginOpt\n }) {\n this.mindMap = mindMap;\n this.pluginOpt = pluginOpt;\n this.textEditNode = null;\n this.showTextEdit = false;\n this.quill = null;\n this.range = null;\n this.lastRange = null;\n this.pasteUseRange = null;\n this.node = null;\n this.isInserting = false;\n this.styleEl = null;\n this.cacheEditingText = '';\n this.isCompositing = false;\n this.textNodePaddingX = 6;\n this.textNodePaddingY = 4;\n this.initOpt();\n this.extendQuill();\n this.appendCss();\n this.bindEvent();\n this.handleDataToRichTextOnInit();\n }\n\n // 绑定事件\n bindEvent() {\n this.onCompositionStart = this.onCompositionStart.bind(this);\n this.onCompositionUpdate = this.onCompositionUpdate.bind(this);\n this.onCompositionEnd = this.onCompositionEnd.bind(this);\n this.handleSetData = this.handleSetData.bind(this);\n window.addEventListener('compositionstart', this.onCompositionStart);\n window.addEventListener('compositionupdate', this.onCompositionUpdate);\n window.addEventListener('compositionend', this.onCompositionEnd);\n this.mindMap.on('before_update_data', this.handleSetData);\n this.mindMap.on('before_set_data', this.handleSetData);\n }\n\n // 解绑事件\n unbindEvent() {\n window.removeEventListener('compositionstart', this.onCompositionStart);\n window.removeEventListener('compositionupdate', this.onCompositionUpdate);\n window.removeEventListener('compositionend', this.onCompositionEnd);\n this.mindMap.off('before_update_data', this.handleSetData);\n this.mindMap.off('before_set_data', this.handleSetData);\n }\n\n // 插入样式\n appendCss() {\n this.mindMap.appendCss('richText', `\n .smm-richtext-node-wrap {\n word-break: break-all;\n user-select: none;\n }\n\n .ql-editor .ql-align-left, \n .smm-richtext-node-wrap .ql-align-left {\n text-align: left;\n }\n\n .smm-richtext-node-wrap .ql-align-right {\n text-align: right;\n }\n\n .smm-richtext-node-wrap .ql-align-center {\n text-align: center;\n }\n `);\n let cssText = `\n .${_constants_constant__WEBPACK_IMPORTED_MODULE_6__[\"CONSTANTS\"].EDIT_NODE_CLASS.RICH_TEXT_EDIT_WRAP} {\n overflow: hidden;\n padding: 0;\n height: auto;\n line-height: 1.2;\n -webkit-user-select: text;\n text-align: inherit;\n }\n \n .ql-container {\n height: auto;\n font-size: inherit;\n }\n\n .ql-container.ql-snow {\n border: none;\n }\n `;\n this.styleEl = document.createElement('style');\n this.styleEl.type = 'text/css';\n this.styleEl.innerHTML = cssText;\n document.head.appendChild(this.styleEl);\n }\n\n // 处理选项参数\n initOpt() {\n if (this.pluginOpt.fontFamilyList && Array.isArray(this.pluginOpt.fontFamilyList)) {\n fontFamilyList = this.pluginOpt.fontFamilyList;\n }\n if (this.pluginOpt.fontSizeList && Array.isArray(this.pluginOpt.fontSizeList)) {\n fontSizeList = this.pluginOpt.fontSizeList;\n }\n }\n\n // 扩展quill编辑器\n extendQuill() {\n if (extended) {\n return;\n }\n extended = true;\n this.extendFont([]);\n this.extendAlign();\n\n // 扩展quill的字号列表\n const SizeAttributor = quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].import('attributors/class/size');\n SizeAttributor.whitelist = fontSizeList;\n quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].register(SizeAttributor, true);\n const SizeStyle = quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].import('attributors/style/size');\n SizeStyle.whitelist = fontSizeList;\n quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].register(SizeStyle, true);\n }\n\n // 扩展字体列表\n extendFont(list = [], cover = false) {\n fontFamilyList = cover ? [...list] : [...fontFamilyList, ...list];\n\n // 扩展quill的字体列表\n const FontAttributor = quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].import('attributors/class/font');\n FontAttributor.whitelist = fontFamilyList;\n quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].register(FontAttributor, true);\n const FontStyle = quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].import('attributors/style/font');\n FontStyle.whitelist = fontFamilyList;\n quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].register(FontStyle, true);\n }\n\n // 扩展文本对齐方式\n extendAlign() {\n const AlignFormat = quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].import('formats/align');\n AlignFormat.whitelist = ['right', 'center', 'justify', 'left'];\n quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].register(AlignFormat, true);\n }\n\n // 显示文本编辑控件\n showEditText({\n node,\n rect,\n isInserting,\n isFromKeyDown,\n isFromScale\n }) {\n if (this.showTextEdit) {\n return;\n }\n let {\n customInnerElsAppendTo,\n nodeTextEditZIndex,\n textAutoWrapWidth,\n selectTextOnEnterEditText,\n transformRichTextOnEnterEdit,\n openRealtimeRenderOnNodeTextEdit,\n autoEmptyTextWhenKeydownEnterEdit\n } = this.mindMap.opt;\n textAutoWrapWidth = node.hasCustomWidth() ? node.customTextWidth : textAutoWrapWidth;\n this.node = node;\n this.isInserting = isInserting;\n if (!rect) rect = node._textData.node.node.getBoundingClientRect();\n if (!isFromScale) {\n this.mindMap.emit('before_show_text_edit');\n }\n this.mindMap.renderer.textEdit.registerTmpShortcut();\n // 原始宽高\n let g = node._textData.node;\n let originWidth = g.attr('data-width');\n let originHeight = g.attr('data-height');\n // 缩放值\n const scaleX = Math.ceil(rect.width) / originWidth;\n const scaleY = Math.ceil(rect.height) / originHeight;\n // 内边距\n let paddingX = this.textNodePaddingX;\n let paddingY = this.textNodePaddingY;\n if (!this.textEditNode) {\n this.textEditNode = document.createElement('div');\n this.textEditNode.classList.add('smm-richtext-node-edit-wrap');\n this.textEditNode.style.cssText = `\n position:fixed;\n box-sizing: border-box;\n ${openRealtimeRenderOnNodeTextEdit ? '' : 'box-shadow: 0 0 20px rgba(0,0,0,.5);'}\n outline: none;\n word-break: break-all;\n padding: ${paddingY}px ${paddingX}px;\n line-height: 1.2;\n `;\n this.textEditNode.addEventListener('click', e => {\n e.stopPropagation();\n });\n this.textEditNode.addEventListener('mousedown', e => {\n e.stopPropagation();\n });\n this.textEditNode.addEventListener('keydown', e => {\n if (this.mindMap.renderer.textEdit.checkIsAutoEnterTextEditKey(e)) {\n e.stopPropagation();\n }\n });\n const targetNode = customInnerElsAppendTo || document.body;\n targetNode.appendChild(this.textEditNode);\n }\n this.addNodeTextStyleToTextEditNode(node);\n this.textEditNode.style.marginLeft = `-${paddingX * scaleX}px`;\n this.textEditNode.style.marginTop = `-${paddingY * scaleY}px`;\n this.textEditNode.style.zIndex = nodeTextEditZIndex;\n if (!openRealtimeRenderOnNodeTextEdit) {\n this.textEditNode.style.background = this.mindMap.renderer.textEdit.getBackground(node);\n }\n this.textEditNode.style.minWidth = originWidth + paddingX * 2 + 'px';\n this.textEditNode.style.minHeight = originHeight + 'px';\n this.textEditNode.style.left = rect.left + 'px';\n this.textEditNode.style.top = rect.top + 'px';\n this.textEditNode.style.display = 'block';\n this.textEditNode.style.maxWidth = textAutoWrapWidth + paddingX * 2 + 'px';\n this.textEditNode.style.transform = `scale(${scaleX}, ${scaleY})`;\n this.textEditNode.style.transformOrigin = 'left top';\n // 节点文本内容\n let nodeText = node.getData('text');\n if (typeof transformRichTextOnEnterEdit === 'function') {\n nodeText = transformRichTextOnEnterEdit(nodeText);\n }\n // 是否是空文本\n const isEmptyText = Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"isUndef\"])(nodeText);\n // 是否是非空的非富文本\n const noneEmptyNoneRichText = !node.getData('richText') && !isEmptyText;\n if (isFromKeyDown && autoEmptyTextWhenKeydownEnterEdit) {\n this.textEditNode.innerHTML = '';\n } else if (noneEmptyNoneRichText) {\n // 还不是富文本\n let text = String(nodeText).split(/\\n/gim).join('<br>');\n let html = `<p>${text}</p>`;\n this.textEditNode.innerHTML = this.cacheEditingText || html;\n } else {\n // 已经是富文本\n this.textEditNode.innerHTML = this.cacheEditingText || nodeText;\n }\n this.initQuillEditor();\n this.setQuillContainerMinHeight(originHeight);\n this.showTextEdit = true;\n // 如果是刚创建的节点,那么默认全选,否则普通激活不全选,除非selectTextOnEnterEditText配置为true\n // 在selectTextOnEnterEditText时,如果是在keydown事件进入的节点编辑,也不需要全选\n this.focus(isInserting || selectTextOnEnterEditText && !isFromKeyDown ? 0 : null);\n this.cacheEditingText = '';\n }\n\n // 当openRealtimeRenderOnNodeTextEdit配置更新后需要更新编辑框样式\n onOpenRealtimeRenderOnNodeTextEditConfigUpdate(openRealtimeRenderOnNodeTextEdit) {\n if (!this.textEditNode) return;\n this.textEditNode.style.background = openRealtimeRenderOnNodeTextEdit ? 'transparent' : this.node ? this.mindMap.renderer.textEdit.getBackground(this.node) : '';\n this.textEditNode.style.boxShadow = openRealtimeRenderOnNodeTextEdit ? 'none' : '0 0 20px rgba(0,0,0,.5)';\n }\n\n // 将指定节点的文本样式添加到编辑框元素上\n addNodeTextStyleToTextEditNode(node) {\n const style = Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"getNodeRichTextStyles\"])(node);\n Object.keys(style).forEach(prop => {\n this.textEditNode.style[prop] = style[prop];\n });\n }\n\n // 设置quill编辑器容器的最小高度\n setQuillContainerMinHeight(minHeight) {\n document.querySelector('.' + _constants_constant__WEBPACK_IMPORTED_MODULE_6__[\"CONSTANTS\"].EDIT_NODE_CLASS.RICH_TEXT_EDIT_WRAP).style.minHeight = minHeight + 'px';\n }\n\n // 更新文本编辑框的大小和位置\n updateTextEditNode() {\n if (!this.node) return;\n const g = this.node._textData.node;\n const rect = g.node.getBoundingClientRect();\n const originWidth = g.attr('data-width');\n const originHeight = g.attr('data-height');\n this.textEditNode.style.minWidth = originWidth + this.textNodePaddingX * 2 + 'px';\n this.textEditNode.style.minHeight = originHeight + 'px';\n this.textEditNode.style.left = rect.left + 'px';\n this.textEditNode.style.top = rect.top + 'px';\n this.setQuillContainerMinHeight(originHeight);\n }\n\n // 删除文本编辑框元素\n removeTextEditEl() {\n if (!this.textEditNode) return;\n const targetNode = this.mindMap.opt.customInnerElsAppendTo || document.body;\n targetNode.removeChild(this.textEditNode);\n }\n\n // 获取当前正在编辑的内容\n getEditText() {\n // https://github.com/slab/quill/issues/4509\n return this.quill.container.firstChild.innerHTML.replace(/ +/g, match => '&nbsp;'.repeat(match.length));\n // 去除ql-cursor节点\n // https://github.com/wanglin2/mind-map/commit/138cc4b3e824671143f0bf70e5c46796f48520d0\n // https://github.com/wanglin2/mind-map/commit/0760500cebe8ec4e8ad84ab63f877b8b2a193aa1\n // html = removeHtmlNodeByClass(html, '.ql-cursor')\n // 去除最后的空行\n // return html.replace(/<p><br><\\/p>$/, '')\n }\n\n // 隐藏文本编辑控件,即完成编辑\n hideEditText(nodes) {\n if (!this.showTextEdit) {\n return;\n }\n const {\n beforeHideRichTextEdit\n } = this.mindMap.opt;\n if (typeof beforeHideRichTextEdit === 'function') {\n beforeHideRichTextEdit(this);\n }\n const html = this.getEditText();\n const list = nodes && nodes.length > 0 ? nodes : [this.node];\n const node = this.node;\n this.textEditNode.style.display = 'none';\n this.showTextEdit = false;\n this.mindMap.emit('rich_text_selection_change', false);\n this.node = null;\n this.isInserting = false;\n list.forEach(node => {\n this.mindMap.execCommand('SET_NODE_TEXT', node, html, true);\n // if (node.isGeneralization) {\n // 概要节点\n // node.generalizationBelongNode.updateGeneralization()\n // }\n this.mindMap.render();\n });\n this.mindMap.emit('hide_text_edit', this.textEditNode, list, node);\n }\n\n // 初始化Quill富文本编辑器\n initQuillEditor() {\n this.quill = new quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"](this.textEditNode, {\n modules: {\n toolbar: false,\n keyboard: {\n bindings: {\n enter: {\n key: 'Enter',\n handler: function () {\n // 覆盖默认的回车键,禁止换行\n }\n },\n shiftEnter: {\n key: 'Enter',\n shiftKey: true,\n handler: function (range, context) {\n // 覆盖默认的换行,默认情况下新行的样式会丢失\n const lineFormats = Object.keys(context.format).reduce((formats, format) => {\n if (this.quill.scroll.query(format, parchment__WEBPACK_IMPORTED_MODULE_8__[\"Scope\"].BLOCK) && !Array.isArray(context.format[format])) {\n formats[format] = context.format[format];\n }\n return formats;\n }, {});\n const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_3___default.a().retain(range.index).delete(range.length).insert('\\n', lineFormats);\n this.quill.updateContents(delta, quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n this.quill.setSelection(range.index + 1, quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(name => {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'code' || name === 'link') return;\n this.quill.format(name, context.format[name], quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n });\n }\n },\n tab: {\n key: 9,\n handler: function () {\n // 覆盖默认的tab键\n }\n }\n }\n }\n },\n formats: ['bold', 'italic', 'underline', 'strike', 'color', 'background', 'font', 'size', 'formula', 'code', 'link', 'image', 'formula', 'align'],\n // 明确指定允许的格式,不包含有序列表,无序列表等\n theme: 'snow'\n });\n // 拦截复制事件,即Ctrl + c,去除多余的空行\n this.quill.root.addEventListener('copy', event => {\n event.preventDefault();\n const sel = window.getSelection();\n const originStr = sel.toString();\n try {\n const range = sel.getRangeAt(0);\n const div = document.createElement('div');\n div.appendChild(range.cloneContents());\n const text = Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"nodeRichTextToTextWithWrap\"])(div.innerHTML);\n event.clipboardData.setData('text/plain', text);\n } catch (e) {\n event.clipboardData.setData('text/plain', originStr);\n }\n });\n this.quill.on('selection-change', range => {\n // 刚创建的节点全选不需要显示操作条\n if (this.isInserting) return;\n this.lastRange = this.range;\n this.range = null;\n if (range) {\n this.pasteUseRange = range;\n let bounds = this.quill.getBounds(range.index, range.length);\n let rect = this.textEditNode.getBoundingClientRect();\n let rectInfo = {\n left: bounds.left + rect.left,\n top: bounds.top + rect.top,\n right: bounds.right + rect.left,\n bottom: bounds.bottom + rect.top,\n width: bounds.width\n };\n let formatInfo = this.quill.getFormat(range.index, range.length);\n let hasRange = false;\n if (range.length == 0) {\n hasRange = false;\n } else {\n this.range = range;\n hasRange = true;\n }\n this.mindMap.emit('rich_text_selection_change', hasRange, rectInfo, formatInfo);\n } else {\n this.mindMap.emit('rich_text_selection_change', false, null, null);\n }\n });\n this.quill.on('text-change', () => {\n this.mindMap.emit('node_text_edit_change', {\n node: this.node,\n text: this.getEditText(),\n richText: true\n });\n });\n\n // 添加键盘事件处理,阻止编辑快捷键的事件冒泡\n this.quill.root.addEventListener('keydown', e => {\n const isCtrlOrCmd = e.ctrlKey || e.metaKey;\n const key = e.key.toLowerCase();\n if (isCtrlOrCmd && ['a', 'c', 'v', 'x', 'z', 'y'].includes(key)) {\n e.stopPropagation();\n }\n\n // 阻止空格键的事件冒泡,防止在编辑模式下触发全局快捷键\n if (e.key === ' ' || e.code === 'Space') {\n e.stopPropagation();\n }\n });\n // 拦截粘贴,只允许粘贴纯文本\n // this.quill.clipboard.addMatcher(Node.TEXT_NODE, node => {\n // let style = this.getPasteTextStyle()\n // return new Delta().insert(this.formatPasteText(node.data), style)\n // })\n // 剪贴板里只要存在文本就会走这里,所以当剪贴板里是纯文本,或文本+图片都可以监听到和拦截,但是只有纯图片时不会走这里,所以无法拦截\n this.quill.clipboard.addMatcher(Node.ELEMENT_NODE, (node, delta) => {\n let ops = [];\n let style = this.getPasteTextStyle();\n delta.ops.forEach(op => {\n // 过滤出文本内容,过滤掉换行\n if (op.insert && typeof op.insert === 'string') {\n ops.push({\n attributes: {\n ...style\n },\n insert: this.formatPasteText(op.insert)\n });\n }\n });\n delta.ops = ops;\n return delta;\n });\n // 拦截图片的粘贴,当剪贴板里是纯图片,或文本+图片都可以拦截到,但是带来的问题是文本+图片时里面的文本也无法粘贴\n this.quill.root.addEventListener('paste', e => {\n if (e.clipboardData && e.clipboardData.files && e.clipboardData.files.length) {\n e.preventDefault();\n }\n }, true);\n }\n\n // 获取粘贴的文本的样式\n getPasteTextStyle() {\n // 粘贴的数据使用当前光标位置处的文本样式\n if (this.pasteUseRange) {\n return this.quill.getFormat(this.pasteUseRange.index, this.pasteUseRange.length);\n }\n return {};\n }\n\n // 处理粘贴的文本内容\n formatPasteText(text) {\n const {\n isSmm,\n data\n } = Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"checkSmmFormatData\"])(text);\n if (isSmm && data[0] && data[0].data) {\n // 只取第一个节点的纯文本\n return Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"getTextFromHtml\"])(data[0].data.text);\n } else {\n return text;\n }\n }\n\n // 正则输入中文\n onCompositionStart() {\n if (!this.showTextEdit) {\n return;\n }\n this.isCompositing = true;\n }\n\n // 中文输入中\n onCompositionUpdate() {\n if (!this.showTextEdit || !this.node) return;\n this.mindMap.emit('node_text_edit_change', {\n node: this.node,\n text: this.getEditText(),\n richText: true\n });\n }\n\n // 中文输入结束\n onCompositionEnd() {\n if (!this.showTextEdit) {\n return;\n }\n this.isCompositing = false;\n }\n\n // 选中全部\n selectAll() {\n this.quill.setSelection(0, this.quill.getLength());\n }\n\n // 聚焦\n focus(start) {\n const len = this.quill.getLength();\n this.quill.setSelection(typeof start === 'number' ? start : len, len);\n }\n\n // 格式化当前选中的文本\n formatText(config = {}, clear = false) {\n if (!this.range && !this.lastRange) return;\n const rangeLost = !this.range;\n const range = rangeLost ? this.lastRange : this.range;\n if (clear) {\n this.quill.removeFormat(range.index, range.length);\n } else {\n const {\n align,\n ...rest\n } = config;\n // 文本对齐需要对行进行格式化\n if (align) {\n this.quill.formatLine(range.index, range.length, 'align', align);\n }\n // 其他内容对文本\n if (Object.keys(rest).length > 0) {\n this.quill.formatText(range.index, range.length, rest);\n }\n }\n if (rangeLost) {\n this.quill.setSelection(this.lastRange.index, this.lastRange.length);\n }\n }\n\n // 清除当前选中文本的样式\n removeFormat() {\n this.formatText({}, true);\n }\n\n // 格式化指定范围的文本\n formatRangeText(range, config = {}) {\n if (!range) return;\n this.quill.formatText(range.index, range.length, config);\n }\n\n // 格式化所有文本\n formatAllText(config = {}) {\n this.quill.formatText(0, this.quill.getLength(), config);\n }\n\n // 将普通节点样式对象转换成富文本样式对象\n normalStyleToRichTextStyle(style) {\n const config = {};\n Object.keys(style).forEach(prop => {\n const value = style[prop];\n switch (prop) {\n case 'fontFamily':\n config.font = value;\n break;\n case 'fontSize':\n config.size = value + 'px';\n break;\n case 'fontWeight':\n config.bold = value === 'bold';\n break;\n case 'fontStyle':\n config.italic = value === 'italic';\n break;\n case 'textDecoration':\n config.underline = value === 'underline';\n config.strike = value === 'line-through';\n break;\n case 'color':\n config.color = value;\n break;\n case 'textAlign':\n config.align = value;\n break;\n default:\n break;\n }\n });\n return config;\n }\n\n // 将富文本样式对象转换成普通节点样式对象\n richTextStyleToNormalStyle(config) {\n const data = {};\n Object.keys(config).forEach(prop => {\n const value = config[prop];\n switch (prop) {\n case 'font':\n data.fontFamily = value;\n break;\n case 'size':\n data.fontSize = parseFloat(value);\n break;\n case 'bold':\n data.fontWeight = value ? 'bold' : 'normal';\n break;\n case 'italic':\n data.fontStyle = value ? 'italic' : 'normal';\n break;\n case 'underline':\n data.textDecoration = value ? 'underline' : 'none';\n break;\n case 'strike':\n data.textDecoration = value ? 'line-through' : 'none';\n break;\n case 'color':\n data.color = value;\n break;\n case 'align':\n data.textAlign = value;\n break;\n default:\n break;\n }\n });\n return data;\n }\n\n // 判断一个对象是否包含了富文本支持的样式字段\n isHasRichTextStyle(obj) {\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (_constants_constant__WEBPACK_IMPORTED_MODULE_6__[\"richTextSupportStyleList\"].includes(key)) {\n return true;\n }\n }\n return false;\n }\n\n // 检查指定节点是否存在自定义的富文本样式\n checkNodeHasCustomRichTextStyle(node) {\n const nodeData = node instanceof _core_render_node_MindMapNode__WEBPACK_IMPORTED_MODULE_7__[\"default\"] ? node.getData() : node;\n for (let i = 0; i < _constants_constant__WEBPACK_IMPORTED_MODULE_6__[\"richTextSupportStyleList\"].length; i++) {\n if (nodeData[_constants_constant__WEBPACK_IMPORTED_MODULE_6__[\"richTextSupportStyleList\"][i]] !== undefined) {\n return true;\n }\n }\n return false;\n }\n\n // 转换数据后的渲染操作\n afterHandleData() {\n // 清空历史数据,并且触发数据变化\n this.mindMap.command.clearHistory();\n this.mindMap.command.addHistory();\n this.mindMap.render();\n }\n\n // 插件实例化时处理思维导图数据,转换为富文本数据\n handleDataToRichTextOnInit() {\n // 处理数据,转成富文本格式\n if (this.mindMap.renderer.renderTree) {\n // 如果已经存在渲染树了,那么直接更新渲染树,并且触发重新渲染\n this.handleSetData(this.mindMap.renderer.renderTree);\n this.afterHandleData();\n } else if (this.mindMap.opt.data) {\n this.handleSetData(this.mindMap.opt.data);\n }\n }\n\n // 将所有节点转换成非富文本节点\n transformAllNodesToNormalNode() {\n const renderTree = this.mindMap.renderer.renderTree;\n if (!renderTree) return;\n Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"walk\"])(renderTree, null, node => {\n if (node.data.richText) {\n node.data.richText = false;\n node.data.text = Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"getTextFromHtml\"])(node.data.text);\n }\n // 概要\n if (node.data) {\n const generalizationList = Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"formatGetNodeGeneralization\"])(node.data);\n generalizationList.forEach(item => {\n item.richText = false;\n item.text = Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"getTextFromHtml\"])(item.text);\n });\n }\n }, null, true, 0, 0);\n this.afterHandleData();\n }\n handleDataToRichText(data) {\n const oldIsRichText = data.richText;\n data.richText = true;\n data.resetRichText = true;\n // 如果原本就是富文本,那么不能转换\n if (!oldIsRichText) {\n data.text = Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"htmlEscape\"])(data.text);\n }\n }\n\n // 处理导入数据\n handleSetData(data) {\n if (!data) return;\n // 短期处理,为了兼容老数据,长期会去除\n const isOldRichTextVersion = !data.smmVersion || Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"compareVersion\"])(data.smmVersion, '0.13.0') === '<';\n const walk = root => {\n if (root.data && (!root.data.richText || isOldRichTextVersion)) {\n this.handleDataToRichText(root.data);\n }\n // 概要\n if (root.data) {\n const generalizationList = Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"formatGetNodeGeneralization\"])(root.data);\n generalizationList.forEach(item => {\n if (!item.richText || isOldRichTextVersion) {\n this.handleDataToRichText(item);\n }\n });\n }\n if (root.children && root.children.length > 0) {\n Array.from(root.children).forEach(item => {\n walk(item);\n });\n }\n };\n walk(data);\n return data;\n }\n\n // 插件被移除前做的事情\n beforePluginRemove() {\n this.transformAllNodesToNormalNode();\n document.head.removeChild(this.styleEl);\n this.unbindEvent();\n this.mindMap.removeAppendCss('richText');\n }\n\n // 插件被卸载前做的事情\n beforePluginDestroy() {\n document.head.removeChild(this.styleEl);\n this.unbindEvent();\n }\n}\nRichText.instanceName = 'richText';\n/* harmony default export */ __webpack_exports__[\"default\"] = (RichText);\n\n//# sourceURL=webpack:///../simple-mind-map/src/plugins/RichText.js?");
/***/ }),
/***/ "../simple-mind-map/src/plugins/SYMoc.js":
/*!***********************************************!*\
!*** ../simple-mind-map/src/plugins/SYMoc.js ***!
\***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_6__);\n\n\n\n\n\n\n\n/**\n * SYMoc 插件\n * 用于实现 MOC 模式,支持节点的创建、修改、删除、拖拽等操作的拦截和 loading 状态管理\n */\nclass SYMoc {\n constructor({\n mindMap\n }) {\n this.mindMap = mindMap;\n this.mocMode = false; // MOC 模式开关\n this.loadingNodes = new Set(); // 正在 loading 的节点 UID 集合\n this.callbacks = {\n onCreate: null,\n // 创建节点回调\n onUpdate: null,\n // 更新节点回调\n onDelete: null,\n // 删除节点回调\n onMove: null // 移动节点回调\n };\n\n // 用于保存原始命令函数\n this.originalCommands = {};\n this.bindEvents();\n }\n\n /**\n * 绑定事件\n */\n bindEvents() {\n // 在插件初始化时不立即拦截,等待启用 MOC 模式时再拦截\n }\n\n /**\n * 启用 MOC 模式\n * @param {Object} callbacks - 回调函数配置\n * @param {Function} callbacks.onCreate - 创建节点回调\n * @param {Function} callbacks.onUpdate - 更新节点回调\n * @param {Function} callbacks.onDelete - 删除节点回调\n * @param {Function} callbacks.onMove - 移动节点回调\n */\n enable(callbacks = {}) {\n if (this.mocMode) return;\n this.mocMode = true;\n this.callbacks = {\n onCreate: callbacks.onCreate || null,\n onUpdate: callbacks.onUpdate || null,\n onDelete: callbacks.onDelete || null,\n onMove: callbacks.onMove || null\n };\n\n // 拦截创建节点的命令\n this.interceptCreateCommands();\n // 拦截删除节点的命令\n this.interceptDeleteCommands();\n // 拦截移动节点的命令\n this.interceptMoveCommands();\n // 拦截更新节点的命令\n this.interceptUpdateCommands();\n // 拦截在 MOC 模式下暂不支持的命令(直接禁用)\n this.interceptDisableCommands();\n this.mindMap.emit('moc_mode_change', true);\n }\n\n /**\n * 禁用 MOC 模式\n */\n disable() {\n if (!this.mocMode) return;\n this.mocMode = false;\n this.callbacks = {\n onCreate: null,\n onUpdate: null,\n onDelete: null,\n onMove: null\n };\n\n // 恢复原始命令\n this.restoreCommands();\n this.mindMap.emit('moc_mode_change', false);\n }\n\n /**\n * 拦截创建节点的命令\n */\n interceptCreateCommands() {\n const commandNames = ['INSERT_CHILD_NODE', 'INSERT_NODE', 'INSERT_MULTI_CHILD_NODE'];\n commandNames.forEach(name => {\n this.interceptCommand(name, this.handleCreateNode.bind(this));\n });\n }\n\n /**\n * 拦截删除节点的命令\n */\n interceptDeleteCommands() {\n const commandNames = ['REMOVE_NODE', 'REMOVE_CURRENT_NODE'];\n commandNames.forEach(name => {\n this.interceptCommand(name, this.handleDeleteNode.bind(this));\n });\n }\n\n /**\n * 拦截移动节点的命令\n */\n interceptMoveCommands() {\n const commandNames = ['INSERT_AFTER', 'INSERT_BEFORE', 'MOVE_NODE_TO'];\n commandNames.forEach(name => {\n this.interceptCommand(name, this.handleMoveNode.bind(this));\n });\n }\n\n /**\n * 拦截更新节点的命令\n */\n interceptUpdateCommands() {\n const commandNames = ['SET_NODE_TEXT'];\n commandNames.forEach(name => {\n this.interceptCommand(name, this.handleUpdateNode.bind(this));\n });\n }\n\n /**\n * 拦截并禁用暂不支持的命令(MOC 模式)\n * 例如:插入父节点、插入多个同级节点、画布内粘贴节点树等\n */\n interceptDisableCommands() {\n const disabled = ['INSERT_PARENT_NODE',\n // 插入父节点\n 'INSERT_MULTI_NODE',\n // 插入多个同级节点\n 'PASTE_NODE',\n // 画布内粘贴节点树\n 'BACK',\n // 撤销(避免与思源文档操作冲突)\n 'FORWARD',\n // 前进(与撤销同理,MOC 下禁用)\n 'UP_NODE',\n // 上移节点(快捷键 Ctrl+↑)\n 'DOWN_NODE' // 下移节点(快捷键 Ctrl+↓)\n ];\n disabled.forEach(name => {\n this.interceptCommand(name, this.handleDisabledCommand.bind(this));\n });\n }\n\n /**\n * 处理禁用命令:什么也不做,仅打印提示\n */\n handleDisabledCommand(commandName) {\n // 可以在这里发出事件供外层提示\n try {\n this.mindMap.emit('moc_operation_blocked', commandName);\n } catch (e) {}\n console.warn('[SYMoc] 命令已在 MOC 模式下禁用:', commandName);\n }\n\n /**\n * 拦截命令\n * @param {String} commandName - 命令名称\n * @param {Function} handler - 拦截处理函数\n */\n interceptCommand(commandName, handler) {\n // 保存原始命令函数\n if (!this.originalCommands[commandName]) {\n this.originalCommands[commandName] = this.mindMap.command.commands[commandName] || [];\n }\n\n // 清空原命令\n this.mindMap.command.remove(commandName);\n\n // 添加拦截后的命令\n this.mindMap.command.add(commandName, (...args) => {\n handler(commandName, args);\n });\n }\n\n /**\n * 恢复原始命令\n */\n restoreCommands() {\n Object.keys(this.originalCommands).forEach(commandName => {\n // 移除拦截的命令\n this.mindMap.command.remove(commandName);\n\n // 恢复原始命令\n const originalFns = this.originalCommands[commandName];\n originalFns.forEach(fn => {\n this.mindMap.command.add(commandName, fn);\n });\n });\n this.originalCommands = {};\n }\n\n /**\n * 处理创建节点\n * @param {String} commandName - 命令名称\n * @param {Array} args - 命令参数\n */\n async handleCreateNode(commandName, args) {\n // 先执行原始命令,创建节点\n const originalFns = this.originalCommands[commandName] || [];\n originalFns.forEach(fn => fn(...args));\n\n // 等待渲染完成,获取新创建的节点\n this.waitForRender().then(async () => {\n // 获取新创建的节点(激活的节点中,不在 loading 列表中的)\n const newNodes = this.mindMap.renderer.activeNodeList.filter(node => {\n return !this.loadingNodes.has(node.getData('uid'));\n });\n if (newNodes.length === 0) return;\n\n // 设置节点为 loading 状态\n newNodes.forEach(node => {\n this.setNodeLoading(node, true);\n });\n\n // 调用创建节点回调\n if (this.callbacks.onCreate) {\n for (const node of newNodes) {\n try {\n const result = await this.callbacks.onCreate({\n node: node,\n nodeUid: node.getData('uid'),\n nodeData: node.nodeData,\n parentNode: node.parent,\n parentUid: node.parent ? node.parent.getData('uid') : null\n });\n\n // 根据返回结果处理\n if (result && result.success) {\n // 成功:解除 loading,可能需要更新节点数据\n this.setNodeLoading(node, false);\n if (result.data) {\n this.updateNodeData(node, result.data);\n }\n } else {\n // 失败:删除节点(静默删除,不触发删除回调)\n this.removeNode(node, true); // 传入 true 表示静默删除\n }\n } catch (error) {\n console.error('MOC 创建节点失败:', error);\n // 出错也删除节点(静默删除)\n this.removeNode(node, true);\n }\n }\n }\n });\n }\n\n /**\n * 处理删除节点\n * @param {String} commandName - 命令名称\n * @param {Array} args - 命令参数\n */\n async handleDeleteNode(commandName, args) {\n // 获取待删除的节点\n const nodesToDelete = [...this.mindMap.renderer.activeNodeList];\n if (nodesToDelete.length === 0) return;\n\n // 调用删除节点回调(可能需要确认)\n if (this.callbacks.onDelete) {\n try {\n const result = await this.callbacks.onDelete({\n nodes: nodesToDelete,\n nodeUids: nodesToDelete.map(n => n.getData('uid'))\n });\n if (result && result.confirmed) {\n // 用户确认删除,设置 loading 状态\n nodesToDelete.forEach(node => {\n this.setNodeLoading(node, true);\n });\n\n // 执行删除操作\n const deleteResult = await result.deletePromise;\n if (deleteResult && deleteResult.success) {\n // 删除成功,执行原始删除命令\n const originalFns = this.originalCommands[commandName] || [];\n originalFns.forEach(fn => fn(...args));\n } else {\n // 删除失败,解除 loading\n nodesToDelete.forEach(node => {\n this.setNodeLoading(node, false);\n });\n }\n }\n // 用户取消删除,不执行任何操作\n } catch (error) {\n console.error('MOC 删除节点失败:', error);\n // 解除 loading\n nodesToDelete.forEach(node => {\n this.setNodeLoading(node, false);\n });\n }\n } else {\n // 没有回调,直接执行原始命令\n const originalFns = this.originalCommands[commandName] || [];\n originalFns.forEach(fn => fn(...args));\n }\n }\n\n /**\n * 处理移动节点\n * @param {String} commandName - 命令名称\n * @param {Array} args - 命令参数\n */\n async handleMoveNode(commandName, args) {\n // 保存移动前的信息,用于失败时恢复\n const moveInfo = this.captureMoveInfo(commandName, args);\n if (!moveInfo) {\n // 无法获取移动信息,直接执行原始命令\n const originalFns = this.originalCommands[commandName] || [];\n originalFns.forEach(fn => fn(...args));\n return;\n }\n\n // 先执行移动\n const originalFns = this.originalCommands[commandName] || [];\n originalFns.forEach(fn => fn(...args));\n\n // 设置节点为 loading 状态\n moveInfo.nodes.forEach(node => {\n this.setNodeLoading(node, true);\n });\n\n // 调用移动节点回调\n if (this.callbacks.onMove) {\n try {\n const result = await this.callbacks.onMove({\n nodes: moveInfo.nodes,\n nodeUids: moveInfo.nodeUids,\n targetNode: moveInfo.targetNode,\n targetUid: moveInfo.targetUid,\n moveType: commandName\n });\n if (result && result.success) {\n // 移动成功,解除 loading\n moveInfo.nodes.forEach(node => {\n this.setNodeLoading(node, false);\n });\n } else {\n // 移动失败,需要恢复原位置\n this.restoreMoveInfo(moveInfo);\n moveInfo.nodes.forEach(node => {\n this.setNodeLoading(node, false);\n });\n }\n } catch (error) {\n console.error('MOC 移动节点失败:', error);\n // 恢复原位置\n this.restoreMoveInfo(moveInfo);\n moveInfo.nodes.forEach(node => {\n this.setNodeLoading(node, false);\n });\n }\n }\n }\n\n /**\n * 处理更新节点(重命名)\n * @param {String} commandName - 命令名称\n * @param {Array} args - 命令参数\n */\n async handleUpdateNode(commandName, args) {\n // SET_NODE_TEXT 命令参数:[node, text]\n const [node, newText] = args;\n if (!node) {\n // 没有节点,直接执行原始命令\n const originalFns = this.originalCommands[commandName] || [];\n originalFns.forEach(fn => fn(...args));\n return;\n }\n\n // 先执行原始命令,更新节点文本\n const originalFns = this.originalCommands[commandName] || [];\n originalFns.forEach(fn => fn(...args));\n\n // 调用更新节点回调\n if (this.callbacks.onUpdate) {\n try {\n // 设置节点为 loading 状态\n this.setNodeLoading(node, true);\n const result = await this.callbacks.onUpdate({\n node: node,\n nodeUid: node.getData('uid'),\n nodeData: node.nodeData,\n newText: newText\n });\n\n // 解除 loading 状态\n this.setNodeLoading(node, false);\n if (result && !result.success) {\n console.error('MOC 更新节点失败:', result.error);\n }\n } catch (error) {\n console.error('MOC 更新节点异常:', error);\n this.setNodeLoading(node, false);\n }\n }\n }\n\n /**\n * 捕获移动前的信息\n * @param {String} commandName - 命令名称\n * @param {Array} args - 命令参数\n * @returns {Object|null} 移动信息\n */\n captureMoveInfo(commandName, args) {\n try {\n if (commandName === 'MOVE_NODE_TO') {\n // MOVE_NODE_TO 命令参数:[node, toNode]\n const [node, toNode] = args;\n if (!node || !toNode) {\n return null;\n }\n\n // 支持单个节点或节点数组\n const nodes = Array.isArray(node) ? node : [node];\n\n // 过滤掉根节点(如果不是多根模式)\n const validNodes = nodes.filter(n => {\n if (!this.mindMap.renderer.isMultiRoot && n.isRoot) {\n return false;\n }\n return true;\n });\n if (validNodes.length === 0) {\n return null;\n }\n\n // 保存移动前的父节点信息\n const oldParents = validNodes.map(n => n.parent);\n return {\n nodes: validNodes,\n nodeUids: validNodes.map(n => n.getData('uid')),\n targetNode: toNode,\n targetUid: toNode.getData('uid'),\n oldParents: oldParents,\n commandName: commandName\n };\n } else if (commandName === 'INSERT_AFTER' || commandName === 'INSERT_BEFORE') {\n // INSERT_AFTER/INSERT_BEFORE 命令参数:[node, existNode]\n const [node, existNode] = args;\n if (!node || !existNode) {\n return null;\n }\n\n // 支持单个节点或节点数组\n const nodes = Array.isArray(node) ? node : [node];\n\n // 过滤掉根节点(如果不是多根模式)\n const validNodes = nodes.filter(n => {\n if (!this.mindMap.renderer.isMultiRoot && n.isRoot) {\n return false;\n }\n return true;\n });\n if (validNodes.length === 0) {\n return null;\n }\n\n // 保存移动前的父节点信息\n const oldParents = validNodes.map(n => n.parent);\n\n // INSERT_AFTER/INSERT_BEFORE 操作后,节点会移动到 existNode 的父节点下\n const targetNode = existNode.parent;\n if (!targetNode) {\n return null;\n }\n return {\n nodes: validNodes,\n nodeUids: validNodes.map(n => n.getData('uid')),\n targetNode: targetNode,\n targetUid: targetNode.getData('uid'),\n oldParents: oldParents,\n commandName: commandName\n };\n }\n return null;\n } catch (error) {\n console.error('捕获移动信息失败:', error);\n return null;\n }\n }\n\n /**\n * 恢复移动信息\n * @param {Object} moveInfo - 移动信息\n */\n restoreMoveInfo(moveInfo) {\n if (!moveInfo || !moveInfo.nodes || !moveInfo.oldParents) {\n return;\n }\n try {\n // 将每个节点恢复到原来的父节点下\n moveInfo.nodes.forEach((node, index) => {\n const oldParent = moveInfo.oldParents[index];\n if (oldParent && oldParent !== node.parent) {\n // 使用原始命令恢复节点位置,避免再次触发拦截\n const originalFns = this.originalCommands['MOVE_NODE_TO'] || [];\n originalFns.forEach(fn => fn(node, oldParent));\n }\n });\n\n // 重新渲染\n this.mindMap.render();\n console.log('MOC 节点位置已恢复');\n } catch (error) {\n console.error('恢复节点位置失败:', error);\n }\n }\n\n /**\n * 设置节点 loading 状态\n * @param {Object} node - 节点实例\n * @param {Boolean} isLoading - 是否 loading\n */\n setNodeLoading(node, isLoading) {\n const uid = node.getData('uid');\n if (isLoading) {\n this.loadingNodes.add(uid);\n // 添加 loading 样式:闪烁效果\n this.startNodeBlink(node);\n } else {\n this.loadingNodes.delete(uid);\n // 移除 loading 样式\n this.stopNodeBlink(node);\n }\n }\n\n /**\n * 开始节点闪烁\n * @param {Object} node - 节点实例\n */\n startNodeBlink(node) {\n if (node._blinkTimer) return;\n let opacity = 1;\n node._blinkTimer = setInterval(() => {\n opacity = opacity === 1 ? 0.5 : 1;\n node.setOpacity(opacity);\n }, 500); // 每 500ms 切换一次透明度\n }\n\n /**\n * 停止节点闪烁\n * @param {Object} node - 节点实例\n */\n stopNodeBlink(node) {\n if (node._blinkTimer) {\n clearInterval(node._blinkTimer);\n node._blinkTimer = null;\n node.setOpacity(1); // 恢复完全不透明\n }\n }\n\n /**\n * 等待渲染完成\n */\n waitForRender() {\n return new Promise(resolve => {\n const handler = () => {\n this.mindMap.off('node_tree_render_end', handler);\n resolve();\n };\n this.mindMap.on('node_tree_render_end', handler);\n });\n }\n\n /**\n * 更新节点数据\n * @param {Object} node - 节点实例\n * @param {Object} data - 新数据\n */\n updateNodeData(node, data) {\n Object.keys(data).forEach(key => {\n node.nodeData.data[key] = data[key];\n });\n\n // MOC 模式特殊处理:如果返回了 docId,将其同步到 uid 以保持一致性\n // 这样 MOC 模式下,uid 始终等于 docId,方便通过 docId 查找节点\n // 还是先注释了,避免手动更改uid可能会影响历史记录等等依赖节点id的情况\n // if (data.docId) {\n // node.nodeData.data.uid = data.docId\n // }\n\n this.mindMap.render();\n }\n\n /**\n * 删除节点\n * @param {Object} node - 节点实例\n * @param {Boolean} silent - 是否静默删除(不触发删除回调)\n */\n removeNode(node, silent = false) {\n // 停止 loading\n this.setNodeLoading(node, false);\n if (silent) {\n // 静默删除:直接调用原始删除命令,不触发拦截\n const originalFns = this.originalCommands['REMOVE_NODE'] || [];\n originalFns.forEach(fn => fn([node]));\n } else {\n // 正常删除:通过 execCommand 触发拦截\n this.mindMap.execCommand('REMOVE_NODE', [node]);\n }\n }\n\n /**\n * 插件被移除前做的事情\n */\n beforePluginRemove() {\n this.disable();\n }\n\n /**\n * 插件被卸载前做的事情\n */\n beforePluginDestroy() {\n this.disable();\n // 清理所有 loading 状态\n this.loadingNodes.forEach(uid => {\n const node = this.mindMap.renderer.findNodeByUid(uid);\n if (node) {\n this.stopNodeBlink(node);\n }\n });\n this.loadingNodes.clear();\n }\n}\nSYMoc.instanceName = 'syMoc';\n/* harmony default export */ __webpack_exports__[\"default\"] = (SYMoc);\n\n//# sourceURL=webpack:///../simple-mind-map/src/plugins/SYMoc.js?");
/***/ }),
/***/ "../simple-mind-map/src/plugins/Scrollbar.js":
/*!***************************************************!*\
!*** ../simple-mind-map/src/plugins/Scrollbar.js ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/index */ \"../simple-mind-map/src/utils/index.js\");\n/* harmony import */ var _constants_constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants/constant */ \"../simple-mind-map/src/constants/constant.js\");\n\n\n\n// 滚动条插件\nclass Scrollbar {\n // 构造函数\n constructor(opt) {\n this.mindMap = opt.mindMap;\n this.scrollbarWrapSize = {\n width: 0,\n // 水平滚动条的容器宽度\n height: 0 // 垂直滚动条的容器高度\n };\n // 思维导图实际高度\n this.chartHeight = 0;\n this.chartWidth = 0;\n this.reset();\n this.bindEvent();\n }\n\n // 复位数据\n reset() {\n // 当前拖拽的滚动条类型\n this.currentScrollType = '';\n this.isMousedown = false;\n this.mousedownPos = {\n x: 0,\n y: 0\n };\n // 鼠标按下时,滚动条位置\n this.mousedownScrollbarPos = 0;\n }\n\n // 绑定事件\n bindEvent() {\n this.onMousemove = this.onMousemove.bind(this);\n this.onMouseup = this.onMouseup.bind(this);\n this.updateScrollbar = this.updateScrollbar.bind(this);\n this.updateScrollbar = Object(_utils_index__WEBPACK_IMPORTED_MODULE_0__[\"throttle\"])(this.updateScrollbar, 16, this); // 加个节流\n this.mindMap.on('mousemove', this.onMousemove);\n this.mindMap.on('mouseup', this.onMouseup);\n this.mindMap.on('node_tree_render_end', this.updateScrollbar);\n this.mindMap.on('view_data_change', this.updateScrollbar);\n this.mindMap.on('resize', this.updateScrollbar);\n }\n\n // 解绑事件\n unBindEvent() {\n this.mindMap.off('mousemove', this.onMousemove);\n this.mindMap.off('mouseup', this.onMouseup);\n this.mindMap.off('node_tree_render_end', this.updateScrollbar);\n this.mindMap.off('view_data_change', this.updateScrollbar);\n this.mindMap.off('resize', this.updateScrollbar);\n }\n\n // 渲染后、数据改变需要更新滚动条\n updateScrollbar() {\n // 当前正在拖拽滚动条时不需要更新\n if (this.isMousedown) return;\n const res = this.calculationScrollbar();\n this.emitEvent(res);\n }\n\n // 发送滚动条改变事件\n emitEvent(data) {\n this.mindMap.emit('scrollbar_change', data);\n }\n\n // 设置滚动条容器的大小,指滚动条容器的大小,对于水平滚动条,即宽度,对于垂直滚动条,即高度\n setScrollBarWrapSize(width, height) {\n this.scrollbarWrapSize.width = width;\n this.scrollbarWrapSize.height = height;\n }\n\n // 计算滚动条大小和位置\n calculationScrollbar() {\n const rect = this.mindMap.draw.rbox();\n // 减去画布距离浏览器窗口左上角的距离\n const elRect = this.mindMap.elRect;\n rect.x -= elRect.left;\n rect.y -= elRect.top;\n\n // 垂直滚动条\n const canvasHeight = this.mindMap.height; // 画布高度\n const paddingY = canvasHeight / 2; // 首尾允许超出的距离,默认为高度的一半\n const chartHeight = rect.height + paddingY * 2; // 思维导图高度\n this.chartHeight = chartHeight;\n const chartTop = rect.y - paddingY; // 思维导图顶部距画布顶部的距离\n const height = Math.min(canvasHeight / chartHeight * 100, 100); // 滚动条高度 = 画布高度 / 思维导图高度\n let top = -chartTop / chartHeight * 100; // 滚动条距离 = 思维导图顶部距画布顶部的距离 / 思维导图高度\n // 判断是否到达边界\n if (top < 0) {\n top = 0;\n }\n if (top > 100 - height) {\n top = 100 - height;\n }\n\n // 水平滚动条\n const canvasWidth = this.mindMap.width;\n const paddingX = canvasWidth / 2;\n const chartWidth = rect.width + paddingX * 2;\n this.chartWidth = chartWidth;\n const chartLeft = rect.x - paddingX;\n const width = Math.min(canvasWidth / chartWidth * 100, 100);\n let left = -chartLeft / chartWidth * 100;\n if (left < 0) {\n left = 0;\n }\n if (left > 100 - width) {\n left = 100 - width;\n }\n const res = {\n // 垂直滚动条\n vertical: {\n top,\n height\n },\n // 水平滚动条\n horizontal: {\n left,\n width\n }\n };\n return res;\n }\n\n // 滚动条鼠标按下事件处理函数\n onMousedown(e, type) {\n e.preventDefault();\n e.stopPropagation();\n this.currentScrollType = type;\n this.isMousedown = true;\n this.mousedownPos = {\n x: e.clientX,\n y: e.clientY\n };\n // 保存滚动条当前的位置\n const styles = window.getComputedStyle(e.target);\n if (type === _constants_constant__WEBPACK_IMPORTED_MODULE_1__[\"CONSTANTS\"].SCROLL_BAR_DIR.VERTICAL) {\n this.mousedownScrollbarPos = Number.parseFloat(styles.top);\n } else {\n this.mousedownScrollbarPos = Number.parseFloat(styles.left);\n }\n }\n\n // 鼠标移动事件处理函数\n onMousemove(e) {\n if (!this.isMousedown) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n if (this.currentScrollType === _constants_constant__WEBPACK_IMPORTED_MODULE_1__[\"CONSTANTS\"].SCROLL_BAR_DIR.VERTICAL) {\n const oy = e.clientY - this.mousedownPos.y + this.mousedownScrollbarPos;\n this.updateMindMapView(_constants_constant__WEBPACK_IMPORTED_MODULE_1__[\"CONSTANTS\"].SCROLL_BAR_DIR.VERTICAL, oy);\n } else {\n const ox = e.clientX - this.mousedownPos.x + this.mousedownScrollbarPos;\n this.updateMindMapView(_constants_constant__WEBPACK_IMPORTED_MODULE_1__[\"CONSTANTS\"].SCROLL_BAR_DIR.HORIZONTAL, ox);\n }\n }\n\n // 鼠标松开事件处理函数\n onMouseup() {\n this.isMousedown = false;\n this.reset();\n }\n\n // 更新视图\n updateMindMapView(type, offset) {\n const scrollbarData = this.calculationScrollbar();\n const t = this.mindMap.draw.transform();\n const drawRect = this.mindMap.draw.rbox();\n const rootRect = this.mindMap.renderer.root.group.rbox();\n const rootCenterOffset = this.mindMap.renderer.layout.getRootCenterOffset(rootRect.width, rootRect.height);\n if (type === _constants_constant__WEBPACK_IMPORTED_MODULE_1__[\"CONSTANTS\"].SCROLL_BAR_DIR.VERTICAL) {\n // 滚动条新位置\n let oy = offset;\n // 判断是否达到首尾\n if (oy <= 0) {\n oy = 0;\n }\n const max = (100 - scrollbarData.vertical.height) / 100 * this.scrollbarWrapSize.height;\n if (oy >= max) {\n oy = max;\n }\n // 转换成百分比\n const oyPercentage = oy / this.scrollbarWrapSize.height * 100;\n // 转换成相对于图形高度的距离\n const oyPx = -oyPercentage / 100 * this.chartHeight;\n // 节点中心点到图形最上方的距离\n const yOffset = rootRect.y - drawRect.y;\n // 内边距\n const paddingY = this.mindMap.height / 2;\n // 图形新位置\n const chartTop = oyPx + yOffset - paddingY * t.scaleY + paddingY - rootCenterOffset.y * t.scaleY + (this.mindMap.height - this.mindMap.initHeight) / 2 * t.scaleY; // 画布宽高改变了,但是思维导图元素变换的中心点依旧是原有位置,所以需要加上中心点变化量\n this.mindMap.view.translateYTo(chartTop);\n this.emitEvent({\n horizontal: scrollbarData.horizontal,\n vertical: {\n top: oyPercentage,\n height: scrollbarData.vertical.height\n }\n });\n } else {\n // 滚动条新位置\n let ox = offset;\n // 判断是否达到首尾\n if (ox <= 0) {\n ox = 0;\n }\n const max = (100 - scrollbarData.horizontal.width) / 100 * this.scrollbarWrapSize.width;\n if (ox >= max) {\n ox = max;\n }\n // 转换成百分比\n const oxPercentage = ox / this.scrollbarWrapSize.width * 100;\n // 转换成相对于图形宽度的距离\n const oxPx = -oxPercentage / 100 * this.chartWidth;\n // 节点中心点到图形最左边的距离\n const xOffset = rootRect.x - drawRect.x;\n // 内边距\n const paddingX = this.mindMap.width / 2;\n // 图形新位置\n const chartLeft = oxPx + xOffset - paddingX * t.scaleX + paddingX - rootCenterOffset.x * t.scaleX + (this.mindMap.width - this.mindMap.initWidth) / 2 * t.scaleX; // 画布宽高改变了,但是思维导图元素变换的中心点依旧是原有位置,所以需要加上中心点变化量\n this.mindMap.view.translateXTo(chartLeft);\n this.emitEvent({\n vertical: scrollbarData.vertical,\n horizontal: {\n left: oxPercentage,\n width: scrollbarData.horizontal.width\n }\n });\n }\n }\n\n // 滚动条的点击事件\n onClick(e, type) {\n let offset = 0;\n if (type === _constants_constant__WEBPACK_IMPORTED_MODULE_1__[\"CONSTANTS\"].SCROLL_BAR_DIR.VERTICAL) {\n offset = e.clientY - e.currentTarget.getBoundingClientRect().top;\n } else {\n offset = e.clientX - e.currentTarget.getBoundingClientRect().left;\n }\n this.updateMindMapView(type, offset);\n }\n\n // 插件被移除前做的事情\n beforePluginRemove() {\n this.unBindEvent();\n }\n\n // 插件被卸载前做的事情\n beforePluginDestroy() {\n this.unBindEvent();\n }\n}\nScrollbar.instanceName = 'scrollbar';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Scrollbar);\n\n//# sourceURL=webpack:///../simple-mind-map/src/plugins/Scrollbar.js?");
/***/ }),
/***/ "./_virtual_~icons%2Fant-design%2Fexport-outlined":
/*!********************************************************!*\
!*** ./_virtual_~icons%2Fant-design%2Fexport-outlined ***!
\********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 1024 1024\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"fill-rule\":\"evenodd\",\"d\":\"M880 912H144c-17.7 0-32-14.3-32-32V144c0-17.7 14.3-32 32-32h360c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8H184v656h656V520c0-4.4 3.6-8 8-8h56c4.4 0 8 3.6 8 8v360c0 17.7-14.3 32-32 32M770.87 199.131l-52.2-52.2c-4.7-4.7-1.9-12.8 4.7-13.6l179.4-21c5.1-.6 9.5 3.7 8.9 8.9l-21 179.4c-.8 6.6-8.9 9.4-13.6 4.7l-52.4-52.4l-256.2 256.2c-3.1 3.1-8.2 3.1-11.3 0l-42.4-42.4c-3.1-3.1-3.1-8.2 0-11.3z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'ant-design-export-outlined',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fant-design%252Fexport-outlined?");
/***/ }),
/***/ "./_virtual_~icons%2Fant-design%2Fhighlight-outlined":
/*!***********************************************************!*\
!*** ./_virtual_~icons%2Fant-design%2Fhighlight-outlined ***!
\***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 1024 1024\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M957.6 507.4L603.2 158.2a7.9 7.9 0 0 0-11.2 0L353.3 393.4a8.03 8.03 0 0 0-.1 11.3l.1.1l40 39.4l-117.2 115.3a8.03 8.03 0 0 0-.1 11.3l.1.1l39.5 38.9l-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8V860c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6l40.4 39.8a7.9 7.9 0 0 0 11.2 0l117.1-115.6l40.1 39.5a7.9 7.9 0 0 0 11.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2M389.8 796.2H229.6l134.4-133l80.1 78.9zm154.8-62.1L373.2 565.2l68.6-67.6l171.4 168.9zM713.1 658L450.3 399.1L597.6 254l262.8 259z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'ant-design-highlight-outlined',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fant-design%252Fhighlight-outlined?");
/***/ }),
/***/ "./_virtual_~icons%2Fant-design%2Fhistory-outlined":
/*!*********************************************************!*\
!*** ./_virtual_~icons%2Fant-design%2Fhistory-outlined ***!
\*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 1024 1024\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M536.1 273H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.3 120.7c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.7-3.7 1.9-8.7-1.7-11.2L544.1 528.5V281c0-4.4-3.6-8-8-8m219.8 75.2l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3L752.9 334.1a8 8 0 0 0 3 14.1m167.7 301.1l-56.7-19.5a8 8 0 0 0-10.1 4.8c-1.9 5.1-3.9 10.1-6 15.1c-17.8 42.1-43.3 80-75.9 112.5a353 353 0 0 1-112.5 75.9a352.2 352.2 0 0 1-137.7 27.8c-47.8 0-94.1-9.3-137.7-27.8a353 353 0 0 1-112.5-75.9c-32.5-32.5-58-70.4-75.9-112.5A353.4 353.4 0 0 1 171 512c0-47.8 9.3-94.2 27.8-137.8c17.8-42.1 43.3-80 75.9-112.5a353 353 0 0 1 112.5-75.9C430.6 167.3 477 158 524.8 158s94.1 9.3 137.7 27.8A353 353 0 0 1 775 261.7c10.2 10.3 19.8 21 28.6 32.3l59.8-46.8C784.7 146.6 662.2 81.9 524.6 82C285 82.1 92.6 276.7 95 516.4C97.4 751.9 288.9 942 524.8 942c185.5 0 343.5-117.6 403.7-282.3c1.5-4.2-.7-8.9-4.9-10.4\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'ant-design-history-outlined',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fant-design%252Fhistory-outlined?");
/***/ }),
/***/ "./_virtual_~icons%2Fant-design%2Fimport-outlined":
/*!********************************************************!*\
!*** ./_virtual_~icons%2Fant-design%2Fimport-outlined ***!
\********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 1024 1024\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"fill-rule\":\"evenodd\",\"d\":\"M880 912H144c-17.7 0-32-14.3-32-32V144c0-17.7 14.3-32 32-32h360c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8H184v656h656V520c0-4.4 3.6-8 8-8h56c4.4 0 8 3.6 8 8v360c0 17.7-14.3 32-32 32M653.3 424.6l52.2 52.2c4.7 4.7 1.9 12.8-4.7 13.6l-179.4 21c-5.1.6-9.5-3.7-8.9-8.9l21-179.4c.8-6.6 8.9-9.4 13.6-4.7l52.4 52.4l256.2-256.2c3.1-3.1 8.2-3.1 11.3 0l42.4 42.4c3.1 3.1 3.1 8.2 0 11.3z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'ant-design-import-outlined',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fant-design%252Fimport-outlined?");
/***/ }),
/***/ "./_virtual_~icons%2Fant-design%2Fnode-index-outlined":
/*!************************************************************!*\
!*** ./_virtual_~icons%2Fant-design%2Fnode-index-outlined ***!
\************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 1024 1024\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M843.5 737.4c-12.4-75.2-79.2-129.1-155.3-125.4S550.9 676 546 752c-153.5-4.8-208-40.7-199.1-113.7c3.3-27.3 19.8-41.9 50.1-49c18.4-4.3 38.8-4.9 57.3-3.2c1.7.2 3.5.3 5.2.5c11.3 2.7 22.8 5 34.3 6.8c34.1 5.6 68.8 8.4 101.8 6.6c92.8-5 156-45.9 159.2-132.7c3.1-84.1-54.7-143.7-147.9-183.6c-29.9-12.8-61.6-22.7-93.3-30.2c-14.3-3.4-26.3-5.7-35.2-7.2c-7.9-75.9-71.5-133.8-147.8-134.4S189.7 168 180.5 243.8s40 146.3 114.2 163.9s149.9-23.3 175.7-95.1c9.4 1.7 18.7 3.6 28 5.8c28.2 6.6 56.4 15.4 82.4 26.6c70.7 30.2 109.3 70.1 107.5 119.9c-1.6 44.6-33.6 65.2-96.2 68.6c-27.5 1.5-57.6-.9-87.3-5.8c-8.3-1.4-15.9-2.8-22.6-4.3c-3.9-.8-6.6-1.5-7.8-1.8l-3.1-.6c-2.2-.3-5.9-.8-10.7-1.3c-25-2.3-52.1-1.5-78.5 4.6c-55.2 12.9-93.9 47.2-101.1 105.8c-15.7 126.2 78.6 184.7 276 188.9c29.1 70.4 106.4 107.9 179.6 87c73.3-20.9 119.3-93.4 106.9-168.6M329.1 345.2c-46 0-83.3-37.3-83.3-83.3s37.3-83.3 83.3-83.3s83.3 37.3 83.3 83.3s-37.3 83.3-83.3 83.3M695.6 845c-46 0-83.3-37.3-83.3-83.3s37.3-83.3 83.3-83.3s83.3 37.3 83.3 83.3s-37.3 83.3-83.3 83.3\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'ant-design-node-index-outlined',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fant-design%252Fnode-index-outlined?");
/***/ }),
/***/ "./_virtual_~icons%2Fclarity%2Fadd-text-line":
/*!***************************************************!*\
!*** ./_virtual_~icons%2Fclarity%2Fadd-text-line ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 36 36\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{staticClass:\"clr-i-outline clr-i-outline-path-1\",attrs:{\"fill\":\"currentColor\",\"d\":\"M31 21H13a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2\"}}),_c('path',{staticClass:\"clr-i-outline clr-i-outline-path-2\",attrs:{\"fill\":\"currentColor\",\"d\":\"M12 16a1 1 0 0 0 1 1h18a1 1 0 0 0 0-2H13a1 1 0 0 0-1 1\"}}),_c('path',{staticClass:\"clr-i-outline clr-i-outline-path-3\",attrs:{\"fill\":\"currentColor\",\"d\":\"M27 27H13a1 1 0 0 0 0 2h14a1 1 0 0 0 0-2\"}}),_c('path',{staticClass:\"clr-i-outline clr-i-outline-path-4\",attrs:{\"fill\":\"currentColor\",\"d\":\"M15.89 9a1 1 0 0 0-1-1H10V3.21a1 1 0 0 0-2 0V8H2.89a1 1 0 0 0 0 2H8v5.21a1 1 0 0 0 2 0V10h4.89a1 1 0 0 0 1-1\"}}),_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M0 0h36v36H0z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'clarity-add-text-line',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fclarity%252Fadd-text-line?");
/***/ }),
/***/ "./_virtual_~icons%2Fclarity%2Fdirectory-line":
/*!****************************************************!*\
!*** ./_virtual_~icons%2Fclarity%2Fdirectory-line ***!
\****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 36 36\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{staticClass:\"clr-i-outline clr-i-outline-path-1\",attrs:{\"fill\":\"currentColor\",\"d\":\"M30 9H16.42l-2.31-3.18A2 2 0 0 0 12.49 5H6a2 2 0 0 0-2 2v22a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V11a2 2 0 0 0-2-2m0 20H6V13h7.31a2 2 0 0 0 2-2H6V7h6.49l2.61 3.59a1 1 0 0 0 .81.41H30Z\"}}),_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M0 0h36v36H0z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'clarity-directory-line',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fclarity%252Fdirectory-line?");
/***/ }),
/***/ "./_virtual_~icons%2Fclarity%2Ftree-view-line":
/*!****************************************************!*\
!*** ./_virtual_~icons%2Fclarity%2Ftree-view-line ***!
\****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 36 36\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{staticClass:\"clr-i-outline clr-i-outline-path-1\",attrs:{\"fill\":\"currentColor\",\"d\":\"M15 32h-4a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1m-3-2h2v-2h-2Z\"}}),_c('path',{staticClass:\"clr-i-outline clr-i-outline-path-2\",attrs:{\"fill\":\"currentColor\",\"d\":\"M15 16h-4a1 1 0 0 0-1 1v1.2H5.8V12H7a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h1.2v17.8h6.36a.8.8 0 0 0 0-1.6H5.8v-8.4H10V21a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1M4 8h2v2H4Zm10 12h-2v-2h2Z\"}}),_c('path',{staticClass:\"clr-i-outline clr-i-outline-path-3\",attrs:{\"fill\":\"currentColor\",\"d\":\"M34 9a1 1 0 0 0-1-1H10v2h23a1 1 0 0 0 1-1\"}}),_c('path',{staticClass:\"clr-i-outline clr-i-outline-path-4\",attrs:{\"fill\":\"currentColor\",\"d\":\"M33 18H18v2h15a1 1 0 0 0 0-2\"}}),_c('path',{staticClass:\"clr-i-outline clr-i-outline-path-5\",attrs:{\"fill\":\"currentColor\",\"d\":\"M33 28H18v2h15a1 1 0 0 0 0-2\"}}),_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M0 0h36v36H0z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'clarity-tree-view-line',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fclarity%252Ftree-view-line?");
/***/ }),
/***/ "./_virtual_~icons%2Ffluent%2Fcomment-add-16-regular":
/*!***********************************************************!*\
!*** ./_virtual_~icons%2Ffluent%2Fcomment-add-16-regular ***!
\***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 16 16\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M15 5.5a4.5 4.5 0 1 1-9 0a4.5 4.5 0 0 1 9 0m-4-2a.5.5 0 0 0-1 0V5H8.5a.5.5 0 0 0 0 1H10v1.5a.5.5 0 0 0 1 0V6h1.5a.5.5 0 0 0 0-1H11zM3.5 3h2.1q.276-.538.657-1H3.5A2.5 2.5 0 0 0 1 4.5v5A2.5 2.5 0 0 0 3.5 12H4v1.942a.98.98 0 0 0 1.625.738L8.688 12H12.5A2.5 2.5 0 0 0 15 9.5v-.837c-.29.411-.634.78-1.023 1.098A1.5 1.5 0 0 1 12.5 11H8.312L5 13.898V11H3.5A1.5 1.5 0 0 1 2 9.5v-5A1.5 1.5 0 0 1 3.5 3\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'fluent-comment-add-16-regular',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Ffluent%252Fcomment-add-16-regular?");
/***/ }),
/***/ "./_virtual_~icons%2Ffluent-mdl2%2Ffull-width-edit":
/*!*********************************************************!*\
!*** ./_virtual_~icons%2Ffluent-mdl2%2Ffull-width-edit ***!
\*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 2048 2048\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M2048 256v540q-58-37-128-51V384h-384v256h-128V384H640v256H512V384H128v1280h384v-128h128v128h128v128H0V256zM640 1024H512V768h128zm-128 128h128v256H512zm1024-384v256h-128V768zm312 128q42 0 78 15t64 42t42 63t16 78q0 39-15 76t-43 65l-717 719l-377 94l94-377l717-718q28-28 65-42t76-15m51 249q21-21 21-51q0-31-20-50t-52-20q-14 0-27 4t-23 15l-692 694l-34 135l135-34z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'fluent-mdl2-full-width-edit',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Ffluent-mdl2%252Ffull-width-edit?");
/***/ }),
/***/ "./_virtual_~icons%2Ffluent-mdl2%2Fhighlight-mapped-shapes":
/*!*****************************************************************!*\
!*** ./_virtual_~icons%2Ffluent-mdl2%2Fhighlight-mapped-shapes ***!
\*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 2048 2048\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M2048 640v640h-896v-256H979l-339 226v158h384v640H128v-640h384v-158L77 960l435-290V512H384q-53 0-99-20t-82-55t-55-81t-20-100q0-53 20-99t55-82t81-55T384 0h384q53 0 99 20t82 55t55 81t20 100q0 53-20 99t-55 82t-81 55t-100 20H640v158l339 226h173V640zM768 384q27 0 50-10t40-27t28-41t10-50q0-27-10-50t-27-40t-41-28t-50-10H384q-27 0-50 10t-40 27t-28 41t-10 50q0 27 10 50t27 40t41 28t50 10zM384 1664v128h384v-128zm461-704L576 781L307 960l269 179zm947-64h-384v128h384z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'fluent-mdl2-highlight-mapped-shapes',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Ffluent-mdl2%252Fhighlight-mapped-shapes?");
/***/ }),
/***/ "./_virtual_~icons%2Fhugeicons%2Fbook-edit":
/*!*************************************************!*\
!*** ./_virtual_~icons%2Fhugeicons%2Fbook-edit ***!
\*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"none\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"stroke-width\":\"1.5\",\"d\":\"M11.022 6.787v13M11 19.5c-.222 0-.677-.242-1.585-.726c-.923-.492-2.198-.982-3.832-1.29c-1.834-.344-2.75-.516-3.167-1.025C2 15.949 2 15.135 2 13.504V7.097c0-1.783 0-2.675.649-3.224c.648-.549 1.41-.406 2.933-.12c3.008.566 4.8 1.749 5.418 2.428c.618-.679 2.41-1.862 5.418-2.427c1.523-.287 2.285-.43 2.933.119c.649.549.649 1.44.649 3.224V10m.864 2.94l.695.692a1.496 1.496 0 0 1 0 2.12l-3.642 3.696a2 2 0 0 1-1.051.552l-2.257.488a.5.5 0 0 1-.598-.593l.48-2.235c.075-.397.268-.762.555-1.047l3.688-3.674a1.51 1.51 0 0 1 2.13 0\",\"color\":\"currentColor\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'hugeicons-book-edit',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fhugeicons%252Fbook-edit?");
/***/ }),
/***/ "./_virtual_~icons%2Fhugeicons%2Fnode-edit":
/*!*************************************************!*\
!*** ./_virtual_~icons%2Fhugeicons%2Fnode-edit ***!
\*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('g',{attrs:{\"fill\":\"none\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"stroke-width\":\"1.5\",\"color\":\"currentColor\"}},[_c('path',{attrs:{\"d\":\"M13 19.5h-1c-2.828 0-4.243 0-5.121-.879C6 17.743 6 16.328 6 13.5v-2m0 0V8m0 3.5h5.5\"}}),_c('path',{attrs:{\"d\":\"M13 19.5c0-1.178 0-1.768.351-2.134C13.704 17 14.27 17 15.4 17h1.2c1.131 0 1.697 0 2.048.366c.352.366.352.956.352 2.134s0 1.768-.352 2.134c-.35.366-.917.366-2.048.366h-1.2c-1.131 0-1.697 0-2.049-.366S13 20.678 13 19.5M4.286 2h3.428C9.79 2 10 3.11 10 5s-.211 3-2.286 3H4.286C2.21 8 2 6.89 2 5s.211-3 2.286-3m16.72 3.384l.608.606a1.31 1.31 0 0 1 0 1.856l-3.187 3.234a1.76 1.76 0 0 1-.92.483l-1.974.427a.438.438 0 0 1-.523-.52l.42-1.955c.066-.347.235-.667.485-.916l3.227-3.215a1.32 1.32 0 0 1 1.864 0\"}})])])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'hugeicons-node-edit',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fhugeicons%252Fnode-edit?");
/***/ }),
/***/ "./_virtual_~icons%2Fhugeicons%2Fsubnode-add":
/*!***************************************************!*\
!*** ./_virtual_~icons%2Fhugeicons%2Fsubnode-add ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('g',{attrs:{\"fill\":\"none\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"stroke-width\":\"1.5\",\"color\":\"currentColor\"}},[_c('path',{attrs:{\"d\":\"M14.5 19.5h-1c-2.828 0-4.243 0-5.121-.879C7.5 17.743 7.5 16.328 7.5 13.5v-2m0-3.5v3.5m0 0H12\"}}),_c('path',{attrs:{\"d\":\"M14.5 19.5c0-1.178 0-1.768.351-2.134C15.204 17 15.77 17 16.9 17h1.2c1.131 0 1.697 0 2.048.366c.352.366.352.956.352 2.134s0 1.768-.352 2.134c-.35.366-.917.366-2.048.366h-1.2c-1.131 0-1.697 0-2.048-.366c-.352-.366-.352-.956-.352-2.134M5.786 2h3.428C11.29 2 11.5 3.11 11.5 5s-.211 3-2.286 3H5.786C3.71 8 3.5 6.89 3.5 5s.211-3 2.286-3M17.5 9v5m2.5-2.5h-5\"}})])])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'hugeicons-subnode-add',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fhugeicons%252Fsubnode-add?");
/***/ }),
/***/ "./_virtual_~icons%2Fhugeicons%2Fsubnode-delete":
/*!******************************************************!*\
!*** ./_virtual_~icons%2Fhugeicons%2Fsubnode-delete ***!
\******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('g',{attrs:{\"fill\":\"none\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"stroke-width\":\"1.5\",\"color\":\"currentColor\"}},[_c('path',{attrs:{\"d\":\"M14.5 19.5h-1c-2.828 0-4.243 0-5.121-.879C7.5 17.743 7.5 16.328 7.5 13.5v-2m0-3.5v3.5m0 0h5\"}}),_c('path',{attrs:{\"d\":\"M14.5 19.5c0-1.178 0-1.768.351-2.134C15.204 17 15.77 17 16.9 17h1.2c1.131 0 1.697 0 2.048.366c.352.366.352.956.352 2.134s0 1.768-.352 2.134c-.35.366-.917.366-2.048.366h-1.2c-1.131 0-1.697 0-2.048-.366c-.352-.366-.352-.956-.352-2.134M5.786 2h3.428C11.29 2 11.5 3.11 11.5 5s-.211 3-2.286 3H5.786C3.71 8 3.5 6.89 3.5 5s.211-3 2.286-3M19.5 9.5l-2 2m0 0l-2 2m2-2l2 2m-2-2l-2-2\"}})])])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'hugeicons-subnode-delete',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fhugeicons%252Fsubnode-delete?");
/***/ }),
/***/ "./_virtual_~icons%2Fhugeicons%2Fsummation-01":
/*!****************************************************!*\
!*** ./_virtual_~icons%2Fhugeicons%2Fsummation-01 ***!
\****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"none\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"stroke-width\":\"1.5\",\"d\":\"M19 17.143c0 1.503 0 2.255-.35 2.804a2.3 2.3 0 0 1-.717.708c-.557.345-1.32.345-2.844.345H9.2c-2.585 0-3.878 0-4.153-.735c-.276-.734.705-1.564 2.668-3.223l3.943-3.334c.939-.794 1.408-1.19 1.408-1.708c0-.517-.47-.914-1.408-1.708L7.714 6.958C5.751 5.3 4.77 4.47 5.046 3.735C5.32 3 6.614 3 9.199 3h5.89c1.525 0 2.287 0 2.844.345c.29.18.535.422.717.708c.35.549.35 1.3.35 2.804\",\"color\":\"currentColor\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'hugeicons-summation-01',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fhugeicons%252Fsummation-01?");
/***/ }),
/***/ "./_virtual_~icons%2Fic%2Foutline-format-paint":
/*!*****************************************************!*\
!*** ./_virtual_~icons%2Fic%2Foutline-format-paint ***!
\*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M18 4V3c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6h1v4H9v11c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-9h8V4zm-2 2H6V4h10z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'ic-outline-format-paint',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fic%252Foutline-format-paint?");
/***/ }),
/***/ "./_virtual_~icons%2Fic%2Foutline-lock":
/*!*********************************************!*\
!*** ./_virtual_~icons%2Fic%2Foutline-lock ***!
\*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2M9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9zm9 14H6V10h12zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2s-2 .9-2 2s.9 2 2 2\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'ic-outline-lock',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fic%252Foutline-lock?");
/***/ }),
/***/ "./_virtual_~icons%2Fic%2Ftwotone-delete-outline":
/*!*******************************************************!*\
!*** ./_virtual_~icons%2Fic%2Ftwotone-delete-outline ***!
\*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM8 9h8v10H8zm7.5-5l-1-1h-5l-1 1H5v2h14V4z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'ic-twotone-delete-outline',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fic%252Ftwotone-delete-outline?");
/***/ }),
/***/ "./_virtual_~icons%2Fic%2Ftwotone-map":
/*!********************************************!*\
!*** ./_virtual_~icons%2Fic%2Ftwotone-map ***!
\********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"m5 18.31l3-1.16V5.45L5 6.46zm11 .24l3-1.01V5.69l-3 1.17z\",\"opacity\":\".3\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"m20.5 3l-.16.03L15 5.1L9 3L3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1l5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5M8 17.15l-3 1.16V6.46l3-1.01zm6 1.38l-4-1.4V5.47l4 1.4zm5-.99l-3 1.01V6.86l3-1.16z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'ic-twotone-map',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fic%252Ftwotone-map?");
/***/ }),
/***/ "./_virtual_~icons%2Ficon-park-outline%2Fdark-mode":
/*!*********************************************************!*\
!*** ./_virtual_~icons%2Ficon-park-outline%2Fdark-mode ***!
\*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 48 48\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('g',{attrs:{\"fill\":\"none\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"stroke-miterlimit\":\"10\",\"stroke-width\":\"4\"}},[_c('path',{attrs:{\"d\":\"m24.003 4l5.27 5.27h9.457v9.456l5.27 5.27l-5.27 5.278v9.456h-9.456L24.004 44l-5.278-5.27H9.27v-9.456L4 23.997l5.27-5.27V9.27h9.456z\"}}),_c('path',{attrs:{\"d\":\"M27 17c0 8-5 9-10 9c0 4 6.5 8 12 4s2-13-2-13\"}})])])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'icon-park-outline-dark-mode',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Ficon-park-outline%252Fdark-mode?");
/***/ }),
/***/ "./_virtual_~icons%2Ficon-park-outline%2Ffull-screen-one":
/*!***************************************************************!*\
!*** ./_virtual_~icons%2Ficon-park-outline%2Ffull-screen-one ***!
\***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 48 48\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"none\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"stroke-width\":\"4\",\"d\":\"m6 6l10 9.9m-10 26L16 32m26 9.9L32.1 32m9.8-26L32 15.9M33 6h9v9m0 18v9h-9m-18 0H6v-9m0-18V6h9\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'icon-park-outline-full-screen-one',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Ficon-park-outline%252Ffull-screen-one?");
/***/ }),
/***/ "./_virtual_~icons%2Ficon-park-solid%2Fdark-mode":
/*!*******************************************************!*\
!*** ./_virtual_~icons%2Ficon-park-solid%2Fdark-mode ***!
\*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 48 48\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('defs',[_c('mask',{attrs:{\"id\":_vm.idMap['ipSDarkMode0']}},[_c('g',{attrs:{\"fill\":\"none\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"stroke-miterlimit\":\"10\",\"stroke-width\":\"4\"}},[_c('path',{attrs:{\"fill\":\"#fff\",\"stroke\":\"#fff\",\"d\":\"m24.003 4l5.27 5.27h9.457v9.456l5.27 5.27l-5.27 5.278v9.456h-9.456L24.004 44l-5.278-5.27H9.27v-9.456L4 23.997l5.27-5.27V9.27h9.456z\"}}),_c('path',{attrs:{\"fill\":\"#000\",\"stroke\":\"#000\",\"d\":\"M27 17c0 8-5 9-10 9c0 4 6.5 8 12 4s2-13-2-13\"}})])])]),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M0 0h48v48H0z\",\"mask\":'url(#'+_vm.idMap['ipSDarkMode0']+')'}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n data() {const __randId = () => Math.random().toString(36).substr(2, 10);const idMap = {'ipSDarkMode0':'uicons-'+__randId()};;return { idMap }},\n name: 'icon-park-solid-dark-mode',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Ficon-park-solid%252Fdark-mode?");
/***/ }),
/***/ "./_virtual_~icons%2Ficon-park-twotone%2Ffull-screen-play":
/*!****************************************************************!*\
!*** ./_virtual_~icons%2Ficon-park-twotone%2Ffull-screen-play ***!
\****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 48 48\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('defs',[_c('mask',{attrs:{\"id\":_vm.idMap['ipTFullScreenPlay0']}},[_c('g',{attrs:{\"fill\":\"none\",\"stroke\":\"#fff\",\"stroke-linejoin\":\"round\",\"stroke-width\":\"4\"}},[_c('path',{attrs:{\"stroke-linecap\":\"round\",\"d\":\"M16 40H6a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2h36a2 2 0 0 1 2 2v6\"}}),_c('path',{attrs:{\"fill\":\"#555\",\"d\":\"M42 24H26a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V26a2 2 0 0 0-2-2Z\"}})])])]),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M0 0h48v48H0z\",\"mask\":'url(#'+_vm.idMap['ipTFullScreenPlay0']+')'}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n data() {const __randId = () => Math.random().toString(36).substr(2, 10);const idMap = {'ipTFullScreenPlay0':'uicons-'+__randId()};;return { idMap }},\n name: 'icon-park-twotone-full-screen-play',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Ficon-park-twotone%252Ffull-screen-play?");
/***/ }),
/***/ "./_virtual_~icons%2Ficonoir%2Fedit":
/*!******************************************!*\
!*** ./_virtual_~icons%2Ficonoir%2Fedit ***!
\******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"none\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"stroke-width\":\"1.5\",\"d\":\"M3 21h18M12.222 5.828L15.05 3L20 7.95l-2.828 2.828m-4.95-4.95l-5.607 5.607a1 1 0 0 0-.293.707v4.536h4.536a1 1 0 0 0 .707-.293l5.607-5.607m-4.95-4.95l4.95 4.95\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'iconoir-edit',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Ficonoir%252Fedit?");
/***/ }),
/***/ "./_virtual_~icons%2Flucide%2Fimage-plus":
/*!***********************************************!*\
!*** ./_virtual_~icons%2Flucide%2Fimage-plus ***!
\***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('g',{attrs:{\"fill\":\"none\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"stroke-width\":\"2\"}},[_c('path',{attrs:{\"d\":\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7m4 2h6m-3-3v6\"}}),_c('circle',{attrs:{\"cx\":\"9\",\"cy\":\"9\",\"r\":\"2\"}}),_c('path',{attrs:{\"d\":\"m21 15l-3.086-3.086a2 2 0 0 0-2.828 0L6 21\"}})])])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'lucide-image-plus',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Flucide%252Fimage-plus?");
/***/ }),
/***/ "./_virtual_~icons%2Fmaterial-symbols%2Fadd":
/*!**************************************************!*\
!*** ./_virtual_~icons%2Fmaterial-symbols%2Fadd ***!
\**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M11 13H5v-2h6V5h2v6h6v2h-6v6h-2z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'material-symbols-add',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmaterial-symbols%252Fadd?");
/***/ }),
/***/ "./_virtual_~icons%2Fmaterial-symbols%2Fadd-link":
/*!*******************************************************!*\
!*** ./_virtual_~icons%2Fmaterial-symbols%2Fadd-link ***!
\*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M17 20v-3h-3v-2h3v-3h2v3h3v2h-3v3zm-6-3H7q-2.075 0-3.537-1.463T2 12t1.463-3.537T7 7h4v2H7q-1.25 0-2.125.875T4 12t.875 2.125T7 15h4zm-3-4v-2h8v2zm14-1h-2q0-1.25-.875-2.125T17 9h-4V7h4q2.075 0 3.538 1.463T22 12\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'material-symbols-add-link',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmaterial-symbols%252Fadd-link?");
/***/ }),
/***/ "./_virtual_~icons%2Fmaterial-symbols%2Fdock-to-bottom":
/*!*************************************************************!*\
!*** ./_virtual_~icons%2Fmaterial-symbols%2Fdock-to-bottom ***!
\*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M5 21q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h14q.825 0 1.413.588T21 5v14q0 .825-.587 1.413T19 21zm0-7h14V5H5z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'material-symbols-dock-to-bottom',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmaterial-symbols%252Fdock-to-bottom?");
/***/ }),
/***/ "./_virtual_~icons%2Fmaterial-symbols%2Fdock-to-right":
/*!************************************************************!*\
!*** ./_virtual_~icons%2Fmaterial-symbols%2Fdock-to-right ***!
\************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M5 21q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h14q.825 0 1.413.588T21 5v14q0 .825-.587 1.413T19 21zm5-2h9V5h-9z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'material-symbols-dock-to-right',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmaterial-symbols%252Fdock-to-right?");
/***/ }),
/***/ "./_virtual_~icons%2Fmaterial-symbols%2Fkeyboard-arrow-down":
/*!******************************************************************!*\
!*** ./_virtual_~icons%2Fmaterial-symbols%2Fkeyboard-arrow-down ***!
\******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"m12 15.4l-6-6L7.4 8l4.6 4.6L16.6 8L18 9.4z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'material-symbols-keyboard-arrow-down',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmaterial-symbols%252Fkeyboard-arrow-down?");
/***/ }),
/***/ "./_virtual_~icons%2Fmaterial-symbols%2Fkeyboard-arrow-left":
/*!******************************************************************!*\
!*** ./_virtual_~icons%2Fmaterial-symbols%2Fkeyboard-arrow-left ***!
\******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"m14 18l-6-6l6-6l1.4 1.4l-4.6 4.6l4.6 4.6z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'material-symbols-keyboard-arrow-left',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmaterial-symbols%252Fkeyboard-arrow-left?");
/***/ }),
/***/ "./_virtual_~icons%2Fmaterial-symbols%2Fkeyboard-arrow-right":
/*!*******************************************************************!*\
!*** ./_virtual_~icons%2Fmaterial-symbols%2Fkeyboard-arrow-right ***!
\*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M12.6 12L8 7.4L9.4 6l6 6l-6 6L8 16.6z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'material-symbols-keyboard-arrow-right',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmaterial-symbols%252Fkeyboard-arrow-right?");
/***/ }),
/***/ "./_virtual_~icons%2Fmaterial-symbols%2Fredo":
/*!***************************************************!*\
!*** ./_virtual_~icons%2Fmaterial-symbols%2Fredo ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M9.9 19q-2.425 0-4.163-1.575T4 13.5t1.738-3.925T9.9 8h6.3l-2.6-2.6L15 4l5 5l-5 5l-1.4-1.4l2.6-2.6H9.9q-1.575 0-2.738 1T6 13.5T7.163 16T9.9 17H17v2z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'material-symbols-redo',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmaterial-symbols%252Fredo?");
/***/ }),
/***/ "./_virtual_~icons%2Fmaterial-symbols%2Fundo":
/*!***************************************************!*\
!*** ./_virtual_~icons%2Fmaterial-symbols%2Fundo ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M7 19v-2h7.1q1.575 0 2.738-1T18 13.5T16.838 11T14.1 10H7.8l2.6 2.6L9 14L4 9l5-5l1.4 1.4L7.8 8h6.3q2.425 0 4.163 1.575T20 13.5t-1.737 3.925T14.1 19z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'material-symbols-undo',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmaterial-symbols%252Fundo?");
/***/ }),
/***/ "./_virtual_~icons%2Fmaterial-symbols%2Fvisibility-outline":
/*!*****************************************************************!*\
!*** ./_virtual_~icons%2Fmaterial-symbols%2Fvisibility-outline ***!
\*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M12 16q1.875 0 3.188-1.312T16.5 11.5t-1.312-3.187T12 7T8.813 8.313T7.5 11.5t1.313 3.188T12 16m0-1.8q-1.125 0-1.912-.788T9.3 11.5t.788-1.912T12 8.8t1.913.788t.787 1.912t-.787 1.913T12 14.2m0 4.8q-3.65 0-6.65-2.037T1 11.5q1.35-3.425 4.35-5.462T12 4t6.65 2.038T23 11.5q-1.35 3.425-4.35 5.463T12 19m0-2q2.825 0 5.188-1.487T20.8 11.5q-1.25-2.525-3.613-4.012T12 6T6.813 7.488T3.2 11.5q1.25 2.525 3.613 4.013T12 17\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'material-symbols-visibility-outline',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmaterial-symbols%252Fvisibility-outline?");
/***/ }),
/***/ "./_virtual_~icons%2Fmaterial-symbols-light%2Farrows-more-down-outline-rounded":
/*!*************************************************************************************!*\
!*** ./_virtual_~icons%2Fmaterial-symbols-light%2Farrows-more-down-outline-rounded ***!
\*************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M6.808 20q-.343 0-.576-.232T6 19.192V10.5q0-.213.144-.356T6.501 10t.356.144T7 10.5V19h8.5q.213 0 .356.144t.144.357t-.144.356T15.5 20zm4-4q-.343 0-.576-.232T10 15.192V6.5q0-.213.144-.356T10.501 6t.356.144T11 6.5V15h8.5q.213 0 .356.144t.144.357t-.144.356T19.5 16z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'material-symbols-light-arrows-more-down-outline-rounded',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmaterial-symbols-light%252Farrows-more-down-outline-rounded?");
/***/ }),
/***/ "./_virtual_~icons%2Fmaterial-symbols-light%2Ffile-open-outline":
/*!**********************************************************************!*\
!*** ./_virtual_~icons%2Fmaterial-symbols-light%2Ffile-open-outline ***!
\**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M6.616 21q-.691 0-1.153-.462T5 19.385V4.615q0-.69.463-1.152T6.616 3H14.5L19 7.5v7h-1V8h-4V4H6.616q-.231 0-.424.192T6 4.615v14.77q0 .23.192.423t.423.192H15.5v1zm15.334.663l-3.45-3.45v2.956h-1V16.5h4.67v1h-2.982l3.45 3.45zM6 20V4z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'material-symbols-light-file-open-outline',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmaterial-symbols-light%252Ffile-open-outline?");
/***/ }),
/***/ "./_virtual_~icons%2Fmdi%2Falarm-off":
/*!*******************************************!*\
!*** ./_virtual_~icons%2Fmdi%2Falarm-off ***!
\*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M8 3.28L6.6 1.86l-.86.71L7.16 4m9.31 14.39C15.26 19.39 13.7 20 12 20a7 7 0 0 1-7-7c0-1.7.61-3.26 1.61-4.47M2.92 2.29L1.65 3.57L3 4.9l-1.13.93l1.42 1.42l1.11-.94l.8.8A8.96 8.96 0 0 0 3 13a9 9 0 0 0 9 9c2.25 0 4.31-.83 5.89-2.2l2.2 2.2l1.27-1.27L3.89 3.27zM22 5.72l-4.6-3.86l-1.29 1.53l4.6 3.86zM12 6a7 7 0 0 1 7 7c0 .84-.16 1.65-.43 2.4l1.52 1.52c.58-1.19.91-2.51.91-3.92a9 9 0 0 0-9-9c-1.41 0-2.73.33-3.92.91L9.6 6.43C10.35 6.16 11.16 6 12 6\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'mdi-alarm-off',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmdi%252Falarm-off?");
/***/ }),
/***/ "./_virtual_~icons%2Fmdi%2Fbracket":
/*!*****************************************!*\
!*** ./_virtual_~icons%2Fmdi%2Fbracket ***!
\*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M2 2v2h5v4H2v2h5c1.11 0 2-.89 2-2V7h5v10H9v-1c0-1.11-.89-2-2-2H2v2h5v4H2v2h5c1.11 0 2-.89 2-2v-1h5c1.11 0 2-.89 2-2v-4h6v-2h-6V7c0-1.11-.89-2-2-2H9V4c0-1.11-.89-2-2-2z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'mdi-bracket',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmdi%252Fbracket?");
/***/ }),
/***/ "./_virtual_~icons%2Fmdi%2Fbrain-freeze-outline":
/*!******************************************************!*\
!*** ./_virtual_~icons%2Fmdi%2Fbrain-freeze-outline ***!
\******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M13 3c3.88 0 7 3.14 7 7c0 2.8-1.63 5.19-4 6.31V21H9v-3H8c-1.11 0-2-.89-2-2v-3H4.5c-.42 0-.66-.5-.42-.81L6 9.66A7.003 7.003 0 0 1 13 3m0-2C8.41 1 4.61 4.42 4.06 8.9L2.5 11h-.03l-.02.03c-.55.76-.62 1.76-.19 2.59c.36.69 1 1.17 1.74 1.32V16c0 1.85 1.28 3.42 3 3.87V23h11v-5.5c2.5-1.67 4-4.44 4-7.5c0-4.97-4.04-9-9-9m4.33 8.3l-1.96.51l1.44 1.46c.35.34.35.92 0 1.27s-.93.35-1.27 0l-1.45-1.44l-.52 1.96c-.12.49-.61.76-1.07.64a.91.91 0 0 1-.66-1.11l.53-1.96l-1.96.53a.91.91 0 0 1-1.11-.66c-.12-.45.16-.95.64-1.07l1.96-.52l-1.44-1.45a.9.9 0 0 1 1.27-1.27l1.46 1.44l.51-1.96c.12-.49.62-.77 1.09-.64c.49.13.77.62.64 1.1L14.9 8.1l1.97-.53c.48-.13.97.15 1.1.64c.13.47-.15.97-.64 1.09\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'mdi-brain-freeze-outline',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmdi%252Fbrain-freeze-outline?");
/***/ }),
/***/ "./_virtual_~icons%2Fmdi%2Fcode-block-brackets":
/*!*****************************************************!*\
!*** ./_virtual_~icons%2Fmdi%2Fcode-block-brackets ***!
\*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M2 3v10h4v-2H4V5h2V3zm10 8h-2v2h4V3h-4v2h2zm10-5v12c0 1.11-.89 2-2 2H4a2 2 0 0 1-2-2v-3h2v3h16V6h-2.97V4H20c1.11 0 2 .89 2 2\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'mdi-code-block-brackets',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmdi%252Fcode-block-brackets?");
/***/ }),
/***/ "./_virtual_~icons%2Fmdi%2Fcontent-save-move-outline":
/*!***********************************************************!*\
!*** ./_virtual_~icons%2Fmdi%2Fcontent-save-move-outline ***!
\***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M13 17h4v-3l5 4.5l-5 4.5v-3h-4zm1-4.2c-.5-.49-1.22-.8-2-.8a2.996 2.996 0 0 0-1 5.82a6.03 6.03 0 0 1 3-5.02M11.09 19H5V5h11.17L19 7.83v4.52c.75.26 1.42.65 2 1.19V7l-4-4H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6.81c-.35-.61-.6-1.28-.72-2M6 10h9V6H6z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'mdi-content-save-move-outline',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmdi%252Fcontent-save-move-outline?");
/***/ }),
/***/ "./_virtual_~icons%2Fmdi%2Femoticon-plus-outline":
/*!*******************************************************!*\
!*** ./_virtual_~icons%2Fmdi%2Femoticon-plus-outline ***!
\*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M15 18h3v-3h2v3h3v2h-3v3h-2v-3h-3zm-3-.5c-2.33 0-4.31-1.46-5.11-3.5h8.8a5.94 5.94 0 0 0-2.46 3.36c-.4.09-.81.14-1.23.14M8.5 11C7.67 11 7 10.33 7 9.5S7.67 8 8.5 8s1.5.67 1.5 1.5S9.33 11 8.5 11m7 0c-.83 0-1.5-.67-1.5-1.5S14.67 8 15.5 8s1.5.67 1.5 1.5s-.67 1.5-1.5 1.5M12 20l1.07-.07c.11.68.33 1.33.65 1.92c-.56.1-1.14.15-1.72.15c-5.53 0-10-4.5-10-10S6.47 2 12 2c5.5 0 10 4.5 10 10c0 .59-.05 1.16-.15 1.72c-.59-.32-1.23-.54-1.92-.65L20 12c0-4.42-3.58-8-8-8s-8 3.58-8 8s3.58 8 8 8\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'mdi-emoticon-plus-outline',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmdi%252Femoticon-plus-outline?");
/***/ }),
/***/ "./_virtual_~icons%2Fmdi%2Feye-outline":
/*!*********************************************!*\
!*** ./_virtual_~icons%2Fmdi%2Feye-outline ***!
\*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M12 9a3 3 0 0 1 3 3a3 3 0 0 1-3 3a3 3 0 0 1-3-3a3 3 0 0 1 3-3m0-4.5c5 0 9.27 3.11 11 7.5c-1.73 4.39-6 7.5-11 7.5S2.73 16.39 1 12c1.73-4.39 6-7.5 11-7.5M3.18 12a9.821 9.821 0 0 0 17.64 0a9.821 9.821 0 0 0-17.64 0\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'mdi-eye-outline',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmdi%252Feye-outline?");
/***/ }),
/***/ "./_virtual_~icons%2Fmdi%2Fkeyboard-variant":
/*!**************************************************!*\
!*** ./_virtual_~icons%2Fmdi%2Fkeyboard-variant ***!
\**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M6 16h12v2H6zm0-3v2H2v-2zm1 2v-2h3v2zm4 0v-2h2v2zm3 0v-2h3v2zm4 0v-2h4v2zM2 10h3v2H2zm17 2v-2h3v2zm-1 0h-2v-2h2zM8 12H6v-2h2zm4 0H9v-2h3zm3 0h-2v-2h2zM2 9V7h2v2zm3 0V7h2v2zm3 0V7h2v2zm3 0V7h2v2zm3 0V7h2v2zm3 0V7h5v2z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'mdi-keyboard-variant',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmdi%252Fkeyboard-variant?");
/***/ }),
/***/ "./_virtual_~icons%2Fmdi%2Ftag-add":
/*!*****************************************!*\
!*** ./_virtual_~icons%2Fmdi%2Ftag-add ***!
\*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"m21.41 11.58l-9-9C12.04 2.21 11.53 2 11 2H4a2 2 0 0 0-2 2v7c0 .53.21 1.04.59 1.41l.41.4c.9-.54 1.94-.81 3-.81a6 6 0 0 1 6 6c0 1.06-.28 2.09-.82 3l.4.4c.37.38.89.6 1.42.6s1.04-.21 1.41-.59l7-7c.38-.37.59-.88.59-1.41s-.21-1.04-.59-1.42M5.5 7A1.5 1.5 0 0 1 4 5.5A1.5 1.5 0 0 1 5.5 4A1.5 1.5 0 0 1 7 5.5A1.5 1.5 0 0 1 5.5 7M10 19H7v3H5v-3H2v-2h3v-3h2v3h3z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'mdi-tag-add',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmdi%252Ftag-add?");
/***/ }),
/***/ "./_virtual_~icons%2Fmingcute%2Ffile-new-line":
/*!****************************************************!*\
!*** ./_virtual_~icons%2Fmingcute%2Ffile-new-line ***!
\****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('g',{attrs:{\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M13.586 2a2 2 0 0 1 1.284.467l.13.119L19.414 7a2 2 0 0 1 .578 1.238l.008.176V20a2 2 0 0 1-1.85 1.995L18 22H6a2 2 0 0 1-1.995-1.85L4 20V4a2 2 0 0 1 1.85-1.995L6 2zM12 4H6v16h12V10h-4.5A1.5 1.5 0 0 1 12 8.5zm0 7.5a1 1 0 0 1 1 1V14h1.5a1 1 0 1 1 0 2H13v1.5a1 1 0 1 1-2 0V16H9.5a1 1 0 1 1 0-2H11v-1.5a1 1 0 0 1 1-1m2-7.086V8h3.586z\"}})])])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'mingcute-file-new-line',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fmingcute%252Ffile-new-line?");
/***/ }),
/***/ "./_virtual_~icons%2Fph%2Ftree-structure-light":
/*!*****************************************************!*\
!*** ./_virtual_~icons%2Fph%2Ftree-structure-light ***!
\*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 256 256\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M160 110h48a14 14 0 0 0 14-14V48a14 14 0 0 0-14-14h-48a14 14 0 0 0-14 14v18h-18a22 22 0 0 0-22 22v34H70v-10a14 14 0 0 0-14-14H24a14 14 0 0 0-14 14v32a14 14 0 0 0 14 14h32a14 14 0 0 0 14-14v-10h36v34a22 22 0 0 0 22 22h18v18a14 14 0 0 0 14 14h48a14 14 0 0 0 14-14v-48a14 14 0 0 0-14-14h-48a14 14 0 0 0-14 14v18h-18a10 10 0 0 1-10-10V88a10 10 0 0 1 10-10h18v18a14 14 0 0 0 14 14M58 144a2 2 0 0 1-2 2H24a2 2 0 0 1-2-2v-32a2 2 0 0 1 2-2h32a2 2 0 0 1 2 2Zm100 16a2 2 0 0 1 2-2h48a2 2 0 0 1 2 2v48a2 2 0 0 1-2 2h-48a2 2 0 0 1-2-2Zm0-112a2 2 0 0 1 2-2h48a2 2 0 0 1 2 2v48a2 2 0 0 1-2 2h-48a2 2 0 0 1-2-2Z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'ph-tree-structure-light',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fph%252Ftree-structure-light?");
/***/ }),
/***/ "./_virtual_~icons%2Fri%2Fmenu-search-line":
/*!*************************************************!*\
!*** ./_virtual_~icons%2Fri%2Fmenu-search-line ***!
\*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M15.5 5a3.5 3.5 0 1 0 0 7a3.5 3.5 0 0 0 0-7M10 8.5a5.5 5.5 0 1 1 10.032 3.117l2.675 2.676l-1.414 1.414l-2.675-2.675A5.5 5.5 0 0 1 10 8.5M3 4h5v2H3zm0 7h5v2H3zm18 7v2H3v-2z\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'ri-menu-search-line',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fri%252Fmenu-search-line?");
/***/ }),
/***/ "./_virtual_~icons%2Fri%2Fmind-map":
/*!*****************************************!*\
!*** ./_virtual_~icons%2Fri%2Fmind-map ***!
\*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M18 3a3 3 0 1 1 0 6h-3a3 3 0 0 1-2.829-2H11c-1.1 0-2 .9-2 2v.171a3.001 3.001 0 0 1 0 5.658V15c0 1.1.9 2 2 2h1.17A3 3 0 0 1 15 15h3a3 3 0 1 1 0 6h-3a3 3 0 0 1-2.829-2H11c-2.21 0-4-1.79-4-4H5a3 3 0 1 1 0-6h2a4 4 0 0 1 4-4h1.17A3 3 0 0 1 15 3zm0 14h-3a1 1 0 1 0 0 2h3a1 1 0 1 0 0-2M8 11H5a1 1 0 1 0 0 2h3a1 1 0 1 0 0-2m10-6h-3a1 1 0 1 0 0 2h3a1 1 0 1 0 0-2\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'ri-mind-map',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fri%252Fmind-map?");
/***/ }),
/***/ "./_virtual_~icons%2Fsimple-icons%2Frelay":
/*!************************************************!*\
!*** ./_virtual_~icons%2Fsimple-icons%2Frelay ***!
\************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M2.264 4.937A2.264 2.264 0 1 0 4.456 7.77h10.339a1.792 1.792 0 0 1 0 3.583h-5.73a3.037 3.037 0 0 0-3.034 3.033a3.036 3.036 0 0 0 3.033 3.033h10.494a2.264 2.264 0 1 0 0-1.242H9.064a1.793 1.793 0 0 1-1.791-1.791c0-.988.803-1.792 1.791-1.792h5.73a3.036 3.036 0 0 0 3.034-3.033a3.036 3.036 0 0 0-3.033-3.033H4.427a2.265 2.265 0 0 0-2.163-1.592\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'simple-icons-relay',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fsimple-icons%252Frelay?");
/***/ }),
/***/ "./_virtual_~icons%2Fstreamline%2Ftarget-3":
/*!*************************************************!*\
!*** ./_virtual_~icons%2Fstreamline%2Ftarget-3 ***!
\*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 14 14\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"none\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",\"d\":\"M.875 7a6.125 6.125 0 1 1 12.25 0A6.125 6.125 0 0 1 .875 7M7 .875v1.633M13.125 7h-1.633M7 13.125v-1.633M.875 7h1.633m2.888 0h3.208M7 5.396v3.208\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'streamline-target-3',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fstreamline%252Ftarget-3?");
/***/ }),
/***/ "./_virtual_~icons%2Fuil%2Fgame-structure":
/*!************************************************!*\
!*** ./_virtual_~icons%2Fuil%2Fgame-structure ***!
\************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"width\":\"1.2em\",\"height\":\"1.2em\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M21 18h-2v-3a1 1 0 0 0-1-1h-5v-2.71l1.13.59a1 1 0 0 0 1.45-1.05l-.4-2.37l1.72-1.69a1 1 0 0 0 .26-1a1 1 0 0 0-.81-.68L14 4.72l-1.1-2.16a1 1 0 0 0-1.8 0L10 4.72l-2.39.35a1 1 0 0 0-.81.68a1 1 0 0 0 .26 1l1.76 1.71l-.4 2.37a1 1 0 0 0 1.45 1.05l1.13-.59V14H6a1 1 0 0 0-1 1v3H3a1 1 0 0 0-1 1v2a1 1 0 0 0 2 0v-1h4v1a1 1 0 0 0 2 0v-2a1 1 0 0 0-1-1H7v-2h10v2h-2a1 1 0 0 0-1 1v2a1 1 0 0 0 2 0v-1h4v1a1 1 0 0 0 2 0v-2a1 1 0 0 0-1-1m-9-9.37a1 1 0 0 0-.47.12l-.8.42l.15-.9a1 1 0 0 0-.29-.88l-.65-.64l.9-.13a1 1 0 0 0 .76-.54l.4-.82l.4.82a1 1 0 0 0 .76.54l.9.13l-.65.64a1 1 0 0 0-.29.88l.15.9l-.8-.42a1 1 0 0 0-.47-.12\"}})])}\n\n/* vite-plugin-components disabled */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n render: render,\n \n name: 'uil-game-structure',\n});\n\n\n//# sourceURL=webpack:///./_virtual_~icons%252Fuil%252Fgame-structure?");
/***/ }),
/***/ "./node_modules/@toast-ui/editor/dist/esm/index.js":
/*!*********************************************************!*\
!*** ./node_modules/@toast-ui/editor/dist/esm/index.js ***!
\*********************************************************/
/*! exports provided: Editor, EditorCore, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Editor\", function() { return ToastUIEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EditorCore\", function() { return ToastUIEditorCore; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ToastUIEditor; });\n/* harmony import */ var prosemirror_model__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prosemirror-model */ \"./node_modules/prosemirror-model/dist/index.js\");\n/* harmony import */ var prosemirror_view__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prosemirror-view */ \"./node_modules/prosemirror-view/dist/index.js\");\n/* harmony import */ var prosemirror_transform__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prosemirror-transform */ \"./node_modules/prosemirror-transform/dist/index.js\");\n/* harmony import */ var prosemirror_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prosemirror-state */ \"./node_modules/prosemirror-state/dist/index.js\");\n/* harmony import */ var prosemirror_keymap__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prosemirror-keymap */ \"./node_modules/prosemirror-keymap/dist/index.js\");\n/* harmony import */ var prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prosemirror-commands */ \"./node_modules/prosemirror-commands/dist/index.js\");\n/* harmony import */ var prosemirror_inputrules__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! prosemirror-inputrules */ \"./node_modules/prosemirror-inputrules/dist/index.js\");\n/* harmony import */ var prosemirror_history__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prosemirror-history */ \"./node_modules/prosemirror-history/dist/index.js\");\n/**\n * @toast-ui/editor\n * @version 3.2.2 | Fri Feb 17 2023\n * @author NHN Cloud FE Development Lab <dl_javascript@nhn.com>\n * @license MIT\n */\n\n\n\n\n\n\n\n\n\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics$1 = function(d, b) {\r\n extendStatics$1 = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics$1(d, b);\r\n};\r\n\r\nfunction __extends$1(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics$1(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign$1 = function() {\r\n __assign$1 = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign$1.apply(this, arguments);\r\n};\r\n\r\nfunction __spreadArray$1(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n}\n\n/**\n * @fileoverview Execute the provided callback once for each property of object which actually exist.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n/**\n * Execute the provided callback once for each property of object which actually exist.\n * If the callback function returns false, the loop will be stopped.\n * Callback function(iteratee) is invoked with three arguments:\n * 1) The value of the property\n * 2) The name of the property\n * 3) The object being traversed\n * @param {Object} obj The object that will be traversed\n * @param {function} iteratee Callback function\n * @param {Object} [context] Context(this) of callback function\n * @memberof module:collection\n * @example\n * // ES6\n * import forEachOwnProperties from 'tui-code-snippet/collection/forEachOwnProperties';\n * \n * // CommonJS\n * const forEachOwnProperties = require('tui-code-snippet/collection/forEachOwnProperties'); \n *\n * let sum = 0;\n *\n * forEachOwnProperties({a:1,b:2,c:3}, function(value){\n * sum += value;\n * });\n * alert(sum); // 6\n */\nfunction forEachOwnProperties$2(obj, iteratee, context) {\n var key;\n\n context = context || null;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (iteratee.call(context, obj[key], key, obj) === false) {\n break;\n }\n }\n }\n}\n\nvar forEachOwnProperties_1 = forEachOwnProperties$2;\n\n/**\n * @fileoverview Extend the target object from other objects.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n/**\n * @module object\n */\n\n/**\n * Extend the target object from other objects.\n * @param {object} target - Object that will be extended\n * @param {...object} objects - Objects as sources\n * @returns {object} Extended object\n * @memberof module:object\n */\nfunction extend(target, objects) { // eslint-disable-line no-unused-vars\n var hasOwnProp = Object.prototype.hasOwnProperty;\n var source, prop, i, len;\n\n for (i = 1, len = arguments.length; i < len; i += 1) {\n source = arguments[i];\n for (prop in source) {\n if (hasOwnProp.call(source, prop)) {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\n\nvar extend_1 = extend;\n\n/**\n * @fileoverview Check whether the given variable is a string or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n/**\n * Check whether the given variable is a string or not.\n * If the given variable is a string, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is string?\n * @memberof module:type\n */\nfunction isString$3(obj) {\n return typeof obj === 'string' || obj instanceof String;\n}\n\nvar isString_1 = isString$3;\n\n/**\n * @fileoverview Check whether the given variable is an instance of Array or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n/**\n * Check whether the given variable is an instance of Array or not.\n * If the given variable is an instance of Array, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is array instance?\n * @memberof module:type\n */\nfunction isArray$3(obj) {\n return obj instanceof Array;\n}\n\nvar isArray_1 = isArray$3;\n\n/**\n * @fileoverview Execute the provided callback once for each element present in the array(or Array-like object) in ascending order.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n/**\n * Execute the provided callback once for each element present\n * in the array(or Array-like object) in ascending order.\n * If the callback function returns false, the loop will be stopped.\n * Callback function(iteratee) is invoked with three arguments:\n * 1) The value of the element\n * 2) The index of the element\n * 3) The array(or Array-like object) being traversed\n * @param {Array|Arguments|NodeList} arr The array(or Array-like object) that will be traversed\n * @param {function} iteratee Callback function\n * @param {Object} [context] Context(this) of callback function\n * @memberof module:collection\n * @example\n * // ES6\n * import forEachArray from 'tui-code-snippet/collection/forEachArray';\n * \n * // CommonJS\n * const forEachArray = require('tui-code-snippet/collection/forEachArray'); \n *\n * let sum = 0;\n *\n * forEachArray([1,2,3], function(value){\n * sum += value;\n * });\n * alert(sum); // 6\n */\nfunction forEachArray$3(arr, iteratee, context) {\n var index = 0;\n var len = arr.length;\n\n context = context || null;\n\n for (; index < len; index += 1) {\n if (iteratee.call(context, arr[index], index, arr) === false) {\n break;\n }\n }\n}\n\nvar forEachArray_1 = forEachArray$3;\n\n/**\n * @fileoverview Execute the provided callback once for each property of object(or element of array) which actually exist.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar isArray$2 = isArray_1;\nvar forEachArray$2 = forEachArray_1;\nvar forEachOwnProperties$1 = forEachOwnProperties_1;\n\n/**\n * @module collection\n */\n\n/**\n * Execute the provided callback once for each property of object(or element of array) which actually exist.\n * If the object is Array-like object(ex-arguments object), It needs to transform to Array.(see 'ex2' of example).\n * If the callback function returns false, the loop will be stopped.\n * Callback function(iteratee) is invoked with three arguments:\n * 1) The value of the property(or The value of the element)\n * 2) The name of the property(or The index of the element)\n * 3) The object being traversed\n * @param {Object} obj The object that will be traversed\n * @param {function} iteratee Callback function\n * @param {Object} [context] Context(this) of callback function\n * @memberof module:collection\n * @example\n * // ES6\n * import forEach from 'tui-code-snippet/collection/forEach'; \n * \n * // CommonJS\n * const forEach = require('tui-code-snippet/collection/forEach'); \n *\n * let sum = 0;\n *\n * forEach([1,2,3], function(value){\n * sum += value;\n * });\n * alert(sum); // 6\n *\n * // In case of Array-like object\n * const array = Array.prototype.slice.call(arrayLike); // change to array\n * forEach(array, function(value){\n * sum += value;\n * });\n */\nfunction forEach$4(obj, iteratee, context) {\n if (isArray$2(obj)) {\n forEachArray$2(obj, iteratee, context);\n } else {\n forEachOwnProperties$1(obj, iteratee, context);\n }\n}\n\nvar forEach_1 = forEach$4;\n\n/**\n * @fileoverview Setting element style\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar isString$2 = isString_1;\nvar forEach$3 = forEach_1;\n\n/**\n * Setting element style\n * @param {(HTMLElement|SVGElement)} element - element to setting style\n * @param {(string|object)} key - style prop name or {prop: value} pair object\n * @param {string} [value] - style value\n * @memberof module:domUtil\n */\nfunction css(element, key, value) {\n var style = element.style;\n\n if (isString$2(key)) {\n style[key] = value;\n\n return;\n }\n\n forEach$3(key, function(v, k) {\n style[k] = v;\n });\n}\n\nvar css_1 = css;\n\n/* eslint-disable complexity */\n\nvar isArray$1 = isArray_1;\n\n/**\n * @module array\n */\n\n/**\n * Returns the first index at which a given element can be found in the array\n * from start index(default 0), or -1 if it is not present.\n * It compares searchElement to elements of the Array using strict equality\n * (the same method used by the ===, or triple-equals, operator).\n * @param {*} searchElement Element to locate in the array\n * @param {Array} array Array that will be traversed.\n * @param {number} startIndex Start index in array for searching (default 0)\n * @returns {number} the First index at which a given element, or -1 if it is not present\n * @memberof module:array\n * @example\n * // ES6\n * import inArray from 'tui-code-snippet/array/inArray';\n * \n * // CommonJS\n * const inArray = require('tui-code-snippet/array/inArray');\n *\n * const arr = ['one', 'two', 'three', 'four'];\n * const idx1 = inArray('one', arr, 3); // -1\n * const idx2 = inArray('one', arr); // 0\n */\nfunction inArray$4(searchElement, array, startIndex) {\n var i;\n var length;\n startIndex = startIndex || 0;\n\n if (!isArray$1(array)) {\n return -1;\n }\n\n if (Array.prototype.indexOf) {\n return Array.prototype.indexOf.call(array, searchElement, startIndex);\n }\n\n length = array.length;\n for (i = startIndex; startIndex >= 0 && i < length; i += 1) {\n if (array[i] === searchElement) {\n return i;\n }\n }\n\n return -1;\n}\n\nvar inArray_1 = inArray$4;\n\n/**\n * @fileoverview Check whether the given variable is undefined or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n/**\n * Check whether the given variable is undefined or not.\n * If the given variable is undefined, returns true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is undefined?\n * @memberof module:type\n */\nfunction isUndefined$4(obj) {\n return obj === undefined; // eslint-disable-line no-undefined\n}\n\nvar isUndefined_1 = isUndefined$4;\n\n/**\n * @fileoverview Get HTML element's design classes.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar isUndefined$3 = isUndefined_1;\n\n/**\n * Get HTML element's design classes.\n * @param {(HTMLElement|SVGElement)} element target element\n * @returns {string} element css class name\n * @memberof module:domUtil\n */\nfunction getClass$3(element) {\n if (!element || !element.className) {\n return '';\n }\n\n if (isUndefined$3(element.className.baseVal)) {\n return element.className;\n }\n\n return element.className.baseVal;\n}\n\nvar getClass_1 = getClass$3;\n\n/**\n * @fileoverview Set className value\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar isArray = isArray_1;\nvar isUndefined$2 = isUndefined_1;\n\n/**\n * Set className value\n * @param {(HTMLElement|SVGElement)} element - target element\n * @param {(string|string[])} cssClass - class names\n * @private\n */\nfunction setClassName$2(element, cssClass) {\n cssClass = isArray(cssClass) ? cssClass.join(' ') : cssClass;\n\n cssClass = cssClass.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n if (isUndefined$2(element.className.baseVal)) {\n element.className = cssClass;\n\n return;\n }\n\n element.className.baseVal = cssClass;\n}\n\nvar _setClassName = setClassName$2;\n\n/**\n * @fileoverview Add css class to element\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar forEach$2 = forEach_1;\nvar inArray$3 = inArray_1;\nvar getClass$2 = getClass_1;\nvar setClassName$1 = _setClassName;\n\n/**\n * domUtil module\n * @module domUtil\n */\n\n/**\n * Add css class to element\n * @param {(HTMLElement|SVGElement)} element - target element\n * @param {...string} cssClass - css classes to add\n * @memberof module:domUtil\n */\nfunction addClass(element) {\n var cssClass = Array.prototype.slice.call(arguments, 1);\n var classList = element.classList;\n var newClass = [];\n var origin;\n\n if (classList) {\n forEach$2(cssClass, function(name) {\n element.classList.add(name);\n });\n\n return;\n }\n\n origin = getClass$2(element);\n\n if (origin) {\n cssClass = [].concat(origin.split(/\\s+/), cssClass);\n }\n\n forEach$2(cssClass, function(cls) {\n if (inArray$3(cls, newClass) < 0) {\n newClass.push(cls);\n }\n });\n\n setClassName$1(element, newClass);\n}\n\nvar addClass_1 = addClass;\n\n/**\n * @fileoverview Remove css class from element\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar forEachArray$1 = forEachArray_1;\nvar inArray$2 = inArray_1;\nvar getClass$1 = getClass_1;\nvar setClassName = _setClassName;\n\n/**\n * Remove css class from element\n * @param {(HTMLElement|SVGElement)} element - target element\n * @param {...string} cssClass - css classes to remove\n * @memberof module:domUtil\n */\nfunction removeClass(element) {\n var cssClass = Array.prototype.slice.call(arguments, 1);\n var classList = element.classList;\n var origin, newClass;\n\n if (classList) {\n forEachArray$1(cssClass, function(name) {\n classList.remove(name);\n });\n\n return;\n }\n\n origin = getClass$1(element).split(/\\s+/);\n newClass = [];\n forEachArray$1(origin, function(name) {\n if (inArray$2(name, cssClass) < 0) {\n newClass.push(name);\n }\n });\n\n setClassName(element, newClass);\n}\n\nvar removeClass_1 = removeClass;\n\n/**\n * @fileoverview Check whether the given variable is a number or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n/**\n * Check whether the given variable is a number or not.\n * If the given variable is a number, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is number?\n * @memberof module:type\n */\nfunction isNumber(obj) {\n return typeof obj === 'number' || obj instanceof Number;\n}\n\nvar isNumber_1 = isNumber;\n\n/**\n * @fileoverview Check whether the given variable is null or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n/**\n * Check whether the given variable is null or not.\n * If the given variable(arguments[0]) is null, returns true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is null?\n * @memberof module:type\n */\nfunction isNull$1(obj) {\n return obj === null;\n}\n\nvar isNull_1 = isNull$1;\n\n/**\n * @fileoverview Request image ping.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar forEachOwnProperties = forEachOwnProperties_1;\n\n/**\n * @module request\n */\n\n/**\n * Request image ping.\n * @param {String} url url for ping request\n * @param {Object} trackingInfo infos for make query string\n * @returns {HTMLElement}\n * @memberof module:request\n * @example\n * // ES6\n * import imagePing from 'tui-code-snippet/request/imagePing';\n * \n * // CommonJS\n * const imagePing = require('tui-code-snippet/request/imagePing');\n *\n * imagePing('https://www.google-analytics.com/collect', {\n * v: 1,\n * t: 'event',\n * tid: 'trackingid',\n * cid: 'cid',\n * dp: 'dp',\n * dh: 'dh'\n * });\n */\nfunction imagePing$1(url, trackingInfo) {\n var trackingElement = document.createElement('img');\n var queryString = '';\n forEachOwnProperties(trackingInfo, function(value, key) {\n queryString += '&' + key + '=' + value;\n });\n queryString = queryString.substring(1);\n\n trackingElement.src = url + '?' + queryString;\n\n trackingElement.style.display = 'none';\n document.body.appendChild(trackingElement);\n document.body.removeChild(trackingElement);\n\n return trackingElement;\n}\n\nvar imagePing_1 = imagePing$1;\n\n/**\n * @fileoverview Send hostname on DOMContentLoaded.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar isUndefined$1 = isUndefined_1;\nvar imagePing = imagePing_1;\n\nvar ms7days = 7 * 24 * 60 * 60 * 1000;\n\n/**\n * Check if the date has passed 7 days\n * @param {number} date - milliseconds\n * @returns {boolean}\n * @private\n */\nfunction isExpired(date) {\n var now = new Date().getTime();\n\n return now - date > ms7days;\n}\n\n/**\n * Send hostname on DOMContentLoaded.\n * To prevent hostname set tui.usageStatistics to false.\n * @param {string} appName - application name\n * @param {string} trackingId - GA tracking ID\n * @ignore\n */\nfunction sendHostname(appName, trackingId) {\n var url = 'https://www.google-analytics.com/collect';\n var hostname = location.hostname;\n var hitType = 'event';\n var eventCategory = 'use';\n var applicationKeyForStorage = 'TOAST UI ' + appName + ' for ' + hostname + ': Statistics';\n var date = window.localStorage.getItem(applicationKeyForStorage);\n\n // skip if the flag is defined and is set to false explicitly\n if (!isUndefined$1(window.tui) && window.tui.usageStatistics === false) {\n return;\n }\n\n // skip if not pass seven days old\n if (date && !isExpired(date)) {\n return;\n }\n\n window.localStorage.setItem(applicationKeyForStorage, new Date().getTime());\n\n setTimeout(function() {\n if (document.readyState === 'interactive' || document.readyState === 'complete') {\n imagePing(url, {\n v: 1,\n t: hitType,\n tid: trackingId,\n cid: hostname,\n dp: hostname,\n dh: appName,\n el: appName,\n ec: eventCategory\n });\n }\n }, 1000);\n}\n\nvar sendHostname_1 = sendHostname;\n\n/Mac/.test(navigator.platform);\nvar reSpaceMoreThanOne = /[\\u0020]+/g;\nvar reEscapeChars$1 = /[>(){}[\\]+-.!#|]/g;\nvar reEscapeHTML = /<([a-zA-Z_][a-zA-Z0-9\\-._]*)(\\s|[^\\\\>])*\\/?>|<(\\/)([a-zA-Z_][a-zA-Z0-9\\-._]*)\\s*\\/?>|<!--[^-]+-->|<([a-zA-Z_][a-zA-Z0-9\\-.:/]*)>/g;\nvar reEscapeBackSlash = /\\\\[!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\\\\]/g;\nvar reEscapePairedChars = /[*_~`]/g;\nvar reMdImageSyntax = /!\\[.*\\]\\(.*\\)/g;\nvar reEscapedCharInLinkSyntax = /[[\\]]/g;\nvar reEscapeBackSlashInSentence = /(?:^|[^\\\\])\\\\(?!\\\\)/g;\nvar XMLSPECIAL$1 = '[&<>\"]';\nvar reXmlSpecial$1 = new RegExp(XMLSPECIAL$1, 'g');\nfunction replaceUnsafeChar$1(char) {\n switch (char) {\n case '&':\n return '&amp;';\n case '<':\n return '&lt;';\n case '>':\n return '&gt;';\n case '\"':\n return '&quot;';\n default:\n return char;\n }\n}\nfunction escapeXml$1(text) {\n if (reXmlSpecial$1.test(text)) {\n return text.replace(reXmlSpecial$1, replaceUnsafeChar$1);\n }\n return text;\n}\nfunction sendHostName() {\n sendHostname_1('editor', 'UA-129966929-1');\n}\nfunction includes(arr, targetItem) {\n return arr.indexOf(targetItem) !== -1;\n}\nvar availableLinkAttributes = ['rel', 'target', 'hreflang', 'type'];\nvar reMarkdownTextToEscapeMap = {\n codeblock: /(^ {4}[^\\n]+\\n*)+/,\n thematicBreak: /^ *((\\* *){3,}|(- *){3,} *|(_ *){3,}) */,\n atxHeading: /^(#{1,6}) +[\\s\\S]+/,\n seTextheading: /^([^\\n]+)\\n *(=|-){2,} */,\n blockquote: /^( *>[^\\n]+.*)+/,\n list: /^ *(\\*+|-+|\\d+\\.) [\\s\\S]+/,\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +[\"(]([^\\n]+)[\")])? */,\n link: /!?\\[.*\\]\\(.*\\)/,\n reflink: /!?\\[.*\\]\\s*\\[([^\\]]*)\\]/,\n verticalBar: /\\u007C/,\n fencedCodeblock: /^((`|~){3,})/,\n};\nfunction sanitizeLinkAttribute(attribute) {\n if (!attribute) {\n return null;\n }\n var linkAttributes = {};\n availableLinkAttributes.forEach(function (key) {\n if (!isUndefined_1(attribute[key])) {\n linkAttributes[key] = attribute[key];\n }\n });\n return linkAttributes;\n}\nfunction repeat$1(text, count) {\n var result = '';\n for (var i = 0; i < count; i += 1) {\n result += text;\n }\n return result;\n}\nfunction isNeedEscapeText(text) {\n var needEscape = false;\n forEachOwnProperties_1(reMarkdownTextToEscapeMap, function (reMarkdownTextToEscape) {\n if (reMarkdownTextToEscape.test(text)) {\n needEscape = true;\n }\n return !needEscape;\n });\n return needEscape;\n}\nfunction escapeTextForLink(text) {\n var imageSyntaxRanges = [];\n var result = reMdImageSyntax.exec(text);\n while (result) {\n imageSyntaxRanges.push([result.index, result.index + result[0].length]);\n result = reMdImageSyntax.exec(text);\n }\n return text.replace(reEscapedCharInLinkSyntax, function (matched, offset) {\n var isDelimiter = imageSyntaxRanges.some(function (range) { return offset > range[0] && offset < range[1]; });\n return isDelimiter ? matched : \"\\\\\" + matched;\n });\n}\nfunction escape$1(text) {\n var aheadReplacer = function (matched) { return \"\\\\\" + matched; };\n var behindReplacer = function (matched) { return matched + \"\\\\\"; };\n var escapedText = text.replace(reSpaceMoreThanOne, ' ');\n if (reEscapeBackSlash.test(escapedText)) {\n escapedText = escapedText.replace(reEscapeBackSlash, aheadReplacer);\n }\n if (reEscapeBackSlashInSentence.test(escapedText)) {\n escapedText = escapedText.replace(reEscapeBackSlashInSentence, behindReplacer);\n }\n escapedText = escapedText.replace(reEscapePairedChars, aheadReplacer);\n if (reEscapeHTML.test(escapedText)) {\n escapedText = escapedText.replace(reEscapeHTML, aheadReplacer);\n }\n if (isNeedEscapeText(escapedText)) {\n escapedText = escapedText.replace(reEscapeChars$1, aheadReplacer);\n }\n return escapedText;\n}\nfunction quote(text) {\n var result;\n if (text.indexOf('\"') === -1) {\n result = '\"\"';\n }\n else {\n result = text.indexOf(\"'\") === -1 ? \"''\" : '()';\n }\n return result[0] + text + result[1];\n}\nfunction isNil(value) {\n return isNull_1(value) || isUndefined_1(value);\n}\nfunction shallowEqual(o1, o2) {\n if (o1 === null && o1 === o2) {\n return true;\n }\n if (typeof o1 !== 'object' || typeof o2 !== 'object' || isNil(o1) || isNil(o2)) {\n return o1 === o2;\n }\n for (var key in o1) {\n if (o1[key] !== o2[key]) {\n return false;\n }\n }\n for (var key in o2) {\n if (!(key in o1)) {\n return false;\n }\n }\n return true;\n}\nfunction last$1(arr) {\n return arr[arr.length - 1];\n}\nfunction between$1(value, min, max) {\n return value >= min && value <= max;\n}\nfunction isObject$1(obj) {\n return typeof obj === 'object' && obj !== null;\n}\nfunction deepMergedCopy(targetObj, obj) {\n var resultObj = __assign$1({}, targetObj);\n if (targetObj && obj) {\n Object.keys(obj).forEach(function (prop) {\n if (isObject$1(resultObj[prop])) {\n if (Array.isArray(obj[prop])) {\n resultObj[prop] = deepCopyArray(obj[prop]);\n }\n else if (resultObj.hasOwnProperty(prop)) {\n resultObj[prop] = deepMergedCopy(resultObj[prop], obj[prop]);\n }\n else {\n resultObj[prop] = deepCopy(obj[prop]);\n }\n }\n else {\n resultObj[prop] = obj[prop];\n }\n });\n }\n return resultObj;\n}\nfunction deepCopyArray(items) {\n return items.map(function (item) {\n if (isObject$1(item)) {\n return Array.isArray(item) ? deepCopyArray(item) : deepCopy(item);\n }\n return item;\n });\n}\nfunction deepCopy(obj) {\n var keys = Object.keys(obj);\n if (!keys.length) {\n return obj;\n }\n return keys.reduce(function (acc, prop) {\n if (isObject$1(obj[prop])) {\n acc[prop] = Array.isArray(obj[prop]) ? deepCopyArray(obj[prop]) : deepCopy(obj[prop]);\n }\n else {\n acc[prop] = obj[prop];\n }\n return acc;\n }, {});\n}\nfunction assign(targetObj, obj) {\n if (obj === void 0) { obj = {}; }\n Object.keys(obj).forEach(function (prop) {\n if (targetObj.hasOwnProperty(prop) && typeof targetObj[prop] === 'object') {\n if (Array.isArray(obj[prop])) {\n targetObj[prop] = obj[prop];\n }\n else {\n assign(targetObj[prop], obj[prop]);\n }\n }\n else {\n targetObj[prop] = obj[prop];\n }\n });\n return targetObj;\n}\nfunction getSortedNumPair(valueA, valueB) {\n return valueA > valueB ? [valueB, valueA] : [valueA, valueB];\n}\n\n/**\n * @fileoverview Transform the Array-like object to Array.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar forEachArray = forEachArray_1;\n\n/**\n * Transform the Array-like object to Array.\n * In low IE (below 8), Array.prototype.slice.call is not perfect. So, try-catch statement is used.\n * @param {*} arrayLike Array-like object\n * @returns {Array} Array\n * @memberof module:collection\n * @example\n * // ES6\n * import toArray from 'tui-code-snippet/collection/toArray'; \n * \n * // CommonJS\n * const toArray = require('tui-code-snippet/collection/toArray'); \n *\n * const arrayLike = {\n * 0: 'one',\n * 1: 'two',\n * 2: 'three',\n * 3: 'four',\n * length: 4\n * };\n * const result = toArray(arrayLike);\n *\n * alert(result instanceof Array); // true\n * alert(result); // one,two,three,four\n */\nfunction toArray$1(arrayLike) {\n var arr;\n try {\n arr = Array.prototype.slice.call(arrayLike);\n } catch (e) {\n arr = [];\n forEachArray(arrayLike, function(value) {\n arr.push(value);\n });\n }\n\n return arr;\n}\n\nvar toArray_1 = toArray$1;\n\nfunction createParagraph(schema, content) {\n var paragraph = schema.nodes.paragraph;\n if (!content) {\n return paragraph.createAndFill();\n }\n return paragraph.create(null, isString_1(content) ? schema.text(content) : content);\n}\nfunction createTextNode$1(schema, text, marks) {\n return schema.text(text, marks);\n}\nfunction createTextSelection(tr, from, to) {\n if (to === void 0) { to = from; }\n var contentSize = tr.doc.content.size;\n var size = contentSize > 0 ? contentSize - 1 : 1;\n return prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"TextSelection\"].create(tr.doc, Math.min(from, size), Math.min(to, size));\n}\nfunction addParagraph(tr, _a, schema) {\n var pos = _a.pos;\n tr.replaceWith(pos, pos, createParagraph(schema));\n return tr.setSelection(createTextSelection(tr, pos + 1));\n}\nfunction replaceTextNode(_a) {\n var state = _a.state, from = _a.from, startIndex = _a.startIndex, endIndex = _a.endIndex, createText = _a.createText;\n var tr = state.tr, doc = state.doc, schema = state.schema;\n for (var i = startIndex; i <= endIndex; i += 1) {\n var _b = doc.child(i), nodeSize = _b.nodeSize, textContent = _b.textContent, content = _b.content;\n var text = createText(textContent);\n var node = text ? createTextNode$1(schema, text) : prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty;\n var mappedFrom = tr.mapping.map(from);\n var mappedTo = mappedFrom + content.size;\n tr.replaceWith(mappedFrom, mappedTo, node);\n from += nodeSize;\n }\n return tr;\n}\nfunction splitAndExtendBlock(tr, pos, text, node) {\n var textLen = text.length;\n tr.split(pos)\n .delete(pos - textLen, pos)\n .insert(tr.mapping.map(pos), node)\n .setSelection(createTextSelection(tr, tr.mapping.map(pos) - textLen));\n}\n\nfunction getMdStartLine(mdNode) {\n return mdNode.sourcepos[0][0];\n}\nfunction getMdEndLine(mdNode) {\n return mdNode.sourcepos[1][0];\n}\nfunction getMdStartCh(mdNode) {\n return mdNode.sourcepos[0][1];\n}\nfunction getMdEndCh(mdNode) {\n return mdNode.sourcepos[1][1];\n}\nfunction isHTMLNode(mdNode) {\n var type = mdNode.type;\n return type === 'htmlBlock' || type === 'htmlInline';\n}\nfunction isStyledInlineNode(mdNode) {\n var type = mdNode.type;\n return (type === 'strike' ||\n type === 'strong' ||\n type === 'emph' ||\n type === 'code' ||\n type === 'link' ||\n type === 'image');\n}\nfunction isCodeBlockNode(mdNode) {\n return mdNode && mdNode.type === 'codeBlock';\n}\nfunction isListNode$1(mdNode) {\n return mdNode && (mdNode.type === 'item' || mdNode.type === 'list');\n}\nfunction isOrderedListNode(mdNode) {\n return isListNode$1(mdNode) && mdNode.listData.type === 'ordered';\n}\nfunction isBulletListNode(mdNode) {\n return isListNode$1(mdNode) && mdNode.listData.type !== 'ordered';\n}\nfunction isTableCellNode(mdNode) {\n return mdNode && (mdNode.type === 'tableCell' || mdNode.type === 'tableDelimCell');\n}\nfunction isInlineNode$1(mdNode) {\n switch (mdNode.type) {\n case 'code':\n case 'text':\n case 'emph':\n case 'strong':\n case 'strike':\n case 'link':\n case 'image':\n case 'htmlInline':\n case 'linebreak':\n case 'softbreak':\n case 'customInline':\n return true;\n default:\n return false;\n }\n}\nfunction findClosestNode(mdNode, condition, includeSelf) {\n if (includeSelf === void 0) { includeSelf = true; }\n mdNode = includeSelf ? mdNode : mdNode.parent;\n while (mdNode && mdNode.type !== 'document') {\n if (condition(mdNode)) {\n return mdNode;\n }\n mdNode = mdNode.parent;\n }\n return null;\n}\nfunction traverseParentNodes(mdNode, iteratee, includeSelf) {\n if (includeSelf === void 0) { includeSelf = true; }\n mdNode = includeSelf ? mdNode : mdNode.parent;\n while (mdNode && mdNode.type !== 'document') {\n iteratee(mdNode);\n mdNode = mdNode.parent;\n }\n}\nfunction addOffsetPos(originPos, offset) {\n return [originPos[0], originPos[1] + offset];\n}\nfunction setOffsetPos(originPos, newOffset) {\n return [originPos[0], newOffset];\n}\nfunction getInlineMarkdownText(mdNode) {\n var text = mdNode.firstChild.literal;\n switch (mdNode.type) {\n case 'emph':\n return \"*\" + text + \"*\";\n case 'strong':\n return \"**\" + text + \"**\";\n case 'strike':\n return \"~~\" + text + \"~~\";\n case 'code':\n return \"`\" + text + \"`\";\n case 'link':\n case 'image':\n /* eslint-disable no-case-declarations */\n var _a = mdNode, destination = _a.destination, title = _a.title;\n var delim = mdNode.type === 'link' ? '' : '!';\n return delim + \"[\" + text + \"](\" + destination + (title ? \" \\\"\" + title + \"\\\"\" : '') + \")\";\n default:\n return null;\n }\n}\nfunction isContainer$2(node) {\n switch (node.type) {\n case 'document':\n case 'blockQuote':\n case 'list':\n case 'item':\n case 'paragraph':\n case 'heading':\n case 'emph':\n case 'strong':\n case 'strike':\n case 'link':\n case 'image':\n case 'table':\n case 'tableHead':\n case 'tableBody':\n case 'tableRow':\n case 'tableCell':\n case 'tableDelimRow':\n case 'customInline':\n return true;\n default:\n return false;\n }\n}\nfunction getChildrenText$1(node) {\n var buffer = [];\n var walker = node.walker();\n var event = null;\n while ((event = walker.next())) {\n var childNode = event.node;\n if (childNode.type === 'text') {\n buffer.push(childNode.literal);\n }\n }\n return buffer.join('');\n}\n\nvar widgetRules = [];\nvar widgetRuleMap = {};\nvar reWidgetPrefix = /\\$\\$widget\\d+\\s/;\nfunction unwrapWidgetSyntax(text) {\n var index = text.search(reWidgetPrefix);\n if (index !== -1) {\n var rest = text.substring(index);\n var replaced = rest.replace(reWidgetPrefix, '').replace('$$', '');\n text = text.substring(0, index);\n text += unwrapWidgetSyntax(replaced);\n }\n return text;\n}\nfunction createWidgetContent(info, text) {\n return \"$$\" + info + \" \" + text + \"$$\";\n}\nfunction widgetToDOM(info, text) {\n var _a = widgetRuleMap[info], rule = _a.rule, toDOM = _a.toDOM;\n var matches = unwrapWidgetSyntax(text).match(rule);\n if (matches) {\n text = matches[0];\n }\n return toDOM(text);\n}\nfunction getWidgetRules() {\n return widgetRules;\n}\nfunction setWidgetRules(rules) {\n widgetRules = rules;\n widgetRules.forEach(function (rule, index) {\n widgetRuleMap[\"widget\" + index] = rule;\n });\n}\nfunction mergeNodes(nodes, text, schema, ruleIndex) {\n return nodes.concat(createNodesWithWidget(text, schema, ruleIndex));\n}\n/**\n * create nodes with plain text and replace text matched to the widget rules with the widget node\n * For example, in case the text and widget rules as below\n *\n * text: $test plain text #test\n * widget rules: [{ rule: /$.+/ }, { rule: /#.+/ }]\n *\n * The creating node process is recursive and is as follows.\n *\n * in first widget rule(/$.+/)\n * $test -> widget node\n * plain text -> match with next widget rule\n * #test -> match with next widget rule\n *\n * in second widget rule(/#.+/)\n * plain text -> text node(no rule for matching)\n * #test -> widget node\n */\nfunction createNodesWithWidget(text, schema, ruleIndex) {\n if (ruleIndex === void 0) { ruleIndex = 0; }\n var nodes = [];\n var rule = (widgetRules[ruleIndex] || {}).rule;\n var nextRuleIndex = ruleIndex + 1;\n text = unwrapWidgetSyntax(text);\n if (rule && rule.test(text)) {\n var index = void 0;\n while ((index = text.search(rule)) !== -1) {\n var prev = text.substring(0, index);\n // get widget node on first splitted text using next widget rule\n if (prev) {\n nodes = mergeNodes(nodes, prev, schema, nextRuleIndex);\n }\n // build widget node using current widget rule\n text = text.substring(index);\n var literal = text.match(rule)[0];\n var info = \"widget\" + ruleIndex;\n nodes.push(schema.nodes.widget.create({ info: info }, schema.text(createWidgetContent(info, literal))));\n text = text.substring(literal.length);\n }\n // get widget node on last splitted text using next widget rule\n if (text) {\n nodes = mergeNodes(nodes, text, schema, nextRuleIndex);\n }\n }\n else if (text) {\n nodes =\n ruleIndex < widgetRules.length - 1\n ? mergeNodes(nodes, text, schema, nextRuleIndex)\n : [schema.text(text)];\n }\n return nodes;\n}\nfunction getWidgetContent(widgetNode) {\n var event;\n var text = '';\n var walker = widgetNode.walker();\n while ((event = walker.next())) {\n var node = event.node, entering = event.entering;\n if (entering) {\n if (node !== widgetNode && node.type !== 'text') {\n text += getInlineMarkdownText(node);\n // skip the children\n walker.resumeAt(widgetNode, false);\n walker.next();\n }\n else if (node.type === 'text') {\n text += node.literal;\n }\n }\n }\n return text;\n}\n\nfunction getDefaultCommands() {\n return {\n deleteSelection: function () { return prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"deleteSelection\"]; },\n selectAll: function () { return prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"selectAll\"]; },\n undo: function () { return prosemirror_history__WEBPACK_IMPORTED_MODULE_7__[\"undo\"]; },\n redo: function () { return prosemirror_history__WEBPACK_IMPORTED_MODULE_7__[\"redo\"]; },\n };\n}\n\nfunction placeholder(options) {\n return new prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]({\n props: {\n decorations: function (state) {\n var doc = state.doc;\n if (options.text &&\n doc.childCount === 1 &&\n doc.firstChild.isTextblock &&\n doc.firstChild.content.size === 0) {\n var placeHolder = document.createElement('span');\n addClass_1(placeHolder, 'placeholder');\n if (options.className) {\n addClass_1(placeHolder, options.className);\n }\n placeHolder.textContent = options.text;\n return prosemirror_view__WEBPACK_IMPORTED_MODULE_1__[\"DecorationSet\"].create(doc, [prosemirror_view__WEBPACK_IMPORTED_MODULE_1__[\"Decoration\"].widget(1, placeHolder)]);\n }\n return null;\n },\n },\n });\n}\n\n/**\n * @fileoverview Check element has specific css class\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar inArray$1 = inArray_1;\nvar getClass = getClass_1;\n\n/**\n * Check element has specific css class\n * @param {(HTMLElement|SVGElement)} element - target element\n * @param {string} cssClass - css class\n * @returns {boolean}\n * @memberof module:domUtil\n */\nfunction hasClass(element, cssClass) {\n var origin;\n\n if (element.classList) {\n return element.classList.contains(cssClass);\n }\n\n origin = getClass(element).split(/\\s+/);\n\n return inArray$1(cssClass, origin) > -1;\n}\n\nvar hasClass_1 = hasClass;\n\n/**\n * @fileoverview Check element match selector\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar inArray = inArray_1;\nvar toArray = toArray_1;\n\nvar elProto = Element.prototype;\nvar matchSelector = elProto.matches ||\n elProto.webkitMatchesSelector ||\n elProto.mozMatchesSelector ||\n elProto.msMatchesSelector ||\n function(selector) {\n var doc = this.document || this.ownerDocument;\n\n return inArray(this, toArray(doc.querySelectorAll(selector))) > -1;\n };\n\n/**\n * Check element match selector\n * @param {HTMLElement} element - element to check\n * @param {string} selector - selector to check\n * @returns {boolean} is selector matched to element?\n * @memberof module:domUtil\n */\nfunction matches(element, selector) {\n return matchSelector.call(element, selector);\n}\n\nvar matches_1 = matches;\n\nvar TAG_NAME = '[A-Za-z][A-Za-z0-9-]*';\nvar ATTRIBUTE_NAME = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\nvar UNQUOTED_VALUE = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\nvar SINGLE_QUOTED_VALUE = \"'[^']*'\";\nvar DOUBLE_QUOTED_VALUE = '\"[^\"]*\"';\nvar ATTRIBUTE_VALUE = \"(?:\" + UNQUOTED_VALUE + \"|\" + SINGLE_QUOTED_VALUE + \"|\" + DOUBLE_QUOTED_VALUE + \")\";\nvar ATTRIBUTE_VALUE_SPEC = \"\" + '(?:\\\\s*=\\\\s*' + ATTRIBUTE_VALUE + \")\";\nvar ATTRIBUTE$1 = \"\" + '(?:\\\\s+' + ATTRIBUTE_NAME + ATTRIBUTE_VALUE_SPEC + \"?)\";\nvar OPEN_TAG = \"<(\" + TAG_NAME + \")(\" + ATTRIBUTE$1 + \")*\\\\s*/?>\";\nvar CLOSE_TAG = \"</(\" + TAG_NAME + \")\\\\s*[>]\";\nvar HTML_TAG = \"(?:\" + OPEN_TAG + \"|\" + CLOSE_TAG + \")\";\nvar reHTMLTag = new RegExp(\"^\" + HTML_TAG, 'i');\nvar reBR = /<br\\s*\\/*>/i;\nvar reHTMLComment = /<! ---->|<!--(?:-?[^>-])(?:-?[^-])*-->/;\nvar ALTERNATIVE_TAG_FOR_BR = '</p><p>';\n\nfunction isPositionInBox(style, offsetX, offsetY) {\n var left = parseInt(style.left, 10);\n var top = parseInt(style.top, 10);\n var width = parseInt(style.width, 10) + parseInt(style.paddingLeft, 10) + parseInt(style.paddingRight, 10);\n var height = parseInt(style.height, 10) + parseInt(style.paddingTop, 10) + parseInt(style.paddingBottom, 10);\n return offsetX >= left && offsetX <= left + width && offsetY >= top && offsetY <= top + height;\n}\nvar CLS_PREFIX = 'toastui-editor-';\nfunction cls() {\n var names = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n names[_i] = arguments[_i];\n }\n var result = [];\n for (var _a = 0, names_1 = names; _a < names_1.length; _a++) {\n var name_1 = names_1[_a];\n var className = void 0;\n if (Array.isArray(name_1)) {\n className = name_1[0] ? name_1[1] : null;\n }\n else {\n className = name_1;\n }\n if (className) {\n result.push(\"\" + CLS_PREFIX + className);\n }\n }\n return result.join(' ');\n}\nfunction clsWithMdPrefix() {\n var names = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n names[_i] = arguments[_i];\n }\n return names.map(function (className) { return CLS_PREFIX + \"md-\" + className; }).join(' ');\n}\nfunction isTextNode(node) {\n return (node === null || node === void 0 ? void 0 : node.nodeType) === Node.TEXT_NODE;\n}\nfunction isElemNode(node) {\n return node && node.nodeType === Node.ELEMENT_NODE;\n}\nfunction findNodes(element, selector) {\n var nodeList = toArray_1(element.querySelectorAll(selector));\n if (nodeList.length) {\n return nodeList;\n }\n return [];\n}\nfunction appendNodes(node, nodesToAppend) {\n nodesToAppend = isArray_1(nodesToAppend) ? toArray_1(nodesToAppend) : [nodesToAppend];\n nodesToAppend.forEach(function (nodeToAppend) {\n node.appendChild(nodeToAppend);\n });\n}\nfunction insertBeforeNode(insertedNode, node) {\n if (node.parentNode) {\n node.parentNode.insertBefore(insertedNode, node);\n }\n}\nfunction removeNode$1(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction unwrapNode(node) {\n var result = [];\n while (node.firstChild) {\n result.push(node.firstChild);\n if (node.parentNode) {\n node.parentNode.insertBefore(node.firstChild, node);\n }\n }\n removeNode$1(node);\n return result;\n}\nfunction toggleClass(element, className, state) {\n if (isUndefined_1(state)) {\n state = !hasClass_1(element, className);\n }\n var toggleFn = state ? addClass_1 : removeClass_1;\n toggleFn(element, className);\n}\nfunction createElementWith(contents, target) {\n var container = document.createElement('div');\n if (isString_1(contents)) {\n container.innerHTML = contents;\n }\n else {\n container.appendChild(contents);\n }\n var firstChild = container.firstChild;\n if (target) {\n target.appendChild(firstChild);\n }\n return firstChild;\n}\nfunction getOuterWidth(el) {\n var computed = window.getComputedStyle(el);\n return (['margin-left', 'margin-right'].reduce(function (acc, type) { return acc + parseInt(computed.getPropertyValue(type), 10); }, 0) + el.offsetWidth);\n}\nfunction closest(node, found) {\n var condition;\n if (isString_1(found)) {\n condition = function (target) { return matches_1(target, found); };\n }\n else {\n condition = function (target) { return target === found; };\n }\n while (node && node !== document) {\n if (isElemNode(node) && condition(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n}\nfunction getTotalOffset(el, root) {\n var offsetTop = 0;\n var offsetLeft = 0;\n while (el && el !== root) {\n var top_1 = el.offsetTop, left = el.offsetLeft, offsetParent = el.offsetParent;\n offsetTop += top_1;\n offsetLeft += left;\n if (offsetParent === root.offsetParent) {\n break;\n }\n el = el.offsetParent;\n }\n return { offsetTop: offsetTop, offsetLeft: offsetLeft };\n}\nfunction setAttributes(attributes, element) {\n Object.keys(attributes).forEach(function (attrName) {\n if (isNil(attributes[attrName])) {\n element.removeAttribute(attrName);\n }\n else {\n element.setAttribute(attrName, attributes[attrName]);\n }\n });\n}\nfunction replaceBRWithEmptyBlock(html) {\n // remove br in paragraph to compatible with markdown\n var replacedHTML = html.replace(/<p><br\\s*\\/*><\\/p>/gi, '<p></p>');\n var reHTMLTag = new RegExp(HTML_TAG, 'ig');\n var htmlTagMatched = replacedHTML.match(reHTMLTag);\n htmlTagMatched === null || htmlTagMatched === void 0 ? void 0 : htmlTagMatched.forEach(function (htmlTag, index) {\n if (reBR.test(htmlTag)) {\n var alternativeTag = ALTERNATIVE_TAG_FOR_BR;\n if (index) {\n var prevTag = htmlTagMatched[index - 1];\n var openTagMatched = prevTag.match(OPEN_TAG);\n if (openTagMatched && !/br/i.test(openTagMatched[1])) {\n var tagName = openTagMatched[1];\n alternativeTag = \"</\" + tagName + \"><\" + tagName + \">\";\n }\n }\n replacedHTML = replacedHTML.replace(reBR, alternativeTag);\n }\n });\n return replacedHTML;\n}\nfunction removeProseMirrorHackNodes(html) {\n var reProseMirrorImage = /<img class=\"ProseMirror-separator\" alt=\"\">/g;\n var reProseMirrorTrailingBreak = / class=\"ProseMirror-trailingBreak\"/g;\n var resultHTML = html;\n resultHTML = resultHTML.replace(reProseMirrorImage, '');\n resultHTML = resultHTML.replace(reProseMirrorTrailingBreak, '');\n return resultHTML;\n}\n\nvar pluginKey$1 = new prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"PluginKey\"]('widget');\nvar MARGIN = 5;\nvar PopupWidget = /** @class */ (function () {\n function PopupWidget(view, eventEmitter) {\n var _this = this;\n this.popup = null;\n this.removeWidget = function () {\n if (_this.popup) {\n _this.rootEl.removeChild(_this.popup);\n _this.popup = null;\n }\n };\n this.rootEl = view.dom.parentElement;\n this.eventEmitter = eventEmitter;\n this.eventEmitter.listen('blur', this.removeWidget);\n this.eventEmitter.listen('loadUI', function () {\n _this.rootEl = closest(view.dom.parentElement, \".\" + cls('defaultUI'));\n });\n this.eventEmitter.listen('removePopupWidget', this.removeWidget);\n }\n PopupWidget.prototype.update = function (view) {\n var widget = pluginKey$1.getState(view.state);\n this.removeWidget();\n if (widget) {\n var node = widget.node, style = widget.style;\n var _a = view.coordsAtPos(widget.pos), top_1 = _a.top, left = _a.left, bottom = _a.bottom;\n var height = bottom - top_1;\n var rect = this.rootEl.getBoundingClientRect();\n var relTopPos = top_1 - rect.top;\n css_1(node, { opacity: '0' });\n this.rootEl.appendChild(node);\n css_1(node, {\n position: 'absolute',\n left: left - rect.left + MARGIN + \"px\",\n top: (style === 'bottom' ? relTopPos + height - MARGIN : relTopPos - height) + \"px\",\n opacity: '1',\n });\n this.popup = node;\n view.focus();\n }\n };\n PopupWidget.prototype.destroy = function () {\n this.eventEmitter.removeEventHandler('blur', this.removeWidget);\n };\n return PopupWidget;\n}());\nfunction addWidget(eventEmitter) {\n return new prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]({\n key: pluginKey$1,\n state: {\n init: function () {\n return null;\n },\n apply: function (tr) {\n return tr.getMeta('widget');\n },\n },\n view: function (editorView) {\n return new PopupWidget(editorView, eventEmitter);\n },\n });\n}\n\nfunction addDefaultImageBlobHook(eventEmitter) {\n eventEmitter.listen('addImageBlobHook', function (blob, callback) {\n var reader = new FileReader();\n reader.onload = function (_a) {\n var target = _a.target;\n return callback(target.result);\n };\n reader.readAsDataURL(blob);\n });\n}\nfunction emitImageBlobHook(eventEmitter, blob, type) {\n var hook = function (imageUrl, altText) {\n eventEmitter.emit('command', 'addImage', {\n imageUrl: imageUrl,\n altText: altText || blob.name || 'image',\n });\n };\n eventEmitter.emit('addImageBlobHook', blob, hook, type);\n}\nfunction pasteImageOnly(items) {\n var images = toArray_1(items).filter(function (_a) {\n var type = _a.type;\n return type.indexOf('image') !== -1;\n });\n if (images.length === 1) {\n var item = images[0];\n if (item) {\n return item.getAsFile();\n }\n }\n return null;\n}\n\nfunction dropImage(_a) {\n var eventEmitter = _a.eventEmitter;\n return new prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]({\n props: {\n handleDOMEvents: {\n drop: function (_, ev) {\n var _a;\n var items = (_a = ev.dataTransfer) === null || _a === void 0 ? void 0 : _a.files;\n if (items) {\n forEachArray_1(items, function (item) {\n if (item.type.indexOf('image') !== -1) {\n ev.preventDefault();\n ev.stopPropagation();\n emitImageBlobHook(eventEmitter, item, ev.type);\n return false;\n }\n return true;\n });\n }\n return true;\n },\n },\n },\n });\n}\n\nvar Node$2 = /** @class */ (function () {\n function Node() {\n }\n Object.defineProperty(Node.prototype, \"type\", {\n get: function () {\n return 'node';\n },\n enumerable: false,\n configurable: true\n });\n Node.prototype.setContext = function (context) {\n this.context = context;\n };\n return Node;\n}());\n\nfunction widgetNodeView(pmNode) {\n var dom = document.createElement('span');\n var node = widgetToDOM(pmNode.attrs.info, pmNode.textContent);\n dom.className = 'tui-widget';\n dom.appendChild(node);\n return { dom: dom };\n}\nfunction isWidgetNode(pmNode) {\n return pmNode.type.name === 'widget';\n}\nvar Widget = /** @class */ (function (_super) {\n __extends$1(Widget, _super);\n function Widget() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Widget.prototype, \"name\", {\n get: function () {\n return 'widget';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Widget.prototype, \"schema\", {\n get: function () {\n return {\n attrs: {\n info: { default: null },\n },\n group: 'inline',\n inline: true,\n content: 'text*',\n selectable: false,\n atom: true,\n toDOM: function () {\n return ['span', { class: 'tui-widget' }, 0];\n },\n parseDOM: [\n {\n tag: 'span.tui-widget',\n getAttrs: function (dom) {\n var text = dom.textContent;\n var _a = text.match(/\\$\\$(widget\\d+)/), info = _a[1];\n return { info: info };\n },\n },\n ],\n };\n },\n enumerable: false,\n configurable: true\n });\n return Widget;\n}(Node$2));\n\nvar EditorBase = /** @class */ (function () {\n function EditorBase(eventEmitter) {\n this.timer = null;\n this.el = document.createElement('div');\n this.el.className = 'toastui-editor';\n this.eventEmitter = eventEmitter;\n this.placeholder = { text: '' };\n }\n EditorBase.prototype.createState = function () {\n return prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"EditorState\"].create({\n schema: this.schema,\n plugins: this.createPlugins(),\n });\n };\n EditorBase.prototype.initEvent = function () {\n var _a = this, eventEmitter = _a.eventEmitter, view = _a.view, editorType = _a.editorType;\n view.dom.addEventListener('focus', function () { return eventEmitter.emit('focus', editorType); });\n view.dom.addEventListener('blur', function () { return eventEmitter.emit('blur', editorType); });\n };\n EditorBase.prototype.emitChangeEvent = function (tr) {\n this.eventEmitter.emit('caretChange', this.editorType);\n if (tr.docChanged) {\n this.eventEmitter.emit('change', this.editorType);\n }\n };\n Object.defineProperty(EditorBase.prototype, \"defaultPlugins\", {\n get: function () {\n var rules = this.createInputRules();\n var plugins = __spreadArray$1(__spreadArray$1([], this.keymaps), [\n Object(prosemirror_keymap__WEBPACK_IMPORTED_MODULE_4__[\"keymap\"])(__assign$1({ 'Shift-Enter': prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"baseKeymap\"].Enter }, prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"baseKeymap\"])),\n Object(prosemirror_history__WEBPACK_IMPORTED_MODULE_7__[\"history\"])(),\n placeholder(this.placeholder),\n addWidget(this.eventEmitter),\n dropImage(this.context),\n ]);\n return rules ? plugins.concat(rules) : plugins;\n },\n enumerable: false,\n configurable: true\n });\n EditorBase.prototype.createInputRules = function () {\n var widgetRules = getWidgetRules();\n var rules = widgetRules.map(function (_a) {\n var rule = _a.rule;\n return new prosemirror_inputrules__WEBPACK_IMPORTED_MODULE_6__[\"InputRule\"](rule, function (state, match, start, end) {\n var schema = state.schema, tr = state.tr, doc = state.doc;\n var allMatched = match.input.match(new RegExp(rule, 'g'));\n var pos = doc.resolve(start);\n var parent = pos.parent;\n var count = 0;\n if (isWidgetNode(parent)) {\n parent = pos.node(pos.depth - 1);\n }\n parent.forEach(function (child) { return isWidgetNode(child) && (count += 1); });\n // replace the content only if the count of matched rules in whole text is greater than current widget node count\n if (allMatched.length > count) {\n var content = last$1(allMatched);\n var nodes = createNodesWithWidget(content, schema);\n // adjust start position based on widget content\n return tr.replaceWith(end - content.length + 1, end, nodes);\n }\n return null;\n });\n });\n return rules.length ? Object(prosemirror_inputrules__WEBPACK_IMPORTED_MODULE_6__[\"inputRules\"])({ rules: rules }) : null;\n };\n EditorBase.prototype.clearTimer = function () {\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n };\n EditorBase.prototype.createSchema = function () {\n return new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Schema\"]({\n nodes: this.specs.nodes,\n marks: this.specs.marks,\n });\n };\n EditorBase.prototype.createKeymaps = function (useCommandShortcut) {\n var _a = getDefaultCommands(), undo = _a.undo, redo = _a.redo;\n var allKeymaps = this.specs.keymaps(useCommandShortcut);\n var historyKeymap = {\n 'Mod-z': undo(),\n 'Shift-Mod-z': redo(),\n };\n return useCommandShortcut ? allKeymaps.concat(Object(prosemirror_keymap__WEBPACK_IMPORTED_MODULE_4__[\"keymap\"])(historyKeymap)) : allKeymaps;\n };\n EditorBase.prototype.createCommands = function () {\n return this.specs.commands(this.view);\n };\n EditorBase.prototype.createPluginProps = function () {\n var _this = this;\n return this.extraPlugins.map(function (plugin) { return plugin(_this.eventEmitter); });\n };\n EditorBase.prototype.focus = function () {\n var _this = this;\n this.clearTimer();\n // prevent the error for IE11\n this.timer = setTimeout(function () {\n _this.view.focus();\n _this.view.dispatch(_this.view.state.tr.scrollIntoView());\n });\n };\n EditorBase.prototype.blur = function () {\n this.view.dom.blur();\n };\n EditorBase.prototype.destroy = function () {\n var _this = this;\n this.clearTimer();\n this.view.destroy();\n Object.keys(this).forEach(function (prop) {\n delete _this[prop];\n });\n };\n EditorBase.prototype.moveCursorToStart = function (focus) {\n var tr = this.view.state.tr;\n this.view.dispatch(tr.setSelection(createTextSelection(tr, 1)).scrollIntoView());\n if (focus) {\n this.focus();\n }\n };\n EditorBase.prototype.moveCursorToEnd = function (focus) {\n var tr = this.view.state.tr;\n this.view.dispatch(tr.setSelection(createTextSelection(tr, tr.doc.content.size - 1)).scrollIntoView());\n if (focus) {\n this.focus();\n }\n };\n EditorBase.prototype.setScrollTop = function (top) {\n this.view.dom.scrollTop = top;\n };\n EditorBase.prototype.getScrollTop = function () {\n return this.view.dom.scrollTop;\n };\n EditorBase.prototype.setPlaceholder = function (text) {\n this.placeholder.text = text;\n this.view.dispatch(this.view.state.tr.scrollIntoView());\n };\n EditorBase.prototype.setHeight = function (height) {\n css_1(this.el, { height: height + \"px\" });\n };\n EditorBase.prototype.setMinHeight = function (minHeight) {\n css_1(this.el, { minHeight: minHeight + \"px\" });\n };\n EditorBase.prototype.getElement = function () {\n return this.el;\n };\n return EditorBase;\n}());\n\n/**\n * @fileoverview Check whether the given variable is a function or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n/**\n * Check whether the given variable is a function or not.\n * If the given variable is a function, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is function?\n * @memberof module:type\n */\nfunction isFunction(obj) {\n return obj instanceof Function;\n}\n\nvar isFunction_1 = isFunction;\n\nvar defaultCommandShortcuts = [\n 'Enter',\n 'Shift-Enter',\n 'Mod-Enter',\n 'Tab',\n 'Shift-Tab',\n 'Delete',\n 'Backspace',\n 'Mod-Delete',\n 'Mod-Backspace',\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'Mod-d',\n 'Mod-D',\n 'Alt-ArrowUp',\n 'Alt-ArrowDown',\n];\nfunction execCommand(view, command, payload) {\n view.focus();\n return command(payload)(view.state, view.dispatch, view);\n}\nvar SpecManager = /** @class */ (function () {\n function SpecManager(specs) {\n this.specs = specs;\n }\n Object.defineProperty(SpecManager.prototype, \"nodes\", {\n get: function () {\n return this.specs\n .filter(function (spec) { return spec.type === 'node'; })\n .reduce(function (nodes, _a) {\n var _b;\n var name = _a.name, schema = _a.schema;\n return __assign$1(__assign$1({}, nodes), (_b = {}, _b[name] = schema, _b));\n }, {});\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SpecManager.prototype, \"marks\", {\n get: function () {\n return this.specs\n .filter(function (spec) { return spec.type === 'mark'; })\n .reduce(function (marks, _a) {\n var _b;\n var name = _a.name, schema = _a.schema;\n return __assign$1(__assign$1({}, marks), (_b = {}, _b[name] = schema, _b));\n }, {});\n },\n enumerable: false,\n configurable: true\n });\n SpecManager.prototype.commands = function (view, addedCommands) {\n var specCommands = this.specs\n .filter(function (_a) {\n var commands = _a.commands;\n return commands;\n })\n .reduce(function (allCommands, spec) {\n var commands = {};\n var specCommand = spec.commands();\n if (isFunction_1(specCommand)) {\n commands[spec.name] = function (payload) { return execCommand(view, specCommand, payload); };\n }\n else {\n Object.keys(specCommand).forEach(function (name) {\n commands[name] = function (payload) { return execCommand(view, specCommand[name], payload); };\n });\n }\n return __assign$1(__assign$1({}, allCommands), commands);\n }, {});\n var defaultCommands = getDefaultCommands();\n Object.keys(defaultCommands).forEach(function (name) {\n specCommands[name] = function (payload) { return execCommand(view, defaultCommands[name], payload); };\n });\n if (addedCommands) {\n Object.keys(addedCommands).forEach(function (name) {\n specCommands[name] = function (payload) { return execCommand(view, addedCommands[name], payload); };\n });\n }\n return specCommands;\n };\n SpecManager.prototype.keymaps = function (useCommandShortcut) {\n var specKeymaps = this.specs.filter(function (spec) { return spec.keymaps; }).map(function (spec) { return spec.keymaps(); });\n return specKeymaps.map(function (keys) {\n if (!useCommandShortcut) {\n Object.keys(keys).forEach(function (key) {\n if (!includes(defaultCommandShortcuts, key)) {\n delete keys[key];\n }\n });\n }\n return Object(prosemirror_keymap__WEBPACK_IMPORTED_MODULE_4__[\"keymap\"])(keys);\n });\n };\n SpecManager.prototype.setContext = function (context) {\n this.specs.forEach(function (spec) {\n spec.setContext(context);\n });\n };\n return SpecManager;\n}());\n\nfunction resolveSelectionPos(selection) {\n var from = selection.from, to = selection.to;\n if (selection instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"AllSelection\"]) {\n return [from + 1, to - 1];\n }\n return [from, to];\n}\nfunction getMdLine(resolvedPos) {\n return resolvedPos.index(0) + 1;\n}\nfunction getWidgetNodePos(node, chPos, direction) {\n if (direction === void 0) { direction = 1; }\n var additionalPos = 0;\n node.forEach(function (child, pos) {\n // add or subtract widget node tag\n if (isWidgetNode(child) && pos + 2 < chPos) {\n additionalPos += 2 * direction;\n }\n });\n return additionalPos;\n}\nfunction getEditorToMdPos(doc, from, to) {\n if (to === void 0) { to = from; }\n var collapsed = from === to;\n var startResolvedPos = doc.resolve(from);\n var startLine = getMdLine(startResolvedPos);\n var endLine = startLine;\n var startOffset = startResolvedPos.start(1);\n var endOffset = startOffset;\n if (!collapsed) {\n // prevent the end offset from pointing to the root document position\n var endResolvedPos = doc.resolve(to === doc.content.size ? to - 1 : to);\n endOffset = endResolvedPos.start(1);\n endLine = getMdLine(endResolvedPos);\n // To resolve the end offset excluding document tag size\n if (endResolvedPos.pos === doc.content.size) {\n to = doc.content.size - 2;\n }\n }\n var startCh = Math.max(from - startOffset + 1, 1);\n var endCh = Math.max(to - endOffset + 1, 1);\n return [\n [startLine, startCh + getWidgetNodePos(doc.child(startLine - 1), startCh, -1)],\n [endLine, endCh + getWidgetNodePos(doc.child(endLine - 1), endCh, -1)],\n ];\n}\nfunction getStartPosListPerLine(doc, endIndex) {\n var startPosListPerLine = [];\n for (var i = 0, pos = 0; i < endIndex; i += 1) {\n var child = doc.child(i);\n startPosListPerLine[i] = pos;\n pos += child.nodeSize;\n }\n return startPosListPerLine;\n}\nfunction getMdToEditorPos(doc, startPos, endPos) {\n var startPosListPerLine = getStartPosListPerLine(doc, endPos[0]);\n var startIndex = startPos[0] - 1;\n var endIndex = endPos[0] - 1;\n var startNode = doc.child(startIndex);\n var endNode = doc.child(endIndex);\n // calculate the position corresponding to the line\n var from = startPosListPerLine[startIndex];\n var to = startPosListPerLine[endIndex];\n // calculate the position corresponding to the character offset of the line\n from += startPos[1] + getWidgetNodePos(startNode, startPos[1] - 1);\n to += endPos[1] + getWidgetNodePos(endNode, endPos[1] - 1);\n return [from, Math.min(to, doc.content.size)];\n}\nfunction getRangeInfo(selection) {\n var $from = selection.$from, $to = selection.$to;\n var from = selection.from, to = selection.to;\n var doc = $from.doc;\n if (selection instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"AllSelection\"]) {\n $from = doc.resolve(from + 1);\n $to = doc.resolve(to - 1);\n }\n if ($from.depth === 0) {\n $from = doc.resolve(from - 1);\n $to = $from;\n }\n return {\n startFromOffset: $from.start(1),\n endFromOffset: $to.start(1),\n startToOffset: $from.end(1),\n endToOffset: $to.end(1),\n startIndex: $from.index(0),\n endIndex: $to.index(0),\n from: $from.pos,\n to: $to.pos,\n };\n}\nfunction getNodeContentOffsetRange(doc, targetIndex) {\n var startOffset = 1;\n var endOffset = 1;\n for (var i = 0, offset = 0; i < doc.childCount; i += 1) {\n var nodeSize = doc.child(i).nodeSize;\n // calculate content start, end offset(not node offset)\n startOffset = offset + 1;\n endOffset = offset + nodeSize - 1;\n if (i === targetIndex) {\n break;\n }\n offset += nodeSize;\n }\n return { startOffset: startOffset, endOffset: endOffset };\n}\n\nvar HEADING = 'heading';\nvar BLOCK_QUOTE = 'blockQuote';\nvar LIST_ITEM = 'listItem';\nvar TABLE = 'table';\nvar TABLE_CELL = 'tableCell';\nvar CODE_BLOCK = 'codeBlock';\nvar THEMATIC_BREAK = 'thematicBreak';\nvar LINK = 'link';\nvar CODE = 'code';\nvar META = 'meta';\nvar DELIM = 'delimiter';\nvar TASK_DELIM = 'taskDelimiter';\nvar TEXT = 'markedText';\nvar HTML = 'html';\nvar CUSTOM_BLOCK = 'customBlock';\nvar delimSize = {\n strong: 2,\n emph: 1,\n strike: 2,\n};\nfunction markInfo(start, end, type, attrs) {\n return { start: start, end: end, spec: { type: type, attrs: attrs } };\n}\nfunction heading$1(_a, start, end) {\n var level = _a.level, headingType = _a.headingType;\n var marks = [markInfo(start, end, HEADING, { level: level })];\n if (headingType === 'atx') {\n marks.push(markInfo(start, addOffsetPos(start, level), DELIM));\n }\n else {\n marks.push(markInfo(setOffsetPos(end, 0), end, HEADING, { seText: true }));\n }\n return marks;\n}\nfunction emphasisAndStrikethrough(_a, start, end) {\n var type = _a.type;\n var startDelimPos = addOffsetPos(start, delimSize[type]);\n var endDelimPos = addOffsetPos(end, -delimSize[type]);\n return [\n markInfo(startDelimPos, endDelimPos, type),\n markInfo(start, startDelimPos, DELIM),\n markInfo(endDelimPos, end, DELIM),\n ];\n}\nfunction markLink(start, end, linkTextStart, lastChildCh) {\n return [\n markInfo(start, end, LINK),\n markInfo(setOffsetPos(start, linkTextStart[1] + 1), setOffsetPos(end, lastChildCh), LINK, {\n desc: true,\n }),\n markInfo(setOffsetPos(end, lastChildCh + 2), addOffsetPos(end, -1), LINK, { url: true }),\n ];\n}\nfunction image$1(_a, start, end) {\n var lastChild = _a.lastChild;\n var lastChildCh = lastChild ? getMdEndCh(lastChild) + 1 : 3; // 3: length of '![]'\n var linkTextEnd = addOffsetPos(start, 1);\n return __spreadArray$1([markInfo(start, linkTextEnd, META)], markLink(start, end, linkTextEnd, lastChildCh));\n}\nfunction link(_a, start, end) {\n var lastChild = _a.lastChild, extendedAutolink = _a.extendedAutolink;\n var lastChildCh = lastChild ? getMdEndCh(lastChild) + 1 : 2; // 2: length of '[]'\n return extendedAutolink\n ? [markInfo(start, end, LINK, { desc: true })]\n : markLink(start, end, start, lastChildCh);\n}\nfunction code(_a, start, end) {\n var tickCount = _a.tickCount;\n var openDelimEnd = addOffsetPos(start, tickCount);\n var closeDelimStart = addOffsetPos(end, -tickCount);\n return [\n markInfo(start, end, CODE),\n markInfo(start, openDelimEnd, CODE, { start: true }),\n markInfo(openDelimEnd, closeDelimStart, CODE, { marked: true }),\n markInfo(closeDelimStart, end, CODE, { end: true }),\n ];\n}\nfunction lineBackground(parent, start, end, prefix) {\n var defaultBackground = {\n start: start,\n end: end,\n spec: {\n attrs: { className: prefix + \"-line-background\", codeStart: start[0], codeEnd: end[0] },\n },\n lineBackground: true,\n };\n return parent.type !== 'item' && parent.type !== 'blockQuote'\n ? [\n __assign$1(__assign$1({}, defaultBackground), { end: start, spec: { attrs: { className: prefix + \"-line-background start\" } } }),\n __assign$1(__assign$1({}, defaultBackground), { start: [Math.min(start[0] + 1, end[0]), start[1]] }),\n ]\n : null;\n}\nfunction codeBlock$1(node, start, end, endLine) {\n var fenceOffset = node.fenceOffset, fenceLength = node.fenceLength, fenceChar = node.fenceChar, info = node.info, infoPadding = node.infoPadding, parent = node.parent;\n var fenceEnd = fenceOffset + fenceLength;\n var marks = [markInfo(setOffsetPos(start, 1), end, CODE_BLOCK)];\n if (fenceChar) {\n marks.push(markInfo(start, addOffsetPos(start, fenceEnd), DELIM));\n }\n if (info) {\n marks.push(markInfo(addOffsetPos(start, fenceLength), addOffsetPos(start, fenceLength + infoPadding + info.length), META));\n }\n var codeBlockEnd = \"^(\\\\s{0,4})(\" + fenceChar + \"{\" + fenceLength + \",})\";\n var reCodeBlockEnd = new RegExp(codeBlockEnd);\n if (reCodeBlockEnd.test(endLine)) {\n marks.push(markInfo(setOffsetPos(end, 1), end, DELIM));\n }\n var lineBackgroundMarkInfo = lineBackground(parent, start, end, 'code-block');\n return lineBackgroundMarkInfo ? marks.concat(lineBackgroundMarkInfo) : marks;\n}\nfunction customBlock$2(node, start, end) {\n var _a = node, offset = _a.offset, syntaxLength = _a.syntaxLength, info = _a.info, parent = _a.parent;\n var syntaxEnd = offset + syntaxLength;\n var marks = [markInfo(setOffsetPos(start, 1), end, CUSTOM_BLOCK)];\n marks.push(markInfo(start, addOffsetPos(start, syntaxEnd), DELIM));\n if (info) {\n marks.push(markInfo(addOffsetPos(start, syntaxEnd), addOffsetPos(start, syntaxLength + info.length), META));\n }\n marks.push(markInfo(setOffsetPos(end, 1), end, DELIM));\n var lineBackgroundMarkInfo = lineBackground(parent, start, end, 'custom-block');\n return lineBackgroundMarkInfo ? marks.concat(lineBackgroundMarkInfo) : marks;\n}\nfunction markListItemChildren(node, markType) {\n var marks = [];\n while (node) {\n var type = node.type;\n if (type === 'paragraph' || type === 'codeBlock') {\n marks.push(markInfo([getMdStartLine(node), getMdStartCh(node) - 1], [getMdEndLine(node), getMdEndCh(node) + 1], markType));\n }\n node = node.next;\n }\n return marks;\n}\nfunction markParagraphInBlockQuote(node) {\n var marks = [];\n while (node) {\n marks.push(markInfo([getMdStartLine(node), getMdStartCh(node)], [getMdEndLine(node), getMdEndCh(node) + 1], TEXT));\n node = node.next;\n }\n return marks;\n}\nfunction blockQuote$2(node, start, end) {\n var marks = node.parent && node.parent.type !== 'blockQuote' ? [markInfo(start, end, BLOCK_QUOTE)] : [];\n if (node.firstChild) {\n var childMarks = [];\n if (node.firstChild.type === 'paragraph') {\n childMarks = markParagraphInBlockQuote(node.firstChild.firstChild);\n }\n else if (node.firstChild.type === 'list') {\n childMarks = markListItemChildren(node.firstChild, TEXT);\n }\n marks = __spreadArray$1(__spreadArray$1([], marks), childMarks);\n }\n return marks;\n}\nfunction getSpecOfListItemStyle(node) {\n var depth = 0;\n while (node.parent.parent && node.parent.parent.type === 'item') {\n node = node.parent.parent;\n depth += 1;\n }\n var attrs = [{ odd: true }, { even: true }][depth % 2];\n return [LIST_ITEM, __assign$1(__assign$1({}, attrs), { listStyle: true })];\n}\nfunction item$1(node, start) {\n var _a = node.listData, padding = _a.padding, task = _a.task;\n var spec = getSpecOfListItemStyle(node);\n var marks = [markInfo.apply(void 0, __spreadArray$1([start, addOffsetPos(start, padding)], spec))];\n if (task) {\n marks.push(markInfo(addOffsetPos(start, padding), addOffsetPos(start, padding + 3), TASK_DELIM));\n marks.push(markInfo(addOffsetPos(start, padding + 1), addOffsetPos(start, padding + 2), META));\n }\n return marks.concat(markListItemChildren(node.firstChild, TEXT));\n}\nvar markNodeFuncMap = {\n heading: heading$1,\n strong: emphasisAndStrikethrough,\n emph: emphasisAndStrikethrough,\n strike: emphasisAndStrikethrough,\n link: link,\n image: image$1,\n code: code,\n codeBlock: codeBlock$1,\n blockQuote: blockQuote$2,\n item: item$1,\n customBlock: customBlock$2,\n};\nvar simpleMarkClassNameMap = {\n thematicBreak: THEMATIC_BREAK,\n table: TABLE,\n tableCell: TABLE_CELL,\n htmlInline: HTML,\n};\nfunction getMarkInfo(node, start, end, endLine) {\n var type = node.type;\n if (isFunction_1(markNodeFuncMap[type])) {\n // @ts-ignore\n return markNodeFuncMap[type](node, start, end, endLine);\n }\n if (simpleMarkClassNameMap[type]) {\n return [markInfo(start, end, simpleMarkClassNameMap[type])];\n }\n return null;\n}\n\nvar removingBackgroundIndexMap = {};\nfunction syntaxHighlight(_a) {\n var schema = _a.schema, toastMark = _a.toastMark;\n return new prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]({\n appendTransaction: function (transactions, _, newState) {\n var tr = transactions[0];\n var newTr = newState.tr;\n if (tr.docChanged) {\n var markInfo_1 = [];\n var editResult = tr.getMeta('editResult');\n editResult.forEach(function (result) {\n var nodes = result.nodes, removedNodeRange = result.removedNodeRange;\n if (nodes.length) {\n markInfo_1 = markInfo_1.concat(getMarkForRemoving(newTr, nodes));\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var parent_1 = nodes_1[_i];\n var walker = parent_1.walker();\n var event_1 = walker.next();\n while (event_1) {\n var node = event_1.node, entering = event_1.entering;\n if (entering) {\n markInfo_1 = markInfo_1.concat(getMarkForAdding(node, toastMark));\n }\n event_1 = walker.next();\n }\n }\n }\n else if (removedNodeRange) {\n var maxIndex = newTr.doc.childCount - 1;\n var _a = removedNodeRange.line, startLine = _a[0], endLine = _a[1];\n var startIndex = Math.min(startLine, maxIndex);\n var endIndex = Math.min(endLine, maxIndex);\n // cache the index to remove code block, custom block background when there are no adding nodes\n for (var i = startIndex; i <= endIndex; i += 1) {\n removingBackgroundIndexMap[i] = true;\n }\n }\n });\n appendMarkTr(newTr, schema, markInfo_1);\n }\n return newTr.setMeta('widget', tr.getMeta('widget'));\n },\n });\n}\nfunction isDifferentBlock(doc, index, attrs) {\n return Object.keys(attrs).some(function (name) { return attrs[name] !== doc.child(index).attrs[name]; });\n}\nfunction addLineBackground(tr, doc, paragraph, blockPosInfo, attrs) {\n if (attrs === void 0) { attrs = {}; }\n var startIndex = blockPosInfo.startIndex, endIndex = blockPosInfo.endIndex, from = blockPosInfo.from, to = blockPosInfo.to;\n var shouldChangeBlockType = false;\n for (var i = startIndex; i <= endIndex; i += 1) {\n // prevent to remove background of the node that need to have background\n delete removingBackgroundIndexMap[i];\n shouldChangeBlockType = isDifferentBlock(doc, i, attrs);\n }\n if (shouldChangeBlockType) {\n tr.setBlockType(from, to, paragraph, attrs);\n }\n}\nfunction appendMarkTr(tr, schema, marks) {\n var doc = tr.doc;\n var paragraph = schema.nodes.paragraph;\n // get start position per line for lazy calculation\n var startPosListPerLine = getStartPosListPerLine(doc, doc.childCount);\n marks.forEach(function (_a) {\n var start = _a.start, end = _a.end, spec = _a.spec, lineBackground = _a.lineBackground;\n var startIndex = Math.min(start[0], doc.childCount) - 1;\n var endIndex = Math.min(end[0], doc.childCount) - 1;\n var startNode = doc.child(startIndex);\n var endNode = doc.child(endIndex);\n // calculate the position corresponding to the line\n var from = startPosListPerLine[startIndex];\n var to = startPosListPerLine[endIndex];\n // calculate the position corresponding to the character offset of the line\n from += start[1] + getWidgetNodePos(startNode, start[1] - 1);\n to += end[1] + getWidgetNodePos(endNode, end[1] - 1);\n if (spec) {\n if (lineBackground) {\n var posInfo = { from: from, to: to, startIndex: startIndex, endIndex: endIndex };\n addLineBackground(tr, doc, paragraph, posInfo, spec.attrs);\n }\n else {\n tr.addMark(from, to, schema.mark(spec.type, spec.attrs));\n }\n }\n else {\n tr.removeMark(from, to);\n }\n });\n removeBlockBackground(tr, startPosListPerLine, paragraph);\n}\nfunction removeBlockBackground(tr, startPosListPerLine, paragraph) {\n Object.keys(removingBackgroundIndexMap).forEach(function (index) {\n var startIndex = Number(index);\n // get the end position of the current line with the next node start position.\n var endIndex = Math.min(Number(index) + 1, tr.doc.childCount - 1);\n var from = startPosListPerLine[startIndex];\n // subtract '1' for getting end position of the line\n var to = startPosListPerLine[endIndex] - 1;\n if (startIndex === endIndex) {\n to += 2;\n }\n tr.setBlockType(from, to, paragraph);\n });\n}\nfunction cacheIndexToRemoveBackground(doc, start, end) {\n var skipLines = [];\n removingBackgroundIndexMap = {};\n for (var i = start[0] - 1; i < end[0]; i += 1) {\n var node = doc.child(i);\n var codeEnd = node.attrs.codeEnd;\n var codeStart = node.attrs.codeStart;\n if (codeStart && codeEnd && !includes(skipLines, codeStart)) {\n skipLines.push(codeStart);\n codeEnd = Math.min(codeEnd, doc.childCount);\n // should subtract '1' to markdown line position\n // because markdown parser has '1'(not zero) as the start number\n var startIndex = codeStart - 1;\n var endIndex = end[0];\n for (var index = startIndex; index < endIndex; index += 1) {\n removingBackgroundIndexMap[index] = true;\n }\n }\n }\n}\nfunction getMarkForRemoving(_a, nodes) {\n var doc = _a.doc;\n var start = nodes[0].sourcepos[0];\n var _b = last$1(nodes).sourcepos, end = _b[1];\n var startPos = [start[0], start[1]];\n var endPos = [end[0], end[1] + 1];\n var marks = [];\n cacheIndexToRemoveBackground(doc, start, end);\n marks.push({ start: startPos, end: endPos });\n return marks;\n}\nfunction getMarkForAdding(node, toastMark) {\n var lineTexts = toastMark.getLineTexts();\n var startPos = [getMdStartLine(node), getMdStartCh(node)];\n var endPos = [getMdEndLine(node), getMdEndCh(node) + 1];\n var markInfo = getMarkInfo(node, startPos, endPos, lineTexts[endPos[0] - 1]);\n return markInfo !== null && markInfo !== void 0 ? markInfo : [];\n}\n\nvar defaultToolbarStateKeys = [\n 'taskList',\n 'orderedList',\n 'bulletList',\n 'table',\n 'strong',\n 'emph',\n 'strike',\n 'heading',\n 'thematicBreak',\n 'blockQuote',\n 'code',\n 'codeBlock',\n 'indent',\n 'outdent',\n];\nfunction getToolbarStateType$1(mdNode) {\n var type = mdNode.type;\n if (isListNode$1(mdNode)) {\n if (mdNode.listData.task) {\n return 'taskList';\n }\n return mdNode.listData.type === 'ordered' ? 'orderedList' : 'bulletList';\n }\n if (type.indexOf('table') !== -1) {\n return 'table';\n }\n if (!includes(defaultToolbarStateKeys, type)) {\n return null;\n }\n return type;\n}\nfunction getToolbarState$1(targetNode) {\n var toolbarState = {\n indent: { active: false, disabled: true },\n outdent: { active: false, disabled: true },\n };\n var listEnabled = true;\n traverseParentNodes(targetNode, function (mdNode) {\n var type = getToolbarStateType$1(mdNode);\n if (!type) {\n return;\n }\n if (type === 'bulletList' || type === 'orderedList') {\n // to apply the nearlist list state in the nested list\n if (listEnabled) {\n toolbarState[type] = { active: true };\n toolbarState.indent.disabled = false;\n toolbarState.outdent.disabled = false;\n listEnabled = false;\n }\n }\n else {\n toolbarState[type] = { active: true };\n }\n });\n return toolbarState;\n}\nfunction previewHighlight(_a) {\n var toastMark = _a.toastMark, eventEmitter = _a.eventEmitter;\n return new prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]({\n view: function () {\n return {\n update: function (view, prevState) {\n var state = view.state;\n var doc = state.doc, selection = state.selection;\n if (prevState && prevState.doc.eq(doc) && prevState.selection.eq(selection)) {\n return;\n }\n var from = selection.from;\n var startChOffset = state.doc.resolve(from).start();\n var line = state.doc.content.findIndex(from).index + 1;\n var ch = from - startChOffset;\n if (from === startChOffset) {\n ch += 1;\n }\n var cursorPos = [line, ch];\n var mdNode = toastMark.findNodeAtPosition(cursorPos);\n var toolbarState = getToolbarState$1(mdNode);\n eventEmitter.emit('changeToolbarState', {\n cursorPos: cursorPos,\n mdNode: mdNode,\n toolbarState: toolbarState,\n });\n eventEmitter.emit('setFocusedNode', mdNode);\n },\n };\n },\n });\n}\n\nvar Doc$1 = /** @class */ (function (_super) {\n __extends$1(Doc, _super);\n function Doc() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Doc.prototype, \"name\", {\n get: function () {\n return 'doc';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Doc.prototype, \"schema\", {\n get: function () {\n return {\n content: 'block+',\n };\n },\n enumerable: false,\n configurable: true\n });\n return Doc;\n}(Node$2));\n\nvar Mark = /** @class */ (function () {\n function Mark() {\n }\n Object.defineProperty(Mark.prototype, \"type\", {\n get: function () {\n return 'mark';\n },\n enumerable: false,\n configurable: true\n });\n Mark.prototype.setContext = function (context) {\n this.context = context;\n };\n return Mark;\n}());\n\nfunction getTextByMdLine(doc, mdLine) {\n return getTextContent(doc, mdLine - 1);\n}\nfunction getTextContent(doc, index) {\n return doc.child(index).textContent;\n}\n\nvar reBlockQuote = /^\\s*> ?/;\nvar BlockQuote$1 = /** @class */ (function (_super) {\n __extends$1(BlockQuote, _super);\n function BlockQuote() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(BlockQuote.prototype, \"name\", {\n get: function () {\n return 'blockQuote';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BlockQuote.prototype, \"schema\", {\n get: function () {\n return {\n toDOM: function () {\n return ['span', { class: clsWithMdPrefix('block-quote') }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n BlockQuote.prototype.createBlockQuoteText = function (text, isBlockQuote) {\n return isBlockQuote ? text.replace(reBlockQuote, '').trim() : \"> \" + text.trim();\n };\n BlockQuote.prototype.extendBlockQuote = function () {\n var _this = this;\n return function (_a, dispatch) {\n var selection = _a.selection, doc = _a.doc, tr = _a.tr, schema = _a.schema;\n var _b = getRangeInfo(selection), endFromOffset = _b.endFromOffset, endToOffset = _b.endToOffset, endIndex = _b.endIndex, to = _b.to;\n var textContent = getTextContent(doc, endIndex);\n var isBlockQuote = reBlockQuote.test(textContent);\n if (isBlockQuote && to > endFromOffset && selection.empty) {\n var isEmpty = !textContent.replace(reBlockQuote, '').trim();\n if (isEmpty) {\n tr.deleteRange(endFromOffset, endToOffset).split(tr.mapping.map(endToOffset));\n }\n else {\n var slicedText = textContent.slice(to - endFromOffset).trim();\n var node = createTextNode$1(schema, _this.createBlockQuoteText(slicedText));\n splitAndExtendBlock(tr, endToOffset, slicedText, node);\n }\n dispatch(tr);\n return true;\n }\n return false;\n };\n };\n BlockQuote.prototype.commands = function () {\n var _this = this;\n return function () { return function (state, dispatch) {\n var selection = state.selection, doc = state.doc;\n var _a = getRangeInfo(selection), startFromOffset = _a.startFromOffset, endToOffset = _a.endToOffset, startIndex = _a.startIndex, endIndex = _a.endIndex;\n var isBlockQuote = reBlockQuote.test(getTextContent(doc, startIndex));\n var tr = replaceTextNode({\n state: state,\n startIndex: startIndex,\n endIndex: endIndex,\n from: startFromOffset,\n createText: function (textContent) { return _this.createBlockQuoteText(textContent, isBlockQuote); },\n });\n dispatch(tr.setSelection(createTextSelection(tr, tr.mapping.map(endToOffset))));\n return true;\n }; };\n };\n BlockQuote.prototype.keymaps = function () {\n var blockQuoteCommand = this.commands()();\n return {\n 'alt-q': blockQuoteCommand,\n 'alt-Q': blockQuoteCommand,\n Enter: this.extendBlockQuote(),\n };\n };\n return BlockQuote;\n}(Mark));\n\nvar reList = /(^\\s*)([-*+] |[\\d]+\\. )/;\nvar reOrderedList = /(^\\s*)([\\d])+\\.( \\[[ xX]])? /;\nvar reOrderedListGroup = /^(\\s*)((\\d+)([.)]\\s(?:\\[(?:x|\\s)\\]\\s)?))(.*)/;\nvar reCanBeTaskList = /(^\\s*)([-*+]|[\\d]+\\.)( \\[[ xX]])? /;\nvar reBulletListGroup = /^(\\s*)([-*+]+(\\s(?:\\[(?:x|\\s)\\]\\s)?))(.*)/;\nvar reTaskList = /(^\\s*)([-*+] |[\\d]+\\. )(\\[[ xX]] )/;\nvar reBulletTaskList = /(^\\s*)([-*+])( \\[[ xX]]) /;\nfunction getListType(text) {\n return reOrderedList.test(text) ? 'ordered' : 'bullet';\n}\nfunction getListDepth(mdNode) {\n var depth = 0;\n while (mdNode && mdNode.type !== 'document') {\n if (mdNode.type === 'list') {\n depth += 1;\n }\n mdNode = mdNode.parent;\n }\n return depth;\n}\nfunction findSameDepthList(toastMark, currentLine, depth, backward) {\n var lineTexts = toastMark.getLineTexts();\n var lineLen = lineTexts.length;\n var result = [];\n var line = currentLine;\n while (backward ? line < lineLen : line > 1) {\n line = backward ? line + 1 : line - 1;\n var mdNode = toastMark.findFirstNodeAtLine(line);\n var currentListDepth = getListDepth(mdNode);\n if (currentListDepth === depth) {\n result.push({ line: line, depth: depth, mdNode: mdNode });\n }\n else if (currentListDepth < depth) {\n break;\n }\n }\n return result;\n}\nfunction getSameDepthItems(_a) {\n var toastMark = _a.toastMark, mdNode = _a.mdNode, line = _a.line;\n var depth = getListDepth(mdNode);\n var forwardList = findSameDepthList(toastMark, line, depth, false).reverse();\n var backwardList = findSameDepthList(toastMark, line, depth, true);\n return forwardList.concat([{ line: line, depth: depth, mdNode: mdNode }]).concat(backwardList);\n}\nfunction textToBullet(text) {\n if (!reList.test(text)) {\n return \"* \" + text;\n }\n var type = getListType(text);\n if (type === 'bullet' && reCanBeTaskList.test(text)) {\n text = text.replace(reBulletTaskList, '$1$2 ');\n }\n else if (type === 'ordered') {\n text = text.replace(reOrderedList, '$1* ');\n }\n return text;\n}\nfunction textToOrdered(text, ordinalNum) {\n if (!reList.test(text)) {\n return ordinalNum + \". \" + text;\n }\n var type = getListType(text);\n if (type === 'bullet' || (type === 'ordered' && reCanBeTaskList.test(text))) {\n text = text.replace(reCanBeTaskList, \"$1\" + ordinalNum + \". \");\n }\n else if (type === 'ordered') {\n // eslint-disable-next-line prefer-destructuring\n var start = reOrderedListGroup.exec(text)[3];\n if (Number(start) !== ordinalNum) {\n text = text.replace(reOrderedList, \"$1\" + ordinalNum + \". \");\n }\n }\n return text;\n}\nfunction getChangedInfo(doc, sameDepthItems, type, start) {\n if (start === void 0) { start = 0; }\n var firstIndex = Number.MAX_VALUE;\n var lastIndex = 0;\n var changedResults = sameDepthItems.map(function (_a, index) {\n var line = _a.line;\n firstIndex = Math.min(line - 1, firstIndex);\n lastIndex = Math.max(line - 1, lastIndex);\n var text = getTextByMdLine(doc, line);\n text = type === 'bullet' ? textToBullet(text) : textToOrdered(text, index + 1 + start);\n return { text: text, line: line };\n });\n return { changedResults: changedResults, firstIndex: firstIndex, lastIndex: lastIndex };\n}\nfunction getBulletOrOrdered(type, context) {\n var sameDepthListInfo = getSameDepthItems(context);\n return getChangedInfo(context.doc, sameDepthListInfo, type);\n}\nvar otherListToList = {\n bullet: function (context) {\n return getBulletOrOrdered('bullet', context);\n },\n ordered: function (context) {\n return getBulletOrOrdered('ordered', context);\n },\n task: function (_a) {\n var mdNode = _a.mdNode, doc = _a.doc, line = _a.line;\n var text = getTextByMdLine(doc, line);\n if (mdNode.listData.task) {\n text = text.replace(reTaskList, '$1$2');\n }\n else if (isListNode$1(mdNode)) {\n text = text.replace(reList, '$1$2[ ] ');\n }\n return { changedResults: [{ text: text, line: line }] };\n },\n};\nvar otherNodeToList = {\n bullet: function (_a) {\n var doc = _a.doc, line = _a.line;\n var lineText = getTextByMdLine(doc, line);\n var changedResults = [{ text: \"* \" + lineText, line: line }];\n return { changedResults: changedResults };\n },\n ordered: function (_a) {\n var toastMark = _a.toastMark, doc = _a.doc, line = _a.line, startLine = _a.startLine;\n var lineText = getTextByMdLine(doc, line);\n var firstOrderedListNum = 1;\n var firstOrderedListLine = startLine;\n var skipped = 0;\n for (var i = startLine - 1; i > 0; i -= 1) {\n var mdNode = toastMark.findFirstNodeAtLine(i);\n var text = getTextByMdLine(doc, i);\n var canBeListNode = text && !!findClosestNode(mdNode, function (targetNode) { return isListNode$1(targetNode); });\n var searchResult = reOrderedListGroup.exec(getTextByMdLine(doc, i));\n if (!searchResult && !canBeListNode) {\n break;\n }\n if (!searchResult && canBeListNode) {\n skipped += 1;\n continue;\n }\n var _b = searchResult, indent = _b[1], start = _b[3];\n // basis on one depth list\n if (!indent) {\n firstOrderedListNum = Number(start);\n firstOrderedListLine = i;\n break;\n }\n }\n var ordinalNum = firstOrderedListNum + line - firstOrderedListLine - skipped;\n var changedResults = [{ text: ordinalNum + \". \" + lineText, line: line }];\n return { changedResults: changedResults };\n },\n task: function (_a) {\n var doc = _a.doc, line = _a.line;\n var lineText = getTextByMdLine(doc, line);\n var changedResults = [{ text: \"* [ ] \" + lineText, line: line }];\n return { changedResults: changedResults };\n },\n};\nvar extendList = {\n bullet: function (_a) {\n var line = _a.line, doc = _a.doc;\n var lineText = getTextByMdLine(doc, line);\n var _b = reBulletListGroup.exec(lineText), indent = _b[1], delimiter = _b[2];\n return { listSyntax: \"\" + indent + delimiter };\n },\n ordered: function (_a) {\n var toastMark = _a.toastMark, line = _a.line, mdNode = _a.mdNode, doc = _a.doc;\n var depth = getListDepth(mdNode);\n var lineText = getTextByMdLine(doc, line);\n var _b = reOrderedListGroup.exec(lineText), indent = _b[1], start = _b[3], delimiter = _b[4];\n var ordinalNum = Number(start) + 1;\n var listSyntax = \"\" + indent + ordinalNum + delimiter;\n var backwardList = findSameDepthList(toastMark, line, depth, true);\n var filteredList = backwardList.filter(function (info) {\n var searchResult = reOrderedListGroup.exec(getTextByMdLine(doc, info.line));\n return (searchResult &&\n searchResult[1].length === indent.length &&\n !!findClosestNode(info.mdNode, function (targetNode) { return isOrderedListNode(targetNode); }));\n });\n return __assign$1({ listSyntax: listSyntax }, getChangedInfo(doc, filteredList, 'ordered', ordinalNum));\n },\n};\nfunction getReorderedListInfo(doc, schema, line, ordinalNum, prevIndentLength) {\n var nodes = [];\n var lineText = getTextByMdLine(doc, line);\n var searchResult = reOrderedListGroup.exec(lineText);\n while (searchResult) {\n var indent = searchResult[1], delimiter = searchResult[4], text = searchResult[5];\n var indentLength = indent.length;\n if (indentLength === prevIndentLength) {\n nodes.push(createTextNode$1(schema, \"\" + indent + ordinalNum + delimiter + text));\n ordinalNum += 1;\n line += 1;\n }\n else if (indentLength > prevIndentLength) {\n var nestedListInfo = getReorderedListInfo(doc, schema, line, 1, indentLength);\n line = nestedListInfo.line;\n nodes = nodes.concat(nestedListInfo.nodes);\n }\n if (indentLength < prevIndentLength || line > doc.childCount) {\n break;\n }\n lineText = getTextByMdLine(doc, line);\n searchResult = reOrderedListGroup.exec(lineText);\n }\n return { nodes: nodes, line: line };\n}\n\nvar reStartSpace = /(^\\s{1,4})(.*)/;\nfunction isBlockUnit(from, to, text) {\n return from < to || reList.test(text) || reBlockQuote.test(text);\n}\nfunction isInTableCellNode(doc, schema, selection) {\n var $pos = selection.$from;\n if ($pos.depth === 0) {\n $pos = doc.resolve($pos.pos - 1);\n }\n var node = $pos.node(1);\n var startOffset = $pos.start(1);\n var contentSize = node.content.size;\n return (node.rangeHasMark(0, contentSize, schema.marks.table) &&\n $pos.pos - startOffset !== contentSize &&\n $pos.pos !== startOffset);\n}\nfunction createSelection(tr, posInfo) {\n var from = posInfo.from, to = posInfo.to;\n if (posInfo.type === 'indent') {\n var softTabLen = 4;\n from += softTabLen;\n to += (posInfo.lineLen + 1) * softTabLen;\n }\n else {\n var spaceLenList = posInfo.spaceLenList;\n from -= spaceLenList[0];\n for (var i = 0; i < spaceLenList.length; i += 1) {\n to -= spaceLenList[i];\n }\n }\n return createTextSelection(tr, from, to);\n}\nvar Paragraph$1 = /** @class */ (function (_super) {\n __extends$1(Paragraph, _super);\n function Paragraph() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Paragraph.prototype, \"name\", {\n get: function () {\n return 'paragraph';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Paragraph.prototype, \"schema\", {\n get: function () {\n return {\n content: 'inline*',\n attrs: {\n className: { default: null },\n codeStart: { default: null },\n codeEnd: { default: null },\n },\n selectable: false,\n group: 'block',\n parseDOM: [{ tag: 'div' }],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return attrs.className\n ? ['div', { class: clsWithMdPrefix(attrs.className) }, 0]\n : ['div', 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Paragraph.prototype.reorderList = function (startLine, endLine) {\n var _a = this.context, view = _a.view, toastMark = _a.toastMark, schema = _a.schema;\n var _b = view.state, tr = _b.tr, selection = _b.selection, doc = _b.doc;\n var mdNode = toastMark.findFirstNodeAtLine(startLine);\n var topListNode = mdNode;\n while (mdNode && !isBulletListNode(mdNode) && mdNode.parent.type !== 'document') {\n mdNode = mdNode.parent;\n if (isOrderedListNode(mdNode)) {\n topListNode = mdNode;\n break;\n }\n }\n if (topListNode) {\n startLine = topListNode.sourcepos[0][0];\n }\n var _c = reOrderedListGroup.exec(getTextByMdLine(doc, startLine)), indent = _c[1], start = _c[3];\n var indentLen = indent.length;\n var _d = getReorderedListInfo(doc, schema, startLine, Number(start), indentLen), line = _d.line, nodes = _d.nodes;\n endLine = Math.max(endLine, line - 1);\n var startOffset = getNodeContentOffsetRange(doc, startLine - 1).startOffset;\n for (var i = startLine - 1; i <= endLine - 1; i += 1) {\n var _e = doc.child(i), nodeSize = _e.nodeSize, content = _e.content;\n var mappedFrom = tr.mapping.map(startOffset);\n var mappedTo = mappedFrom + content.size;\n tr.replaceWith(mappedFrom, mappedTo, nodes[i - startLine + 1]);\n startOffset += nodeSize;\n }\n var newSelection = createTextSelection(tr, selection.from, selection.to);\n view.dispatch(tr.setSelection(newSelection));\n };\n Paragraph.prototype.indent = function (tabKey) {\n var _this = this;\n if (tabKey === void 0) { tabKey = false; }\n return function () { return function (state, dispatch) {\n var schema = state.schema, selection = state.selection, doc = state.doc;\n var _a = getRangeInfo(selection), from = _a.from, to = _a.to, startFromOffset = _a.startFromOffset, startIndex = _a.startIndex, endIndex = _a.endIndex;\n if (tabKey && isInTableCellNode(doc, schema, selection)) {\n return false;\n }\n var startLineText = getTextContent(doc, startIndex);\n if ((tabKey && isBlockUnit(from, to, startLineText)) ||\n (!tabKey && reList.test(startLineText))) {\n var tr = replaceTextNode({\n state: state,\n from: startFromOffset,\n startIndex: startIndex,\n endIndex: endIndex,\n createText: function (textContent) { return \" \" + textContent; },\n });\n var posInfo = {\n type: 'indent',\n from: from,\n to: to,\n lineLen: endIndex - startIndex,\n };\n dispatch(tr.setSelection(createSelection(tr, posInfo)));\n if (reOrderedListGroup.test(startLineText)) {\n _this.reorderList(startIndex + 1, endIndex + 1);\n }\n }\n else if (tabKey) {\n dispatch(state.tr.insert(to, createTextNode$1(schema, ' ')));\n }\n return true;\n }; };\n };\n Paragraph.prototype.outdent = function (tabKey) {\n var _this = this;\n if (tabKey === void 0) { tabKey = false; }\n return function () { return function (state, dispatch) {\n var selection = state.selection, doc = state.doc, schema = state.schema;\n var _a = getRangeInfo(selection), from = _a.from, to = _a.to, startFromOffset = _a.startFromOffset, startIndex = _a.startIndex, endIndex = _a.endIndex;\n if (tabKey && isInTableCellNode(doc, schema, selection)) {\n return false;\n }\n var startLineText = getTextContent(doc, startIndex);\n if ((tabKey && isBlockUnit(from, to, startLineText)) ||\n (!tabKey && reList.test(startLineText))) {\n var spaceLenList_1 = [];\n var tr = replaceTextNode({\n state: state,\n from: startFromOffset,\n startIndex: startIndex,\n endIndex: endIndex,\n createText: function (textContent) {\n var searchResult = reStartSpace.exec(textContent);\n spaceLenList_1.push(searchResult ? searchResult[1].length : 0);\n return textContent.replace(reStartSpace, '$2');\n },\n });\n var posInfo = { type: 'outdent', from: from, to: to, spaceLenList: spaceLenList_1 };\n dispatch(tr.setSelection(createSelection(tr, posInfo)));\n if (reOrderedListGroup.test(startLineText)) {\n _this.reorderList(startIndex + 1, endIndex + 1);\n }\n }\n else if (tabKey) {\n var startText = startLineText.slice(0, to - startFromOffset);\n var startTextWithoutSpace = startText.replace(/\\s{1,4}$/, '');\n var deletStart = to - (startText.length - startTextWithoutSpace.length);\n dispatch(state.tr.delete(deletStart, to));\n }\n return true;\n }; };\n };\n Paragraph.prototype.deleteLines = function () {\n var _this = this;\n return function (state, dispatch) {\n var view = _this.context.view;\n var _a = getRangeInfo(state.selection), startFromOffset = _a.startFromOffset, endToOffset = _a.endToOffset;\n var deleteRange = function () {\n dispatch(state.tr.deleteRange(startFromOffset, endToOffset));\n return true;\n };\n return Object(prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"chainCommands\"])(deleteRange, prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"joinForward\"])(state, dispatch, view);\n };\n };\n Paragraph.prototype.moveDown = function () {\n return function (state, dispatch) {\n var doc = state.doc, tr = state.tr, selection = state.selection, schema = state.schema;\n var _a = getRangeInfo(selection), startFromOffset = _a.startFromOffset, endToOffset = _a.endToOffset, endIndex = _a.endIndex;\n if (endIndex < doc.content.childCount - 1) {\n var _b = doc.child(endIndex + 1), nodeSize = _b.nodeSize, textContent = _b.textContent;\n tr.delete(endToOffset, endToOffset + nodeSize)\n .split(startFromOffset)\n // subtract 2(start, end tag length) to insert prev line\n .insert(tr.mapping.map(startFromOffset) - 2, createTextNode$1(schema, textContent));\n dispatch(tr);\n return true;\n }\n return false;\n };\n };\n Paragraph.prototype.moveUp = function () {\n return function (state, dispatch) {\n var tr = state.tr, doc = state.doc, selection = state.selection, schema = state.schema;\n var _a = getRangeInfo(selection), startFromOffset = _a.startFromOffset, endToOffset = _a.endToOffset, startIndex = _a.startIndex;\n if (startIndex > 0) {\n var _b = doc.child(startIndex - 1), nodeSize = _b.nodeSize, textContent = _b.textContent;\n tr.delete(startFromOffset - nodeSize, startFromOffset)\n .split(tr.mapping.map(endToOffset))\n .insert(tr.mapping.map(endToOffset), createTextNode$1(schema, textContent));\n dispatch(tr);\n return true;\n }\n return false;\n };\n };\n Paragraph.prototype.commands = function () {\n return {\n indent: this.indent(),\n outdent: this.outdent(),\n };\n };\n Paragraph.prototype.keymaps = function () {\n return {\n Tab: this.indent(true)(),\n 'Shift-Tab': this.outdent(true)(),\n 'Mod-d': this.deleteLines(),\n 'Mod-D': this.deleteLines(),\n 'Alt-ArrowUp': this.moveUp(),\n 'Alt-ArrowDown': this.moveDown(),\n };\n };\n return Paragraph;\n}(Node$2));\n\nvar Text$1 = /** @class */ (function (_super) {\n __extends$1(Text, _super);\n function Text() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Text.prototype, \"name\", {\n get: function () {\n return 'text';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"schema\", {\n get: function () {\n return {\n group: 'inline',\n };\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(Node$2));\n\nvar reHeading = /^#{1,6}\\s/;\nvar Heading$1 = /** @class */ (function (_super) {\n __extends$1(Heading, _super);\n function Heading() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Heading.prototype, \"name\", {\n get: function () {\n return 'heading';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Heading.prototype, \"schema\", {\n get: function () {\n return {\n attrs: {\n level: { default: 1 },\n seText: { default: false },\n },\n toDOM: function (_a) {\n var attrs = _a.attrs;\n var level = attrs.level, seText = attrs.seText;\n var classNames = \"heading|heading\" + level;\n if (seText) {\n classNames += '|delimiter|setext';\n }\n return ['span', { class: clsWithMdPrefix.apply(void 0, classNames.split('|')) }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Heading.prototype.createHeadingText = function (level, text, curHeadingSyntax) {\n var textContent = text.replace(curHeadingSyntax, '').trim();\n var headingText = '';\n while (level > 0) {\n headingText += '#';\n level -= 1;\n }\n return headingText + \" \" + textContent;\n };\n Heading.prototype.commands = function () {\n var _this = this;\n return function (payload) { return function (state, dispatch) {\n var level = payload.level;\n var _a = getRangeInfo(state.selection), startFromOffset = _a.startFromOffset, endToOffset = _a.endToOffset, startIndex = _a.startIndex, endIndex = _a.endIndex;\n var tr = replaceTextNode({\n state: state,\n from: startFromOffset,\n startIndex: startIndex,\n endIndex: endIndex,\n createText: function (textContent) {\n var matchedHeading = textContent.match(reHeading);\n var curHeadingSyntax = matchedHeading ? matchedHeading[0] : '';\n return _this.createHeadingText(level, textContent, curHeadingSyntax);\n },\n });\n dispatch(tr.setSelection(createTextSelection(tr, tr.mapping.map(endToOffset))));\n return true;\n }; };\n };\n return Heading;\n}(Mark));\n\nvar fencedCodeBlockSyntax = '```';\nvar CodeBlock$1 = /** @class */ (function (_super) {\n __extends$1(CodeBlock, _super);\n function CodeBlock() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(CodeBlock.prototype, \"name\", {\n get: function () {\n return 'codeBlock';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CodeBlock.prototype, \"schema\", {\n get: function () {\n return {\n toDOM: function () {\n return ['span', { class: clsWithMdPrefix('code-block') }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n CodeBlock.prototype.commands = function () {\n return function () { return function (state, dispatch) {\n var selection = state.selection, schema = state.schema, tr = state.tr;\n var _a = getRangeInfo(selection), startFromOffset = _a.startFromOffset, endToOffset = _a.endToOffset;\n var fencedNode = createTextNode$1(schema, fencedCodeBlockSyntax);\n // add fenced start block\n tr.insert(startFromOffset, fencedNode).split(startFromOffset + fencedCodeBlockSyntax.length);\n // add fenced end block\n tr.split(tr.mapping.map(endToOffset)).insert(tr.mapping.map(endToOffset), fencedNode);\n dispatch(tr.setSelection(\n // subtract fenced syntax length and open, close tag(2)\n createTextSelection(tr, tr.mapping.map(endToOffset) - (fencedCodeBlockSyntax.length + 2))));\n return true;\n }; };\n };\n CodeBlock.prototype.keepIndentation = function () {\n var _this = this;\n return function (_a, dispatch) {\n var selection = _a.selection, tr = _a.tr, doc = _a.doc, schema = _a.schema;\n var toastMark = _this.context.toastMark;\n var _b = getRangeInfo(selection), startFromOffset = _b.startFromOffset, endToOffset = _b.endToOffset, endIndex = _b.endIndex, from = _b.from, to = _b.to;\n var textContent = getTextContent(doc, endIndex);\n if (from === to && textContent.trim()) {\n var matched = textContent.match(/^\\s+/);\n var mdNode = toastMark.findFirstNodeAtLine(endIndex + 1);\n if (isCodeBlockNode(mdNode) && matched) {\n var spaces = matched[0];\n var slicedText = textContent.slice(to - startFromOffset);\n var node = createTextNode$1(schema, spaces + slicedText);\n splitAndExtendBlock(tr, endToOffset, slicedText, node);\n dispatch(tr);\n return true;\n }\n }\n return false;\n };\n };\n CodeBlock.prototype.keymaps = function () {\n var codeBlockCommand = this.commands()();\n return {\n 'Shift-Mod-p': codeBlockCommand,\n 'Shift-Mod-P': codeBlockCommand,\n Enter: this.keepIndentation(),\n };\n };\n return CodeBlock;\n}(Mark));\n\nvar reEmptyTable = /\\||\\s/g;\nfunction createTableHeader(columnCount) {\n return [createTableRow(columnCount), createTableRow(columnCount, true)];\n}\nfunction createTableBody$1(columnCount, rowCount) {\n var bodyRows = [];\n for (var i = 0; i < rowCount; i += 1) {\n bodyRows.push(createTableRow(columnCount));\n }\n return bodyRows;\n}\nfunction createTableRow(columnCount, delim) {\n var row = '|';\n for (var i = 0; i < columnCount; i += 1) {\n row += delim ? ' --- |' : ' |';\n }\n return row;\n}\nfunction createTargetTypes(moveNext) {\n return moveNext\n ? { type: 'next', parentType: 'tableHead', childType: 'firstChild' }\n : { type: 'prev', parentType: 'tableBody', childType: 'lastChild' };\n}\nvar Table$1 = /** @class */ (function (_super) {\n __extends$1(Table, _super);\n function Table() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Table.prototype, \"name\", {\n get: function () {\n return 'table';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Table.prototype, \"schema\", {\n get: function () {\n return {\n toDOM: function () {\n return ['span', { class: clsWithMdPrefix('table') }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Table.prototype.extendTable = function () {\n var _this = this;\n return function (_a, dispatch) {\n var selection = _a.selection, doc = _a.doc, tr = _a.tr, schema = _a.schema;\n if (!selection.empty) {\n return false;\n }\n var _b = getRangeInfo(selection), endFromOffset = _b.endFromOffset, endToOffset = _b.endToOffset, endIndex = _b.endIndex, to = _b.to;\n var textContent = getTextContent(doc, endIndex);\n // should add `1` to line for the markdown parser\n // because markdown parser has `1`(not zero) as the start number\n var mdPos = [endIndex + 1, to - endFromOffset + 1];\n var mdNode = _this.context.toastMark.findNodeAtPosition(mdPos);\n var cellNode = findClosestNode(mdNode, function (node) {\n return isTableCellNode(node) &&\n (node.parent.type === 'tableDelimRow' || node.parent.parent.type === 'tableBody');\n });\n if (cellNode) {\n var isEmpty = !textContent.replace(reEmptyTable, '').trim();\n var parent_1 = cellNode.parent;\n var columnCount = parent_1.parent.parent.columns.length;\n var row = createTableRow(columnCount);\n if (isEmpty) {\n tr.deleteRange(endFromOffset, endToOffset).split(tr.mapping.map(endToOffset));\n }\n else {\n tr\n .split(endToOffset)\n .insert(tr.mapping.map(endToOffset), createTextNode$1(schema, row))\n // should subtract `2` to selection end position considering ` |` text\n .setSelection(createTextSelection(tr, tr.mapping.map(endToOffset) - 2));\n }\n dispatch(tr);\n return true;\n }\n return false;\n };\n };\n Table.prototype.moveTableCell = function (moveNext) {\n var _this = this;\n return function (_a, dispatch) {\n var selection = _a.selection, tr = _a.tr;\n var _b = getRangeInfo(selection), endFromOffset = _b.endFromOffset, endIndex = _b.endIndex, to = _b.to;\n var mdPos = [endIndex + 1, to - endFromOffset];\n var mdNode = _this.context.toastMark.findNodeAtPosition(mdPos);\n var cellNode = findClosestNode(mdNode, function (node) { return isTableCellNode(node); });\n if (cellNode) {\n var parent_2 = cellNode.parent;\n var _c = createTargetTypes(moveNext), type = _c.type, parentType = _c.parentType, childType = _c.childType;\n var chOffset = getMdEndCh(cellNode);\n if (cellNode[type]) {\n chOffset = getMdEndCh(cellNode[type]) - 1;\n }\n else {\n var row = !parent_2[type] && parent_2.parent.type === parentType\n ? parent_2.parent[type][childType]\n : parent_2[type];\n if (type === 'next') {\n // if there is next row, the base offset would be end position of the next row's first child.\n // Otherwise, the base offset is zero.\n var baseOffset = row ? getMdEndCh(row[childType]) : 0;\n // calculate tag(open, close) position('2') for selection\n chOffset += baseOffset + 2;\n }\n else if (type === 'prev') {\n // if there is prev row, the target position would be '-4' for calculating ' |' characters and tag(open, close)\n // Otherwise, the target position is zero.\n chOffset = row ? -4 : 0;\n }\n }\n dispatch(tr.setSelection(createTextSelection(tr, endFromOffset + chOffset)));\n return true;\n }\n return false;\n };\n };\n Table.prototype.addTable = function () {\n return function (payload) { return function (_a, dispatch) {\n var selection = _a.selection, tr = _a.tr, schema = _a.schema;\n var _b = payload, columnCount = _b.columnCount, rowCount = _b.rowCount;\n var endToOffset = getRangeInfo(selection).endToOffset;\n var headerRows = createTableHeader(columnCount);\n var bodyRows = createTableBody$1(columnCount, rowCount - 1);\n var rows = __spreadArray$1(__spreadArray$1([], headerRows), bodyRows);\n rows.forEach(function (row) {\n tr.split(tr.mapping.map(endToOffset)).insert(tr.mapping.map(endToOffset), createTextNode$1(schema, row));\n });\n // should add `4` to selection position considering `| ` text and start block tag length\n dispatch(tr.setSelection(createTextSelection(tr, endToOffset + 4)));\n return true;\n }; };\n };\n Table.prototype.commands = function () {\n return { addTable: this.addTable() };\n };\n Table.prototype.keymaps = function () {\n return {\n Enter: this.extendTable(),\n Tab: this.moveTableCell(true),\n 'Shift-Tab': this.moveTableCell(false),\n };\n };\n return Table;\n}(Mark));\n\nvar thematicBreakSyntax = '***';\nvar ThematicBreak$1 = /** @class */ (function (_super) {\n __extends$1(ThematicBreak, _super);\n function ThematicBreak() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(ThematicBreak.prototype, \"name\", {\n get: function () {\n return 'thematicBreak';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ThematicBreak.prototype, \"schema\", {\n get: function () {\n return {\n toDOM: function () {\n return ['span', { class: clsWithMdPrefix('thematic-break') }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n ThematicBreak.prototype.hr = function () {\n return function () { return function (state, dispatch) {\n var selection = state.selection, schema = state.schema, tr = state.tr;\n var _a = getRangeInfo(selection), from = _a.from, to = _a.to, endToOffset = _a.endToOffset;\n var node = createTextNode$1(schema, thematicBreakSyntax);\n tr\n .split(from)\n .replaceWith(tr.mapping.map(from), tr.mapping.map(to), node)\n .split(tr.mapping.map(to)).setSelection(createTextSelection(tr, tr.mapping.map(endToOffset)));\n dispatch(tr);\n return true;\n }; };\n };\n ThematicBreak.prototype.commands = function () {\n return { hr: this.hr() };\n };\n ThematicBreak.prototype.keymaps = function () {\n var lineCommand = this.hr()();\n return { 'Mod-l': lineCommand, 'Mod-L': lineCommand };\n };\n return ThematicBreak;\n}(Mark));\n\nfunction cannotBeListNode(_a, line) {\n var type = _a.type, sourcepos = _a.sourcepos;\n // eslint-disable-next-line prefer-destructuring\n var startLine = sourcepos[0][0];\n return line <= startLine && (type === 'codeBlock' || type === 'heading' || type.match('table'));\n}\nvar ListItem$1 = /** @class */ (function (_super) {\n __extends$1(ListItem, _super);\n function ListItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(ListItem.prototype, \"name\", {\n get: function () {\n return 'listItem';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ListItem.prototype, \"schema\", {\n get: function () {\n return {\n attrs: {\n odd: { default: false },\n even: { default: false },\n listStyle: { default: false },\n },\n toDOM: function (_a) {\n var attrs = _a.attrs;\n var odd = attrs.odd, even = attrs.even, listStyle = attrs.listStyle;\n var classNames = 'list-item';\n if (listStyle) {\n classNames += '|list-item-style';\n }\n if (odd) {\n classNames += '|list-item-odd';\n }\n if (even) {\n classNames += '|list-item-even';\n }\n return ['span', { class: clsWithMdPrefix.apply(void 0, classNames.split('|')) }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n ListItem.prototype.extendList = function () {\n var _this = this;\n return function (_a, dispatch) {\n var selection = _a.selection, doc = _a.doc, schema = _a.schema, tr = _a.tr;\n var toastMark = _this.context.toastMark;\n var _b = getRangeInfo(selection), to = _b.to, startFromOffset = _b.startFromOffset, endFromOffset = _b.endFromOffset, endIndex = _b.endIndex, endToOffset = _b.endToOffset;\n var textContent = getTextContent(doc, endIndex);\n var isList = reList.test(textContent);\n if (!isList || selection.from === startFromOffset || !selection.empty) {\n return false;\n }\n var isEmpty = !textContent.replace(reCanBeTaskList, '').trim();\n if (isEmpty) {\n tr.deleteRange(endFromOffset, endToOffset).split(tr.mapping.map(endToOffset));\n }\n else {\n var commandType = getListType(textContent);\n // should add `1` to line for the markdown parser\n // because markdown parser has `1`(not zero) as the start number\n var mdNode = toastMark.findFirstNodeAtLine(endIndex + 1);\n var slicedText = textContent.slice(to - endFromOffset);\n var context = { toastMark: toastMark, mdNode: mdNode, doc: doc, line: endIndex + 1 };\n var _c = extendList[commandType](context), listSyntax = _c.listSyntax, changedResults = _c.changedResults;\n // change ordinal number of backward ordered list\n if (changedResults === null || changedResults === void 0 ? void 0 : changedResults.length) {\n // split the block\n tr.split(to);\n // set first ordered list info\n changedResults.unshift({ text: listSyntax + slicedText, line: endIndex + 1 });\n _this.changeToListPerLine(tr, changedResults, {\n from: to,\n // don't subtract 1 because the line has increased through 'split' command.\n startLine: changedResults[0].line,\n endLine: last$1(changedResults).line,\n });\n var pos = tr.mapping.map(endToOffset) - slicedText.length;\n tr.setSelection(createTextSelection(tr, pos));\n }\n else {\n var node = createTextNode$1(schema, listSyntax + slicedText);\n splitAndExtendBlock(tr, endToOffset, slicedText, node);\n }\n }\n dispatch(tr);\n return true;\n };\n };\n ListItem.prototype.toList = function (commandType) {\n var _this = this;\n return function () { return function (_a, dispatch) {\n var doc = _a.doc, tr = _a.tr, selection = _a.selection;\n var toastMark = _this.context.toastMark;\n var rangeInfo = getRangeInfo(selection);\n // should add `1` to line for the markdown parser\n // because markdown parser has `1`(not zero) as the start number\n var startLine = rangeInfo.startIndex + 1;\n var endLine = rangeInfo.endIndex + 1;\n var endToOffset = rangeInfo.endToOffset;\n var skipLines = [];\n for (var line = startLine; line <= endLine; line += 1) {\n var mdNode = toastMark.findFirstNodeAtLine(line);\n if (mdNode && cannotBeListNode(mdNode, line)) {\n break;\n }\n // to skip unnecessary processing\n if (skipLines.indexOf(line) !== -1) {\n continue;\n }\n var context = { toastMark: toastMark, mdNode: mdNode, doc: doc, line: line, startLine: startLine };\n var changedResults = (isListNode$1(mdNode)\n ? otherListToList[commandType](context)\n : otherNodeToList[commandType](context)).changedResults;\n var endOffset = _this.changeToListPerLine(tr, changedResults, {\n from: getNodeContentOffsetRange(doc, changedResults[0].line - 1).startOffset,\n startLine: changedResults[0].line,\n endLine: last$1(changedResults).line,\n indexDiff: 1,\n });\n endToOffset = Math.max(endOffset, endToOffset);\n if (changedResults) {\n skipLines = skipLines.concat(changedResults.map(function (info) { return info.line; }));\n }\n }\n dispatch(tr.setSelection(createTextSelection(tr, tr.mapping.map(endToOffset))));\n return true;\n }; };\n };\n ListItem.prototype.changeToListPerLine = function (tr, changedResults, _a) {\n var from = _a.from, startLine = _a.startLine, endLine = _a.endLine, _b = _a.indexDiff, indexDiff = _b === void 0 ? 0 : _b;\n var maxEndOffset = 0;\n var _loop_1 = function (i) {\n var _c = tr.doc.child(i), nodeSize = _c.nodeSize, content = _c.content;\n var mappedFrom = tr.mapping.map(from);\n var mappedTo = mappedFrom + content.size;\n var changedResult = changedResults.filter(function (result) { return result.line - indexDiff === i; })[0];\n if (changedResult) {\n tr.replaceWith(mappedFrom, mappedTo, createTextNode$1(this_1.context.schema, changedResult.text));\n maxEndOffset = Math.max(maxEndOffset, from + content.size);\n }\n from += nodeSize;\n };\n var this_1 = this;\n for (var i = startLine - indexDiff; i <= endLine - indexDiff; i += 1) {\n _loop_1(i);\n }\n return maxEndOffset;\n };\n ListItem.prototype.toggleTask = function () {\n var _this = this;\n return function (_a, dispatch) {\n var selection = _a.selection, tr = _a.tr, doc = _a.doc, schema = _a.schema;\n var toastMark = _this.context.toastMark;\n var _b = getRangeInfo(selection), startIndex = _b.startIndex, endIndex = _b.endIndex;\n var newTr = null;\n for (var i = startIndex; i <= endIndex; i += 1) {\n var mdNode = toastMark.findFirstNodeAtLine(i + 1);\n if (isListNode$1(mdNode) && mdNode.listData.task) {\n var _c = mdNode.listData, checked = _c.checked, padding = _c.padding;\n var stateChar = checked ? ' ' : 'x';\n var mdPos = mdNode.sourcepos[0];\n var startOffset = getNodeContentOffsetRange(doc, mdPos[0] - 1).startOffset;\n startOffset += mdPos[1] + padding;\n newTr = tr.replaceWith(startOffset, startOffset + 1, schema.text(stateChar));\n }\n }\n if (newTr) {\n dispatch(newTr);\n return true;\n }\n return false;\n };\n };\n ListItem.prototype.commands = function () {\n return {\n bulletList: this.toList('bullet'),\n orderedList: this.toList('ordered'),\n taskList: this.toList('task'),\n };\n };\n ListItem.prototype.keymaps = function () {\n var bulletCommand = this.toList('bullet')();\n var orderedCommand = this.toList('ordered')();\n var taskCommand = this.toList('task')();\n var togleTaskCommand = this.toggleTask();\n return {\n 'Mod-u': bulletCommand,\n 'Mod-U': bulletCommand,\n 'Mod-o': orderedCommand,\n 'Mod-O': orderedCommand,\n 'alt-t': taskCommand,\n 'alt-T': taskCommand,\n 'Shift-Ctrl-x': togleTaskCommand,\n 'Shift-Ctrl-X': togleTaskCommand,\n Enter: this.extendList(),\n };\n };\n return ListItem;\n}(Mark));\n\nfunction toggleMark(condition, syntax) {\n return function () { return function (_a, dispatch) {\n var tr = _a.tr, selection = _a.selection;\n var conditionFn = !isFunction_1(condition)\n ? function (text) { return condition.test(text); }\n : condition;\n var syntaxLen = syntax.length;\n var doc = tr.doc;\n var _b = resolveSelectionPos(selection), from = _b[0], to = _b[1];\n var prevPos = Math.max(from - syntaxLen, 1);\n var nextPos = Math.min(to + syntaxLen, doc.content.size - 1);\n var slice = selection.content();\n var textContent = slice.content.textBetween(0, slice.content.size, '\\n');\n var prevText = doc.textBetween(prevPos, from, '\\n');\n var nextText = doc.textBetween(to, nextPos, '\\n');\n textContent = \"\" + prevText + textContent + nextText;\n if (prevText && nextText && conditionFn(textContent)) {\n tr.delete(nextPos - syntaxLen, nextPos).delete(prevPos, prevPos + syntaxLen);\n }\n else {\n tr.insertText(syntax, to).insertText(syntax, from);\n var newSelection = selection.empty\n ? createTextSelection(tr, from + syntaxLen)\n : createTextSelection(tr, from + syntaxLen, to + syntaxLen);\n tr.setSelection(newSelection);\n }\n dispatch(tr);\n return true;\n }; };\n}\n\nvar reStrong = /^(\\*{2}|_{2}).*([\\s\\S]*)\\1$/m;\nvar strongSyntax = '**';\nvar Strong$1 = /** @class */ (function (_super) {\n __extends$1(Strong, _super);\n function Strong() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Strong.prototype, \"name\", {\n get: function () {\n return 'strong';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Strong.prototype, \"schema\", {\n get: function () {\n return {\n toDOM: function () {\n return ['span', { class: clsWithMdPrefix('strong') }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Strong.prototype.bold = function () {\n return toggleMark(reStrong, strongSyntax);\n };\n Strong.prototype.commands = function () {\n return { bold: this.bold() };\n };\n Strong.prototype.keymaps = function () {\n var boldCommand = this.bold()();\n return { 'Mod-b': boldCommand, 'Mod-B': boldCommand };\n };\n return Strong;\n}(Mark));\n\nvar reStrike = /^(~{2}).*([\\s\\S]*)\\1$/m;\nvar strikeSyntax = '~~';\nvar Strike$1 = /** @class */ (function (_super) {\n __extends$1(Strike, _super);\n function Strike() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Strike.prototype, \"name\", {\n get: function () {\n return 'strike';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Strike.prototype, \"schema\", {\n get: function () {\n return {\n toDOM: function () {\n return ['span', { class: clsWithMdPrefix('strike') }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Strike.prototype.commands = function () {\n return toggleMark(reStrike, strikeSyntax);\n };\n Strike.prototype.keymaps = function () {\n var strikeCommand = this.commands()();\n return { 'Mod-s': strikeCommand, 'Mod-S': strikeCommand };\n };\n return Strike;\n}(Mark));\n\nvar reEmph = /^(\\*|_).*([\\s\\S]*)\\1$/m;\nvar emphSyntax = '*';\nvar Emph$1 = /** @class */ (function (_super) {\n __extends$1(Emph, _super);\n function Emph() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Emph.prototype, \"name\", {\n get: function () {\n return 'emph';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Emph.prototype, \"schema\", {\n get: function () {\n return {\n toDOM: function () {\n return ['span', { class: clsWithMdPrefix('emph') }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Emph.prototype.italic = function () {\n return toggleMark(reEmph, emphSyntax);\n };\n Emph.prototype.commands = function () {\n return { italic: this.italic() };\n };\n Emph.prototype.keymaps = function () {\n var italicCommand = this.italic()();\n return { 'Mod-i': italicCommand, 'Mod-I': italicCommand };\n };\n return Emph;\n}(Mark));\n\nvar reCode = /^(`).*([\\s\\S]*)\\1$/m;\nvar codeSyntax = '`';\nvar Code$1 = /** @class */ (function (_super) {\n __extends$1(Code, _super);\n function Code() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Code.prototype, \"name\", {\n get: function () {\n return 'code';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Code.prototype, \"schema\", {\n get: function () {\n return {\n attrs: {\n start: { default: false },\n end: { default: false },\n marked: { default: false },\n },\n toDOM: function (mark) {\n var _a = mark.attrs, start = _a.start, end = _a.end, marked = _a.marked;\n var classNames = 'code';\n if (start) {\n classNames += '|delimiter|start';\n }\n if (end) {\n classNames += '|delimiter|end';\n }\n if (marked) {\n classNames += '|marked-text';\n }\n return ['span', { class: clsWithMdPrefix.apply(void 0, classNames.split('|')) }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Code.prototype.commands = function () {\n return toggleMark(reCode, codeSyntax);\n };\n Code.prototype.keymaps = function () {\n var codeCommand = this.commands()();\n return { 'Shift-Mod-c': codeCommand, 'Shift-Mod-C': codeCommand };\n };\n return Code;\n}(Mark));\n\nvar Link$1 = /** @class */ (function (_super) {\n __extends$1(Link, _super);\n function Link() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Link.prototype, \"name\", {\n get: function () {\n return 'link';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Link.prototype, \"schema\", {\n get: function () {\n return {\n attrs: {\n url: { default: false },\n desc: { default: false },\n },\n toDOM: function (_a) {\n var attrs = _a.attrs;\n var url = attrs.url, desc = attrs.desc;\n var classNames = 'link';\n if (url) {\n classNames += '|link-url|marked-text';\n }\n if (desc) {\n classNames += '|link-desc|marked-text';\n }\n return ['span', { class: clsWithMdPrefix.apply(void 0, classNames.split('|')) }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Link.prototype.addLinkOrImage = function (commandType) {\n return function (payload) { return function (_a, dispatch) {\n var selection = _a.selection, tr = _a.tr, schema = _a.schema;\n var _b = resolveSelectionPos(selection), from = _b[0], to = _b[1];\n var _c = payload, linkText = _c.linkText, altText = _c.altText, linkUrl = _c.linkUrl, imageUrl = _c.imageUrl;\n var text = linkText;\n var url = linkUrl;\n var syntax = '';\n if (commandType === 'image') {\n text = altText;\n url = imageUrl;\n syntax = '!';\n }\n text = escapeTextForLink(text);\n syntax += \"[\" + text + \"](\" + url + \")\";\n dispatch(tr.replaceWith(from, to, createTextNode$1(schema, syntax)));\n return true;\n }; };\n };\n Link.prototype.commands = function () {\n return {\n addImage: this.addLinkOrImage('image'),\n addLink: this.addLinkOrImage('link'),\n };\n };\n return Link;\n}(Mark));\n\nvar TaskDelimiter = /** @class */ (function (_super) {\n __extends$1(TaskDelimiter, _super);\n function TaskDelimiter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(TaskDelimiter.prototype, \"name\", {\n get: function () {\n return 'taskDelimiter';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TaskDelimiter.prototype, \"schema\", {\n get: function () {\n return {\n toDOM: function () {\n return ['span', { class: clsWithMdPrefix('delimiter', 'list-item') }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n return TaskDelimiter;\n}(Mark));\nvar Delimiter = /** @class */ (function (_super) {\n __extends$1(Delimiter, _super);\n function Delimiter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Delimiter.prototype, \"name\", {\n get: function () {\n return 'delimiter';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Delimiter.prototype, \"schema\", {\n get: function () {\n return {\n toDOM: function () {\n return ['span', { class: clsWithMdPrefix('delimiter') }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n return Delimiter;\n}(Mark));\nvar Meta = /** @class */ (function (_super) {\n __extends$1(Meta, _super);\n function Meta() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Meta.prototype, \"name\", {\n get: function () {\n return 'meta';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Meta.prototype, \"schema\", {\n get: function () {\n return {\n toDOM: function () {\n return ['span', { class: clsWithMdPrefix('meta') }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n return Meta;\n}(Mark));\nvar MarkedText = /** @class */ (function (_super) {\n __extends$1(MarkedText, _super);\n function MarkedText() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(MarkedText.prototype, \"name\", {\n get: function () {\n return 'markedText';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MarkedText.prototype, \"schema\", {\n get: function () {\n return {\n toDOM: function () {\n return ['span', { class: clsWithMdPrefix('marked-text') }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n return MarkedText;\n}(Mark));\nvar TableCell = /** @class */ (function (_super) {\n __extends$1(TableCell, _super);\n function TableCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(TableCell.prototype, \"name\", {\n get: function () {\n return 'tableCell';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TableCell.prototype, \"schema\", {\n get: function () {\n return {\n toDOM: function () {\n return ['span', { class: clsWithMdPrefix('table-cell') }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n return TableCell;\n}(Mark));\n\nvar Html = /** @class */ (function (_super) {\n __extends$1(Html, _super);\n function Html() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Html.prototype, \"name\", {\n get: function () {\n return 'html';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Html.prototype, \"schema\", {\n get: function () {\n return {\n toDOM: function () {\n return ['span', { class: clsWithMdPrefix('html') }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n return Html;\n}(Mark));\n\nvar customBlockSyntax = '$$';\nvar CustomBlock$1 = /** @class */ (function (_super) {\n __extends$1(CustomBlock, _super);\n function CustomBlock() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(CustomBlock.prototype, \"name\", {\n get: function () {\n return 'customBlock';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CustomBlock.prototype, \"schema\", {\n get: function () {\n return {\n toDOM: function () {\n return ['span', { class: clsWithMdPrefix('custom-block') }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n CustomBlock.prototype.commands = function () {\n return function (payload) { return function (state, dispatch) {\n var selection = state.selection, schema = state.schema, tr = state.tr;\n var _a = getRangeInfo(selection), startFromOffset = _a.startFromOffset, endToOffset = _a.endToOffset;\n if (!(payload === null || payload === void 0 ? void 0 : payload.info)) {\n return false;\n }\n var customBlock = \"\" + customBlockSyntax + payload.info;\n var startNode = createTextNode$1(schema, customBlock);\n var endNode = createTextNode$1(schema, customBlockSyntax);\n tr.insert(startFromOffset, startNode).split(startFromOffset + customBlock.length);\n tr.split(tr.mapping.map(endToOffset)).insert(tr.mapping.map(endToOffset), endNode);\n dispatch(tr.setSelection(createTextSelection(tr, tr.mapping.map(endToOffset) - (customBlockSyntax.length + 2))));\n return true;\n }; };\n };\n return CustomBlock;\n}(Mark));\n\nvar reTaskMarkerKey = /x|backspace/i;\nvar reTaskMarker = /^\\[(\\s*)(x?)(\\s*)\\](?:\\s+)/i;\nfunction smartTask(_a) {\n var schema = _a.schema, toastMark = _a.toastMark;\n return new prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]({\n props: {\n handleDOMEvents: {\n keyup: function (view, ev) {\n var _a;\n var _b = view.state, doc = _b.doc, tr = _b.tr, selection = _b.selection;\n if (selection.empty && reTaskMarkerKey.test(ev.key)) {\n var _c = getRangeInfo(selection), startIndex = _c.startIndex, startFromOffset = _c.startFromOffset, from = _c.from;\n // should add `1` to line for the markdown parser\n // because markdown parser has `1`(not zero) as the start number\n var mdPos = [startIndex + 1, from - startFromOffset + 1];\n var mdNode = toastMark.findNodeAtPosition(mdPos);\n var paraNode = findClosestNode(mdNode, function (node) { var _a; return node.type === 'paragraph' && ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === 'item'; });\n if ((_a = paraNode === null || paraNode === void 0 ? void 0 : paraNode.firstChild) === null || _a === void 0 ? void 0 : _a.literal) {\n var firstChild = paraNode.firstChild;\n var matched = firstChild.literal.match(reTaskMarker);\n if (matched) {\n var startMdPos = firstChild.sourcepos[0];\n var startSpaces = matched[1], stateChar = matched[2], lastSpaces = matched[3];\n var spaces = startSpaces.length + lastSpaces.length;\n var startOffset = getNodeContentOffsetRange(doc, startMdPos[0] - 1).startOffset;\n var startPos = startMdPos[1] + startOffset;\n if (stateChar) {\n var addedPos = spaces ? spaces + 1 : 0;\n tr.replaceWith(startPos, addedPos + startPos, schema.text(stateChar));\n view.dispatch(tr);\n }\n else if (!spaces) {\n tr.insertText(' ', startPos);\n view.dispatch(tr);\n }\n }\n }\n }\n return false;\n },\n },\n },\n });\n}\n\nvar EVENT_TYPE = 'cut';\nvar reLineEnding$2 = /\\r\\n|\\n|\\r/;\nvar MdEditor = /** @class */ (function (_super) {\n __extends$1(MdEditor, _super);\n function MdEditor(eventEmitter, options) {\n var _this = _super.call(this, eventEmitter) || this;\n var toastMark = options.toastMark, _a = options.useCommandShortcut, useCommandShortcut = _a === void 0 ? true : _a, _b = options.mdPlugins, mdPlugins = _b === void 0 ? [] : _b;\n _this.editorType = 'markdown';\n _this.el.classList.add('md-mode');\n _this.toastMark = toastMark;\n _this.extraPlugins = mdPlugins;\n _this.specs = _this.createSpecs();\n _this.schema = _this.createSchema();\n _this.context = _this.createContext();\n _this.keymaps = _this.createKeymaps(useCommandShortcut);\n _this.view = _this.createView();\n _this.commands = _this.createCommands();\n _this.specs.setContext(__assign$1(__assign$1({}, _this.context), { view: _this.view }));\n _this.createClipboard();\n // To prevent unnecessary focus setting during initial rendering\n _this.eventEmitter.listen('changePreviewTabWrite', function (isMarkdownTabMounted) {\n return _this.toggleActive(true, isMarkdownTabMounted);\n });\n _this.eventEmitter.listen('changePreviewTabPreview', function () { return _this.toggleActive(false); });\n _this.initEvent();\n return _this;\n }\n MdEditor.prototype.toggleActive = function (active, isMarkdownTabMounted) {\n toggleClass(this.el, 'active', active);\n if (active) {\n if (!isMarkdownTabMounted) {\n this.focus();\n }\n }\n else {\n this.blur();\n }\n };\n MdEditor.prototype.createClipboard = function () {\n var _this = this;\n this.clipboard = document.createElement('textarea');\n this.clipboard.className = cls('pseudo-clipboard');\n this.clipboard.addEventListener('paste', function (ev) {\n var clipboardData = ev.clipboardData || window.clipboardData;\n var items = clipboardData && clipboardData.items;\n if (items) {\n var containRtfItem = toArray_1(items).some(function (item) { return item.kind === 'string' && item.type === 'text/rtf'; });\n // if it contains rtf, it's most likely copy paste from office -> no image\n if (!containRtfItem) {\n var imageBlob = pasteImageOnly(items);\n if (imageBlob) {\n ev.preventDefault();\n emitImageBlobHook(_this.eventEmitter, imageBlob, ev.type);\n }\n }\n }\n });\n // process the pasted data in input event for IE11\n this.clipboard.addEventListener('input', function (ev) {\n var text = ev.target.value;\n _this.replaceSelection(text);\n ev.preventDefault();\n ev.target.value = '';\n });\n this.el.insertBefore(this.clipboard, this.view.dom);\n };\n MdEditor.prototype.createContext = function () {\n return {\n toastMark: this.toastMark,\n schema: this.schema,\n eventEmitter: this.eventEmitter,\n };\n };\n MdEditor.prototype.createSpecs = function () {\n return new SpecManager([\n new Doc$1(),\n new Paragraph$1(),\n new Widget(),\n new Text$1(),\n new Heading$1(),\n new BlockQuote$1(),\n new CodeBlock$1(),\n new CustomBlock$1(),\n new Table$1(),\n new TableCell(),\n new ThematicBreak$1(),\n new ListItem$1(),\n new Strong$1(),\n new Strike$1(),\n new Emph$1(),\n new Code$1(),\n new Link$1(),\n new Delimiter(),\n new TaskDelimiter(),\n new MarkedText(),\n new Meta(),\n new Html(),\n ]);\n };\n MdEditor.prototype.createPlugins = function () {\n return __spreadArray$1([\n syntaxHighlight(this.context),\n previewHighlight(this.context),\n smartTask(this.context)\n ], this.createPluginProps()).concat(this.defaultPlugins);\n };\n MdEditor.prototype.createView = function () {\n var _this = this;\n return new prosemirror_view__WEBPACK_IMPORTED_MODULE_1__[\"EditorView\"](this.el, {\n state: this.createState(),\n dispatchTransaction: function (tr) {\n _this.updateMarkdown(tr);\n var state = _this.view.state.applyTransaction(tr).state;\n _this.view.updateState(state);\n _this.emitChangeEvent(tr);\n },\n handleKeyDown: function (_, ev) {\n if ((ev.metaKey || ev.ctrlKey) && ev.key.toUpperCase() === 'V') {\n _this.clipboard.focus();\n }\n _this.eventEmitter.emit('keydown', _this.editorType, ev);\n return false;\n },\n handleDOMEvents: {\n copy: function (_, ev) { return _this.captureCopy(ev); },\n cut: function (_, ev) { return _this.captureCopy(ev, EVENT_TYPE); },\n scroll: function () {\n _this.eventEmitter.emit('scroll', 'editor');\n return true;\n },\n keyup: function (_, ev) {\n _this.eventEmitter.emit('keyup', _this.editorType, ev);\n return false;\n },\n },\n nodeViews: {\n widget: widgetNodeView,\n },\n });\n };\n MdEditor.prototype.createCommands = function () {\n return this.specs.commands(this.view);\n };\n MdEditor.prototype.captureCopy = function (ev, type) {\n ev.preventDefault();\n var _a = this.view.state, selection = _a.selection, tr = _a.tr;\n if (selection.empty) {\n return true;\n }\n var text = this.getChanged(selection.content());\n if (ev.clipboardData) {\n ev.clipboardData.setData('text/plain', text);\n }\n else {\n window.clipboardData.setData('Text', text);\n }\n if (type === EVENT_TYPE) {\n this.view.dispatch(tr.deleteSelection().scrollIntoView().setMeta('uiEvent', EVENT_TYPE));\n }\n return true;\n };\n MdEditor.prototype.updateMarkdown = function (tr) {\n var _this = this;\n if (tr.docChanged) {\n tr.steps.forEach(function (step, index) {\n if (step.slice && !(step instanceof prosemirror_transform__WEBPACK_IMPORTED_MODULE_2__[\"ReplaceAroundStep\"])) {\n var doc = tr.docs[index];\n var _a = [step.from, step.to], from = _a[0], to = _a[1];\n var _b = getEditorToMdPos(doc, from, to), startPos = _b[0], endPos = _b[1];\n var changed = _this.getChanged(step.slice);\n if (startPos[0] === endPos[0] && startPos[1] === endPos[1] && changed === '') {\n changed = '\\n';\n }\n var editResult = _this.toastMark.editMarkdown(startPos, endPos, changed);\n _this.eventEmitter.emit('updatePreview', editResult);\n tr.setMeta('editResult', editResult).scrollIntoView();\n }\n });\n }\n };\n MdEditor.prototype.getChanged = function (slice) {\n var changed = '';\n var from = 0;\n var to = slice.content.size;\n slice.content.nodesBetween(from, to, function (node, pos) {\n if (node.isText) {\n changed += node.text.slice(Math.max(from, pos) - pos, to - pos);\n }\n else if (node.isBlock && pos > 0) {\n changed += '\\n';\n }\n });\n return changed;\n };\n MdEditor.prototype.setSelection = function (start, end) {\n if (end === void 0) { end = start; }\n var tr = this.view.state.tr;\n var _a = getMdToEditorPos(tr.doc, start, end), from = _a[0], to = _a[1];\n this.view.dispatch(tr.setSelection(createTextSelection(tr, from, to)).scrollIntoView());\n };\n MdEditor.prototype.replaceSelection = function (text, start, end) {\n var newTr;\n var _a = this.view.state, tr = _a.tr, schema = _a.schema, doc = _a.doc;\n var lineTexts = text.split(reLineEnding$2);\n var nodes = lineTexts.map(function (lineText) {\n return createParagraph(schema, createNodesWithWidget(lineText, schema));\n });\n var slice = new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(nodes), 1, 1);\n this.focus();\n if (start && end) {\n var _b = getMdToEditorPos(doc, start, end), from = _b[0], to = _b[1];\n newTr = tr.replaceRange(from, to, slice);\n }\n else {\n newTr = tr.replaceSelection(slice);\n }\n this.view.dispatch(newTr.scrollIntoView());\n };\n MdEditor.prototype.deleteSelection = function (start, end) {\n var newTr;\n var _a = this.view.state, tr = _a.tr, doc = _a.doc;\n if (start && end) {\n var _b = getMdToEditorPos(doc, start, end), from = _b[0], to = _b[1];\n newTr = tr.deleteRange(from, to);\n }\n else {\n newTr = tr.deleteSelection();\n }\n this.view.dispatch(newTr.scrollIntoView());\n };\n MdEditor.prototype.getSelectedText = function (start, end) {\n var _a = this.view.state, doc = _a.doc, selection = _a.selection;\n var from = selection.from, to = selection.to;\n if (start && end) {\n var pos = getMdToEditorPos(doc, start, end);\n from = pos[0];\n to = pos[1];\n }\n return doc.textBetween(from, to, '\\n');\n };\n MdEditor.prototype.getSelection = function () {\n var _a = this.view.state.selection, from = _a.from, to = _a.to;\n return getEditorToMdPos(this.view.state.tr.doc, from, to);\n };\n MdEditor.prototype.setMarkdown = function (markdown, cursorToEnd) {\n if (cursorToEnd === void 0) { cursorToEnd = true; }\n var lineTexts = markdown.split(reLineEnding$2);\n var _a = this.view.state, tr = _a.tr, doc = _a.doc, schema = _a.schema;\n var nodes = lineTexts.map(function (lineText) {\n return createParagraph(schema, createNodesWithWidget(lineText, schema));\n });\n this.view.dispatch(tr.replaceWith(0, doc.content.size, nodes));\n if (cursorToEnd) {\n this.moveCursorToEnd(true);\n }\n };\n MdEditor.prototype.addWidget = function (node, style, mdPos) {\n var _a = this.view.state, tr = _a.tr, doc = _a.doc, selection = _a.selection;\n var pos = mdPos ? getMdToEditorPos(doc, mdPos, mdPos)[0] : selection.to;\n this.view.dispatch(tr.setMeta('widget', { pos: pos, node: node, style: style }));\n };\n MdEditor.prototype.replaceWithWidget = function (start, end, text) {\n var _a = this.view.state, tr = _a.tr, schema = _a.schema, doc = _a.doc;\n var pos = getMdToEditorPos(doc, start, end);\n var nodes = createNodesWithWidget(text, schema);\n this.view.dispatch(tr.replaceWith(pos[0], pos[1], nodes));\n };\n MdEditor.prototype.getRangeInfoOfNode = function (pos) {\n var _a = this.view.state, doc = _a.doc, selection = _a.selection;\n var mdPos = pos || getEditorToMdPos(doc, selection.from)[0];\n var mdNode = this.toastMark.findNodeAtPosition(mdPos);\n if (mdNode.type === 'text' && mdNode.parent.type !== 'paragraph') {\n mdNode = mdNode.parent;\n }\n // add 1 sync for prosemirror position\n mdNode.sourcepos[1][1] += 1;\n return { range: mdNode.sourcepos, type: mdNode.type };\n };\n MdEditor.prototype.getMarkdown = function () {\n return this.toastMark\n .getLineTexts()\n .map(function (lineText) { return unwrapWidgetSyntax(lineText); })\n .join('\\n');\n };\n MdEditor.prototype.getToastMark = function () {\n return this.toastMark;\n };\n return MdEditor;\n}(EditorBase));\n\n/**\n * @fileoverview Get event collection for specific HTML element\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar EVENT_KEY = '_feEventKey';\n\n/**\n * Get event collection for specific HTML element\n * @param {HTMLElement} element - HTML element\n * @param {string} type - event type\n * @returns {array}\n * @private\n */\nfunction safeEvent$2(element, type) {\n var events = element[EVENT_KEY];\n var handlers;\n\n if (!events) {\n events = element[EVENT_KEY] = {};\n }\n\n handlers = events[type];\n if (!handlers) {\n handlers = events[type] = [];\n }\n\n return handlers;\n}\n\nvar _safeEvent = safeEvent$2;\n\n/**\n * @fileoverview Unbind DOM events\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar isString$1 = isString_1;\nvar forEach$1 = forEach_1;\n\nvar safeEvent$1 = _safeEvent;\n\n/**\n * Unbind DOM events\n * If a handler function is not passed, remove all events of that type.\n * @param {HTMLElement} element - element to unbind events\n * @param {(string|object)} types - Space splitted events names or eventName:handler object\n * @param {function} [handler] - handler function\n * @memberof module:domEvent\n * @example\n * // Following the example of domEvent#on\n * \n * // Unbind one event from an element.\n * off(div, 'click', toggle);\n * \n * // Unbind multiple events with a same handler from multiple elements at once.\n * // Use event names splitted by a space.\n * off(element, 'mouseenter mouseleave', changeColor);\n * \n * // Unbind multiple events with different handlers from an element at once.\n * // Use an object which of key is an event name and value is a handler function.\n * off(div, {\n * keydown: highlight,\n * keyup: dehighlight\n * });\n * \n * // Unbind events without handlers.\n * off(div, 'drag');\n */\nfunction off(element, types, handler) {\n if (isString$1(types)) {\n forEach$1(types.split(/\\s+/g), function(type) {\n unbindEvent(element, type, handler);\n });\n\n return;\n }\n\n forEach$1(types, function(func, type) {\n unbindEvent(element, type, func);\n });\n}\n\n/**\n * Unbind DOM events\n * If a handler function is not passed, remove all events of that type.\n * @param {HTMLElement} element - element to unbind events\n * @param {string} type - events name\n * @param {function} [handler] - handler function\n * @private\n */\nfunction unbindEvent(element, type, handler) {\n var events = safeEvent$1(element, type);\n var index;\n\n if (!handler) {\n forEach$1(events, function(item) {\n removeHandler(element, type, item.wrappedHandler);\n });\n events.splice(0, events.length);\n } else {\n forEach$1(events, function(item, idx) {\n if (handler === item.handler) {\n removeHandler(element, type, item.wrappedHandler);\n index = idx;\n\n return false;\n }\n\n return true;\n });\n events.splice(index, 1);\n }\n}\n\n/**\n * Remove an event handler\n * @param {HTMLElement} element - An element to remove an event\n * @param {string} type - event type\n * @param {function} handler - event handler\n * @private\n */\nfunction removeHandler(element, type, handler) {\n if ('removeEventListener' in element) {\n element.removeEventListener(type, handler);\n } else if ('detachEvent' in element) {\n element.detachEvent('on' + type, handler);\n }\n}\n\nvar off_1 = off;\n\n/**\n * @fileoverview Bind DOM events\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar isString = isString_1;\nvar forEach = forEach_1;\n\nvar safeEvent = _safeEvent;\n\n/**\n * Bind DOM events.\n * @param {HTMLElement} element - element to bind events\n * @param {(string|object)} types - Space splitted events names or eventName:handler object\n * @param {(function|object)} handler - handler function or context for handler method\n * @param {object} [context] context - context for handler method.\n * @memberof module:domEvent\n * @example\n * const div = document.querySelector('div');\n * \n * // Bind one event to an element.\n * on(div, 'click', toggle);\n * \n * // Bind multiple events with a same handler to multiple elements at once.\n * // Use event names splitted by a space.\n * on(div, 'mouseenter mouseleave', changeColor);\n * \n * // Bind multiple events with different handlers to an element at once.\n * // Use an object which of key is an event name and value is a handler function.\n * on(div, {\n * keydown: highlight,\n * keyup: dehighlight\n * });\n * \n * // Set a context for handler method.\n * const name = 'global';\n * const repository = {name: 'CodeSnippet'};\n * on(div, 'drag', function() {\n * console.log(this.name);\n * }, repository);\n * // Result when you drag a div: \"CodeSnippet\"\n */\nfunction on(element, types, handler, context) {\n if (isString(types)) {\n forEach(types.split(/\\s+/g), function(type) {\n bindEvent(element, type, handler, context);\n });\n\n return;\n }\n\n forEach(types, function(func, type) {\n bindEvent(element, type, func, handler);\n });\n}\n\n/**\n * Bind DOM events\n * @param {HTMLElement} element - element to bind events\n * @param {string} type - events name\n * @param {function} handler - handler function or context for handler method\n * @param {object} [context] context - context for handler method.\n * @private\n */\nfunction bindEvent(element, type, handler, context) {\n /**\n * Event handler\n * @param {Event} e - event object\n */\n function eventHandler(e) {\n handler.call(context || element, e || window.event);\n }\n\n if ('addEventListener' in element) {\n element.addEventListener(type, eventHandler);\n } else if ('attachEvent' in element) {\n element.attachEvent('on' + type, eventHandler);\n }\n memorizeHandler(element, type, handler, eventHandler);\n}\n\n/**\n * Memorize DOM event handler for unbinding.\n * @param {HTMLElement} element - element to bind events\n * @param {string} type - events name\n * @param {function} handler - handler function that user passed at on() use\n * @param {function} wrappedHandler - handler function that wrapped by domevent for implementing some features\n * @private\n */\nfunction memorizeHandler(element, type, handler, wrappedHandler) {\n var events = safeEvent(element, type);\n var existInEvents = false;\n\n forEach(events, function(obj) {\n if (obj.handler === handler) {\n existInEvents = true;\n\n return false;\n }\n\n return true;\n });\n\n if (!existInEvents) {\n events.push({\n handler: handler,\n wrappedHandler: wrappedHandler\n });\n }\n}\n\nvar on_1 = on;\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar encodeCache = {};\n\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) { return cache; }\n\n cache = encodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache;\n}\n\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode$1(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache,\n result = '';\n\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode$1.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n cache = getEncodeCache(exclude);\n\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue;\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result;\n}\n\nencode$1.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode$1.componentChars = \"-_.!~*'()\";\n\n\nvar encode_1 = encode$1;\n\nvar lib = {};\n\nvar decode = {};\n\nvar Aacute$1 = \"Á\";\nvar aacute$1 = \"á\";\nvar Abreve = \"Ă\";\nvar abreve = \"ă\";\nvar ac = \"∾\";\nvar acd = \"∿\";\nvar acE = \"∾̳\";\nvar Acirc$1 = \"Â\";\nvar acirc$1 = \"â\";\nvar acute$1 = \"´\";\nvar Acy = \"А\";\nvar acy = \"а\";\nvar AElig$1 = \"Æ\";\nvar aelig$1 = \"æ\";\nvar af = \"\";\nvar Afr = \"𝔄\";\nvar afr = \"𝔞\";\nvar Agrave$1 = \"À\";\nvar agrave$1 = \"à\";\nvar alefsym = \"ℵ\";\nvar aleph = \"ℵ\";\nvar Alpha = \"Α\";\nvar alpha = \"α\";\nvar Amacr = \"Ā\";\nvar amacr = \"ā\";\nvar amalg = \"⨿\";\nvar amp$2 = \"&\";\nvar AMP$1 = \"&\";\nvar andand = \"⩕\";\nvar And = \"⩓\";\nvar and = \"∧\";\nvar andd = \"⩜\";\nvar andslope = \"⩘\";\nvar andv = \"⩚\";\nvar ang = \"∠\";\nvar ange = \"⦤\";\nvar angle = \"∠\";\nvar angmsdaa = \"⦨\";\nvar angmsdab = \"⦩\";\nvar angmsdac = \"⦪\";\nvar angmsdad = \"⦫\";\nvar angmsdae = \"⦬\";\nvar angmsdaf = \"⦭\";\nvar angmsdag = \"⦮\";\nvar angmsdah = \"⦯\";\nvar angmsd = \"∡\";\nvar angrt = \"∟\";\nvar angrtvb = \"⊾\";\nvar angrtvbd = \"⦝\";\nvar angsph = \"∢\";\nvar angst = \"Å\";\nvar angzarr = \"⍼\";\nvar Aogon = \"Ą\";\nvar aogon = \"ą\";\nvar Aopf = \"𝔸\";\nvar aopf = \"𝕒\";\nvar apacir = \"⩯\";\nvar ap = \"≈\";\nvar apE = \"⩰\";\nvar ape = \"≊\";\nvar apid = \"≋\";\nvar apos$1 = \"'\";\nvar ApplyFunction = \"\";\nvar approx = \"≈\";\nvar approxeq = \"≊\";\nvar Aring$1 = \"Å\";\nvar aring$1 = \"å\";\nvar Ascr = \"𝒜\";\nvar ascr = \"𝒶\";\nvar Assign = \"≔\";\nvar ast = \"*\";\nvar asymp = \"≈\";\nvar asympeq = \"≍\";\nvar Atilde$1 = \"Ã\";\nvar atilde$1 = \"ã\";\nvar Auml$1 = \"Ä\";\nvar auml$1 = \"ä\";\nvar awconint = \"∳\";\nvar awint = \"⨑\";\nvar backcong = \"≌\";\nvar backepsilon = \"϶\";\nvar backprime = \"\";\nvar backsim = \"∽\";\nvar backsimeq = \"⋍\";\nvar Backslash = \"\";\nvar Barv = \"⫧\";\nvar barvee = \"⊽\";\nvar barwed = \"⌅\";\nvar Barwed = \"⌆\";\nvar barwedge = \"⌅\";\nvar bbrk = \"⎵\";\nvar bbrktbrk = \"⎶\";\nvar bcong = \"≌\";\nvar Bcy = \"Б\";\nvar bcy = \"б\";\nvar bdquo = \"„\";\nvar becaus = \"∵\";\nvar because = \"∵\";\nvar Because = \"∵\";\nvar bemptyv = \"⦰\";\nvar bepsi = \"϶\";\nvar bernou = \"\";\nvar Bernoullis = \"\";\nvar Beta = \"Β\";\nvar beta = \"β\";\nvar beth = \"ℶ\";\nvar between = \"≬\";\nvar Bfr = \"𝔅\";\nvar bfr = \"𝔟\";\nvar bigcap = \"⋂\";\nvar bigcirc = \"◯\";\nvar bigcup = \"\";\nvar bigodot = \"⨀\";\nvar bigoplus = \"⨁\";\nvar bigotimes = \"⨂\";\nvar bigsqcup = \"⨆\";\nvar bigstar = \"★\";\nvar bigtriangledown = \"▽\";\nvar bigtriangleup = \"△\";\nvar biguplus = \"⨄\";\nvar bigvee = \"\";\nvar bigwedge = \"⋀\";\nvar bkarow = \"⤍\";\nvar blacklozenge = \"⧫\";\nvar blacksquare = \"▪\";\nvar blacktriangle = \"▴\";\nvar blacktriangledown = \"▾\";\nvar blacktriangleleft = \"◂\";\nvar blacktriangleright = \"▸\";\nvar blank = \"␣\";\nvar blk12 = \"▒\";\nvar blk14 = \"░\";\nvar blk34 = \"▓\";\nvar block = \"█\";\nvar bne = \"=⃥\";\nvar bnequiv = \"≡⃥\";\nvar bNot = \"⫭\";\nvar bnot = \"⌐\";\nvar Bopf = \"𝔹\";\nvar bopf = \"𝕓\";\nvar bot = \"⊥\";\nvar bottom = \"⊥\";\nvar bowtie = \"⋈\";\nvar boxbox = \"⧉\";\nvar boxdl = \"┐\";\nvar boxdL = \"╕\";\nvar boxDl = \"╖\";\nvar boxDL = \"╗\";\nvar boxdr = \"┌\";\nvar boxdR = \"╒\";\nvar boxDr = \"╓\";\nvar boxDR = \"╔\";\nvar boxh = \"─\";\nvar boxH = \"═\";\nvar boxhd = \"┬\";\nvar boxHd = \"╤\";\nvar boxhD = \"╥\";\nvar boxHD = \"╦\";\nvar boxhu = \"┴\";\nvar boxHu = \"╧\";\nvar boxhU = \"╨\";\nvar boxHU = \"╩\";\nvar boxminus = \"⊟\";\nvar boxplus = \"⊞\";\nvar boxtimes = \"⊠\";\nvar boxul = \"┘\";\nvar boxuL = \"╛\";\nvar boxUl = \"╜\";\nvar boxUL = \"╝\";\nvar boxur = \"└\";\nvar boxuR = \"╘\";\nvar boxUr = \"╙\";\nvar boxUR = \"╚\";\nvar boxv = \"│\";\nvar boxV = \"║\";\nvar boxvh = \"┼\";\nvar boxvH = \"╪\";\nvar boxVh = \"╫\";\nvar boxVH = \"╬\";\nvar boxvl = \"┤\";\nvar boxvL = \"╡\";\nvar boxVl = \"╢\";\nvar boxVL = \"╣\";\nvar boxvr = \"├\";\nvar boxvR = \"╞\";\nvar boxVr = \"╟\";\nvar boxVR = \"╠\";\nvar bprime = \"\";\nvar breve = \"˘\";\nvar Breve = \"˘\";\nvar brvbar$1 = \"¦\";\nvar bscr = \"𝒷\";\nvar Bscr = \"\";\nvar bsemi = \"⁏\";\nvar bsim = \"∽\";\nvar bsime = \"⋍\";\nvar bsolb = \"⧅\";\nvar bsol = \"\\\\\";\nvar bsolhsub = \"⟈\";\nvar bull = \"•\";\nvar bullet = \"•\";\nvar bump = \"≎\";\nvar bumpE = \"⪮\";\nvar bumpe = \"≏\";\nvar Bumpeq = \"≎\";\nvar bumpeq = \"≏\";\nvar Cacute = \"Ć\";\nvar cacute = \"ć\";\nvar capand = \"⩄\";\nvar capbrcup = \"⩉\";\nvar capcap = \"⩋\";\nvar cap = \"∩\";\nvar Cap = \"⋒\";\nvar capcup = \"⩇\";\nvar capdot = \"⩀\";\nvar CapitalDifferentialD = \"\";\nvar caps = \"∩︀\";\nvar caret = \"\";\nvar caron = \"ˇ\";\nvar Cayleys = \"\";\nvar ccaps = \"⩍\";\nvar Ccaron = \"Č\";\nvar ccaron = \"č\";\nvar Ccedil$1 = \"Ç\";\nvar ccedil$1 = \"ç\";\nvar Ccirc = \"Ĉ\";\nvar ccirc = \"ĉ\";\nvar Cconint = \"∰\";\nvar ccups = \"⩌\";\nvar ccupssm = \"⩐\";\nvar Cdot = \"Ċ\";\nvar cdot = \"ċ\";\nvar cedil$1 = \"¸\";\nvar Cedilla = \"¸\";\nvar cemptyv = \"⦲\";\nvar cent$1 = \"¢\";\nvar centerdot = \"·\";\nvar CenterDot = \"·\";\nvar cfr = \"𝔠\";\nvar Cfr = \"\";\nvar CHcy = \"Ч\";\nvar chcy = \"ч\";\nvar check = \"✓\";\nvar checkmark = \"✓\";\nvar Chi = \"Χ\";\nvar chi = \"χ\";\nvar circ = \"ˆ\";\nvar circeq = \"≗\";\nvar circlearrowleft = \"↺\";\nvar circlearrowright = \"↻\";\nvar circledast = \"⊛\";\nvar circledcirc = \"⊚\";\nvar circleddash = \"⊝\";\nvar CircleDot = \"⊙\";\nvar circledR = \"®\";\nvar circledS = \"Ⓢ\";\nvar CircleMinus = \"⊖\";\nvar CirclePlus = \"⊕\";\nvar CircleTimes = \"⊗\";\nvar cir = \"○\";\nvar cirE = \"⧃\";\nvar cire = \"≗\";\nvar cirfnint = \"⨐\";\nvar cirmid = \"⫯\";\nvar cirscir = \"⧂\";\nvar ClockwiseContourIntegral = \"∲\";\nvar CloseCurlyDoubleQuote = \"”\";\nvar CloseCurlyQuote = \"\";\nvar clubs = \"♣\";\nvar clubsuit = \"♣\";\nvar colon = \":\";\nvar Colon = \"∷\";\nvar Colone = \"⩴\";\nvar colone = \"≔\";\nvar coloneq = \"≔\";\nvar comma = \",\";\nvar commat = \"@\";\nvar comp = \"∁\";\nvar compfn = \"∘\";\nvar complement = \"∁\";\nvar complexes = \"\";\nvar cong = \"≅\";\nvar congdot = \"⩭\";\nvar Congruent = \"≡\";\nvar conint = \"∮\";\nvar Conint = \"∯\";\nvar ContourIntegral = \"∮\";\nvar copf = \"𝕔\";\nvar Copf = \"\";\nvar coprod = \"∐\";\nvar Coproduct = \"∐\";\nvar copy$1 = \"©\";\nvar COPY$1 = \"©\";\nvar copysr = \"℗\";\nvar CounterClockwiseContourIntegral = \"∳\";\nvar crarr = \"↵\";\nvar cross = \"✗\";\nvar Cross = \"\";\nvar Cscr = \"𝒞\";\nvar cscr = \"𝒸\";\nvar csub = \"⫏\";\nvar csube = \"⫑\";\nvar csup = \"⫐\";\nvar csupe = \"⫒\";\nvar ctdot = \"⋯\";\nvar cudarrl = \"⤸\";\nvar cudarrr = \"⤵\";\nvar cuepr = \"⋞\";\nvar cuesc = \"⋟\";\nvar cularr = \"↶\";\nvar cularrp = \"⤽\";\nvar cupbrcap = \"⩈\";\nvar cupcap = \"⩆\";\nvar CupCap = \"≍\";\nvar cup = \"\";\nvar Cup = \"⋓\";\nvar cupcup = \"⩊\";\nvar cupdot = \"⊍\";\nvar cupor = \"⩅\";\nvar cups = \"︀\";\nvar curarr = \"↷\";\nvar curarrm = \"⤼\";\nvar curlyeqprec = \"⋞\";\nvar curlyeqsucc = \"⋟\";\nvar curlyvee = \"⋎\";\nvar curlywedge = \"⋏\";\nvar curren$1 = \"¤\";\nvar curvearrowleft = \"↶\";\nvar curvearrowright = \"↷\";\nvar cuvee = \"⋎\";\nvar cuwed = \"⋏\";\nvar cwconint = \"∲\";\nvar cwint = \"∱\";\nvar cylcty = \"⌭\";\nvar dagger = \"†\";\nvar Dagger = \"‡\";\nvar daleth = \"ℸ\";\nvar darr = \"↓\";\nvar Darr = \"↡\";\nvar dArr = \"⇓\";\nvar dash = \"\";\nvar Dashv = \"⫤\";\nvar dashv = \"⊣\";\nvar dbkarow = \"⤏\";\nvar dblac = \"˝\";\nvar Dcaron = \"Ď\";\nvar dcaron = \"ď\";\nvar Dcy = \"Д\";\nvar dcy = \"д\";\nvar ddagger = \"‡\";\nvar ddarr = \"⇊\";\nvar DD = \"\";\nvar dd = \"\";\nvar DDotrahd = \"⤑\";\nvar ddotseq = \"⩷\";\nvar deg$1 = \"°\";\nvar Del = \"∇\";\nvar Delta = \"Δ\";\nvar delta = \"δ\";\nvar demptyv = \"⦱\";\nvar dfisht = \"⥿\";\nvar Dfr = \"𝔇\";\nvar dfr = \"𝔡\";\nvar dHar = \"⥥\";\nvar dharl = \"⇃\";\nvar dharr = \"⇂\";\nvar DiacriticalAcute = \"´\";\nvar DiacriticalDot = \"˙\";\nvar DiacriticalDoubleAcute = \"˝\";\nvar DiacriticalGrave = \"`\";\nvar DiacriticalTilde = \"˜\";\nvar diam = \"⋄\";\nvar diamond = \"⋄\";\nvar Diamond = \"⋄\";\nvar diamondsuit = \"♦\";\nvar diams = \"♦\";\nvar die = \"¨\";\nvar DifferentialD = \"\";\nvar digamma = \"ϝ\";\nvar disin = \"⋲\";\nvar div = \"÷\";\nvar divide$1 = \"÷\";\nvar divideontimes = \"⋇\";\nvar divonx = \"⋇\";\nvar DJcy = \"Ђ\";\nvar djcy = \"ђ\";\nvar dlcorn = \"⌞\";\nvar dlcrop = \"⌍\";\nvar dollar = \"$\";\nvar Dopf = \"𝔻\";\nvar dopf = \"𝕕\";\nvar Dot = \"¨\";\nvar dot = \"˙\";\nvar DotDot = \"⃜\";\nvar doteq = \"≐\";\nvar doteqdot = \"≑\";\nvar DotEqual = \"≐\";\nvar dotminus = \"∸\";\nvar dotplus = \"∔\";\nvar dotsquare = \"⊡\";\nvar doublebarwedge = \"⌆\";\nvar DoubleContourIntegral = \"∯\";\nvar DoubleDot = \"¨\";\nvar DoubleDownArrow = \"⇓\";\nvar DoubleLeftArrow = \"⇐\";\nvar DoubleLeftRightArrow = \"⇔\";\nvar DoubleLeftTee = \"⫤\";\nvar DoubleLongLeftArrow = \"⟸\";\nvar DoubleLongLeftRightArrow = \"⟺\";\nvar DoubleLongRightArrow = \"⟹\";\nvar DoubleRightArrow = \"⇒\";\nvar DoubleRightTee = \"⊨\";\nvar DoubleUpArrow = \"⇑\";\nvar DoubleUpDownArrow = \"⇕\";\nvar DoubleVerticalBar = \"∥\";\nvar DownArrowBar = \"⤓\";\nvar downarrow = \"↓\";\nvar DownArrow = \"↓\";\nvar Downarrow = \"⇓\";\nvar DownArrowUpArrow = \"⇵\";\nvar DownBreve = \"̑\";\nvar downdownarrows = \"⇊\";\nvar downharpoonleft = \"⇃\";\nvar downharpoonright = \"⇂\";\nvar DownLeftRightVector = \"⥐\";\nvar DownLeftTeeVector = \"⥞\";\nvar DownLeftVectorBar = \"⥖\";\nvar DownLeftVector = \"↽\";\nvar DownRightTeeVector = \"⥟\";\nvar DownRightVectorBar = \"⥗\";\nvar DownRightVector = \"⇁\";\nvar DownTeeArrow = \"↧\";\nvar DownTee = \"\";\nvar drbkarow = \"⤐\";\nvar drcorn = \"⌟\";\nvar drcrop = \"⌌\";\nvar Dscr = \"𝒟\";\nvar dscr = \"𝒹\";\nvar DScy = \"Ѕ\";\nvar dscy = \"ѕ\";\nvar dsol = \"⧶\";\nvar Dstrok = \"Đ\";\nvar dstrok = \"đ\";\nvar dtdot = \"⋱\";\nvar dtri = \"▿\";\nvar dtrif = \"▾\";\nvar duarr = \"⇵\";\nvar duhar = \"⥯\";\nvar dwangle = \"⦦\";\nvar DZcy = \"Џ\";\nvar dzcy = \"џ\";\nvar dzigrarr = \"⟿\";\nvar Eacute$1 = \"É\";\nvar eacute$1 = \"é\";\nvar easter = \"⩮\";\nvar Ecaron = \"Ě\";\nvar ecaron = \"ě\";\nvar Ecirc$1 = \"Ê\";\nvar ecirc$1 = \"ê\";\nvar ecir = \"≖\";\nvar ecolon = \"≕\";\nvar Ecy = \"Э\";\nvar ecy = \"э\";\nvar eDDot = \"⩷\";\nvar Edot = \"Ė\";\nvar edot = \"ė\";\nvar eDot = \"≑\";\nvar ee = \"\";\nvar efDot = \"≒\";\nvar Efr = \"𝔈\";\nvar efr = \"𝔢\";\nvar eg = \"⪚\";\nvar Egrave$1 = \"È\";\nvar egrave$1 = \"è\";\nvar egs = \"⪖\";\nvar egsdot = \"⪘\";\nvar el = \"⪙\";\nvar Element$1 = \"∈\";\nvar elinters = \"⏧\";\nvar ell = \"\";\nvar els = \"⪕\";\nvar elsdot = \"⪗\";\nvar Emacr = \"Ē\";\nvar emacr = \"ē\";\nvar empty = \"∅\";\nvar emptyset = \"∅\";\nvar EmptySmallSquare = \"◻\";\nvar emptyv = \"∅\";\nvar EmptyVerySmallSquare = \"▫\";\nvar emsp13 = \"\";\nvar emsp14 = \"\";\nvar emsp = \"\";\nvar ENG = \"Ŋ\";\nvar eng = \"ŋ\";\nvar ensp = \"\";\nvar Eogon = \"Ę\";\nvar eogon = \"ę\";\nvar Eopf = \"𝔼\";\nvar eopf = \"𝕖\";\nvar epar = \"⋕\";\nvar eparsl = \"⧣\";\nvar eplus = \"⩱\";\nvar epsi = \"ε\";\nvar Epsilon = \"Ε\";\nvar epsilon = \"ε\";\nvar epsiv = \"ϵ\";\nvar eqcirc = \"≖\";\nvar eqcolon = \"≕\";\nvar eqsim = \"≂\";\nvar eqslantgtr = \"⪖\";\nvar eqslantless = \"⪕\";\nvar Equal = \"⩵\";\nvar equals = \"=\";\nvar EqualTilde = \"≂\";\nvar equest = \"≟\";\nvar Equilibrium = \"⇌\";\nvar equiv = \"≡\";\nvar equivDD = \"⩸\";\nvar eqvparsl = \"⧥\";\nvar erarr = \"⥱\";\nvar erDot = \"≓\";\nvar escr = \"\";\nvar Escr = \"\";\nvar esdot = \"≐\";\nvar Esim = \"⩳\";\nvar esim = \"≂\";\nvar Eta = \"Η\";\nvar eta = \"η\";\nvar ETH$1 = \"Ð\";\nvar eth$1 = \"ð\";\nvar Euml$1 = \"Ë\";\nvar euml$1 = \"ë\";\nvar euro = \"€\";\nvar excl = \"!\";\nvar exist = \"∃\";\nvar Exists = \"∃\";\nvar expectation = \"\";\nvar exponentiale = \"\";\nvar ExponentialE = \"\";\nvar fallingdotseq = \"≒\";\nvar Fcy = \"Ф\";\nvar fcy = \"ф\";\nvar female = \"♀\";\nvar ffilig = \"ffi\";\nvar fflig = \"ff\";\nvar ffllig = \"ffl\";\nvar Ffr = \"𝔉\";\nvar ffr = \"𝔣\";\nvar filig = \"fi\";\nvar FilledSmallSquare = \"◼\";\nvar FilledVerySmallSquare = \"▪\";\nvar fjlig = \"fj\";\nvar flat = \"♭\";\nvar fllig = \"fl\";\nvar fltns = \"▱\";\nvar fnof = \"ƒ\";\nvar Fopf = \"𝔽\";\nvar fopf = \"𝕗\";\nvar forall = \"∀\";\nvar ForAll = \"∀\";\nvar fork = \"⋔\";\nvar forkv = \"⫙\";\nvar Fouriertrf = \"\";\nvar fpartint = \"⨍\";\nvar frac12$1 = \"½\";\nvar frac13 = \"⅓\";\nvar frac14$1 = \"¼\";\nvar frac15 = \"⅕\";\nvar frac16 = \"⅙\";\nvar frac18 = \"⅛\";\nvar frac23 = \"⅔\";\nvar frac25 = \"⅖\";\nvar frac34$1 = \"¾\";\nvar frac35 = \"⅗\";\nvar frac38 = \"⅜\";\nvar frac45 = \"⅘\";\nvar frac56 = \"⅚\";\nvar frac58 = \"⅝\";\nvar frac78 = \"⅞\";\nvar frasl = \"\";\nvar frown = \"⌢\";\nvar fscr = \"𝒻\";\nvar Fscr = \"\";\nvar gacute = \"ǵ\";\nvar Gamma = \"Γ\";\nvar gamma = \"γ\";\nvar Gammad = \"Ϝ\";\nvar gammad = \"ϝ\";\nvar gap = \"⪆\";\nvar Gbreve = \"Ğ\";\nvar gbreve = \"ğ\";\nvar Gcedil = \"Ģ\";\nvar Gcirc = \"Ĝ\";\nvar gcirc = \"ĝ\";\nvar Gcy = \"Г\";\nvar gcy = \"г\";\nvar Gdot = \"Ġ\";\nvar gdot = \"ġ\";\nvar ge = \"≥\";\nvar gE = \"≧\";\nvar gEl = \"⪌\";\nvar gel = \"⋛\";\nvar geq = \"≥\";\nvar geqq = \"≧\";\nvar geqslant = \"⩾\";\nvar gescc = \"⪩\";\nvar ges = \"⩾\";\nvar gesdot = \"⪀\";\nvar gesdoto = \"⪂\";\nvar gesdotol = \"⪄\";\nvar gesl = \"⋛︀\";\nvar gesles = \"⪔\";\nvar Gfr = \"𝔊\";\nvar gfr = \"𝔤\";\nvar gg = \"≫\";\nvar Gg = \"⋙\";\nvar ggg = \"⋙\";\nvar gimel = \"ℷ\";\nvar GJcy = \"Ѓ\";\nvar gjcy = \"ѓ\";\nvar gla = \"⪥\";\nvar gl = \"≷\";\nvar glE = \"⪒\";\nvar glj = \"⪤\";\nvar gnap = \"⪊\";\nvar gnapprox = \"⪊\";\nvar gne = \"⪈\";\nvar gnE = \"≩\";\nvar gneq = \"⪈\";\nvar gneqq = \"≩\";\nvar gnsim = \"⋧\";\nvar Gopf = \"𝔾\";\nvar gopf = \"𝕘\";\nvar grave = \"`\";\nvar GreaterEqual = \"≥\";\nvar GreaterEqualLess = \"⋛\";\nvar GreaterFullEqual = \"≧\";\nvar GreaterGreater = \"⪢\";\nvar GreaterLess = \"≷\";\nvar GreaterSlantEqual = \"⩾\";\nvar GreaterTilde = \"≳\";\nvar Gscr = \"𝒢\";\nvar gscr = \"\";\nvar gsim = \"≳\";\nvar gsime = \"⪎\";\nvar gsiml = \"⪐\";\nvar gtcc = \"⪧\";\nvar gtcir = \"⩺\";\nvar gt$2 = \">\";\nvar GT$1 = \">\";\nvar Gt = \"≫\";\nvar gtdot = \"⋗\";\nvar gtlPar = \"⦕\";\nvar gtquest = \"⩼\";\nvar gtrapprox = \"⪆\";\nvar gtrarr = \"⥸\";\nvar gtrdot = \"⋗\";\nvar gtreqless = \"⋛\";\nvar gtreqqless = \"⪌\";\nvar gtrless = \"≷\";\nvar gtrsim = \"≳\";\nvar gvertneqq = \"≩︀\";\nvar gvnE = \"≩︀\";\nvar Hacek = \"ˇ\";\nvar hairsp = \"\";\nvar half = \"½\";\nvar hamilt = \"\";\nvar HARDcy = \"Ъ\";\nvar hardcy = \"ъ\";\nvar harrcir = \"⥈\";\nvar harr = \"↔\";\nvar hArr = \"⇔\";\nvar harrw = \"↭\";\nvar Hat = \"^\";\nvar hbar = \"ℏ\";\nvar Hcirc = \"Ĥ\";\nvar hcirc = \"ĥ\";\nvar hearts = \"♥\";\nvar heartsuit = \"♥\";\nvar hellip = \"…\";\nvar hercon = \"⊹\";\nvar hfr = \"𝔥\";\nvar Hfr = \"\";\nvar HilbertSpace = \"\";\nvar hksearow = \"⤥\";\nvar hkswarow = \"⤦\";\nvar hoarr = \"⇿\";\nvar homtht = \"∻\";\nvar hookleftarrow = \"↩\";\nvar hookrightarrow = \"↪\";\nvar hopf = \"𝕙\";\nvar Hopf = \"\";\nvar horbar = \"―\";\nvar HorizontalLine = \"─\";\nvar hscr = \"𝒽\";\nvar Hscr = \"\";\nvar hslash = \"ℏ\";\nvar Hstrok = \"Ħ\";\nvar hstrok = \"ħ\";\nvar HumpDownHump = \"≎\";\nvar HumpEqual = \"≏\";\nvar hybull = \"\";\nvar hyphen = \"\";\nvar Iacute$1 = \"Í\";\nvar iacute$1 = \"í\";\nvar ic = \"\";\nvar Icirc$1 = \"Î\";\nvar icirc$1 = \"î\";\nvar Icy = \"И\";\nvar icy = \"и\";\nvar Idot = \"İ\";\nvar IEcy = \"Е\";\nvar iecy = \"е\";\nvar iexcl$1 = \"¡\";\nvar iff = \"⇔\";\nvar ifr = \"𝔦\";\nvar Ifr = \"\";\nvar Igrave$1 = \"Ì\";\nvar igrave$1 = \"ì\";\nvar ii = \"\";\nvar iiiint = \"⨌\";\nvar iiint = \"∭\";\nvar iinfin = \"⧜\";\nvar iiota = \"℩\";\nvar IJlig = \"IJ\";\nvar ijlig = \"ij\";\nvar Imacr = \"Ī\";\nvar imacr = \"ī\";\nvar image = \"\";\nvar ImaginaryI = \"\";\nvar imagline = \"\";\nvar imagpart = \"\";\nvar imath = \"ı\";\nvar Im = \"\";\nvar imof = \"⊷\";\nvar imped = \"Ƶ\";\nvar Implies = \"⇒\";\nvar incare = \"℅\";\nvar infin = \"∞\";\nvar infintie = \"⧝\";\nvar inodot = \"ı\";\nvar intcal = \"⊺\";\nvar int = \"∫\";\nvar Int = \"∬\";\nvar integers = \"\";\nvar Integral = \"∫\";\nvar intercal = \"⊺\";\nvar Intersection = \"⋂\";\nvar intlarhk = \"⨗\";\nvar intprod = \"⨼\";\nvar InvisibleComma = \"\";\nvar InvisibleTimes = \"\";\nvar IOcy = \"Ё\";\nvar iocy = \"ё\";\nvar Iogon = \"Į\";\nvar iogon = \"į\";\nvar Iopf = \"𝕀\";\nvar iopf = \"𝕚\";\nvar Iota = \"Ι\";\nvar iota = \"ι\";\nvar iprod = \"⨼\";\nvar iquest$1 = \"¿\";\nvar iscr = \"𝒾\";\nvar Iscr = \"\";\nvar isin = \"∈\";\nvar isindot = \"⋵\";\nvar isinE = \"⋹\";\nvar isins = \"⋴\";\nvar isinsv = \"⋳\";\nvar isinv = \"∈\";\nvar it = \"\";\nvar Itilde = \"Ĩ\";\nvar itilde = \"ĩ\";\nvar Iukcy = \"І\";\nvar iukcy = \"і\";\nvar Iuml$1 = \"Ï\";\nvar iuml$1 = \"ï\";\nvar Jcirc = \"Ĵ\";\nvar jcirc = \"ĵ\";\nvar Jcy = \"Й\";\nvar jcy = \"й\";\nvar Jfr = \"𝔍\";\nvar jfr = \"𝔧\";\nvar jmath = \"ȷ\";\nvar Jopf = \"𝕁\";\nvar jopf = \"𝕛\";\nvar Jscr = \"𝒥\";\nvar jscr = \"𝒿\";\nvar Jsercy = \"Ј\";\nvar jsercy = \"ј\";\nvar Jukcy = \"Є\";\nvar jukcy = \"є\";\nvar Kappa = \"Κ\";\nvar kappa = \"κ\";\nvar kappav = \"ϰ\";\nvar Kcedil = \"Ķ\";\nvar kcedil = \"ķ\";\nvar Kcy = \"К\";\nvar kcy = \"к\";\nvar Kfr = \"𝔎\";\nvar kfr = \"𝔨\";\nvar kgreen = \"ĸ\";\nvar KHcy = \"Х\";\nvar khcy = \"х\";\nvar KJcy = \"Ќ\";\nvar kjcy = \"ќ\";\nvar Kopf = \"𝕂\";\nvar kopf = \"𝕜\";\nvar Kscr = \"𝒦\";\nvar kscr = \"𝓀\";\nvar lAarr = \"⇚\";\nvar Lacute = \"Ĺ\";\nvar lacute = \"ĺ\";\nvar laemptyv = \"⦴\";\nvar lagran = \"\";\nvar Lambda = \"Λ\";\nvar lambda = \"λ\";\nvar lang = \"⟨\";\nvar Lang = \"⟪\";\nvar langd = \"⦑\";\nvar langle = \"⟨\";\nvar lap = \"⪅\";\nvar Laplacetrf = \"\";\nvar laquo$1 = \"«\";\nvar larrb = \"⇤\";\nvar larrbfs = \"⤟\";\nvar larr = \"←\";\nvar Larr = \"↞\";\nvar lArr = \"⇐\";\nvar larrfs = \"⤝\";\nvar larrhk = \"↩\";\nvar larrlp = \"↫\";\nvar larrpl = \"⤹\";\nvar larrsim = \"⥳\";\nvar larrtl = \"↢\";\nvar latail = \"⤙\";\nvar lAtail = \"⤛\";\nvar lat = \"⪫\";\nvar late = \"⪭\";\nvar lates = \"⪭︀\";\nvar lbarr = \"⤌\";\nvar lBarr = \"⤎\";\nvar lbbrk = \"\";\nvar lbrace = \"{\";\nvar lbrack = \"[\";\nvar lbrke = \"⦋\";\nvar lbrksld = \"⦏\";\nvar lbrkslu = \"⦍\";\nvar Lcaron = \"Ľ\";\nvar lcaron = \"ľ\";\nvar Lcedil = \"Ļ\";\nvar lcedil = \"ļ\";\nvar lceil = \"⌈\";\nvar lcub = \"{\";\nvar Lcy = \"Л\";\nvar lcy = \"л\";\nvar ldca = \"⤶\";\nvar ldquo = \"“\";\nvar ldquor = \"„\";\nvar ldrdhar = \"⥧\";\nvar ldrushar = \"⥋\";\nvar ldsh = \"↲\";\nvar le = \"≤\";\nvar lE = \"≦\";\nvar LeftAngleBracket = \"⟨\";\nvar LeftArrowBar = \"⇤\";\nvar leftarrow = \"←\";\nvar LeftArrow = \"←\";\nvar Leftarrow = \"⇐\";\nvar LeftArrowRightArrow = \"⇆\";\nvar leftarrowtail = \"↢\";\nvar LeftCeiling = \"⌈\";\nvar LeftDoubleBracket = \"⟦\";\nvar LeftDownTeeVector = \"⥡\";\nvar LeftDownVectorBar = \"⥙\";\nvar LeftDownVector = \"⇃\";\nvar LeftFloor = \"⌊\";\nvar leftharpoondown = \"↽\";\nvar leftharpoonup = \"↼\";\nvar leftleftarrows = \"⇇\";\nvar leftrightarrow = \"↔\";\nvar LeftRightArrow = \"↔\";\nvar Leftrightarrow = \"⇔\";\nvar leftrightarrows = \"⇆\";\nvar leftrightharpoons = \"⇋\";\nvar leftrightsquigarrow = \"↭\";\nvar LeftRightVector = \"⥎\";\nvar LeftTeeArrow = \"↤\";\nvar LeftTee = \"⊣\";\nvar LeftTeeVector = \"⥚\";\nvar leftthreetimes = \"⋋\";\nvar LeftTriangleBar = \"⧏\";\nvar LeftTriangle = \"⊲\";\nvar LeftTriangleEqual = \"⊴\";\nvar LeftUpDownVector = \"⥑\";\nvar LeftUpTeeVector = \"⥠\";\nvar LeftUpVectorBar = \"⥘\";\nvar LeftUpVector = \"↿\";\nvar LeftVectorBar = \"⥒\";\nvar LeftVector = \"↼\";\nvar lEg = \"⪋\";\nvar leg = \"⋚\";\nvar leq = \"≤\";\nvar leqq = \"≦\";\nvar leqslant = \"⩽\";\nvar lescc = \"⪨\";\nvar les = \"⩽\";\nvar lesdot = \"⩿\";\nvar lesdoto = \"⪁\";\nvar lesdotor = \"⪃\";\nvar lesg = \"⋚︀\";\nvar lesges = \"⪓\";\nvar lessapprox = \"⪅\";\nvar lessdot = \"⋖\";\nvar lesseqgtr = \"⋚\";\nvar lesseqqgtr = \"⪋\";\nvar LessEqualGreater = \"⋚\";\nvar LessFullEqual = \"≦\";\nvar LessGreater = \"≶\";\nvar lessgtr = \"≶\";\nvar LessLess = \"⪡\";\nvar lesssim = \"≲\";\nvar LessSlantEqual = \"⩽\";\nvar LessTilde = \"≲\";\nvar lfisht = \"⥼\";\nvar lfloor = \"⌊\";\nvar Lfr = \"𝔏\";\nvar lfr = \"𝔩\";\nvar lg = \"≶\";\nvar lgE = \"⪑\";\nvar lHar = \"⥢\";\nvar lhard = \"↽\";\nvar lharu = \"↼\";\nvar lharul = \"⥪\";\nvar lhblk = \"▄\";\nvar LJcy = \"Љ\";\nvar ljcy = \"љ\";\nvar llarr = \"⇇\";\nvar ll = \"≪\";\nvar Ll = \"⋘\";\nvar llcorner = \"⌞\";\nvar Lleftarrow = \"⇚\";\nvar llhard = \"⥫\";\nvar lltri = \"◺\";\nvar Lmidot = \"Ŀ\";\nvar lmidot = \"ŀ\";\nvar lmoustache = \"⎰\";\nvar lmoust = \"⎰\";\nvar lnap = \"⪉\";\nvar lnapprox = \"⪉\";\nvar lne = \"⪇\";\nvar lnE = \"≨\";\nvar lneq = \"⪇\";\nvar lneqq = \"≨\";\nvar lnsim = \"⋦\";\nvar loang = \"⟬\";\nvar loarr = \"⇽\";\nvar lobrk = \"⟦\";\nvar longleftarrow = \"⟵\";\nvar LongLeftArrow = \"⟵\";\nvar Longleftarrow = \"⟸\";\nvar longleftrightarrow = \"⟷\";\nvar LongLeftRightArrow = \"⟷\";\nvar Longleftrightarrow = \"⟺\";\nvar longmapsto = \"⟼\";\nvar longrightarrow = \"⟶\";\nvar LongRightArrow = \"⟶\";\nvar Longrightarrow = \"⟹\";\nvar looparrowleft = \"↫\";\nvar looparrowright = \"↬\";\nvar lopar = \"⦅\";\nvar Lopf = \"𝕃\";\nvar lopf = \"𝕝\";\nvar loplus = \"⨭\";\nvar lotimes = \"⨴\";\nvar lowast = \"\";\nvar lowbar = \"_\";\nvar LowerLeftArrow = \"↙\";\nvar LowerRightArrow = \"↘\";\nvar loz = \"◊\";\nvar lozenge = \"◊\";\nvar lozf = \"⧫\";\nvar lpar = \"(\";\nvar lparlt = \"⦓\";\nvar lrarr = \"⇆\";\nvar lrcorner = \"⌟\";\nvar lrhar = \"⇋\";\nvar lrhard = \"⥭\";\nvar lrm = \"\";\nvar lrtri = \"⊿\";\nvar lsaquo = \"\";\nvar lscr = \"𝓁\";\nvar Lscr = \"\";\nvar lsh = \"↰\";\nvar Lsh = \"↰\";\nvar lsim = \"≲\";\nvar lsime = \"⪍\";\nvar lsimg = \"⪏\";\nvar lsqb = \"[\";\nvar lsquo = \"\";\nvar lsquor = \"\";\nvar Lstrok = \"Ł\";\nvar lstrok = \"ł\";\nvar ltcc = \"⪦\";\nvar ltcir = \"⩹\";\nvar lt$2 = \"<\";\nvar LT$1 = \"<\";\nvar Lt = \"≪\";\nvar ltdot = \"⋖\";\nvar lthree = \"⋋\";\nvar ltimes = \"⋉\";\nvar ltlarr = \"⥶\";\nvar ltquest = \"⩻\";\nvar ltri = \"◃\";\nvar ltrie = \"⊴\";\nvar ltrif = \"◂\";\nvar ltrPar = \"⦖\";\nvar lurdshar = \"⥊\";\nvar luruhar = \"⥦\";\nvar lvertneqq = \"≨︀\";\nvar lvnE = \"≨︀\";\nvar macr$1 = \"¯\";\nvar male = \"♂\";\nvar malt = \"✠\";\nvar maltese = \"✠\";\nvar map = \"↦\";\nvar mapsto = \"↦\";\nvar mapstodown = \"↧\";\nvar mapstoleft = \"↤\";\nvar mapstoup = \"↥\";\nvar marker = \"▮\";\nvar mcomma = \"⨩\";\nvar Mcy = \"М\";\nvar mcy = \"м\";\nvar mdash = \"—\";\nvar mDDot = \"∺\";\nvar measuredangle = \"∡\";\nvar MediumSpace = \"\";\nvar Mellintrf = \"\";\nvar Mfr = \"𝔐\";\nvar mfr = \"𝔪\";\nvar mho = \"℧\";\nvar micro$1 = \"µ\";\nvar midast = \"*\";\nvar midcir = \"⫰\";\nvar mid = \"\";\nvar middot$1 = \"·\";\nvar minusb = \"⊟\";\nvar minus = \"\";\nvar minusd = \"∸\";\nvar minusdu = \"⨪\";\nvar MinusPlus = \"∓\";\nvar mlcp = \"⫛\";\nvar mldr = \"…\";\nvar mnplus = \"∓\";\nvar models = \"⊧\";\nvar Mopf = \"𝕄\";\nvar mopf = \"𝕞\";\nvar mp = \"∓\";\nvar mscr = \"𝓂\";\nvar Mscr = \"\";\nvar mstpos = \"∾\";\nvar Mu = \"Μ\";\nvar mu = \"μ\";\nvar multimap = \"⊸\";\nvar mumap = \"⊸\";\nvar nabla = \"∇\";\nvar Nacute = \"Ń\";\nvar nacute = \"ń\";\nvar nang = \"∠⃒\";\nvar nap = \"≉\";\nvar napE = \"⩰̸\";\nvar napid = \"≋̸\";\nvar napos = \"ʼn\";\nvar napprox = \"≉\";\nvar natural = \"♮\";\nvar naturals = \"\";\nvar natur = \"♮\";\nvar nbsp$1 = \" \";\nvar nbump = \"≎̸\";\nvar nbumpe = \"≏̸\";\nvar ncap = \"⩃\";\nvar Ncaron = \"Ň\";\nvar ncaron = \"ň\";\nvar Ncedil = \"Ņ\";\nvar ncedil = \"ņ\";\nvar ncong = \"≇\";\nvar ncongdot = \"⩭̸\";\nvar ncup = \"⩂\";\nvar Ncy = \"Н\";\nvar ncy = \"н\";\nvar ndash = \"\";\nvar nearhk = \"⤤\";\nvar nearr = \"↗\";\nvar neArr = \"⇗\";\nvar nearrow = \"↗\";\nvar ne = \"≠\";\nvar nedot = \"≐̸\";\nvar NegativeMediumSpace = \"\";\nvar NegativeThickSpace = \"\";\nvar NegativeThinSpace = \"\";\nvar NegativeVeryThinSpace = \"\";\nvar nequiv = \"≢\";\nvar nesear = \"⤨\";\nvar nesim = \"≂̸\";\nvar NestedGreaterGreater = \"≫\";\nvar NestedLessLess = \"≪\";\nvar NewLine = \"\\n\";\nvar nexist = \"∄\";\nvar nexists = \"∄\";\nvar Nfr = \"𝔑\";\nvar nfr = \"𝔫\";\nvar ngE = \"≧̸\";\nvar nge = \"≱\";\nvar ngeq = \"≱\";\nvar ngeqq = \"≧̸\";\nvar ngeqslant = \"⩾̸\";\nvar nges = \"⩾̸\";\nvar nGg = \"⋙̸\";\nvar ngsim = \"≵\";\nvar nGt = \"≫⃒\";\nvar ngt = \"≯\";\nvar ngtr = \"≯\";\nvar nGtv = \"≫̸\";\nvar nharr = \"↮\";\nvar nhArr = \"⇎\";\nvar nhpar = \"⫲\";\nvar ni = \"∋\";\nvar nis = \"⋼\";\nvar nisd = \"⋺\";\nvar niv = \"∋\";\nvar NJcy = \"Њ\";\nvar njcy = \"њ\";\nvar nlarr = \"↚\";\nvar nlArr = \"⇍\";\nvar nldr = \"‥\";\nvar nlE = \"≦̸\";\nvar nle = \"≰\";\nvar nleftarrow = \"↚\";\nvar nLeftarrow = \"⇍\";\nvar nleftrightarrow = \"↮\";\nvar nLeftrightarrow = \"⇎\";\nvar nleq = \"≰\";\nvar nleqq = \"≦̸\";\nvar nleqslant = \"⩽̸\";\nvar nles = \"⩽̸\";\nvar nless = \"≮\";\nvar nLl = \"⋘̸\";\nvar nlsim = \"≴\";\nvar nLt = \"≪⃒\";\nvar nlt = \"≮\";\nvar nltri = \"⋪\";\nvar nltrie = \"⋬\";\nvar nLtv = \"≪̸\";\nvar nmid = \"∤\";\nvar NoBreak = \"\";\nvar NonBreakingSpace = \" \";\nvar nopf = \"𝕟\";\nvar Nopf = \"\";\nvar Not = \"⫬\";\nvar not$1 = \"¬\";\nvar NotCongruent = \"≢\";\nvar NotCupCap = \"≭\";\nvar NotDoubleVerticalBar = \"∦\";\nvar NotElement = \"∉\";\nvar NotEqual = \"≠\";\nvar NotEqualTilde = \"≂̸\";\nvar NotExists = \"∄\";\nvar NotGreater = \"≯\";\nvar NotGreaterEqual = \"≱\";\nvar NotGreaterFullEqual = \"≧̸\";\nvar NotGreaterGreater = \"≫̸\";\nvar NotGreaterLess = \"≹\";\nvar NotGreaterSlantEqual = \"⩾̸\";\nvar NotGreaterTilde = \"≵\";\nvar NotHumpDownHump = \"≎̸\";\nvar NotHumpEqual = \"≏̸\";\nvar notin = \"∉\";\nvar notindot = \"⋵̸\";\nvar notinE = \"⋹̸\";\nvar notinva = \"∉\";\nvar notinvb = \"⋷\";\nvar notinvc = \"⋶\";\nvar NotLeftTriangleBar = \"⧏̸\";\nvar NotLeftTriangle = \"⋪\";\nvar NotLeftTriangleEqual = \"⋬\";\nvar NotLess = \"≮\";\nvar NotLessEqual = \"≰\";\nvar NotLessGreater = \"≸\";\nvar NotLessLess = \"≪̸\";\nvar NotLessSlantEqual = \"⩽̸\";\nvar NotLessTilde = \"≴\";\nvar NotNestedGreaterGreater = \"⪢̸\";\nvar NotNestedLessLess = \"⪡̸\";\nvar notni = \"∌\";\nvar notniva = \"∌\";\nvar notnivb = \"⋾\";\nvar notnivc = \"⋽\";\nvar NotPrecedes = \"⊀\";\nvar NotPrecedesEqual = \"⪯̸\";\nvar NotPrecedesSlantEqual = \"⋠\";\nvar NotReverseElement = \"∌\";\nvar NotRightTriangleBar = \"⧐̸\";\nvar NotRightTriangle = \"⋫\";\nvar NotRightTriangleEqual = \"⋭\";\nvar NotSquareSubset = \"⊏̸\";\nvar NotSquareSubsetEqual = \"⋢\";\nvar NotSquareSuperset = \"⊐̸\";\nvar NotSquareSupersetEqual = \"⋣\";\nvar NotSubset = \"⊂⃒\";\nvar NotSubsetEqual = \"⊈\";\nvar NotSucceeds = \"⊁\";\nvar NotSucceedsEqual = \"⪰̸\";\nvar NotSucceedsSlantEqual = \"⋡\";\nvar NotSucceedsTilde = \"≿̸\";\nvar NotSuperset = \"⊃⃒\";\nvar NotSupersetEqual = \"⊉\";\nvar NotTilde = \"≁\";\nvar NotTildeEqual = \"≄\";\nvar NotTildeFullEqual = \"≇\";\nvar NotTildeTilde = \"≉\";\nvar NotVerticalBar = \"∤\";\nvar nparallel = \"∦\";\nvar npar = \"∦\";\nvar nparsl = \"⫽⃥\";\nvar npart = \"∂̸\";\nvar npolint = \"⨔\";\nvar npr = \"⊀\";\nvar nprcue = \"⋠\";\nvar nprec = \"⊀\";\nvar npreceq = \"⪯̸\";\nvar npre = \"⪯̸\";\nvar nrarrc = \"⤳̸\";\nvar nrarr = \"↛\";\nvar nrArr = \"⇏\";\nvar nrarrw = \"↝̸\";\nvar nrightarrow = \"↛\";\nvar nRightarrow = \"⇏\";\nvar nrtri = \"⋫\";\nvar nrtrie = \"⋭\";\nvar nsc = \"⊁\";\nvar nsccue = \"⋡\";\nvar nsce = \"⪰̸\";\nvar Nscr = \"𝒩\";\nvar nscr = \"𝓃\";\nvar nshortmid = \"∤\";\nvar nshortparallel = \"∦\";\nvar nsim = \"≁\";\nvar nsime = \"≄\";\nvar nsimeq = \"≄\";\nvar nsmid = \"∤\";\nvar nspar = \"∦\";\nvar nsqsube = \"⋢\";\nvar nsqsupe = \"⋣\";\nvar nsub = \"⊄\";\nvar nsubE = \"⫅̸\";\nvar nsube = \"⊈\";\nvar nsubset = \"⊂⃒\";\nvar nsubseteq = \"⊈\";\nvar nsubseteqq = \"⫅̸\";\nvar nsucc = \"⊁\";\nvar nsucceq = \"⪰̸\";\nvar nsup = \"⊅\";\nvar nsupE = \"⫆̸\";\nvar nsupe = \"⊉\";\nvar nsupset = \"⊃⃒\";\nvar nsupseteq = \"⊉\";\nvar nsupseteqq = \"⫆̸\";\nvar ntgl = \"≹\";\nvar Ntilde$1 = \"Ñ\";\nvar ntilde$1 = \"ñ\";\nvar ntlg = \"≸\";\nvar ntriangleleft = \"⋪\";\nvar ntrianglelefteq = \"⋬\";\nvar ntriangleright = \"⋫\";\nvar ntrianglerighteq = \"⋭\";\nvar Nu = \"Ν\";\nvar nu = \"ν\";\nvar num = \"#\";\nvar numero = \"№\";\nvar numsp = \"\";\nvar nvap = \"≍⃒\";\nvar nvdash = \"⊬\";\nvar nvDash = \"⊭\";\nvar nVdash = \"⊮\";\nvar nVDash = \"⊯\";\nvar nvge = \"≥⃒\";\nvar nvgt = \">⃒\";\nvar nvHarr = \"⤄\";\nvar nvinfin = \"⧞\";\nvar nvlArr = \"⤂\";\nvar nvle = \"≤⃒\";\nvar nvlt = \"<⃒\";\nvar nvltrie = \"⊴⃒\";\nvar nvrArr = \"⤃\";\nvar nvrtrie = \"⊵⃒\";\nvar nvsim = \"∼⃒\";\nvar nwarhk = \"⤣\";\nvar nwarr = \"↖\";\nvar nwArr = \"⇖\";\nvar nwarrow = \"↖\";\nvar nwnear = \"⤧\";\nvar Oacute$1 = \"Ó\";\nvar oacute$1 = \"ó\";\nvar oast = \"⊛\";\nvar Ocirc$1 = \"Ô\";\nvar ocirc$1 = \"ô\";\nvar ocir = \"⊚\";\nvar Ocy = \"О\";\nvar ocy = \"о\";\nvar odash = \"⊝\";\nvar Odblac = \"Ő\";\nvar odblac = \"ő\";\nvar odiv = \"⨸\";\nvar odot = \"⊙\";\nvar odsold = \"⦼\";\nvar OElig = \"Œ\";\nvar oelig = \"œ\";\nvar ofcir = \"⦿\";\nvar Ofr = \"𝔒\";\nvar ofr = \"𝔬\";\nvar ogon = \"˛\";\nvar Ograve$1 = \"Ò\";\nvar ograve$1 = \"ò\";\nvar ogt = \"⧁\";\nvar ohbar = \"⦵\";\nvar ohm = \"Ω\";\nvar oint = \"∮\";\nvar olarr = \"↺\";\nvar olcir = \"⦾\";\nvar olcross = \"⦻\";\nvar oline = \"‾\";\nvar olt = \"⧀\";\nvar Omacr = \"Ō\";\nvar omacr = \"ō\";\nvar Omega = \"Ω\";\nvar omega = \"ω\";\nvar Omicron = \"Ο\";\nvar omicron = \"ο\";\nvar omid = \"⦶\";\nvar ominus = \"⊖\";\nvar Oopf = \"𝕆\";\nvar oopf = \"𝕠\";\nvar opar = \"⦷\";\nvar OpenCurlyDoubleQuote = \"“\";\nvar OpenCurlyQuote = \"\";\nvar operp = \"⦹\";\nvar oplus = \"⊕\";\nvar orarr = \"↻\";\nvar Or = \"⩔\";\nvar or = \"\";\nvar ord = \"⩝\";\nvar order = \"\";\nvar orderof = \"\";\nvar ordf$1 = \"ª\";\nvar ordm$1 = \"º\";\nvar origof = \"⊶\";\nvar oror = \"⩖\";\nvar orslope = \"⩗\";\nvar orv = \"⩛\";\nvar oS = \"Ⓢ\";\nvar Oscr = \"𝒪\";\nvar oscr = \"\";\nvar Oslash$1 = \"Ø\";\nvar oslash$1 = \"ø\";\nvar osol = \"⊘\";\nvar Otilde$1 = \"Õ\";\nvar otilde$1 = \"õ\";\nvar otimesas = \"⨶\";\nvar Otimes = \"⨷\";\nvar otimes = \"⊗\";\nvar Ouml$1 = \"Ö\";\nvar ouml$1 = \"ö\";\nvar ovbar = \"⌽\";\nvar OverBar = \"‾\";\nvar OverBrace = \"⏞\";\nvar OverBracket = \"⎴\";\nvar OverParenthesis = \"⏜\";\nvar para$1 = \"¶\";\nvar parallel = \"∥\";\nvar par = \"∥\";\nvar parsim = \"⫳\";\nvar parsl = \"⫽\";\nvar part = \"∂\";\nvar PartialD = \"∂\";\nvar Pcy = \"П\";\nvar pcy = \"п\";\nvar percnt = \"%\";\nvar period = \".\";\nvar permil = \"‰\";\nvar perp = \"⊥\";\nvar pertenk = \"‱\";\nvar Pfr = \"𝔓\";\nvar pfr = \"𝔭\";\nvar Phi = \"Φ\";\nvar phi = \"φ\";\nvar phiv = \"ϕ\";\nvar phmmat = \"\";\nvar phone = \"☎\";\nvar Pi = \"Π\";\nvar pi = \"π\";\nvar pitchfork = \"⋔\";\nvar piv = \"ϖ\";\nvar planck = \"ℏ\";\nvar planckh = \"\";\nvar plankv = \"ℏ\";\nvar plusacir = \"⨣\";\nvar plusb = \"⊞\";\nvar pluscir = \"⨢\";\nvar plus = \"+\";\nvar plusdo = \"∔\";\nvar plusdu = \"⨥\";\nvar pluse = \"⩲\";\nvar PlusMinus = \"±\";\nvar plusmn$1 = \"±\";\nvar plussim = \"⨦\";\nvar plustwo = \"⨧\";\nvar pm = \"±\";\nvar Poincareplane = \"\";\nvar pointint = \"⨕\";\nvar popf = \"𝕡\";\nvar Popf = \"\";\nvar pound$1 = \"£\";\nvar prap = \"⪷\";\nvar Pr = \"⪻\";\nvar pr = \"≺\";\nvar prcue = \"≼\";\nvar precapprox = \"⪷\";\nvar prec = \"≺\";\nvar preccurlyeq = \"≼\";\nvar Precedes = \"≺\";\nvar PrecedesEqual = \"⪯\";\nvar PrecedesSlantEqual = \"≼\";\nvar PrecedesTilde = \"≾\";\nvar preceq = \"⪯\";\nvar precnapprox = \"⪹\";\nvar precneqq = \"⪵\";\nvar precnsim = \"⋨\";\nvar pre = \"⪯\";\nvar prE = \"⪳\";\nvar precsim = \"≾\";\nvar prime = \"\";\nvar Prime = \"″\";\nvar primes = \"\";\nvar prnap = \"⪹\";\nvar prnE = \"⪵\";\nvar prnsim = \"⋨\";\nvar prod = \"∏\";\nvar Product = \"∏\";\nvar profalar = \"⌮\";\nvar profline = \"⌒\";\nvar profsurf = \"⌓\";\nvar prop = \"∝\";\nvar Proportional = \"∝\";\nvar Proportion = \"∷\";\nvar propto = \"∝\";\nvar prsim = \"≾\";\nvar prurel = \"⊰\";\nvar Pscr = \"𝒫\";\nvar pscr = \"𝓅\";\nvar Psi = \"Ψ\";\nvar psi = \"ψ\";\nvar puncsp = \"\";\nvar Qfr = \"𝔔\";\nvar qfr = \"𝔮\";\nvar qint = \"⨌\";\nvar qopf = \"𝕢\";\nvar Qopf = \"\";\nvar qprime = \"⁗\";\nvar Qscr = \"𝒬\";\nvar qscr = \"𝓆\";\nvar quaternions = \"\";\nvar quatint = \"⨖\";\nvar quest = \"?\";\nvar questeq = \"≟\";\nvar quot$2 = \"\\\"\";\nvar QUOT$1 = \"\\\"\";\nvar rAarr = \"⇛\";\nvar race = \"∽̱\";\nvar Racute = \"Ŕ\";\nvar racute = \"ŕ\";\nvar radic = \"√\";\nvar raemptyv = \"⦳\";\nvar rang = \"⟩\";\nvar Rang = \"⟫\";\nvar rangd = \"⦒\";\nvar range = \"⦥\";\nvar rangle = \"⟩\";\nvar raquo$1 = \"»\";\nvar rarrap = \"⥵\";\nvar rarrb = \"⇥\";\nvar rarrbfs = \"⤠\";\nvar rarrc = \"⤳\";\nvar rarr = \"→\";\nvar Rarr = \"↠\";\nvar rArr = \"⇒\";\nvar rarrfs = \"⤞\";\nvar rarrhk = \"↪\";\nvar rarrlp = \"↬\";\nvar rarrpl = \"⥅\";\nvar rarrsim = \"⥴\";\nvar Rarrtl = \"⤖\";\nvar rarrtl = \"↣\";\nvar rarrw = \"↝\";\nvar ratail = \"⤚\";\nvar rAtail = \"⤜\";\nvar ratio = \"\";\nvar rationals = \"\";\nvar rbarr = \"⤍\";\nvar rBarr = \"⤏\";\nvar RBarr = \"⤐\";\nvar rbbrk = \"\";\nvar rbrace = \"}\";\nvar rbrack = \"]\";\nvar rbrke = \"⦌\";\nvar rbrksld = \"⦎\";\nvar rbrkslu = \"⦐\";\nvar Rcaron = \"Ř\";\nvar rcaron = \"ř\";\nvar Rcedil = \"Ŗ\";\nvar rcedil = \"ŗ\";\nvar rceil = \"⌉\";\nvar rcub = \"}\";\nvar Rcy = \"Р\";\nvar rcy = \"р\";\nvar rdca = \"⤷\";\nvar rdldhar = \"⥩\";\nvar rdquo = \"”\";\nvar rdquor = \"”\";\nvar rdsh = \"↳\";\nvar real = \"\";\nvar realine = \"\";\nvar realpart = \"\";\nvar reals = \"\";\nvar Re = \"\";\nvar rect = \"▭\";\nvar reg$1 = \"®\";\nvar REG$1 = \"®\";\nvar ReverseElement = \"∋\";\nvar ReverseEquilibrium = \"⇋\";\nvar ReverseUpEquilibrium = \"⥯\";\nvar rfisht = \"⥽\";\nvar rfloor = \"⌋\";\nvar rfr = \"𝔯\";\nvar Rfr = \"\";\nvar rHar = \"⥤\";\nvar rhard = \"⇁\";\nvar rharu = \"⇀\";\nvar rharul = \"⥬\";\nvar Rho = \"Ρ\";\nvar rho = \"ρ\";\nvar rhov = \"ϱ\";\nvar RightAngleBracket = \"⟩\";\nvar RightArrowBar = \"⇥\";\nvar rightarrow = \"→\";\nvar RightArrow = \"→\";\nvar Rightarrow = \"⇒\";\nvar RightArrowLeftArrow = \"⇄\";\nvar rightarrowtail = \"↣\";\nvar RightCeiling = \"⌉\";\nvar RightDoubleBracket = \"⟧\";\nvar RightDownTeeVector = \"⥝\";\nvar RightDownVectorBar = \"⥕\";\nvar RightDownVector = \"⇂\";\nvar RightFloor = \"⌋\";\nvar rightharpoondown = \"⇁\";\nvar rightharpoonup = \"⇀\";\nvar rightleftarrows = \"⇄\";\nvar rightleftharpoons = \"⇌\";\nvar rightrightarrows = \"⇉\";\nvar rightsquigarrow = \"↝\";\nvar RightTeeArrow = \"↦\";\nvar RightTee = \"⊢\";\nvar RightTeeVector = \"⥛\";\nvar rightthreetimes = \"⋌\";\nvar RightTriangleBar = \"⧐\";\nvar RightTriangle = \"⊳\";\nvar RightTriangleEqual = \"⊵\";\nvar RightUpDownVector = \"⥏\";\nvar RightUpTeeVector = \"⥜\";\nvar RightUpVectorBar = \"⥔\";\nvar RightUpVector = \"↾\";\nvar RightVectorBar = \"⥓\";\nvar RightVector = \"⇀\";\nvar ring = \"˚\";\nvar risingdotseq = \"≓\";\nvar rlarr = \"⇄\";\nvar rlhar = \"⇌\";\nvar rlm = \"\";\nvar rmoustache = \"⎱\";\nvar rmoust = \"⎱\";\nvar rnmid = \"⫮\";\nvar roang = \"⟭\";\nvar roarr = \"⇾\";\nvar robrk = \"⟧\";\nvar ropar = \"⦆\";\nvar ropf = \"𝕣\";\nvar Ropf = \"\";\nvar roplus = \"⨮\";\nvar rotimes = \"⨵\";\nvar RoundImplies = \"⥰\";\nvar rpar = \")\";\nvar rpargt = \"⦔\";\nvar rppolint = \"⨒\";\nvar rrarr = \"⇉\";\nvar Rrightarrow = \"⇛\";\nvar rsaquo = \"\";\nvar rscr = \"𝓇\";\nvar Rscr = \"\";\nvar rsh = \"↱\";\nvar Rsh = \"↱\";\nvar rsqb = \"]\";\nvar rsquo = \"\";\nvar rsquor = \"\";\nvar rthree = \"⋌\";\nvar rtimes = \"⋊\";\nvar rtri = \"▹\";\nvar rtrie = \"⊵\";\nvar rtrif = \"▸\";\nvar rtriltri = \"⧎\";\nvar RuleDelayed = \"⧴\";\nvar ruluhar = \"⥨\";\nvar rx = \"℞\";\nvar Sacute = \"Ś\";\nvar sacute = \"ś\";\nvar sbquo = \"\";\nvar scap = \"⪸\";\nvar Scaron = \"Š\";\nvar scaron = \"š\";\nvar Sc = \"⪼\";\nvar sc = \"≻\";\nvar sccue = \"≽\";\nvar sce = \"⪰\";\nvar scE = \"⪴\";\nvar Scedil = \"Ş\";\nvar scedil = \"ş\";\nvar Scirc = \"Ŝ\";\nvar scirc = \"ŝ\";\nvar scnap = \"⪺\";\nvar scnE = \"⪶\";\nvar scnsim = \"⋩\";\nvar scpolint = \"⨓\";\nvar scsim = \"≿\";\nvar Scy = \"С\";\nvar scy = \"с\";\nvar sdotb = \"⊡\";\nvar sdot = \"⋅\";\nvar sdote = \"⩦\";\nvar searhk = \"⤥\";\nvar searr = \"↘\";\nvar seArr = \"⇘\";\nvar searrow = \"↘\";\nvar sect$1 = \"§\";\nvar semi = \";\";\nvar seswar = \"⤩\";\nvar setminus = \"\";\nvar setmn = \"\";\nvar sext = \"✶\";\nvar Sfr = \"𝔖\";\nvar sfr = \"𝔰\";\nvar sfrown = \"⌢\";\nvar sharp = \"♯\";\nvar SHCHcy = \"Щ\";\nvar shchcy = \"щ\";\nvar SHcy = \"Ш\";\nvar shcy = \"ш\";\nvar ShortDownArrow = \"↓\";\nvar ShortLeftArrow = \"←\";\nvar shortmid = \"\";\nvar shortparallel = \"∥\";\nvar ShortRightArrow = \"→\";\nvar ShortUpArrow = \"↑\";\nvar shy$1 = \"­\";\nvar Sigma = \"Σ\";\nvar sigma = \"σ\";\nvar sigmaf = \"ς\";\nvar sigmav = \"ς\";\nvar sim = \"\";\nvar simdot = \"⩪\";\nvar sime = \"≃\";\nvar simeq = \"≃\";\nvar simg = \"⪞\";\nvar simgE = \"⪠\";\nvar siml = \"⪝\";\nvar simlE = \"⪟\";\nvar simne = \"≆\";\nvar simplus = \"⨤\";\nvar simrarr = \"⥲\";\nvar slarr = \"←\";\nvar SmallCircle = \"∘\";\nvar smallsetminus = \"\";\nvar smashp = \"⨳\";\nvar smeparsl = \"⧤\";\nvar smid = \"\";\nvar smile = \"⌣\";\nvar smt = \"⪪\";\nvar smte = \"⪬\";\nvar smtes = \"⪬︀\";\nvar SOFTcy = \"Ь\";\nvar softcy = \"ь\";\nvar solbar = \"⌿\";\nvar solb = \"⧄\";\nvar sol = \"/\";\nvar Sopf = \"𝕊\";\nvar sopf = \"𝕤\";\nvar spades = \"♠\";\nvar spadesuit = \"♠\";\nvar spar = \"∥\";\nvar sqcap = \"⊓\";\nvar sqcaps = \"⊓︀\";\nvar sqcup = \"⊔\";\nvar sqcups = \"⊔︀\";\nvar Sqrt = \"√\";\nvar sqsub = \"⊏\";\nvar sqsube = \"⊑\";\nvar sqsubset = \"⊏\";\nvar sqsubseteq = \"⊑\";\nvar sqsup = \"⊐\";\nvar sqsupe = \"⊒\";\nvar sqsupset = \"⊐\";\nvar sqsupseteq = \"⊒\";\nvar square = \"□\";\nvar Square = \"□\";\nvar SquareIntersection = \"⊓\";\nvar SquareSubset = \"⊏\";\nvar SquareSubsetEqual = \"⊑\";\nvar SquareSuperset = \"⊐\";\nvar SquareSupersetEqual = \"⊒\";\nvar SquareUnion = \"⊔\";\nvar squarf = \"▪\";\nvar squ = \"□\";\nvar squf = \"▪\";\nvar srarr = \"→\";\nvar Sscr = \"𝒮\";\nvar sscr = \"𝓈\";\nvar ssetmn = \"\";\nvar ssmile = \"⌣\";\nvar sstarf = \"⋆\";\nvar Star = \"⋆\";\nvar star = \"☆\";\nvar starf = \"★\";\nvar straightepsilon = \"ϵ\";\nvar straightphi = \"ϕ\";\nvar strns = \"¯\";\nvar sub = \"⊂\";\nvar Sub = \"⋐\";\nvar subdot = \"⪽\";\nvar subE = \"⫅\";\nvar sube = \"⊆\";\nvar subedot = \"⫃\";\nvar submult = \"⫁\";\nvar subnE = \"⫋\";\nvar subne = \"⊊\";\nvar subplus = \"⪿\";\nvar subrarr = \"⥹\";\nvar subset = \"⊂\";\nvar Subset = \"⋐\";\nvar subseteq = \"⊆\";\nvar subseteqq = \"⫅\";\nvar SubsetEqual = \"⊆\";\nvar subsetneq = \"⊊\";\nvar subsetneqq = \"⫋\";\nvar subsim = \"⫇\";\nvar subsub = \"⫕\";\nvar subsup = \"⫓\";\nvar succapprox = \"⪸\";\nvar succ = \"≻\";\nvar succcurlyeq = \"≽\";\nvar Succeeds = \"≻\";\nvar SucceedsEqual = \"⪰\";\nvar SucceedsSlantEqual = \"≽\";\nvar SucceedsTilde = \"≿\";\nvar succeq = \"⪰\";\nvar succnapprox = \"⪺\";\nvar succneqq = \"⪶\";\nvar succnsim = \"⋩\";\nvar succsim = \"≿\";\nvar SuchThat = \"∋\";\nvar sum = \"∑\";\nvar Sum = \"∑\";\nvar sung = \"♪\";\nvar sup1$1 = \"¹\";\nvar sup2$1 = \"²\";\nvar sup3$1 = \"³\";\nvar sup = \"⊃\";\nvar Sup = \"⋑\";\nvar supdot = \"⪾\";\nvar supdsub = \"⫘\";\nvar supE = \"⫆\";\nvar supe = \"⊇\";\nvar supedot = \"⫄\";\nvar Superset = \"⊃\";\nvar SupersetEqual = \"⊇\";\nvar suphsol = \"⟉\";\nvar suphsub = \"⫗\";\nvar suplarr = \"⥻\";\nvar supmult = \"⫂\";\nvar supnE = \"⫌\";\nvar supne = \"⊋\";\nvar supplus = \"⫀\";\nvar supset = \"⊃\";\nvar Supset = \"⋑\";\nvar supseteq = \"⊇\";\nvar supseteqq = \"⫆\";\nvar supsetneq = \"⊋\";\nvar supsetneqq = \"⫌\";\nvar supsim = \"⫈\";\nvar supsub = \"⫔\";\nvar supsup = \"⫖\";\nvar swarhk = \"⤦\";\nvar swarr = \"↙\";\nvar swArr = \"⇙\";\nvar swarrow = \"↙\";\nvar swnwar = \"⤪\";\nvar szlig$1 = \"ß\";\nvar Tab = \"\\t\";\nvar target = \"⌖\";\nvar Tau = \"Τ\";\nvar tau = \"τ\";\nvar tbrk = \"⎴\";\nvar Tcaron = \"Ť\";\nvar tcaron = \"ť\";\nvar Tcedil = \"Ţ\";\nvar tcedil = \"ţ\";\nvar Tcy = \"Т\";\nvar tcy = \"т\";\nvar tdot = \"⃛\";\nvar telrec = \"⌕\";\nvar Tfr = \"𝔗\";\nvar tfr = \"𝔱\";\nvar there4 = \"∴\";\nvar therefore = \"∴\";\nvar Therefore = \"∴\";\nvar Theta = \"Θ\";\nvar theta = \"θ\";\nvar thetasym = \"ϑ\";\nvar thetav = \"ϑ\";\nvar thickapprox = \"≈\";\nvar thicksim = \"\";\nvar ThickSpace = \"\";\nvar ThinSpace = \"\";\nvar thinsp = \"\";\nvar thkap = \"≈\";\nvar thksim = \"\";\nvar THORN$1 = \"Þ\";\nvar thorn$1 = \"þ\";\nvar tilde = \"˜\";\nvar Tilde = \"\";\nvar TildeEqual = \"≃\";\nvar TildeFullEqual = \"≅\";\nvar TildeTilde = \"≈\";\nvar timesbar = \"⨱\";\nvar timesb = \"⊠\";\nvar times$1 = \"×\";\nvar timesd = \"⨰\";\nvar tint = \"∭\";\nvar toea = \"⤨\";\nvar topbot = \"⌶\";\nvar topcir = \"⫱\";\nvar top = \"\";\nvar Topf = \"𝕋\";\nvar topf = \"𝕥\";\nvar topfork = \"⫚\";\nvar tosa = \"⤩\";\nvar tprime = \"‴\";\nvar trade = \"™\";\nvar TRADE = \"™\";\nvar triangle = \"▵\";\nvar triangledown = \"▿\";\nvar triangleleft = \"◃\";\nvar trianglelefteq = \"⊴\";\nvar triangleq = \"≜\";\nvar triangleright = \"▹\";\nvar trianglerighteq = \"⊵\";\nvar tridot = \"◬\";\nvar trie = \"≜\";\nvar triminus = \"⨺\";\nvar TripleDot = \"⃛\";\nvar triplus = \"⨹\";\nvar trisb = \"⧍\";\nvar tritime = \"⨻\";\nvar trpezium = \"⏢\";\nvar Tscr = \"𝒯\";\nvar tscr = \"𝓉\";\nvar TScy = \"Ц\";\nvar tscy = \"ц\";\nvar TSHcy = \"Ћ\";\nvar tshcy = \"ћ\";\nvar Tstrok = \"Ŧ\";\nvar tstrok = \"ŧ\";\nvar twixt = \"≬\";\nvar twoheadleftarrow = \"↞\";\nvar twoheadrightarrow = \"↠\";\nvar Uacute$1 = \"Ú\";\nvar uacute$1 = \"ú\";\nvar uarr = \"↑\";\nvar Uarr = \"↟\";\nvar uArr = \"⇑\";\nvar Uarrocir = \"⥉\";\nvar Ubrcy = \"Ў\";\nvar ubrcy = \"ў\";\nvar Ubreve = \"Ŭ\";\nvar ubreve = \"ŭ\";\nvar Ucirc$1 = \"Û\";\nvar ucirc$1 = \"û\";\nvar Ucy = \"У\";\nvar ucy = \"у\";\nvar udarr = \"⇅\";\nvar Udblac = \"Ű\";\nvar udblac = \"ű\";\nvar udhar = \"⥮\";\nvar ufisht = \"⥾\";\nvar Ufr = \"𝔘\";\nvar ufr = \"𝔲\";\nvar Ugrave$1 = \"Ù\";\nvar ugrave$1 = \"ù\";\nvar uHar = \"⥣\";\nvar uharl = \"↿\";\nvar uharr = \"↾\";\nvar uhblk = \"▀\";\nvar ulcorn = \"⌜\";\nvar ulcorner = \"⌜\";\nvar ulcrop = \"⌏\";\nvar ultri = \"◸\";\nvar Umacr = \"Ū\";\nvar umacr = \"ū\";\nvar uml$1 = \"¨\";\nvar UnderBar = \"_\";\nvar UnderBrace = \"⏟\";\nvar UnderBracket = \"⎵\";\nvar UnderParenthesis = \"⏝\";\nvar Union = \"\";\nvar UnionPlus = \"⊎\";\nvar Uogon = \"Ų\";\nvar uogon = \"ų\";\nvar Uopf = \"𝕌\";\nvar uopf = \"𝕦\";\nvar UpArrowBar = \"⤒\";\nvar uparrow = \"↑\";\nvar UpArrow = \"↑\";\nvar Uparrow = \"⇑\";\nvar UpArrowDownArrow = \"⇅\";\nvar updownarrow = \"↕\";\nvar UpDownArrow = \"↕\";\nvar Updownarrow = \"⇕\";\nvar UpEquilibrium = \"⥮\";\nvar upharpoonleft = \"↿\";\nvar upharpoonright = \"↾\";\nvar uplus = \"⊎\";\nvar UpperLeftArrow = \"↖\";\nvar UpperRightArrow = \"↗\";\nvar upsi = \"υ\";\nvar Upsi = \"ϒ\";\nvar upsih = \"ϒ\";\nvar Upsilon = \"Υ\";\nvar upsilon = \"υ\";\nvar UpTeeArrow = \"↥\";\nvar UpTee = \"⊥\";\nvar upuparrows = \"⇈\";\nvar urcorn = \"⌝\";\nvar urcorner = \"⌝\";\nvar urcrop = \"⌎\";\nvar Uring = \"Ů\";\nvar uring = \"ů\";\nvar urtri = \"◹\";\nvar Uscr = \"𝒰\";\nvar uscr = \"𝓊\";\nvar utdot = \"⋰\";\nvar Utilde = \"Ũ\";\nvar utilde = \"ũ\";\nvar utri = \"▵\";\nvar utrif = \"▴\";\nvar uuarr = \"⇈\";\nvar Uuml$1 = \"Ü\";\nvar uuml$1 = \"ü\";\nvar uwangle = \"⦧\";\nvar vangrt = \"⦜\";\nvar varepsilon = \"ϵ\";\nvar varkappa = \"ϰ\";\nvar varnothing = \"∅\";\nvar varphi = \"ϕ\";\nvar varpi = \"ϖ\";\nvar varpropto = \"∝\";\nvar varr = \"↕\";\nvar vArr = \"⇕\";\nvar varrho = \"ϱ\";\nvar varsigma = \"ς\";\nvar varsubsetneq = \"⊊︀\";\nvar varsubsetneqq = \"⫋︀\";\nvar varsupsetneq = \"⊋︀\";\nvar varsupsetneqq = \"⫌︀\";\nvar vartheta = \"ϑ\";\nvar vartriangleleft = \"⊲\";\nvar vartriangleright = \"⊳\";\nvar vBar = \"⫨\";\nvar Vbar = \"⫫\";\nvar vBarv = \"⫩\";\nvar Vcy = \"В\";\nvar vcy = \"в\";\nvar vdash = \"⊢\";\nvar vDash = \"⊨\";\nvar Vdash = \"⊩\";\nvar VDash = \"⊫\";\nvar Vdashl = \"⫦\";\nvar veebar = \"⊻\";\nvar vee = \"\";\nvar Vee = \"\";\nvar veeeq = \"≚\";\nvar vellip = \"⋮\";\nvar verbar = \"|\";\nvar Verbar = \"‖\";\nvar vert = \"|\";\nvar Vert = \"‖\";\nvar VerticalBar = \"\";\nvar VerticalLine = \"|\";\nvar VerticalSeparator = \"❘\";\nvar VerticalTilde = \"≀\";\nvar VeryThinSpace = \"\";\nvar Vfr = \"𝔙\";\nvar vfr = \"𝔳\";\nvar vltri = \"⊲\";\nvar vnsub = \"⊂⃒\";\nvar vnsup = \"⊃⃒\";\nvar Vopf = \"𝕍\";\nvar vopf = \"𝕧\";\nvar vprop = \"∝\";\nvar vrtri = \"⊳\";\nvar Vscr = \"𝒱\";\nvar vscr = \"𝓋\";\nvar vsubnE = \"⫋︀\";\nvar vsubne = \"⊊︀\";\nvar vsupnE = \"⫌︀\";\nvar vsupne = \"⊋︀\";\nvar Vvdash = \"⊪\";\nvar vzigzag = \"⦚\";\nvar Wcirc = \"Ŵ\";\nvar wcirc = \"ŵ\";\nvar wedbar = \"⩟\";\nvar wedge = \"∧\";\nvar Wedge = \"⋀\";\nvar wedgeq = \"≙\";\nvar weierp = \"℘\";\nvar Wfr = \"𝔚\";\nvar wfr = \"𝔴\";\nvar Wopf = \"𝕎\";\nvar wopf = \"𝕨\";\nvar wp = \"℘\";\nvar wr = \"≀\";\nvar wreath = \"≀\";\nvar Wscr = \"𝒲\";\nvar wscr = \"𝓌\";\nvar xcap = \"⋂\";\nvar xcirc = \"◯\";\nvar xcup = \"\";\nvar xdtri = \"▽\";\nvar Xfr = \"𝔛\";\nvar xfr = \"𝔵\";\nvar xharr = \"⟷\";\nvar xhArr = \"⟺\";\nvar Xi = \"Ξ\";\nvar xi = \"ξ\";\nvar xlarr = \"⟵\";\nvar xlArr = \"⟸\";\nvar xmap = \"⟼\";\nvar xnis = \"⋻\";\nvar xodot = \"⨀\";\nvar Xopf = \"𝕏\";\nvar xopf = \"𝕩\";\nvar xoplus = \"⨁\";\nvar xotime = \"⨂\";\nvar xrarr = \"⟶\";\nvar xrArr = \"⟹\";\nvar Xscr = \"𝒳\";\nvar xscr = \"𝓍\";\nvar xsqcup = \"⨆\";\nvar xuplus = \"⨄\";\nvar xutri = \"△\";\nvar xvee = \"\";\nvar xwedge = \"⋀\";\nvar Yacute$1 = \"Ý\";\nvar yacute$1 = \"ý\";\nvar YAcy = \"Я\";\nvar yacy = \"я\";\nvar Ycirc = \"Ŷ\";\nvar ycirc = \"ŷ\";\nvar Ycy = \"Ы\";\nvar ycy = \"ы\";\nvar yen$1 = \"¥\";\nvar Yfr = \"𝔜\";\nvar yfr = \"𝔶\";\nvar YIcy = \"Ї\";\nvar yicy = \"ї\";\nvar Yopf = \"𝕐\";\nvar yopf = \"𝕪\";\nvar Yscr = \"𝒴\";\nvar yscr = \"𝓎\";\nvar YUcy = \"Ю\";\nvar yucy = \"ю\";\nvar yuml$1 = \"ÿ\";\nvar Yuml = \"Ÿ\";\nvar Zacute = \"Ź\";\nvar zacute = \"ź\";\nvar Zcaron = \"Ž\";\nvar zcaron = \"ž\";\nvar Zcy = \"З\";\nvar zcy = \"з\";\nvar Zdot = \"Ż\";\nvar zdot = \"ż\";\nvar zeetrf = \"\";\nvar ZeroWidthSpace = \"\";\nvar Zeta = \"Ζ\";\nvar zeta = \"ζ\";\nvar zfr = \"𝔷\";\nvar Zfr = \"\";\nvar ZHcy = \"Ж\";\nvar zhcy = \"ж\";\nvar zigrarr = \"⇝\";\nvar zopf = \"𝕫\";\nvar Zopf = \"\";\nvar Zscr = \"𝒵\";\nvar zscr = \"𝓏\";\nvar zwj = \"\";\nvar zwnj = \"\";\nvar require$$1$1 = {\n\tAacute: Aacute$1,\n\taacute: aacute$1,\n\tAbreve: Abreve,\n\tabreve: abreve,\n\tac: ac,\n\tacd: acd,\n\tacE: acE,\n\tAcirc: Acirc$1,\n\tacirc: acirc$1,\n\tacute: acute$1,\n\tAcy: Acy,\n\tacy: acy,\n\tAElig: AElig$1,\n\taelig: aelig$1,\n\taf: af,\n\tAfr: Afr,\n\tafr: afr,\n\tAgrave: Agrave$1,\n\tagrave: agrave$1,\n\talefsym: alefsym,\n\taleph: aleph,\n\tAlpha: Alpha,\n\talpha: alpha,\n\tAmacr: Amacr,\n\tamacr: amacr,\n\tamalg: amalg,\n\tamp: amp$2,\n\tAMP: AMP$1,\n\tandand: andand,\n\tAnd: And,\n\tand: and,\n\tandd: andd,\n\tandslope: andslope,\n\tandv: andv,\n\tang: ang,\n\tange: ange,\n\tangle: angle,\n\tangmsdaa: angmsdaa,\n\tangmsdab: angmsdab,\n\tangmsdac: angmsdac,\n\tangmsdad: angmsdad,\n\tangmsdae: angmsdae,\n\tangmsdaf: angmsdaf,\n\tangmsdag: angmsdag,\n\tangmsdah: angmsdah,\n\tangmsd: angmsd,\n\tangrt: angrt,\n\tangrtvb: angrtvb,\n\tangrtvbd: angrtvbd,\n\tangsph: angsph,\n\tangst: angst,\n\tangzarr: angzarr,\n\tAogon: Aogon,\n\taogon: aogon,\n\tAopf: Aopf,\n\taopf: aopf,\n\tapacir: apacir,\n\tap: ap,\n\tapE: apE,\n\tape: ape,\n\tapid: apid,\n\tapos: apos$1,\n\tApplyFunction: ApplyFunction,\n\tapprox: approx,\n\tapproxeq: approxeq,\n\tAring: Aring$1,\n\taring: aring$1,\n\tAscr: Ascr,\n\tascr: ascr,\n\tAssign: Assign,\n\tast: ast,\n\tasymp: asymp,\n\tasympeq: asympeq,\n\tAtilde: Atilde$1,\n\tatilde: atilde$1,\n\tAuml: Auml$1,\n\tauml: auml$1,\n\tawconint: awconint,\n\tawint: awint,\n\tbackcong: backcong,\n\tbackepsilon: backepsilon,\n\tbackprime: backprime,\n\tbacksim: backsim,\n\tbacksimeq: backsimeq,\n\tBackslash: Backslash,\n\tBarv: Barv,\n\tbarvee: barvee,\n\tbarwed: barwed,\n\tBarwed: Barwed,\n\tbarwedge: barwedge,\n\tbbrk: bbrk,\n\tbbrktbrk: bbrktbrk,\n\tbcong: bcong,\n\tBcy: Bcy,\n\tbcy: bcy,\n\tbdquo: bdquo,\n\tbecaus: becaus,\n\tbecause: because,\n\tBecause: Because,\n\tbemptyv: bemptyv,\n\tbepsi: bepsi,\n\tbernou: bernou,\n\tBernoullis: Bernoullis,\n\tBeta: Beta,\n\tbeta: beta,\n\tbeth: beth,\n\tbetween: between,\n\tBfr: Bfr,\n\tbfr: bfr,\n\tbigcap: bigcap,\n\tbigcirc: bigcirc,\n\tbigcup: bigcup,\n\tbigodot: bigodot,\n\tbigoplus: bigoplus,\n\tbigotimes: bigotimes,\n\tbigsqcup: bigsqcup,\n\tbigstar: bigstar,\n\tbigtriangledown: bigtriangledown,\n\tbigtriangleup: bigtriangleup,\n\tbiguplus: biguplus,\n\tbigvee: bigvee,\n\tbigwedge: bigwedge,\n\tbkarow: bkarow,\n\tblacklozenge: blacklozenge,\n\tblacksquare: blacksquare,\n\tblacktriangle: blacktriangle,\n\tblacktriangledown: blacktriangledown,\n\tblacktriangleleft: blacktriangleleft,\n\tblacktriangleright: blacktriangleright,\n\tblank: blank,\n\tblk12: blk12,\n\tblk14: blk14,\n\tblk34: blk34,\n\tblock: block,\n\tbne: bne,\n\tbnequiv: bnequiv,\n\tbNot: bNot,\n\tbnot: bnot,\n\tBopf: Bopf,\n\tbopf: bopf,\n\tbot: bot,\n\tbottom: bottom,\n\tbowtie: bowtie,\n\tboxbox: boxbox,\n\tboxdl: boxdl,\n\tboxdL: boxdL,\n\tboxDl: boxDl,\n\tboxDL: boxDL,\n\tboxdr: boxdr,\n\tboxdR: boxdR,\n\tboxDr: boxDr,\n\tboxDR: boxDR,\n\tboxh: boxh,\n\tboxH: boxH,\n\tboxhd: boxhd,\n\tboxHd: boxHd,\n\tboxhD: boxhD,\n\tboxHD: boxHD,\n\tboxhu: boxhu,\n\tboxHu: boxHu,\n\tboxhU: boxhU,\n\tboxHU: boxHU,\n\tboxminus: boxminus,\n\tboxplus: boxplus,\n\tboxtimes: boxtimes,\n\tboxul: boxul,\n\tboxuL: boxuL,\n\tboxUl: boxUl,\n\tboxUL: boxUL,\n\tboxur: boxur,\n\tboxuR: boxuR,\n\tboxUr: boxUr,\n\tboxUR: boxUR,\n\tboxv: boxv,\n\tboxV: boxV,\n\tboxvh: boxvh,\n\tboxvH: boxvH,\n\tboxVh: boxVh,\n\tboxVH: boxVH,\n\tboxvl: boxvl,\n\tboxvL: boxvL,\n\tboxVl: boxVl,\n\tboxVL: boxVL,\n\tboxvr: boxvr,\n\tboxvR: boxvR,\n\tboxVr: boxVr,\n\tboxVR: boxVR,\n\tbprime: bprime,\n\tbreve: breve,\n\tBreve: Breve,\n\tbrvbar: brvbar$1,\n\tbscr: bscr,\n\tBscr: Bscr,\n\tbsemi: bsemi,\n\tbsim: bsim,\n\tbsime: bsime,\n\tbsolb: bsolb,\n\tbsol: bsol,\n\tbsolhsub: bsolhsub,\n\tbull: bull,\n\tbullet: bullet,\n\tbump: bump,\n\tbumpE: bumpE,\n\tbumpe: bumpe,\n\tBumpeq: Bumpeq,\n\tbumpeq: bumpeq,\n\tCacute: Cacute,\n\tcacute: cacute,\n\tcapand: capand,\n\tcapbrcup: capbrcup,\n\tcapcap: capcap,\n\tcap: cap,\n\tCap: Cap,\n\tcapcup: capcup,\n\tcapdot: capdot,\n\tCapitalDifferentialD: CapitalDifferentialD,\n\tcaps: caps,\n\tcaret: caret,\n\tcaron: caron,\n\tCayleys: Cayleys,\n\tccaps: ccaps,\n\tCcaron: Ccaron,\n\tccaron: ccaron,\n\tCcedil: Ccedil$1,\n\tccedil: ccedil$1,\n\tCcirc: Ccirc,\n\tccirc: ccirc,\n\tCconint: Cconint,\n\tccups: ccups,\n\tccupssm: ccupssm,\n\tCdot: Cdot,\n\tcdot: cdot,\n\tcedil: cedil$1,\n\tCedilla: Cedilla,\n\tcemptyv: cemptyv,\n\tcent: cent$1,\n\tcenterdot: centerdot,\n\tCenterDot: CenterDot,\n\tcfr: cfr,\n\tCfr: Cfr,\n\tCHcy: CHcy,\n\tchcy: chcy,\n\tcheck: check,\n\tcheckmark: checkmark,\n\tChi: Chi,\n\tchi: chi,\n\tcirc: circ,\n\tcirceq: circeq,\n\tcirclearrowleft: circlearrowleft,\n\tcirclearrowright: circlearrowright,\n\tcircledast: circledast,\n\tcircledcirc: circledcirc,\n\tcircleddash: circleddash,\n\tCircleDot: CircleDot,\n\tcircledR: circledR,\n\tcircledS: circledS,\n\tCircleMinus: CircleMinus,\n\tCirclePlus: CirclePlus,\n\tCircleTimes: CircleTimes,\n\tcir: cir,\n\tcirE: cirE,\n\tcire: cire,\n\tcirfnint: cirfnint,\n\tcirmid: cirmid,\n\tcirscir: cirscir,\n\tClockwiseContourIntegral: ClockwiseContourIntegral,\n\tCloseCurlyDoubleQuote: CloseCurlyDoubleQuote,\n\tCloseCurlyQuote: CloseCurlyQuote,\n\tclubs: clubs,\n\tclubsuit: clubsuit,\n\tcolon: colon,\n\tColon: Colon,\n\tColone: Colone,\n\tcolone: colone,\n\tcoloneq: coloneq,\n\tcomma: comma,\n\tcommat: commat,\n\tcomp: comp,\n\tcompfn: compfn,\n\tcomplement: complement,\n\tcomplexes: complexes,\n\tcong: cong,\n\tcongdot: congdot,\n\tCongruent: Congruent,\n\tconint: conint,\n\tConint: Conint,\n\tContourIntegral: ContourIntegral,\n\tcopf: copf,\n\tCopf: Copf,\n\tcoprod: coprod,\n\tCoproduct: Coproduct,\n\tcopy: copy$1,\n\tCOPY: COPY$1,\n\tcopysr: copysr,\n\tCounterClockwiseContourIntegral: CounterClockwiseContourIntegral,\n\tcrarr: crarr,\n\tcross: cross,\n\tCross: Cross,\n\tCscr: Cscr,\n\tcscr: cscr,\n\tcsub: csub,\n\tcsube: csube,\n\tcsup: csup,\n\tcsupe: csupe,\n\tctdot: ctdot,\n\tcudarrl: cudarrl,\n\tcudarrr: cudarrr,\n\tcuepr: cuepr,\n\tcuesc: cuesc,\n\tcularr: cularr,\n\tcularrp: cularrp,\n\tcupbrcap: cupbrcap,\n\tcupcap: cupcap,\n\tCupCap: CupCap,\n\tcup: cup,\n\tCup: Cup,\n\tcupcup: cupcup,\n\tcupdot: cupdot,\n\tcupor: cupor,\n\tcups: cups,\n\tcurarr: curarr,\n\tcurarrm: curarrm,\n\tcurlyeqprec: curlyeqprec,\n\tcurlyeqsucc: curlyeqsucc,\n\tcurlyvee: curlyvee,\n\tcurlywedge: curlywedge,\n\tcurren: curren$1,\n\tcurvearrowleft: curvearrowleft,\n\tcurvearrowright: curvearrowright,\n\tcuvee: cuvee,\n\tcuwed: cuwed,\n\tcwconint: cwconint,\n\tcwint: cwint,\n\tcylcty: cylcty,\n\tdagger: dagger,\n\tDagger: Dagger,\n\tdaleth: daleth,\n\tdarr: darr,\n\tDarr: Darr,\n\tdArr: dArr,\n\tdash: dash,\n\tDashv: Dashv,\n\tdashv: dashv,\n\tdbkarow: dbkarow,\n\tdblac: dblac,\n\tDcaron: Dcaron,\n\tdcaron: dcaron,\n\tDcy: Dcy,\n\tdcy: dcy,\n\tddagger: ddagger,\n\tddarr: ddarr,\n\tDD: DD,\n\tdd: dd,\n\tDDotrahd: DDotrahd,\n\tddotseq: ddotseq,\n\tdeg: deg$1,\n\tDel: Del,\n\tDelta: Delta,\n\tdelta: delta,\n\tdemptyv: demptyv,\n\tdfisht: dfisht,\n\tDfr: Dfr,\n\tdfr: dfr,\n\tdHar: dHar,\n\tdharl: dharl,\n\tdharr: dharr,\n\tDiacriticalAcute: DiacriticalAcute,\n\tDiacriticalDot: DiacriticalDot,\n\tDiacriticalDoubleAcute: DiacriticalDoubleAcute,\n\tDiacriticalGrave: DiacriticalGrave,\n\tDiacriticalTilde: DiacriticalTilde,\n\tdiam: diam,\n\tdiamond: diamond,\n\tDiamond: Diamond,\n\tdiamondsuit: diamondsuit,\n\tdiams: diams,\n\tdie: die,\n\tDifferentialD: DifferentialD,\n\tdigamma: digamma,\n\tdisin: disin,\n\tdiv: div,\n\tdivide: divide$1,\n\tdivideontimes: divideontimes,\n\tdivonx: divonx,\n\tDJcy: DJcy,\n\tdjcy: djcy,\n\tdlcorn: dlcorn,\n\tdlcrop: dlcrop,\n\tdollar: dollar,\n\tDopf: Dopf,\n\tdopf: dopf,\n\tDot: Dot,\n\tdot: dot,\n\tDotDot: DotDot,\n\tdoteq: doteq,\n\tdoteqdot: doteqdot,\n\tDotEqual: DotEqual,\n\tdotminus: dotminus,\n\tdotplus: dotplus,\n\tdotsquare: dotsquare,\n\tdoublebarwedge: doublebarwedge,\n\tDoubleContourIntegral: DoubleContourIntegral,\n\tDoubleDot: DoubleDot,\n\tDoubleDownArrow: DoubleDownArrow,\n\tDoubleLeftArrow: DoubleLeftArrow,\n\tDoubleLeftRightArrow: DoubleLeftRightArrow,\n\tDoubleLeftTee: DoubleLeftTee,\n\tDoubleLongLeftArrow: DoubleLongLeftArrow,\n\tDoubleLongLeftRightArrow: DoubleLongLeftRightArrow,\n\tDoubleLongRightArrow: DoubleLongRightArrow,\n\tDoubleRightArrow: DoubleRightArrow,\n\tDoubleRightTee: DoubleRightTee,\n\tDoubleUpArrow: DoubleUpArrow,\n\tDoubleUpDownArrow: DoubleUpDownArrow,\n\tDoubleVerticalBar: DoubleVerticalBar,\n\tDownArrowBar: DownArrowBar,\n\tdownarrow: downarrow,\n\tDownArrow: DownArrow,\n\tDownarrow: Downarrow,\n\tDownArrowUpArrow: DownArrowUpArrow,\n\tDownBreve: DownBreve,\n\tdowndownarrows: downdownarrows,\n\tdownharpoonleft: downharpoonleft,\n\tdownharpoonright: downharpoonright,\n\tDownLeftRightVector: DownLeftRightVector,\n\tDownLeftTeeVector: DownLeftTeeVector,\n\tDownLeftVectorBar: DownLeftVectorBar,\n\tDownLeftVector: DownLeftVector,\n\tDownRightTeeVector: DownRightTeeVector,\n\tDownRightVectorBar: DownRightVectorBar,\n\tDownRightVector: DownRightVector,\n\tDownTeeArrow: DownTeeArrow,\n\tDownTee: DownTee,\n\tdrbkarow: drbkarow,\n\tdrcorn: drcorn,\n\tdrcrop: drcrop,\n\tDscr: Dscr,\n\tdscr: dscr,\n\tDScy: DScy,\n\tdscy: dscy,\n\tdsol: dsol,\n\tDstrok: Dstrok,\n\tdstrok: dstrok,\n\tdtdot: dtdot,\n\tdtri: dtri,\n\tdtrif: dtrif,\n\tduarr: duarr,\n\tduhar: duhar,\n\tdwangle: dwangle,\n\tDZcy: DZcy,\n\tdzcy: dzcy,\n\tdzigrarr: dzigrarr,\n\tEacute: Eacute$1,\n\teacute: eacute$1,\n\teaster: easter,\n\tEcaron: Ecaron,\n\tecaron: ecaron,\n\tEcirc: Ecirc$1,\n\tecirc: ecirc$1,\n\tecir: ecir,\n\tecolon: ecolon,\n\tEcy: Ecy,\n\tecy: ecy,\n\teDDot: eDDot,\n\tEdot: Edot,\n\tedot: edot,\n\teDot: eDot,\n\tee: ee,\n\tefDot: efDot,\n\tEfr: Efr,\n\tefr: efr,\n\teg: eg,\n\tEgrave: Egrave$1,\n\tegrave: egrave$1,\n\tegs: egs,\n\tegsdot: egsdot,\n\tel: el,\n\tElement: Element$1,\n\telinters: elinters,\n\tell: ell,\n\tels: els,\n\telsdot: elsdot,\n\tEmacr: Emacr,\n\temacr: emacr,\n\tempty: empty,\n\temptyset: emptyset,\n\tEmptySmallSquare: EmptySmallSquare,\n\temptyv: emptyv,\n\tEmptyVerySmallSquare: EmptyVerySmallSquare,\n\temsp13: emsp13,\n\temsp14: emsp14,\n\temsp: emsp,\n\tENG: ENG,\n\teng: eng,\n\tensp: ensp,\n\tEogon: Eogon,\n\teogon: eogon,\n\tEopf: Eopf,\n\teopf: eopf,\n\tepar: epar,\n\teparsl: eparsl,\n\teplus: eplus,\n\tepsi: epsi,\n\tEpsilon: Epsilon,\n\tepsilon: epsilon,\n\tepsiv: epsiv,\n\teqcirc: eqcirc,\n\teqcolon: eqcolon,\n\teqsim: eqsim,\n\teqslantgtr: eqslantgtr,\n\teqslantless: eqslantless,\n\tEqual: Equal,\n\tequals: equals,\n\tEqualTilde: EqualTilde,\n\tequest: equest,\n\tEquilibrium: Equilibrium,\n\tequiv: equiv,\n\tequivDD: equivDD,\n\teqvparsl: eqvparsl,\n\terarr: erarr,\n\terDot: erDot,\n\tescr: escr,\n\tEscr: Escr,\n\tesdot: esdot,\n\tEsim: Esim,\n\tesim: esim,\n\tEta: Eta,\n\teta: eta,\n\tETH: ETH$1,\n\teth: eth$1,\n\tEuml: Euml$1,\n\teuml: euml$1,\n\teuro: euro,\n\texcl: excl,\n\texist: exist,\n\tExists: Exists,\n\texpectation: expectation,\n\texponentiale: exponentiale,\n\tExponentialE: ExponentialE,\n\tfallingdotseq: fallingdotseq,\n\tFcy: Fcy,\n\tfcy: fcy,\n\tfemale: female,\n\tffilig: ffilig,\n\tfflig: fflig,\n\tffllig: ffllig,\n\tFfr: Ffr,\n\tffr: ffr,\n\tfilig: filig,\n\tFilledSmallSquare: FilledSmallSquare,\n\tFilledVerySmallSquare: FilledVerySmallSquare,\n\tfjlig: fjlig,\n\tflat: flat,\n\tfllig: fllig,\n\tfltns: fltns,\n\tfnof: fnof,\n\tFopf: Fopf,\n\tfopf: fopf,\n\tforall: forall,\n\tForAll: ForAll,\n\tfork: fork,\n\tforkv: forkv,\n\tFouriertrf: Fouriertrf,\n\tfpartint: fpartint,\n\tfrac12: frac12$1,\n\tfrac13: frac13,\n\tfrac14: frac14$1,\n\tfrac15: frac15,\n\tfrac16: frac16,\n\tfrac18: frac18,\n\tfrac23: frac23,\n\tfrac25: frac25,\n\tfrac34: frac34$1,\n\tfrac35: frac35,\n\tfrac38: frac38,\n\tfrac45: frac45,\n\tfrac56: frac56,\n\tfrac58: frac58,\n\tfrac78: frac78,\n\tfrasl: frasl,\n\tfrown: frown,\n\tfscr: fscr,\n\tFscr: Fscr,\n\tgacute: gacute,\n\tGamma: Gamma,\n\tgamma: gamma,\n\tGammad: Gammad,\n\tgammad: gammad,\n\tgap: gap,\n\tGbreve: Gbreve,\n\tgbreve: gbreve,\n\tGcedil: Gcedil,\n\tGcirc: Gcirc,\n\tgcirc: gcirc,\n\tGcy: Gcy,\n\tgcy: gcy,\n\tGdot: Gdot,\n\tgdot: gdot,\n\tge: ge,\n\tgE: gE,\n\tgEl: gEl,\n\tgel: gel,\n\tgeq: geq,\n\tgeqq: geqq,\n\tgeqslant: geqslant,\n\tgescc: gescc,\n\tges: ges,\n\tgesdot: gesdot,\n\tgesdoto: gesdoto,\n\tgesdotol: gesdotol,\n\tgesl: gesl,\n\tgesles: gesles,\n\tGfr: Gfr,\n\tgfr: gfr,\n\tgg: gg,\n\tGg: Gg,\n\tggg: ggg,\n\tgimel: gimel,\n\tGJcy: GJcy,\n\tgjcy: gjcy,\n\tgla: gla,\n\tgl: gl,\n\tglE: glE,\n\tglj: glj,\n\tgnap: gnap,\n\tgnapprox: gnapprox,\n\tgne: gne,\n\tgnE: gnE,\n\tgneq: gneq,\n\tgneqq: gneqq,\n\tgnsim: gnsim,\n\tGopf: Gopf,\n\tgopf: gopf,\n\tgrave: grave,\n\tGreaterEqual: GreaterEqual,\n\tGreaterEqualLess: GreaterEqualLess,\n\tGreaterFullEqual: GreaterFullEqual,\n\tGreaterGreater: GreaterGreater,\n\tGreaterLess: GreaterLess,\n\tGreaterSlantEqual: GreaterSlantEqual,\n\tGreaterTilde: GreaterTilde,\n\tGscr: Gscr,\n\tgscr: gscr,\n\tgsim: gsim,\n\tgsime: gsime,\n\tgsiml: gsiml,\n\tgtcc: gtcc,\n\tgtcir: gtcir,\n\tgt: gt$2,\n\tGT: GT$1,\n\tGt: Gt,\n\tgtdot: gtdot,\n\tgtlPar: gtlPar,\n\tgtquest: gtquest,\n\tgtrapprox: gtrapprox,\n\tgtrarr: gtrarr,\n\tgtrdot: gtrdot,\n\tgtreqless: gtreqless,\n\tgtreqqless: gtreqqless,\n\tgtrless: gtrless,\n\tgtrsim: gtrsim,\n\tgvertneqq: gvertneqq,\n\tgvnE: gvnE,\n\tHacek: Hacek,\n\thairsp: hairsp,\n\thalf: half,\n\thamilt: hamilt,\n\tHARDcy: HARDcy,\n\thardcy: hardcy,\n\tharrcir: harrcir,\n\tharr: harr,\n\thArr: hArr,\n\tharrw: harrw,\n\tHat: Hat,\n\thbar: hbar,\n\tHcirc: Hcirc,\n\thcirc: hcirc,\n\thearts: hearts,\n\theartsuit: heartsuit,\n\thellip: hellip,\n\thercon: hercon,\n\thfr: hfr,\n\tHfr: Hfr,\n\tHilbertSpace: HilbertSpace,\n\thksearow: hksearow,\n\thkswarow: hkswarow,\n\thoarr: hoarr,\n\thomtht: homtht,\n\thookleftarrow: hookleftarrow,\n\thookrightarrow: hookrightarrow,\n\thopf: hopf,\n\tHopf: Hopf,\n\thorbar: horbar,\n\tHorizontalLine: HorizontalLine,\n\thscr: hscr,\n\tHscr: Hscr,\n\thslash: hslash,\n\tHstrok: Hstrok,\n\thstrok: hstrok,\n\tHumpDownHump: HumpDownHump,\n\tHumpEqual: HumpEqual,\n\thybull: hybull,\n\thyphen: hyphen,\n\tIacute: Iacute$1,\n\tiacute: iacute$1,\n\tic: ic,\n\tIcirc: Icirc$1,\n\ticirc: icirc$1,\n\tIcy: Icy,\n\ticy: icy,\n\tIdot: Idot,\n\tIEcy: IEcy,\n\tiecy: iecy,\n\tiexcl: iexcl$1,\n\tiff: iff,\n\tifr: ifr,\n\tIfr: Ifr,\n\tIgrave: Igrave$1,\n\tigrave: igrave$1,\n\tii: ii,\n\tiiiint: iiiint,\n\tiiint: iiint,\n\tiinfin: iinfin,\n\tiiota: iiota,\n\tIJlig: IJlig,\n\tijlig: ijlig,\n\tImacr: Imacr,\n\timacr: imacr,\n\timage: image,\n\tImaginaryI: ImaginaryI,\n\timagline: imagline,\n\timagpart: imagpart,\n\timath: imath,\n\tIm: Im,\n\timof: imof,\n\timped: imped,\n\tImplies: Implies,\n\tincare: incare,\n\t\"in\": \"∈\",\n\tinfin: infin,\n\tinfintie: infintie,\n\tinodot: inodot,\n\tintcal: intcal,\n\tint: int,\n\tInt: Int,\n\tintegers: integers,\n\tIntegral: Integral,\n\tintercal: intercal,\n\tIntersection: Intersection,\n\tintlarhk: intlarhk,\n\tintprod: intprod,\n\tInvisibleComma: InvisibleComma,\n\tInvisibleTimes: InvisibleTimes,\n\tIOcy: IOcy,\n\tiocy: iocy,\n\tIogon: Iogon,\n\tiogon: iogon,\n\tIopf: Iopf,\n\tiopf: iopf,\n\tIota: Iota,\n\tiota: iota,\n\tiprod: iprod,\n\tiquest: iquest$1,\n\tiscr: iscr,\n\tIscr: Iscr,\n\tisin: isin,\n\tisindot: isindot,\n\tisinE: isinE,\n\tisins: isins,\n\tisinsv: isinsv,\n\tisinv: isinv,\n\tit: it,\n\tItilde: Itilde,\n\titilde: itilde,\n\tIukcy: Iukcy,\n\tiukcy: iukcy,\n\tIuml: Iuml$1,\n\tiuml: iuml$1,\n\tJcirc: Jcirc,\n\tjcirc: jcirc,\n\tJcy: Jcy,\n\tjcy: jcy,\n\tJfr: Jfr,\n\tjfr: jfr,\n\tjmath: jmath,\n\tJopf: Jopf,\n\tjopf: jopf,\n\tJscr: Jscr,\n\tjscr: jscr,\n\tJsercy: Jsercy,\n\tjsercy: jsercy,\n\tJukcy: Jukcy,\n\tjukcy: jukcy,\n\tKappa: Kappa,\n\tkappa: kappa,\n\tkappav: kappav,\n\tKcedil: Kcedil,\n\tkcedil: kcedil,\n\tKcy: Kcy,\n\tkcy: kcy,\n\tKfr: Kfr,\n\tkfr: kfr,\n\tkgreen: kgreen,\n\tKHcy: KHcy,\n\tkhcy: khcy,\n\tKJcy: KJcy,\n\tkjcy: kjcy,\n\tKopf: Kopf,\n\tkopf: kopf,\n\tKscr: Kscr,\n\tkscr: kscr,\n\tlAarr: lAarr,\n\tLacute: Lacute,\n\tlacute: lacute,\n\tlaemptyv: laemptyv,\n\tlagran: lagran,\n\tLambda: Lambda,\n\tlambda: lambda,\n\tlang: lang,\n\tLang: Lang,\n\tlangd: langd,\n\tlangle: langle,\n\tlap: lap,\n\tLaplacetrf: Laplacetrf,\n\tlaquo: laquo$1,\n\tlarrb: larrb,\n\tlarrbfs: larrbfs,\n\tlarr: larr,\n\tLarr: Larr,\n\tlArr: lArr,\n\tlarrfs: larrfs,\n\tlarrhk: larrhk,\n\tlarrlp: larrlp,\n\tlarrpl: larrpl,\n\tlarrsim: larrsim,\n\tlarrtl: larrtl,\n\tlatail: latail,\n\tlAtail: lAtail,\n\tlat: lat,\n\tlate: late,\n\tlates: lates,\n\tlbarr: lbarr,\n\tlBarr: lBarr,\n\tlbbrk: lbbrk,\n\tlbrace: lbrace,\n\tlbrack: lbrack,\n\tlbrke: lbrke,\n\tlbrksld: lbrksld,\n\tlbrkslu: lbrkslu,\n\tLcaron: Lcaron,\n\tlcaron: lcaron,\n\tLcedil: Lcedil,\n\tlcedil: lcedil,\n\tlceil: lceil,\n\tlcub: lcub,\n\tLcy: Lcy,\n\tlcy: lcy,\n\tldca: ldca,\n\tldquo: ldquo,\n\tldquor: ldquor,\n\tldrdhar: ldrdhar,\n\tldrushar: ldrushar,\n\tldsh: ldsh,\n\tle: le,\n\tlE: lE,\n\tLeftAngleBracket: LeftAngleBracket,\n\tLeftArrowBar: LeftArrowBar,\n\tleftarrow: leftarrow,\n\tLeftArrow: LeftArrow,\n\tLeftarrow: Leftarrow,\n\tLeftArrowRightArrow: LeftArrowRightArrow,\n\tleftarrowtail: leftarrowtail,\n\tLeftCeiling: LeftCeiling,\n\tLeftDoubleBracket: LeftDoubleBracket,\n\tLeftDownTeeVector: LeftDownTeeVector,\n\tLeftDownVectorBar: LeftDownVectorBar,\n\tLeftDownVector: LeftDownVector,\n\tLeftFloor: LeftFloor,\n\tleftharpoondown: leftharpoondown,\n\tleftharpoonup: leftharpoonup,\n\tleftleftarrows: leftleftarrows,\n\tleftrightarrow: leftrightarrow,\n\tLeftRightArrow: LeftRightArrow,\n\tLeftrightarrow: Leftrightarrow,\n\tleftrightarrows: leftrightarrows,\n\tleftrightharpoons: leftrightharpoons,\n\tleftrightsquigarrow: leftrightsquigarrow,\n\tLeftRightVector: LeftRightVector,\n\tLeftTeeArrow: LeftTeeArrow,\n\tLeftTee: LeftTee,\n\tLeftTeeVector: LeftTeeVector,\n\tleftthreetimes: leftthreetimes,\n\tLeftTriangleBar: LeftTriangleBar,\n\tLeftTriangle: LeftTriangle,\n\tLeftTriangleEqual: LeftTriangleEqual,\n\tLeftUpDownVector: LeftUpDownVector,\n\tLeftUpTeeVector: LeftUpTeeVector,\n\tLeftUpVectorBar: LeftUpVectorBar,\n\tLeftUpVector: LeftUpVector,\n\tLeftVectorBar: LeftVectorBar,\n\tLeftVector: LeftVector,\n\tlEg: lEg,\n\tleg: leg,\n\tleq: leq,\n\tleqq: leqq,\n\tleqslant: leqslant,\n\tlescc: lescc,\n\tles: les,\n\tlesdot: lesdot,\n\tlesdoto: lesdoto,\n\tlesdotor: lesdotor,\n\tlesg: lesg,\n\tlesges: lesges,\n\tlessapprox: lessapprox,\n\tlessdot: lessdot,\n\tlesseqgtr: lesseqgtr,\n\tlesseqqgtr: lesseqqgtr,\n\tLessEqualGreater: LessEqualGreater,\n\tLessFullEqual: LessFullEqual,\n\tLessGreater: LessGreater,\n\tlessgtr: lessgtr,\n\tLessLess: LessLess,\n\tlesssim: lesssim,\n\tLessSlantEqual: LessSlantEqual,\n\tLessTilde: LessTilde,\n\tlfisht: lfisht,\n\tlfloor: lfloor,\n\tLfr: Lfr,\n\tlfr: lfr,\n\tlg: lg,\n\tlgE: lgE,\n\tlHar: lHar,\n\tlhard: lhard,\n\tlharu: lharu,\n\tlharul: lharul,\n\tlhblk: lhblk,\n\tLJcy: LJcy,\n\tljcy: ljcy,\n\tllarr: llarr,\n\tll: ll,\n\tLl: Ll,\n\tllcorner: llcorner,\n\tLleftarrow: Lleftarrow,\n\tllhard: llhard,\n\tlltri: lltri,\n\tLmidot: Lmidot,\n\tlmidot: lmidot,\n\tlmoustache: lmoustache,\n\tlmoust: lmoust,\n\tlnap: lnap,\n\tlnapprox: lnapprox,\n\tlne: lne,\n\tlnE: lnE,\n\tlneq: lneq,\n\tlneqq: lneqq,\n\tlnsim: lnsim,\n\tloang: loang,\n\tloarr: loarr,\n\tlobrk: lobrk,\n\tlongleftarrow: longleftarrow,\n\tLongLeftArrow: LongLeftArrow,\n\tLongleftarrow: Longleftarrow,\n\tlongleftrightarrow: longleftrightarrow,\n\tLongLeftRightArrow: LongLeftRightArrow,\n\tLongleftrightarrow: Longleftrightarrow,\n\tlongmapsto: longmapsto,\n\tlongrightarrow: longrightarrow,\n\tLongRightArrow: LongRightArrow,\n\tLongrightarrow: Longrightarrow,\n\tlooparrowleft: looparrowleft,\n\tlooparrowright: looparrowright,\n\tlopar: lopar,\n\tLopf: Lopf,\n\tlopf: lopf,\n\tloplus: loplus,\n\tlotimes: lotimes,\n\tlowast: lowast,\n\tlowbar: lowbar,\n\tLowerLeftArrow: LowerLeftArrow,\n\tLowerRightArrow: LowerRightArrow,\n\tloz: loz,\n\tlozenge: lozenge,\n\tlozf: lozf,\n\tlpar: lpar,\n\tlparlt: lparlt,\n\tlrarr: lrarr,\n\tlrcorner: lrcorner,\n\tlrhar: lrhar,\n\tlrhard: lrhard,\n\tlrm: lrm,\n\tlrtri: lrtri,\n\tlsaquo: lsaquo,\n\tlscr: lscr,\n\tLscr: Lscr,\n\tlsh: lsh,\n\tLsh: Lsh,\n\tlsim: lsim,\n\tlsime: lsime,\n\tlsimg: lsimg,\n\tlsqb: lsqb,\n\tlsquo: lsquo,\n\tlsquor: lsquor,\n\tLstrok: Lstrok,\n\tlstrok: lstrok,\n\tltcc: ltcc,\n\tltcir: ltcir,\n\tlt: lt$2,\n\tLT: LT$1,\n\tLt: Lt,\n\tltdot: ltdot,\n\tlthree: lthree,\n\tltimes: ltimes,\n\tltlarr: ltlarr,\n\tltquest: ltquest,\n\tltri: ltri,\n\tltrie: ltrie,\n\tltrif: ltrif,\n\tltrPar: ltrPar,\n\tlurdshar: lurdshar,\n\tluruhar: luruhar,\n\tlvertneqq: lvertneqq,\n\tlvnE: lvnE,\n\tmacr: macr$1,\n\tmale: male,\n\tmalt: malt,\n\tmaltese: maltese,\n\t\"Map\": \"⤅\",\n\tmap: map,\n\tmapsto: mapsto,\n\tmapstodown: mapstodown,\n\tmapstoleft: mapstoleft,\n\tmapstoup: mapstoup,\n\tmarker: marker,\n\tmcomma: mcomma,\n\tMcy: Mcy,\n\tmcy: mcy,\n\tmdash: mdash,\n\tmDDot: mDDot,\n\tmeasuredangle: measuredangle,\n\tMediumSpace: MediumSpace,\n\tMellintrf: Mellintrf,\n\tMfr: Mfr,\n\tmfr: mfr,\n\tmho: mho,\n\tmicro: micro$1,\n\tmidast: midast,\n\tmidcir: midcir,\n\tmid: mid,\n\tmiddot: middot$1,\n\tminusb: minusb,\n\tminus: minus,\n\tminusd: minusd,\n\tminusdu: minusdu,\n\tMinusPlus: MinusPlus,\n\tmlcp: mlcp,\n\tmldr: mldr,\n\tmnplus: mnplus,\n\tmodels: models,\n\tMopf: Mopf,\n\tmopf: mopf,\n\tmp: mp,\n\tmscr: mscr,\n\tMscr: Mscr,\n\tmstpos: mstpos,\n\tMu: Mu,\n\tmu: mu,\n\tmultimap: multimap,\n\tmumap: mumap,\n\tnabla: nabla,\n\tNacute: Nacute,\n\tnacute: nacute,\n\tnang: nang,\n\tnap: nap,\n\tnapE: napE,\n\tnapid: napid,\n\tnapos: napos,\n\tnapprox: napprox,\n\tnatural: natural,\n\tnaturals: naturals,\n\tnatur: natur,\n\tnbsp: nbsp$1,\n\tnbump: nbump,\n\tnbumpe: nbumpe,\n\tncap: ncap,\n\tNcaron: Ncaron,\n\tncaron: ncaron,\n\tNcedil: Ncedil,\n\tncedil: ncedil,\n\tncong: ncong,\n\tncongdot: ncongdot,\n\tncup: ncup,\n\tNcy: Ncy,\n\tncy: ncy,\n\tndash: ndash,\n\tnearhk: nearhk,\n\tnearr: nearr,\n\tneArr: neArr,\n\tnearrow: nearrow,\n\tne: ne,\n\tnedot: nedot,\n\tNegativeMediumSpace: NegativeMediumSpace,\n\tNegativeThickSpace: NegativeThickSpace,\n\tNegativeThinSpace: NegativeThinSpace,\n\tNegativeVeryThinSpace: NegativeVeryThinSpace,\n\tnequiv: nequiv,\n\tnesear: nesear,\n\tnesim: nesim,\n\tNestedGreaterGreater: NestedGreaterGreater,\n\tNestedLessLess: NestedLessLess,\n\tNewLine: NewLine,\n\tnexist: nexist,\n\tnexists: nexists,\n\tNfr: Nfr,\n\tnfr: nfr,\n\tngE: ngE,\n\tnge: nge,\n\tngeq: ngeq,\n\tngeqq: ngeqq,\n\tngeqslant: ngeqslant,\n\tnges: nges,\n\tnGg: nGg,\n\tngsim: ngsim,\n\tnGt: nGt,\n\tngt: ngt,\n\tngtr: ngtr,\n\tnGtv: nGtv,\n\tnharr: nharr,\n\tnhArr: nhArr,\n\tnhpar: nhpar,\n\tni: ni,\n\tnis: nis,\n\tnisd: nisd,\n\tniv: niv,\n\tNJcy: NJcy,\n\tnjcy: njcy,\n\tnlarr: nlarr,\n\tnlArr: nlArr,\n\tnldr: nldr,\n\tnlE: nlE,\n\tnle: nle,\n\tnleftarrow: nleftarrow,\n\tnLeftarrow: nLeftarrow,\n\tnleftrightarrow: nleftrightarrow,\n\tnLeftrightarrow: nLeftrightarrow,\n\tnleq: nleq,\n\tnleqq: nleqq,\n\tnleqslant: nleqslant,\n\tnles: nles,\n\tnless: nless,\n\tnLl: nLl,\n\tnlsim: nlsim,\n\tnLt: nLt,\n\tnlt: nlt,\n\tnltri: nltri,\n\tnltrie: nltrie,\n\tnLtv: nLtv,\n\tnmid: nmid,\n\tNoBreak: NoBreak,\n\tNonBreakingSpace: NonBreakingSpace,\n\tnopf: nopf,\n\tNopf: Nopf,\n\tNot: Not,\n\tnot: not$1,\n\tNotCongruent: NotCongruent,\n\tNotCupCap: NotCupCap,\n\tNotDoubleVerticalBar: NotDoubleVerticalBar,\n\tNotElement: NotElement,\n\tNotEqual: NotEqual,\n\tNotEqualTilde: NotEqualTilde,\n\tNotExists: NotExists,\n\tNotGreater: NotGreater,\n\tNotGreaterEqual: NotGreaterEqual,\n\tNotGreaterFullEqual: NotGreaterFullEqual,\n\tNotGreaterGreater: NotGreaterGreater,\n\tNotGreaterLess: NotGreaterLess,\n\tNotGreaterSlantEqual: NotGreaterSlantEqual,\n\tNotGreaterTilde: NotGreaterTilde,\n\tNotHumpDownHump: NotHumpDownHump,\n\tNotHumpEqual: NotHumpEqual,\n\tnotin: notin,\n\tnotindot: notindot,\n\tnotinE: notinE,\n\tnotinva: notinva,\n\tnotinvb: notinvb,\n\tnotinvc: notinvc,\n\tNotLeftTriangleBar: NotLeftTriangleBar,\n\tNotLeftTriangle: NotLeftTriangle,\n\tNotLeftTriangleEqual: NotLeftTriangleEqual,\n\tNotLess: NotLess,\n\tNotLessEqual: NotLessEqual,\n\tNotLessGreater: NotLessGreater,\n\tNotLessLess: NotLessLess,\n\tNotLessSlantEqual: NotLessSlantEqual,\n\tNotLessTilde: NotLessTilde,\n\tNotNestedGreaterGreater: NotNestedGreaterGreater,\n\tNotNestedLessLess: NotNestedLessLess,\n\tnotni: notni,\n\tnotniva: notniva,\n\tnotnivb: notnivb,\n\tnotnivc: notnivc,\n\tNotPrecedes: NotPrecedes,\n\tNotPrecedesEqual: NotPrecedesEqual,\n\tNotPrecedesSlantEqual: NotPrecedesSlantEqual,\n\tNotReverseElement: NotReverseElement,\n\tNotRightTriangleBar: NotRightTriangleBar,\n\tNotRightTriangle: NotRightTriangle,\n\tNotRightTriangleEqual: NotRightTriangleEqual,\n\tNotSquareSubset: NotSquareSubset,\n\tNotSquareSubsetEqual: NotSquareSubsetEqual,\n\tNotSquareSuperset: NotSquareSuperset,\n\tNotSquareSupersetEqual: NotSquareSupersetEqual,\n\tNotSubset: NotSubset,\n\tNotSubsetEqual: NotSubsetEqual,\n\tNotSucceeds: NotSucceeds,\n\tNotSucceedsEqual: NotSucceedsEqual,\n\tNotSucceedsSlantEqual: NotSucceedsSlantEqual,\n\tNotSucceedsTilde: NotSucceedsTilde,\n\tNotSuperset: NotSuperset,\n\tNotSupersetEqual: NotSupersetEqual,\n\tNotTilde: NotTilde,\n\tNotTildeEqual: NotTildeEqual,\n\tNotTildeFullEqual: NotTildeFullEqual,\n\tNotTildeTilde: NotTildeTilde,\n\tNotVerticalBar: NotVerticalBar,\n\tnparallel: nparallel,\n\tnpar: npar,\n\tnparsl: nparsl,\n\tnpart: npart,\n\tnpolint: npolint,\n\tnpr: npr,\n\tnprcue: nprcue,\n\tnprec: nprec,\n\tnpreceq: npreceq,\n\tnpre: npre,\n\tnrarrc: nrarrc,\n\tnrarr: nrarr,\n\tnrArr: nrArr,\n\tnrarrw: nrarrw,\n\tnrightarrow: nrightarrow,\n\tnRightarrow: nRightarrow,\n\tnrtri: nrtri,\n\tnrtrie: nrtrie,\n\tnsc: nsc,\n\tnsccue: nsccue,\n\tnsce: nsce,\n\tNscr: Nscr,\n\tnscr: nscr,\n\tnshortmid: nshortmid,\n\tnshortparallel: nshortparallel,\n\tnsim: nsim,\n\tnsime: nsime,\n\tnsimeq: nsimeq,\n\tnsmid: nsmid,\n\tnspar: nspar,\n\tnsqsube: nsqsube,\n\tnsqsupe: nsqsupe,\n\tnsub: nsub,\n\tnsubE: nsubE,\n\tnsube: nsube,\n\tnsubset: nsubset,\n\tnsubseteq: nsubseteq,\n\tnsubseteqq: nsubseteqq,\n\tnsucc: nsucc,\n\tnsucceq: nsucceq,\n\tnsup: nsup,\n\tnsupE: nsupE,\n\tnsupe: nsupe,\n\tnsupset: nsupset,\n\tnsupseteq: nsupseteq,\n\tnsupseteqq: nsupseteqq,\n\tntgl: ntgl,\n\tNtilde: Ntilde$1,\n\tntilde: ntilde$1,\n\tntlg: ntlg,\n\tntriangleleft: ntriangleleft,\n\tntrianglelefteq: ntrianglelefteq,\n\tntriangleright: ntriangleright,\n\tntrianglerighteq: ntrianglerighteq,\n\tNu: Nu,\n\tnu: nu,\n\tnum: num,\n\tnumero: numero,\n\tnumsp: numsp,\n\tnvap: nvap,\n\tnvdash: nvdash,\n\tnvDash: nvDash,\n\tnVdash: nVdash,\n\tnVDash: nVDash,\n\tnvge: nvge,\n\tnvgt: nvgt,\n\tnvHarr: nvHarr,\n\tnvinfin: nvinfin,\n\tnvlArr: nvlArr,\n\tnvle: nvle,\n\tnvlt: nvlt,\n\tnvltrie: nvltrie,\n\tnvrArr: nvrArr,\n\tnvrtrie: nvrtrie,\n\tnvsim: nvsim,\n\tnwarhk: nwarhk,\n\tnwarr: nwarr,\n\tnwArr: nwArr,\n\tnwarrow: nwarrow,\n\tnwnear: nwnear,\n\tOacute: Oacute$1,\n\toacute: oacute$1,\n\toast: oast,\n\tOcirc: Ocirc$1,\n\tocirc: ocirc$1,\n\tocir: ocir,\n\tOcy: Ocy,\n\tocy: ocy,\n\todash: odash,\n\tOdblac: Odblac,\n\todblac: odblac,\n\todiv: odiv,\n\todot: odot,\n\todsold: odsold,\n\tOElig: OElig,\n\toelig: oelig,\n\tofcir: ofcir,\n\tOfr: Ofr,\n\tofr: ofr,\n\togon: ogon,\n\tOgrave: Ograve$1,\n\tograve: ograve$1,\n\togt: ogt,\n\tohbar: ohbar,\n\tohm: ohm,\n\toint: oint,\n\tolarr: olarr,\n\tolcir: olcir,\n\tolcross: olcross,\n\toline: oline,\n\tolt: olt,\n\tOmacr: Omacr,\n\tomacr: omacr,\n\tOmega: Omega,\n\tomega: omega,\n\tOmicron: Omicron,\n\tomicron: omicron,\n\tomid: omid,\n\tominus: ominus,\n\tOopf: Oopf,\n\toopf: oopf,\n\topar: opar,\n\tOpenCurlyDoubleQuote: OpenCurlyDoubleQuote,\n\tOpenCurlyQuote: OpenCurlyQuote,\n\toperp: operp,\n\toplus: oplus,\n\torarr: orarr,\n\tOr: Or,\n\tor: or,\n\tord: ord,\n\torder: order,\n\torderof: orderof,\n\tordf: ordf$1,\n\tordm: ordm$1,\n\torigof: origof,\n\toror: oror,\n\torslope: orslope,\n\torv: orv,\n\toS: oS,\n\tOscr: Oscr,\n\toscr: oscr,\n\tOslash: Oslash$1,\n\toslash: oslash$1,\n\tosol: osol,\n\tOtilde: Otilde$1,\n\totilde: otilde$1,\n\totimesas: otimesas,\n\tOtimes: Otimes,\n\totimes: otimes,\n\tOuml: Ouml$1,\n\touml: ouml$1,\n\tovbar: ovbar,\n\tOverBar: OverBar,\n\tOverBrace: OverBrace,\n\tOverBracket: OverBracket,\n\tOverParenthesis: OverParenthesis,\n\tpara: para$1,\n\tparallel: parallel,\n\tpar: par,\n\tparsim: parsim,\n\tparsl: parsl,\n\tpart: part,\n\tPartialD: PartialD,\n\tPcy: Pcy,\n\tpcy: pcy,\n\tpercnt: percnt,\n\tperiod: period,\n\tpermil: permil,\n\tperp: perp,\n\tpertenk: pertenk,\n\tPfr: Pfr,\n\tpfr: pfr,\n\tPhi: Phi,\n\tphi: phi,\n\tphiv: phiv,\n\tphmmat: phmmat,\n\tphone: phone,\n\tPi: Pi,\n\tpi: pi,\n\tpitchfork: pitchfork,\n\tpiv: piv,\n\tplanck: planck,\n\tplanckh: planckh,\n\tplankv: plankv,\n\tplusacir: plusacir,\n\tplusb: plusb,\n\tpluscir: pluscir,\n\tplus: plus,\n\tplusdo: plusdo,\n\tplusdu: plusdu,\n\tpluse: pluse,\n\tPlusMinus: PlusMinus,\n\tplusmn: plusmn$1,\n\tplussim: plussim,\n\tplustwo: plustwo,\n\tpm: pm,\n\tPoincareplane: Poincareplane,\n\tpointint: pointint,\n\tpopf: popf,\n\tPopf: Popf,\n\tpound: pound$1,\n\tprap: prap,\n\tPr: Pr,\n\tpr: pr,\n\tprcue: prcue,\n\tprecapprox: precapprox,\n\tprec: prec,\n\tpreccurlyeq: preccurlyeq,\n\tPrecedes: Precedes,\n\tPrecedesEqual: PrecedesEqual,\n\tPrecedesSlantEqual: PrecedesSlantEqual,\n\tPrecedesTilde: PrecedesTilde,\n\tpreceq: preceq,\n\tprecnapprox: precnapprox,\n\tprecneqq: precneqq,\n\tprecnsim: precnsim,\n\tpre: pre,\n\tprE: prE,\n\tprecsim: precsim,\n\tprime: prime,\n\tPrime: Prime,\n\tprimes: primes,\n\tprnap: prnap,\n\tprnE: prnE,\n\tprnsim: prnsim,\n\tprod: prod,\n\tProduct: Product,\n\tprofalar: profalar,\n\tprofline: profline,\n\tprofsurf: profsurf,\n\tprop: prop,\n\tProportional: Proportional,\n\tProportion: Proportion,\n\tpropto: propto,\n\tprsim: prsim,\n\tprurel: prurel,\n\tPscr: Pscr,\n\tpscr: pscr,\n\tPsi: Psi,\n\tpsi: psi,\n\tpuncsp: puncsp,\n\tQfr: Qfr,\n\tqfr: qfr,\n\tqint: qint,\n\tqopf: qopf,\n\tQopf: Qopf,\n\tqprime: qprime,\n\tQscr: Qscr,\n\tqscr: qscr,\n\tquaternions: quaternions,\n\tquatint: quatint,\n\tquest: quest,\n\tquesteq: questeq,\n\tquot: quot$2,\n\tQUOT: QUOT$1,\n\trAarr: rAarr,\n\trace: race,\n\tRacute: Racute,\n\tracute: racute,\n\tradic: radic,\n\traemptyv: raemptyv,\n\trang: rang,\n\tRang: Rang,\n\trangd: rangd,\n\trange: range,\n\trangle: rangle,\n\traquo: raquo$1,\n\trarrap: rarrap,\n\trarrb: rarrb,\n\trarrbfs: rarrbfs,\n\trarrc: rarrc,\n\trarr: rarr,\n\tRarr: Rarr,\n\trArr: rArr,\n\trarrfs: rarrfs,\n\trarrhk: rarrhk,\n\trarrlp: rarrlp,\n\trarrpl: rarrpl,\n\trarrsim: rarrsim,\n\tRarrtl: Rarrtl,\n\trarrtl: rarrtl,\n\trarrw: rarrw,\n\tratail: ratail,\n\trAtail: rAtail,\n\tratio: ratio,\n\trationals: rationals,\n\trbarr: rbarr,\n\trBarr: rBarr,\n\tRBarr: RBarr,\n\trbbrk: rbbrk,\n\trbrace: rbrace,\n\trbrack: rbrack,\n\trbrke: rbrke,\n\trbrksld: rbrksld,\n\trbrkslu: rbrkslu,\n\tRcaron: Rcaron,\n\trcaron: rcaron,\n\tRcedil: Rcedil,\n\trcedil: rcedil,\n\trceil: rceil,\n\trcub: rcub,\n\tRcy: Rcy,\n\trcy: rcy,\n\trdca: rdca,\n\trdldhar: rdldhar,\n\trdquo: rdquo,\n\trdquor: rdquor,\n\trdsh: rdsh,\n\treal: real,\n\trealine: realine,\n\trealpart: realpart,\n\treals: reals,\n\tRe: Re,\n\trect: rect,\n\treg: reg$1,\n\tREG: REG$1,\n\tReverseElement: ReverseElement,\n\tReverseEquilibrium: ReverseEquilibrium,\n\tReverseUpEquilibrium: ReverseUpEquilibrium,\n\trfisht: rfisht,\n\trfloor: rfloor,\n\trfr: rfr,\n\tRfr: Rfr,\n\trHar: rHar,\n\trhard: rhard,\n\trharu: rharu,\n\trharul: rharul,\n\tRho: Rho,\n\trho: rho,\n\trhov: rhov,\n\tRightAngleBracket: RightAngleBracket,\n\tRightArrowBar: RightArrowBar,\n\trightarrow: rightarrow,\n\tRightArrow: RightArrow,\n\tRightarrow: Rightarrow,\n\tRightArrowLeftArrow: RightArrowLeftArrow,\n\trightarrowtail: rightarrowtail,\n\tRightCeiling: RightCeiling,\n\tRightDoubleBracket: RightDoubleBracket,\n\tRightDownTeeVector: RightDownTeeVector,\n\tRightDownVectorBar: RightDownVectorBar,\n\tRightDownVector: RightDownVector,\n\tRightFloor: RightFloor,\n\trightharpoondown: rightharpoondown,\n\trightharpoonup: rightharpoonup,\n\trightleftarrows: rightleftarrows,\n\trightleftharpoons: rightleftharpoons,\n\trightrightarrows: rightrightarrows,\n\trightsquigarrow: rightsquigarrow,\n\tRightTeeArrow: RightTeeArrow,\n\tRightTee: RightTee,\n\tRightTeeVector: RightTeeVector,\n\trightthreetimes: rightthreetimes,\n\tRightTriangleBar: RightTriangleBar,\n\tRightTriangle: RightTriangle,\n\tRightTriangleEqual: RightTriangleEqual,\n\tRightUpDownVector: RightUpDownVector,\n\tRightUpTeeVector: RightUpTeeVector,\n\tRightUpVectorBar: RightUpVectorBar,\n\tRightUpVector: RightUpVector,\n\tRightVectorBar: RightVectorBar,\n\tRightVector: RightVector,\n\tring: ring,\n\trisingdotseq: risingdotseq,\n\trlarr: rlarr,\n\trlhar: rlhar,\n\trlm: rlm,\n\trmoustache: rmoustache,\n\trmoust: rmoust,\n\trnmid: rnmid,\n\troang: roang,\n\troarr: roarr,\n\trobrk: robrk,\n\tropar: ropar,\n\tropf: ropf,\n\tRopf: Ropf,\n\troplus: roplus,\n\trotimes: rotimes,\n\tRoundImplies: RoundImplies,\n\trpar: rpar,\n\trpargt: rpargt,\n\trppolint: rppolint,\n\trrarr: rrarr,\n\tRrightarrow: Rrightarrow,\n\trsaquo: rsaquo,\n\trscr: rscr,\n\tRscr: Rscr,\n\trsh: rsh,\n\tRsh: Rsh,\n\trsqb: rsqb,\n\trsquo: rsquo,\n\trsquor: rsquor,\n\trthree: rthree,\n\trtimes: rtimes,\n\trtri: rtri,\n\trtrie: rtrie,\n\trtrif: rtrif,\n\trtriltri: rtriltri,\n\tRuleDelayed: RuleDelayed,\n\truluhar: ruluhar,\n\trx: rx,\n\tSacute: Sacute,\n\tsacute: sacute,\n\tsbquo: sbquo,\n\tscap: scap,\n\tScaron: Scaron,\n\tscaron: scaron,\n\tSc: Sc,\n\tsc: sc,\n\tsccue: sccue,\n\tsce: sce,\n\tscE: scE,\n\tScedil: Scedil,\n\tscedil: scedil,\n\tScirc: Scirc,\n\tscirc: scirc,\n\tscnap: scnap,\n\tscnE: scnE,\n\tscnsim: scnsim,\n\tscpolint: scpolint,\n\tscsim: scsim,\n\tScy: Scy,\n\tscy: scy,\n\tsdotb: sdotb,\n\tsdot: sdot,\n\tsdote: sdote,\n\tsearhk: searhk,\n\tsearr: searr,\n\tseArr: seArr,\n\tsearrow: searrow,\n\tsect: sect$1,\n\tsemi: semi,\n\tseswar: seswar,\n\tsetminus: setminus,\n\tsetmn: setmn,\n\tsext: sext,\n\tSfr: Sfr,\n\tsfr: sfr,\n\tsfrown: sfrown,\n\tsharp: sharp,\n\tSHCHcy: SHCHcy,\n\tshchcy: shchcy,\n\tSHcy: SHcy,\n\tshcy: shcy,\n\tShortDownArrow: ShortDownArrow,\n\tShortLeftArrow: ShortLeftArrow,\n\tshortmid: shortmid,\n\tshortparallel: shortparallel,\n\tShortRightArrow: ShortRightArrow,\n\tShortUpArrow: ShortUpArrow,\n\tshy: shy$1,\n\tSigma: Sigma,\n\tsigma: sigma,\n\tsigmaf: sigmaf,\n\tsigmav: sigmav,\n\tsim: sim,\n\tsimdot: simdot,\n\tsime: sime,\n\tsimeq: simeq,\n\tsimg: simg,\n\tsimgE: simgE,\n\tsiml: siml,\n\tsimlE: simlE,\n\tsimne: simne,\n\tsimplus: simplus,\n\tsimrarr: simrarr,\n\tslarr: slarr,\n\tSmallCircle: SmallCircle,\n\tsmallsetminus: smallsetminus,\n\tsmashp: smashp,\n\tsmeparsl: smeparsl,\n\tsmid: smid,\n\tsmile: smile,\n\tsmt: smt,\n\tsmte: smte,\n\tsmtes: smtes,\n\tSOFTcy: SOFTcy,\n\tsoftcy: softcy,\n\tsolbar: solbar,\n\tsolb: solb,\n\tsol: sol,\n\tSopf: Sopf,\n\tsopf: sopf,\n\tspades: spades,\n\tspadesuit: spadesuit,\n\tspar: spar,\n\tsqcap: sqcap,\n\tsqcaps: sqcaps,\n\tsqcup: sqcup,\n\tsqcups: sqcups,\n\tSqrt: Sqrt,\n\tsqsub: sqsub,\n\tsqsube: sqsube,\n\tsqsubset: sqsubset,\n\tsqsubseteq: sqsubseteq,\n\tsqsup: sqsup,\n\tsqsupe: sqsupe,\n\tsqsupset: sqsupset,\n\tsqsupseteq: sqsupseteq,\n\tsquare: square,\n\tSquare: Square,\n\tSquareIntersection: SquareIntersection,\n\tSquareSubset: SquareSubset,\n\tSquareSubsetEqual: SquareSubsetEqual,\n\tSquareSuperset: SquareSuperset,\n\tSquareSupersetEqual: SquareSupersetEqual,\n\tSquareUnion: SquareUnion,\n\tsquarf: squarf,\n\tsqu: squ,\n\tsquf: squf,\n\tsrarr: srarr,\n\tSscr: Sscr,\n\tsscr: sscr,\n\tssetmn: ssetmn,\n\tssmile: ssmile,\n\tsstarf: sstarf,\n\tStar: Star,\n\tstar: star,\n\tstarf: starf,\n\tstraightepsilon: straightepsilon,\n\tstraightphi: straightphi,\n\tstrns: strns,\n\tsub: sub,\n\tSub: Sub,\n\tsubdot: subdot,\n\tsubE: subE,\n\tsube: sube,\n\tsubedot: subedot,\n\tsubmult: submult,\n\tsubnE: subnE,\n\tsubne: subne,\n\tsubplus: subplus,\n\tsubrarr: subrarr,\n\tsubset: subset,\n\tSubset: Subset,\n\tsubseteq: subseteq,\n\tsubseteqq: subseteqq,\n\tSubsetEqual: SubsetEqual,\n\tsubsetneq: subsetneq,\n\tsubsetneqq: subsetneqq,\n\tsubsim: subsim,\n\tsubsub: subsub,\n\tsubsup: subsup,\n\tsuccapprox: succapprox,\n\tsucc: succ,\n\tsucccurlyeq: succcurlyeq,\n\tSucceeds: Succeeds,\n\tSucceedsEqual: SucceedsEqual,\n\tSucceedsSlantEqual: SucceedsSlantEqual,\n\tSucceedsTilde: SucceedsTilde,\n\tsucceq: succeq,\n\tsuccnapprox: succnapprox,\n\tsuccneqq: succneqq,\n\tsuccnsim: succnsim,\n\tsuccsim: succsim,\n\tSuchThat: SuchThat,\n\tsum: sum,\n\tSum: Sum,\n\tsung: sung,\n\tsup1: sup1$1,\n\tsup2: sup2$1,\n\tsup3: sup3$1,\n\tsup: sup,\n\tSup: Sup,\n\tsupdot: supdot,\n\tsupdsub: supdsub,\n\tsupE: supE,\n\tsupe: supe,\n\tsupedot: supedot,\n\tSuperset: Superset,\n\tSupersetEqual: SupersetEqual,\n\tsuphsol: suphsol,\n\tsuphsub: suphsub,\n\tsuplarr: suplarr,\n\tsupmult: supmult,\n\tsupnE: supnE,\n\tsupne: supne,\n\tsupplus: supplus,\n\tsupset: supset,\n\tSupset: Supset,\n\tsupseteq: supseteq,\n\tsupseteqq: supseteqq,\n\tsupsetneq: supsetneq,\n\tsupsetneqq: supsetneqq,\n\tsupsim: supsim,\n\tsupsub: supsub,\n\tsupsup: supsup,\n\tswarhk: swarhk,\n\tswarr: swarr,\n\tswArr: swArr,\n\tswarrow: swarrow,\n\tswnwar: swnwar,\n\tszlig: szlig$1,\n\tTab: Tab,\n\ttarget: target,\n\tTau: Tau,\n\ttau: tau,\n\ttbrk: tbrk,\n\tTcaron: Tcaron,\n\ttcaron: tcaron,\n\tTcedil: Tcedil,\n\ttcedil: tcedil,\n\tTcy: Tcy,\n\ttcy: tcy,\n\ttdot: tdot,\n\ttelrec: telrec,\n\tTfr: Tfr,\n\ttfr: tfr,\n\tthere4: there4,\n\ttherefore: therefore,\n\tTherefore: Therefore,\n\tTheta: Theta,\n\ttheta: theta,\n\tthetasym: thetasym,\n\tthetav: thetav,\n\tthickapprox: thickapprox,\n\tthicksim: thicksim,\n\tThickSpace: ThickSpace,\n\tThinSpace: ThinSpace,\n\tthinsp: thinsp,\n\tthkap: thkap,\n\tthksim: thksim,\n\tTHORN: THORN$1,\n\tthorn: thorn$1,\n\ttilde: tilde,\n\tTilde: Tilde,\n\tTildeEqual: TildeEqual,\n\tTildeFullEqual: TildeFullEqual,\n\tTildeTilde: TildeTilde,\n\ttimesbar: timesbar,\n\ttimesb: timesb,\n\ttimes: times$1,\n\ttimesd: timesd,\n\ttint: tint,\n\ttoea: toea,\n\ttopbot: topbot,\n\ttopcir: topcir,\n\ttop: top,\n\tTopf: Topf,\n\ttopf: topf,\n\ttopfork: topfork,\n\ttosa: tosa,\n\ttprime: tprime,\n\ttrade: trade,\n\tTRADE: TRADE,\n\ttriangle: triangle,\n\ttriangledown: triangledown,\n\ttriangleleft: triangleleft,\n\ttrianglelefteq: trianglelefteq,\n\ttriangleq: triangleq,\n\ttriangleright: triangleright,\n\ttrianglerighteq: trianglerighteq,\n\ttridot: tridot,\n\ttrie: trie,\n\ttriminus: triminus,\n\tTripleDot: TripleDot,\n\ttriplus: triplus,\n\ttrisb: trisb,\n\ttritime: tritime,\n\ttrpezium: trpezium,\n\tTscr: Tscr,\n\ttscr: tscr,\n\tTScy: TScy,\n\ttscy: tscy,\n\tTSHcy: TSHcy,\n\ttshcy: tshcy,\n\tTstrok: Tstrok,\n\ttstrok: tstrok,\n\ttwixt: twixt,\n\ttwoheadleftarrow: twoheadleftarrow,\n\ttwoheadrightarrow: twoheadrightarrow,\n\tUacute: Uacute$1,\n\tuacute: uacute$1,\n\tuarr: uarr,\n\tUarr: Uarr,\n\tuArr: uArr,\n\tUarrocir: Uarrocir,\n\tUbrcy: Ubrcy,\n\tubrcy: ubrcy,\n\tUbreve: Ubreve,\n\tubreve: ubreve,\n\tUcirc: Ucirc$1,\n\tucirc: ucirc$1,\n\tUcy: Ucy,\n\tucy: ucy,\n\tudarr: udarr,\n\tUdblac: Udblac,\n\tudblac: udblac,\n\tudhar: udhar,\n\tufisht: ufisht,\n\tUfr: Ufr,\n\tufr: ufr,\n\tUgrave: Ugrave$1,\n\tugrave: ugrave$1,\n\tuHar: uHar,\n\tuharl: uharl,\n\tuharr: uharr,\n\tuhblk: uhblk,\n\tulcorn: ulcorn,\n\tulcorner: ulcorner,\n\tulcrop: ulcrop,\n\tultri: ultri,\n\tUmacr: Umacr,\n\tumacr: umacr,\n\tuml: uml$1,\n\tUnderBar: UnderBar,\n\tUnderBrace: UnderBrace,\n\tUnderBracket: UnderBracket,\n\tUnderParenthesis: UnderParenthesis,\n\tUnion: Union,\n\tUnionPlus: UnionPlus,\n\tUogon: Uogon,\n\tuogon: uogon,\n\tUopf: Uopf,\n\tuopf: uopf,\n\tUpArrowBar: UpArrowBar,\n\tuparrow: uparrow,\n\tUpArrow: UpArrow,\n\tUparrow: Uparrow,\n\tUpArrowDownArrow: UpArrowDownArrow,\n\tupdownarrow: updownarrow,\n\tUpDownArrow: UpDownArrow,\n\tUpdownarrow: Updownarrow,\n\tUpEquilibrium: UpEquilibrium,\n\tupharpoonleft: upharpoonleft,\n\tupharpoonright: upharpoonright,\n\tuplus: uplus,\n\tUpperLeftArrow: UpperLeftArrow,\n\tUpperRightArrow: UpperRightArrow,\n\tupsi: upsi,\n\tUpsi: Upsi,\n\tupsih: upsih,\n\tUpsilon: Upsilon,\n\tupsilon: upsilon,\n\tUpTeeArrow: UpTeeArrow,\n\tUpTee: UpTee,\n\tupuparrows: upuparrows,\n\turcorn: urcorn,\n\turcorner: urcorner,\n\turcrop: urcrop,\n\tUring: Uring,\n\turing: uring,\n\turtri: urtri,\n\tUscr: Uscr,\n\tuscr: uscr,\n\tutdot: utdot,\n\tUtilde: Utilde,\n\tutilde: utilde,\n\tutri: utri,\n\tutrif: utrif,\n\tuuarr: uuarr,\n\tUuml: Uuml$1,\n\tuuml: uuml$1,\n\tuwangle: uwangle,\n\tvangrt: vangrt,\n\tvarepsilon: varepsilon,\n\tvarkappa: varkappa,\n\tvarnothing: varnothing,\n\tvarphi: varphi,\n\tvarpi: varpi,\n\tvarpropto: varpropto,\n\tvarr: varr,\n\tvArr: vArr,\n\tvarrho: varrho,\n\tvarsigma: varsigma,\n\tvarsubsetneq: varsubsetneq,\n\tvarsubsetneqq: varsubsetneqq,\n\tvarsupsetneq: varsupsetneq,\n\tvarsupsetneqq: varsupsetneqq,\n\tvartheta: vartheta,\n\tvartriangleleft: vartriangleleft,\n\tvartriangleright: vartriangleright,\n\tvBar: vBar,\n\tVbar: Vbar,\n\tvBarv: vBarv,\n\tVcy: Vcy,\n\tvcy: vcy,\n\tvdash: vdash,\n\tvDash: vDash,\n\tVdash: Vdash,\n\tVDash: VDash,\n\tVdashl: Vdashl,\n\tveebar: veebar,\n\tvee: vee,\n\tVee: Vee,\n\tveeeq: veeeq,\n\tvellip: vellip,\n\tverbar: verbar,\n\tVerbar: Verbar,\n\tvert: vert,\n\tVert: Vert,\n\tVerticalBar: VerticalBar,\n\tVerticalLine: VerticalLine,\n\tVerticalSeparator: VerticalSeparator,\n\tVerticalTilde: VerticalTilde,\n\tVeryThinSpace: VeryThinSpace,\n\tVfr: Vfr,\n\tvfr: vfr,\n\tvltri: vltri,\n\tvnsub: vnsub,\n\tvnsup: vnsup,\n\tVopf: Vopf,\n\tvopf: vopf,\n\tvprop: vprop,\n\tvrtri: vrtri,\n\tVscr: Vscr,\n\tvscr: vscr,\n\tvsubnE: vsubnE,\n\tvsubne: vsubne,\n\tvsupnE: vsupnE,\n\tvsupne: vsupne,\n\tVvdash: Vvdash,\n\tvzigzag: vzigzag,\n\tWcirc: Wcirc,\n\twcirc: wcirc,\n\twedbar: wedbar,\n\twedge: wedge,\n\tWedge: Wedge,\n\twedgeq: wedgeq,\n\tweierp: weierp,\n\tWfr: Wfr,\n\twfr: wfr,\n\tWopf: Wopf,\n\twopf: wopf,\n\twp: wp,\n\twr: wr,\n\twreath: wreath,\n\tWscr: Wscr,\n\twscr: wscr,\n\txcap: xcap,\n\txcirc: xcirc,\n\txcup: xcup,\n\txdtri: xdtri,\n\tXfr: Xfr,\n\txfr: xfr,\n\txharr: xharr,\n\txhArr: xhArr,\n\tXi: Xi,\n\txi: xi,\n\txlarr: xlarr,\n\txlArr: xlArr,\n\txmap: xmap,\n\txnis: xnis,\n\txodot: xodot,\n\tXopf: Xopf,\n\txopf: xopf,\n\txoplus: xoplus,\n\txotime: xotime,\n\txrarr: xrarr,\n\txrArr: xrArr,\n\tXscr: Xscr,\n\txscr: xscr,\n\txsqcup: xsqcup,\n\txuplus: xuplus,\n\txutri: xutri,\n\txvee: xvee,\n\txwedge: xwedge,\n\tYacute: Yacute$1,\n\tyacute: yacute$1,\n\tYAcy: YAcy,\n\tyacy: yacy,\n\tYcirc: Ycirc,\n\tycirc: ycirc,\n\tYcy: Ycy,\n\tycy: ycy,\n\tyen: yen$1,\n\tYfr: Yfr,\n\tyfr: yfr,\n\tYIcy: YIcy,\n\tyicy: yicy,\n\tYopf: Yopf,\n\tyopf: yopf,\n\tYscr: Yscr,\n\tyscr: yscr,\n\tYUcy: YUcy,\n\tyucy: yucy,\n\tyuml: yuml$1,\n\tYuml: Yuml,\n\tZacute: Zacute,\n\tzacute: zacute,\n\tZcaron: Zcaron,\n\tzcaron: zcaron,\n\tZcy: Zcy,\n\tzcy: zcy,\n\tZdot: Zdot,\n\tzdot: zdot,\n\tzeetrf: zeetrf,\n\tZeroWidthSpace: ZeroWidthSpace,\n\tZeta: Zeta,\n\tzeta: zeta,\n\tzfr: zfr,\n\tZfr: Zfr,\n\tZHcy: ZHcy,\n\tzhcy: zhcy,\n\tzigrarr: zigrarr,\n\tzopf: zopf,\n\tZopf: Zopf,\n\tZscr: Zscr,\n\tzscr: zscr,\n\tzwj: zwj,\n\tzwnj: zwnj\n};\n\nvar Aacute = \"Á\";\nvar aacute = \"á\";\nvar Acirc = \"Â\";\nvar acirc = \"â\";\nvar acute = \"´\";\nvar AElig = \"Æ\";\nvar aelig = \"æ\";\nvar Agrave = \"À\";\nvar agrave = \"à\";\nvar amp$1 = \"&\";\nvar AMP = \"&\";\nvar Aring = \"Å\";\nvar aring = \"å\";\nvar Atilde = \"Ã\";\nvar atilde = \"ã\";\nvar Auml = \"Ä\";\nvar auml = \"ä\";\nvar brvbar = \"¦\";\nvar Ccedil = \"Ç\";\nvar ccedil = \"ç\";\nvar cedil = \"¸\";\nvar cent = \"¢\";\nvar copy = \"©\";\nvar COPY = \"©\";\nvar curren = \"¤\";\nvar deg = \"°\";\nvar divide = \"÷\";\nvar Eacute = \"É\";\nvar eacute = \"é\";\nvar Ecirc = \"Ê\";\nvar ecirc = \"ê\";\nvar Egrave = \"È\";\nvar egrave = \"è\";\nvar ETH = \"Ð\";\nvar eth = \"ð\";\nvar Euml = \"Ë\";\nvar euml = \"ë\";\nvar frac12 = \"½\";\nvar frac14 = \"¼\";\nvar frac34 = \"¾\";\nvar gt$1 = \">\";\nvar GT = \">\";\nvar Iacute = \"Í\";\nvar iacute = \"í\";\nvar Icirc = \"Î\";\nvar icirc = \"î\";\nvar iexcl = \"¡\";\nvar Igrave = \"Ì\";\nvar igrave = \"ì\";\nvar iquest = \"¿\";\nvar Iuml = \"Ï\";\nvar iuml = \"ï\";\nvar laquo = \"«\";\nvar lt$1 = \"<\";\nvar LT = \"<\";\nvar macr = \"¯\";\nvar micro = \"µ\";\nvar middot = \"·\";\nvar nbsp = \" \";\nvar not = \"¬\";\nvar Ntilde = \"Ñ\";\nvar ntilde = \"ñ\";\nvar Oacute = \"Ó\";\nvar oacute = \"ó\";\nvar Ocirc = \"Ô\";\nvar ocirc = \"ô\";\nvar Ograve = \"Ò\";\nvar ograve = \"ò\";\nvar ordf = \"ª\";\nvar ordm = \"º\";\nvar Oslash = \"Ø\";\nvar oslash = \"ø\";\nvar Otilde = \"Õ\";\nvar otilde = \"õ\";\nvar Ouml = \"Ö\";\nvar ouml = \"ö\";\nvar para = \"¶\";\nvar plusmn = \"±\";\nvar pound = \"£\";\nvar quot$1 = \"\\\"\";\nvar QUOT = \"\\\"\";\nvar raquo = \"»\";\nvar reg = \"®\";\nvar REG = \"®\";\nvar sect = \"§\";\nvar shy = \"­\";\nvar sup1 = \"¹\";\nvar sup2 = \"²\";\nvar sup3 = \"³\";\nvar szlig = \"ß\";\nvar THORN = \"Þ\";\nvar thorn = \"þ\";\nvar times = \"×\";\nvar Uacute = \"Ú\";\nvar uacute = \"ú\";\nvar Ucirc = \"Û\";\nvar ucirc = \"û\";\nvar Ugrave = \"Ù\";\nvar ugrave = \"ù\";\nvar uml = \"¨\";\nvar Uuml = \"Ü\";\nvar uuml = \"ü\";\nvar Yacute = \"Ý\";\nvar yacute = \"ý\";\nvar yen = \"¥\";\nvar yuml = \"ÿ\";\nvar require$$1 = {\n\tAacute: Aacute,\n\taacute: aacute,\n\tAcirc: Acirc,\n\tacirc: acirc,\n\tacute: acute,\n\tAElig: AElig,\n\taelig: aelig,\n\tAgrave: Agrave,\n\tagrave: agrave,\n\tamp: amp$1,\n\tAMP: AMP,\n\tAring: Aring,\n\taring: aring,\n\tAtilde: Atilde,\n\tatilde: atilde,\n\tAuml: Auml,\n\tauml: auml,\n\tbrvbar: brvbar,\n\tCcedil: Ccedil,\n\tccedil: ccedil,\n\tcedil: cedil,\n\tcent: cent,\n\tcopy: copy,\n\tCOPY: COPY,\n\tcurren: curren,\n\tdeg: deg,\n\tdivide: divide,\n\tEacute: Eacute,\n\teacute: eacute,\n\tEcirc: Ecirc,\n\tecirc: ecirc,\n\tEgrave: Egrave,\n\tegrave: egrave,\n\tETH: ETH,\n\teth: eth,\n\tEuml: Euml,\n\teuml: euml,\n\tfrac12: frac12,\n\tfrac14: frac14,\n\tfrac34: frac34,\n\tgt: gt$1,\n\tGT: GT,\n\tIacute: Iacute,\n\tiacute: iacute,\n\tIcirc: Icirc,\n\ticirc: icirc,\n\tiexcl: iexcl,\n\tIgrave: Igrave,\n\tigrave: igrave,\n\tiquest: iquest,\n\tIuml: Iuml,\n\tiuml: iuml,\n\tlaquo: laquo,\n\tlt: lt$1,\n\tLT: LT,\n\tmacr: macr,\n\tmicro: micro,\n\tmiddot: middot,\n\tnbsp: nbsp,\n\tnot: not,\n\tNtilde: Ntilde,\n\tntilde: ntilde,\n\tOacute: Oacute,\n\toacute: oacute,\n\tOcirc: Ocirc,\n\tocirc: ocirc,\n\tOgrave: Ograve,\n\tograve: ograve,\n\tordf: ordf,\n\tordm: ordm,\n\tOslash: Oslash,\n\toslash: oslash,\n\tOtilde: Otilde,\n\totilde: otilde,\n\tOuml: Ouml,\n\touml: ouml,\n\tpara: para,\n\tplusmn: plusmn,\n\tpound: pound,\n\tquot: quot$1,\n\tQUOT: QUOT,\n\traquo: raquo,\n\treg: reg,\n\tREG: REG,\n\tsect: sect,\n\tshy: shy,\n\tsup1: sup1,\n\tsup2: sup2,\n\tsup3: sup3,\n\tszlig: szlig,\n\tTHORN: THORN,\n\tthorn: thorn,\n\ttimes: times,\n\tUacute: Uacute,\n\tuacute: uacute,\n\tUcirc: Ucirc,\n\tucirc: ucirc,\n\tUgrave: Ugrave,\n\tugrave: ugrave,\n\tuml: uml,\n\tUuml: Uuml,\n\tuuml: uuml,\n\tYacute: Yacute,\n\tyacute: yacute,\n\tyen: yen,\n\tyuml: yuml\n};\n\nvar amp = \"&\";\nvar apos = \"'\";\nvar gt = \">\";\nvar lt = \"<\";\nvar quot = \"\\\"\";\nvar require$$0$1 = {\n\tamp: amp,\n\tapos: apos,\n\tgt: gt,\n\tlt: lt,\n\tquot: quot\n};\n\nvar decode_codepoint = {};\n\nvar require$$0 = {\n\t\"0\": 65533,\n\t\"128\": 8364,\n\t\"130\": 8218,\n\t\"131\": 402,\n\t\"132\": 8222,\n\t\"133\": 8230,\n\t\"134\": 8224,\n\t\"135\": 8225,\n\t\"136\": 710,\n\t\"137\": 8240,\n\t\"138\": 352,\n\t\"139\": 8249,\n\t\"140\": 338,\n\t\"142\": 381,\n\t\"145\": 8216,\n\t\"146\": 8217,\n\t\"147\": 8220,\n\t\"148\": 8221,\n\t\"149\": 8226,\n\t\"150\": 8211,\n\t\"151\": 8212,\n\t\"152\": 732,\n\t\"153\": 8482,\n\t\"154\": 353,\n\t\"155\": 8250,\n\t\"156\": 339,\n\t\"158\": 382,\n\t\"159\": 376\n};\n\nvar __importDefault$2 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(decode_codepoint, \"__esModule\", { value: true });\nvar decode_json_1 = __importDefault$2(require$$0);\n// Adapted from https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119\nvar fromCodePoint$2 = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.fromCodePoint ||\n function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n };\nfunction decodeCodePoint(codePoint) {\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return \"\\uFFFD\";\n }\n if (codePoint in decode_json_1.default) {\n codePoint = decode_json_1.default[codePoint];\n }\n return fromCodePoint$2(codePoint);\n}\ndecode_codepoint.default = decodeCodePoint;\n\nvar __importDefault$1 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(decode, \"__esModule\", { value: true });\ndecode.decodeHTML = decode.decodeHTMLStrict = decode.decodeXML = void 0;\nvar entities_json_1$1 = __importDefault$1(require$$1$1);\nvar legacy_json_1 = __importDefault$1(require$$1);\nvar xml_json_1$1 = __importDefault$1(require$$0$1);\nvar decode_codepoint_1 = __importDefault$1(decode_codepoint);\nvar strictEntityRe = /&(?:[a-zA-Z0-9]+|#[xX][\\da-fA-F]+|#\\d+);/g;\ndecode.decodeXML = getStrictDecoder(xml_json_1$1.default);\ndecode.decodeHTMLStrict = getStrictDecoder(entities_json_1$1.default);\nfunction getStrictDecoder(map) {\n var replace = getReplacer(map);\n return function (str) { return String(str).replace(strictEntityRe, replace); };\n}\nvar sorter = function (a, b) { return (a < b ? 1 : -1); };\ndecode.decodeHTML = (function () {\n var legacy = Object.keys(legacy_json_1.default).sort(sorter);\n var keys = Object.keys(entities_json_1$1.default).sort(sorter);\n for (var i = 0, j = 0; i < keys.length; i++) {\n if (legacy[j] === keys[i]) {\n keys[i] += \";?\";\n j++;\n }\n else {\n keys[i] += \";\";\n }\n }\n var re = new RegExp(\"&(?:\" + keys.join(\"|\") + \"|#[xX][\\\\da-fA-F]+;?|#\\\\d+;?)\", \"g\");\n var replace = getReplacer(entities_json_1$1.default);\n function replacer(str) {\n if (str.substr(-1) !== \";\")\n str += \";\";\n return replace(str);\n }\n // TODO consider creating a merged map\n return function (str) { return String(str).replace(re, replacer); };\n})();\nfunction getReplacer(map) {\n return function replace(str) {\n if (str.charAt(1) === \"#\") {\n var secondChar = str.charAt(2);\n if (secondChar === \"X\" || secondChar === \"x\") {\n return decode_codepoint_1.default(parseInt(str.substr(3), 16));\n }\n return decode_codepoint_1.default(parseInt(str.substr(2), 10));\n }\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return map[str.slice(1, -1)] || str;\n };\n}\n\nvar encode = {};\n\nvar __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(encode, \"__esModule\", { value: true });\nencode.escapeUTF8 = encode.escape = encode.encodeNonAsciiHTML = encode.encodeHTML = encode.encodeXML = void 0;\nvar xml_json_1 = __importDefault(require$$0$1);\nvar inverseXML = getInverseObj(xml_json_1.default);\nvar xmlReplacer = getInverseReplacer(inverseXML);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `&#xfc;`) will be used.\n */\nencode.encodeXML = getASCIIEncoder(inverseXML);\nvar entities_json_1 = __importDefault(require$$1$1);\nvar inverseHTML = getInverseObj(entities_json_1.default);\nvar htmlReplacer = getInverseReplacer(inverseHTML);\n/**\n * Encodes all entities and non-ASCII characters in the input.\n *\n * This includes characters that are valid ASCII characters in HTML documents.\n * For example `#` will be encoded as `&num;`. To get a more compact output,\n * consider using the `encodeNonAsciiHTML` function.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `&#xfc;`) will be used.\n */\nencode.encodeHTML = getInverse(inverseHTML, htmlReplacer);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `&#xfc;`) will be used.\n */\nencode.encodeNonAsciiHTML = getASCIIEncoder(inverseHTML);\nfunction getInverseObj(obj) {\n return Object.keys(obj)\n .sort()\n .reduce(function (inverse, name) {\n inverse[obj[name]] = \"&\" + name + \";\";\n return inverse;\n }, {});\n}\nfunction getInverseReplacer(inverse) {\n var single = [];\n var multiple = [];\n for (var _i = 0, _a = Object.keys(inverse); _i < _a.length; _i++) {\n var k = _a[_i];\n if (k.length === 1) {\n // Add value to single array\n single.push(\"\\\\\" + k);\n }\n else {\n // Add value to multiple array\n multiple.push(k);\n }\n }\n // Add ranges to single characters.\n single.sort();\n for (var start = 0; start < single.length - 1; start++) {\n // Find the end of a run of characters\n var end = start;\n while (end < single.length - 1 &&\n single[end].charCodeAt(1) + 1 === single[end + 1].charCodeAt(1)) {\n end += 1;\n }\n var count = 1 + end - start;\n // We want to replace at least three characters\n if (count < 3)\n continue;\n single.splice(start, count, single[start] + \"-\" + single[end]);\n }\n multiple.unshift(\"[\" + single.join(\"\") + \"]\");\n return new RegExp(multiple.join(\"|\"), \"g\");\n}\n// /[^\\0-\\x7F]/gu\nvar reNonASCII = /(?:[\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/g;\nvar getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n function (str) { return str.codePointAt(0); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c) {\n return (c.charCodeAt(0) - 0xd800) * 0x400 +\n c.charCodeAt(1) -\n 0xdc00 +\n 0x10000;\n };\nfunction singleCharReplacer(c) {\n return \"&#x\" + (c.length > 1 ? getCodePoint(c) : c.charCodeAt(0))\n .toString(16)\n .toUpperCase() + \";\";\n}\nfunction getInverse(inverse, re) {\n return function (data) {\n return data\n .replace(re, function (name) { return inverse[name]; })\n .replace(reNonASCII, singleCharReplacer);\n };\n}\nvar reEscapeChars = new RegExp(xmlReplacer.source + \"|\" + reNonASCII.source, \"g\");\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `&#xfc;`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nfunction escape(data) {\n return data.replace(reEscapeChars, singleCharReplacer);\n}\nencode.escape = escape;\n/**\n * Encodes all characters not valid in XML documents using numeric hexadecimal\n * reference (eg. `&#xfc;`).\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nfunction escapeUTF8(data) {\n return data.replace(xmlReplacer, singleCharReplacer);\n}\nencode.escapeUTF8 = escapeUTF8;\nfunction getASCIIEncoder(obj) {\n return function (data) {\n return data.replace(reEscapeChars, function (c) { return obj[c] || singleCharReplacer(c); });\n };\n}\n\n(function (exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.encodeHTML5 = exports.encodeHTML4 = exports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = void 0;\nvar decode_1 = decode;\nvar encode_1 = encode;\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `decodeXML` or `decodeHTML` directly.\n */\nfunction decode$1(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTML)(data);\n}\nexports.decode = decode$1;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `decodeHTMLStrict` or `decodeXML` directly.\n */\nfunction decodeStrict(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTMLStrict)(data);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param level Optional level to encode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `encodeHTML`, `encodeXML` or `encodeNonAsciiHTML` directly.\n */\nfunction encode$1(data, level) {\n return (!level || level <= 0 ? encode_1.encodeXML : encode_1.encodeHTML)(data);\n}\nexports.encode = encode$1;\nvar encode_2 = encode;\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return encode_2.encodeXML; } });\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_2.encodeNonAsciiHTML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return encode_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return encode_2.escapeUTF8; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\nvar decode_2 = decode;\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_2.decodeXML; } });\n}(lib));\n\nvar ENTITY = '&(?:#x[a-f0-9]{1,6}|#[0-9]{1,7}|[a-z][a-z0-9]{1,31});';\nvar C_BACKSLASH$1 = 92;\nvar reBackslashOrAmp = /[\\\\&]/;\nvar ESCAPABLE = '[!\"#$%&\\'()*+,./:;<=>?@[\\\\\\\\\\\\]^_`{|}~-]';\nvar reEntityOrEscapedChar = new RegExp(\"\\\\\\\\\" + ESCAPABLE + \"|\" + ENTITY, 'gi');\nvar XMLSPECIAL = '[&<>\"]';\nvar reXmlSpecial = new RegExp(XMLSPECIAL, 'g');\nvar unescapeChar = function (s) {\n if (s.charCodeAt(0) === C_BACKSLASH$1) {\n return s.charAt(1);\n }\n return lib.decodeHTML(s);\n};\n// Replace entities and backslash escapes with literal characters.\nfunction unescapeString(s) {\n if (reBackslashOrAmp.test(s)) {\n return s.replace(reEntityOrEscapedChar, unescapeChar);\n }\n return s;\n}\nfunction normalizeURI(uri) {\n try {\n return encode_1(uri);\n }\n catch (err) {\n return uri;\n }\n}\nfunction replaceUnsafeChar(s) {\n switch (s) {\n case '&':\n return '&amp;';\n case '<':\n return '&lt;';\n case '>':\n return '&gt;';\n case '\"':\n return '&quot;';\n default:\n return s;\n }\n}\nfunction escapeXml(s) {\n if (reXmlSpecial.test(s)) {\n return s.replace(reXmlSpecial, replaceUnsafeChar);\n }\n return s;\n}\nfunction repeat(str, count) {\n var arr = [];\n for (var i = 0; i < count; i++) {\n arr.push(str);\n }\n return arr.join('');\n}\nfunction isEmpty(str) {\n if (!str) {\n return true;\n }\n return !/[^ \\t]+/.test(str);\n}\n\nvar NodeWalker = /** @class */ (function () {\n function NodeWalker(root) {\n this.current = root;\n this.root = root;\n this.entering = true;\n }\n NodeWalker.prototype.next = function () {\n var cur = this.current;\n var entering = this.entering;\n if (cur === null) {\n return null;\n }\n var container = isContainer$1(cur);\n if (entering && container) {\n if (cur.firstChild) {\n this.current = cur.firstChild;\n this.entering = true;\n }\n else {\n // stay on node but exit\n this.entering = false;\n }\n }\n else if (cur === this.root) {\n this.current = null;\n }\n else if (cur.next === null) {\n this.current = cur.parent;\n this.entering = false;\n }\n else {\n this.current = cur.next;\n this.entering = true;\n }\n return { entering: entering, node: cur };\n };\n NodeWalker.prototype.resumeAt = function (node, entering) {\n this.current = node;\n this.entering = entering === true;\n };\n return NodeWalker;\n}());\n\nfunction isContainer$1(node) {\n switch (node.type) {\n case 'document':\n case 'blockQuote':\n case 'list':\n case 'item':\n case 'paragraph':\n case 'heading':\n case 'emph':\n case 'strong':\n case 'strike':\n case 'link':\n case 'image':\n case 'table':\n case 'tableHead':\n case 'tableBody':\n case 'tableRow':\n case 'tableCell':\n case 'tableDelimRow':\n case 'customInline':\n return true;\n default:\n return false;\n }\n}\nvar lastNodeId = 1;\nvar nodeMap = {};\nfunction getNodeById(id) {\n return nodeMap[id];\n}\nfunction removeNodeById(id) {\n delete nodeMap[id];\n}\nfunction removeAllNode() {\n nodeMap = {};\n}\nvar Node$1 = /** @class */ (function () {\n function Node(nodeType, sourcepos) {\n this.parent = null;\n this.prev = null;\n this.next = null;\n // only for container node\n this.firstChild = null;\n this.lastChild = null;\n // only for leaf node\n this.literal = null;\n if (nodeType === 'document') {\n this.id = -1;\n }\n else {\n this.id = lastNodeId++;\n }\n this.type = nodeType;\n this.sourcepos = sourcepos;\n nodeMap[this.id] = this;\n }\n Node.prototype.isContainer = function () {\n return isContainer$1(this);\n };\n Node.prototype.unlink = function () {\n if (this.prev) {\n this.prev.next = this.next;\n }\n else if (this.parent) {\n this.parent.firstChild = this.next;\n }\n if (this.next) {\n this.next.prev = this.prev;\n }\n else if (this.parent) {\n this.parent.lastChild = this.prev;\n }\n this.parent = null;\n this.next = null;\n this.prev = null;\n };\n Node.prototype.replaceWith = function (node) {\n this.insertBefore(node);\n this.unlink();\n };\n Node.prototype.insertAfter = function (sibling) {\n sibling.unlink();\n sibling.next = this.next;\n if (sibling.next) {\n sibling.next.prev = sibling;\n }\n sibling.prev = this;\n this.next = sibling;\n if (this.parent) {\n sibling.parent = this.parent;\n if (!sibling.next) {\n sibling.parent.lastChild = sibling;\n }\n }\n };\n Node.prototype.insertBefore = function (sibling) {\n sibling.unlink();\n sibling.prev = this.prev;\n if (sibling.prev) {\n sibling.prev.next = sibling;\n }\n sibling.next = this;\n this.prev = sibling;\n sibling.parent = this.parent;\n if (!sibling.prev) {\n sibling.parent.firstChild = sibling;\n }\n };\n Node.prototype.appendChild = function (child) {\n child.unlink();\n child.parent = this;\n if (this.lastChild) {\n this.lastChild.next = child;\n child.prev = this.lastChild;\n this.lastChild = child;\n }\n else {\n this.firstChild = child;\n this.lastChild = child;\n }\n };\n Node.prototype.prependChild = function (child) {\n child.unlink();\n child.parent = this;\n if (this.firstChild) {\n this.firstChild.prev = child;\n child.next = this.firstChild;\n this.firstChild = child;\n }\n else {\n this.firstChild = child;\n this.lastChild = child;\n }\n };\n Node.prototype.walker = function () {\n return new NodeWalker(this);\n };\n return Node;\n}());\nvar BlockNode = /** @class */ (function (_super) {\n __extends(BlockNode, _super);\n function BlockNode(nodeType, sourcepos) {\n var _this = _super.call(this, nodeType, sourcepos) || this;\n // temporal data (for parsing)\n _this.open = true;\n _this.lineOffsets = null;\n _this.stringContent = null;\n _this.lastLineBlank = false;\n _this.lastLineChecked = false;\n _this.type = nodeType;\n return _this;\n }\n return BlockNode;\n}(Node$1));\nvar ListNode = /** @class */ (function (_super) {\n __extends(ListNode, _super);\n function ListNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.listData = null;\n return _this;\n }\n return ListNode;\n}(BlockNode));\nvar HeadingNode = /** @class */ (function (_super) {\n __extends(HeadingNode, _super);\n function HeadingNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.level = 0;\n _this.headingType = 'atx';\n return _this;\n }\n return HeadingNode;\n}(BlockNode));\nvar CodeBlockNode = /** @class */ (function (_super) {\n __extends(CodeBlockNode, _super);\n function CodeBlockNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isFenced = false;\n _this.fenceChar = null;\n _this.fenceLength = 0;\n _this.fenceOffset = -1;\n _this.info = null;\n _this.infoPadding = 0;\n return _this;\n }\n return CodeBlockNode;\n}(BlockNode));\nvar TableNode = /** @class */ (function (_super) {\n __extends(TableNode, _super);\n function TableNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.columns = [];\n return _this;\n }\n return TableNode;\n}(BlockNode));\nvar TableCellNode = /** @class */ (function (_super) {\n __extends(TableCellNode, _super);\n function TableCellNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.startIdx = 0;\n _this.endIdx = 0;\n _this.paddingLeft = 0;\n _this.paddingRight = 0;\n _this.ignored = false;\n return _this;\n }\n return TableCellNode;\n}(BlockNode));\nvar RefDefNode = /** @class */ (function (_super) {\n __extends(RefDefNode, _super);\n function RefDefNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.title = '';\n _this.dest = '';\n _this.label = '';\n return _this;\n }\n return RefDefNode;\n}(BlockNode));\nvar CustomBlockNode = /** @class */ (function (_super) {\n __extends(CustomBlockNode, _super);\n function CustomBlockNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.syntaxLength = 0;\n _this.offset = -1;\n _this.info = '';\n return _this;\n }\n return CustomBlockNode;\n}(BlockNode));\nvar HtmlBlockNode = /** @class */ (function (_super) {\n __extends(HtmlBlockNode, _super);\n function HtmlBlockNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.htmlBlockType = -1;\n return _this;\n }\n return HtmlBlockNode;\n}(BlockNode));\nvar LinkNode = /** @class */ (function (_super) {\n __extends(LinkNode, _super);\n function LinkNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.destination = null;\n _this.title = null;\n _this.extendedAutolink = false;\n return _this;\n }\n return LinkNode;\n}(Node$1));\nvar CodeNode = /** @class */ (function (_super) {\n __extends(CodeNode, _super);\n function CodeNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.tickCount = 0;\n return _this;\n }\n return CodeNode;\n}(Node$1));\nvar CustomInlineNode = /** @class */ (function (_super) {\n __extends(CustomInlineNode, _super);\n function CustomInlineNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.info = '';\n return _this;\n }\n return CustomInlineNode;\n}(Node$1));\nfunction createNode$1(type, sourcepos) {\n switch (type) {\n case 'heading':\n return new HeadingNode(type, sourcepos);\n case 'list':\n case 'item':\n return new ListNode(type, sourcepos);\n case 'link':\n case 'image':\n return new LinkNode(type, sourcepos);\n case 'codeBlock':\n return new CodeBlockNode(type, sourcepos);\n case 'htmlBlock':\n return new HtmlBlockNode(type, sourcepos);\n case 'table':\n return new TableNode(type, sourcepos);\n case 'tableCell':\n return new TableCellNode(type, sourcepos);\n case 'document':\n case 'paragraph':\n case 'blockQuote':\n case 'thematicBreak':\n case 'tableRow':\n case 'tableBody':\n case 'tableHead':\n case 'frontMatter':\n return new BlockNode(type, sourcepos);\n case 'code':\n return new CodeNode(type, sourcepos);\n case 'refDef':\n return new RefDefNode(type, sourcepos);\n case 'customBlock':\n return new CustomBlockNode(type, sourcepos);\n case 'customInline':\n return new CustomInlineNode(type, sourcepos);\n default:\n return new Node$1(type, sourcepos);\n }\n}\nfunction isCodeBlock(node) {\n return node.type === 'codeBlock';\n}\nfunction isHtmlBlock(node) {\n return node.type === 'htmlBlock';\n}\nfunction isHeading(node) {\n return node.type === 'heading';\n}\nfunction isList(node) {\n return node.type === 'list';\n}\nfunction isTable(node) {\n return node.type === 'table';\n}\nfunction isRefDef(node) {\n return node.type === 'refDef';\n}\nfunction isCustomBlock(node) {\n return node.type === 'customBlock';\n}\nfunction isCustomInline(node) {\n return node.type === 'customInline';\n}\nfunction text$1(s, sourcepos) {\n var node = createNode$1('text', sourcepos);\n node.literal = s;\n return node;\n}\n\nvar TAGNAME = '[A-Za-z][A-Za-z0-9-]*';\nvar ATTRIBUTENAME = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\nvar UNQUOTEDVALUE = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\nvar SINGLEQUOTEDVALUE = \"'[^']*'\";\nvar DOUBLEQUOTEDVALUE = '\"[^\"]*\"';\nvar ATTRIBUTEVALUE = \"(?:\" + UNQUOTEDVALUE + \"|\" + SINGLEQUOTEDVALUE + \"|\" + DOUBLEQUOTEDVALUE + \")\";\nvar ATTRIBUTEVALUESPEC = \"\" + '(?:\\\\s*=\\\\s*' + ATTRIBUTEVALUE + \")\";\nvar ATTRIBUTE = \"\" + '(?:\\\\s+' + ATTRIBUTENAME + ATTRIBUTEVALUESPEC + \"?)\";\nvar OPENTAG = \"<\" + TAGNAME + ATTRIBUTE + \"*\\\\s*/?>\";\nvar CLOSETAG = \"</\" + TAGNAME + \"\\\\s*[>]\";\nvar HTMLCOMMENT = '<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->';\nvar PROCESSINGINSTRUCTION = '[<][?].*?[?][>]';\nvar DECLARATION = '<![A-Z]+\\\\s+[^>]*>';\nvar CDATA = '<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>';\nvar HTMLTAG = \"(?:\" + OPENTAG + \"|\" + CLOSETAG + \"|\" + HTMLCOMMENT + \"|\" + PROCESSINGINSTRUCTION + \"|\" + DECLARATION + \"|\" + CDATA + \")\";\nvar reHtmlTag = new RegExp(\"^\" + HTMLTAG, 'i');\n\n// derived from https://github.com/mathiasbynens/String.fromCodePoint\n/*! http://mths.be/fromcodepoint v0.2.1 by @mathias */\nvar fromCodePoint;\nif (String.fromCodePoint) {\n fromCodePoint = function (_) {\n try {\n return String.fromCodePoint(_);\n }\n catch (e) {\n if (e instanceof RangeError) {\n return String.fromCharCode(0xfffd);\n }\n throw e;\n }\n };\n}\nelse {\n var stringFromCharCode_1 = String.fromCharCode;\n var floor_1 = Math.floor;\n fromCodePoint = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var MAX_SIZE = 0x4000;\n var codeUnits = [];\n var highSurrogate;\n var lowSurrogate;\n var index = -1;\n var length = args.length;\n if (!length) {\n return '';\n }\n var result = '';\n while (++index < length) {\n var codePoint = Number(args[index]);\n if (!isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10ffff || // not a valid Unicode code point\n floor_1(codePoint) !== codePoint // not an integer\n ) {\n return String.fromCharCode(0xfffd);\n }\n if (codePoint <= 0xffff) {\n // BMP code point\n codeUnits.push(codePoint);\n }\n else {\n // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000;\n highSurrogate = (codePoint >> 10) + 0xd800;\n lowSurrogate = (codePoint % 0x400) + 0xdc00;\n codeUnits.push(highSurrogate, lowSurrogate);\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode_1.apply(void 0, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n}\nvar fromCodePoint$1 = fromCodePoint;\n\nvar DOMAIN = '(?:[w-]+.)*[A-Za-z0-9-]+.[A-Za-z0-9-]+';\nvar PATH = '[^<\\\\s]*[^<?!.,:*_?~\\\\s]';\nvar EMAIL = '[\\\\w.+-]+@(?:[\\\\w-]+\\\\.)+[\\\\w-]+';\nfunction trimUnmatchedTrailingParens(source) {\n var trailingParen = /\\)+$/.exec(source);\n if (trailingParen) {\n var count = 0;\n for (var _i = 0, source_1 = source; _i < source_1.length; _i++) {\n var ch = source_1[_i];\n if (ch === '(') {\n if (count < 0) {\n count = 1;\n }\n else {\n count += 1;\n }\n }\n else if (ch === ')') {\n count -= 1;\n }\n }\n if (count < 0) {\n var trimCount = Math.min(-count, trailingParen[0].length);\n return source.substring(0, source.length - trimCount);\n }\n }\n return source;\n}\nfunction trimTrailingEntity(source) {\n return source.replace(/&[A-Za-z0-9]+;$/, '');\n}\nfunction parseEmailLink(source) {\n var reEmailLink = new RegExp(EMAIL, 'g');\n var result = [];\n var m;\n while ((m = reEmailLink.exec(source))) {\n var text_1 = m[0];\n if (!/[_-]+$/.test(text_1)) {\n result.push({\n text: text_1,\n range: [m.index, m.index + text_1.length - 1],\n url: \"mailto:\" + text_1,\n });\n }\n }\n return result;\n}\nfunction parseUrlLink(source) {\n var reWwwAutolink = new RegExp(\"(www|https?://).\" + DOMAIN + PATH, 'g');\n var result = [];\n var m;\n while ((m = reWwwAutolink.exec(source))) {\n var text_2 = trimTrailingEntity(trimUnmatchedTrailingParens(m[0]));\n var scheme = m[1] === 'www' ? 'http://' : '';\n result.push({\n text: text_2,\n range: [m.index, m.index + text_2.length - 1],\n url: \"\" + scheme + text_2,\n });\n }\n return result;\n}\nfunction baseAutolinkParser(source) {\n return __spreadArray(__spreadArray([], parseUrlLink(source)), parseEmailLink(source)).sort(function (a, b) { return a.range[0] - b.range[0]; });\n}\nfunction convertExtAutoLinks(walker, autolinkParser) {\n if (typeof autolinkParser === 'boolean') {\n autolinkParser = baseAutolinkParser;\n }\n var event;\n var _loop_1 = function () {\n var entering = event.entering, node = event.node;\n if (entering && node.type === 'text' && node.parent.type !== 'link') {\n var literal = node.literal;\n var linkInfos = autolinkParser(literal);\n if (!linkInfos || !linkInfos.length) {\n return \"continue\";\n }\n var lastIdx = 0;\n var _a = node.sourcepos[0], lineNum_1 = _a[0], chPos_1 = _a[1];\n var sourcepos = function (startIdx, endIdx) { return [\n [lineNum_1, chPos_1 + startIdx],\n [lineNum_1, chPos_1 + endIdx],\n ]; };\n var newNodes = [];\n for (var _i = 0, linkInfos_1 = linkInfos; _i < linkInfos_1.length; _i++) {\n var _b = linkInfos_1[_i], range = _b.range, url = _b.url, linkText = _b.text;\n if (range[0] > lastIdx) {\n newNodes.push(text$1(literal.substring(lastIdx, range[0]), sourcepos(lastIdx, range[0] - 1)));\n }\n var linkNode = createNode$1('link', sourcepos.apply(void 0, range));\n linkNode.appendChild(text$1(linkText, sourcepos.apply(void 0, range)));\n linkNode.destination = url;\n linkNode.extendedAutolink = true;\n newNodes.push(linkNode);\n lastIdx = range[1] + 1;\n }\n if (lastIdx < literal.length) {\n newNodes.push(text$1(literal.substring(lastIdx), sourcepos(lastIdx, literal.length - 1)));\n }\n for (var _c = 0, newNodes_1 = newNodes; _c < newNodes_1.length; _c++) {\n var newNode = newNodes_1[_c];\n node.insertBefore(newNode);\n }\n node.unlink();\n }\n };\n while ((event = walker.next())) {\n _loop_1();\n }\n}\n\nfunction last(arr) {\n return arr[arr.length - 1];\n}\n// normalize a reference in reference link (remove []s, trim,\n// collapse internal space, unicode case fold.\n// See commonmark/commonmark.js#168.\nfunction normalizeReference(str) {\n return str\n .slice(1, str.length - 1)\n .trim()\n .replace(/[ \\t\\r\\n]+/, ' ')\n .toLowerCase()\n .toUpperCase();\n}\nfunction iterateObject(obj, iteratee) {\n Object.keys(obj).forEach(function (key) {\n iteratee(key, obj[key]);\n });\n}\nfunction omit(obj) {\n var propNames = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n propNames[_i - 1] = arguments[_i];\n }\n var resultMap = __assign({}, obj);\n propNames.forEach(function (key) {\n delete resultMap[key];\n });\n return resultMap;\n}\nfunction isEmptyObj(obj) {\n return !Object.keys(obj).length;\n}\nfunction clearObj(obj) {\n Object.keys(obj).forEach(function (key) {\n delete obj[key];\n });\n}\n\nvar C_NEWLINE = 10;\nvar C_ASTERISK = 42;\nvar C_UNDERSCORE = 95;\nvar C_BACKTICK = 96;\nvar C_OPEN_BRACKET$1 = 91;\nvar C_CLOSE_BRACKET = 93;\nvar C_TILDE = 126;\nvar C_LESSTHAN$1 = 60;\nvar C_BANG = 33;\nvar C_BACKSLASH = 92;\nvar C_AMPERSAND = 38;\nvar C_OPEN_PAREN = 40;\nvar C_CLOSE_PAREN = 41;\nvar C_COLON = 58;\nvar C_SINGLEQUOTE = 39;\nvar C_DOUBLEQUOTE = 34;\nvar C_DOLLAR = 36;\n// Some regexps used in inline parser:\nvar ESCAPED_CHAR = \"\\\\\\\\\" + ESCAPABLE;\nvar rePunctuation = new RegExp(/[!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0AF0\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E42\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC9\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDF3C-\\uDF3E]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]/);\nvar reLinkTitle = new RegExp(\"^(?:\\\"(\" + ESCAPED_CHAR + \"|[^\\\"\\\\x00])*\\\"\" +\n \"|\" +\n (\"'(\" + ESCAPED_CHAR + \"|[^'\\\\x00])*'\") +\n \"|\" +\n (\"\\\\((\" + ESCAPED_CHAR + \"|[^()\\\\x00])*\\\\))\"));\nvar reLinkDestinationBraces = /^(?:<(?:[^<>\\n\\\\\\x00]|\\\\.)*>)/;\nvar reEscapable = new RegExp(\"^\" + ESCAPABLE);\nvar reEntityHere = new RegExp(\"^\" + ENTITY, 'i');\nvar reTicks = /`+/;\nvar reTicksHere = /^`+/;\nvar reEllipses = /\\.\\.\\./g;\nvar reDash = /--+/g;\nvar reEmailAutolink = /^<([a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/;\nvar reAutolink = /^<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\\x00-\\x20]*>/i;\nvar reSpnl = /^ *(?:\\n *)?/;\nvar reWhitespaceChar = /^[ \\t\\n\\x0b\\x0c\\x0d]/;\nvar reUnicodeWhitespaceChar = /^\\s/;\nvar reFinalSpace = / *$/;\nvar reInitialSpace = /^ */;\nvar reSpaceAtEndOfLine = /^ *(?:\\n|$)/;\nvar reLinkLabel = /^\\[(?:[^\\\\\\[\\]]|\\\\.){0,1000}\\]/;\n// Matches a string of non-special characters.\nvar reMain = /^[^\\n`\\[\\]\\\\!<&*_'\"~$]+/m;\nvar InlineParser = /** @class */ (function () {\n function InlineParser(options) {\n // An InlineParser keeps track of a subject (a string to be parsed)\n // and a position in that subject.\n this.subject = '';\n this.delimiters = null; // used by handleDelim method\n this.brackets = null;\n this.pos = 0;\n this.lineStartNum = 0;\n this.lineIdx = 0;\n this.lineOffsets = [0];\n this.linePosOffset = 0;\n this.refMap = {};\n this.refLinkCandidateMap = {};\n this.refDefCandidateMap = {};\n this.options = options;\n }\n InlineParser.prototype.sourcepos = function (start, end) {\n var linePosOffset = this.linePosOffset + this.lineOffsets[this.lineIdx];\n var lineNum = this.lineStartNum + this.lineIdx;\n var startpos = [lineNum, start + linePosOffset];\n if (typeof end === 'number') {\n return [startpos, [lineNum, end + linePosOffset]];\n }\n return startpos;\n };\n InlineParser.prototype.nextLine = function () {\n this.lineIdx += 1;\n this.linePosOffset = -this.pos;\n };\n // If re matches at current position in the subject, advance\n // position in subject and return the match; otherwise return null.\n InlineParser.prototype.match = function (re) {\n var m = re.exec(this.subject.slice(this.pos));\n if (m === null) {\n return null;\n }\n this.pos += m.index + m[0].length;\n return m[0];\n };\n // Returns the code for the character at the current subject position, or -1\n // there are no more characters.\n InlineParser.prototype.peek = function () {\n if (this.pos < this.subject.length) {\n return this.subject.charCodeAt(this.pos);\n }\n return -1;\n };\n // Parse zero or more space characters, including at most one newline\n InlineParser.prototype.spnl = function () {\n this.match(reSpnl);\n return true;\n };\n // All of the parsers below try to match something at the current position\n // in the subject. If they succeed in matching anything, they\n // return the inline matched, advancing the subject.\n // Attempt to parse backticks, adding either a backtick code span or a\n // literal sequence of backticks.\n InlineParser.prototype.parseBackticks = function (block) {\n var startpos = this.pos + 1;\n var ticks = this.match(reTicksHere);\n if (ticks === null) {\n return false;\n }\n var afterOpenTicks = this.pos;\n var matched;\n while ((matched = this.match(reTicks)) !== null) {\n if (matched === ticks) {\n var contents = this.subject.slice(afterOpenTicks, this.pos - ticks.length);\n var sourcepos = this.sourcepos(startpos, this.pos);\n var lines = contents.split('\\n');\n if (lines.length > 1) {\n var lastLine = last(lines);\n this.lineIdx += lines.length - 1;\n this.linePosOffset = -(this.pos - lastLine.length - ticks.length);\n sourcepos[1] = this.sourcepos(this.pos);\n contents = lines.join(' ');\n }\n var node = createNode$1('code', sourcepos);\n if (contents.length > 0 &&\n contents.match(/[^ ]/) !== null &&\n contents[0] == ' ' &&\n contents[contents.length - 1] == ' ') {\n node.literal = contents.slice(1, contents.length - 1);\n }\n else {\n node.literal = contents;\n }\n node.tickCount = ticks.length;\n block.appendChild(node);\n return true;\n }\n }\n // If we got here, we didn't match a closing backtick sequence.\n this.pos = afterOpenTicks;\n block.appendChild(text$1(ticks, this.sourcepos(startpos, this.pos - 1)));\n return true;\n };\n // Parse a backslash-escaped special character, adding either the escaped\n // character, a hard line break (if the backslash is followed by a newline),\n // or a literal backslash to the block's children. Assumes current character\n // is a backslash.\n InlineParser.prototype.parseBackslash = function (block) {\n var subj = this.subject;\n var node;\n this.pos += 1;\n var startpos = this.pos;\n if (this.peek() === C_NEWLINE) {\n this.pos += 1;\n node = createNode$1('linebreak', this.sourcepos(this.pos - 1, this.pos));\n block.appendChild(node);\n this.nextLine();\n }\n else if (reEscapable.test(subj.charAt(this.pos))) {\n block.appendChild(text$1(subj.charAt(this.pos), this.sourcepos(startpos, this.pos)));\n this.pos += 1;\n }\n else {\n block.appendChild(text$1('\\\\', this.sourcepos(startpos, startpos)));\n }\n return true;\n };\n // Attempt to parse an autolink (URL or email in pointy brackets).\n InlineParser.prototype.parseAutolink = function (block) {\n var m;\n var dest;\n var node;\n var startpos = this.pos + 1;\n if ((m = this.match(reEmailAutolink))) {\n dest = m.slice(1, m.length - 1);\n node = createNode$1('link', this.sourcepos(startpos, this.pos));\n node.destination = normalizeURI(\"mailto:\" + dest);\n node.title = '';\n node.appendChild(text$1(dest, this.sourcepos(startpos + 1, this.pos - 1)));\n block.appendChild(node);\n return true;\n }\n if ((m = this.match(reAutolink))) {\n dest = m.slice(1, m.length - 1);\n node = createNode$1('link', this.sourcepos(startpos, this.pos));\n node.destination = normalizeURI(dest);\n node.title = '';\n node.appendChild(text$1(dest, this.sourcepos(startpos + 1, this.pos - 1)));\n block.appendChild(node);\n return true;\n }\n return false;\n };\n // Attempt to parse a raw HTML tag.\n InlineParser.prototype.parseHtmlTag = function (block) {\n var startpos = this.pos + 1;\n var m = this.match(reHtmlTag);\n if (m === null) {\n return false;\n }\n var node = createNode$1('htmlInline', this.sourcepos(startpos, this.pos));\n node.literal = m;\n block.appendChild(node);\n return true;\n };\n // Scan a sequence of characters with code cc, and return information about\n // the number of delimiters and whether they are positioned such that\n // they can open and/or close emphasis or strong emphasis. A utility\n // function for strong/emph parsing.\n InlineParser.prototype.scanDelims = function (cc) {\n var numdelims = 0;\n var startpos = this.pos;\n if (cc === C_SINGLEQUOTE || cc === C_DOUBLEQUOTE) {\n numdelims++;\n this.pos++;\n }\n else {\n while (this.peek() === cc) {\n numdelims++;\n this.pos++;\n }\n }\n if (numdelims === 0 || (numdelims < 2 && (cc === C_TILDE || cc === C_DOLLAR))) {\n this.pos = startpos;\n return null;\n }\n var charBefore = startpos === 0 ? '\\n' : this.subject.charAt(startpos - 1);\n var ccAfter = this.peek();\n var charAfter;\n if (ccAfter === -1) {\n charAfter = '\\n';\n }\n else {\n charAfter = fromCodePoint$1(ccAfter);\n }\n var afterIsWhitespace = reUnicodeWhitespaceChar.test(charAfter);\n var afterIsPunctuation = rePunctuation.test(charAfter);\n var beforeIsWhitespace = reUnicodeWhitespaceChar.test(charBefore);\n var beforeIsPunctuation = rePunctuation.test(charBefore);\n var leftFlanking = !afterIsWhitespace && (!afterIsPunctuation || beforeIsWhitespace || beforeIsPunctuation);\n var rightFlanking = !beforeIsWhitespace && (!beforeIsPunctuation || afterIsWhitespace || afterIsPunctuation);\n var canOpen;\n var canClose;\n if (cc === C_UNDERSCORE) {\n canOpen = leftFlanking && (!rightFlanking || beforeIsPunctuation);\n canClose = rightFlanking && (!leftFlanking || afterIsPunctuation);\n }\n else if (cc === C_SINGLEQUOTE || cc === C_DOUBLEQUOTE) {\n canOpen = leftFlanking && !rightFlanking;\n canClose = rightFlanking;\n }\n else if (cc === C_DOLLAR) {\n canOpen = !afterIsWhitespace;\n canClose = !beforeIsWhitespace;\n }\n else {\n canOpen = leftFlanking;\n canClose = rightFlanking;\n }\n this.pos = startpos;\n return { numdelims: numdelims, canOpen: canOpen, canClose: canClose };\n };\n // Handle a delimiter marker for emphasis or a quote.\n InlineParser.prototype.handleDelim = function (cc, block) {\n var res = this.scanDelims(cc);\n if (!res) {\n return false;\n }\n var numdelims = res.numdelims;\n var startpos = this.pos + 1;\n var contents;\n this.pos += numdelims;\n if (cc === C_SINGLEQUOTE) {\n contents = '\\u2019';\n }\n else if (cc === C_DOUBLEQUOTE) {\n contents = '\\u201C';\n }\n else {\n contents = this.subject.slice(startpos - 1, this.pos);\n }\n var node = text$1(contents, this.sourcepos(startpos, this.pos));\n block.appendChild(node);\n // Add entry to stack for this opener\n if ((res.canOpen || res.canClose) &&\n (this.options.smart || (cc !== C_SINGLEQUOTE && cc !== C_DOUBLEQUOTE))) {\n this.delimiters = {\n cc: cc,\n numdelims: numdelims,\n origdelims: numdelims,\n node: node,\n previous: this.delimiters,\n next: null,\n canOpen: res.canOpen,\n canClose: res.canClose,\n };\n if (this.delimiters.previous) {\n this.delimiters.previous.next = this.delimiters;\n }\n }\n return true;\n };\n InlineParser.prototype.removeDelimiter = function (delim) {\n if (delim.previous !== null) {\n delim.previous.next = delim.next;\n }\n if (delim.next === null) {\n // top of stack\n this.delimiters = delim.previous;\n }\n else {\n delim.next.previous = delim.previous;\n }\n };\n InlineParser.prototype.removeDelimitersBetween = function (bottom, top) {\n if (bottom.next !== top) {\n bottom.next = top;\n top.previous = bottom;\n }\n };\n /**\n * Process all delimiters - emphasis, strong emphasis, strikethrough(gfm)\n * If the smart punctuation options is true,\n * convert single/double quotes to corresponding unicode characters.\n **/\n InlineParser.prototype.processEmphasis = function (stackBottom) {\n var _a;\n var opener;\n var closer;\n var oldCloser;\n var openerInl, closerInl;\n var openerFound;\n var oddMatch = false;\n var openersBottom = (_a = {},\n _a[C_UNDERSCORE] = [stackBottom, stackBottom, stackBottom],\n _a[C_ASTERISK] = [stackBottom, stackBottom, stackBottom],\n _a[C_SINGLEQUOTE] = [stackBottom],\n _a[C_DOUBLEQUOTE] = [stackBottom],\n _a[C_TILDE] = [stackBottom],\n _a[C_DOLLAR] = [stackBottom],\n _a);\n // find first closer above stackBottom:\n closer = this.delimiters;\n while (closer !== null && closer.previous !== stackBottom) {\n closer = closer.previous;\n }\n // move forward, looking for closers, and handling each\n while (closer !== null) {\n var closercc = closer.cc;\n var closerEmph = closercc === C_UNDERSCORE || closercc === C_ASTERISK;\n if (!closer.canClose) {\n closer = closer.next;\n }\n else {\n // found emphasis closer. now look back for first matching opener:\n opener = closer.previous;\n openerFound = false;\n while (opener !== null &&\n opener !== stackBottom &&\n opener !== openersBottom[closercc][closerEmph ? closer.origdelims % 3 : 0]) {\n oddMatch =\n closerEmph &&\n (closer.canOpen || opener.canClose) &&\n closer.origdelims % 3 !== 0 &&\n (opener.origdelims + closer.origdelims) % 3 === 0;\n if (opener.cc === closer.cc && opener.canOpen && !oddMatch) {\n openerFound = true;\n break;\n }\n opener = opener.previous;\n }\n oldCloser = closer;\n if (closerEmph || closercc === C_TILDE || closercc === C_DOLLAR) {\n if (!openerFound) {\n closer = closer.next;\n }\n else if (opener) {\n // (null opener check for type narrowing)\n // calculate actual number of delimiters used from closer\n var useDelims = closer.numdelims >= 2 && opener.numdelims >= 2 ? 2 : 1;\n var emptyDelims = closerEmph ? 0 : 1;\n openerInl = opener.node;\n closerInl = closer.node;\n // build contents for new emph element\n var nodeType = closerEmph\n ? useDelims === 1\n ? 'emph'\n : 'strong'\n : 'strike';\n if (closercc === C_DOLLAR) {\n nodeType = 'customInline';\n }\n var newNode = createNode$1(nodeType);\n var openerEndPos = openerInl.sourcepos[1];\n var closerStartPos = closerInl.sourcepos[0];\n newNode.sourcepos = [\n [openerEndPos[0], openerEndPos[1] - useDelims + 1],\n [closerStartPos[0], closerStartPos[1] + useDelims - 1],\n ];\n openerInl.sourcepos[1][1] -= useDelims;\n closerInl.sourcepos[0][1] += useDelims;\n openerInl.literal = openerInl.literal.slice(useDelims);\n closerInl.literal = closerInl.literal.slice(useDelims);\n opener.numdelims -= useDelims;\n closer.numdelims -= useDelims;\n // remove used delimiters from stack elts and inlines\n var tmp = openerInl.next;\n var next = void 0;\n while (tmp && tmp !== closerInl) {\n next = tmp.next;\n tmp.unlink();\n newNode.appendChild(tmp);\n tmp = next;\n }\n // build custom inline node\n if (closercc === C_DOLLAR) {\n var textNode = newNode.firstChild;\n var literal = textNode.literal || '';\n var info = literal.split(/\\s/)[0];\n newNode.info = info;\n if (literal.length <= info.length) {\n textNode.unlink();\n }\n else {\n textNode.sourcepos[0][1] += info.length;\n textNode.literal = literal.replace(info + \" \", '');\n }\n }\n openerInl.insertAfter(newNode);\n // remove elts between opener and closer in delimiters stack\n this.removeDelimitersBetween(opener, closer);\n // if opener has 0 delims, remove it and the inline\n // if opener has 1 delims and character is tilde, remove delimiter only\n if (opener.numdelims <= emptyDelims) {\n if (opener.numdelims === 0) {\n openerInl.unlink();\n }\n this.removeDelimiter(opener);\n }\n // if closer has 0 delims, remove it and the inline\n // if closer has 1 delims and character is tilde, remove delimiter only\n if (closer.numdelims <= emptyDelims) {\n if (closer.numdelims === 0) {\n closerInl.unlink();\n }\n var tempstack = closer.next;\n this.removeDelimiter(closer);\n closer = tempstack;\n }\n }\n }\n else if (closercc === C_SINGLEQUOTE) {\n closer.node.literal = '\\u2019';\n if (openerFound) {\n opener.node.literal = '\\u2018';\n }\n closer = closer.next;\n }\n else if (closercc === C_DOUBLEQUOTE) {\n closer.node.literal = '\\u201D';\n if (openerFound) {\n opener.node.literal = '\\u201C';\n }\n closer = closer.next;\n }\n if (!openerFound) {\n // Set lower bound for future searches for openers:\n openersBottom[closercc][closerEmph ? oldCloser.origdelims % 3 : 0] = oldCloser.previous;\n if (!oldCloser.canOpen) {\n // We can remove a closer that can't be an opener,\n // once we've seen there's no matching opener:\n this.removeDelimiter(oldCloser);\n }\n }\n }\n }\n // remove all delimiters\n while (this.delimiters !== null && this.delimiters !== stackBottom) {\n this.removeDelimiter(this.delimiters);\n }\n };\n // Attempt to parse link title (sans quotes), returning the string\n // or null if no match.\n InlineParser.prototype.parseLinkTitle = function () {\n var title = this.match(reLinkTitle);\n if (title === null) {\n return null;\n }\n // chop off quotes from title and unescape:\n return unescapeString(title.substr(1, title.length - 2));\n };\n // Attempt to parse link destination, returning the string or null if no match.\n InlineParser.prototype.parseLinkDestination = function () {\n var res = this.match(reLinkDestinationBraces);\n if (res === null) {\n if (this.peek() === C_LESSTHAN$1) {\n return null;\n }\n // @TODO handrolled parser; res should be null or the string\n var savepos = this.pos;\n var openparens = 0;\n var c = void 0;\n while ((c = this.peek()) !== -1) {\n if (c === C_BACKSLASH && reEscapable.test(this.subject.charAt(this.pos + 1))) {\n this.pos += 1;\n if (this.peek() !== -1) {\n this.pos += 1;\n }\n }\n else if (c === C_OPEN_PAREN) {\n this.pos += 1;\n openparens += 1;\n }\n else if (c === C_CLOSE_PAREN) {\n if (openparens < 1) {\n break;\n }\n else {\n this.pos += 1;\n openparens -= 1;\n }\n }\n else if (reWhitespaceChar.exec(fromCodePoint$1(c)) !== null) {\n break;\n }\n else {\n this.pos += 1;\n }\n }\n if (this.pos === savepos && c !== C_CLOSE_PAREN) {\n return null;\n }\n if (openparens !== 0) {\n return null;\n }\n res = this.subject.substr(savepos, this.pos - savepos);\n return normalizeURI(unescapeString(res));\n } // chop off surrounding <..>:\n return normalizeURI(unescapeString(res.substr(1, res.length - 2)));\n };\n // Attempt to parse a link label, returning number of characters parsed.\n InlineParser.prototype.parseLinkLabel = function () {\n var m = this.match(reLinkLabel);\n if (m === null || m.length > 1001) {\n return 0;\n }\n return m.length;\n };\n // Add open bracket to delimiter stack and add a text node to block's children.\n InlineParser.prototype.parseOpenBracket = function (block) {\n var startpos = this.pos;\n this.pos += 1;\n var node = text$1('[', this.sourcepos(this.pos, this.pos));\n block.appendChild(node);\n // Add entry to stack for this opener\n this.addBracket(node, startpos, false);\n return true;\n };\n // IF next character is [, and ! delimiter to delimiter stack and\n // add a text node to block's children. Otherwise just add a text node.\n InlineParser.prototype.parseBang = function (block) {\n var startpos = this.pos;\n this.pos += 1;\n if (this.peek() === C_OPEN_BRACKET$1) {\n this.pos += 1;\n var node = text$1('![', this.sourcepos(this.pos - 1, this.pos));\n block.appendChild(node);\n // Add entry to stack for this opener\n this.addBracket(node, startpos + 1, true);\n }\n else {\n var node = text$1('!', this.sourcepos(this.pos, this.pos));\n block.appendChild(node);\n }\n return true;\n };\n // Try to match close bracket against an opening in the delimiter\n // stack. Add either a link or image, or a plain [ character,\n // to block's children. If there is a matching delimiter,\n // remove it from the delimiter stack.\n InlineParser.prototype.parseCloseBracket = function (block) {\n var dest = null;\n var title = null;\n var matched = false;\n this.pos += 1;\n var startpos = this.pos;\n // get last [ or ![\n var opener = this.brackets;\n if (opener === null) {\n // no matched opener, just return a literal\n block.appendChild(text$1(']', this.sourcepos(startpos, startpos)));\n return true;\n }\n if (!opener.active) {\n // no matched opener, just return a literal\n block.appendChild(text$1(']', this.sourcepos(startpos, startpos)));\n // take opener off brackets stack\n this.removeBracket();\n return true;\n }\n // If we got here, open is a potential opener\n var isImage = opener.image;\n // Check to see if we have a link/image\n var savepos = this.pos;\n // Inline link?\n if (this.peek() === C_OPEN_PAREN) {\n this.pos++;\n if (this.spnl() &&\n (dest = this.parseLinkDestination()) !== null &&\n this.spnl() &&\n // make sure there's a space before the title:\n ((reWhitespaceChar.test(this.subject.charAt(this.pos - 1)) &&\n (title = this.parseLinkTitle())) ||\n true) &&\n this.spnl() &&\n this.peek() === C_CLOSE_PAREN) {\n this.pos += 1;\n matched = true;\n }\n else {\n this.pos = savepos;\n }\n }\n var refLabel = '';\n if (!matched) {\n // Next, see if there's a link label\n var beforelabel = this.pos;\n var n = this.parseLinkLabel();\n if (n > 2) {\n refLabel = this.subject.slice(beforelabel, beforelabel + n);\n }\n else if (!opener.bracketAfter) {\n // Empty or missing second label means to use the first label as the reference.\n // The reference must not contain a bracket. If we know there's a bracket, we don't even bother checking it.\n refLabel = this.subject.slice(opener.index, startpos);\n }\n if (n === 0) {\n // If shortcut reference link, rewind before spaces we skipped.\n this.pos = savepos;\n }\n if (refLabel) {\n refLabel = normalizeReference(refLabel);\n // lookup rawlabel in refMap\n var link = this.refMap[refLabel];\n if (link) {\n dest = link.destination;\n title = link.title;\n matched = true;\n }\n }\n }\n if (matched) {\n var node = createNode$1(isImage ? 'image' : 'link');\n node.destination = dest;\n node.title = title || '';\n node.sourcepos = [opener.startpos, this.sourcepos(this.pos)];\n var tmp = opener.node.next;\n var next = void 0;\n while (tmp) {\n next = tmp.next;\n tmp.unlink();\n node.appendChild(tmp);\n tmp = next;\n }\n block.appendChild(node);\n this.processEmphasis(opener.previousDelimiter);\n this.removeBracket();\n opener.node.unlink();\n // We remove this bracket and processEmphasis will remove later delimiters.\n // Now, for a link, we also deactivate earlier link openers.\n // (no links in links)\n if (!isImage) {\n opener = this.brackets;\n while (opener !== null) {\n if (!opener.image) {\n opener.active = false; // deactivate this opener\n }\n opener = opener.previous;\n }\n }\n if (this.options.referenceDefinition) {\n this.refLinkCandidateMap[block.id] = { node: block, refLabel: refLabel };\n }\n return true;\n } // no match\n this.removeBracket(); // remove this opener from stack\n this.pos = startpos;\n block.appendChild(text$1(']', this.sourcepos(startpos, startpos)));\n if (this.options.referenceDefinition) {\n this.refLinkCandidateMap[block.id] = { node: block, refLabel: refLabel };\n }\n return true;\n };\n InlineParser.prototype.addBracket = function (node, index, image) {\n if (this.brackets !== null) {\n this.brackets.bracketAfter = true;\n }\n this.brackets = {\n node: node,\n startpos: this.sourcepos(index + (image ? 0 : 1)),\n previous: this.brackets,\n previousDelimiter: this.delimiters,\n index: index,\n image: image,\n active: true,\n };\n };\n InlineParser.prototype.removeBracket = function () {\n if (this.brackets) {\n this.brackets = this.brackets.previous;\n }\n };\n // Attempt to parse an entity.\n InlineParser.prototype.parseEntity = function (block) {\n var m;\n var startpos = this.pos + 1;\n if ((m = this.match(reEntityHere))) {\n block.appendChild(text$1(lib.decodeHTML(m), this.sourcepos(startpos, this.pos)));\n return true;\n }\n return false;\n };\n // Parse a run of ordinary characters, or a single character with\n // a special meaning in markdown, as a plain string.\n InlineParser.prototype.parseString = function (block) {\n var m;\n var startpos = this.pos + 1;\n if ((m = this.match(reMain))) {\n if (this.options.smart) {\n var lit = m.replace(reEllipses, '\\u2026').replace(reDash, function (chars) {\n var enCount = 0;\n var emCount = 0;\n if (chars.length % 3 === 0) {\n // If divisible by 3, use all em dashes\n emCount = chars.length / 3;\n }\n else if (chars.length % 2 === 0) {\n // If divisible by 2, use all en dashes\n enCount = chars.length / 2;\n }\n else if (chars.length % 3 === 2) {\n // If 2 extra dashes, use en dash for last 2; em dashes for rest\n enCount = 1;\n emCount = (chars.length - 2) / 3;\n }\n else {\n // Use en dashes for last 4 hyphens; em dashes for rest\n enCount = 2;\n emCount = (chars.length - 4) / 3;\n }\n return repeat('\\u2014', emCount) + repeat('\\u2013', enCount);\n });\n block.appendChild(text$1(lit, this.sourcepos(startpos, this.pos)));\n }\n else {\n var node = text$1(m, this.sourcepos(startpos, this.pos));\n block.appendChild(node);\n }\n return true;\n }\n return false;\n };\n // Parse a newline. If it was preceded by two spaces, return a hard\n // line break; otherwise a soft line break.\n InlineParser.prototype.parseNewline = function (block) {\n this.pos += 1; // assume we're at a \\n\n // check previous node for trailing spaces\n var lastc = block.lastChild;\n if (lastc && lastc.type === 'text' && lastc.literal[lastc.literal.length - 1] === ' ') {\n var hardbreak = lastc.literal[lastc.literal.length - 2] === ' ';\n var litLen = lastc.literal.length;\n lastc.literal = lastc.literal.replace(reFinalSpace, '');\n var finalSpaceLen = litLen - lastc.literal.length;\n lastc.sourcepos[1][1] -= finalSpaceLen;\n block.appendChild(createNode$1(hardbreak ? 'linebreak' : 'softbreak', this.sourcepos(this.pos - finalSpaceLen, this.pos)));\n }\n else {\n block.appendChild(createNode$1('softbreak', this.sourcepos(this.pos, this.pos)));\n }\n this.nextLine();\n this.match(reInitialSpace); // gobble leading spaces in next line\n return true;\n };\n // Attempt to parse a link reference, modifying refmap.\n InlineParser.prototype.parseReference = function (block, refMap) {\n if (!this.options.referenceDefinition) {\n return 0;\n }\n this.subject = block.stringContent;\n this.pos = 0;\n var title = null;\n var startpos = this.pos;\n // label:\n var matchChars = this.parseLinkLabel();\n if (matchChars === 0) {\n return 0;\n }\n var rawlabel = this.subject.substr(0, matchChars);\n // colon:\n if (this.peek() === C_COLON) {\n this.pos++;\n }\n else {\n this.pos = startpos;\n return 0;\n }\n // link url\n this.spnl();\n var dest = this.parseLinkDestination();\n if (dest === null) {\n this.pos = startpos;\n return 0;\n }\n var beforetitle = this.pos;\n this.spnl();\n if (this.pos !== beforetitle) {\n title = this.parseLinkTitle();\n }\n if (title === null) {\n title = '';\n // rewind before spaces\n this.pos = beforetitle;\n }\n // make sure we're at line end:\n var atLineEnd = true;\n if (this.match(reSpaceAtEndOfLine) === null) {\n if (title === '') {\n atLineEnd = false;\n }\n else {\n // the potential title we found is not at the line end,\n // but it could still be a legal link reference if we\n // discard the title\n title = '';\n // rewind before spaces\n this.pos = beforetitle;\n // and instead check if the link URL is at the line end\n atLineEnd = this.match(reSpaceAtEndOfLine) !== null;\n }\n }\n if (!atLineEnd) {\n this.pos = startpos;\n return 0;\n }\n var normalLabel = normalizeReference(rawlabel);\n if (normalLabel === '') {\n // label must contain non-whitespace characters\n this.pos = startpos;\n return 0;\n }\n var sourcepos = this.getReferenceDefSourcepos(block);\n block.sourcepos[0][0] = sourcepos[1][0] + 1;\n var node = createNode$1('refDef', sourcepos);\n node.title = title;\n node.dest = dest;\n node.label = normalLabel;\n block.insertBefore(node);\n if (!refMap[normalLabel]) {\n refMap[normalLabel] = createRefDefState(node);\n }\n else {\n this.refDefCandidateMap[node.id] = node;\n }\n return this.pos - startpos;\n };\n InlineParser.prototype.mergeTextNodes = function (walker) {\n var event;\n var textNodes = [];\n while ((event = walker.next())) {\n var entering = event.entering, node = event.node;\n if (entering && node.type === 'text') {\n textNodes.push(node);\n }\n else if (textNodes.length === 1) {\n textNodes = [];\n }\n else if (textNodes.length > 1) {\n var firstNode = textNodes[0];\n var lastNode = textNodes[textNodes.length - 1];\n if (firstNode.sourcepos && lastNode.sourcepos) {\n firstNode.sourcepos[1] = lastNode.sourcepos[1];\n }\n firstNode.next = lastNode.next;\n if (firstNode.next) {\n firstNode.next.prev = firstNode;\n }\n for (var i = 1; i < textNodes.length; i += 1) {\n firstNode.literal += textNodes[i].literal;\n textNodes[i].unlink();\n }\n textNodes = [];\n }\n }\n };\n InlineParser.prototype.getReferenceDefSourcepos = function (block) {\n var lines = block.stringContent.split(/\\n|\\r\\n/);\n var passedUrlLine = false;\n var quotationCount = 0;\n var lastLineOffset = { line: 0, ch: 0 };\n for (var i = 0; i < lines.length; i += 1) {\n var line = lines[i];\n if (reWhitespaceChar.test(line)) {\n break;\n }\n if (/\\:/.test(line) && quotationCount === 0) {\n if (passedUrlLine) {\n break;\n }\n var lineOffset = line.indexOf(':') === line.length - 1 ? i + 1 : i;\n lastLineOffset = { line: lineOffset, ch: lines[lineOffset].length };\n passedUrlLine = true;\n }\n // should consider extendable title\n var matched = line.match(/'|\"/g);\n if (matched) {\n quotationCount += matched.length;\n }\n if (quotationCount === 2) {\n lastLineOffset = { line: i, ch: line.length };\n break;\n }\n }\n return [\n [block.sourcepos[0][0], block.sourcepos[0][1]],\n [block.sourcepos[0][0] + lastLineOffset.line, lastLineOffset.ch],\n ];\n };\n // Parse the next inline element in subject, advancing subject position.\n // On success, add the result to block's children and return true.\n // On failure, return false.\n InlineParser.prototype.parseInline = function (block) {\n var _a;\n var res = false;\n var c = this.peek();\n if (c === -1) {\n return false;\n }\n switch (c) {\n case C_NEWLINE:\n res = this.parseNewline(block);\n break;\n case C_BACKSLASH:\n res = this.parseBackslash(block);\n break;\n case C_BACKTICK:\n res = this.parseBackticks(block);\n break;\n case C_ASTERISK:\n case C_UNDERSCORE:\n case C_TILDE:\n case C_DOLLAR:\n res = this.handleDelim(c, block);\n break;\n case C_SINGLEQUOTE:\n case C_DOUBLEQUOTE:\n res = !!((_a = this.options) === null || _a === void 0 ? void 0 : _a.smart) && this.handleDelim(c, block);\n break;\n case C_OPEN_BRACKET$1:\n res = this.parseOpenBracket(block);\n break;\n case C_BANG:\n res = this.parseBang(block);\n break;\n case C_CLOSE_BRACKET:\n res = this.parseCloseBracket(block);\n break;\n case C_LESSTHAN$1:\n res = this.parseAutolink(block) || this.parseHtmlTag(block);\n break;\n case C_AMPERSAND:\n if (!block.disabledEntityParse) {\n res = this.parseEntity(block);\n }\n break;\n default:\n res = this.parseString(block);\n break;\n }\n if (!res) {\n this.pos += 1;\n block.appendChild(text$1(fromCodePoint$1(c), this.sourcepos(this.pos, this.pos + 1)));\n }\n return true;\n };\n // Parse string content in block into inline children,\n // using refmap to resolve references.\n InlineParser.prototype.parse = function (block) {\n this.subject = block.stringContent.trim();\n this.pos = 0;\n this.delimiters = null;\n this.brackets = null;\n this.lineOffsets = block.lineOffsets || [0];\n this.lineIdx = 0;\n this.linePosOffset = 0;\n this.lineStartNum = block.sourcepos[0][0];\n if (isHeading(block)) {\n this.lineOffsets[0] += block.level + 1;\n }\n while (this.parseInline(block)) { }\n block.stringContent = null; // allow raw string to be garbage collected\n this.processEmphasis(null);\n this.mergeTextNodes(block.walker());\n var _a = this.options, extendedAutolinks = _a.extendedAutolinks, customParser = _a.customParser;\n if (extendedAutolinks) {\n convertExtAutoLinks(block.walker(), extendedAutolinks);\n }\n if (customParser && block.firstChild) {\n var event_1;\n var walker = block.firstChild.walker();\n while ((event_1 = walker.next())) {\n var node = event_1.node, entering = event_1.entering;\n if (customParser[node.type]) {\n customParser[node.type](node, { entering: entering, options: this.options });\n }\n }\n }\n };\n return InlineParser;\n}());\n\nvar reTaskListItemMarker = /^\\[([ \\txX])\\][ \\t]+/;\n// finalize for block handler\nfunction taskListItemFinalize(_, block) {\n if (block.firstChild && block.firstChild.type === 'paragraph') {\n var p = block.firstChild;\n var m = p.stringContent.match(reTaskListItemMarker);\n if (m) {\n var mLen = m[0].length;\n p.stringContent = p.stringContent.substring(mLen - 1);\n p.sourcepos[0][1] += mLen;\n p.lineOffsets[0] += mLen;\n block.listData.task = true;\n block.listData.checked = /[xX]/.test(m[1]);\n }\n }\n}\n\nvar table = {\n continue: function () {\n return 0 /* Go */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t === 'tableHead' || t === 'tableBody';\n },\n acceptsLines: false,\n};\nvar tableBody$1 = {\n continue: function () {\n return 0 /* Go */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t === 'tableRow';\n },\n acceptsLines: false,\n};\nvar tableHead$1 = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t === 'tableRow' || t === 'tableDelimRow';\n },\n acceptsLines: false,\n};\nvar tableDelimRow = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t === 'tableDelimCell';\n },\n acceptsLines: false,\n};\nvar tableDelimCell = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function () {\n return false;\n },\n acceptsLines: false,\n};\nvar tableRow = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t === 'tableCell';\n },\n acceptsLines: false,\n};\nvar tableCell = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function () {\n return false;\n },\n acceptsLines: false,\n};\n\nvar CODE_INDENT = 4;\nvar C_TAB = 9;\nvar C_GREATERTHAN = 62;\nvar C_LESSTHAN = 60;\nvar C_SPACE = 32;\nvar C_OPEN_BRACKET = 91;\nvar reNonSpace = /[^ \\t\\f\\v\\r\\n]/;\nvar reClosingCodeFence = /^(?:`{3,}|~{3,})(?= *$)/;\n// Returns true if block ends with a blank line, descending if needed\n// into lists and sublists.\nfunction endsWithBlankLine(block) {\n var curBlock = block;\n while (curBlock) {\n if (curBlock.lastLineBlank) {\n return true;\n }\n var t = curBlock.type;\n if (!curBlock.lastLineChecked && (t === 'list' || t === 'item')) {\n curBlock.lastLineChecked = true;\n curBlock = curBlock.lastChild;\n }\n else {\n curBlock.lastLineChecked = true;\n break;\n }\n }\n return false;\n}\nfunction peek(ln, pos) {\n if (pos < ln.length) {\n return ln.charCodeAt(pos);\n }\n return -1;\n}\n// Returns true if string contains only space characters.\nfunction isBlank(s) {\n return !reNonSpace.test(s);\n}\nfunction isSpaceOrTab(c) {\n return c === C_SPACE || c === C_TAB;\n}\n\nvar reClosingCustomBlock = /^\\$\\$$/;\nvar customBlock$1 = {\n continue: function (parser, container) {\n var line = parser.currentLine;\n var match = line.match(reClosingCustomBlock);\n if (match) {\n // closing custom block\n parser.lastLineLength = match[0].length;\n parser.finalize(container, parser.lineNumber);\n return 2 /* Finished */;\n }\n // skip optional spaces of custom block offset\n var i = container.offset;\n while (i > 0 && isSpaceOrTab(peek(line, parser.offset))) {\n parser.advanceOffset(1, true);\n i--;\n }\n return 0 /* Go */;\n },\n finalize: function (_, block) {\n if (block.stringContent === null) {\n return;\n }\n // first line becomes info string\n var content = block.stringContent;\n var newlinePos = content.indexOf('\\n');\n var firstLine = content.slice(0, newlinePos);\n var rest = content.slice(newlinePos + 1);\n var infoString = firstLine.match(/^(\\s*)(.*)/);\n block.info = unescapeString(infoString[2].trim());\n block.literal = rest;\n block.stringContent = null;\n },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\n\nvar noop = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\nvar document$1 = {\n continue: function () {\n return 0 /* Go */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t !== 'item';\n },\n acceptsLines: false,\n};\nvar list = {\n continue: function () {\n return 0 /* Go */;\n },\n finalize: function (_, block) {\n var item = block.firstChild;\n while (item) {\n // check for non-final list item ending with blank line:\n if (endsWithBlankLine(item) && item.next) {\n block.listData.tight = false;\n break;\n }\n // recurse into children of list item, to see if there are\n // spaces between any of them:\n var subitem = item.firstChild;\n while (subitem) {\n if (endsWithBlankLine(subitem) && (item.next || subitem.next)) {\n block.listData.tight = false;\n break;\n }\n subitem = subitem.next;\n }\n item = item.next;\n }\n },\n canContain: function (t) {\n return t === 'item';\n },\n acceptsLines: false,\n};\nvar blockQuote$1 = {\n continue: function (parser) {\n var ln = parser.currentLine;\n if (!parser.indented && peek(ln, parser.nextNonspace) === C_GREATERTHAN) {\n parser.advanceNextNonspace();\n parser.advanceOffset(1, false);\n if (isSpaceOrTab(peek(ln, parser.offset))) {\n parser.advanceOffset(1, true);\n }\n }\n else {\n return 1 /* Stop */;\n }\n return 0 /* Go */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t !== 'item';\n },\n acceptsLines: false,\n};\nvar item = {\n continue: function (parser, container) {\n if (parser.blank) {\n if (container.firstChild === null) {\n // Blank line after empty list item\n return 1 /* Stop */;\n }\n parser.advanceNextNonspace();\n }\n else if (parser.indent >= container.listData.markerOffset + container.listData.padding) {\n parser.advanceOffset(container.listData.markerOffset + container.listData.padding, true);\n }\n else {\n return 1 /* Stop */;\n }\n return 0 /* Go */;\n },\n finalize: taskListItemFinalize,\n canContain: function (t) {\n return t !== 'item';\n },\n acceptsLines: false,\n};\nvar heading = {\n continue: function () {\n // a heading can never container > 1 line, so fail to match:\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function () {\n return false;\n },\n acceptsLines: false,\n};\nvar thematicBreak$1 = {\n continue: function () {\n // a thematic break can never container > 1 line, so fail to match:\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function () {\n return false;\n },\n acceptsLines: false,\n};\nvar codeBlock = {\n continue: function (parser, container) {\n var ln = parser.currentLine;\n var indent = parser.indent;\n if (container.isFenced) {\n // fenced\n var match = indent <= 3 &&\n ln.charAt(parser.nextNonspace) === container.fenceChar &&\n ln.slice(parser.nextNonspace).match(reClosingCodeFence);\n if (match && match[0].length >= container.fenceLength) {\n // closing fence - we're at end of line, so we can return\n parser.lastLineLength = parser.offset + indent + match[0].length;\n parser.finalize(container, parser.lineNumber);\n return 2 /* Finished */;\n }\n // skip optional spaces of fence offset\n var i = container.fenceOffset;\n while (i > 0 && isSpaceOrTab(peek(ln, parser.offset))) {\n parser.advanceOffset(1, true);\n i--;\n }\n }\n else {\n // indented\n if (indent >= CODE_INDENT) {\n parser.advanceOffset(CODE_INDENT, true);\n }\n else if (parser.blank) {\n parser.advanceNextNonspace();\n }\n else {\n return 1 /* Stop */;\n }\n }\n return 0 /* Go */;\n },\n finalize: function (_, block) {\n var _a;\n if (block.stringContent === null) {\n return;\n }\n if (block.isFenced) {\n // fenced\n // first line becomes info string\n var content = block.stringContent;\n var newlinePos = content.indexOf('\\n');\n var firstLine = content.slice(0, newlinePos);\n var rest = content.slice(newlinePos + 1);\n var infoString = firstLine.match(/^(\\s*)(.*)/);\n block.infoPadding = infoString[1].length;\n block.info = unescapeString(infoString[2].trim());\n block.literal = rest;\n }\n else {\n // indented\n block.literal = (_a = block.stringContent) === null || _a === void 0 ? void 0 : _a.replace(/(\\n *)+$/, '\\n');\n }\n block.stringContent = null; // allow GC\n },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\nvar htmlBlock$1 = {\n continue: function (parser, container) {\n return parser.blank && (container.htmlBlockType === 6 || container.htmlBlockType === 7)\n ? 1 /* Stop */\n : 0 /* Go */;\n },\n finalize: function (_, block) {\n var _a;\n block.literal = ((_a = block.stringContent) === null || _a === void 0 ? void 0 : _a.replace(/(\\n *)+$/, '')) || null;\n block.stringContent = null; // allow GC\n },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\nvar paragraph = {\n continue: function (parser) {\n return parser.blank ? 1 /* Stop */ : 0 /* Go */;\n },\n finalize: function (parser, block) {\n if (block.stringContent === null) {\n return;\n }\n var pos;\n var hasReferenceDefs = false;\n // try parsing the beginning as link reference definitions:\n while (peek(block.stringContent, 0) === C_OPEN_BRACKET &&\n (pos = parser.inlineParser.parseReference(block, parser.refMap))) {\n block.stringContent = block.stringContent.slice(pos);\n hasReferenceDefs = true;\n }\n if (hasReferenceDefs && isBlank(block.stringContent)) {\n block.unlink();\n }\n },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\nvar refDef = noop;\nvar frontMatter$2 = noop;\nvar blockHandlers = {\n document: document$1,\n list: list,\n blockQuote: blockQuote$1,\n item: item,\n heading: heading,\n thematicBreak: thematicBreak$1,\n codeBlock: codeBlock,\n htmlBlock: htmlBlock$1,\n paragraph: paragraph,\n table: table,\n tableBody: tableBody$1,\n tableHead: tableHead$1,\n tableRow: tableRow,\n tableCell: tableCell,\n tableDelimRow: tableDelimRow,\n tableDelimCell: tableDelimCell,\n refDef: refDef,\n customBlock: customBlock$1,\n frontMatter: frontMatter$2,\n};\n\nfunction parseRowContent(content) {\n var startIdx = 0;\n var offset = 0;\n var cells = [];\n for (var i = 0; i < content.length; i += 1) {\n if (content[i] === '|' && content[i - 1] !== '\\\\') {\n var cell = content.substring(startIdx, i);\n if (startIdx === 0 && isEmpty(cell)) {\n offset = i + 1;\n }\n else {\n cells.push(cell);\n }\n startIdx = i + 1;\n }\n }\n if (startIdx < content.length) {\n var cell = content.substring(startIdx, content.length);\n if (!isEmpty(cell)) {\n cells.push(cell);\n }\n }\n return [offset, cells];\n}\nfunction generateTableCells(cellType, contents, lineNum, chPos) {\n var cells = [];\n for (var _i = 0, contents_1 = contents; _i < contents_1.length; _i++) {\n var content = contents_1[_i];\n var preSpaces = content.match(/^[ \\t]+/);\n var paddingLeft = preSpaces ? preSpaces[0].length : 0;\n var paddingRight = void 0, trimmed = void 0;\n if (paddingLeft === content.length) {\n paddingLeft = 0;\n paddingRight = 0;\n trimmed = '';\n }\n else {\n var postSpaces = content.match(/[ \\t]+$/);\n paddingRight = postSpaces ? postSpaces[0].length : 0;\n trimmed = content.slice(paddingLeft, content.length - paddingRight);\n }\n var chPosStart = chPos + paddingLeft;\n var tableCell = createNode$1(cellType, [\n [lineNum, chPos],\n [lineNum, chPos + content.length - 1],\n ]);\n tableCell.stringContent = trimmed.replace(/\\\\\\|/g, '|'); // replace esacped pipe(\\|)\n tableCell.startIdx = cells.length;\n tableCell.endIdx = cells.length;\n tableCell.lineOffsets = [chPosStart - 1];\n tableCell.paddingLeft = paddingLeft;\n tableCell.paddingRight = paddingRight;\n cells.push(tableCell);\n chPos += content.length + 1;\n }\n return cells;\n}\nfunction getColumnFromDelimCell(cellNode) {\n var align = null;\n var content = cellNode.stringContent;\n var firstCh = content[0];\n var lastCh = content[content.length - 1];\n if (lastCh === ':') {\n align = firstCh === ':' ? 'center' : 'right';\n }\n else if (firstCh === ':') {\n align = 'left';\n }\n return { align: align };\n}\nvar tableHead = function (parser, container) {\n var stringContent = container.stringContent;\n if (container.type === 'paragraph' && !parser.indented && !parser.blank) {\n var lastNewLineIdx = stringContent.length - 1;\n var lastLineStartIdx = stringContent.lastIndexOf('\\n', lastNewLineIdx - 1) + 1;\n var headerContent = stringContent.slice(lastLineStartIdx, lastNewLineIdx);\n var delimContent = parser.currentLine.slice(parser.nextNonspace);\n var _a = parseRowContent(headerContent), headerOffset = _a[0], headerCells = _a[1];\n var _b = parseRowContent(delimContent), delimOffset = _b[0], delimCells = _b[1];\n var reValidDelimCell_1 = /^[ \\t]*:?-+:?[ \\t]*$/;\n if (\n // not checking if the number of header cells and delimiter cells are the same\n // to consider the case of merged-column (via plugin)\n !headerCells.length ||\n !delimCells.length ||\n delimCells.some(function (cell) { return !reValidDelimCell_1.test(cell); }) ||\n // to prevent to regard setTextHeading as tabel delim cell with 'disallowDeepHeading' option\n (delimCells.length === 1 && delimContent.indexOf('|') !== 0)) {\n return 0 /* None */;\n }\n var lineOffsets = container.lineOffsets;\n var firstLineNum = parser.lineNumber - 1;\n var firstLineStart = last(lineOffsets) + 1;\n var table = createNode$1('table', [\n [firstLineNum, firstLineStart],\n [parser.lineNumber, parser.offset],\n ]);\n // eslint-disable-next-line arrow-body-style\n table.columns = delimCells.map(function () { return ({ align: null }); });\n container.insertAfter(table);\n if (lineOffsets.length === 1) {\n container.unlink();\n }\n else {\n container.stringContent = stringContent.slice(0, lastLineStartIdx);\n var paraLastLineStartIdx = stringContent.lastIndexOf('\\n', lastLineStartIdx - 2) + 1;\n var paraLastLineLen = lastLineStartIdx - paraLastLineStartIdx - 1;\n parser.lastLineLength = lineOffsets[lineOffsets.length - 2] + paraLastLineLen;\n parser.finalize(container, firstLineNum - 1);\n }\n parser.advanceOffset(parser.currentLine.length - parser.offset, false);\n var tableHead_1 = createNode$1('tableHead', [\n [firstLineNum, firstLineStart],\n [parser.lineNumber, parser.offset],\n ]);\n table.appendChild(tableHead_1);\n var tableHeadRow_1 = createNode$1('tableRow', [\n [firstLineNum, firstLineStart],\n [firstLineNum, firstLineStart + headerContent.length - 1],\n ]);\n var tableDelimRow_1 = createNode$1('tableDelimRow', [\n [parser.lineNumber, parser.nextNonspace + 1],\n [parser.lineNumber, parser.offset],\n ]);\n tableHead_1.appendChild(tableHeadRow_1);\n tableHead_1.appendChild(tableDelimRow_1);\n generateTableCells('tableCell', headerCells, firstLineNum, firstLineStart + headerOffset).forEach(function (cellNode) {\n tableHeadRow_1.appendChild(cellNode);\n });\n var delimCellNodes = generateTableCells('tableDelimCell', delimCells, parser.lineNumber, parser.nextNonspace + 1 + delimOffset);\n delimCellNodes.forEach(function (cellNode) {\n tableDelimRow_1.appendChild(cellNode);\n });\n table.columns = delimCellNodes.map(getColumnFromDelimCell);\n parser.tip = table;\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar tableBody = function (parser, container) {\n if ((container.type !== 'table' && container.type !== 'tableBody') ||\n (!parser.blank && parser.currentLine.indexOf('|') === -1)) {\n return 0 /* None */;\n }\n parser.advanceOffset(parser.currentLine.length - parser.offset, false);\n if (parser.blank) {\n var table_1 = container;\n if (container.type === 'tableBody') {\n table_1 = container.parent;\n parser.finalize(container, parser.lineNumber - 1);\n }\n parser.finalize(table_1, parser.lineNumber - 1);\n return 0 /* None */;\n }\n var tableBody = container;\n if (container.type === 'table') {\n tableBody = parser.addChild('tableBody', parser.nextNonspace);\n tableBody.stringContent = null;\n }\n var tableRow = createNode$1('tableRow', [\n [parser.lineNumber, parser.nextNonspace + 1],\n [parser.lineNumber, parser.currentLine.length],\n ]);\n tableBody.appendChild(tableRow);\n var table = tableBody.parent;\n var content = parser.currentLine.slice(parser.nextNonspace);\n var _a = parseRowContent(content), offset = _a[0], cellContents = _a[1];\n generateTableCells('tableCell', cellContents, parser.lineNumber, parser.nextNonspace + 1 + offset).forEach(function (cellNode, idx) {\n if (idx >= table.columns.length) {\n cellNode.ignored = true;\n }\n tableRow.appendChild(cellNode);\n });\n return 2 /* Leaf */;\n};\n\nvar reCustomBlock = /^(\\$\\$)(\\s*[a-zA-Z])+/;\nvar reCanBeCustomInline = /^(\\$\\$)(\\s*[a-zA-Z])+.*(\\$\\$)/;\nvar customBlock = function (parser) {\n var match;\n if (!parser.indented &&\n !reCanBeCustomInline.test(parser.currentLine) &&\n (match = parser.currentLine.match(reCustomBlock))) {\n var syntaxLength = match[1].length;\n parser.closeUnmatchedBlocks();\n var container = parser.addChild('customBlock', parser.nextNonspace);\n container.syntaxLength = syntaxLength;\n container.offset = parser.indent;\n parser.advanceNextNonspace();\n parser.advanceOffset(syntaxLength, false);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\n\nvar reCodeFence = /^`{3,}(?!.*`)|^~{3,}/;\nvar reHtmlBlockOpen = [\n /./,\n /^<(?:script|pre|style)(?:\\s|>|$)/i,\n /^<!--/,\n /^<[?]/,\n /^<![A-Z]/,\n /^<!\\[CDATA\\[/,\n /^<[/]?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[123456]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\\s|[/]?[>]|$)/i,\n new RegExp(\"^(?:\" + OPENTAG + \"|\" + CLOSETAG + \")\\\\s*$\", 'i'),\n];\nvar reSetextHeadingLine = /^(?:=+|-+)[ \\t]*$/;\nvar reATXHeadingMarker = /^#{1,6}(?:[ \\t]+|$)/;\nvar reThematicBreak = /^(?:(?:\\*[ \\t]*){3,}|(?:_[ \\t]*){3,}|(?:-[ \\t]*){3,})[ \\t]*$/;\nvar reBulletListMarker = /^[*+-]/;\nvar reOrderedListMarker = /^(\\d{1,9})([.)])/;\n// Parse a list marker and return data on the marker (type,\n// start, delimiter, bullet character, padding) or null.\nfunction parseListMarker(parser, container) {\n var rest = parser.currentLine.slice(parser.nextNonspace);\n var match;\n var nextc;\n var data = {\n type: 'bullet',\n tight: true,\n bulletChar: '',\n start: 0,\n delimiter: '',\n padding: 0,\n markerOffset: parser.indent,\n // GFM: Task List Item\n task: false,\n checked: false,\n };\n if (parser.indent >= 4) {\n return null;\n }\n if ((match = rest.match(reBulletListMarker))) {\n data.type = 'bullet';\n data.bulletChar = match[0][0];\n }\n else if ((match = rest.match(reOrderedListMarker)) &&\n (container.type !== 'paragraph' || match[1] === '1')) {\n data.type = 'ordered';\n data.start = parseInt(match[1], 10);\n data.delimiter = match[2];\n }\n else {\n return null;\n }\n // make sure we have spaces after\n nextc = peek(parser.currentLine, parser.nextNonspace + match[0].length);\n if (!(nextc === -1 || nextc === C_TAB || nextc === C_SPACE)) {\n return null;\n }\n // if it interrupts paragraph, make sure first line isn't blank\n if (container.type === 'paragraph' &&\n !parser.currentLine.slice(parser.nextNonspace + match[0].length).match(reNonSpace)) {\n return null;\n }\n // we've got a match! advance offset and calculate padding\n parser.advanceNextNonspace(); // to start of marker\n parser.advanceOffset(match[0].length, true); // to end of marker\n var spacesStartCol = parser.column;\n var spacesStartOffset = parser.offset;\n do {\n parser.advanceOffset(1, true);\n nextc = peek(parser.currentLine, parser.offset);\n } while (parser.column - spacesStartCol < 5 && isSpaceOrTab(nextc));\n var blankItem = peek(parser.currentLine, parser.offset) === -1;\n var spacesAfterMarker = parser.column - spacesStartCol;\n if (spacesAfterMarker >= 5 || spacesAfterMarker < 1 || blankItem) {\n data.padding = match[0].length + 1;\n parser.column = spacesStartCol;\n parser.offset = spacesStartOffset;\n if (isSpaceOrTab(peek(parser.currentLine, parser.offset))) {\n parser.advanceOffset(1, true);\n }\n }\n else {\n data.padding = match[0].length + spacesAfterMarker;\n }\n return data;\n}\n// Returns true if the two list items are of the same type,\n// with the same delimiter and bullet character. This is used\n// in agglomerating list items into lists.\nfunction listsMatch(listData, itemData) {\n return (listData.type === itemData.type &&\n listData.delimiter === itemData.delimiter &&\n listData.bulletChar === itemData.bulletChar);\n}\nfunction isDisallowedDeepHeading(parser, node) {\n return parser.options.disallowDeepHeading && (node.type === 'blockQuote' || node.type === 'item');\n}\nvar blockQuote = function (parser) {\n if (!parser.indented && peek(parser.currentLine, parser.nextNonspace) === C_GREATERTHAN) {\n parser.advanceNextNonspace();\n parser.advanceOffset(1, false);\n // optional following space\n if (isSpaceOrTab(peek(parser.currentLine, parser.offset))) {\n parser.advanceOffset(1, true);\n }\n parser.closeUnmatchedBlocks();\n parser.addChild('blockQuote', parser.nextNonspace);\n return 1 /* Container */;\n }\n return 0 /* None */;\n};\nvar atxHeading = function (parser, container) {\n var match;\n if (!parser.indented &&\n // The nested Heading is disallowed in list and blockquote with 'disallowDeepHeading' option\n !isDisallowedDeepHeading(parser, container) &&\n (match = parser.currentLine.slice(parser.nextNonspace).match(reATXHeadingMarker))) {\n parser.advanceNextNonspace();\n parser.advanceOffset(match[0].length, false);\n parser.closeUnmatchedBlocks();\n var heading = parser.addChild('heading', parser.nextNonspace);\n heading.level = match[0].trim().length; // number of #s\n heading.headingType = 'atx';\n // remove trailing ###s:\n heading.stringContent = parser.currentLine\n .slice(parser.offset)\n .replace(/^[ \\t]*#+[ \\t]*$/, '')\n .replace(/[ \\t]+#+[ \\t]*$/, '');\n parser.advanceOffset(parser.currentLine.length - parser.offset);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar fencedCodeBlock = function (parser) {\n var match;\n if (!parser.indented &&\n (match = parser.currentLine.slice(parser.nextNonspace).match(reCodeFence))) {\n var fenceLength = match[0].length;\n parser.closeUnmatchedBlocks();\n var container = parser.addChild('codeBlock', parser.nextNonspace);\n container.isFenced = true;\n container.fenceLength = fenceLength;\n container.fenceChar = match[0][0];\n container.fenceOffset = parser.indent;\n parser.advanceNextNonspace();\n parser.advanceOffset(fenceLength, false);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar htmlBlock = function (parser, container) {\n if (!parser.indented && peek(parser.currentLine, parser.nextNonspace) === C_LESSTHAN) {\n var s = parser.currentLine.slice(parser.nextNonspace);\n var disallowedTags = parser.options.disallowedHtmlBlockTags;\n var blockType = void 0;\n for (blockType = 1; blockType <= 7; blockType++) {\n var matched = s.match(reHtmlBlockOpen[blockType]);\n if (matched) {\n if (blockType === 7) {\n if (container.type === 'paragraph') {\n return 0 /* None */;\n }\n if (disallowedTags.length > 0) {\n var reDisallowedTags = new RegExp(\"</?(?:\" + disallowedTags.join('|') + \")\", 'i');\n if (reDisallowedTags.test(matched[0])) {\n return 0 /* None */;\n }\n }\n }\n parser.closeUnmatchedBlocks();\n // We don't adjust parser.offset;\n // spaces are part of the HTML block:\n var b = parser.addChild('htmlBlock', parser.offset);\n b.htmlBlockType = blockType;\n return 2 /* Leaf */;\n }\n }\n }\n return 0 /* None */;\n};\nvar seTextHeading = function (parser, container) {\n var match;\n if (container.stringContent !== null &&\n !parser.indented &&\n container.type === 'paragraph' &&\n // The nested Heading is disallowed in list and blockquote with 'disallowDeepHeading' option\n !isDisallowedDeepHeading(parser, container.parent) &&\n (match = parser.currentLine.slice(parser.nextNonspace).match(reSetextHeadingLine))) {\n parser.closeUnmatchedBlocks();\n // resolve reference link definitions\n var pos = void 0;\n while (peek(container.stringContent, 0) === C_OPEN_BRACKET &&\n (pos = parser.inlineParser.parseReference(container, parser.refMap))) {\n container.stringContent = container.stringContent.slice(pos);\n }\n if (container.stringContent.length > 0) {\n var heading = createNode$1('heading', container.sourcepos);\n heading.level = match[0][0] === '=' ? 1 : 2;\n heading.headingType = 'setext';\n heading.stringContent = container.stringContent;\n container.insertAfter(heading);\n container.unlink();\n parser.tip = heading;\n parser.advanceOffset(parser.currentLine.length - parser.offset, false);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n }\n return 0 /* None */;\n};\nvar thematicBreak = function (parser) {\n if (!parser.indented && reThematicBreak.test(parser.currentLine.slice(parser.nextNonspace))) {\n parser.closeUnmatchedBlocks();\n parser.addChild('thematicBreak', parser.nextNonspace);\n parser.advanceOffset(parser.currentLine.length - parser.offset, false);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar listItem = function (parser, container) {\n var data;\n var currNode = container;\n if ((!parser.indented || container.type === 'list') &&\n (data = parseListMarker(parser, currNode))) {\n parser.closeUnmatchedBlocks();\n // add the list if needed\n if (parser.tip.type !== 'list' || !listsMatch(currNode.listData, data)) {\n currNode = parser.addChild('list', parser.nextNonspace);\n currNode.listData = data;\n }\n // add the list item\n currNode = parser.addChild('item', parser.nextNonspace);\n currNode.listData = data;\n return 1 /* Container */;\n }\n return 0 /* None */;\n};\n// indented code block\nvar indentedCodeBlock = function (parser) {\n if (parser.indented && parser.tip.type !== 'paragraph' && !parser.blank) {\n // indented code\n parser.advanceOffset(CODE_INDENT, true);\n parser.closeUnmatchedBlocks();\n parser.addChild('codeBlock', parser.offset);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar blockStarts = [\n blockQuote,\n atxHeading,\n fencedCodeBlock,\n htmlBlock,\n seTextHeading,\n thematicBreak,\n listItem,\n indentedCodeBlock,\n tableHead,\n tableBody,\n customBlock,\n];\n\n// `---` for YAML, `+++` for TOML, `;;;` for JSON\nvar reFrontMatter = /^(-{3}|\\+{3}|;{3})$/;\nvar frontMatter$1 = function (parser, container) {\n var currentLine = parser.currentLine, lineNumber = parser.lineNumber, indented = parser.indented;\n if (lineNumber === 1 &&\n !indented &&\n container.type === 'document' &&\n reFrontMatter.test(currentLine)) {\n parser.closeUnmatchedBlocks();\n var frontMatter_1 = parser.addChild('frontMatter', parser.nextNonspace);\n frontMatter_1.stringContent = currentLine;\n parser.advanceNextNonspace();\n parser.advanceOffset(currentLine.length, false);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\n\nvar frontMatter = {\n continue: function (parser, container) {\n var line = parser.currentLine;\n var match = line.match(reFrontMatter);\n if (container.type === 'frontMatter' && match) {\n container.stringContent += line;\n parser.lastLineLength = match[0].length;\n parser.finalize(container, parser.lineNumber);\n return 2 /* Finished */;\n }\n return 0 /* Go */;\n },\n finalize: function (_, block) {\n if (block.stringContent === null) {\n return;\n }\n block.literal = block.stringContent;\n block.stringContent = null;\n },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\n\nvar reHtmlBlockClose = [\n /./,\n /<\\/(?:script|pre|style)>/i,\n /-->/,\n /\\?>/,\n />/,\n /\\]\\]>/,\n];\nvar reMaybeSpecial = /^[#`~*+_=<>0-9-;$]/;\nvar reLineEnding$1 = /\\r\\n|\\n|\\r/;\nfunction document$2() {\n return createNode$1('document', [\n [1, 1],\n [0, 0],\n ]);\n}\nvar defaultOptions$1 = {\n smart: false,\n tagFilter: false,\n extendedAutolinks: false,\n disallowedHtmlBlockTags: [],\n referenceDefinition: false,\n disallowDeepHeading: false,\n customParser: null,\n frontMatter: false,\n};\nvar Parser = /** @class */ (function () {\n function Parser(options) {\n this.options = __assign(__assign({}, defaultOptions$1), options);\n this.doc = document$2();\n this.tip = this.doc;\n this.oldtip = this.doc;\n this.lineNumber = 0;\n this.offset = 0;\n this.column = 0;\n this.nextNonspace = 0;\n this.nextNonspaceColumn = 0;\n this.indent = 0;\n this.currentLine = '';\n this.indented = false;\n this.blank = false;\n this.partiallyConsumedTab = false;\n this.allClosed = true;\n this.lastMatchedContainer = this.doc;\n this.refMap = {};\n this.refLinkCandidateMap = {};\n this.refDefCandidateMap = {};\n this.lastLineLength = 0;\n this.lines = [];\n if (this.options.frontMatter) {\n blockHandlers.frontMatter = frontMatter;\n blockStarts.unshift(frontMatter$1);\n }\n this.inlineParser = new InlineParser(this.options);\n }\n Parser.prototype.advanceOffset = function (count, columns) {\n if (columns === void 0) { columns = false; }\n var currentLine = this.currentLine;\n var charsToTab, charsToAdvance;\n var c;\n while (count > 0 && (c = currentLine[this.offset])) {\n if (c === '\\t') {\n charsToTab = 4 - (this.column % 4);\n if (columns) {\n this.partiallyConsumedTab = charsToTab > count;\n charsToAdvance = charsToTab > count ? count : charsToTab;\n this.column += charsToAdvance;\n this.offset += this.partiallyConsumedTab ? 0 : 1;\n count -= charsToAdvance;\n }\n else {\n this.partiallyConsumedTab = false;\n this.column += charsToTab;\n this.offset += 1;\n count -= 1;\n }\n }\n else {\n this.partiallyConsumedTab = false;\n this.offset += 1;\n this.column += 1; // assume ascii; block starts are ascii\n count -= 1;\n }\n }\n };\n Parser.prototype.advanceNextNonspace = function () {\n this.offset = this.nextNonspace;\n this.column = this.nextNonspaceColumn;\n this.partiallyConsumedTab = false;\n };\n Parser.prototype.findNextNonspace = function () {\n var currentLine = this.currentLine;\n var i = this.offset;\n var cols = this.column;\n var c;\n while ((c = currentLine.charAt(i)) !== '') {\n if (c === ' ') {\n i++;\n cols++;\n }\n else if (c === '\\t') {\n i++;\n cols += 4 - (cols % 4);\n }\n else {\n break;\n }\n }\n this.blank = c === '\\n' || c === '\\r' || c === '';\n this.nextNonspace = i;\n this.nextNonspaceColumn = cols;\n this.indent = this.nextNonspaceColumn - this.column;\n this.indented = this.indent >= CODE_INDENT;\n };\n // Add a line to the block at the tip. We assume the tip\n // can accept lines -- that check should be done before calling this.\n Parser.prototype.addLine = function () {\n if (this.partiallyConsumedTab) {\n this.offset += 1; // skip over tab\n // add space characters:\n var charsToTab = 4 - (this.column % 4);\n this.tip.stringContent += repeat(' ', charsToTab);\n }\n if (this.tip.lineOffsets) {\n this.tip.lineOffsets.push(this.offset);\n }\n else {\n this.tip.lineOffsets = [this.offset];\n }\n this.tip.stringContent += this.currentLine.slice(this.offset) + \"\\n\";\n };\n // Add block of type tag as a child of the tip. If the tip can't\n // accept children, close and finalize it and try its parent,\n // and so on til we find a block that can accept children.\n Parser.prototype.addChild = function (tag, offset) {\n while (!blockHandlers[this.tip.type].canContain(tag)) {\n this.finalize(this.tip, this.lineNumber - 1);\n }\n var columnNumber = offset + 1; // offset 0 = column 1\n var newBlock = createNode$1(tag, [\n [this.lineNumber, columnNumber],\n [0, 0],\n ]);\n newBlock.stringContent = '';\n this.tip.appendChild(newBlock);\n this.tip = newBlock;\n return newBlock;\n };\n // Finalize and close any unmatched blocks.\n Parser.prototype.closeUnmatchedBlocks = function () {\n if (!this.allClosed) {\n // finalize any blocks not matched\n while (this.oldtip !== this.lastMatchedContainer) {\n var parent_1 = this.oldtip.parent;\n this.finalize(this.oldtip, this.lineNumber - 1);\n this.oldtip = parent_1;\n }\n this.allClosed = true;\n }\n };\n // Finalize a block. Close it and do any necessary postprocessing,\n // e.g. creating stringContent from strings, setting the 'tight'\n // or 'loose' status of a list, and parsing the beginnings\n // of paragraphs for reference definitions. Reset the tip to the\n // parent of the closed block.\n Parser.prototype.finalize = function (block, lineNumber) {\n var above = block.parent;\n block.open = false;\n block.sourcepos[1] = [lineNumber, this.lastLineLength];\n blockHandlers[block.type].finalize(this, block);\n this.tip = above;\n };\n // Walk through a block & children recursively, parsing string content\n // into inline content where appropriate.\n Parser.prototype.processInlines = function (block) {\n var event;\n var customParser = this.options.customParser;\n var walker = block.walker();\n this.inlineParser.refMap = this.refMap;\n this.inlineParser.refLinkCandidateMap = this.refLinkCandidateMap;\n this.inlineParser.refDefCandidateMap = this.refDefCandidateMap;\n this.inlineParser.options = this.options;\n while ((event = walker.next())) {\n var node = event.node, entering = event.entering;\n var t = node.type;\n if (customParser && customParser[t]) {\n customParser[t](node, { entering: entering, options: this.options });\n }\n if (!entering &&\n (t === 'paragraph' ||\n t === 'heading' ||\n (t === 'tableCell' && !node.ignored))) {\n this.inlineParser.parse(node);\n }\n }\n };\n // Analyze a line of text and update the document appropriately.\n // We parse markdown text by calling this on each line of input,\n // then finalizing the document.\n Parser.prototype.incorporateLine = function (ln) {\n var container = this.doc;\n this.oldtip = this.tip;\n this.offset = 0;\n this.column = 0;\n this.blank = false;\n this.partiallyConsumedTab = false;\n this.lineNumber += 1;\n // replace NUL characters for security\n if (ln.indexOf('\\u0000') !== -1) {\n ln = ln.replace(/\\0/g, '\\uFFFD');\n }\n this.currentLine = ln;\n // For each containing block, try to parse the associated line start.\n // Bail out on failure: container will point to the last matching block.\n // Set allMatched to false if not all containers match.\n var allMatched = true;\n var lastChild;\n while ((lastChild = container.lastChild) && lastChild.open) {\n container = lastChild;\n this.findNextNonspace();\n switch (blockHandlers[container.type]['continue'](this, container)) {\n case 0 /* Go */: // we've matched, keep going\n break;\n case 1 /* Stop */: // we've failed to match a block\n allMatched = false;\n break;\n case 2 /* Finished */: // we've hit end of line for fenced code close and can return\n this.lastLineLength = ln.length;\n return;\n default:\n throw new Error('continue returned illegal value, must be 0, 1, or 2');\n }\n if (!allMatched) {\n container = container.parent; // back up to last matching block\n break;\n }\n }\n this.allClosed = container === this.oldtip;\n this.lastMatchedContainer = container;\n var matchedLeaf = container.type !== 'paragraph' && blockHandlers[container.type].acceptsLines;\n var blockStartsLen = blockStarts.length;\n // Unless last matched container is a code block, try new container starts,\n // adding children to the last matched container:\n while (!matchedLeaf) {\n this.findNextNonspace();\n // this is a little performance optimization:\n if (container.type !== 'table' &&\n container.type !== 'tableBody' &&\n container.type !== 'paragraph' &&\n !this.indented &&\n !reMaybeSpecial.test(ln.slice(this.nextNonspace))) {\n this.advanceNextNonspace();\n break;\n }\n var i = 0;\n while (i < blockStartsLen) {\n var res = blockStarts[i](this, container);\n if (res === 1 /* Container */) {\n container = this.tip;\n break;\n }\n else if (res === 2 /* Leaf */) {\n container = this.tip;\n matchedLeaf = true;\n break;\n }\n else {\n i++;\n }\n }\n if (i === blockStartsLen) {\n // nothing matched\n this.advanceNextNonspace();\n break;\n }\n }\n // What remains at the offset is a text line. Add the text to the\n // appropriate container.\n // First check for a lazy paragraph continuation:\n if (!this.allClosed && !this.blank && this.tip.type === 'paragraph') {\n // lazy paragraph continuation\n this.addLine();\n }\n else {\n // not a lazy continuation\n // finalize any blocks not matched\n this.closeUnmatchedBlocks();\n if (this.blank && container.lastChild) {\n container.lastChild.lastLineBlank = true;\n }\n var t = container.type;\n // Block quote lines are never blank as they start with >\n // and we don't count blanks in fenced code for purposes of tight/loose\n // lists or breaking out of lists. We also don't set _lastLineBlank\n // on an empty list item, or if we just closed a fenced block.\n var lastLineBlank = this.blank &&\n !(t === 'blockQuote' ||\n (isCodeBlock(container) && container.isFenced) ||\n (t === 'item' && !container.firstChild && container.sourcepos[0][0] === this.lineNumber));\n // propagate lastLineBlank up through parents:\n var cont = container;\n while (cont) {\n cont.lastLineBlank = lastLineBlank;\n cont = cont.parent;\n }\n if (blockHandlers[t].acceptsLines) {\n this.addLine();\n // if HtmlBlock, check for end condition\n if (isHtmlBlock(container) &&\n container.htmlBlockType >= 1 &&\n container.htmlBlockType <= 5 &&\n reHtmlBlockClose[container.htmlBlockType].test(this.currentLine.slice(this.offset))) {\n this.lastLineLength = ln.length;\n this.finalize(container, this.lineNumber);\n }\n }\n else if (this.offset < ln.length && !this.blank) {\n // create paragraph container for line\n container = this.addChild('paragraph', this.offset);\n this.advanceNextNonspace();\n this.addLine();\n }\n }\n this.lastLineLength = ln.length;\n };\n // The main parsing function. Returns a parsed document AST.\n Parser.prototype.parse = function (input, lineTexts) {\n this.doc = document$2();\n this.tip = this.doc;\n this.lineNumber = 0;\n this.lastLineLength = 0;\n this.offset = 0;\n this.column = 0;\n this.lastMatchedContainer = this.doc;\n this.currentLine = '';\n var lines = input.split(reLineEnding$1);\n var len = lines.length;\n this.lines = lineTexts ? lineTexts : lines;\n if (this.options.referenceDefinition) {\n this.clearRefMaps();\n }\n if (input.charCodeAt(input.length - 1) === C_NEWLINE) {\n // ignore last blank line created by final newline\n len -= 1;\n }\n for (var i = 0; i < len; i++) {\n this.incorporateLine(lines[i]);\n }\n while (this.tip) {\n this.finalize(this.tip, len);\n }\n this.processInlines(this.doc);\n return this.doc;\n };\n Parser.prototype.partialParseStart = function (lineNumber, lines) {\n this.doc = document$2();\n this.tip = this.doc;\n this.lineNumber = lineNumber - 1;\n this.lastLineLength = 0;\n this.offset = 0;\n this.column = 0;\n this.lastMatchedContainer = this.doc;\n this.currentLine = '';\n var len = lines.length;\n for (var i = 0; i < len; i++) {\n this.incorporateLine(lines[i]);\n }\n return this.doc;\n };\n Parser.prototype.partialParseExtends = function (lines) {\n for (var i = 0; i < lines.length; i++) {\n this.incorporateLine(lines[i]);\n }\n };\n Parser.prototype.partialParseFinish = function () {\n while (this.tip) {\n this.finalize(this.tip, this.lineNumber);\n }\n this.processInlines(this.doc);\n };\n Parser.prototype.setRefMaps = function (refMap, refLinkCandidateMap, refDefCandidateMap) {\n this.refMap = refMap;\n this.refLinkCandidateMap = refLinkCandidateMap;\n this.refDefCandidateMap = refDefCandidateMap;\n };\n Parser.prototype.clearRefMaps = function () {\n [this.refMap, this.refLinkCandidateMap, this.refDefCandidateMap].forEach(function (map) {\n clearObj(map);\n });\n };\n return Parser;\n}());\n\nfunction comparePos(p1, p2) {\n if (p1[0] < p2[0]) {\n return 1 /* LT */;\n }\n if (p1[0] > p2[0]) {\n return -1 /* GT */;\n }\n if (p1[1] < p2[1]) {\n return 1 /* LT */;\n }\n if (p1[1] > p2[1]) {\n return -1 /* GT */;\n }\n return 0 /* EQ */;\n}\nfunction compareRangeAndPos(_a, pos) {\n var startPos = _a[0], endPos = _a[1];\n if (comparePos(endPos, pos) === 1 /* LT */) {\n return 1 /* LT */;\n }\n if (comparePos(startPos, pos) === -1 /* GT */) {\n return -1 /* GT */;\n }\n return 0 /* EQ */;\n}\nfunction removeNextUntil(node, last) {\n if (node.parent !== last.parent || node === last) {\n return;\n }\n var next = node.next;\n while (next && next !== last) {\n var temp = next.next;\n for (var _i = 0, _a = ['parent', 'prev', 'next']; _i < _a.length; _i++) {\n var type = _a[_i];\n if (next[type]) {\n removeNodeById(next[type].id);\n next[type] = null;\n }\n }\n next = temp;\n }\n node.next = last.next;\n if (last.next) {\n last.next.prev = node;\n }\n else {\n node.parent.lastChild = node;\n }\n}\nfunction getChildNodes(parent) {\n var nodes = [];\n var curr = parent.firstChild;\n while (curr) {\n nodes.push(curr);\n curr = curr.next;\n }\n return nodes;\n}\nfunction insertNodesBefore(target, nodes) {\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var node = nodes_1[_i];\n target.insertBefore(node);\n }\n}\nfunction prependChildNodes(parent, nodes) {\n for (var i = nodes.length - 1; i >= 0; i -= 1) {\n parent.prependChild(nodes[i]);\n }\n}\nfunction updateNextLineNumbers(base, diff) {\n if (!base || !base.parent || diff === 0) {\n return;\n }\n var walker = base.parent.walker();\n walker.resumeAt(base, true);\n var event;\n while ((event = walker.next())) {\n var node = event.node, entering = event.entering;\n if (entering) {\n node.sourcepos[0][0] += diff;\n node.sourcepos[1][0] += diff;\n }\n }\n}\nfunction compareRangeAndLine(_a, line) {\n var startPos = _a[0], endPos = _a[1];\n if (endPos[0] < line) {\n return 1 /* LT */;\n }\n if (startPos[0] > line) {\n return -1 /* GT */;\n }\n return 0 /* EQ */;\n}\nfunction findChildNodeAtLine(parent, line) {\n var node = parent.firstChild;\n while (node) {\n var comp = compareRangeAndLine(node.sourcepos, line);\n if (comp === 0 /* EQ */) {\n return node;\n }\n if (comp === -1 /* GT */) {\n // To consider that top line is blank line\n return node.prev || node;\n }\n node = node.next;\n }\n return parent.lastChild;\n}\nfunction lastLeafNode(node) {\n while (node.lastChild) {\n node = node.lastChild;\n }\n return node;\n}\nfunction sameLineTopAncestor(node) {\n while (node.parent &&\n node.parent.type !== 'document' &&\n node.parent.sourcepos[0][0] === node.sourcepos[0][0]) {\n node = node.parent;\n }\n return node;\n}\nfunction findFirstNodeAtLine(parent, line) {\n var node = parent.firstChild;\n var prev = null;\n while (node) {\n var comp = compareRangeAndLine(node.sourcepos, line);\n if (comp === 0 /* EQ */) {\n if (node.sourcepos[0][0] === line || !node.firstChild) {\n return node;\n }\n prev = node;\n node = node.firstChild;\n }\n else if (comp === -1 /* GT */) {\n break;\n }\n else {\n prev = node;\n node = node.next;\n }\n }\n if (prev) {\n return sameLineTopAncestor(lastLeafNode(prev));\n }\n return null;\n}\nfunction findNodeAtPosition(parent, pos) {\n var node = parent;\n var prev = null;\n while (node) {\n var comp = compareRangeAndPos(node.sourcepos, pos);\n if (comp === 0 /* EQ */) {\n if (node.firstChild) {\n prev = node;\n node = node.firstChild;\n }\n else {\n return node;\n }\n }\n else if (comp === -1 /* GT */) {\n return prev;\n }\n else if (node.next) {\n node = node.next;\n }\n else {\n return prev;\n }\n }\n return node;\n}\nfunction findNodeById(id) {\n return getNodeById(id) || null;\n}\nfunction invokeNextUntil(callback, start, end) {\n if (end === void 0) { end = null; }\n if (start) {\n var walker = start.walker();\n while (start && start !== end) {\n callback(start);\n var next = walker.next();\n if (next) {\n start = next.node;\n }\n else {\n break;\n }\n }\n }\n}\nfunction isUnlinked(id) {\n var node = findNodeById(id);\n if (!node) {\n return true;\n }\n while (node && node.type !== 'document') {\n // eslint-disable-next-line no-loop-func\n if (!node.parent && !node.prev && !node.next) {\n return true;\n }\n node = node.parent;\n }\n return false;\n}\n\nvar reLineEnding = /\\r\\n|\\n|\\r/;\nfunction canBeContinuedListItem(lineText) {\n var spaceMatch = lineText.match(/^[ \\t]+/);\n if (spaceMatch && (spaceMatch[0].length >= 2 || /\\t/.test(spaceMatch[0]))) {\n return true;\n }\n var leftTrimmed = spaceMatch ? lineText.slice(spaceMatch.length) : lineText;\n return reBulletListMarker.test(leftTrimmed) || reOrderedListMarker.test(leftTrimmed);\n}\nfunction canBeContinuedTableBody(lineText) {\n return !isBlank(lineText) && lineText.indexOf('|') !== -1;\n}\nfunction createRefDefState(node) {\n var id = node.id, title = node.title, sourcepos = node.sourcepos, dest = node.dest;\n return {\n id: id,\n title: title,\n sourcepos: sourcepos,\n unlinked: false,\n destination: dest,\n };\n}\nvar ToastMark = /** @class */ (function () {\n function ToastMark(contents, options) {\n this.refMap = {};\n this.refLinkCandidateMap = {};\n this.refDefCandidateMap = {};\n this.referenceDefinition = !!(options === null || options === void 0 ? void 0 : options.referenceDefinition);\n this.parser = new Parser(options);\n this.parser.setRefMaps(this.refMap, this.refLinkCandidateMap, this.refDefCandidateMap);\n this.eventHandlerMap = { change: [] };\n contents = contents || '';\n this.lineTexts = contents.split(reLineEnding);\n this.root = this.parser.parse(contents, this.lineTexts);\n }\n ToastMark.prototype.updateLineTexts = function (startPos, endPos, newText) {\n var _a;\n var startLine = startPos[0], startCol = startPos[1];\n var endLine = endPos[0], endCol = endPos[1];\n var newLines = newText.split(reLineEnding);\n var newLineLen = newLines.length;\n var startLineText = this.lineTexts[startLine - 1];\n var endLineText = this.lineTexts[endLine - 1];\n newLines[0] = startLineText.slice(0, startCol - 1) + newLines[0];\n newLines[newLineLen - 1] = newLines[newLineLen - 1] + endLineText.slice(endCol - 1);\n var removedLineLen = endLine - startLine + 1;\n (_a = this.lineTexts).splice.apply(_a, __spreadArray([startLine - 1, removedLineLen], newLines));\n return newLineLen - removedLineLen;\n };\n ToastMark.prototype.updateRootNodeState = function () {\n if (this.lineTexts.length === 1 && this.lineTexts[0] === '') {\n this.root.lastLineBlank = true;\n this.root.sourcepos = [\n [1, 1],\n [1, 0],\n ];\n return;\n }\n if (this.root.lastChild) {\n this.root.lastLineBlank = this.root.lastChild.lastLineBlank;\n }\n var lineTexts = this.lineTexts;\n var idx = lineTexts.length - 1;\n while (lineTexts[idx] === '') {\n idx -= 1;\n }\n if (lineTexts.length - 2 > idx) {\n idx += 1;\n }\n this.root.sourcepos[1] = [idx + 1, lineTexts[idx].length];\n };\n ToastMark.prototype.replaceRangeNodes = function (startNode, endNode, newNodes) {\n if (!startNode) {\n if (endNode) {\n insertNodesBefore(endNode, newNodes);\n removeNodeById(endNode.id);\n endNode.unlink();\n }\n else {\n prependChildNodes(this.root, newNodes);\n }\n }\n else {\n insertNodesBefore(startNode, newNodes);\n removeNextUntil(startNode, endNode);\n [startNode.id, endNode.id].forEach(function (id) { return removeNodeById(id); });\n startNode.unlink();\n }\n };\n ToastMark.prototype.getNodeRange = function (startPos, endPos) {\n var startNode = findChildNodeAtLine(this.root, startPos[0]);\n var endNode = findChildNodeAtLine(this.root, endPos[0]);\n // extend node range to include a following block which doesn't have preceding blank line\n if (endNode && endNode.next && endPos[0] + 1 === endNode.next.sourcepos[0][0]) {\n endNode = endNode.next;\n }\n return [startNode, endNode];\n };\n ToastMark.prototype.trigger = function (eventName, param) {\n this.eventHandlerMap[eventName].forEach(function (handler) {\n handler(param);\n });\n };\n ToastMark.prototype.extendEndLine = function (line) {\n while (this.lineTexts[line] === '') {\n line += 1;\n }\n return line;\n };\n ToastMark.prototype.parseRange = function (startNode, endNode, startLine, endLine) {\n // extends starting range if the first node can be a continued list item\n if (startNode &&\n startNode.prev &&\n ((isList(startNode.prev) && canBeContinuedListItem(this.lineTexts[startLine - 1])) ||\n (isTable(startNode.prev) && canBeContinuedTableBody(this.lineTexts[startLine - 1])))) {\n startNode = startNode.prev;\n startLine = startNode.sourcepos[0][0];\n }\n var editedLines = this.lineTexts.slice(startLine - 1, endLine);\n var root = this.parser.partialParseStart(startLine, editedLines);\n // extends ending range if the following node can be a fenced code block or a continued list item\n var nextNode = endNode ? endNode.next : this.root.firstChild;\n var lastChild = root.lastChild;\n var isOpenedLastChildCodeBlock = lastChild && isCodeBlock(lastChild) && lastChild.open;\n var isOpenedLastChildCustomBlock = lastChild && isCustomBlock(lastChild) && lastChild.open;\n var isLastChildList = lastChild && isList(lastChild);\n while (((isOpenedLastChildCodeBlock || isOpenedLastChildCustomBlock) && nextNode) ||\n (isLastChildList && nextNode && (nextNode.type === 'list' || nextNode.sourcepos[0][1] >= 2))) {\n var newEndLine = this.extendEndLine(nextNode.sourcepos[1][0]);\n this.parser.partialParseExtends(this.lineTexts.slice(endLine, newEndLine));\n if (!startNode) {\n startNode = endNode;\n }\n endNode = nextNode;\n endLine = newEndLine;\n nextNode = nextNode.next;\n }\n this.parser.partialParseFinish();\n var newNodes = getChildNodes(root);\n return { newNodes: newNodes, extStartNode: startNode, extEndNode: endNode };\n };\n ToastMark.prototype.getRemovedNodeRange = function (extStartNode, extEndNode) {\n if (!extStartNode ||\n (extStartNode && isRefDef(extStartNode)) ||\n (extEndNode && isRefDef(extEndNode))) {\n return null;\n }\n return {\n id: [extStartNode.id, extEndNode.id],\n line: [extStartNode.sourcepos[0][0] - 1, extEndNode.sourcepos[1][0] - 1],\n };\n };\n ToastMark.prototype.markDeletedRefMap = function (extStartNode, extEndNode) {\n var _this = this;\n if (!isEmptyObj(this.refMap)) {\n var markDeleted = function (node) {\n if (isRefDef(node)) {\n var refDefState = _this.refMap[node.label];\n if (refDefState && node.id === refDefState.id) {\n refDefState.unlinked = true;\n }\n }\n };\n if (extStartNode) {\n invokeNextUntil(markDeleted, extStartNode.parent, extEndNode);\n }\n if (extEndNode) {\n invokeNextUntil(markDeleted, extEndNode);\n }\n }\n };\n ToastMark.prototype.replaceWithNewRefDefState = function (nodes) {\n var _this = this;\n if (!isEmptyObj(this.refMap)) {\n var replaceWith_1 = function (node) {\n if (isRefDef(node)) {\n var label = node.label;\n var refDefState = _this.refMap[label];\n if (!refDefState || refDefState.unlinked) {\n _this.refMap[label] = createRefDefState(node);\n }\n }\n };\n nodes.forEach(function (node) {\n invokeNextUntil(replaceWith_1, node);\n });\n }\n };\n ToastMark.prototype.replaceWithRefDefCandidate = function () {\n var _this = this;\n if (!isEmptyObj(this.refDefCandidateMap)) {\n iterateObject(this.refDefCandidateMap, function (_, candidate) {\n var label = candidate.label, sourcepos = candidate.sourcepos;\n var refDefState = _this.refMap[label];\n if (!refDefState ||\n refDefState.unlinked ||\n refDefState.sourcepos[0][0] > sourcepos[0][0]) {\n _this.refMap[label] = createRefDefState(candidate);\n }\n });\n }\n };\n ToastMark.prototype.getRangeWithRefDef = function (startLine, endLine, startNode, endNode, lineDiff) {\n if (this.referenceDefinition && !isEmptyObj(this.refMap)) {\n var prevNode = findChildNodeAtLine(this.root, startLine - 1);\n var nextNode = findChildNodeAtLine(this.root, endLine + 1);\n if (prevNode && isRefDef(prevNode) && prevNode !== startNode && prevNode !== endNode) {\n startNode = prevNode;\n startLine = startNode.sourcepos[0][0];\n }\n if (nextNode && isRefDef(nextNode) && nextNode !== startNode && nextNode !== endNode) {\n endNode = nextNode;\n endLine = this.extendEndLine(endNode.sourcepos[1][0] + lineDiff);\n }\n }\n return [startNode, endNode, startLine, endLine];\n };\n ToastMark.prototype.parse = function (startPos, endPos, lineDiff) {\n if (lineDiff === void 0) { lineDiff = 0; }\n var range = this.getNodeRange(startPos, endPos);\n var startNode = range[0], endNode = range[1];\n var startLine = startNode ? Math.min(startNode.sourcepos[0][0], startPos[0]) : startPos[0];\n var endLine = this.extendEndLine((endNode ? Math.max(endNode.sourcepos[1][0], endPos[0]) : endPos[0]) + lineDiff);\n var parseResult = this.parseRange.apply(this, this.getRangeWithRefDef(startLine, endLine, startNode, endNode, lineDiff));\n var newNodes = parseResult.newNodes, extStartNode = parseResult.extStartNode, extEndNode = parseResult.extEndNode;\n var removedNodeRange = this.getRemovedNodeRange(extStartNode, extEndNode);\n var nextNode = extEndNode ? extEndNode.next : this.root.firstChild;\n if (this.referenceDefinition) {\n this.markDeletedRefMap(extStartNode, extEndNode);\n this.replaceRangeNodes(extStartNode, extEndNode, newNodes);\n this.replaceWithNewRefDefState(newNodes);\n }\n else {\n this.replaceRangeNodes(extStartNode, extEndNode, newNodes);\n }\n return { nodes: newNodes, removedNodeRange: removedNodeRange, nextNode: nextNode };\n };\n ToastMark.prototype.parseRefLink = function () {\n var _this = this;\n var result = [];\n if (!isEmptyObj(this.refMap)) {\n iterateObject(this.refMap, function (label, value) {\n if (value.unlinked) {\n delete _this.refMap[label];\n }\n iterateObject(_this.refLinkCandidateMap, function (_, candidate) {\n var node = candidate.node, refLabel = candidate.refLabel;\n if (refLabel === label) {\n result.push(_this.parse(node.sourcepos[0], node.sourcepos[1]));\n }\n });\n });\n }\n return result;\n };\n ToastMark.prototype.removeUnlinkedCandidate = function () {\n if (!isEmptyObj(this.refDefCandidateMap)) {\n [this.refLinkCandidateMap, this.refDefCandidateMap].forEach(function (candidateMap) {\n iterateObject(candidateMap, function (id) {\n if (isUnlinked(id)) {\n delete candidateMap[id];\n }\n });\n });\n }\n };\n ToastMark.prototype.editMarkdown = function (startPos, endPos, newText) {\n var lineDiff = this.updateLineTexts(startPos, endPos, newText);\n var parseResult = this.parse(startPos, endPos, lineDiff);\n var editResult = omit(parseResult, 'nextNode');\n updateNextLineNumbers(parseResult.nextNode, lineDiff);\n this.updateRootNodeState();\n var result = [editResult];\n if (this.referenceDefinition) {\n this.removeUnlinkedCandidate();\n this.replaceWithRefDefCandidate();\n result = result.concat(this.parseRefLink());\n }\n this.trigger('change', result);\n return result;\n };\n ToastMark.prototype.getLineTexts = function () {\n return this.lineTexts;\n };\n ToastMark.prototype.getRootNode = function () {\n return this.root;\n };\n ToastMark.prototype.findNodeAtPosition = function (pos) {\n var node = findNodeAtPosition(this.root, pos);\n if (!node || node === this.root) {\n return null;\n }\n return node;\n };\n ToastMark.prototype.findFirstNodeAtLine = function (line) {\n return findFirstNodeAtLine(this.root, line);\n };\n ToastMark.prototype.on = function (eventName, callback) {\n this.eventHandlerMap[eventName].push(callback);\n };\n ToastMark.prototype.off = function (eventName, callback) {\n var handlers = this.eventHandlerMap[eventName];\n var idx = handlers.indexOf(callback);\n handlers.splice(idx, 1);\n };\n ToastMark.prototype.findNodeById = function (id) {\n return findNodeById(id);\n };\n ToastMark.prototype.removeAllNode = function () {\n removeAllNode();\n };\n return ToastMark;\n}());\n\nvar disallowedTags = [\n 'title',\n 'textarea',\n 'style',\n 'xmp',\n 'iframe',\n 'noembed',\n 'noframes',\n 'script',\n 'plaintext',\n];\nvar reDisallowedTag = new RegExp(\"<(/?(?:\" + disallowedTags.join('|') + \")[^>]*>)\", 'ig');\nfunction filterDisallowedTags(str) {\n if (reDisallowedTag.test(str)) {\n return str.replace(reDisallowedTag, function (_, group) { return \"&lt;\" + group; });\n }\n return str;\n}\n\nvar baseConvertors$1 = {\n heading: function (node, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: \"h\" + node.level,\n outerNewLine: true,\n };\n },\n text: function (node) {\n return {\n type: 'text',\n content: node.literal,\n };\n },\n softbreak: function (_, _a) {\n var options = _a.options;\n return {\n type: 'html',\n content: options.softbreak,\n };\n },\n linebreak: function () {\n return {\n type: 'html',\n content: '<br />\\n',\n };\n },\n emph: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'em',\n };\n },\n strong: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'strong',\n };\n },\n paragraph: function (node, _a) {\n var _b;\n var entering = _a.entering;\n var grandparent = (_b = node.parent) === null || _b === void 0 ? void 0 : _b.parent;\n if (grandparent && grandparent.type === 'list') {\n if (grandparent.listData.tight) {\n return null;\n }\n }\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'p',\n outerNewLine: true,\n };\n },\n thematicBreak: function () {\n return {\n type: 'openTag',\n tagName: 'hr',\n outerNewLine: true,\n selfClose: true,\n };\n },\n blockQuote: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'blockquote',\n outerNewLine: true,\n innerNewLine: true,\n };\n },\n list: function (node, _a) {\n var entering = _a.entering;\n var _b = node.listData, type = _b.type, start = _b.start;\n var tagName = type === 'bullet' ? 'ul' : 'ol';\n var attributes = {};\n if (tagName === 'ol' && start !== null && start !== 1) {\n attributes.start = start.toString();\n }\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: tagName,\n attributes: attributes,\n outerNewLine: true,\n };\n },\n item: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'li',\n outerNewLine: true,\n };\n },\n htmlInline: function (node, _a) {\n var options = _a.options;\n var content = options.tagFilter ? filterDisallowedTags(node.literal) : node.literal;\n return { type: 'html', content: content };\n },\n htmlBlock: function (node, _a) {\n var options = _a.options;\n var content = options.tagFilter ? filterDisallowedTags(node.literal) : node.literal;\n if (options.nodeId) {\n return [\n { type: 'openTag', tagName: 'div', outerNewLine: true },\n { type: 'html', content: content },\n { type: 'closeTag', tagName: 'div', outerNewLine: true },\n ];\n }\n return { type: 'html', content: content, outerNewLine: true };\n },\n code: function (node) {\n return [\n { type: 'openTag', tagName: 'code' },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'code' },\n ];\n },\n codeBlock: function (node) {\n var infoStr = node.info;\n var infoWords = infoStr ? infoStr.split(/\\s+/) : [];\n var codeClassNames = [];\n if (infoWords.length > 0 && infoWords[0].length > 0) {\n codeClassNames.push(\"language-\" + escapeXml(infoWords[0]));\n }\n return [\n { type: 'openTag', tagName: 'pre', outerNewLine: true },\n { type: 'openTag', tagName: 'code', classNames: codeClassNames },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'code' },\n { type: 'closeTag', tagName: 'pre', outerNewLine: true },\n ];\n },\n link: function (node, _a) {\n var entering = _a.entering;\n if (entering) {\n var _b = node, title = _b.title, destination = _b.destination;\n return {\n type: 'openTag',\n tagName: 'a',\n attributes: __assign({ href: escapeXml(destination) }, (title && { title: escapeXml(title) })),\n };\n }\n return { type: 'closeTag', tagName: 'a' };\n },\n image: function (node, _a) {\n var getChildrenText = _a.getChildrenText, skipChildren = _a.skipChildren;\n var _b = node, title = _b.title, destination = _b.destination;\n skipChildren();\n return {\n type: 'openTag',\n tagName: 'img',\n selfClose: true,\n attributes: __assign({ src: escapeXml(destination), alt: getChildrenText(node) }, (title && { title: escapeXml(title) })),\n };\n },\n customBlock: function (node, context, convertors) {\n var info = node.info.trim().toLowerCase();\n var customConvertor = convertors[info];\n if (customConvertor) {\n try {\n return customConvertor(node, context);\n }\n catch (e) {\n console.warn(\"[@toast-ui/editor] - The error occurred when \" + info + \" block node was parsed in markdown renderer: \" + e);\n }\n }\n return [\n { type: 'openTag', tagName: 'div', outerNewLine: true },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'div', outerNewLine: true },\n ];\n },\n frontMatter: function (node) {\n return [\n {\n type: 'openTag',\n tagName: 'div',\n outerNewLine: true,\n // Because front matter is metadata, it should not be render.\n attributes: { style: 'white-space: pre; display: none;' },\n },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'div', outerNewLine: true },\n ];\n },\n customInline: function (node, context, convertors) {\n var _a = node, info = _a.info, firstChild = _a.firstChild;\n var nomalizedInfo = info.trim().toLowerCase();\n var customConvertor = convertors[nomalizedInfo];\n var entering = context.entering;\n if (customConvertor) {\n try {\n return customConvertor(node, context);\n }\n catch (e) {\n console.warn(\"[@toast-ui/editor] - The error occurred when \" + nomalizedInfo + \" inline node was parsed in markdown renderer: \" + e);\n }\n }\n return entering\n ? [\n { type: 'openTag', tagName: 'span' },\n { type: 'text', content: \"$$\" + info + (firstChild ? ' ' : '') },\n ]\n : [\n { type: 'text', content: '$$' },\n { type: 'closeTag', tagName: 'span' },\n ];\n },\n};\n\nvar gfmConvertors = {\n strike: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'del',\n };\n },\n item: function (node, _a) {\n var entering = _a.entering;\n var _b = node.listData, checked = _b.checked, task = _b.task;\n if (entering) {\n var itemTag = {\n type: 'openTag',\n tagName: 'li',\n outerNewLine: true,\n };\n if (task) {\n return [\n itemTag,\n {\n type: 'openTag',\n tagName: 'input',\n selfClose: true,\n attributes: __assign(__assign({}, (checked && { checked: '' })), { disabled: '', type: 'checkbox' }),\n },\n {\n type: 'text',\n content: ' ',\n },\n ];\n }\n return itemTag;\n }\n return {\n type: 'closeTag',\n tagName: 'li',\n outerNewLine: true,\n };\n },\n table: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'table',\n outerNewLine: true,\n };\n },\n tableHead: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'thead',\n outerNewLine: true,\n };\n },\n tableBody: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'tbody',\n outerNewLine: true,\n };\n },\n tableRow: function (node, _a) {\n var entering = _a.entering;\n if (entering) {\n return {\n type: 'openTag',\n tagName: 'tr',\n outerNewLine: true,\n };\n }\n var result = [];\n if (node.lastChild) {\n var columnLen = node.parent.parent.columns.length;\n var lastColIdx = node.lastChild.endIdx;\n for (var i = lastColIdx + 1; i < columnLen; i += 1) {\n result.push({\n type: 'openTag',\n tagName: 'td',\n outerNewLine: true,\n }, {\n type: 'closeTag',\n tagName: 'td',\n outerNewLine: true,\n });\n }\n }\n result.push({\n type: 'closeTag',\n tagName: 'tr',\n outerNewLine: true,\n });\n return result;\n },\n tableCell: function (node, _a) {\n var entering = _a.entering;\n if (node.ignored) {\n return {\n type: 'text',\n content: '',\n };\n }\n var tablePart = node.parent.parent;\n var tagName = tablePart.type === 'tableHead' ? 'th' : 'td';\n var table = tablePart.parent;\n var columnInfo = table.columns[node.startIdx];\n var attributes = (columnInfo === null || columnInfo === void 0 ? void 0 : columnInfo.align) ? { align: columnInfo.align } : null;\n if (entering) {\n return __assign({ type: 'openTag', tagName: tagName, outerNewLine: true }, (attributes && { attributes: attributes }));\n }\n return {\n type: 'closeTag',\n tagName: tagName,\n outerNewLine: true,\n };\n },\n};\n\nvar defaultOptions = {\n softbreak: '\\n',\n gfm: false,\n tagFilter: false,\n nodeId: false,\n};\nfunction getChildrenText(node) {\n var buffer = [];\n var walker = node.walker();\n var event = null;\n while ((event = walker.next())) {\n var node_1 = event.node;\n if (node_1.type === 'text') {\n buffer.push(node_1.literal);\n }\n }\n return buffer.join('');\n}\nvar Renderer = /** @class */ (function () {\n function Renderer(customOptions) {\n this.buffer = [];\n this.options = __assign(__assign({}, defaultOptions), customOptions);\n this.convertors = this.createConvertors();\n delete this.options.convertors;\n }\n Renderer.prototype.createConvertors = function () {\n var convertors = __assign({}, baseConvertors$1);\n if (this.options.gfm) {\n convertors = __assign(__assign({}, convertors), gfmConvertors);\n }\n if (this.options.convertors) {\n var customConvertors_1 = this.options.convertors;\n var nodeTypes = Object.keys(customConvertors_1);\n var defaultConvertors_1 = __assign(__assign({}, baseConvertors$1), gfmConvertors);\n nodeTypes.forEach(function (nodeType) {\n var orgConvertor = convertors[nodeType];\n var convertor = customConvertors_1[nodeType];\n var convertorType = Object.keys(defaultConvertors_1).indexOf(nodeType) === -1\n ? nodeType.toLowerCase()\n : nodeType;\n if (orgConvertor) {\n convertors[convertorType] = function (node, context, convertors) {\n context.origin = function () { return orgConvertor(node, context, convertors); };\n return convertor(node, context);\n };\n }\n else {\n convertors[convertorType] = convertor;\n }\n });\n }\n return convertors;\n };\n Renderer.prototype.getConvertors = function () {\n return this.convertors;\n };\n Renderer.prototype.getOptions = function () {\n return this.options;\n };\n Renderer.prototype.render = function (rootNode) {\n var _this = this;\n this.buffer = [];\n var walker = rootNode.walker();\n var event = null;\n var _loop_1 = function () {\n var node = event.node, entering = event.entering;\n var convertor = this_1.convertors[node.type];\n if (!convertor) {\n return \"continue\";\n }\n var skipped = false;\n var context = {\n entering: entering,\n leaf: !isContainer$1(node),\n options: this_1.options,\n getChildrenText: getChildrenText,\n skipChildren: function () {\n skipped = true;\n },\n };\n var converted = isCustomBlock(node) || isCustomInline(node)\n ? convertor(node, context, this_1.convertors)\n : convertor(node, context);\n if (converted) {\n var htmlNodes = Array.isArray(converted) ? converted : [converted];\n htmlNodes.forEach(function (htmlNode, index) {\n if (htmlNode.type === 'openTag' && _this.options.nodeId && index === 0) {\n if (!htmlNode.attributes) {\n htmlNode.attributes = {};\n }\n htmlNode.attributes['data-nodeid'] = String(node.id);\n }\n _this.renderHTMLNode(htmlNode);\n });\n if (skipped) {\n walker.resumeAt(node, false);\n walker.next();\n }\n }\n };\n var this_1 = this;\n while ((event = walker.next())) {\n _loop_1();\n }\n this.addNewLine();\n return this.buffer.join('');\n };\n Renderer.prototype.renderHTMLNode = function (node) {\n switch (node.type) {\n case 'openTag':\n case 'closeTag':\n this.renderElementNode(node);\n break;\n case 'text':\n this.renderTextNode(node);\n break;\n case 'html':\n this.renderRawHtmlNode(node);\n break;\n // no-default-case\n }\n };\n Renderer.prototype.generateOpenTagString = function (node) {\n var _this = this;\n var tagName = node.tagName, classNames = node.classNames, attributes = node.attributes;\n this.buffer.push(\"<\" + tagName);\n if (classNames && classNames.length > 0) {\n this.buffer.push(\" class=\\\"\" + classNames.join(' ') + \"\\\"\");\n }\n if (attributes) {\n Object.keys(attributes).forEach(function (attrName) {\n var attrValue = attributes[attrName];\n _this.buffer.push(\" \" + attrName + \"=\\\"\" + attrValue + \"\\\"\");\n });\n }\n if (node.selfClose) {\n this.buffer.push(' /');\n }\n this.buffer.push('>');\n };\n Renderer.prototype.generateCloseTagString = function (_a) {\n var tagName = _a.tagName;\n this.buffer.push(\"</\" + tagName + \">\");\n };\n Renderer.prototype.addNewLine = function () {\n if (this.buffer.length && last(last(this.buffer)) !== '\\n') {\n this.buffer.push('\\n');\n }\n };\n Renderer.prototype.addOuterNewLine = function (node) {\n if (node.outerNewLine) {\n this.addNewLine();\n }\n };\n Renderer.prototype.addInnerNewLine = function (node) {\n if (node.innerNewLine) {\n this.addNewLine();\n }\n };\n Renderer.prototype.renderTextNode = function (node) {\n this.buffer.push(escapeXml(node.content));\n };\n Renderer.prototype.renderRawHtmlNode = function (node) {\n this.addOuterNewLine(node);\n this.buffer.push(node.content);\n this.addOuterNewLine(node);\n };\n Renderer.prototype.renderElementNode = function (node) {\n if (node.type === 'openTag') {\n this.addOuterNewLine(node);\n this.generateOpenTagString(node);\n if (node.selfClose) {\n this.addOuterNewLine(node);\n }\n else {\n this.addInnerNewLine(node);\n }\n }\n else {\n this.addInnerNewLine(node);\n this.generateCloseTagString(node);\n this.addOuterNewLine(node);\n }\n };\n return Renderer;\n}());\n\n/*! @license DOMPurify 2.3.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.3/LICENSE */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\n\nvar _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n\nif (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\n\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\n\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\n\nif (!construct) {\n construct = function construct(Func, args) {\n return new (Function.prototype.bind.apply(Func, [null].concat(_toConsumableArray(args))))();\n };\n}\n\nvar arrayForEach = unapply(Array.prototype.forEach);\nvar arrayPop = unapply(Array.prototype.pop);\nvar arrayPush = unapply(Array.prototype.push);\n\nvar stringToLowerCase = unapply(String.prototype.toLowerCase);\nvar stringMatch = unapply(String.prototype.match);\nvar stringReplace = unapply(String.prototype.replace);\nvar stringIndexOf = unapply(String.prototype.indexOf);\nvar stringTrim = unapply(String.prototype.trim);\n\nvar regExpTest = unapply(RegExp.prototype.test);\n\nvar typeErrorCreate = unconstruct(TypeError);\n\nfunction unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n}\n\nfunction unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n}\n\n/* Add properties to a lookup table */\nfunction addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n\n/* Shallow clone an object */\nfunction clone(object) {\n var newObject = create(null);\n\n var property = void 0;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n}\n\n/* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n}\n\nvar html$2 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n// SVG\nvar svg = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n\nvar svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nvar svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'feimage', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n\nvar mathMl = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nvar mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n\nvar text = freeze(['#text']);\n\nvar html$1$1 = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\n\nvar svg$1 = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n\nvar mathMl$1 = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n\nvar xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n// eslint-disable-next-line unicorn/better-regex\nvar MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nvar ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\nvar DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\nvar ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nvar IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nvar IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nvar ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\nvar _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\n\nfunction createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.3.3';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n Text = window.Text,\n Comment = window.Comment,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n\n\n var ElementPrototype = Element.prototype;\n\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML('') : '';\n\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n\n\n var documentMode = {};\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(html$2), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray$1(html$1$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml)));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with <html>... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n * `Node` is imported into the current `Document`. If this flag is not enabled the\n * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n * DOMPurify.\n *\n * This defaults to `true` starting DOMPurify 2.2.0. Note that setting it to `false`\n * might cause XSS from attacks hidden in closed shadowroots in case the browser\n * supports Declarative Shadow: DOM https://web.dev/declarative-shadow-dom/\n */\n var RETURN_DOM_IMPORT = true;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n\n /* Parsing of strict XHTML documents */\n var PARSER_MEDIA_TYPE = void 0;\n var SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n var transformCaseFunc = void 0;\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT !== false; // Default true\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? function (x) {\n return x;\n } : stringToLowerCase;\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(text)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$2);\n addToSet(ALLOWED_ATTR, html$1$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n var ALL_SVG_TAGS = addToSet({}, svg);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n\n var ALL_MATHML_TAGS = addToSet({}, mathMl);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: HTML_NAMESPACE,\n tagName: 'template'\n };\n }\n\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erronously deleted from\n // HTML namespace.\n var commonSvgAndHTMLElements = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (commonSvgAndHTMLElements[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG or MathML). Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\n\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml') {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n var body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n var _isClobbered = function _isClobbered(elm) {\n if (elm instanceof Text || elm instanceof Comment) {\n return false;\n }\n\n if (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function') {\n return true;\n }\n\n return false;\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n var _isNode = function _isNode(object) {\n return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? object instanceof Node : object && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content = void 0;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check if tagname contains Unicode */\n if (stringMatch(currentNode.nodeName, /[\\u0080-\\uFFFF]/)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (!_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Mitigate a problem with templates inside select */\n if (tagName === 'select' && regExpTest(/<template/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n var parentNode = getParentNode(currentNode) || currentNode.parentNode;\n var childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n var childCount = childNodes.length;\n\n for (var i = childCount - 1; i >= 0; --i) {\n parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));\n }\n }\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n if ((tagName === 'noscript' || tagName === 'noembed') && regExpTest(/<\\/no(script|embed)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR$$1, ' ');\n content = stringReplace(content, ERB_EXPR$$1, ' ');\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$$1, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n return false;\n\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) ; else if (!value) ; else {\n return false;\n }\n\n return true;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr = void 0;\n var value = void 0;\n var lcName = void 0;\n var l = void 0;\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n var attributes = currentNode.attributes;\n\n /* Check if we have attributes; if not we might have a text node */\n\n if (!attributes) {\n return;\n }\n\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n\n value = stringTrim(attr.value);\n lcName = transformCaseFunc(name);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR$$1, ' ');\n value = stringReplace(value, ERB_EXPR$$1, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n var lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode = void 0;\n var shadowIterator = _createIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg) {\n var body = void 0;\n var importedNode = void 0;\n var currentNode = void 0;\n var oldNode = void 0;\n var returnNode = void 0;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n // eslint-disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'function') {\n throw typeErrorCreate('toString is not a function');\n } else {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n }\n\n /* Check we can run. Otherwise fall back or ignore */\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) ; else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : emptyHTML;\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n\n oldNode = currentNode;\n }\n\n oldNode = null;\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (RETURN_DOM_IMPORT) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$$1, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n var lcTag = transformCaseFunc(tag);\n var lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n}\n\nvar purify = createDOMPurify();\n\nvar CAN_BE_WHITE_TAG_LIST = ['iframe', 'embed'];\nvar whiteTagList = [];\nfunction registerTagWhitelistIfPossible(tagName) {\n if (includes(CAN_BE_WHITE_TAG_LIST, tagName)) {\n whiteTagList.push(tagName.toLowerCase());\n }\n}\nfunction sanitizeHTML(html, options) {\n return purify.sanitize(html, __assign$1({ ADD_TAGS: whiteTagList, ADD_ATTR: ['rel', 'target', 'hreflang', 'type'], FORBID_TAGS: [\n 'input',\n 'script',\n 'textarea',\n 'form',\n 'button',\n 'select',\n 'meta',\n 'style',\n 'link',\n 'title',\n 'object',\n 'base',\n ] }, options));\n}\n\nfunction getChildrenHTML(node, typeName) {\n return node\n .literal.replace(new RegExp(\"(<\\\\s*\" + typeName + \"[^>]*>)|(</\" + typeName + \"\\\\s*[>])\", 'ig'), '')\n .trim();\n}\nfunction getHTMLAttrsByHTMLString(html) {\n html = html.match(reHTMLTag)[0];\n var attrs = html.match(new RegExp(ATTRIBUTE$1, 'g'));\n return attrs\n ? attrs.reduce(function (acc, attr) {\n var _a = attr.trim().split('='), name = _a[0], values = _a.slice(1);\n if (values.length) {\n acc[name] = values.join('=').replace(/'|\"/g, '').trim();\n }\n return acc;\n }, {})\n : {};\n}\nfunction getHTMLAttrs(dom) {\n return toArray_1(dom.attributes).reduce(function (acc, attr) {\n acc[attr.nodeName] = attr.nodeValue;\n return acc;\n }, {});\n}\nfunction sanitizeDOM(node, typeName, sanitizer, wwToDOMAdaptor) {\n var dom = wwToDOMAdaptor.getToDOMNode(typeName)(node);\n var html = sanitizer(dom.outerHTML);\n var container = document.createElement('div');\n container.innerHTML = html;\n dom = container.firstChild;\n var htmlAttrs = getHTMLAttrs(dom);\n return { dom: dom, htmlAttrs: htmlAttrs };\n}\nvar schemaFactory = {\n htmlBlock: function (typeName, sanitizeHTML, wwToDOMAdaptor) {\n return {\n atom: true,\n content: 'block+',\n group: 'block',\n attrs: {\n htmlAttrs: { default: {} },\n childrenHTML: { default: '' },\n htmlBlock: { default: true },\n },\n parseDOM: [\n {\n tag: typeName,\n getAttrs: function (dom) {\n return {\n htmlAttrs: getHTMLAttrs(dom),\n childrenHTML: dom.innerHTML,\n };\n },\n },\n ],\n toDOM: function (node) {\n var _a = sanitizeDOM(node, typeName, sanitizeHTML, wwToDOMAdaptor), dom = _a.dom, htmlAttrs = _a.htmlAttrs;\n htmlAttrs.class = htmlAttrs.class ? htmlAttrs.class + \" html-block\" : 'html-block';\n return __spreadArray$1([typeName, htmlAttrs], toArray_1(dom.childNodes));\n },\n };\n },\n htmlInline: function (typeName, sanitizeHTML, wwToDOMAdaptor) {\n return {\n attrs: {\n htmlAttrs: { default: {} },\n htmlInline: { default: true },\n },\n parseDOM: [\n {\n tag: typeName,\n getAttrs: function (dom) {\n return {\n htmlAttrs: getHTMLAttrs(dom),\n };\n },\n },\n ],\n toDOM: function (node) {\n var htmlAttrs = sanitizeDOM(node, typeName, sanitizeHTML, wwToDOMAdaptor).htmlAttrs;\n return [typeName, htmlAttrs, 0];\n },\n };\n },\n};\nfunction createHTMLSchemaMap(convertorMap, sanitizeHTML, wwToDOMAdaptor) {\n var htmlSchemaMap = { nodes: {}, marks: {} };\n ['htmlBlock', 'htmlInline'].forEach(function (htmlType) {\n if (convertorMap[htmlType]) {\n Object.keys(convertorMap[htmlType]).forEach(function (type) {\n var targetType = htmlType === 'htmlBlock' ? 'nodes' : 'marks';\n // register tag white list for preventing to remove the html in sanitizer\n registerTagWhitelistIfPossible(type);\n htmlSchemaMap[targetType][type] = schemaFactory[htmlType](type, sanitizeHTML, wwToDOMAdaptor);\n });\n }\n });\n return htmlSchemaMap;\n}\n\nvar reCloseTag = /^\\s*<\\s*\\//;\nvar baseConvertors = {\n paragraph: function (_, _a) {\n var entering = _a.entering, origin = _a.origin, options = _a.options;\n if (options.nodeId) {\n return {\n type: entering ? 'openTag' : 'closeTag',\n outerNewLine: true,\n tagName: 'p',\n };\n }\n return origin();\n },\n softbreak: function (node) {\n var isPrevNodeHTML = node.prev && node.prev.type === 'htmlInline';\n var isPrevBR = isPrevNodeHTML && /<br ?\\/?>/.test(node.prev.literal);\n var content = isPrevBR ? '\\n' : '<br>\\n';\n return { type: 'html', content: content };\n },\n item: function (node, _a) {\n var entering = _a.entering;\n if (entering) {\n var attributes = {};\n var classNames = [];\n if (node.listData.task) {\n attributes['data-task'] = '';\n classNames.push('task-list-item');\n if (node.listData.checked) {\n classNames.push('checked');\n attributes['data-task-checked'] = '';\n }\n }\n return {\n type: 'openTag',\n tagName: 'li',\n classNames: classNames,\n attributes: attributes,\n outerNewLine: true,\n };\n }\n return {\n type: 'closeTag',\n tagName: 'li',\n outerNewLine: true,\n };\n },\n code: function (node) {\n var attributes = { 'data-backticks': String(node.tickCount) };\n return [\n { type: 'openTag', tagName: 'code', attributes: attributes },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'code' },\n ];\n },\n codeBlock: function (node) {\n var _a = node, fenceLength = _a.fenceLength, info = _a.info;\n var infoWords = info ? info.split(/\\s+/) : [];\n var preClasses = [];\n var codeAttrs = {};\n if (fenceLength > 3) {\n codeAttrs['data-backticks'] = fenceLength;\n }\n if (infoWords.length > 0 && infoWords[0].length > 0) {\n var lang = infoWords[0];\n preClasses.push(\"lang-\" + lang);\n codeAttrs['data-language'] = lang;\n }\n return [\n { type: 'openTag', tagName: 'pre', classNames: preClasses },\n { type: 'openTag', tagName: 'code', attributes: codeAttrs },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'code' },\n { type: 'closeTag', tagName: 'pre' },\n ];\n },\n customInline: function (node, _a) {\n var origin = _a.origin, entering = _a.entering, skipChildren = _a.skipChildren;\n var info = node.info;\n if (info.indexOf('widget') !== -1 && entering) {\n skipChildren();\n var content = getWidgetContent(node);\n var htmlInline = widgetToDOM(info, content).outerHTML;\n return [\n { type: 'openTag', tagName: 'span', classNames: ['tui-widget'] },\n { type: 'html', content: htmlInline },\n { type: 'closeTag', tagName: 'span' },\n ];\n }\n return origin();\n },\n};\nfunction getHTMLRenderConvertors(linkAttributes, customConvertors) {\n var convertors = __assign$1({}, baseConvertors);\n if (linkAttributes) {\n convertors.link = function (_, _a) {\n var entering = _a.entering, origin = _a.origin;\n var result = origin();\n if (entering) {\n result.attributes = __assign$1(__assign$1({}, result.attributes), linkAttributes);\n }\n return result;\n };\n }\n if (customConvertors) {\n Object.keys(customConvertors).forEach(function (nodeType) {\n var orgConvertor = convertors[nodeType];\n var customConvertor = customConvertors[nodeType];\n if (orgConvertor && isFunction_1(customConvertor)) {\n convertors[nodeType] = function (node, context) {\n var newContext = __assign$1({}, context);\n newContext.origin = function () { return orgConvertor(node, context); };\n return customConvertor(node, newContext);\n };\n }\n else if (includes(['htmlBlock', 'htmlInline'], nodeType) && !isFunction_1(customConvertor)) {\n convertors[nodeType] = function (node, context) {\n var matched = node.literal.match(reHTMLTag);\n if (matched) {\n var rootHTML = matched[0], openTagName = matched[1], closeTagName = matched[3];\n var typeName = (openTagName || closeTagName).toLowerCase();\n var htmlConvertor = customConvertor[typeName];\n var childrenHTML = getChildrenHTML(node, typeName);\n if (htmlConvertor) {\n // copy for preventing to overwrite the originial property\n var newNode = __assign$1({}, node);\n newNode.attrs = getHTMLAttrsByHTMLString(rootHTML);\n newNode.childrenHTML = childrenHTML;\n newNode.type = typeName;\n context.entering = !reCloseTag.test(node.literal);\n return htmlConvertor(newNode, context);\n }\n }\n return context.origin();\n };\n }\n else {\n convertors[nodeType] = customConvertor;\n }\n });\n }\n return convertors;\n}\n\nvar nestableTypes = ['list', 'item', 'blockQuote'];\nvar nestableTagNames = ['UL', 'OL', 'BLOCKQUOTE'];\nfunction isBlankLine(doc, index) {\n var _a;\n var pmNode = doc.child(index);\n return !pmNode.childCount || (pmNode.childCount === 1 && !((_a = pmNode.firstChild.text) === null || _a === void 0 ? void 0 : _a.trim()));\n}\nfunction getEditorRangeHeightInfo(doc, mdNode, children) {\n var start = getMdStartLine(mdNode) - 1;\n var end = getMdEndLine(mdNode) - 1;\n var rect = children[start].getBoundingClientRect();\n var height = children[end].offsetTop -\n children[start].offsetTop +\n children[end].clientHeight;\n return {\n height: height <= 0\n ? children[start].clientHeight\n : height + getBlankLinesHeight(doc, children, Math.min(end + 1, doc.childCount - 1)),\n rect: rect,\n };\n}\nfunction getBlankLinesHeight(doc, children, start) {\n var end = doc.childCount - 1;\n var height = 0;\n while (start <= end && isBlankLine(doc, start)) {\n height += children[start].clientHeight;\n start += 1;\n }\n return height;\n}\nfunction findAncestorHavingId(el, root) {\n while (!el.getAttribute('data-nodeid') && el.parentElement !== root) {\n el = el.parentElement;\n }\n return el;\n}\nfunction getTotalOffsetTop(el, root) {\n var offsetTop = 0;\n while (el && el !== root) {\n if (!includes(nestableTagNames, el.tagName)) {\n offsetTop += el.offsetTop;\n }\n if (el.offsetParent === root.offsetParent) {\n break;\n }\n el = el.parentElement;\n }\n return offsetTop;\n}\nfunction findAdjacentElementToScrollTop(scrollTop, root) {\n var el = root;\n var prev = null;\n while (el) {\n var firstElementChild = el.firstElementChild;\n if (!firstElementChild) {\n break;\n }\n var lastSibling = findLastSiblingElementToScrollTop(firstElementChild, scrollTop, getTotalOffsetTop(el, root));\n prev = el;\n el = lastSibling;\n }\n var adjacentEl = el || prev;\n return adjacentEl === root ? null : adjacentEl;\n}\nfunction findLastSiblingElementToScrollTop(el, scrollTop, offsetTop) {\n if (el && scrollTop > offsetTop + el.offsetTop) {\n return (findLastSiblingElementToScrollTop(el.nextElementSibling, scrollTop, offsetTop) || el);\n }\n return null;\n}\nfunction getAdditionalPos(scrollTop, offsetTop, height, targetNodeHeight) {\n var ratio = Math.min((scrollTop - offsetTop) / height, 1);\n return ratio * targetNodeHeight;\n}\nfunction getParentNodeObj(previewContent, mdNode) {\n var el = previewContent.querySelector(\"[data-nodeid=\\\"\" + mdNode.id + \"\\\"]\");\n while (!el || isStyledInlineNode(mdNode)) {\n mdNode = mdNode.parent;\n el = previewContent.querySelector(\"[data-nodeid=\\\"\" + mdNode.id + \"\\\"]\");\n }\n return getNonNestableNodeObj({ mdNode: mdNode, el: el });\n}\nfunction getNonNestableNodeObj(_a) {\n var mdNode = _a.mdNode, el = _a.el;\n while ((includes(nestableTypes, mdNode.type) || mdNode.type === 'table') && mdNode.firstChild) {\n mdNode = mdNode.firstChild;\n el = el.firstElementChild;\n }\n return { mdNode: mdNode, el: el };\n}\n\nvar offsetInfoMap = {};\nfunction setHeight(id, height) {\n offsetInfoMap[id] = offsetInfoMap[id] || {};\n offsetInfoMap[id].height = height;\n}\nfunction setOffsetTop(id, offsetTop) {\n offsetInfoMap[id] = offsetInfoMap[id] || {};\n offsetInfoMap[id].offsetTop = offsetTop;\n}\nfunction getHeight(id) {\n return offsetInfoMap[id] && offsetInfoMap[id].height;\n}\nfunction getOffsetTop(id) {\n return offsetInfoMap[id] && offsetInfoMap[id].offsetTop;\n}\nfunction removeOffsetInfoByNode(node) {\n if (node) {\n delete offsetInfoMap[Number(node.getAttribute('data-nodeid'))];\n toArray_1(node.children).forEach(function (child) {\n removeOffsetInfoByNode(child);\n });\n }\n}\nfunction getAndSaveOffsetInfo(node, root, mdNodeId) {\n var cachedHeight = getHeight(mdNodeId);\n var cachedTop = getOffsetTop(mdNodeId);\n var nodeHeight = cachedHeight || node.clientHeight;\n var offsetTop = cachedTop || getTotalOffsetTop(node, root) || node.offsetTop;\n if (!cachedHeight) {\n setHeight(mdNodeId, nodeHeight);\n }\n if (!cachedTop) {\n setOffsetTop(mdNodeId, offsetTop);\n }\n return { nodeHeight: nodeHeight, offsetTop: offsetTop };\n}\n\nvar CLASS_HIGHLIGHT = cls('md-preview-highlight');\nfunction findTableCell(tableRow, chOffset) {\n var cell = tableRow.firstChild;\n while (cell && cell.next) {\n if (getMdStartCh(cell.next) > chOffset + 1) {\n break;\n }\n cell = cell.next;\n }\n return cell;\n}\n/**\n * Class Markdown Preview\n * @param {HTMLElement} el - base element\n * @param {eventEmitter} eventEmitter - event manager\n * @param {object} options\n * @param {boolean} options.isViewer - true for view-only mode\n * @param {boolean} options.highlight - true for using live-highlight feature\n * @param {object} opitons.linkAttributes - attributes for link element\n * @param {object} opitons.customHTMLRenderer - map of custom HTML render functions\n *\n * @ignore\n */\nvar MarkdownPreview = /** @class */ (function () {\n function MarkdownPreview(eventEmitter, options) {\n var el = document.createElement('div');\n this.el = el;\n this.eventEmitter = eventEmitter;\n this.isViewer = !!options.isViewer;\n this.el.className = cls('md-preview');\n var linkAttributes = options.linkAttributes, customHTMLRenderer = options.customHTMLRenderer, sanitizer = options.sanitizer, _a = options.highlight, highlight = _a === void 0 ? false : _a;\n this.renderer = new Renderer({\n gfm: true,\n nodeId: true,\n convertors: getHTMLRenderConvertors(linkAttributes, customHTMLRenderer),\n });\n this.cursorNodeId = null;\n this.sanitizer = sanitizer;\n this.initEvent(highlight);\n this.initContentSection();\n // To prevent overflowing contents in the viewer\n if (this.isViewer) {\n this.previewContent.style.overflowWrap = 'break-word';\n }\n }\n MarkdownPreview.prototype.initContentSection = function () {\n this.previewContent = createElementWith(\"<div class=\\\"\" + cls('contents') + \"\\\"></div>\");\n if (!this.isViewer) {\n this.el.appendChild(this.previewContent);\n }\n };\n MarkdownPreview.prototype.toggleActive = function (active) {\n toggleClass(this.el, 'active', active);\n };\n MarkdownPreview.prototype.initEvent = function (highlight) {\n var _this = this;\n this.eventEmitter.listen('updatePreview', this.update.bind(this));\n if (this.isViewer) {\n return;\n }\n if (highlight) {\n this.eventEmitter.listen('changeToolbarState', function (_a) {\n var mdNode = _a.mdNode, cursorPos = _a.cursorPos;\n _this.updateCursorNode(mdNode, cursorPos);\n });\n this.eventEmitter.listen('blur', function () {\n _this.removeHighlight();\n });\n }\n on_1(this.el, 'scroll', function (event) {\n _this.eventEmitter.emit('scroll', 'preview', findAdjacentElementToScrollTop(event.target.scrollTop, _this.previewContent));\n });\n this.eventEmitter.listen('changePreviewTabPreview', function () { return _this.toggleActive(true); });\n this.eventEmitter.listen('changePreviewTabWrite', function () { return _this.toggleActive(false); });\n };\n MarkdownPreview.prototype.removeHighlight = function () {\n if (this.cursorNodeId) {\n var currentEl = this.getElementByNodeId(this.cursorNodeId);\n if (currentEl) {\n removeClass_1(currentEl, CLASS_HIGHLIGHT);\n }\n }\n };\n MarkdownPreview.prototype.updateCursorNode = function (cursorNode, cursorPos) {\n if (cursorNode) {\n cursorNode = findClosestNode(cursorNode, function (mdNode) { return !isInlineNode$1(mdNode); });\n if (cursorNode.type === 'tableRow') {\n cursorNode = findTableCell(cursorNode, cursorPos[1]);\n }\n else if (cursorNode.type === 'tableBody') {\n // empty line next to table\n cursorNode = null;\n }\n }\n var cursorNodeId = cursorNode ? cursorNode.id : null;\n if (this.cursorNodeId === cursorNodeId) {\n return;\n }\n var oldEL = this.getElementByNodeId(this.cursorNodeId);\n var newEL = this.getElementByNodeId(cursorNodeId);\n if (oldEL) {\n removeClass_1(oldEL, CLASS_HIGHLIGHT);\n }\n if (newEL) {\n addClass_1(newEL, CLASS_HIGHLIGHT);\n }\n this.cursorNodeId = cursorNodeId;\n };\n MarkdownPreview.prototype.getElementByNodeId = function (nodeId) {\n return nodeId\n ? this.previewContent.querySelector(\"[data-nodeid=\\\"\" + nodeId + \"\\\"]\")\n : null;\n };\n MarkdownPreview.prototype.update = function (changed) {\n var _this = this;\n changed.forEach(function (editResult) { return _this.replaceRangeNodes(editResult); });\n this.eventEmitter.emit('afterPreviewRender', this);\n };\n MarkdownPreview.prototype.replaceRangeNodes = function (editResult) {\n var _this = this;\n var nodes = editResult.nodes, removedNodeRange = editResult.removedNodeRange;\n var contentEl = this.previewContent;\n var newHtml = this.eventEmitter.emitReduce('beforePreviewRender', this.sanitizer(nodes.map(function (node) { return _this.renderer.render(node); }).join('')));\n if (!removedNodeRange) {\n contentEl.insertAdjacentHTML('afterbegin', newHtml);\n }\n else {\n var _a = removedNodeRange.id, startNodeId = _a[0], endNodeId = _a[1];\n var startEl = this.getElementByNodeId(startNodeId);\n var endEl = this.getElementByNodeId(endNodeId);\n if (startEl) {\n startEl.insertAdjacentHTML('beforebegin', newHtml);\n var el = startEl;\n while (el && el !== endEl) {\n var nextEl = el.nextElementSibling;\n removeNode$1(el);\n removeOffsetInfoByNode(el);\n el = nextEl;\n }\n if (el === null || el === void 0 ? void 0 : el.parentNode) {\n removeNode$1(el);\n removeOffsetInfoByNode(el);\n }\n }\n }\n };\n MarkdownPreview.prototype.getRenderer = function () {\n return this.renderer;\n };\n MarkdownPreview.prototype.destroy = function () {\n off_1(this.el, 'scroll');\n this.el = null;\n };\n MarkdownPreview.prototype.getElement = function () {\n return this.el;\n };\n MarkdownPreview.prototype.getHTML = function () {\n return removeProseMirrorHackNodes(this.previewContent.innerHTML);\n };\n MarkdownPreview.prototype.setHTML = function (html) {\n this.previewContent.innerHTML = html;\n };\n MarkdownPreview.prototype.setHeight = function (height) {\n css_1(this.el, { height: height + \"px\" });\n };\n MarkdownPreview.prototype.setMinHeight = function (minHeight) {\n css_1(this.el, { minHeight: minHeight + \"px\" });\n };\n return MarkdownPreview;\n}());\n\nfunction findNodeBy(pos, condition) {\n var depth = pos.depth;\n while (depth) {\n var node = pos.node(depth);\n if (condition(node, depth)) {\n return {\n node: node,\n depth: depth,\n offset: depth > 0 ? pos.before(depth) : 0,\n };\n }\n depth -= 1;\n }\n return null;\n}\nfunction isInListNode(pos) {\n return !!findNodeBy(pos, function (_a) {\n var type = _a.type;\n return type.name === 'listItem' || type.name === 'bulletList' || type.name === 'orderedList';\n });\n}\nfunction isInTableNode(pos) {\n return !!findNodeBy(pos, function (_a) {\n var type = _a.type;\n return type.name === 'tableHeadCell' || type.name === 'tableBodyCell';\n });\n}\nfunction findListItem(pos) {\n return findNodeBy(pos, function (_a) {\n var type = _a.type;\n return type.name === 'listItem';\n });\n}\nfunction createDOMInfoParsedRawHTML(tag) {\n return {\n tag: tag,\n getAttrs: function (dom) {\n var rawHTML = dom.getAttribute('data-raw-html');\n return __assign$1({}, (rawHTML && { rawHTML: rawHTML }));\n },\n };\n}\nfunction createCellAttrs(attrs) {\n return Object.keys(attrs).reduce(function (acc, attrName) {\n if (attrName !== 'rawHTML' && attrs[attrName]) {\n attrName = attrName === 'className' ? 'class' : attrName;\n acc[attrName] = attrs[attrName];\n }\n return acc;\n }, {});\n}\nfunction createParsedCellDOM(tag) {\n return {\n tag: tag,\n getAttrs: function (dom) {\n return ['rawHTML', 'colspan', 'rowspan', 'extended'].reduce(function (acc, attrName) {\n var attrNameInDOM = attrName === 'rawHTML' ? 'data-raw-html' : attrName;\n var attrValue = dom.getAttribute(attrNameInDOM);\n if (attrValue) {\n acc[attrName] = includes(['rawHTML', 'extended'], attrName)\n ? attrValue\n : Number(attrValue);\n }\n return acc;\n }, {});\n },\n };\n}\nfunction getDefaultCustomAttrs() {\n return {\n htmlAttrs: { default: null },\n classNames: { default: null },\n };\n}\nfunction getCustomAttrs(attrs) {\n var htmlAttrs = attrs.htmlAttrs, classNames = attrs.classNames;\n return __assign$1(__assign$1({}, htmlAttrs), { class: classNames ? classNames.join(' ') : null });\n}\n\nfunction findWrappingOutside(range, type) {\n var parent = range.parent, startIndex = range.startIndex, endIndex = range.endIndex;\n var around = parent.contentMatchAt(startIndex).findWrapping(type);\n if (around) {\n var outer = around.length ? around[0] : type;\n return parent.canReplaceWith(startIndex, endIndex, outer) ? around : null;\n }\n return null;\n}\nfunction findWrappingInside(range, type) {\n var parent = range.parent, startIndex = range.startIndex, endIndex = range.endIndex;\n var inner = parent.child(startIndex);\n var inside = type.contentMatch.findWrapping(inner.type);\n if (inside) {\n var lastType = inside.length ? inside[inside.length - 1] : type;\n var innerMatch = lastType.contentMatch;\n for (var i = startIndex; innerMatch && i < endIndex; i += 1) {\n innerMatch = innerMatch.matchType(parent.child(i).type);\n }\n if (innerMatch && innerMatch.validEnd) {\n return inside;\n }\n }\n return null;\n}\nfunction findWrappers(range, innerRange, nodeType, attrs) {\n var around = findWrappingOutside(range, nodeType);\n var inner = findWrappingInside(innerRange, nodeType);\n if (around && inner) {\n var aroundNodes = around.map(function (type) {\n return { type: type };\n });\n var innerNodes = inner.map(function (type) {\n return { type: type, attrs: attrs };\n });\n return aroundNodes.concat({ type: nodeType }).concat(innerNodes);\n }\n return null;\n}\nfunction wrapInList(tr, _a, wrappers, joinBefore, list) {\n var start = _a.start, end = _a.end, startIndex = _a.startIndex, endIndex = _a.endIndex, parent = _a.parent;\n var content = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty;\n for (var i = wrappers.length - 1; i >= 0; i -= 1) {\n content = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(wrappers[i].type.create(wrappers[i].attrs, content));\n }\n tr.step(new prosemirror_transform__WEBPACK_IMPORTED_MODULE_2__[\"ReplaceAroundStep\"](start - (joinBefore ? 2 : 0), end, start, end, new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](content, 0, 0), wrappers.length, true));\n var foundListIndex = 0;\n for (var i = 0; i < wrappers.length; i += 1) {\n if (wrappers[i].type === list) {\n foundListIndex = i + 1;\n break;\n }\n }\n var splitDepth = wrappers.length - foundListIndex;\n var splitPos = start + wrappers.length - (joinBefore ? 2 : 0);\n for (var i = startIndex, len = endIndex; i < len; i += 1) {\n var first = i === startIndex;\n if (!first && Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_2__[\"canSplit\"])(tr.doc, splitPos, splitDepth)) {\n tr.split(splitPos, splitDepth);\n splitPos += splitDepth * 2;\n }\n splitPos += parent.child(i).nodeSize;\n }\n return tr;\n}\nfunction changeToList(tr, range, list, attrs) {\n var $from = range.$from, $to = range.$to, depth = range.depth;\n var outerRange = range;\n var joinBefore = false;\n if (depth >= 2 &&\n $from.node(depth - 1).type.compatibleContent(list) &&\n range.startIndex === 0 &&\n $from.index(depth - 1)) {\n var start = tr.doc.resolve(range.start - 2);\n outerRange = new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"NodeRange\"](start, start, depth);\n if (range.endIndex < range.parent.childCount) {\n range = new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"NodeRange\"]($from, tr.doc.resolve($to.end(depth)), depth);\n }\n joinBefore = true;\n }\n var wrappers = findWrappers(outerRange, range, list, attrs);\n if (wrappers) {\n return wrapInList(tr, range, wrappers, joinBefore, list);\n }\n return tr;\n}\nfunction getBeforeLineListItem(doc, offset) {\n var endListItemPos = doc.resolve(offset);\n while (endListItemPos.node().type.name !== 'paragraph') {\n offset -= 2; // The position value of </li></ul>\n endListItemPos = doc.resolve(offset);\n }\n return findListItem(endListItemPos);\n}\nfunction toggleTaskListItems(tr, _a) {\n var $from = _a.$from, $to = _a.$to;\n var startListItem = findListItem($from);\n var endListItem = findListItem($to);\n if (startListItem && endListItem) {\n while (endListItem) {\n var offset = endListItem.offset, node = endListItem.node;\n var attrs = { task: !node.attrs.task, checked: false };\n tr.setNodeMarkup(offset, null, attrs);\n if (offset === startListItem.offset) {\n break;\n }\n endListItem = getBeforeLineListItem(tr.doc, offset);\n }\n }\n return tr;\n}\nfunction changeListType(tr, _a, list) {\n var $from = _a.$from, $to = _a.$to;\n var startListItem = findListItem($from);\n var endListItem = findListItem($to);\n if (startListItem && endListItem) {\n while (endListItem) {\n var offset = endListItem.offset, node = endListItem.node, depth = endListItem.depth;\n if (node.attrs.task) {\n tr.setNodeMarkup(offset, null, { task: false, checked: false });\n }\n var resolvedPos = tr.doc.resolve(offset);\n if (resolvedPos.parent.type !== list) {\n var parentOffset = resolvedPos.before(depth - 1);\n tr.setNodeMarkup(parentOffset, list);\n }\n if (offset === startListItem.offset) {\n break;\n }\n endListItem = getBeforeLineListItem(tr.doc, offset);\n }\n }\n return tr;\n}\nfunction changeList(list) {\n return function (_a, dispatch) {\n var selection = _a.selection, tr = _a.tr;\n var $from = selection.$from, $to = selection.$to;\n var range = $from.blockRange($to);\n if (range) {\n var newTr = isInListNode($from)\n ? changeListType(tr, range, list)\n : changeToList(tr, range, list);\n dispatch(newTr);\n return true;\n }\n return false;\n };\n}\nfunction toggleTask() {\n return function (_a, dispatch) {\n var selection = _a.selection, tr = _a.tr, schema = _a.schema;\n var $from = selection.$from, $to = selection.$to;\n var range = $from.blockRange($to);\n if (range) {\n var newTr = isInListNode($from)\n ? toggleTaskListItems(tr, range)\n : changeToList(tr, range, schema.nodes.bulletList, { task: true });\n dispatch(newTr);\n return true;\n }\n return false;\n };\n}\nfunction sinkListItem(listItem) {\n return function (_a, dispatch) {\n var tr = _a.tr, selection = _a.selection;\n var $from = selection.$from, $to = selection.$to;\n var range = $from.blockRange($to, function (_a) {\n var childCount = _a.childCount, firstChild = _a.firstChild;\n return !!childCount && firstChild.type === listItem;\n });\n if (range && range.startIndex > 0) {\n var parent_1 = range.parent;\n var nodeBefore = parent_1.child(range.startIndex - 1);\n if (nodeBefore.type !== listItem) {\n return false;\n }\n var nestedBefore = nodeBefore.lastChild && nodeBefore.lastChild.type === parent_1.type;\n var inner = nestedBefore ? prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(listItem.create()) : null;\n var slice = new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(listItem.create(null, prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(parent_1.type.create(null, inner)))), nestedBefore ? 3 : 1, 0);\n var before = range.start;\n var after = range.end;\n tr.step(new prosemirror_transform__WEBPACK_IMPORTED_MODULE_2__[\"ReplaceAroundStep\"](before - (nestedBefore ? 3 : 1), after, before, after, slice, 1, true));\n dispatch(tr);\n return true;\n }\n return false;\n };\n}\nfunction liftToOuterList(tr, range, listItem) {\n var $from = range.$from, $to = range.$to, end = range.end, depth = range.depth, parent = range.parent;\n var endOfList = $to.end(depth);\n if (end < endOfList) {\n // There are siblings after the lifted items, which must become\n // children of the last item\n tr.step(new prosemirror_transform__WEBPACK_IMPORTED_MODULE_2__[\"ReplaceAroundStep\"](end - 1, endOfList, end, endOfList, new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(listItem.create(null, parent.copy())), 1, 0), 1, true));\n range = new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"NodeRange\"](tr.doc.resolve($from.pos), tr.doc.resolve(endOfList), depth);\n }\n tr.lift(range, Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_2__[\"liftTarget\"])(range));\n return tr;\n}\nfunction liftOutOfList(tr, range) {\n var list = range.parent;\n var pos = range.end;\n // Merge the list items into a single big item\n for (var i = range.endIndex - 1, len = range.startIndex; i > len; i -= 1) {\n pos -= list.child(i).nodeSize;\n tr.delete(pos - 1, pos + 1);\n }\n var startPos = tr.doc.resolve(range.start);\n var listItem = startPos.nodeAfter;\n var atStart = range.startIndex === 0;\n var atEnd = range.endIndex === list.childCount;\n var parent = startPos.node(-1);\n var indexBefore = startPos.index(-1);\n var canReplaceParent = parent.canReplace(indexBefore + (atStart ? 0 : 1), indexBefore + 1, listItem === null || listItem === void 0 ? void 0 : listItem.content.append(atEnd ? prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty : prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(list)));\n if (listItem && canReplaceParent) {\n var start = startPos.pos;\n var end = start + listItem.nodeSize;\n // Strip off the surrounding list. At the sides where we're not at\n // the end of the list, the existing list is closed. At sides where\n // this is the end, it is overwritten to its end.\n tr.step(new prosemirror_transform__WEBPACK_IMPORTED_MODULE_2__[\"ReplaceAroundStep\"](start - (atStart ? 1 : 0), end + (atEnd ? 1 : 0), start + 1, end - 1, new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"]((atStart ? prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty : prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(list.copy(prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty))).append(atEnd ? prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty : prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(list.copy(prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty))), atStart ? 0 : 1, atEnd ? 0 : 1), atStart ? 0 : 1));\n }\n return tr;\n}\nfunction liftListItem(listItem) {\n return function (_a, dispatch) {\n var tr = _a.tr, selection = _a.selection;\n var $from = selection.$from, $to = selection.$to;\n var range = $from.blockRange($to, function (_a) {\n var childCount = _a.childCount, firstChild = _a.firstChild;\n return !!childCount && firstChild.type === listItem;\n });\n if (range) {\n var topListItem = $from.node(range.depth - 1).type === listItem;\n var newTr = topListItem ? liftToOuterList(tr, range, listItem) : liftOutOfList(tr, range);\n dispatch(newTr);\n return true;\n }\n return false;\n };\n}\nfunction splitListItem(listItem) {\n return function (_a, dispatch) {\n var tr = _a.tr, selection = _a.selection;\n var $from = selection.$from, $to = selection.$to;\n if ($from.depth < 2 || !$from.sameParent($to)) {\n return false;\n }\n var grandParent = $from.node(-1);\n if (grandParent.type !== listItem) {\n return false;\n }\n if ($from.parent.content.size === 0 && $from.node(-1).childCount === $from.indexAfter(-1)) {\n // In an empty block. If this is a nested list, the wrapping\n // list item should be split. Otherwise, bail out and let next\n // command handle lifting.\n if ($from.depth === 2 ||\n $from.node(-3).type !== listItem ||\n $from.index(-2) !== $from.node(-2).childCount - 1) {\n return false;\n }\n var keepItem = $from.index(-1) > 0;\n var wrapper = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty;\n // Build a fragment containing empty versions of the structure\n // from the outer list item to the parent node of the cursor\n for (var depth = $from.depth - (keepItem ? 1 : 2); depth >= $from.depth - 3; depth -= 1) {\n wrapper = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from($from.node(depth).copy(wrapper));\n }\n // Add a second list item with an empty default start node\n wrapper = wrapper.append(prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(listItem.createAndFill()));\n tr.replace(keepItem ? $from.before() : $from.before(-1), $from.after(-3), new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](wrapper, keepItem ? 3 : 2, 2));\n tr.setSelection(prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Selection\"].near(tr.doc.resolve($from.pos + (keepItem ? 3 : 2))));\n dispatch(tr);\n return true;\n }\n var nextType = $to.pos === $from.end() ? grandParent.contentMatchAt(0).defaultType : null;\n var types = nextType && [null, { type: nextType }];\n tr.delete($from.pos, $to.pos);\n if (Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_2__[\"canSplit\"])(tr.doc, $from.pos, 2, types)) {\n tr.split($from.pos, 2, types);\n dispatch(tr);\n return true;\n }\n return false;\n };\n}\n\nfunction indent() {\n return function () { return function (state, dispatch) {\n var selection = state.selection, schema = state.schema;\n var $from = selection.$from, $to = selection.$to;\n var range = $from.blockRange($to);\n if (range && isInListNode($from)) {\n return sinkListItem(schema.nodes.listItem)(state, dispatch);\n }\n return false;\n }; };\n}\nfunction outdent() {\n return function () { return function (state, dispatch) {\n var selection = state.selection, schema = state.schema;\n var $from = selection.$from, $to = selection.$to;\n var range = $from.blockRange($to);\n if (range && isInListNode($from)) {\n return liftListItem(schema.nodes.listItem)(state, dispatch);\n }\n return false;\n }; };\n}\nfunction getWwCommands() {\n return {\n indent: indent(),\n outdent: outdent(),\n };\n}\n\nvar cache = new Map();\n/* eslint-disable @typescript-eslint/no-unused-vars */\nvar TableOffsetMap = /** @class */ (function () {\n function TableOffsetMap(table, tableRows, tableStartPos, rowInfo) {\n this.table = table;\n this.tableRows = tableRows;\n this.tableStartPos = tableStartPos;\n this.rowInfo = rowInfo;\n }\n TableOffsetMap.create = function (cellPos) {\n var table = findNodeBy(cellPos, function (_a) {\n var type = _a.type;\n return type.name === 'table';\n });\n if (table) {\n var node = table.node, depth = table.depth, offset = table.offset;\n var cached = cache.get(node);\n if ((cached === null || cached === void 0 ? void 0 : cached.tableStartPos) === offset + 1) {\n return cached;\n }\n var rows_1 = [];\n var tablePos = cellPos.start(depth);\n var thead = node.child(0);\n var tbody = node.child(1);\n var theadCellInfo = createOffsetMap(thead, tablePos);\n var tbodyCellInfo = createOffsetMap(tbody, tablePos + thead.nodeSize);\n thead.forEach(function (row) { return rows_1.push(row); });\n tbody.forEach(function (row) { return rows_1.push(row); });\n var map = new TableOffsetMap(node, rows_1, tablePos, theadCellInfo.concat(tbodyCellInfo));\n cache.set(node, map);\n return map;\n }\n return null;\n };\n Object.defineProperty(TableOffsetMap.prototype, \"totalRowCount\", {\n get: function () {\n return this.rowInfo.length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TableOffsetMap.prototype, \"totalColumnCount\", {\n get: function () {\n return this.rowInfo[0].length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TableOffsetMap.prototype, \"tableStartOffset\", {\n get: function () {\n return this.tableStartPos;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TableOffsetMap.prototype, \"tableEndOffset\", {\n get: function () {\n return this.tableStartPos + this.table.nodeSize - 1;\n },\n enumerable: false,\n configurable: true\n });\n TableOffsetMap.prototype.getCellInfo = function (rowIdx, colIdx) {\n return this.rowInfo[rowIdx][colIdx];\n };\n TableOffsetMap.prototype.posAt = function (rowIdx, colIdx) {\n for (var i = 0, rowStart = this.tableStartPos;; i += 1) {\n var rowEnd = rowStart + this.tableRows[i].nodeSize;\n if (i === rowIdx) {\n var index = colIdx;\n // Skip the cells from previous row(via rowspan)\n while (index < this.totalColumnCount && this.rowInfo[i][index].offset < rowStart) {\n index += 1;\n }\n return index === this.totalColumnCount ? rowEnd : this.rowInfo[i][index].offset;\n }\n rowStart = rowEnd;\n }\n };\n TableOffsetMap.prototype.getNodeAndPos = function (rowIdx, colIdx) {\n var cellInfo = this.rowInfo[rowIdx][colIdx];\n return {\n node: this.table.nodeAt(cellInfo.offset - this.tableStartOffset),\n pos: cellInfo.offset,\n };\n };\n TableOffsetMap.prototype.extendedRowspan = function (rowIdx, colIdx) {\n return false;\n };\n TableOffsetMap.prototype.extendedColspan = function (rowIdx, colIdx) {\n return false;\n };\n TableOffsetMap.prototype.getRowspanCount = function (rowIdx, colIdx) {\n return 0;\n };\n TableOffsetMap.prototype.getColspanCount = function (rowIdx, colIdx) {\n return 0;\n };\n TableOffsetMap.prototype.decreaseColspanCount = function (rowIdx, colIdx) {\n return 0;\n };\n TableOffsetMap.prototype.decreaseRowspanCount = function (rowIdx, colIdx) {\n return 0;\n };\n TableOffsetMap.prototype.getColspanStartInfo = function (rowIdx, colIdx) {\n return null;\n };\n TableOffsetMap.prototype.getRowspanStartInfo = function (rowIdx, colIdx) {\n return null;\n };\n TableOffsetMap.prototype.getCellStartOffset = function (rowIdx, colIdx) {\n var offset = this.rowInfo[rowIdx][colIdx].offset;\n return this.extendedRowspan(rowIdx, colIdx) ? this.posAt(rowIdx, colIdx) : offset;\n };\n TableOffsetMap.prototype.getCellEndOffset = function (rowIdx, colIdx) {\n var _a = this.rowInfo[rowIdx][colIdx], offset = _a.offset, nodeSize = _a.nodeSize;\n return this.extendedRowspan(rowIdx, colIdx) ? this.posAt(rowIdx, colIdx) : offset + nodeSize;\n };\n TableOffsetMap.prototype.getCellIndex = function (cellPos) {\n for (var rowIdx = 0; rowIdx < this.totalRowCount; rowIdx += 1) {\n var rowInfo = this.rowInfo[rowIdx];\n for (var colIdx = 0; colIdx < this.totalColumnCount; colIdx += 1) {\n if (rowInfo[colIdx].offset + 1 > cellPos.pos) {\n return [rowIdx, colIdx];\n }\n }\n }\n return [0, 0];\n };\n TableOffsetMap.prototype.getRectOffsets = function (startCellPos, endCellPos) {\n var _a, _b, _c;\n if (endCellPos === void 0) { endCellPos = startCellPos; }\n if (startCellPos.pos > endCellPos.pos) {\n _a = [endCellPos, startCellPos], startCellPos = _a[0], endCellPos = _a[1];\n }\n var _d = this.getCellIndex(startCellPos), startRowIdx = _d[0], startColIdx = _d[1];\n var _e = this.getCellIndex(endCellPos), endRowIdx = _e[0], endColIdx = _e[1];\n _b = getSortedNumPair(startRowIdx, endRowIdx), startRowIdx = _b[0], endRowIdx = _b[1];\n _c = getSortedNumPair(startColIdx, endColIdx), startColIdx = _c[0], endColIdx = _c[1];\n return this.getSpannedOffsets({ startRowIdx: startRowIdx, startColIdx: startColIdx, endRowIdx: endRowIdx, endColIdx: endColIdx });\n };\n TableOffsetMap.prototype.getSpannedOffsets = function (selectionInfo) {\n return selectionInfo;\n };\n return TableOffsetMap;\n}());\n/* eslint-enable @typescript-eslint/no-unused-vars */\nvar createOffsetMap = function (headOrBody, startOffset) {\n var cellInfoMatrix = [];\n headOrBody.forEach(function (row, rowOffset) {\n // get row index based on table(not table head or table body)\n var rowInfo = { rowspanMap: {}, colspanMap: {}, length: 0 };\n row.forEach(function (_a, cellOffset) {\n var nodeSize = _a.nodeSize;\n var colIdx = 0;\n while (rowInfo[colIdx]) {\n colIdx += 1;\n }\n rowInfo[colIdx] = {\n // 2 is the sum of the front and back positions of the tag\n offset: startOffset + rowOffset + cellOffset + 2,\n nodeSize: nodeSize,\n };\n rowInfo.length += 1;\n });\n cellInfoMatrix.push(rowInfo);\n });\n return cellInfoMatrix;\n};\nfunction mixinTableOffsetMapPrototype(offsetMapMixin, createOffsetMapMixin) {\n assign(TableOffsetMap.prototype, offsetMapMixin);\n createOffsetMap = createOffsetMapMixin;\n return TableOffsetMap;\n}\n\nfunction getSelectionRanges(doc, map, _a) {\n var startRowIdx = _a.startRowIdx, startColIdx = _a.startColIdx, endRowIdx = _a.endRowIdx, endColIdx = _a.endColIdx;\n var ranges = [];\n for (var rowIdx = startRowIdx; rowIdx <= endRowIdx; rowIdx += 1) {\n for (var colIdx = startColIdx; colIdx <= endColIdx; colIdx += 1) {\n var _b = map.getCellInfo(rowIdx, colIdx), offset = _b.offset, nodeSize = _b.nodeSize;\n ranges.push(new prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"SelectionRange\"](doc.resolve(offset + 1), doc.resolve(offset + nodeSize - 1)));\n }\n }\n return ranges;\n}\nfunction createTableFragment(tableHead, tableBody) {\n var fragment = [];\n if (tableHead.childCount) {\n fragment.push(tableHead);\n }\n if (tableBody.childCount) {\n fragment.push(tableBody);\n }\n return prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(fragment);\n}\nvar CellSelection = /** @class */ (function (_super) {\n __extends$1(CellSelection, _super);\n function CellSelection(startCellPos, endCellPos) {\n if (endCellPos === void 0) { endCellPos = startCellPos; }\n var _this = this;\n var doc = startCellPos.node(0);\n var map = TableOffsetMap.create(startCellPos);\n var selectionInfo = map.getRectOffsets(startCellPos, endCellPos);\n var ranges = getSelectionRanges(doc, map, selectionInfo);\n _this = _super.call(this, ranges[0].$from, ranges[0].$to, ranges) || this;\n _this.startCell = startCellPos;\n _this.endCell = endCellPos;\n _this.offsetMap = map;\n _this.isCellSelection = true;\n // This property is the api of the 'Selection' in prosemirror,\n // and is used to disable the text selection.\n _this.visible = false;\n return _this;\n }\n CellSelection.prototype.map = function (doc, mapping) {\n var startPos = this.startCell.pos;\n var endPos = this.endCell.pos;\n var startCell = doc.resolve(mapping.map(startPos));\n var endCell = doc.resolve(mapping.map(endPos));\n var map = TableOffsetMap.create(startCell);\n // text selection when rows or columns are deleted\n if (this.offsetMap.totalColumnCount > map.totalColumnCount ||\n this.offsetMap.totalRowCount > map.totalRowCount) {\n var depthMap = { tableBody: 1, tableRow: 2, tableCell: 3, paragraph: 4 };\n var depthFromTable = depthMap[endCell.parent.type.name];\n var tableEndPos = endCell.end(endCell.depth - depthFromTable);\n // subtract 4(</td></tr></tbody></table> tag length)\n var from = Math.min(tableEndPos - 4, endCell.pos);\n return prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"TextSelection\"].create(doc, from);\n }\n return new CellSelection(startCell, endCell);\n };\n CellSelection.prototype.eq = function (cell) {\n return (cell instanceof CellSelection &&\n cell.startCell.pos === this.startCell.pos &&\n cell.endCell.pos === this.endCell.pos);\n };\n CellSelection.prototype.content = function () {\n var table = this.startCell.node(-2);\n var tableOffset = this.startCell.start(-2);\n var row = table.child(1).firstChild;\n var tableHead = table.child(0).type.create();\n var tableBody = table.child(1).type.create();\n var map = TableOffsetMap.create(this.startCell);\n var selectionInfo = map.getRectOffsets(this.startCell, this.endCell);\n var startRowIdx = selectionInfo.startRowIdx, startColIdx = selectionInfo.startColIdx, endRowIdx = selectionInfo.endRowIdx, endColIdx = selectionInfo.endColIdx;\n var isTableHeadCell = false;\n for (var rowIdx = startRowIdx; rowIdx <= endRowIdx; rowIdx += 1) {\n var cells = [];\n for (var colIdx = startColIdx; colIdx <= endColIdx; colIdx += 1) {\n var offset = map.getCellInfo(rowIdx, colIdx).offset;\n var cell = table.nodeAt(offset - tableOffset);\n if (cell) {\n isTableHeadCell = cell.type.name === 'tableHeadCell';\n // mark the extended cell for pasting\n if (map.extendedRowspan(rowIdx, colIdx) || map.extendedColspan(rowIdx, colIdx)) {\n cells.push(cell.type.create({ extended: true }));\n }\n else {\n cells.push(cell.copy(cell.content));\n }\n }\n }\n var copiedRow = row.copy(prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(cells));\n var targetNode = isTableHeadCell ? tableHead : tableBody;\n // @ts-ignore\n targetNode.content = targetNode.content.append(prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(copiedRow));\n }\n return new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](createTableFragment(tableHead, tableBody), 1, 1);\n };\n CellSelection.prototype.toJSON = function () {\n return JSON.stringify(this);\n };\n return CellSelection;\n}(prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Selection\"]));\n\nfunction createTableHeadRow(columnCount, schema, data) {\n var _a = schema.nodes, tableRow = _a.tableRow, tableHeadCell = _a.tableHeadCell, paragraph = _a.paragraph;\n var cells = [];\n for (var index = 0; index < columnCount; index += 1) {\n var text = data && data[index];\n var para = paragraph.create(null, text ? schema.text(text) : []);\n cells.push(tableHeadCell.create(null, para));\n }\n return [tableRow.create(null, cells)];\n}\nfunction createTableBodyRows(rowCount, columnCount, schema, data) {\n var _a = schema.nodes, tableRow = _a.tableRow, tableBodyCell = _a.tableBodyCell, paragraph = _a.paragraph;\n var tableRows = [];\n for (var rowIdx = 0; rowIdx < rowCount; rowIdx += 1) {\n var cells = [];\n for (var colIdx = 0; colIdx < columnCount; colIdx += 1) {\n var text = data && data[rowIdx * columnCount + colIdx];\n var para = paragraph.create(null, text ? schema.text(text) : []);\n cells.push(tableBodyCell.create(null, para));\n }\n tableRows.push(tableRow.create(null, cells));\n }\n return tableRows;\n}\nfunction createDummyCells(columnCount, rowIdx, schema, attrs) {\n if (attrs === void 0) { attrs = null; }\n var _a = schema.nodes, tableHeadCell = _a.tableHeadCell, tableBodyCell = _a.tableBodyCell, paragraph = _a.paragraph;\n var cell = rowIdx === 0 ? tableHeadCell : tableBodyCell;\n var cells = [];\n for (var index = 0; index < columnCount; index += 1) {\n cells.push(cell.create(attrs, paragraph.create()));\n }\n return cells;\n}\nfunction findCellElement(node, root) {\n while (node && node !== root) {\n if (node.nodeName === 'TD' || node.nodeName === 'TH') {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n}\nfunction findCell(pos) {\n return findNodeBy(pos, function (_a) {\n var type = _a.type;\n return type.name === 'tableHeadCell' || type.name === 'tableBodyCell';\n });\n}\nfunction getResolvedSelection(selection) {\n if (selection instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"TextSelection\"]) {\n var $anchor = selection.$anchor;\n var foundCell = findCell($anchor);\n if (foundCell) {\n var anchor = $anchor.node(0).resolve($anchor.before(foundCell.depth));\n return { anchor: anchor, head: anchor };\n }\n }\n var _a = selection, startCell = _a.startCell, endCell = _a.endCell;\n return { anchor: startCell, head: endCell };\n}\nfunction getTableContentFromSlice(slice) {\n var _a;\n if (slice.size) {\n var content = slice.content, openStart = slice.openStart, openEnd = slice.openEnd;\n if (content.childCount !== 1) {\n return null;\n }\n while (content.childCount === 1 &&\n ((openStart > 0 && openEnd > 0) || ((_a = content.firstChild) === null || _a === void 0 ? void 0 : _a.type.name) === 'table')) {\n openStart -= 1;\n openEnd -= 1;\n content = content.firstChild.content;\n }\n if (content.firstChild.type.name === 'tableHead' ||\n content.firstChild.type.name === 'tableBody') {\n return content;\n }\n }\n return null;\n}\nfunction getRowAndColumnCount(_a) {\n var startRowIdx = _a.startRowIdx, startColIdx = _a.startColIdx, endRowIdx = _a.endRowIdx, endColIdx = _a.endColIdx;\n var rowCount = endRowIdx - startRowIdx + 1;\n var columnCount = endColIdx - startColIdx + 1;\n return { rowCount: rowCount, columnCount: columnCount };\n}\nfunction setAttrs(cell, attrs) {\n return __assign$1(__assign$1({}, cell.attrs), attrs);\n}\n\nvar pluginKey = new prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"PluginKey\"]('cellSelection');\nvar MOUSE_RIGHT_BUTTON = 2;\nvar TableSelection = /** @class */ (function () {\n function TableSelection(view) {\n this.view = view;\n this.handlers = {\n mousedown: this.handleMousedown.bind(this),\n mousemove: this.handleMousemove.bind(this),\n mouseup: this.handleMouseup.bind(this),\n };\n this.startCellPos = null;\n this.init();\n }\n TableSelection.prototype.init = function () {\n this.view.dom.addEventListener('mousedown', this.handlers.mousedown);\n };\n TableSelection.prototype.handleMousedown = function (ev) {\n var foundCell = findCellElement(ev.target, this.view.dom);\n if (ev.button === MOUSE_RIGHT_BUTTON) {\n ev.preventDefault();\n return;\n }\n if (foundCell) {\n var startCellPos = this.getCellPos(ev);\n if (startCellPos) {\n this.startCellPos = startCellPos;\n }\n this.bindEvent();\n }\n };\n TableSelection.prototype.handleMousemove = function (ev) {\n var prevEndCellOffset = pluginKey.getState(this.view.state);\n var endCellPos = this.getCellPos(ev);\n var startCellPos = this.startCellPos;\n var prevEndCellPos;\n if (prevEndCellOffset) {\n prevEndCellPos = this.view.state.doc.resolve(prevEndCellOffset);\n }\n else if (startCellPos !== endCellPos) {\n prevEndCellPos = startCellPos;\n }\n if (prevEndCellPos && startCellPos && endCellPos) {\n this.setCellSelection(startCellPos, endCellPos);\n }\n };\n TableSelection.prototype.handleMouseup = function () {\n this.startCellPos = null;\n this.unbindEvent();\n if (pluginKey.getState(this.view.state) !== null) {\n this.view.dispatch(this.view.state.tr.setMeta(pluginKey, -1));\n }\n };\n TableSelection.prototype.bindEvent = function () {\n var dom = this.view.dom;\n dom.addEventListener('mousemove', this.handlers.mousemove);\n dom.addEventListener('mouseup', this.handlers.mouseup);\n };\n TableSelection.prototype.unbindEvent = function () {\n var dom = this.view.dom;\n dom.removeEventListener('mousemove', this.handlers.mousemove);\n dom.removeEventListener('mouseup', this.handlers.mouseup);\n };\n TableSelection.prototype.getCellPos = function (_a) {\n var clientX = _a.clientX, clientY = _a.clientY;\n var mousePos = this.view.posAtCoords({ left: clientX, top: clientY });\n if (mousePos) {\n var doc = this.view.state.doc;\n var currentPos = doc.resolve(mousePos.pos);\n var foundCell = findCell(currentPos);\n if (foundCell) {\n var cellOffset = currentPos.before(foundCell.depth);\n return doc.resolve(cellOffset);\n }\n }\n return null;\n };\n TableSelection.prototype.setCellSelection = function (startCellPos, endCellPos) {\n var _a = this.view.state, selection = _a.selection, tr = _a.tr;\n var starting = pluginKey.getState(this.view.state) === null;\n var cellSelection = new CellSelection(startCellPos, endCellPos);\n if (starting || !selection.eq(cellSelection)) {\n var newTr = tr.setSelection(cellSelection);\n if (starting) {\n newTr.setMeta(pluginKey, endCellPos.pos);\n }\n this.view.dispatch(newTr);\n }\n };\n TableSelection.prototype.destroy = function () {\n this.view.dom.removeEventListener('mousedown', this.handlers.mousedown);\n };\n return TableSelection;\n}());\n\nvar SELECTED_CELL_CLASS_NAME = cls('cell-selected');\nfunction drawCellSelection(_a) {\n var selection = _a.selection, doc = _a.doc;\n if (selection instanceof CellSelection) {\n var cells_1 = [];\n var ranges = selection.ranges;\n ranges.forEach(function (_a) {\n var $from = _a.$from, $to = _a.$to;\n cells_1.push(prosemirror_view__WEBPACK_IMPORTED_MODULE_1__[\"Decoration\"].node($from.pos - 1, $to.pos + 1, { class: SELECTED_CELL_CLASS_NAME }));\n });\n return prosemirror_view__WEBPACK_IMPORTED_MODULE_1__[\"DecorationSet\"].create(doc, cells_1);\n }\n return null;\n}\nfunction tableSelection() {\n return new prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]({\n key: pluginKey,\n state: {\n init: function () {\n return null;\n },\n apply: function (tr, value) {\n var cellOffset = tr.getMeta(pluginKey);\n if (cellOffset) {\n return cellOffset === -1 ? null : cellOffset;\n }\n if (isNull_1(value) || !tr.docChanged) {\n return value;\n }\n var _a = tr.mapping.mapResult(value), deleted = _a.deleted, pos = _a.pos;\n return deleted ? null : pos;\n },\n },\n props: {\n decorations: drawCellSelection,\n createSelectionBetween: function (_a) {\n var state = _a.state;\n if (!isNull_1(pluginKey.getState(state))) {\n return state.selection;\n }\n return null;\n },\n },\n view: function (editorView) {\n return new TableSelection(editorView);\n },\n });\n}\n\n/**\n * @class\n * @ignore\n * @classdesc ES6 Map\n */\nvar Map$1 = /** @class */ (function () {\n function Map() {\n this.keys = [];\n this.values = [];\n }\n Map.prototype.getKeyIndex = function (key) {\n return inArray_1(key, this.keys);\n };\n Map.prototype.get = function (key) {\n return this.values[this.getKeyIndex(key)];\n };\n Map.prototype.set = function (key, value) {\n var keyIndex = this.getKeyIndex(key);\n if (keyIndex > -1) {\n this.values[keyIndex] = value;\n }\n else {\n this.keys.push(key);\n this.values.push(value);\n }\n return this;\n };\n Map.prototype.has = function (key) {\n return this.getKeyIndex(key) > -1;\n };\n Map.prototype.delete = function (key) {\n var keyIndex = this.getKeyIndex(key);\n if (keyIndex > -1) {\n this.keys.splice(keyIndex, 1);\n this.values.splice(keyIndex, 1);\n return true;\n }\n return false;\n };\n Map.prototype.forEach = function (callback, thisArg) {\n var _this = this;\n if (thisArg === void 0) { thisArg = this; }\n this.values.forEach(function (value, index) {\n if (value && _this.keys[index]) {\n callback.call(thisArg, value, _this.keys[index], _this);\n }\n });\n };\n Map.prototype.clear = function () {\n this.keys = [];\n this.values = [];\n };\n return Map;\n}());\n\n/**\n * @fileoverview Implements i18n\n * @author NHN Cloud FE Development Lab <dl_javascript@nhn.com>\n */\nvar DEFAULT_CODE = 'en-US';\n/**\n * Class I18n\n * @ignore\n */\nvar I18n = /** @class */ (function () {\n function I18n() {\n this.code = DEFAULT_CODE;\n this.langs = new Map$1();\n }\n I18n.prototype.setCode = function (code) {\n this.code = code || DEFAULT_CODE;\n };\n /**\n * Set language set\n * @param {string|string[]} codes locale code\n * @param {object} data language set\n */\n I18n.prototype.setLanguage = function (codes, data) {\n var _this = this;\n codes = [].concat(codes);\n codes.forEach(function (code) {\n if (!_this.langs.has(code)) {\n _this.langs.set(code, data);\n }\n else {\n var langData = _this.langs.get(code);\n _this.langs.set(code, extend_1(langData, data));\n }\n });\n };\n I18n.prototype.get = function (key, code) {\n if (!code) {\n code = this.code;\n }\n var langSet = this.langs.get(code);\n if (!langSet) {\n langSet = this.langs.get(DEFAULT_CODE);\n }\n var text = langSet[key];\n if (!text) {\n throw new Error(\"There is no text key \\\"\" + key + \"\\\" in \" + code);\n }\n return text;\n };\n return I18n;\n}());\nvar i18n = new I18n();\n\nvar contextMenuGroups = [\n [\n {\n action: 'Add row to up',\n command: 'addRowToUp',\n disableInThead: true,\n className: 'add-row-up',\n },\n {\n action: 'Add row to down',\n command: 'addRowToDown',\n disableInThead: true,\n className: 'add-row-down',\n },\n { action: 'Remove row', command: 'removeRow', disableInThead: true, className: 'remove-row' },\n ],\n [\n { action: 'Add column to left', command: 'addColumnToLeft', className: 'add-column-left' },\n { action: 'Add column to right', command: 'addColumnToRight', className: 'add-column-right' },\n { action: 'Remove column', command: 'removeColumn', className: 'remove-column' },\n ],\n [\n {\n action: 'Align column to left',\n command: 'alignColumn',\n payload: { align: 'left' },\n className: 'align-column-left',\n },\n {\n action: 'Align column to center',\n command: 'alignColumn',\n payload: { align: 'center' },\n className: 'align-column-center',\n },\n {\n action: 'Align column to right',\n command: 'alignColumn',\n payload: { align: 'right' },\n className: 'align-column-right',\n },\n ],\n [{ action: 'Remove table', command: 'removeTable', className: 'remove-table' }],\n];\nfunction getContextMenuGroups(eventEmitter, inTableHead) {\n return contextMenuGroups\n .map(function (contextMenuGroup) {\n return contextMenuGroup.map(function (_a) {\n var action = _a.action, command = _a.command, payload = _a.payload, disableInThead = _a.disableInThead, className = _a.className;\n return {\n label: i18n.get(action),\n onClick: function () {\n eventEmitter.emit('command', command, payload);\n },\n disabled: inTableHead && !!disableInThead,\n className: className,\n };\n });\n })\n .concat();\n}\nfunction tableContextMenu(eventEmitter) {\n return new prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]({\n props: {\n handleDOMEvents: {\n contextmenu: function (view, ev) {\n var tableCell = findCellElement(ev.target, view.dom);\n if (tableCell) {\n ev.preventDefault();\n var _a = ev, clientX = _a.clientX, clientY = _a.clientY;\n var _b = view.dom.parentNode.getBoundingClientRect(), left = _b.left, top_1 = _b.top;\n var inTableHead = tableCell.nodeName === 'TH';\n eventEmitter.emit('contextmenu', {\n pos: { left: clientX - left + 10 + \"px\", top: clientY - top_1 + 30 + \"px\" },\n menuGroups: getContextMenuGroups(eventEmitter, inTableHead),\n tableCell: tableCell,\n });\n return true;\n }\n return false;\n },\n },\n },\n });\n}\n\nfunction task() {\n return new prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]({\n props: {\n handleDOMEvents: {\n mousedown: function (view, ev) {\n var _a = ev, clientX = _a.clientX, clientY = _a.clientY;\n var mousePos = view.posAtCoords({ left: clientX, top: clientY });\n if (mousePos) {\n var _b = view.state, doc = _b.doc, tr = _b.tr;\n var currentPos = doc.resolve(mousePos.pos);\n var listItem = findListItem(currentPos);\n var target = ev.target;\n var style = getComputedStyle(target, ':before');\n var _c = ev, offsetX = _c.offsetX, offsetY = _c.offsetY;\n if (!listItem || !isPositionInBox(style, offsetX, offsetY)) {\n return false;\n }\n ev.preventDefault();\n var offset = currentPos.before(listItem.depth);\n var attrs = listItem.node.attrs;\n tr.setNodeMarkup(offset, null, __assign$1(__assign$1({}, attrs), { checked: !attrs.checked }));\n view.dispatch(tr);\n return true;\n }\n return false;\n },\n },\n },\n });\n}\n\nvar EXCEPT_TYPES = ['image', 'link', 'customBlock', 'frontMatter'];\nvar MARK_TYPES = ['strong', 'strike', 'emph', 'code'];\nvar LIST_TYPES = ['bulletList', 'orderedList', 'taskList'];\nfunction getToolbarStateType(node, parentNode) {\n var type = node.type.name;\n if (type === 'listItem') {\n return node.attrs.task ? 'taskList' : parentNode.type.name;\n }\n if (type.indexOf('table') !== -1) {\n return 'table';\n }\n return type;\n}\nfunction setListNodeToolbarState(type, nodeTypeState) {\n nodeTypeState[type] = { active: true };\n LIST_TYPES.filter(function (listName) { return listName !== type; }).forEach(function (listType) {\n if (nodeTypeState[listType]) {\n delete nodeTypeState[listType];\n }\n });\n}\nfunction setMarkTypeStates(from, to, schema, toolbarState) {\n MARK_TYPES.forEach(function (type) {\n var mark = schema.marks[type];\n var marksAtPos = from.marksAcross(to) || [];\n var foundMark = !!mark.isInSet(marksAtPos);\n if (foundMark) {\n toolbarState[type] = { active: true };\n }\n });\n}\nfunction getToolbarState(selection, doc, schema) {\n var $from = selection.$from, $to = selection.$to, from = selection.from, to = selection.to;\n var toolbarState = {\n indent: { active: false, disabled: true },\n outdent: { active: false, disabled: true },\n };\n doc.nodesBetween(from, to, function (node, _, parentNode) {\n var type = getToolbarStateType(node, parentNode);\n if (includes(EXCEPT_TYPES, type)) {\n return;\n }\n if (includes(LIST_TYPES, type)) {\n setListNodeToolbarState(type, toolbarState);\n toolbarState.indent.disabled = false;\n toolbarState.outdent.disabled = false;\n }\n else if (type === 'paragraph' || type === 'text') {\n setMarkTypeStates($from, $to, schema, toolbarState);\n }\n else {\n toolbarState[type] = { active: true };\n }\n });\n return toolbarState;\n}\nfunction toolbarStateHighlight(eventEmitter) {\n return new prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]({\n view: function () {\n return {\n update: function (view) {\n var _a = view.state, selection = _a.selection, doc = _a.doc, schema = _a.schema;\n eventEmitter.emit('changeToolbarState', {\n toolbarState: getToolbarState(selection, doc, schema),\n });\n },\n };\n },\n });\n}\n\nvar CustomBlockView = /** @class */ (function () {\n function CustomBlockView(node, view, getPos, toDOMAdaptor) {\n var _this = this;\n this.openEditor = function () {\n if (_this.innerEditorView) {\n throw new Error('The editor is already opened.');\n }\n _this.dom.draggable = false;\n _this.wrapper.style.display = 'none';\n _this.innerViewContainer.style.display = 'block';\n _this.innerEditorView = new prosemirror_view__WEBPACK_IMPORTED_MODULE_1__[\"EditorView\"](_this.innerViewContainer, {\n state: prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"EditorState\"].create({\n doc: _this.node,\n plugins: [\n Object(prosemirror_keymap__WEBPACK_IMPORTED_MODULE_4__[\"keymap\"])({\n 'Mod-z': function () { return Object(prosemirror_history__WEBPACK_IMPORTED_MODULE_7__[\"undo\"])(_this.innerEditorView.state, _this.innerEditorView.dispatch); },\n 'Shift-Mod-z': function () { return Object(prosemirror_history__WEBPACK_IMPORTED_MODULE_7__[\"redo\"])(_this.innerEditorView.state, _this.innerEditorView.dispatch); },\n Tab: function (state, dispatch) {\n dispatch(state.tr.insertText('\\t'));\n return true;\n },\n Enter: prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"newlineInCode\"],\n Escape: function () {\n _this.cancelEditing();\n return true;\n },\n 'Ctrl-Enter': function () {\n _this.saveAndFinishEditing();\n return true;\n },\n }),\n Object(prosemirror_history__WEBPACK_IMPORTED_MODULE_7__[\"history\"])(),\n ],\n }),\n dispatchTransaction: function (tr) { return _this.dispatchInner(tr); },\n handleDOMEvents: {\n mousedown: function () {\n if (_this.editorView.hasFocus()) {\n _this.innerEditorView.focus();\n }\n return true;\n },\n blur: function () {\n _this.saveAndFinishEditing();\n return true;\n },\n },\n });\n _this.innerEditorView.focus();\n };\n this.node = node;\n this.editorView = view;\n this.getPos = getPos;\n this.toDOMAdaptor = toDOMAdaptor;\n this.innerEditorView = null;\n this.canceled = false;\n this.dom = document.createElement('div');\n this.dom.className = cls('custom-block');\n this.wrapper = document.createElement('div');\n this.wrapper.className = cls('custom-block-view');\n this.createInnerViewContainer();\n this.renderCustomBlock();\n this.dom.appendChild(this.innerViewContainer);\n this.dom.appendChild(this.wrapper);\n }\n CustomBlockView.prototype.renderToolArea = function () {\n var _this = this;\n var tool = document.createElement('div');\n var span = document.createElement('span');\n var button = document.createElement('button');\n tool.className = 'tool';\n span.textContent = this.node.attrs.info;\n span.className = 'info';\n button.type = 'button';\n button.addEventListener('click', function () { return _this.openEditor(); });\n tool.appendChild(span);\n tool.appendChild(button);\n this.wrapper.appendChild(tool);\n };\n CustomBlockView.prototype.renderCustomBlock = function () {\n var toDOMNode = this.toDOMAdaptor.getToDOMNode(this.node.attrs.info);\n if (toDOMNode) {\n var node = toDOMNode(this.node);\n while (this.wrapper.hasChildNodes()) {\n this.wrapper.removeChild(this.wrapper.lastChild);\n }\n if (node) {\n this.wrapper.appendChild(node);\n }\n this.renderToolArea();\n }\n };\n CustomBlockView.prototype.createInnerViewContainer = function () {\n this.innerViewContainer = document.createElement('div');\n this.innerViewContainer.className = cls('custom-block-editor');\n this.innerViewContainer.style.display = 'none';\n };\n CustomBlockView.prototype.closeEditor = function () {\n if (this.innerEditorView) {\n this.innerEditorView.destroy();\n this.innerEditorView = null;\n this.innerViewContainer.style.display = 'none';\n }\n this.wrapper.style.display = 'block';\n };\n CustomBlockView.prototype.saveAndFinishEditing = function () {\n var to = this.editorView.state.selection.to;\n var outerState = this.editorView.state;\n this.editorView.dispatch(outerState.tr.setSelection(createTextSelection(outerState.tr, to)));\n this.editorView.focus();\n this.renderCustomBlock();\n this.closeEditor();\n };\n CustomBlockView.prototype.cancelEditing = function () {\n var undoableCount = Object(prosemirror_history__WEBPACK_IMPORTED_MODULE_7__[\"undoDepth\"])(this.innerEditorView.state);\n this.canceled = true;\n // should undo editing result\n // eslint-disable-next-line no-plusplus\n while (undoableCount--) {\n Object(prosemirror_history__WEBPACK_IMPORTED_MODULE_7__[\"undo\"])(this.innerEditorView.state, this.innerEditorView.dispatch);\n Object(prosemirror_history__WEBPACK_IMPORTED_MODULE_7__[\"undo\"])(this.editorView.state, this.editorView.dispatch);\n }\n this.canceled = false;\n var to = this.editorView.state.selection.to;\n var outerState = this.editorView.state;\n this.editorView.dispatch(outerState.tr.setSelection(prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"TextSelection\"].create(outerState.doc, to)));\n this.editorView.focus();\n this.closeEditor();\n };\n CustomBlockView.prototype.dispatchInner = function (tr) {\n var _a = this.innerEditorView.state.applyTransaction(tr), state = _a.state, transactions = _a.transactions;\n this.innerEditorView.updateState(state);\n if (!this.canceled && isFunction_1(this.getPos)) {\n var outerTr = this.editorView.state.tr;\n var offsetMap = prosemirror_transform__WEBPACK_IMPORTED_MODULE_2__[\"StepMap\"].offset(this.getPos() + 1);\n for (var i = 0; i < transactions.length; i += 1) {\n var steps = transactions[i].steps;\n for (var j = 0; j < steps.length; j += 1) {\n outerTr.step(steps[j].map(offsetMap));\n }\n }\n if (outerTr.docChanged) {\n this.editorView.dispatch(outerTr);\n }\n }\n };\n CustomBlockView.prototype.update = function (node) {\n if (!node.sameMarkup(this.node)) {\n return false;\n }\n this.node = node;\n if (!this.innerEditorView) {\n this.renderCustomBlock();\n }\n return true;\n };\n CustomBlockView.prototype.stopEvent = function (event) {\n return (!!this.innerEditorView &&\n !!event.target &&\n this.innerEditorView.dom.contains(event.target));\n };\n CustomBlockView.prototype.ignoreMutation = function () {\n return true;\n };\n CustomBlockView.prototype.destroy = function () {\n this.dom.removeEventListener('dblclick', this.openEditor);\n this.closeEditor();\n };\n return CustomBlockView;\n}());\n\nvar IMAGE_LINK_CLASS_NAME = 'image-link';\nvar ImageView = /** @class */ (function () {\n function ImageView(node, view, getPos, eventEmitter) {\n var _this = this;\n var _a;\n this.handleMousedown = function (ev) {\n ev.preventDefault();\n var target = ev.target, offsetX = ev.offsetX, offsetY = ev.offsetY;\n if (_this.imageLink &&\n isFunction_1(_this.getPos) &&\n hasClass_1(target, IMAGE_LINK_CLASS_NAME)) {\n var style = getComputedStyle(target, ':before');\n ev.stopPropagation();\n if (isPositionInBox(style, offsetX, offsetY)) {\n var tr = _this.view.state.tr;\n var pos = _this.getPos();\n tr.setSelection(createTextSelection(tr, pos, pos + 1));\n _this.view.dispatch(tr);\n _this.eventEmitter.emit('openPopup', 'link', _this.imageLink.attrs);\n }\n }\n };\n this.node = node;\n this.view = view;\n this.getPos = getPos;\n this.eventEmitter = eventEmitter;\n this.imageLink = (_a = node.marks.filter(function (_a) {\n var type = _a.type;\n return type.name === 'link';\n })[0]) !== null && _a !== void 0 ? _a : null;\n this.dom = this.createElement();\n this.bindEvent();\n }\n ImageView.prototype.createElement = function () {\n var image = this.createImageElement(this.node);\n if (this.imageLink) {\n var wrapper = document.createElement('span');\n wrapper.className = IMAGE_LINK_CLASS_NAME;\n wrapper.appendChild(image);\n return wrapper;\n }\n return image;\n };\n ImageView.prototype.createImageElement = function (node) {\n var image = document.createElement('img');\n var _a = node.attrs, imageUrl = _a.imageUrl, altText = _a.altText;\n var attrs = getCustomAttrs(node.attrs);\n image.src = imageUrl;\n if (altText) {\n image.alt = altText;\n }\n setAttributes(attrs, image);\n return image;\n };\n ImageView.prototype.bindEvent = function () {\n if (this.imageLink) {\n this.dom.addEventListener('mousedown', this.handleMousedown);\n }\n };\n ImageView.prototype.stopEvent = function () {\n return true;\n };\n ImageView.prototype.destroy = function () {\n if (this.imageLink) {\n this.dom.removeEventListener('mousedown', this.handleMousedown);\n }\n };\n return ImageView;\n}());\n\nvar WRAPPER_CLASS_NAME = 'toastui-editor-ww-code-block';\nvar CODE_BLOCK_LANG_CLASS_NAME = 'toastui-editor-ww-code-block-language';\nvar CodeBlockView = /** @class */ (function () {\n function CodeBlockView(node, view, getPos, eventEmitter) {\n var _this = this;\n this.contentDOM = null;\n this.input = null;\n this.timer = null;\n this.handleMousedown = function (ev) {\n var target = ev.target;\n var style = getComputedStyle(target, ':after');\n // judge to click pseudo element with background image for IE11\n if (style.backgroundImage !== 'none' && isFunction_1(_this.getPos)) {\n var _a = _this.view.coordsAtPos(_this.getPos()), top_1 = _a.top, right = _a.right;\n _this.createLanguageEditor({ top: top_1, right: right });\n }\n };\n this.handleKeydown = function (ev) {\n if (ev.key === 'Enter' && _this.input) {\n ev.preventDefault();\n _this.changeLanguage();\n }\n };\n this.node = node;\n this.view = view;\n this.getPos = getPos;\n this.eventEmitter = eventEmitter;\n this.createElement();\n this.bindDOMEvent();\n this.bindEvent();\n }\n CodeBlockView.prototype.createElement = function () {\n var language = this.node.attrs.language;\n var wrapper = document.createElement('div');\n wrapper.setAttribute('data-language', language || 'text');\n wrapper.className = WRAPPER_CLASS_NAME;\n var pre = this.createCodeBlockElement();\n var code = pre.firstChild;\n wrapper.appendChild(pre);\n this.dom = wrapper;\n this.contentDOM = code;\n };\n CodeBlockView.prototype.createCodeBlockElement = function () {\n var pre = document.createElement('pre');\n var code = document.createElement('code');\n var language = this.node.attrs.language;\n var attrs = getCustomAttrs(this.node.attrs);\n if (language) {\n code.setAttribute('data-language', language);\n }\n setAttributes(attrs, pre);\n pre.appendChild(code);\n return pre;\n };\n CodeBlockView.prototype.createLanguageEditor = function (_a) {\n var _this = this;\n var top = _a.top, right = _a.right;\n var wrapper = document.createElement('span');\n wrapper.className = CODE_BLOCK_LANG_CLASS_NAME;\n var input = document.createElement('input');\n input.type = 'text';\n input.value = this.node.attrs.language;\n wrapper.appendChild(input);\n this.view.dom.parentElement.appendChild(wrapper);\n var wrpperWidth = wrapper.clientWidth;\n css_1(wrapper, {\n top: top + 10 + \"px\",\n left: right - wrpperWidth - 10 + \"px\",\n width: wrpperWidth + \"px\",\n });\n this.input = input;\n this.input.addEventListener('blur', function () { return _this.changeLanguage(); });\n this.input.addEventListener('keydown', this.handleKeydown);\n this.clearTimer();\n this.timer = setTimeout(function () {\n _this.input.focus();\n });\n };\n CodeBlockView.prototype.bindDOMEvent = function () {\n if (this.dom) {\n this.dom.addEventListener('click', this.handleMousedown);\n }\n };\n CodeBlockView.prototype.bindEvent = function () {\n var _this = this;\n this.eventEmitter.listen('scroll', function () {\n if (_this.input) {\n _this.reset();\n }\n });\n };\n CodeBlockView.prototype.changeLanguage = function () {\n if (this.input && isFunction_1(this.getPos)) {\n var value = this.input.value;\n this.reset();\n var pos = this.getPos();\n var tr = this.view.state.tr;\n tr.setNodeMarkup(pos, null, { language: value });\n this.view.dispatch(tr);\n }\n };\n CodeBlockView.prototype.reset = function () {\n var _a;\n if ((_a = this.input) === null || _a === void 0 ? void 0 : _a.parentElement) {\n var parent_1 = this.input.parentElement;\n this.input = null;\n removeNode$1(parent_1);\n }\n };\n CodeBlockView.prototype.clearTimer = function () {\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n };\n CodeBlockView.prototype.stopEvent = function () {\n return true;\n };\n CodeBlockView.prototype.update = function (node) {\n if (!node.sameMarkup(this.node)) {\n return false;\n }\n this.node = node;\n return true;\n };\n CodeBlockView.prototype.destroy = function () {\n this.reset();\n this.clearTimer();\n if (this.dom) {\n this.dom.removeEventListener('click', this.handleMousedown);\n }\n };\n return CodeBlockView;\n}());\n\nvar reMSOListClassName = /MsoListParagraph/;\nvar reMSOStylePrefix = /style=(.|\\n)*mso-/;\nvar reMSOListStyle = /mso-list:(.*)/;\nvar reMSOTagName = /O:P/;\nvar reMSOListBullet = /^(n|u|l)/;\nvar MSO_CLASS_NAME_LIST_PARA = 'p.MsoListParagraph';\nfunction isFromMso(html) {\n return reMSOStylePrefix.test(html);\n}\nfunction getListItemContents(para) {\n var removedNodes = [];\n var walker = document.createTreeWalker(para, 1, null, false);\n while (walker.nextNode()) {\n var node = walker.currentNode;\n if (isElemNode(node)) {\n var _a = node, outerHTML = _a.outerHTML, textContent = _a.textContent;\n var msoSpan = reMSOStylePrefix.test(outerHTML);\n var bulletSpan = reMSOListStyle.test(outerHTML);\n if (msoSpan && !bulletSpan && textContent) {\n removedNodes.push([node, true]);\n }\n else if (reMSOTagName.test(node.nodeName) || (msoSpan && !textContent) || bulletSpan) {\n removedNodes.push([node, false]);\n }\n }\n }\n removedNodes.forEach(function (_a) {\n var node = _a[0], isUnwrap = _a[1];\n if (isUnwrap) {\n unwrapNode(node);\n }\n else {\n removeNode$1(node);\n }\n });\n return para.innerHTML.trim();\n}\nfunction createListItemDataFromParagraph(para, index) {\n var styleAttr = para.getAttribute('style');\n if (styleAttr) {\n var _a = styleAttr.match(reMSOListStyle), listItemInfo = _a[1];\n var _b = listItemInfo.trim().split(' '), levelStr = _b[1];\n var level = parseInt(levelStr.replace('level', ''), 10);\n var unordered = reMSOListBullet.test(para.textContent || '');\n return {\n id: index,\n level: level,\n prev: null,\n parent: null,\n children: [],\n unordered: unordered,\n contents: getListItemContents(para),\n };\n }\n return null;\n}\nfunction addListItemDetailData(data, prevData) {\n if (prevData.level < data.level) {\n prevData.children.push(data);\n data.parent = prevData;\n }\n else {\n while (prevData) {\n if (prevData.level === data.level) {\n break;\n }\n prevData = prevData.parent;\n }\n if (prevData) {\n data.prev = prevData;\n data.parent = prevData.parent;\n if (data.parent) {\n data.parent.children.push(data);\n }\n }\n }\n}\nfunction createListData(paras) {\n var listData = [];\n paras.forEach(function (para, index) {\n var prevListItemData = listData[index - 1];\n var listItemData = createListItemDataFromParagraph(para, index);\n if (listItemData) {\n if (prevListItemData) {\n addListItemDetailData(listItemData, prevListItemData);\n }\n listData.push(listItemData);\n }\n });\n return listData;\n}\nfunction makeList(listData) {\n var listTagName = listData[0].unordered ? 'ul' : 'ol';\n var list = document.createElement(listTagName);\n listData.forEach(function (data) {\n var children = data.children, contents = data.contents;\n var listItem = document.createElement('li');\n listItem.innerHTML = contents;\n list.appendChild(listItem);\n if (children.length) {\n list.appendChild(makeList(children));\n }\n });\n return list;\n}\nfunction makeListFromParagraphs(paras) {\n var listData = createListData(paras);\n var rootChildren = listData.filter(function (_a) {\n var parent = _a.parent;\n return !parent;\n });\n return makeList(rootChildren);\n}\nfunction isMsoListParagraphEnd(node) {\n while (node) {\n if (isElemNode(node)) {\n break;\n }\n node = node.nextSibling;\n }\n return node ? !reMSOListClassName.test(node.className) : true;\n}\nfunction convertMsoParagraphsToList(html) {\n var container = document.createElement('div');\n container.innerHTML = html;\n var paras = [];\n var foundParas = findNodes(container, MSO_CLASS_NAME_LIST_PARA);\n foundParas.forEach(function (para) {\n var msoListParaEnd = isMsoListParagraphEnd(para.nextSibling);\n paras.push(para);\n if (msoListParaEnd) {\n var list = makeListFromParagraphs(paras);\n var nextSibling = para.nextSibling;\n if (nextSibling) {\n insertBeforeNode(list, nextSibling);\n }\n else {\n appendNodes(container, list);\n }\n paras = [];\n }\n removeNode$1(para);\n });\n // without `<p></p>`, the list string was parsed as a paragraph node and added\n var extraHTML = foundParas.length ? '<p></p>' : '';\n return \"\" + extraHTML + container.innerHTML;\n}\n\nvar START_FRAGMENT_COMMENT = '<!--StartFragment-->';\nvar END_FRAGMENT_COMMENT = '<!--EndFragment-->';\nfunction getContentBetweenFragmentComments(html) {\n var startFragmentIndex = html.indexOf(START_FRAGMENT_COMMENT);\n var endFragmentIndex = html.lastIndexOf(END_FRAGMENT_COMMENT);\n if (startFragmentIndex > -1 && endFragmentIndex > -1) {\n html = html.slice(startFragmentIndex + START_FRAGMENT_COMMENT.length, endFragmentIndex);\n }\n return html.replace(/<br[^>]*>/g, ALTERNATIVE_TAG_FOR_BR);\n}\nfunction convertMsoTableToCompletedTable(html) {\n // wrap with <tr> if html contains dangling <td> tags\n // dangling <td> tag is that tag does not have <tr> as parent node\n if (/<\\/td>((?!<\\/tr>)[\\s\\S])*$/i.test(html)) {\n html = \"<tr>\" + html + \"</tr>\";\n }\n // wrap with <table> if html contains dangling <tr> tags\n // dangling <tr> tag is that tag does not have <table> as parent node\n if (/<\\/tr>((?!<\\/table>)[\\s\\S])*$/i.test(html)) {\n html = \"<table>\" + html + \"</table>\";\n }\n return html;\n}\nfunction changePastedHTML(html) {\n html = getContentBetweenFragmentComments(html);\n html = convertMsoTableToCompletedTable(html);\n if (isFromMso(html)) {\n html = convertMsoParagraphsToList(html);\n }\n return html;\n}\nfunction getMaxColumnCount(rows) {\n var row = rows.reduce(function (prevRow, currentRow) {\n return prevRow.childCount > currentRow.childCount ? prevRow : currentRow;\n });\n return row.childCount;\n}\nfunction createCells(orgRow, maxColumnCount, cell) {\n var cells = [];\n var cellCount = orgRow.childCount;\n for (var colIdx = 0; colIdx < cellCount; colIdx += 1) {\n if (!orgRow.child(colIdx).attrs.extended) {\n var copiedCell = colIdx < cellCount\n ? cell.create(orgRow.child(colIdx).attrs, orgRow.child(colIdx).content)\n : cell.createAndFill();\n cells.push(copiedCell);\n }\n }\n return cells;\n}\nfunction copyTableHeadRow(orgRow, maxColumnCount, schema) {\n var _a = schema.nodes, tableRow = _a.tableRow, tableHeadCell = _a.tableHeadCell;\n var cells = createCells(orgRow, maxColumnCount, tableHeadCell);\n return tableRow.create(null, cells);\n}\nfunction copyTableBodyRow(orgRow, maxColumnCount, schema) {\n var _a = schema.nodes, tableRow = _a.tableRow, tableBodyCell = _a.tableBodyCell;\n var cells = createCells(orgRow, maxColumnCount, tableBodyCell);\n return tableRow.create(null, cells);\n}\nfunction creatTableBodyDummyRow(columnCount, schema) {\n var _a = schema.nodes, tableRow = _a.tableRow, tableBodyCell = _a.tableBodyCell;\n var cells = [];\n for (var columnIndex = 0; columnIndex < columnCount; columnIndex += 1) {\n var dummyCell = tableBodyCell.createAndFill();\n cells.push(dummyCell);\n }\n return tableRow.create({ dummyRowForPasting: true }, cells);\n}\nfunction createRowsFromPastingTable(tableContent) {\n var tableHeadRows = [];\n var tableBodyRows = [];\n if (tableContent.firstChild.type.name === 'tableHead') {\n var tableHead = tableContent.firstChild;\n tableHead.forEach(function (row) { return tableHeadRows.push(row); });\n }\n if (tableContent.lastChild.type.name === 'tableBody') {\n var tableBody = tableContent.lastChild;\n tableBody.forEach(function (row) { return tableBodyRows.push(row); });\n }\n return __spreadArray$1(__spreadArray$1([], tableHeadRows), tableBodyRows);\n}\nfunction createTableHead(tableHeadRow, maxColumnCount, schema) {\n var copiedRow = copyTableHeadRow(tableHeadRow, maxColumnCount, schema);\n return schema.nodes.tableHead.create(null, copiedRow);\n}\nfunction createTableBody(tableBodyRows, maxColumnCount, schema) {\n var copiedRows = tableBodyRows.map(function (tableBodyRow) {\n return copyTableBodyRow(tableBodyRow, maxColumnCount, schema);\n });\n if (!tableBodyRows.length) {\n var dummyTableRow = creatTableBodyDummyRow(maxColumnCount, schema);\n copiedRows.push(dummyTableRow);\n }\n return schema.nodes.tableBody.create(null, copiedRows);\n}\nfunction createTableFromPastingTable(rows, schema, startFromBody, isInTable) {\n var columnCount = getMaxColumnCount(rows);\n if (startFromBody && isInTable) {\n return schema.nodes.table.create(null, [createTableBody(rows, columnCount, schema)]);\n }\n var tableHeadRow = rows[0];\n var tableBodyRows = rows.slice(1);\n var nodes = [createTableHead(tableHeadRow, columnCount, schema)];\n if (tableBodyRows.length) {\n nodes.push(createTableBody(tableBodyRows, columnCount, schema));\n }\n return schema.nodes.table.create(null, nodes);\n}\nfunction changePastedSlice(slice, schema, isInTable) {\n var nodes = [];\n var content = slice.content, openStart = slice.openStart, openEnd = slice.openEnd;\n content.forEach(function (node) {\n if (node.type.name === 'table') {\n var tableContent = getTableContentFromSlice(new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(node), 0, 0));\n if (tableContent) {\n var rows = createRowsFromPastingTable(tableContent);\n var startFromBody = tableContent.firstChild.type.name === 'tableBody';\n var table = createTableFromPastingTable(rows, schema, startFromBody, isInTable);\n nodes.push(table);\n }\n }\n else {\n nodes.push(node);\n }\n });\n return new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(nodes), openStart, openEnd);\n}\n\nvar DUMMY_CELL_SIZE = 4;\nvar TR_NODES_SIZE = 2;\nfunction getDummyCellSize(dummyCellCount) {\n return dummyCellCount * DUMMY_CELL_SIZE;\n}\nfunction createPastingCells(tableContent, curSelectionInfo, schema) {\n var pastingRows = [];\n var pastingTableRows = createRowsFromPastingTable(tableContent);\n var columnCount = pastingTableRows[0].childCount;\n var rowCount = pastingTableRows.length;\n var startToTableHead = curSelectionInfo.startRowIdx === 0;\n var slicedRows = pastingTableRows.slice(0, rowCount);\n if (startToTableHead) {\n var tableHeadRow = slicedRows.shift();\n if (tableHeadRow) {\n var content = copyTableHeadRow(tableHeadRow, columnCount, schema).content;\n pastingRows.push(content);\n }\n }\n slicedRows.forEach(function (tableBodyRow) {\n if (!tableBodyRow.attrs.dummyRowForPasting) {\n var content = copyTableBodyRow(tableBodyRow, columnCount, schema).content;\n pastingRows.push(content);\n }\n });\n return pastingRows;\n}\nfunction getPastingRangeInfo(map, _a, pastingCells) {\n var startRowIdx = _a.startRowIdx, startColIdx = _a.startColIdx;\n var pastingRowCount = pastingCells.length;\n var pastingColumnCount = 0;\n var _loop_1 = function (i) {\n var columnCount = pastingCells[i].childCount;\n pastingCells[i].forEach(function (_a) {\n var attrs = _a.attrs;\n var colspan = attrs.colspan;\n if (colspan > 1) {\n columnCount += colspan - 1;\n }\n });\n pastingColumnCount = Math.max(pastingColumnCount, columnCount);\n };\n for (var i = 0; i < pastingRowCount; i += 1) {\n _loop_1(i);\n }\n var endRowIdx = startRowIdx + pastingRowCount - 1;\n var endColIdx = startColIdx + pastingColumnCount - 1;\n var addedRowCount = Math.max(endRowIdx + 1 - map.totalRowCount, 0);\n var addedColumnCount = Math.max(endColIdx + 1 - map.totalColumnCount, 0);\n return {\n startRowIdx: startRowIdx,\n startColIdx: startColIdx,\n endRowIdx: endRowIdx,\n endColIdx: endColIdx,\n addedRowCount: addedRowCount,\n addedColumnCount: addedColumnCount,\n };\n}\nfunction addReplacedOffsets(_a, cellsOffsets) {\n var startRowIdx = _a.startRowIdx, startColIdx = _a.startColIdx, endRowIdx = _a.endRowIdx, endColIdx = _a.endColIdx, addedRowCount = _a.addedRowCount, addedColumnCount = _a.addedColumnCount;\n for (var rowIdx = startRowIdx; rowIdx <= endRowIdx - addedRowCount; rowIdx += 1) {\n cellsOffsets.push({\n rowIdx: rowIdx,\n startColIdx: startColIdx,\n endColIdx: endColIdx - addedColumnCount,\n });\n }\n}\nfunction expandColumns(tr, schema, map, _a, cellsOffsets) {\n var startRowIdx = _a.startRowIdx, startColIdx = _a.startColIdx, endRowIdx = _a.endRowIdx, endColIdx = _a.endColIdx, addedRowCount = _a.addedRowCount, addedColumnCount = _a.addedColumnCount;\n var totalRowCount = map.totalRowCount;\n var index = 0;\n for (var rowIdx = 0; rowIdx < totalRowCount; rowIdx += 1) {\n var _b = map.getCellInfo(rowIdx, endColIdx - addedColumnCount), offset = _b.offset, nodeSize = _b.nodeSize;\n var insertOffset = tr.mapping.map(offset + nodeSize);\n var cells = createDummyCells(addedColumnCount, rowIdx, schema);\n tr.insert(insertOffset, cells);\n if (rowIdx >= startRowIdx && rowIdx <= endRowIdx - addedRowCount) {\n var cellInfo = map.getCellInfo(rowIdx, endColIdx - addedColumnCount);\n var startCellOffset = tr.mapping.map(cellInfo.offset);\n var endCellOffset = insertOffset + getDummyCellSize(addedColumnCount);\n cellsOffsets[index] = {\n rowIdx: rowIdx,\n startColIdx: startColIdx,\n endColIdx: endColIdx,\n dummyOffsets: [startCellOffset, endCellOffset],\n };\n index += 1;\n }\n }\n}\nfunction expandRows(tr, schema, map, _a, cellsOffsets) {\n var addedRowCount = _a.addedRowCount, addedColumnCount = _a.addedColumnCount, startColIdx = _a.startColIdx, endColIdx = _a.endColIdx;\n var mapStart = tr.mapping.maps.length;\n var tableEndPos = map.tableEndOffset - 2;\n var rows = createTableBodyRows(addedRowCount, map.totalColumnCount + addedColumnCount, schema);\n var startOffset = tableEndPos;\n tr.insert(tr.mapping.slice(mapStart).map(startOffset), rows);\n for (var rowIndex = 0; rowIndex < addedRowCount; rowIndex += 1) {\n var startCellOffset = startOffset + getDummyCellSize(startColIdx) + 1;\n var endCellOffset = startOffset + getDummyCellSize(endColIdx + 1) + 1;\n var nextCellOffset = startOffset + getDummyCellSize(map.totalColumnCount + addedColumnCount) + TR_NODES_SIZE;\n cellsOffsets.push({\n rowIdx: rowIndex + map.totalRowCount,\n startColIdx: startColIdx,\n endColIdx: endColIdx,\n dummyOffsets: [startCellOffset, endCellOffset],\n });\n startOffset = nextCellOffset;\n }\n}\nfunction replaceCells(tr, pastingRows, cellsOffsets, map) {\n var mapStart = tr.mapping.maps.length;\n cellsOffsets.forEach(function (offsets, index) {\n var rowIdx = offsets.rowIdx, startColIdx = offsets.startColIdx, endColIdx = offsets.endColIdx, dummyOffsets = offsets.dummyOffsets;\n var mapping = tr.mapping.slice(mapStart);\n var cells = new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](pastingRows[index], 0, 0);\n var from = dummyOffsets ? dummyOffsets[0] : map.getCellStartOffset(rowIdx, startColIdx);\n var to = dummyOffsets ? dummyOffsets[1] : map.getCellEndOffset(rowIdx, endColIdx);\n tr.replace(mapping.map(from), mapping.map(to), cells);\n });\n}\nfunction pasteToTable(view, slice) {\n var _a = view.state, selection = _a.selection, schema = _a.schema, tr = _a.tr;\n var _b = getResolvedSelection(selection), anchor = _b.anchor, head = _b.head;\n if (anchor && head) {\n var tableContent = getTableContentFromSlice(slice);\n if (!tableContent) {\n return false;\n }\n var map = TableOffsetMap.create(anchor);\n var curSelectionInfo = map.getRectOffsets(anchor, head);\n var pastingCells = createPastingCells(tableContent, curSelectionInfo, schema);\n var pastingInfo = getPastingRangeInfo(map, curSelectionInfo, pastingCells);\n var cellsOffsets = [];\n // @TODO: unmerge the span and paste the cell\n if (canMerge(map, pastingInfo)) {\n addReplacedOffsets(pastingInfo, cellsOffsets);\n if (pastingInfo.addedColumnCount) {\n expandColumns(tr, schema, map, pastingInfo, cellsOffsets);\n }\n if (pastingInfo.addedRowCount) {\n expandRows(tr, schema, map, pastingInfo, cellsOffsets);\n }\n replaceCells(tr, pastingCells, cellsOffsets, map);\n view.dispatch(tr);\n setSelection(view, cellsOffsets, map.getCellInfo(0, 0).offset);\n }\n return true;\n }\n return false;\n}\nfunction setSelection(view, cellsOffsets, pos) {\n var _a = view.state, tr = _a.tr, doc = _a.doc;\n // get changed cell offsets\n var map = TableOffsetMap.create(doc.resolve(pos));\n // eslint-disable-next-line prefer-destructuring\n var _b = cellsOffsets[0], startRowIdx = _b.rowIdx, startColIdx = _b.startColIdx;\n var _c = last$1(cellsOffsets), endRowIdx = _c.rowIdx, endColIdx = _c.endColIdx;\n var startOffset = map.getCellInfo(startRowIdx, startColIdx).offset;\n var endOffset = map.getCellInfo(endRowIdx, endColIdx).offset;\n view.dispatch(tr.setSelection(new CellSelection(doc.resolve(startOffset), doc.resolve(endOffset))));\n}\nfunction canMerge(map, pastingInfo) {\n var ranges = map.getSpannedOffsets(pastingInfo);\n var _a = getRowAndColumnCount(ranges), rowCount = _a.rowCount, columnCount = _a.columnCount;\n var _b = getRowAndColumnCount(pastingInfo), pastingRowCount = _b.rowCount, pastingColumnCount = _b.columnCount;\n return rowCount === pastingRowCount && columnCount === pastingColumnCount;\n}\n\nvar Doc = /** @class */ (function (_super) {\n __extends$1(Doc, _super);\n function Doc() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Doc.prototype, \"name\", {\n get: function () {\n return 'doc';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Doc.prototype, \"schema\", {\n get: function () {\n return {\n content: 'block+',\n };\n },\n enumerable: false,\n configurable: true\n });\n return Doc;\n}(Node$2));\n\nvar Paragraph = /** @class */ (function (_super) {\n __extends$1(Paragraph, _super);\n function Paragraph() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Paragraph.prototype, \"name\", {\n get: function () {\n return 'paragraph';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Paragraph.prototype, \"schema\", {\n get: function () {\n return {\n content: 'inline*',\n group: 'block',\n attrs: __assign$1({}, getDefaultCustomAttrs()),\n parseDOM: [{ tag: 'p' }],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return ['p', getCustomAttrs(attrs), 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n return Paragraph;\n}(Node$2));\n\nvar reSoftTabLen = /\\s{1,4}$/;\nvar Text = /** @class */ (function (_super) {\n __extends$1(Text, _super);\n function Text() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Text.prototype, \"name\", {\n get: function () {\n return 'text';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Text.prototype, \"schema\", {\n get: function () {\n return {\n group: 'inline',\n };\n },\n enumerable: false,\n configurable: true\n });\n Text.prototype.addSpaces = function () {\n return function (_a, dispatch) {\n var selection = _a.selection, tr = _a.tr;\n var $from = selection.$from, $to = selection.$to;\n var range = $from.blockRange($to);\n if (range && !isInListNode($from) && !isInTableNode($from)) {\n dispatch(tr.insertText(' ', $from.pos, $to.pos));\n return true;\n }\n return false;\n };\n };\n Text.prototype.removeSpaces = function () {\n return function (_a, dispatch) {\n var selection = _a.selection, tr = _a.tr;\n var $from = selection.$from, $to = selection.$to, from = selection.from;\n var range = $from.blockRange($to);\n if (range && !isInListNode($from) && !isInTableNode($from)) {\n var nodeBefore = $from.nodeBefore;\n if (nodeBefore && nodeBefore.isText) {\n var text = nodeBefore.text;\n var removedSpaceText = text.replace(reSoftTabLen, '');\n var spaces = text.length - removedSpaceText.length;\n dispatch(tr.delete(from - spaces, from));\n return true;\n }\n }\n return false;\n };\n };\n Text.prototype.keymaps = function () {\n return {\n Tab: this.addSpaces(),\n 'Shift-Tab': this.removeSpaces(),\n };\n };\n return Text;\n}(Node$2));\n\nvar Heading = /** @class */ (function (_super) {\n __extends$1(Heading, _super);\n function Heading() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Heading.prototype, \"name\", {\n get: function () {\n return 'heading';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Heading.prototype, \"levels\", {\n get: function () {\n return [1, 2, 3, 4, 5, 6];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Heading.prototype, \"schema\", {\n get: function () {\n var parseDOM = this.levels.map(function (level) {\n return {\n tag: \"h\" + level,\n getAttrs: function (dom) {\n var rawHTML = dom.getAttribute('data-raw-html');\n return __assign$1({ level: level }, (rawHTML && { rawHTML: rawHTML }));\n },\n };\n });\n return {\n attrs: __assign$1({ level: { default: 1 }, headingType: { default: 'atx' }, rawHTML: { default: null } }, getDefaultCustomAttrs()),\n content: 'inline*',\n group: 'block',\n defining: true,\n parseDOM: parseDOM,\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return [\"h\" + attrs.level, getCustomAttrs(attrs), 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Heading.prototype.commands = function () {\n return function (payload) { return function (state, dispatch) {\n var nodeType = state.schema.nodes[payload.level ? 'heading' : 'paragraph'];\n return Object(prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"setBlockType\"])(nodeType, payload)(state, dispatch);\n }; };\n };\n return Heading;\n}(Node$2));\n\nvar CodeBlock = /** @class */ (function (_super) {\n __extends$1(CodeBlock, _super);\n function CodeBlock() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(CodeBlock.prototype, \"name\", {\n get: function () {\n return 'codeBlock';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CodeBlock.prototype, \"schema\", {\n get: function () {\n return {\n content: 'text*',\n group: 'block',\n attrs: __assign$1({ language: { default: null }, rawHTML: { default: null } }, getDefaultCustomAttrs()),\n code: true,\n defining: true,\n marks: '',\n parseDOM: [\n {\n tag: 'pre',\n preserveWhitespace: 'full',\n getAttrs: function (dom) {\n var rawHTML = dom.getAttribute('data-raw-html');\n var child = dom.firstElementChild;\n return __assign$1({ language: (child === null || child === void 0 ? void 0 : child.getAttribute('data-language')) || null }, (rawHTML && { rawHTML: rawHTML }));\n },\n },\n ],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return [\n attrs.rawHTML || 'pre',\n ['code', __assign$1({ 'data-language': attrs.language }, getCustomAttrs(attrs)), 0],\n ];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n CodeBlock.prototype.commands = function () {\n return function () { return function (state, dispatch) { return Object(prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"setBlockType\"])(state.schema.nodes.codeBlock)(state, dispatch); }; };\n };\n CodeBlock.prototype.moveCursor = function (direction) {\n var _this = this;\n return function (state, dispatch) {\n var tr = state.tr, doc = state.doc, schema = state.schema;\n var $from = state.selection.$from;\n var view = _this.context.view;\n if (view.endOfTextblock(direction) && $from.node().type.name === 'codeBlock') {\n var lines = $from.parent.textContent.split('\\n');\n var offset = direction === 'up' ? $from.start() : $from.end();\n var range = direction === 'up'\n ? [offset, lines[0].length + offset]\n : [offset - last$1(lines).length, offset];\n var pos = doc.resolve(direction === 'up' ? $from.before() : $from.after());\n var node = direction === 'up' ? pos.nodeBefore : pos.nodeAfter;\n if (between$1($from.pos, range[0], range[1]) && !node) {\n var newTr = addParagraph(tr, pos, schema);\n if (newTr) {\n dispatch(newTr);\n return true;\n }\n }\n }\n return false;\n };\n };\n CodeBlock.prototype.keymaps = function () {\n var codeCommand = this.commands()();\n return {\n 'Shift-Mod-p': codeCommand,\n 'Shift-Mod-P': codeCommand,\n ArrowUp: this.moveCursor('up'),\n ArrowDown: this.moveCursor('down'),\n };\n };\n return CodeBlock;\n}(Node$2));\n\nvar BulletList = /** @class */ (function (_super) {\n __extends$1(BulletList, _super);\n function BulletList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(BulletList.prototype, \"name\", {\n get: function () {\n return 'bulletList';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BulletList.prototype, \"schema\", {\n get: function () {\n return {\n content: 'listItem+',\n group: 'block',\n attrs: __assign$1({ rawHTML: { default: null } }, getDefaultCustomAttrs()),\n parseDOM: [createDOMInfoParsedRawHTML('ul')],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return ['ul', getCustomAttrs(attrs), 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n BulletList.prototype.changeList = function () {\n return function (state, dispatch) { return changeList(state.schema.nodes.bulletList)(state, dispatch); };\n };\n BulletList.prototype.commands = function () {\n return {\n bulletList: this.changeList,\n taskList: toggleTask,\n };\n };\n BulletList.prototype.keymaps = function () {\n var bulletListCommand = this.changeList();\n var _a = getWwCommands(), indent = _a.indent, outdent = _a.outdent;\n return {\n 'Mod-u': bulletListCommand,\n 'Mod-U': bulletListCommand,\n Tab: indent(),\n 'Shift-Tab': outdent(),\n };\n };\n return BulletList;\n}(Node$2));\n\nvar OrderedList = /** @class */ (function (_super) {\n __extends$1(OrderedList, _super);\n function OrderedList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(OrderedList.prototype, \"name\", {\n get: function () {\n return 'orderedList';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(OrderedList.prototype, \"schema\", {\n get: function () {\n return {\n content: 'listItem+',\n group: 'block',\n attrs: __assign$1({ order: { default: 1 }, rawHTML: { default: null } }, getDefaultCustomAttrs()),\n parseDOM: [\n {\n tag: 'ol',\n getAttrs: function (dom) {\n var start = dom.getAttribute('start');\n var rawHTML = dom.getAttribute('data-raw-html');\n return __assign$1({ order: dom.hasAttribute('start') ? Number(start) : 1 }, (rawHTML && { rawHTML: rawHTML }));\n },\n },\n ],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return [\n attrs.rawHTML || 'ol',\n __assign$1({ start: attrs.order === 1 ? null : attrs.order }, getCustomAttrs(attrs)),\n 0,\n ];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n OrderedList.prototype.commands = function () {\n return function () { return function (state, dispatch) { return changeList(state.schema.nodes.orderedList)(state, dispatch); }; };\n };\n OrderedList.prototype.keymaps = function () {\n var orderedListCommand = this.commands()();\n var _a = getWwCommands(), indent = _a.indent, outdent = _a.outdent;\n return {\n 'Mod-o': orderedListCommand,\n 'Mod-O': orderedListCommand,\n Tab: indent(),\n 'Shift-Tab': outdent(),\n };\n };\n return OrderedList;\n}(Node$2));\n\nvar ListItem = /** @class */ (function (_super) {\n __extends$1(ListItem, _super);\n function ListItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(ListItem.prototype, \"name\", {\n get: function () {\n return 'listItem';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ListItem.prototype, \"schema\", {\n get: function () {\n return {\n content: 'paragraph block*',\n selectable: false,\n attrs: {\n task: { default: false },\n checked: { default: false },\n rawHTML: { default: null },\n },\n defining: true,\n parseDOM: [\n {\n tag: 'li',\n getAttrs: function (dom) {\n var rawHTML = dom.getAttribute('data-raw-html');\n return __assign$1({ task: dom.hasAttribute('data-task'), checked: dom.hasAttribute('data-task-checked') }, (rawHTML && { rawHTML: rawHTML }));\n },\n },\n ],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n var task = attrs.task, checked = attrs.checked;\n if (!task) {\n return [attrs.rawHTML || 'li', 0];\n }\n var classNames = ['task-list-item'];\n if (checked) {\n classNames.push('checked');\n }\n return [\n attrs.rawHTML || 'li',\n __assign$1({ class: classNames.join(' '), 'data-task': task }, (checked && { 'data-task-checked': checked })),\n 0,\n ];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n ListItem.prototype.liftToPrevListItem = function () {\n return function (state, dispatch) {\n var selection = state.selection, tr = state.tr, schema = state.schema;\n var $from = selection.$from, empty = selection.empty;\n var listItem = schema.nodes.listItem;\n var parent = $from.parent;\n var listItemParent = $from.node(-1);\n if (empty && !parent.childCount && listItemParent.type === listItem) {\n // move to previous sibling list item when the current list item is not top list item\n if ($from.index(-2) >= 1) {\n // should subtract '1' for considering tag length(<li>)\n tr.delete($from.start(-1) - 1, $from.end(-1));\n dispatch(tr);\n return true;\n }\n var grandParentListItem = $from.node(-3);\n // move to parent list item when the current list item is top list item\n if (grandParentListItem.type === listItem) {\n // should subtract '1' for considering tag length(<ul>)\n tr.delete($from.start(-2) - 1, $from.end(-1));\n dispatch(tr);\n return true;\n }\n }\n return false;\n };\n };\n ListItem.prototype.keymaps = function () {\n var split = function (state, dispatch) {\n return splitListItem(state.schema.nodes.listItem)(state, dispatch);\n };\n return {\n Backspace: this.liftToPrevListItem(),\n Enter: split,\n };\n };\n return ListItem;\n}(Node$2));\n\nvar BlockQuote = /** @class */ (function (_super) {\n __extends$1(BlockQuote, _super);\n function BlockQuote() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(BlockQuote.prototype, \"name\", {\n get: function () {\n return 'blockQuote';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BlockQuote.prototype, \"schema\", {\n get: function () {\n return {\n attrs: __assign$1({ rawHTML: { default: null } }, getDefaultCustomAttrs()),\n content: 'block+',\n group: 'block',\n parseDOM: [createDOMInfoParsedRawHTML('blockquote')],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return ['blockquote', getCustomAttrs(attrs), 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n BlockQuote.prototype.commands = function () {\n return function () { return function (state, dispatch) { return Object(prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"wrapIn\"])(state.schema.nodes.blockQuote)(state, dispatch); }; };\n };\n BlockQuote.prototype.keymaps = function () {\n var blockQutoeCommand = this.commands()();\n return {\n 'Alt-q': blockQutoeCommand,\n 'Alt-Q': blockQutoeCommand,\n };\n };\n return BlockQuote;\n}(Node$2));\n\nvar cellOffsetFnMap = {\n left: getLeftCellOffset,\n right: getRightCellOffset,\n up: getUpCellOffset,\n down: getDownCellOffset,\n};\nfunction isInFirstListItem(pos, doc, _a) {\n var paraDepth = _a[0], listDepth = _a[1];\n var listItemNode = doc.resolve(pos.before(paraDepth - 1));\n return listDepth === paraDepth && !listItemNode.nodeBefore;\n}\nfunction isInLastListItem(pos) {\n var _a;\n var depth = pos.depth;\n var parentNode;\n while (depth) {\n parentNode = pos.node(depth);\n if (parentNode.type.name === 'tableBodyCell') {\n break;\n }\n if (parentNode.type.name === 'listItem') {\n var grandParent = pos.node(depth - 1);\n var lastListItem = grandParent.lastChild === parentNode;\n var hasChildren = ((_a = parentNode.lastChild) === null || _a === void 0 ? void 0 : _a.type.name) !== 'paragraph';\n if (!lastListItem) {\n return false;\n }\n return !hasChildren;\n }\n depth -= 1;\n }\n return false;\n}\nfunction canMoveToBeforeCell(direction, _a, from, doc, inList) {\n var paraDepth = _a[0], listDepth = _a[1], curDepth = _a[2];\n if (direction === \"left\" /* LEFT */ || direction === \"up\" /* UP */) {\n if (inList && !isInFirstListItem(from, doc, [paraDepth, listDepth])) {\n return false;\n }\n var endOffset = from.before(curDepth);\n var nodeBefore = doc.resolve(endOffset).nodeBefore;\n if (nodeBefore) {\n return false;\n }\n }\n return true;\n}\nfunction canMoveToAfterCell(direction, curDepth, from, doc, inList) {\n if (direction === \"right\" /* RIGHT */ || direction === \"down\" /* DOWN */) {\n if (inList && !isInLastListItem(from)) {\n return false;\n }\n var endOffset = from.after(curDepth);\n var nodeAfter = doc.resolve(endOffset).nodeAfter;\n if (nodeAfter) {\n return false;\n }\n }\n return true;\n}\nfunction canMoveBetweenCells(direction, _a, from, doc) {\n var cellDepth = _a[0], paraDepth = _a[1];\n var listDepth = cellDepth + 3; // 3 is position of <ul><li><p>\n var inList = paraDepth >= listDepth;\n var curDepth = inList ? cellDepth + 1 : paraDepth;\n var moveBeforeCell = canMoveToBeforeCell(direction, [paraDepth, listDepth, curDepth], from, doc, inList);\n var moveAfterCell = canMoveToAfterCell(direction, curDepth, from, doc, inList);\n return moveBeforeCell && moveAfterCell;\n}\nfunction canBeOutOfTable(direction, map, _a) {\n var rowIdx = _a[0], colIdx = _a[1];\n var rowspanInfo = map.getRowspanStartInfo(rowIdx, colIdx);\n var inFirstRow = direction === \"up\" /* UP */ && rowIdx === 0;\n var inLastRow = direction === \"down\" /* DOWN */ &&\n ((rowspanInfo === null || rowspanInfo === void 0 ? void 0 : rowspanInfo.count) > 1 ? rowIdx + rowspanInfo.count - 1 : rowIdx) === map.totalRowCount - 1;\n return inFirstRow || inLastRow;\n}\nfunction addParagraphBeforeTable(tr, map, schema) {\n var tableStartPos = tr.doc.resolve(map.tableStartOffset - 1);\n if (!tableStartPos.nodeBefore) {\n return addParagraph(tr, tableStartPos, schema);\n }\n return tr.setSelection(prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Selection\"].near(tableStartPos, -1));\n}\nfunction addParagraphAfterTable(tr, map, schema, forcedAddtion) {\n if (forcedAddtion === void 0) { forcedAddtion = false; }\n var tableEndPos = tr.doc.resolve(map.tableEndOffset);\n if (forcedAddtion || !tableEndPos.nodeAfter) {\n return addParagraph(tr, tableEndPos, schema);\n }\n return tr.setSelection(prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Selection\"].near(tableEndPos, 1));\n}\nfunction getRightCellOffset(_a, map) {\n var rowIdx = _a[0], colIdx = _a[1];\n var totalRowCount = map.totalRowCount, totalColumnCount = map.totalColumnCount;\n var lastCellInRow = colIdx === totalColumnCount - 1;\n var lastCellInTable = rowIdx === totalRowCount - 1 && lastCellInRow;\n if (!lastCellInTable) {\n var nextColIdx = colIdx + 1;\n var colspanInfo = map.getColspanStartInfo(rowIdx, colIdx);\n if ((colspanInfo === null || colspanInfo === void 0 ? void 0 : colspanInfo.count) > 1) {\n nextColIdx += colspanInfo.count - 1;\n }\n if (lastCellInRow || nextColIdx === totalColumnCount) {\n rowIdx += 1;\n nextColIdx = 0;\n }\n var offset = map.getCellInfo(rowIdx, nextColIdx).offset;\n return offset + 2;\n }\n return null;\n}\nfunction getLeftCellOffset(_a, map) {\n var rowIdx = _a[0], colIdx = _a[1];\n var totalColumnCount = map.totalColumnCount;\n var firstCellInRow = colIdx === 0;\n var firstCellInTable = rowIdx === 0 && firstCellInRow;\n if (!firstCellInTable) {\n colIdx -= 1;\n if (firstCellInRow) {\n rowIdx -= 1;\n colIdx = totalColumnCount - 1;\n }\n var _b = map.getCellInfo(rowIdx, colIdx), offset = _b.offset, nodeSize = _b.nodeSize;\n return offset + nodeSize - 2;\n }\n return null;\n}\nfunction getUpCellOffset(_a, map) {\n var rowIdx = _a[0], colIdx = _a[1];\n if (rowIdx > 0) {\n var _b = map.getCellInfo(rowIdx - 1, colIdx), offset = _b.offset, nodeSize = _b.nodeSize;\n return offset + nodeSize - 2;\n }\n return null;\n}\nfunction getDownCellOffset(_a, map) {\n var rowIdx = _a[0], colIdx = _a[1];\n var totalRowCount = map.totalRowCount;\n if (rowIdx < totalRowCount - 1) {\n var nextRowIdx = rowIdx + 1;\n var rowspanInfo = map.getRowspanStartInfo(rowIdx, colIdx);\n if ((rowspanInfo === null || rowspanInfo === void 0 ? void 0 : rowspanInfo.count) > 1) {\n nextRowIdx += rowspanInfo.count - 1;\n }\n var offset = map.getCellInfo(nextRowIdx, colIdx).offset;\n return offset + 2;\n }\n return null;\n}\nfunction moveToCell(direction, tr, cellIndex, map) {\n var cellOffsetFn = cellOffsetFnMap[direction];\n var offset = cellOffsetFn(cellIndex, map);\n if (offset) {\n var dir = direction === \"right\" /* RIGHT */ || direction === \"down\" /* DOWN */ ? 1 : -1;\n return tr.setSelection(prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Selection\"].near(tr.doc.resolve(offset), dir));\n }\n return null;\n}\nfunction canSelectTableNode(direction, map, _a) {\n var rowIdx = _a[0], colIdx = _a[1];\n if (direction === \"up\" /* UP */ || direction === \"down\" /* DOWN */) {\n return false;\n }\n var tableStartOffset = map.tableStartOffset, tableEndOffset = map.tableEndOffset;\n var _b = map.getCellInfo(rowIdx, colIdx), offset = _b.offset, nodeSize = _b.nodeSize;\n var pos = direction === \"left\" /* LEFT */ ? tableStartOffset : tableEndOffset;\n var curPos = direction === \"left\" /* LEFT */ ? offset - 2 : offset + nodeSize + 3;\n return pos === curPos;\n}\nfunction selectNode(tr, pos, depth) {\n var tablePos = tr.doc.resolve(pos.before(depth - 3));\n return tr.setSelection(new prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"NodeSelection\"](tablePos));\n}\n\nfunction getTargetRowInfo(direction, map, selectionInfo) {\n var targetRowIdx;\n var insertColIdx;\n var nodeSize;\n if (direction === \"up\" /* UP */) {\n targetRowIdx = selectionInfo.startRowIdx;\n insertColIdx = 0;\n nodeSize = -1;\n }\n else {\n targetRowIdx = selectionInfo.endRowIdx;\n insertColIdx = map.totalColumnCount - 1;\n nodeSize = map.getCellInfo(targetRowIdx, insertColIdx).nodeSize + 1;\n }\n return { targetRowIdx: targetRowIdx, insertColIdx: insertColIdx, nodeSize: nodeSize };\n}\nfunction getRowRanges(map, rowIdx, totalColumnCount) {\n var startOffset = map.getCellInfo(rowIdx, 0).offset;\n var _a = map.getCellInfo(rowIdx, totalColumnCount - 1), offset = _a.offset, nodeSize = _a.nodeSize;\n return { from: startOffset, to: offset + nodeSize };\n}\nvar Table = /** @class */ (function (_super) {\n __extends$1(Table, _super);\n function Table() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Table.prototype, \"name\", {\n get: function () {\n return 'table';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Table.prototype, \"schema\", {\n get: function () {\n return {\n content: 'tableHead{1} tableBody{1}',\n group: 'block',\n attrs: __assign$1({ rawHTML: { default: null } }, getDefaultCustomAttrs()),\n parseDOM: [createDOMInfoParsedRawHTML('table')],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return ['table', getCustomAttrs(attrs), 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Table.prototype.addTable = function () {\n return function (payload) {\n if (payload === void 0) { payload = { rowCount: 2, columnCount: 1, data: [] }; }\n return function (state, dispatch) {\n var rowCount = payload.rowCount, columnCount = payload.columnCount, data = payload.data;\n var schema = state.schema, selection = state.selection, tr = state.tr;\n var from = selection.from, to = selection.to, $from = selection.$from;\n var collapsed = from === to;\n if (collapsed && !isInTableNode($from)) {\n var _a = schema.nodes, tableHead = _a.tableHead, tableBody = _a.tableBody;\n var theadData = data === null || data === void 0 ? void 0 : data.slice(0, columnCount);\n var tbodyData = data === null || data === void 0 ? void 0 : data.slice(columnCount, data.length);\n var tableHeadRow = createTableHeadRow(columnCount, schema, theadData);\n var tableBodyRows = createTableBodyRows(rowCount - 1, columnCount, schema, tbodyData);\n var table = schema.nodes.table.create(null, [\n tableHead.create(null, tableHeadRow),\n tableBody.create(null, tableBodyRows),\n ]);\n dispatch(tr.replaceSelectionWith(table));\n return true;\n }\n return false;\n };\n };\n };\n Table.prototype.removeTable = function () {\n return function () { return function (state, dispatch) {\n var selection = state.selection, tr = state.tr;\n var map = TableOffsetMap.create(selection.$anchor);\n if (map) {\n var tableStartOffset = map.tableStartOffset, tableEndOffset = map.tableEndOffset;\n var startOffset = tableStartOffset - 1;\n var cursorPos = createTextSelection(tr.delete(startOffset, tableEndOffset), startOffset);\n dispatch(tr.setSelection(cursorPos));\n return true;\n }\n return false;\n }; };\n };\n Table.prototype.addColumn = function (direction) {\n return function () { return function (state, dispatch) {\n var selection = state.selection, tr = state.tr, schema = state.schema;\n var _a = getResolvedSelection(selection), anchor = _a.anchor, head = _a.head;\n if (anchor && head) {\n var map = TableOffsetMap.create(anchor);\n var selectionInfo = map.getRectOffsets(anchor, head);\n var targetColIdx = direction === \"left\" /* LEFT */ ? selectionInfo.startColIdx : selectionInfo.endColIdx + 1;\n var columnCount = getRowAndColumnCount(selectionInfo).columnCount;\n var totalRowCount = map.totalRowCount;\n for (var rowIdx = 0; rowIdx < totalRowCount; rowIdx += 1) {\n var cells = createDummyCells(columnCount, rowIdx, schema);\n tr.insert(tr.mapping.map(map.posAt(rowIdx, targetColIdx)), cells);\n }\n dispatch(tr);\n return true;\n }\n return false;\n }; };\n };\n Table.prototype.removeColumn = function () {\n return function () { return function (state, dispatch) {\n var selection = state.selection, tr = state.tr;\n var _a = getResolvedSelection(selection), anchor = _a.anchor, head = _a.head;\n if (anchor && head) {\n var map = TableOffsetMap.create(anchor);\n var selectionInfo = map.getRectOffsets(anchor, head);\n var totalColumnCount = map.totalColumnCount, totalRowCount = map.totalRowCount;\n var columnCount = getRowAndColumnCount(selectionInfo).columnCount;\n var selectedAllColumn = columnCount === totalColumnCount;\n if (selectedAllColumn) {\n return false;\n }\n var startColIdx = selectionInfo.startColIdx, endColIdx = selectionInfo.endColIdx;\n var mapStart = tr.mapping.maps.length;\n for (var rowIdx = 0; rowIdx < totalRowCount; rowIdx += 1) {\n for (var colIdx = endColIdx; colIdx >= startColIdx; colIdx -= 1) {\n var _b = map.getCellInfo(rowIdx, colIdx), offset = _b.offset, nodeSize = _b.nodeSize;\n var from = tr.mapping.slice(mapStart).map(offset);\n var to = from + nodeSize;\n tr.delete(from, to);\n }\n }\n dispatch(tr);\n return true;\n }\n return false;\n }; };\n };\n Table.prototype.addRow = function (direction) {\n return function () { return function (state, dispatch) {\n var selection = state.selection, schema = state.schema, tr = state.tr;\n var _a = getResolvedSelection(selection), anchor = _a.anchor, head = _a.head;\n if (anchor && head) {\n var map = TableOffsetMap.create(anchor);\n var totalColumnCount = map.totalColumnCount;\n var selectionInfo = map.getRectOffsets(anchor, head);\n var rowCount = getRowAndColumnCount(selectionInfo).rowCount;\n var _b = getTargetRowInfo(direction, map, selectionInfo), targetRowIdx = _b.targetRowIdx, insertColIdx = _b.insertColIdx, nodeSize = _b.nodeSize;\n var selectedThead = targetRowIdx === 0;\n if (!selectedThead) {\n var rows = [];\n var from = tr.mapping.map(map.posAt(targetRowIdx, insertColIdx)) + nodeSize;\n var cells = [];\n for (var colIdx = 0; colIdx < totalColumnCount; colIdx += 1) {\n cells = cells.concat(createDummyCells(1, targetRowIdx, schema));\n }\n for (var i = 0; i < rowCount; i += 1) {\n rows.push(schema.nodes.tableRow.create(null, cells));\n }\n dispatch(tr.insert(from, rows));\n return true;\n }\n }\n return false;\n }; };\n };\n Table.prototype.removeRow = function () {\n return function () { return function (state, dispatch) {\n var selection = state.selection, tr = state.tr;\n var _a = getResolvedSelection(selection), anchor = _a.anchor, head = _a.head;\n if (anchor && head) {\n var map = TableOffsetMap.create(anchor);\n var totalRowCount = map.totalRowCount, totalColumnCount = map.totalColumnCount;\n var selectionInfo = map.getRectOffsets(anchor, head);\n var rowCount = getRowAndColumnCount(selectionInfo).rowCount;\n var startRowIdx = selectionInfo.startRowIdx, endRowIdx = selectionInfo.endRowIdx;\n var selectedThead = startRowIdx === 0;\n var selectedAllTbodyRow = rowCount === totalRowCount - 1;\n if (selectedAllTbodyRow || selectedThead) {\n return false;\n }\n for (var rowIdx = endRowIdx; rowIdx >= startRowIdx; rowIdx -= 1) {\n var _b = getRowRanges(map, rowIdx, totalColumnCount), from = _b.from, to = _b.to;\n // delete table row\n tr.delete(from - 1, to + 1);\n }\n dispatch(tr);\n return true;\n }\n return false;\n }; };\n };\n Table.prototype.alignColumn = function () {\n return function (payload) {\n if (payload === void 0) { payload = { align: 'center' }; }\n return function (state, dispatch) {\n var align = payload.align;\n var selection = state.selection, tr = state.tr;\n var _a = getResolvedSelection(selection), anchor = _a.anchor, head = _a.head;\n if (anchor && head) {\n var map = TableOffsetMap.create(anchor);\n var totalRowCount = map.totalRowCount;\n var selectionInfo = map.getRectOffsets(anchor, head);\n var startColIdx = selectionInfo.startColIdx, endColIdx = selectionInfo.endColIdx;\n for (var rowIdx = 0; rowIdx < totalRowCount; rowIdx += 1) {\n for (var colIdx = startColIdx; colIdx <= endColIdx; colIdx += 1) {\n if (!map.extendedRowspan(rowIdx, colIdx) && !map.extendedColspan(rowIdx, colIdx)) {\n var _b = map.getNodeAndPos(rowIdx, colIdx), node = _b.node, pos = _b.pos;\n var attrs = setAttrs(node, { align: align });\n tr.setNodeMarkup(pos, null, attrs);\n }\n }\n }\n dispatch(tr);\n return true;\n }\n return false;\n };\n };\n };\n Table.prototype.moveToCell = function (direction) {\n return function (state, dispatch) {\n var selection = state.selection, tr = state.tr, schema = state.schema;\n var _a = getResolvedSelection(selection), anchor = _a.anchor, head = _a.head;\n if (anchor && head) {\n var map = TableOffsetMap.create(anchor);\n var cellIndex = map.getCellIndex(anchor);\n var newTr = void 0;\n if (canBeOutOfTable(direction, map, cellIndex)) {\n // When there is no content before or after the table,\n // an empty line('paragraph') is created by pressing the arrow keys.\n newTr = addParagraphAfterTable(tr, map, schema);\n }\n else {\n newTr = moveToCell(direction, tr, cellIndex, map);\n }\n if (newTr) {\n dispatch(newTr);\n return true;\n }\n }\n return false;\n };\n };\n Table.prototype.moveInCell = function (direction) {\n var _this = this;\n return function (state, dispatch) {\n var selection = state.selection, tr = state.tr, doc = state.doc, schema = state.schema;\n var $from = selection.$from;\n var view = _this.context.view;\n if (!view.endOfTextblock(direction)) {\n return false;\n }\n var cell = findNodeBy($from, function (_a) {\n var type = _a.type;\n return type.name === 'tableHeadCell' || type.name === 'tableBodyCell';\n });\n if (cell) {\n var para = findNodeBy($from, function (_a) {\n var type = _a.type;\n return type.name === 'paragraph';\n });\n var cellDepth = cell.depth;\n if (para && canMoveBetweenCells(direction, [cellDepth, para.depth], $from, doc)) {\n var anchor = getResolvedSelection(selection).anchor;\n var map = TableOffsetMap.create(anchor);\n var cellIndex = map.getCellIndex(anchor);\n var newTr = void 0;\n if (canSelectTableNode(direction, map, cellIndex)) {\n // When the cursor position is at the end of the cell,\n // the table is selected when the left / right arrow keys are pressed.\n newTr = selectNode(tr, $from, cellDepth);\n }\n else if (canBeOutOfTable(direction, map, cellIndex)) {\n // When there is no content before or after the table,\n // an empty line('paragraph') is created by pressing the arrow keys.\n if (direction === \"up\" /* UP */) {\n newTr = addParagraphBeforeTable(tr, map, schema);\n }\n else if (direction === \"down\" /* DOWN */) {\n newTr = addParagraphAfterTable(tr, map, schema);\n }\n }\n else {\n newTr = moveToCell(direction, tr, cellIndex, map);\n }\n if (newTr) {\n dispatch(newTr);\n return true;\n }\n }\n }\n return false;\n };\n };\n Table.prototype.deleteCells = function () {\n return function (state, dispatch) {\n var schema = state.schema, selection = state.selection, tr = state.tr;\n var _a = getResolvedSelection(selection), anchor = _a.anchor, head = _a.head;\n var textSelection = selection instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"TextSelection\"];\n if (anchor && head && !textSelection) {\n var map = TableOffsetMap.create(anchor);\n var _b = map.getRectOffsets(anchor, head), startRowIdx = _b.startRowIdx, startColIdx = _b.startColIdx, endRowIdx = _b.endRowIdx, endColIdx = _b.endColIdx;\n for (var rowIdx = startRowIdx; rowIdx <= endRowIdx; rowIdx += 1) {\n for (var colIdx = startColIdx; colIdx <= endColIdx; colIdx += 1) {\n if (!map.extendedRowspan(rowIdx, colIdx) && !map.extendedColspan(rowIdx, colIdx)) {\n var _c = map.getNodeAndPos(rowIdx, colIdx), node = _c.node, pos = _c.pos;\n var cells = createDummyCells(1, rowIdx, schema, node.attrs);\n tr.replaceWith(tr.mapping.map(pos), tr.mapping.map(pos + node.nodeSize), cells);\n }\n }\n }\n dispatch(tr);\n return true;\n }\n return false;\n };\n };\n Table.prototype.exitTable = function () {\n return function (state, dispatch) {\n var selection = state.selection, tr = state.tr, schema = state.schema;\n var $from = selection.$from;\n var cell = findNodeBy($from, function (_a) {\n var type = _a.type;\n return type.name === 'tableHeadCell' || type.name === 'tableBodyCell';\n });\n if (cell) {\n var para = findNodeBy($from, function (_a) {\n var type = _a.type;\n return type.name === 'paragraph';\n });\n if (para) {\n var anchor = getResolvedSelection(selection).anchor;\n var map = TableOffsetMap.create(anchor);\n dispatch(addParagraphAfterTable(tr, map, schema, true));\n return true;\n }\n }\n return false;\n };\n };\n Table.prototype.commands = function () {\n return {\n addTable: this.addTable(),\n removeTable: this.removeTable(),\n addColumnToLeft: this.addColumn(\"left\" /* LEFT */),\n addColumnToRight: this.addColumn(\"right\" /* RIGHT */),\n removeColumn: this.removeColumn(),\n addRowToUp: this.addRow(\"up\" /* UP */),\n addRowToDown: this.addRow(\"down\" /* DOWN */),\n removeRow: this.removeRow(),\n alignColumn: this.alignColumn(),\n };\n };\n Table.prototype.keymaps = function () {\n var deleteCellContent = this.deleteCells();\n return {\n Tab: this.moveToCell(\"right\" /* RIGHT */),\n 'Shift-Tab': this.moveToCell(\"left\" /* LEFT */),\n ArrowUp: this.moveInCell(\"up\" /* UP */),\n ArrowDown: this.moveInCell(\"down\" /* DOWN */),\n ArrowLeft: this.moveInCell(\"left\" /* LEFT */),\n ArrowRight: this.moveInCell(\"right\" /* RIGHT */),\n Backspace: deleteCellContent,\n 'Mod-Backspace': deleteCellContent,\n Delete: deleteCellContent,\n 'Mod-Delete': deleteCellContent,\n 'Mod-Enter': this.exitTable(),\n };\n };\n return Table;\n}(Node$2));\n\nvar TableHead = /** @class */ (function (_super) {\n __extends$1(TableHead, _super);\n function TableHead() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(TableHead.prototype, \"name\", {\n get: function () {\n return 'tableHead';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TableHead.prototype, \"schema\", {\n get: function () {\n return {\n content: 'tableRow{1}',\n attrs: __assign$1({ rawHTML: { default: null } }, getDefaultCustomAttrs()),\n parseDOM: [createDOMInfoParsedRawHTML('thead')],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return ['thead', getCustomAttrs(attrs), 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n return TableHead;\n}(Node$2));\n\nvar TableBody = /** @class */ (function (_super) {\n __extends$1(TableBody, _super);\n function TableBody() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(TableBody.prototype, \"name\", {\n get: function () {\n return 'tableBody';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TableBody.prototype, \"schema\", {\n get: function () {\n return {\n content: 'tableRow+',\n attrs: __assign$1({ rawHTML: { default: null } }, getDefaultCustomAttrs()),\n parseDOM: [\n {\n tag: 'tbody',\n getAttrs: function (dom) {\n var rows = dom.querySelectorAll('tr');\n var columns = rows[0].children.length;\n var rawHTML = dom.getAttribute('data-raw-html');\n if (!columns) {\n return false;\n }\n return __assign$1({}, (rawHTML && { rawHTML: rawHTML }));\n },\n },\n ],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return ['tbody', getCustomAttrs(attrs), 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n return TableBody;\n}(Node$2));\n\nvar TableRow = /** @class */ (function (_super) {\n __extends$1(TableRow, _super);\n function TableRow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(TableRow.prototype, \"name\", {\n get: function () {\n return 'tableRow';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TableRow.prototype, \"schema\", {\n get: function () {\n return {\n content: '(tableHeadCell | tableBodyCell)*',\n attrs: __assign$1({ rawHTML: { default: null } }, getDefaultCustomAttrs()),\n parseDOM: [\n {\n tag: 'tr',\n getAttrs: function (dom) {\n var columns = dom.children.length;\n var rawHTML = dom.getAttribute('data-raw-html');\n if (!columns) {\n return false;\n }\n return __assign$1({}, (rawHTML && { rawHTML: rawHTML }));\n },\n },\n ],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return ['tr', getCustomAttrs(attrs), 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n return TableRow;\n}(Node$2));\n\nvar TableHeadCell = /** @class */ (function (_super) {\n __extends$1(TableHeadCell, _super);\n function TableHeadCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(TableHeadCell.prototype, \"name\", {\n get: function () {\n return 'tableHeadCell';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TableHeadCell.prototype, \"schema\", {\n get: function () {\n return {\n content: 'paragraph+',\n attrs: __assign$1({ align: { default: null }, className: { default: null }, rawHTML: { default: null }, colspan: { default: null }, extended: { default: null } }, getDefaultCustomAttrs()),\n isolating: true,\n parseDOM: [createParsedCellDOM('th')],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n var cellAttrs = createCellAttrs(attrs);\n return ['th', __assign$1(__assign$1({}, cellAttrs), getCustomAttrs(attrs)), 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n return TableHeadCell;\n}(Node$2));\n\nvar TableBodyCell = /** @class */ (function (_super) {\n __extends$1(TableBodyCell, _super);\n function TableBodyCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(TableBodyCell.prototype, \"name\", {\n get: function () {\n return 'tableBodyCell';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TableBodyCell.prototype, \"schema\", {\n get: function () {\n return {\n content: '(paragraph | bulletList | orderedList)+',\n attrs: {\n align: { default: null },\n className: { default: null },\n rawHTML: { default: null },\n colspan: { default: null },\n rowspan: { default: null },\n extended: { default: null },\n },\n isolating: true,\n parseDOM: [createParsedCellDOM('td')],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n var cellAttrs = createCellAttrs(attrs);\n return ['td', cellAttrs, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n return TableBodyCell;\n}(Node$2));\n\nvar Image = /** @class */ (function (_super) {\n __extends$1(Image, _super);\n function Image() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Image.prototype, \"name\", {\n get: function () {\n return 'image';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Image.prototype, \"schema\", {\n get: function () {\n return {\n inline: true,\n attrs: __assign$1({ imageUrl: { default: '' }, altText: { default: null }, rawHTML: { default: null } }, getDefaultCustomAttrs()),\n group: 'inline',\n selectable: false,\n parseDOM: [\n {\n tag: 'img[src]',\n getAttrs: function (dom) {\n var sanitizedDOM = sanitizeHTML(dom, { RETURN_DOM_FRAGMENT: true })\n .firstChild;\n var imageUrl = sanitizedDOM.getAttribute('src') || '';\n var rawHTML = sanitizedDOM.getAttribute('data-raw-html');\n var altText = sanitizedDOM.getAttribute('alt');\n return __assign$1({ imageUrl: imageUrl,\n altText: altText }, (rawHTML && { rawHTML: rawHTML }));\n },\n },\n ],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return [\n attrs.rawHTML || 'img',\n __assign$1(__assign$1({ src: escapeXml$1(attrs.imageUrl) }, (attrs.altText && { alt: attrs.altText })), getCustomAttrs(attrs)),\n ];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Image.prototype.addImage = function () {\n return function (payload) { return function (_a, dispatch) {\n var schema = _a.schema, tr = _a.tr;\n var _b = payload, imageUrl = _b.imageUrl, altText = _b.altText;\n if (!imageUrl) {\n return false;\n }\n var node = schema.nodes.image.createAndFill(__assign$1({ imageUrl: imageUrl }, (altText && { altText: altText })));\n dispatch(tr.replaceSelectionWith(node).scrollIntoView());\n return true;\n }; };\n };\n Image.prototype.commands = function () {\n return {\n addImage: this.addImage(),\n };\n };\n return Image;\n}(Node$2));\n\nvar ROOT_BLOCK_DEPTH = 1;\nvar ThematicBreak = /** @class */ (function (_super) {\n __extends$1(ThematicBreak, _super);\n function ThematicBreak() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(ThematicBreak.prototype, \"name\", {\n get: function () {\n return 'thematicBreak';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ThematicBreak.prototype, \"schema\", {\n get: function () {\n return {\n attrs: __assign$1({ rawHTML: { default: null } }, getDefaultCustomAttrs()),\n group: 'block',\n parseDOM: [{ tag: 'hr' }],\n selectable: false,\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return ['div', getCustomAttrs(attrs), [attrs.rawHTML || 'hr']];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n ThematicBreak.prototype.hr = function () {\n var _this = this;\n return function () { return function (state, dispatch) {\n var _a;\n var _b = state.selection, $from = _b.$from, $to = _b.$to;\n if ($from === $to) {\n var doc = state.doc;\n var _c = state.schema.nodes, thematicBreak = _c.thematicBreak, paragraph = _c.paragraph;\n var nodes = [thematicBreak.create()];\n var rootBlock = $from.node(ROOT_BLOCK_DEPTH);\n var lastBlock = doc.child(doc.childCount - 1) === rootBlock;\n var blockEnd = doc.resolve($from.after(ROOT_BLOCK_DEPTH));\n var nextHr = ((_a = $from.nodeAfter) === null || _a === void 0 ? void 0 : _a.type.name) === _this.name;\n if (lastBlock || nextHr) {\n nodes.push(paragraph.create());\n }\n dispatch(state.tr.insert(blockEnd.pos, nodes).scrollIntoView());\n return true;\n }\n return false;\n }; };\n };\n ThematicBreak.prototype.commands = function () {\n return { hr: this.hr() };\n };\n ThematicBreak.prototype.keymaps = function () {\n var hrCommand = this.hr()();\n return {\n 'Mod-l': hrCommand,\n 'Mod-L': hrCommand,\n };\n };\n return ThematicBreak;\n}(Node$2));\n\nvar Strong = /** @class */ (function (_super) {\n __extends$1(Strong, _super);\n function Strong() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Strong.prototype, \"name\", {\n get: function () {\n return 'strong';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Strong.prototype, \"schema\", {\n get: function () {\n var parseDOM = ['b', 'strong'].map(function (tag) {\n return {\n tag: tag,\n getAttrs: function (dom) {\n var rawHTML = dom.getAttribute('data-raw-html');\n return __assign$1({}, (rawHTML && { rawHTML: rawHTML }));\n },\n };\n });\n return {\n attrs: __assign$1({ rawHTML: { default: null } }, getDefaultCustomAttrs()),\n parseDOM: parseDOM,\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return [attrs.rawHTML || 'strong', getCustomAttrs(attrs)];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Strong.prototype.bold = function () {\n return function () { return function (state, dispatch) { return Object(prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"toggleMark\"])(state.schema.marks.strong)(state, dispatch); }; };\n };\n Strong.prototype.commands = function () {\n return { bold: this.bold() };\n };\n Strong.prototype.keymaps = function () {\n var boldCommand = this.bold()();\n return {\n 'Mod-b': boldCommand,\n 'Mod-B': boldCommand,\n };\n };\n return Strong;\n}(Mark));\n\nvar Emph = /** @class */ (function (_super) {\n __extends$1(Emph, _super);\n function Emph() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Emph.prototype, \"name\", {\n get: function () {\n return 'emph';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Emph.prototype, \"schema\", {\n get: function () {\n var parseDOM = ['i', 'em'].map(function (tag) {\n return {\n tag: tag,\n getAttrs: function (dom) {\n var rawHTML = dom.getAttribute('data-raw-html');\n return __assign$1({}, (rawHTML && { rawHTML: rawHTML }));\n },\n };\n });\n return {\n attrs: __assign$1({ rawHTML: { default: null } }, getDefaultCustomAttrs()),\n parseDOM: parseDOM,\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return [attrs.rawHTML || 'em', getCustomAttrs(attrs)];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Emph.prototype.italic = function () {\n return function () { return function (state, dispatch) { return Object(prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"toggleMark\"])(state.schema.marks.emph)(state, dispatch); }; };\n };\n Emph.prototype.commands = function () {\n return { italic: this.italic() };\n };\n Emph.prototype.keymaps = function () {\n var italicCommand = this.italic()();\n return {\n 'Mod-i': italicCommand,\n 'Mod-I': italicCommand,\n };\n };\n return Emph;\n}(Mark));\n\nvar Strike = /** @class */ (function (_super) {\n __extends$1(Strike, _super);\n function Strike() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Strike.prototype, \"name\", {\n get: function () {\n return 'strike';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Strike.prototype, \"schema\", {\n get: function () {\n var parseDOM = ['s', 'del'].map(function (tag) {\n return {\n tag: tag,\n getAttrs: function (dom) {\n var rawHTML = dom.getAttribute('data-raw-html');\n return __assign$1({}, (rawHTML && { rawHTML: rawHTML }));\n },\n };\n });\n return {\n attrs: __assign$1({ rawHTML: { default: null } }, getDefaultCustomAttrs()),\n parseDOM: parseDOM,\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return [attrs.rawHTML || 'del', getCustomAttrs(attrs)];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Strike.prototype.commands = function () {\n return function () { return function (state, dispatch) { return Object(prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"toggleMark\"])(state.schema.marks.strike)(state, dispatch); }; };\n };\n Strike.prototype.keymaps = function () {\n var strikeCommand = this.commands()();\n return {\n 'Mod-s': strikeCommand,\n 'Mod-S': strikeCommand,\n };\n };\n return Strike;\n}(Mark));\n\nvar Link = /** @class */ (function (_super) {\n __extends$1(Link, _super);\n function Link(linkAttributes) {\n var _this = _super.call(this) || this;\n _this.linkAttributes = linkAttributes;\n return _this;\n }\n Object.defineProperty(Link.prototype, \"name\", {\n get: function () {\n return 'link';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Link.prototype, \"schema\", {\n get: function () {\n var _this = this;\n return {\n attrs: __assign$1({ linkUrl: { default: '' }, title: { default: null }, rawHTML: { default: null } }, getDefaultCustomAttrs()),\n inclusive: false,\n parseDOM: [\n {\n tag: 'a[href]',\n getAttrs: function (dom) {\n var sanitizedDOM = sanitizeHTML(dom, { RETURN_DOM_FRAGMENT: true })\n .firstChild;\n var href = sanitizedDOM.getAttribute('href') || '';\n var title = sanitizedDOM.getAttribute('title') || '';\n var rawHTML = sanitizedDOM.getAttribute('data-raw-html');\n return __assign$1({ linkUrl: href, title: title }, (rawHTML && { rawHTML: rawHTML }));\n },\n },\n ],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return [\n attrs.rawHTML || 'a',\n __assign$1(__assign$1({ href: escapeXml$1(attrs.linkUrl) }, _this.linkAttributes), getCustomAttrs(attrs)),\n ];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Link.prototype.addLink = function () {\n return function (payload) { return function (state, dispatch) {\n var _a = payload, linkUrl = _a.linkUrl, _b = _a.linkText, linkText = _b === void 0 ? '' : _b;\n var schema = state.schema, tr = state.tr, selection = state.selection;\n var empty = selection.empty, from = selection.from, to = selection.to;\n if (from && to && linkUrl) {\n var attrs = { linkUrl: linkUrl };\n var mark = schema.mark('link', attrs);\n if (empty && linkText) {\n var node = createTextNode$1(schema, linkText, mark);\n tr.replaceRangeWith(from, to, node);\n }\n else {\n tr.addMark(from, to, mark);\n }\n dispatch(tr.scrollIntoView());\n return true;\n }\n return false;\n }; };\n };\n Link.prototype.toggleLink = function () {\n return function (payload) { return function (state, dispatch) {\n return Object(prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"toggleMark\"])(state.schema.marks.link, payload)(state, dispatch);\n }; };\n };\n Link.prototype.commands = function () {\n return {\n addLink: this.addLink(),\n toggleLink: this.toggleLink(),\n };\n };\n return Link;\n}(Mark));\n\nvar Code = /** @class */ (function (_super) {\n __extends$1(Code, _super);\n function Code() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Code.prototype, \"name\", {\n get: function () {\n return 'code';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Code.prototype, \"schema\", {\n get: function () {\n return {\n attrs: __assign$1({ rawHTML: { default: null } }, getDefaultCustomAttrs()),\n parseDOM: [\n {\n tag: 'code',\n getAttrs: function (dom) {\n var rawHTML = dom.getAttribute('data-raw-html');\n return __assign$1({}, (rawHTML && { rawHTML: rawHTML }));\n },\n },\n ],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return [attrs.rawHTML || 'code', getCustomAttrs(attrs)];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n Code.prototype.commands = function () {\n return function () { return function (state, dispatch) { return Object(prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"toggleMark\"])(state.schema.marks.code)(state, dispatch); }; };\n };\n Code.prototype.keymaps = function () {\n var codeCommand = this.commands()();\n return {\n 'Shift-Mod-c': codeCommand,\n 'Shift-Mod-C': codeCommand,\n };\n };\n return Code;\n}(Mark));\n\nvar CustomBlock = /** @class */ (function (_super) {\n __extends$1(CustomBlock, _super);\n function CustomBlock() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(CustomBlock.prototype, \"name\", {\n get: function () {\n return 'customBlock';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CustomBlock.prototype, \"schema\", {\n get: function () {\n return {\n content: 'text*',\n group: 'block',\n attrs: {\n info: { default: null },\n },\n atom: true,\n code: true,\n defining: true,\n parseDOM: [\n {\n tag: 'div[data-custom-info]',\n getAttrs: function (dom) {\n var info = dom.getAttribute('data-custom-info');\n return { info: info };\n },\n },\n ],\n toDOM: function (_a) {\n var attrs = _a.attrs;\n return ['div', { 'data-custom-info': attrs.info || null }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n CustomBlock.prototype.commands = function () {\n return function (payload) { return function (state, dispatch) {\n return (payload === null || payload === void 0 ? void 0 : payload.info)\n ? Object(prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"setBlockType\"])(state.schema.nodes.customBlock, payload)(state, dispatch)\n : false;\n }; };\n };\n return CustomBlock;\n}(Node$2));\n\nvar FrontMatter = /** @class */ (function (_super) {\n __extends$1(FrontMatter, _super);\n function FrontMatter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(FrontMatter.prototype, \"name\", {\n get: function () {\n return 'frontMatter';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FrontMatter.prototype, \"schema\", {\n get: function () {\n return {\n content: 'text*',\n group: 'block',\n code: true,\n defining: true,\n parseDOM: [\n {\n preserveWhitespace: 'full',\n tag: 'div[data-front-matter]',\n },\n ],\n toDOM: function () {\n return ['div', { 'data-front-matter': 'true' }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n FrontMatter.prototype.commands = function () {\n return function () { return function (state, dispatch, view) {\n var $from = state.selection.$from;\n if (view.endOfTextblock('down') && $from.node().type.name === 'frontMatter') {\n return Object(prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"exitCode\"])(state, dispatch);\n }\n return false;\n }; };\n };\n FrontMatter.prototype.keymaps = function () {\n return {\n Enter: this.commands()(),\n };\n };\n return FrontMatter;\n}(Node$2));\n\nvar HTMLComment = /** @class */ (function (_super) {\n __extends$1(HTMLComment, _super);\n function HTMLComment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(HTMLComment.prototype, \"name\", {\n get: function () {\n return 'htmlComment';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLComment.prototype, \"schema\", {\n get: function () {\n return {\n content: 'text*',\n group: 'block',\n code: true,\n defining: true,\n parseDOM: [{ preserveWhitespace: 'full', tag: 'div[data-html-comment]' }],\n toDOM: function () {\n return ['div', { 'data-html-comment': 'true' }, 0];\n },\n };\n },\n enumerable: false,\n configurable: true\n });\n HTMLComment.prototype.commands = function () {\n return function () { return function (state, dispatch, view) {\n var $from = state.selection.$from;\n if (view.endOfTextblock('down') && $from.node().type.name === 'htmlComment') {\n return Object(prosemirror_commands__WEBPACK_IMPORTED_MODULE_5__[\"exitCode\"])(state, dispatch);\n }\n return false;\n }; };\n };\n HTMLComment.prototype.keymaps = function () {\n return {\n Enter: this.commands()(),\n };\n };\n return HTMLComment;\n}(Node$2));\n\nfunction createSpecs(linkAttributes) {\n return new SpecManager([\n new Doc(),\n new Paragraph(),\n new Text(),\n new Heading(),\n new CodeBlock(),\n new BulletList(),\n new OrderedList(),\n new ListItem(),\n new BlockQuote(),\n new Table(),\n new TableHead(),\n new TableBody(),\n new TableRow(),\n new TableHeadCell(),\n new TableBodyCell(),\n new Image(),\n new ThematicBreak(),\n new Strong(),\n new Emph(),\n new Strike(),\n new Link(linkAttributes),\n new Code(),\n new CustomBlock(),\n new FrontMatter(),\n new Widget(),\n new HTMLComment(),\n ]);\n}\n\nvar CONTENTS_CLASS_NAME = cls('contents');\nvar WysiwygEditor = /** @class */ (function (_super) {\n __extends$1(WysiwygEditor, _super);\n function WysiwygEditor(eventEmitter, options) {\n var _this = _super.call(this, eventEmitter) || this;\n var toDOMAdaptor = options.toDOMAdaptor, _a = options.htmlSchemaMap, htmlSchemaMap = _a === void 0 ? {} : _a, _b = options.linkAttributes, linkAttributes = _b === void 0 ? {} : _b, _c = options.useCommandShortcut, useCommandShortcut = _c === void 0 ? true : _c, _d = options.wwPlugins, wwPlugins = _d === void 0 ? [] : _d, _e = options.wwNodeViews, wwNodeViews = _e === void 0 ? {} : _e;\n _this.editorType = 'wysiwyg';\n _this.el.classList.add('ww-mode');\n _this.toDOMAdaptor = toDOMAdaptor;\n _this.linkAttributes = linkAttributes;\n _this.extraPlugins = wwPlugins;\n _this.pluginNodeViews = wwNodeViews;\n _this.specs = _this.createSpecs();\n _this.schema = _this.createSchema(htmlSchemaMap);\n _this.context = _this.createContext();\n _this.keymaps = _this.createKeymaps(useCommandShortcut);\n _this.view = _this.createView();\n _this.commands = _this.createCommands();\n _this.specs.setContext(__assign$1(__assign$1({}, _this.context), { view: _this.view }));\n _this.initEvent();\n return _this;\n }\n WysiwygEditor.prototype.createSpecs = function () {\n return createSpecs(this.linkAttributes);\n };\n WysiwygEditor.prototype.createContext = function () {\n return {\n schema: this.schema,\n eventEmitter: this.eventEmitter,\n };\n };\n WysiwygEditor.prototype.createSchema = function (htmlSchemaMap) {\n return new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Schema\"]({\n nodes: __assign$1(__assign$1({}, this.specs.nodes), htmlSchemaMap.nodes),\n marks: __assign$1(__assign$1({}, this.specs.marks), htmlSchemaMap.marks),\n });\n };\n WysiwygEditor.prototype.createPlugins = function () {\n return __spreadArray$1([\n tableSelection(),\n tableContextMenu(this.eventEmitter),\n task(),\n toolbarStateHighlight(this.eventEmitter)\n ], this.createPluginProps()).concat(this.defaultPlugins);\n };\n WysiwygEditor.prototype.createPluginNodeViews = function () {\n var _a = this, eventEmitter = _a.eventEmitter, pluginNodeViews = _a.pluginNodeViews;\n var pluginNodeViewMap = {};\n if (pluginNodeViews) {\n Object.keys(pluginNodeViews).forEach(function (key) {\n pluginNodeViewMap[key] = function (node, view, getPos) {\n return pluginNodeViews[key](node, view, getPos, eventEmitter);\n };\n });\n }\n return pluginNodeViewMap;\n };\n WysiwygEditor.prototype.createView = function () {\n var _this = this;\n var _a = this, toDOMAdaptor = _a.toDOMAdaptor, eventEmitter = _a.eventEmitter;\n return new prosemirror_view__WEBPACK_IMPORTED_MODULE_1__[\"EditorView\"](this.el, {\n state: this.createState(),\n attributes: {\n class: CONTENTS_CLASS_NAME,\n },\n nodeViews: __assign$1({ customBlock: function (node, view, getPos) {\n return new CustomBlockView(node, view, getPos, toDOMAdaptor);\n },\n image: function (node, view, getPos) {\n return new ImageView(node, view, getPos, eventEmitter);\n },\n codeBlock: function (node, view, getPos) {\n return new CodeBlockView(node, view, getPos, eventEmitter);\n }, widget: widgetNodeView }, this.createPluginNodeViews()),\n dispatchTransaction: function (tr) {\n var state = _this.view.state.applyTransaction(tr).state;\n _this.view.updateState(state);\n _this.emitChangeEvent(tr.scrollIntoView());\n _this.eventEmitter.emit('setFocusedNode', state.selection.$from.node(1));\n },\n transformPastedHTML: changePastedHTML,\n transformPasted: function (slice) {\n return changePastedSlice(slice, _this.schema, isInTableNode(_this.view.state.selection.$from));\n },\n handlePaste: function (view, _, slice) { return pasteToTable(view, slice); },\n handleKeyDown: function (_, ev) {\n _this.eventEmitter.emit('keydown', _this.editorType, ev);\n return false;\n },\n handleDOMEvents: {\n paste: function (_, ev) {\n var clipboardData = ev.clipboardData || window.clipboardData;\n var items = clipboardData === null || clipboardData === void 0 ? void 0 : clipboardData.items;\n if (items) {\n var containRtfItem = toArray_1(items).some(function (item) { return item.kind === 'string' && item.type === 'text/rtf'; });\n // if it contains rtf, it's most likely copy paste from office -> no image\n if (!containRtfItem) {\n var imageBlob = pasteImageOnly(items);\n if (imageBlob) {\n ev.preventDefault();\n emitImageBlobHook(_this.eventEmitter, imageBlob, ev.type);\n }\n }\n }\n return false;\n },\n keyup: function (_, ev) {\n _this.eventEmitter.emit('keyup', _this.editorType, ev);\n return false;\n },\n scroll: function () {\n _this.eventEmitter.emit('scroll', 'editor');\n return true;\n },\n },\n });\n };\n WysiwygEditor.prototype.createCommands = function () {\n return this.specs.commands(this.view, getWwCommands());\n };\n WysiwygEditor.prototype.getHTML = function () {\n return removeProseMirrorHackNodes(this.view.dom.innerHTML);\n };\n WysiwygEditor.prototype.getModel = function () {\n return this.view.state.doc;\n };\n WysiwygEditor.prototype.getSelection = function () {\n var _a = this.view.state.selection, from = _a.from, to = _a.to;\n return [from, to];\n };\n WysiwygEditor.prototype.getSchema = function () {\n return this.view.state.schema;\n };\n WysiwygEditor.prototype.replaceSelection = function (text, start, end) {\n var _a = this.view.state, schema = _a.schema, tr = _a.tr;\n var lineTexts = text.split('\\n');\n var paras = lineTexts.map(function (lineText) {\n return createParagraph(schema, createNodesWithWidget(lineText, schema));\n });\n var slice = new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(paras), 1, 1);\n var newTr = isNumber_1(start) && isNumber_1(end)\n ? tr.replaceRange(start, end, slice)\n : tr.replaceSelection(slice);\n this.view.dispatch(newTr);\n this.focus();\n };\n WysiwygEditor.prototype.deleteSelection = function (start, end) {\n var tr = this.view.state.tr;\n var newTr = isNumber_1(start) && isNumber_1(end) ? tr.deleteRange(start, end) : tr.deleteSelection();\n this.view.dispatch(newTr.scrollIntoView());\n };\n WysiwygEditor.prototype.getSelectedText = function (start, end) {\n var _a = this.view.state, doc = _a.doc, selection = _a.selection;\n var from = selection.from, to = selection.to;\n if (isNumber_1(start) && isNumber_1(end)) {\n from = start;\n to = end;\n }\n return doc.textBetween(from, to, '\\n');\n };\n WysiwygEditor.prototype.setModel = function (newDoc, cursorToEnd) {\n if (cursorToEnd === void 0) { cursorToEnd = false; }\n var _a = this.view.state, tr = _a.tr, doc = _a.doc;\n this.view.dispatch(tr.replaceWith(0, doc.content.size, newDoc));\n if (cursorToEnd) {\n this.moveCursorToEnd(true);\n }\n };\n WysiwygEditor.prototype.setSelection = function (start, end) {\n if (end === void 0) { end = start; }\n var tr = this.view.state.tr;\n var selection = createTextSelection(tr, start, end);\n this.view.dispatch(tr.setSelection(selection).scrollIntoView());\n };\n WysiwygEditor.prototype.addWidget = function (node, style, pos) {\n var _a = this.view, dispatch = _a.dispatch, state = _a.state;\n dispatch(state.tr.setMeta('widget', { pos: pos !== null && pos !== void 0 ? pos : state.selection.to, node: node, style: style }));\n };\n WysiwygEditor.prototype.replaceWithWidget = function (start, end, text) {\n var _a = this.view.state, tr = _a.tr, schema = _a.schema;\n var nodes = createNodesWithWidget(text, schema);\n this.view.dispatch(tr.replaceWith(start, end, nodes));\n };\n WysiwygEditor.prototype.getRangeInfoOfNode = function (pos) {\n var _a = this.view.state, doc = _a.doc, selection = _a.selection;\n var $pos = pos ? doc.resolve(pos) : selection.$from;\n var marks = $pos.marks();\n var node = $pos.node();\n var start = $pos.start();\n var end = $pos.end();\n var type = node.type.name;\n if (marks.length || type === 'paragraph') {\n var mark_1 = marks[marks.length - 1];\n var maybeHasMark_1 = function (nodeMarks) {\n return nodeMarks.length ? includes(nodeMarks, mark_1) : true;\n };\n type = mark_1 ? mark_1.type.name : 'text';\n node.forEach(function (child, offset) {\n var isText = child.isText, nodeSize = child.nodeSize, nodeMarks = child.marks;\n var startOffset = $pos.pos - start;\n if (isText &&\n offset <= startOffset &&\n offset + nodeSize >= startOffset &&\n maybeHasMark_1(nodeMarks)) {\n start = start + offset;\n end = start + nodeSize;\n }\n });\n }\n return { range: [start, end], type: type };\n };\n return WysiwygEditor;\n}(EditorBase));\n\n/**\n * @fileoverview Check whether the given variable is existing or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar isUndefined = isUndefined_1;\nvar isNull = isNull_1;\n\n/**\n * Check whether the given variable is existing or not.\n * If the given variable is not null and not undefined, returns true.\n * @param {*} param - Target for checking\n * @returns {boolean} Is existy?\n * @memberof module:type\n * @example\n * // ES6\n * import isExisty from 'tui-code-snippet/type/isExisty');\n * \n * // CommonJS\n * const isExisty = require('tui-code-snippet/type/isExisty');\n *\n * isExisty(''); //true\n * isExisty(0); //true\n * isExisty([]); //true\n * isExisty({}); //true\n * isExisty(null); //false\n * isExisty(undefined); //false\n*/\nfunction isExisty$1(param) {\n return !isUndefined(param) && !isNull(param);\n}\n\nvar isExisty_1 = isExisty$1;\n\n/**\n * @fileoverview Check whether the given variable is truthy or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar isExisty = isExisty_1;\n\n/**\n * Check whether the given variable is truthy or not.\n * If the given variable is not null or not undefined or not false, returns true.\n * (It regards 0 as true)\n * @param {*} obj - Target for checking\n * @returns {boolean} Is truthy?\n * @memberof module:type\n */\nfunction isTruthy$1(obj) {\n return isExisty(obj) && obj !== false;\n}\n\nvar isTruthy_1 = isTruthy$1;\n\n/**\n * @fileoverview Check whether the given variable is falsy or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\nvar isTruthy = isTruthy_1;\n\n/**\n * Check whether the given variable is falsy or not.\n * If the given variable is null or undefined or false, returns true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is falsy?\n * @memberof module:type\n */\nfunction isFalsy(obj) {\n return !isTruthy(obj);\n}\n\nvar isFalsy_1 = isFalsy;\n\nvar eventTypeList = [\n 'afterPreviewRender',\n 'updatePreview',\n 'changeMode',\n 'needChangeMode',\n 'command',\n 'changePreviewStyle',\n 'changePreviewTabPreview',\n 'changePreviewTabWrite',\n 'scroll',\n 'contextmenu',\n 'show',\n 'hide',\n 'changeLanguage',\n 'changeToolbarState',\n 'toggleScrollSync',\n 'mixinTableOffsetMapPrototype',\n 'setFocusedNode',\n 'removePopupWidget',\n 'query',\n // provide event for user\n 'openPopup',\n 'closePopup',\n 'addImageBlobHook',\n 'beforePreviewRender',\n 'beforeConvertWysiwygToMarkdown',\n 'load',\n 'loadUI',\n 'change',\n 'caretChange',\n 'destroy',\n 'focus',\n 'blur',\n 'keydown',\n 'keyup',\n];\n/**\n * Class EventEmitter\n * @ignore\n */\nvar EventEmitter = /** @class */ (function () {\n function EventEmitter() {\n var _this = this;\n this.events = new Map$1();\n this.eventTypes = eventTypeList.reduce(function (types, type) {\n return __assign$1(__assign$1({}, types), { type: type });\n }, {});\n this.hold = false;\n eventTypeList.forEach(function (eventType) {\n _this.addEventType(eventType);\n });\n }\n /**\n * Listen event and bind event handler\n * @param {string} type Event type string\n * @param {function} handler Event handler\n */\n EventEmitter.prototype.listen = function (type, handler) {\n var typeInfo = this.getTypeInfo(type);\n var eventHandlers = this.events.get(typeInfo.type) || [];\n if (!this.hasEventType(typeInfo.type)) {\n throw new Error(\"There is no event type \" + typeInfo.type);\n }\n if (typeInfo.namespace) {\n handler.namespace = typeInfo.namespace;\n }\n eventHandlers.push(handler);\n this.events.set(typeInfo.type, eventHandlers);\n };\n /**\n * Emit event\n * @param {string} eventName Event name to emit\n * @returns {Array}\n */\n EventEmitter.prototype.emit = function (type) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var typeInfo = this.getTypeInfo(type);\n var eventHandlers = this.events.get(typeInfo.type);\n var results = [];\n if (!this.hold && eventHandlers) {\n eventHandlers.forEach(function (handler) {\n var result = handler.apply(void 0, args);\n if (!isUndefined_1(result)) {\n results.push(result);\n }\n });\n }\n return results;\n };\n /**\n * Emit given event and return result\n * @param {string} eventName Event name to emit\n * @param {any} source Source to change\n * @returns {string}\n */\n EventEmitter.prototype.emitReduce = function (type, source) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var eventHandlers = this.events.get(type);\n if (!this.hold && eventHandlers) {\n eventHandlers.forEach(function (handler) {\n var result = handler.apply(void 0, __spreadArray$1([source], args));\n if (!isFalsy_1(result)) {\n source = result;\n }\n });\n }\n return source;\n };\n /**\n * Get event type and namespace\n * @param {string} type Event type name\n * @returns {{type: string, namespace: string}}\n * @private\n */\n EventEmitter.prototype.getTypeInfo = function (type) {\n var splited = type.split('.');\n return {\n type: splited[0],\n namespace: splited[1],\n };\n };\n /**\n * Check whether event type exists or not\n * @param {string} type Event type name\n * @returns {boolean}\n * @private\n */\n EventEmitter.prototype.hasEventType = function (type) {\n return !isUndefined_1(this.eventTypes[this.getTypeInfo(type).type]);\n };\n /**\n * Add event type when given event not exists\n * @param {string} type Event type name\n */\n EventEmitter.prototype.addEventType = function (type) {\n if (this.hasEventType(type)) {\n throw new Error(\"There is already have event type \" + type);\n }\n this.eventTypes[type] = type;\n };\n /**\n * Remove event handler from given event type\n * @param {string} eventType Event type name\n * @param {function} [handler] - registered event handler\n */\n EventEmitter.prototype.removeEventHandler = function (eventType, handler) {\n var _this = this;\n var _a = this.getTypeInfo(eventType), type = _a.type, namespace = _a.namespace;\n if (type && handler) {\n this.removeEventHandlerWithHandler(type, handler);\n }\n else if (type && !namespace) {\n this.events.delete(type);\n }\n else if (!type && namespace) {\n this.events.forEach(function (_, evtType) {\n _this.removeEventHandlerWithTypeInfo(evtType, namespace);\n });\n }\n else if (type && namespace) {\n this.removeEventHandlerWithTypeInfo(type, namespace);\n }\n };\n /**\n * Remove event handler with event handler\n * @param {string} type - event type name\n * @param {function} handler - event handler\n * @private\n */\n EventEmitter.prototype.removeEventHandlerWithHandler = function (type, handler) {\n var eventHandlers = this.events.get(type);\n if (eventHandlers) {\n var handlerIndex = eventHandlers.indexOf(handler);\n if (eventHandlers.indexOf(handler) >= 0) {\n eventHandlers.splice(handlerIndex, 1);\n }\n }\n };\n /**\n * Remove event handler with event type information\n * @param {string} type Event type name\n * @param {string} namespace Event namespace\n * @private\n */\n EventEmitter.prototype.removeEventHandlerWithTypeInfo = function (type, namespace) {\n var handlersToSurvive = [];\n var eventHandlers = this.events.get(type);\n if (!eventHandlers) {\n return;\n }\n eventHandlers.map(function (handler) {\n if (handler.namespace !== namespace) {\n handlersToSurvive.push(handler);\n }\n return null;\n });\n this.events.set(type, handlersToSurvive);\n };\n EventEmitter.prototype.getEvents = function () {\n return this.events;\n };\n EventEmitter.prototype.holdEventInvoke = function (fn) {\n this.hold = true;\n fn();\n this.hold = false;\n };\n return EventEmitter;\n}());\n\nvar CommandManager = /** @class */ (function () {\n function CommandManager(eventEmitter, mdCommands, wwCommands, getEditorType) {\n this.eventEmitter = eventEmitter;\n this.mdCommands = mdCommands;\n this.wwCommands = wwCommands;\n this.getEditorType = getEditorType;\n this.initEvent();\n }\n CommandManager.prototype.initEvent = function () {\n var _this = this;\n this.eventEmitter.listen('command', function (command, payload) {\n _this.exec(command, payload);\n });\n };\n CommandManager.prototype.addCommand = function (type, name, command) {\n if (type === 'markdown') {\n this.mdCommands[name] = command;\n }\n else {\n this.wwCommands[name] = command;\n }\n };\n CommandManager.prototype.deleteCommand = function (type, name) {\n if (type === 'markdown') {\n delete this.mdCommands[name];\n }\n else {\n delete this.wwCommands[name];\n }\n };\n CommandManager.prototype.exec = function (name, payload) {\n var type = this.getEditorType();\n if (type === 'markdown') {\n this.mdCommands[name](payload);\n }\n else {\n this.wwCommands[name](payload);\n }\n };\n return CommandManager;\n}());\n\nfunction getTextWithoutTrailingNewline(text) {\n return text[text.length - 1] === '\\n' ? text.slice(0, text.length - 1) : text;\n}\nfunction isCustomHTMLInlineNode(_a, node) {\n var schema = _a.schema;\n var html = node.literal;\n var matched = html.match(reHTMLTag);\n if (matched) {\n var openTagName = matched[1], closeTagName = matched[3];\n var typeName = (openTagName || closeTagName).toLowerCase();\n return node.type === 'htmlInline' && !!(schema.marks[typeName] || schema.nodes[typeName]);\n }\n return false;\n}\nfunction isInlineNode(_a) {\n var type = _a.type;\n return includes(['text', 'strong', 'emph', 'strike', 'image', 'link', 'code'], type);\n}\nfunction isSoftbreak(mdNode) {\n return (mdNode === null || mdNode === void 0 ? void 0 : mdNode.type) === 'softbreak';\n}\nfunction isListNode(_a) {\n var type = _a.type, literal = _a.literal;\n var matched = type === 'htmlInline' && literal.match(reHTMLTag);\n if (matched) {\n var openTagName = matched[1], closeTagName = matched[3];\n var tagName = openTagName || closeTagName;\n if (tagName) {\n return includes(['ul', 'ol', 'li'], tagName.toLowerCase());\n }\n }\n return false;\n}\nfunction getListItemAttrs(_a) {\n var literal = _a.literal;\n var task = /data-task/.test(literal);\n var checked = /data-task-checked/.test(literal);\n return { task: task, checked: checked };\n}\nfunction getMatchedAttributeValue(rawHTML) {\n var attrNames = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n attrNames[_i - 1] = arguments[_i];\n }\n var wrapper = document.createElement('div');\n wrapper.innerHTML = sanitizeHTML(rawHTML);\n var el = wrapper.firstChild;\n return attrNames.map(function (attrName) { return el.getAttribute(attrName) || ''; });\n}\nfunction createConvertors(convertors) {\n var convertorMap = {};\n Object.keys(convertors).forEach(function (key) {\n var tagNames = key.split(', ');\n tagNames.forEach(function (tagName) {\n var name = tagName.toLowerCase();\n convertorMap[name] = convertors[key];\n });\n });\n return convertorMap;\n}\nvar convertors = {\n 'b, strong': function (state, _, openTagName) {\n var strong = state.schema.marks.strong;\n if (openTagName) {\n state.openMark(strong.create({ rawHTML: openTagName }));\n }\n else {\n state.closeMark(strong);\n }\n },\n 'i, em': function (state, _, openTagName) {\n var emph = state.schema.marks.emph;\n if (openTagName) {\n state.openMark(emph.create({ rawHTML: openTagName }));\n }\n else {\n state.closeMark(emph);\n }\n },\n 's, del': function (state, _, openTagName) {\n var strike = state.schema.marks.strike;\n if (openTagName) {\n state.openMark(strike.create({ rawHTML: openTagName }));\n }\n else {\n state.closeMark(strike);\n }\n },\n code: function (state, _, openTagName) {\n var code = state.schema.marks.code;\n if (openTagName) {\n state.openMark(code.create({ rawHTML: openTagName }));\n }\n else {\n state.closeMark(code);\n }\n },\n a: function (state, node, openTagName) {\n var tag = node.literal;\n var link = state.schema.marks.link;\n if (openTagName) {\n var linkUrl = getMatchedAttributeValue(tag, 'href')[0];\n state.openMark(link.create({\n linkUrl: linkUrl,\n rawHTML: openTagName,\n }));\n }\n else {\n state.closeMark(link);\n }\n },\n img: function (state, node, openTagName) {\n var tag = node.literal;\n if (openTagName) {\n var _a = getMatchedAttributeValue(tag, 'src', 'alt'), imageUrl = _a[0], altText = _a[1];\n var image = state.schema.nodes.image;\n state.addNode(image, __assign$1({ rawHTML: openTagName, imageUrl: imageUrl }, (altText && { altText: altText })));\n }\n },\n hr: function (state, _, openTagName) {\n state.addNode(state.schema.nodes.thematicBreak, { rawHTML: openTagName });\n },\n br: function (state, node) {\n var paragraph = state.schema.nodes.paragraph;\n var parent = node.parent, prev = node.prev, next = node.next;\n if ((parent === null || parent === void 0 ? void 0 : parent.type) === 'paragraph') {\n // should open a paragraph node when line text has only <br> tag\n // ex) first line\\n\\n<br>\\nfourth line\n if (isSoftbreak(prev)) {\n state.openNode(paragraph);\n }\n // should close a paragraph node when line text has only <br> tag\n // ex) first line\\n\\n<br>\\nfourth line\n if (isSoftbreak(next)) {\n state.closeNode();\n // should close a paragraph node and open a paragraph node to separate between blocks\n // when <br> tag is in the middle of the paragraph\n // ex) first <br>line\\nthird line\n }\n else if (next) {\n state.closeNode();\n state.openNode(paragraph);\n }\n }\n else if ((parent === null || parent === void 0 ? void 0 : parent.type) === 'tableCell') {\n if (prev && (isInlineNode(prev) || isCustomHTMLInlineNode(state, prev))) {\n state.closeNode();\n }\n if (next && (isInlineNode(next) || isCustomHTMLInlineNode(state, next))) {\n state.openNode(paragraph);\n }\n }\n },\n pre: function (state, node, openTagName) {\n var _a, _b;\n var container = document.createElement('div');\n container.innerHTML = node.literal;\n var literal = (_b = (_a = container.firstChild) === null || _a === void 0 ? void 0 : _a.firstChild) === null || _b === void 0 ? void 0 : _b.textContent;\n state.openNode(state.schema.nodes.codeBlock, { rawHTML: openTagName });\n state.addText(getTextWithoutTrailingNewline(literal));\n state.closeNode();\n },\n 'ul, ol': function (state, node, openTagName) {\n // in the table cell, '<ul>', '<ol>' is parsed as 'htmlInline' node\n if (node.parent.type === 'tableCell') {\n var _a = state.schema.nodes, bulletList = _a.bulletList, orderedList = _a.orderedList, paragraph = _a.paragraph;\n var list = openTagName === 'ul' ? bulletList : orderedList;\n if (openTagName) {\n if (node.prev && !isListNode(node.prev)) {\n state.closeNode();\n }\n state.openNode(list, { rawHTML: openTagName });\n }\n else {\n state.closeNode();\n if (node.next && !isListNode(node.next)) {\n state.openNode(paragraph);\n }\n }\n }\n },\n li: function (state, node, openTagName) {\n var _a;\n // in the table cell, '<li>' is parsed as 'htmlInline' node\n if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === 'tableCell') {\n var _b = state.schema.nodes, listItem = _b.listItem, paragraph = _b.paragraph;\n if (openTagName) {\n var attrs = getListItemAttrs(node);\n if (node.prev && !isListNode(node.prev)) {\n state.closeNode();\n }\n state.openNode(listItem, __assign$1({ rawHTML: openTagName }, attrs));\n if (node.next && !isListNode(node.next)) {\n state.openNode(paragraph);\n }\n }\n else {\n if (node.prev && !isListNode(node.prev)) {\n state.closeNode();\n }\n state.closeNode();\n }\n }\n },\n};\nvar htmlToWwConvertors = createConvertors(convertors);\n\nfunction isBRTag(node) {\n return node.type === 'htmlInline' && reBR.test(node.literal);\n}\nfunction addRawHTMLAttributeToDOM(parent) {\n toArray_1(parent.childNodes).forEach(function (child) {\n if (isElemNode(child)) {\n var openTagName = child.nodeName.toLowerCase();\n child.setAttribute('data-raw-html', openTagName);\n if (child.childNodes) {\n addRawHTMLAttributeToDOM(child);\n }\n }\n });\n}\nvar toWwConvertors = {\n text: function (state, node) {\n state.addText(node.literal || '');\n },\n paragraph: function (state, node, _a, customAttrs) {\n var _b;\n var entering = _a.entering;\n if (entering) {\n var paragraph = state.schema.nodes.paragraph;\n // The `\\n\\n` entered in markdown separates the paragraph.\n // When changing to wysiwyg, a newline is added between the two paragraphs.\n if (((_b = node.prev) === null || _b === void 0 ? void 0 : _b.type) === 'paragraph') {\n state.openNode(paragraph, customAttrs);\n state.closeNode();\n }\n state.openNode(paragraph, customAttrs);\n }\n else {\n state.closeNode();\n }\n },\n heading: function (state, node, _a, customAttrs) {\n var entering = _a.entering;\n if (entering) {\n var _b = node, level = _b.level, headingType = _b.headingType;\n state.openNode(state.schema.nodes.heading, __assign$1({ level: level, headingType: headingType }, customAttrs));\n }\n else {\n state.closeNode();\n }\n },\n codeBlock: function (state, node, customAttrs) {\n var codeBlock = state.schema.nodes.codeBlock;\n var _a = node, info = _a.info, literal = _a.literal;\n state.openNode(codeBlock, __assign$1({ language: info }, customAttrs));\n state.addText(getTextWithoutTrailingNewline(literal || ''));\n state.closeNode();\n },\n list: function (state, node, _a, customAttrs) {\n var entering = _a.entering;\n if (entering) {\n var _b = state.schema.nodes, bulletList = _b.bulletList, orderedList = _b.orderedList;\n var _c = node.listData, type = _c.type, start = _c.start;\n if (type === 'bullet') {\n state.openNode(bulletList, customAttrs);\n }\n else {\n state.openNode(orderedList, __assign$1({ order: start }, customAttrs));\n }\n }\n else {\n state.closeNode();\n }\n },\n item: function (state, node, _a, customAttrs) {\n var entering = _a.entering;\n var listItem = state.schema.nodes.listItem;\n var _b = node.listData, task = _b.task, checked = _b.checked;\n if (entering) {\n var attrs = __assign$1(__assign$1(__assign$1({}, (task && { task: task })), (checked && { checked: checked })), customAttrs);\n state.openNode(listItem, attrs);\n }\n else {\n state.closeNode();\n }\n },\n blockQuote: function (state, _, _a, customAttrs) {\n var entering = _a.entering;\n if (entering) {\n state.openNode(state.schema.nodes.blockQuote, customAttrs);\n }\n else {\n state.closeNode();\n }\n },\n image: function (state, node, _a, customAttrs) {\n var entering = _a.entering, skipChildren = _a.skipChildren;\n var image = state.schema.nodes.image;\n var _b = node, destination = _b.destination, firstChild = _b.firstChild;\n if (entering && skipChildren) {\n skipChildren();\n }\n state.addNode(image, __assign$1(__assign$1({ imageUrl: destination }, (firstChild && { altText: firstChild.literal })), customAttrs));\n },\n thematicBreak: function (state, node, _, customAttrs) {\n state.addNode(state.schema.nodes.thematicBreak, customAttrs);\n },\n strong: function (state, _, _a, customAttrs) {\n var entering = _a.entering;\n var strong = state.schema.marks.strong;\n if (entering) {\n state.openMark(strong.create(customAttrs));\n }\n else {\n state.closeMark(strong);\n }\n },\n emph: function (state, _, _a, customAttrs) {\n var entering = _a.entering;\n var emph = state.schema.marks.emph;\n if (entering) {\n state.openMark(emph.create(customAttrs));\n }\n else {\n state.closeMark(emph);\n }\n },\n link: function (state, node, _a, customAttrs) {\n var entering = _a.entering;\n var link = state.schema.marks.link;\n var _b = node, destination = _b.destination, title = _b.title;\n if (entering) {\n var attrs = __assign$1({ linkUrl: destination, title: title }, customAttrs);\n state.openMark(link.create(attrs));\n }\n else {\n state.closeMark(link);\n }\n },\n softbreak: function (state, node) {\n if (node.parent.type === 'paragraph') {\n var prev = node.prev, next = node.next;\n if (prev && !isBRTag(prev)) {\n state.closeNode();\n }\n if (next && !isBRTag(next)) {\n state.openNode(state.schema.nodes.paragraph);\n }\n }\n },\n // GFM specifications node\n table: function (state, _, _a, customAttrs) {\n var entering = _a.entering;\n if (entering) {\n state.openNode(state.schema.nodes.table, customAttrs);\n }\n else {\n state.closeNode();\n }\n },\n tableHead: function (state, _, _a, customAttrs) {\n var entering = _a.entering;\n if (entering) {\n state.openNode(state.schema.nodes.tableHead, customAttrs);\n }\n else {\n state.closeNode();\n }\n },\n tableBody: function (state, _, _a, customAttrs) {\n var entering = _a.entering;\n if (entering) {\n state.openNode(state.schema.nodes.tableBody, customAttrs);\n }\n else {\n state.closeNode();\n }\n },\n tableRow: function (state, _, _a, customAttrs) {\n var entering = _a.entering;\n if (entering) {\n state.openNode(state.schema.nodes.tableRow, customAttrs);\n }\n else {\n state.closeNode();\n }\n },\n tableCell: function (state, node, _a) {\n var entering = _a.entering;\n if (!node.ignored) {\n var hasParaNode = function (childNode) {\n return childNode && (isInlineNode(childNode) || isCustomHTMLInlineNode(state, childNode));\n };\n if (entering) {\n var _b = state.schema.nodes, tableHeadCell = _b.tableHeadCell, tableBodyCell = _b.tableBodyCell, paragraph = _b.paragraph;\n var tablePart = node.parent.parent;\n var cell = tablePart.type === 'tableHead' ? tableHeadCell : tableBodyCell;\n var table = tablePart.parent;\n var align = (table.columns[node.startIdx] || {}).align;\n var attrs = __assign$1({}, node.attrs);\n if (align) {\n attrs.align = align;\n }\n state.openNode(cell, attrs);\n if (hasParaNode(node.firstChild)) {\n state.openNode(paragraph);\n }\n }\n else {\n if (hasParaNode(node.lastChild)) {\n state.closeNode();\n }\n state.closeNode();\n }\n }\n },\n strike: function (state, _, _a, customAttrs) {\n var entering = _a.entering;\n var strike = state.schema.marks.strike;\n if (entering) {\n state.openMark(strike.create(customAttrs));\n }\n else {\n state.closeMark(strike);\n }\n },\n code: function (state, node, _, customAttrs) {\n var code = state.schema.marks.code;\n state.openMark(code.create(customAttrs));\n state.addText(getTextWithoutTrailingNewline(node.literal || ''));\n state.closeMark(code);\n },\n customBlock: function (state, node) {\n var _a = state.schema.nodes, customBlock = _a.customBlock, paragraph = _a.paragraph;\n var _b = node, info = _b.info, literal = _b.literal;\n state.openNode(customBlock, { info: info });\n state.addText(getTextWithoutTrailingNewline(literal || ''));\n state.closeNode();\n // add empty line to edit the content in next line\n if (!node.next) {\n state.openNode(paragraph);\n state.closeNode();\n }\n },\n frontMatter: function (state, node) {\n state.openNode(state.schema.nodes.frontMatter);\n state.addText(node.literal);\n state.closeNode();\n },\n htmlInline: function (state, node) {\n var html = node.literal;\n var matched = html.match(reHTMLTag);\n var openTagName = matched[1], closeTagName = matched[3];\n var typeName = (openTagName || closeTagName).toLowerCase();\n var markType = state.schema.marks[typeName];\n var sanitizedHTML = sanitizeHTML(html);\n // for user defined html schema\n if (markType === null || markType === void 0 ? void 0 : markType.spec.attrs.htmlInline) {\n if (openTagName) {\n var htmlAttrs = getHTMLAttrsByHTMLString(sanitizedHTML);\n state.openMark(markType.create({ htmlAttrs: htmlAttrs }));\n }\n else {\n state.closeMark(markType);\n }\n }\n else {\n var htmlToWwConvertor = htmlToWwConvertors[typeName];\n if (htmlToWwConvertor) {\n htmlToWwConvertor(state, node, openTagName);\n }\n }\n },\n htmlBlock: function (state, node) {\n var html = node.literal;\n var container = document.createElement('div');\n var isHTMLComment = reHTMLComment.test(html);\n if (isHTMLComment) {\n state.openNode(state.schema.nodes.htmlComment);\n state.addText(node.literal);\n state.closeNode();\n }\n else {\n var matched = html.match(reHTMLTag);\n var openTagName = matched[1], closeTagName = matched[3];\n var typeName = (openTagName || closeTagName).toLowerCase();\n var nodeType = state.schema.nodes[typeName];\n var sanitizedHTML = sanitizeHTML(html);\n // for user defined html schema\n if (nodeType === null || nodeType === void 0 ? void 0 : nodeType.spec.attrs.htmlBlock) {\n var htmlAttrs = getHTMLAttrsByHTMLString(sanitizedHTML);\n var childrenHTML = getChildrenHTML(node, typeName);\n state.addNode(nodeType, { htmlAttrs: htmlAttrs, childrenHTML: childrenHTML });\n }\n else {\n container.innerHTML = sanitizedHTML;\n addRawHTMLAttributeToDOM(container);\n state.convertByDOMParser(container);\n }\n }\n },\n customInline: function (state, node, _a) {\n var entering = _a.entering, skipChildren = _a.skipChildren;\n var _b = node, info = _b.info, firstChild = _b.firstChild;\n var schema = state.schema;\n if (info.indexOf('widget') !== -1 && entering) {\n var content = getWidgetContent(node);\n skipChildren();\n state.addNode(schema.nodes.widget, { info: info }, [\n schema.text(createWidgetContent(info, content)),\n ]);\n }\n else {\n var text = '$$';\n if (entering) {\n text += firstChild ? info + \" \" : info;\n }\n state.addText(text);\n }\n },\n};\nfunction createWwConvertors(customConvertors) {\n var customConvertorTypes = Object.keys(customConvertors);\n var convertors = __assign$1({}, toWwConvertors);\n var renderer = new Renderer({\n gfm: true,\n nodeId: true,\n convertors: customConvertors,\n });\n var orgConvertors = renderer.getConvertors();\n customConvertorTypes.forEach(function (type) {\n var wwConvertor = toWwConvertors[type];\n if (wwConvertor && !includes(['htmlBlock', 'htmlInline'], type)) {\n convertors[type] = function (state, node, context) {\n context.origin = function () { return orgConvertors[type](node, context, orgConvertors); };\n var tokens = customConvertors[type](node, context);\n var attrs;\n if (tokens) {\n var _a = Array.isArray(tokens) ? tokens[0] : tokens, htmlAttrs = _a.attributes, classNames = _a.classNames;\n attrs = { htmlAttrs: htmlAttrs, classNames: classNames };\n }\n wwConvertor(state, node, context, attrs);\n };\n }\n });\n return convertors;\n}\n\nfunction mergeMarkText(a, b) {\n if (a.isText && b.isText && prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Mark\"].sameSet(a.marks, b.marks)) {\n // @ts-ignore\n // type is not defined for \"withText\" in prosemirror-model\n return a.withText(a.text + b.text);\n }\n return false;\n}\nvar ToWwConvertorState = /** @class */ (function () {\n function ToWwConvertorState(schema, convertors) {\n this.schema = schema;\n this.convertors = convertors;\n this.stack = [{ type: this.schema.topNodeType, attrs: null, content: [] }];\n this.marks = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Mark\"].none;\n }\n ToWwConvertorState.prototype.top = function () {\n return last$1(this.stack);\n };\n ToWwConvertorState.prototype.push = function (node) {\n if (this.stack.length) {\n this.top().content.push(node);\n }\n };\n ToWwConvertorState.prototype.addText = function (text) {\n if (text) {\n var nodes = this.top().content;\n var lastNode = last$1(nodes);\n var node = this.schema.text(text, this.marks);\n var merged = lastNode && mergeMarkText(lastNode, node);\n if (merged) {\n nodes[nodes.length - 1] = merged;\n }\n else {\n nodes.push(node);\n }\n }\n };\n ToWwConvertorState.prototype.openMark = function (mark) {\n this.marks = mark.addToSet(this.marks);\n };\n ToWwConvertorState.prototype.closeMark = function (mark) {\n this.marks = mark.removeFromSet(this.marks);\n };\n ToWwConvertorState.prototype.addNode = function (type, attrs, content) {\n var node = type.createAndFill(attrs, content, this.marks);\n if (node) {\n this.push(node);\n return node;\n }\n return null;\n };\n ToWwConvertorState.prototype.openNode = function (type, attrs) {\n this.stack.push({ type: type, attrs: attrs, content: [] });\n };\n ToWwConvertorState.prototype.closeNode = function () {\n if (this.marks.length) {\n this.marks = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Mark\"].none;\n }\n var _a = this.stack.pop(), type = _a.type, attrs = _a.attrs, content = _a.content;\n return this.addNode(type, attrs, content);\n };\n ToWwConvertorState.prototype.convertByDOMParser = function (root) {\n var _this = this;\n var doc = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"DOMParser\"].fromSchema(this.schema).parse(root);\n doc.content.forEach(function (node) { return _this.push(node); });\n };\n ToWwConvertorState.prototype.closeUnmatchedHTMLInline = function (node, entering) {\n var _a;\n if (!entering && node.type !== 'htmlInline') {\n var length_1 = this.stack.length - 1;\n for (var i = length_1; i >= 0; i -= 1) {\n var nodeInfo = this.stack[i];\n if ((_a = nodeInfo.attrs) === null || _a === void 0 ? void 0 : _a.rawHTML) {\n if (nodeInfo.content.length) {\n this.closeNode();\n }\n else {\n // just pop useless unmatched html inline node\n this.stack.pop();\n }\n }\n else {\n break;\n }\n }\n }\n };\n ToWwConvertorState.prototype.convert = function (mdNode, infoForPosSync) {\n var walker = mdNode.walker();\n var event = walker.next();\n var _loop_1 = function () {\n var node = event.node, entering = event.entering;\n var convertor = this_1.convertors[node.type];\n var skipped = false;\n if (convertor) {\n var context = {\n entering: entering,\n leaf: !isContainer$2(node),\n getChildrenText: getChildrenText$1,\n options: { gfm: true, nodeId: false, tagFilter: false, softbreak: '\\n' },\n skipChildren: function () {\n skipped = true;\n },\n };\n this_1.closeUnmatchedHTMLInline(node, entering);\n convertor(this_1, node, context);\n if ((infoForPosSync === null || infoForPosSync === void 0 ? void 0 : infoForPosSync.node) === node) {\n var pos = this_1.stack.reduce(function (nodeSize, stackItem) {\n return nodeSize +\n stackItem.content.reduce(function (contentSize, pmNode) { return contentSize + pmNode.nodeSize; }, 0);\n }, 0) + 1;\n infoForPosSync.setMappedPos(pos);\n }\n }\n if (skipped) {\n walker.resumeAt(node, false);\n walker.next();\n }\n event = walker.next();\n };\n var this_1 = this;\n while (event) {\n _loop_1();\n }\n };\n ToWwConvertorState.prototype.convertNode = function (mdNode, infoForPosSync) {\n this.convert(mdNode, infoForPosSync);\n if (this.stack.length) {\n return this.closeNode();\n }\n return null;\n };\n return ToWwConvertorState;\n}());\n\nfunction convertToRawHTMLHavingInlines(state, node, _a) {\n var openTag = _a[0], closeTag = _a[1];\n state.write(openTag);\n state.convertInline(node);\n state.write(closeTag);\n}\nfunction convertToRawHTMLHavingBlocks(state, _a, _b) {\n var node = _a.node, parent = _a.parent;\n var openTag = _b[0], closeTag = _b[1];\n state.stopNewline = true;\n state.write(openTag);\n state.convertNode(node);\n state.write(closeTag);\n if ((parent === null || parent === void 0 ? void 0 : parent.type.name) === 'doc') {\n state.closeBlock(node);\n state.stopNewline = false;\n }\n}\nfunction createTableHeadDelim(textContent, columnAlign) {\n var textLen = textContent.length;\n var leftDelim = '';\n var rightDelim = '';\n if (columnAlign === 'left') {\n leftDelim = ':';\n textLen -= 1;\n }\n else if (columnAlign === 'right') {\n rightDelim = ':';\n textLen -= 1;\n }\n else if (columnAlign === 'center') {\n leftDelim = ':';\n rightDelim = ':';\n textLen -= 2;\n }\n return \"\" + leftDelim + repeat$1('-', Math.max(textLen, 3)) + rightDelim;\n}\nvar nodeTypeWriters = {\n text: function (state, _a) {\n var _b;\n var node = _a.node;\n var text = (_b = node.text) !== null && _b !== void 0 ? _b : '';\n if ((node.marks || []).some(function (mark) { return mark.type.name === 'link'; })) {\n state.text(escapeTextForLink(text), false);\n }\n else {\n state.text(text);\n }\n },\n paragraph: function (state, _a) {\n var node = _a.node, parent = _a.parent, _b = _a.index, index = _b === void 0 ? 0 : _b;\n if (state.stopNewline) {\n state.convertInline(node);\n }\n else {\n var firstChildNode = index === 0;\n var prevNode = !firstChildNode && parent.child(index - 1);\n var prevEmptyNode = prevNode && prevNode.childCount === 0;\n var nextNode = index < parent.childCount - 1 && parent.child(index + 1);\n var nextParaNode = nextNode && nextNode.type.name === 'paragraph';\n var emptyNode = node.childCount === 0;\n if (emptyNode && prevEmptyNode) {\n state.write('<br>\\n');\n }\n else if (emptyNode && !prevEmptyNode && !firstChildNode) {\n if ((parent === null || parent === void 0 ? void 0 : parent.type.name) === 'listItem') {\n var prevDelim = state.getDelim();\n state.setDelim('');\n state.write('<br>');\n state.setDelim(prevDelim);\n }\n state.write('\\n');\n }\n else {\n state.convertInline(node);\n if (nextParaNode) {\n state.write('\\n');\n }\n else {\n state.closeBlock(node);\n }\n }\n }\n },\n heading: function (state, _a, _b) {\n var node = _a.node;\n var delim = _b.delim;\n var headingType = node.attrs.headingType;\n if (headingType === 'atx') {\n state.write(delim + \" \");\n state.convertInline(node);\n state.closeBlock(node);\n }\n else {\n state.convertInline(node);\n state.ensureNewLine();\n state.write(delim);\n state.closeBlock(node);\n }\n },\n codeBlock: function (state, _a, _b) {\n var node = _a.node;\n var delim = _b.delim, text = _b.text;\n var _c = delim, openDelim = _c[0], closeDelim = _c[1];\n state.write(openDelim);\n state.ensureNewLine();\n state.text(text, false);\n state.ensureNewLine();\n state.write(closeDelim);\n state.closeBlock(node);\n },\n blockQuote: function (state, _a, _b) {\n var node = _a.node, parent = _a.parent;\n var delim = _b.delim;\n if ((parent === null || parent === void 0 ? void 0 : parent.type.name) === node.type.name) {\n state.flushClose(1);\n }\n state.wrapBlock(delim, null, node, function () { return state.convertNode(node); });\n },\n bulletList: function (state, _a, _b) {\n var node = _a.node;\n var delim = _b.delim;\n // soft-tab(4)\n state.convertList(node, repeat$1(' ', 4), function () { return delim + \" \"; });\n },\n orderedList: function (state, _a) {\n var node = _a.node;\n var start = node.attrs.order || 1;\n // soft-tab(4)\n state.convertList(node, repeat$1(' ', 4), function (index) {\n var orderedNum = String(start + index);\n return orderedNum + \". \";\n });\n },\n listItem: function (state, _a) {\n var node = _a.node;\n var _b = node.attrs, task = _b.task, checked = _b.checked;\n if (task) {\n state.write(\"[\" + (checked ? 'x' : ' ') + \"] \");\n }\n state.convertNode(node);\n },\n image: function (state, _, _a) {\n var attrs = _a.attrs;\n state.write(\"![\" + (attrs === null || attrs === void 0 ? void 0 : attrs.altText) + \"](\" + (attrs === null || attrs === void 0 ? void 0 : attrs.imageUrl) + \")\");\n },\n thematicBreak: function (state, _a, _b) {\n var node = _a.node;\n var delim = _b.delim;\n state.write(delim);\n state.closeBlock(node);\n },\n table: function (state, _a) {\n var node = _a.node;\n state.convertNode(node);\n state.closeBlock(node);\n },\n tableHead: function (state, _a, _b) {\n var node = _a.node;\n var delim = _b.delim;\n var row = node.firstChild;\n state.convertNode(node);\n var result = delim !== null && delim !== void 0 ? delim : '';\n if (!delim && row) {\n row.forEach(function (_a) {\n var textContent = _a.textContent, attrs = _a.attrs;\n var headDelim = createTableHeadDelim(textContent, attrs.align);\n result += \"| \" + headDelim + \" \";\n });\n }\n state.write(result + \"|\");\n state.ensureNewLine();\n },\n tableBody: function (state, _a) {\n var node = _a.node;\n state.convertNode(node);\n },\n tableRow: function (state, _a) {\n var node = _a.node;\n state.convertNode(node);\n state.write('|');\n state.ensureNewLine();\n },\n tableHeadCell: function (state, _a, _b) {\n var node = _a.node;\n var _c = _b.delim, delim = _c === void 0 ? '| ' : _c;\n state.write(delim);\n state.convertTableCell(node);\n state.write(' ');\n },\n tableBodyCell: function (state, _a, _b) {\n var node = _a.node;\n var _c = _b.delim, delim = _c === void 0 ? '| ' : _c;\n state.write(delim);\n state.convertTableCell(node);\n state.write(' ');\n },\n customBlock: function (state, _a, _b) {\n var node = _a.node;\n var delim = _b.delim, text = _b.text;\n var _c = delim, openDelim = _c[0], closeDelim = _c[1];\n state.write(openDelim);\n state.ensureNewLine();\n state.text(text, false);\n state.ensureNewLine();\n state.write(closeDelim);\n state.closeBlock(node);\n },\n frontMatter: function (state, _a, _b) {\n var node = _a.node;\n var text = _b.text;\n state.text(text, false);\n state.closeBlock(node);\n },\n widget: function (state, _, _a) {\n var text = _a.text;\n state.write(text);\n },\n html: function (state, _a, _b) {\n var node = _a.node;\n var text = _b.text;\n state.write(text);\n if (node.attrs.htmlBlock) {\n state.closeBlock(node);\n }\n },\n htmlComment: function (state, _a, _b) {\n var node = _a.node;\n var text = _b.text;\n state.write(text);\n state.closeBlock(node);\n },\n};\nfunction write(type, _a) {\n var state = _a.state, nodeInfo = _a.nodeInfo, params = _a.params;\n var rawHTML = params.rawHTML;\n if (rawHTML) {\n if (inArray_1(type, ['heading', 'codeBlock']) > -1) {\n convertToRawHTMLHavingInlines(state, nodeInfo.node, rawHTML);\n }\n else if (inArray_1(type, ['image', 'thematicBreak']) > -1) {\n state.write(rawHTML);\n }\n else {\n convertToRawHTMLHavingBlocks(state, nodeInfo, rawHTML);\n }\n }\n else {\n nodeTypeWriters[type](state, nodeInfo, params);\n }\n}\n\nfunction addBackticks(node, side) {\n var text = node.text;\n var ticks = /`+/g;\n var len = 0;\n if (node.isText && text) {\n var matched = ticks.exec(text);\n while (matched) {\n len = Math.max(len, matched[0].length);\n matched = ticks.exec(text);\n }\n }\n var result = len > 0 && side > 0 ? ' `' : '`';\n for (var i = 0; i < len; i += 1) {\n result += '`';\n }\n if (len > 0 && side < 0) {\n result += ' ';\n }\n return result;\n}\nfunction getPairRawHTML(rawHTML) {\n return rawHTML ? [\"<\" + rawHTML + \">\", \"</\" + rawHTML + \">\"] : null;\n}\nfunction getOpenRawHTML(rawHTML) {\n return rawHTML ? \"<\" + rawHTML + \">\" : null;\n}\nfunction getCloseRawHTML(rawHTML) {\n return rawHTML ? \"</\" + rawHTML + \">\" : null;\n}\nvar toMdConvertors = {\n heading: function (_a) {\n var node = _a.node;\n var attrs = node.attrs;\n var level = attrs.level;\n var delim = repeat$1('#', level);\n if (attrs.headingType === 'setext') {\n delim = level === 1 ? '===' : '---';\n }\n return {\n delim: delim,\n rawHTML: getPairRawHTML(attrs.rawHTML),\n };\n },\n codeBlock: function (_a) {\n var node = _a.node;\n var _b = node, attrs = _b.attrs, textContent = _b.textContent;\n return {\n delim: [\"```\" + (attrs.language || ''), '```'],\n rawHTML: getPairRawHTML(attrs.rawHTML),\n text: textContent,\n };\n },\n blockQuote: function (_a) {\n var node = _a.node;\n return {\n delim: '> ',\n rawHTML: getPairRawHTML(node.attrs.rawHTML),\n };\n },\n bulletList: function (_a, _b) {\n var node = _a.node;\n var inTable = _b.inTable;\n var rawHTML = node.attrs.rawHTML;\n if (inTable) {\n rawHTML = rawHTML || 'ul';\n }\n return {\n delim: '*',\n rawHTML: getPairRawHTML(rawHTML),\n };\n },\n orderedList: function (_a, _b) {\n var node = _a.node;\n var inTable = _b.inTable;\n var rawHTML = node.attrs.rawHTML;\n if (inTable) {\n rawHTML = rawHTML || 'ol';\n }\n return {\n rawHTML: getPairRawHTML(rawHTML),\n };\n },\n listItem: function (_a, _b) {\n var node = _a.node;\n var inTable = _b.inTable;\n var _c = node.attrs, task = _c.task, checked = _c.checked;\n var rawHTML = node.attrs.rawHTML;\n if (inTable) {\n rawHTML = rawHTML || 'li';\n }\n var className = task ? \" class=\\\"task-list-item\" + (checked ? ' checked' : '') + \"\\\"\" : '';\n var dataset = task ? \" data-task\" + (checked ? \" data-task-checked\" : '') : '';\n return {\n rawHTML: rawHTML ? [\"<\" + rawHTML + className + dataset + \">\", \"</\" + rawHTML + \">\"] : null,\n };\n },\n table: function (_a) {\n var node = _a.node;\n return {\n rawHTML: getPairRawHTML(node.attrs.rawHTML),\n };\n },\n tableHead: function (_a) {\n var node = _a.node;\n return {\n rawHTML: getPairRawHTML(node.attrs.rawHTML),\n };\n },\n tableBody: function (_a) {\n var node = _a.node;\n return {\n rawHTML: getPairRawHTML(node.attrs.rawHTML),\n };\n },\n tableRow: function (_a) {\n var node = _a.node;\n return {\n rawHTML: getPairRawHTML(node.attrs.rawHTML),\n };\n },\n tableHeadCell: function (_a) {\n var node = _a.node;\n return {\n rawHTML: getPairRawHTML(node.attrs.rawHTML),\n };\n },\n tableBodyCell: function (_a) {\n var node = _a.node;\n return {\n rawHTML: getPairRawHTML(node.attrs.rawHTML),\n };\n },\n image: function (_a) {\n var node = _a.node;\n var attrs = node.attrs;\n var rawHTML = attrs.rawHTML, altText = attrs.altText;\n var imageUrl = attrs.imageUrl.replace(/&amp;/g, '&');\n var altAttr = altText ? \" alt=\\\"\" + escapeXml$1(altText) + \"\\\"\" : '';\n return {\n rawHTML: rawHTML ? \"<\" + rawHTML + \" src=\\\"\" + escapeXml$1(imageUrl) + \"\\\"\" + altAttr + \">\" : null,\n attrs: {\n altText: escapeTextForLink(altText || ''),\n imageUrl: imageUrl,\n },\n };\n },\n thematicBreak: function (_a) {\n var node = _a.node;\n return {\n delim: '***',\n rawHTML: getOpenRawHTML(node.attrs.rawHTML),\n };\n },\n customBlock: function (_a) {\n var node = _a.node;\n var _b = node, attrs = _b.attrs, textContent = _b.textContent;\n return {\n delim: [\"$$\" + attrs.info, '$$'],\n text: textContent,\n };\n },\n frontMatter: function (_a) {\n var node = _a.node;\n return {\n text: node.textContent,\n };\n },\n widget: function (_a) {\n var node = _a.node;\n return {\n text: node.textContent,\n };\n },\n strong: function (_a, _b) {\n var node = _a.node;\n var entering = _b.entering;\n var rawHTML = node.attrs.rawHTML;\n return {\n delim: '**',\n rawHTML: entering ? getOpenRawHTML(rawHTML) : getCloseRawHTML(rawHTML),\n };\n },\n emph: function (_a, _b) {\n var node = _a.node;\n var entering = _b.entering;\n var rawHTML = node.attrs.rawHTML;\n return {\n delim: '*',\n rawHTML: entering ? getOpenRawHTML(rawHTML) : getCloseRawHTML(rawHTML),\n };\n },\n strike: function (_a, _b) {\n var node = _a.node;\n var entering = _b.entering;\n var rawHTML = node.attrs.rawHTML;\n return {\n delim: '~~',\n rawHTML: entering ? getOpenRawHTML(rawHTML) : getCloseRawHTML(rawHTML),\n };\n },\n link: function (_a, _b) {\n var node = _a.node;\n var entering = _b.entering;\n var attrs = node.attrs;\n var title = attrs.title, rawHTML = attrs.rawHTML;\n var linkUrl = attrs.linkUrl.replace(/&amp;/g, '&');\n var titleAttr = title ? \" title=\\\"\" + escapeXml$1(title) + \"\\\"\" : '';\n if (entering) {\n return {\n delim: '[',\n rawHTML: rawHTML ? \"<\" + rawHTML + \" href=\\\"\" + escapeXml$1(linkUrl) + \"\\\"\" + titleAttr + \">\" : null,\n };\n }\n return {\n delim: \"](\" + linkUrl + (title ? \" \" + quote(escapeTextForLink(title)) : '') + \")\",\n rawHTML: getCloseRawHTML(rawHTML),\n };\n },\n code: function (_a, _b) {\n var node = _a.node, parent = _a.parent, _c = _a.index, index = _c === void 0 ? 0 : _c;\n var entering = _b.entering;\n var delim = entering\n ? addBackticks(parent.child(index), -1)\n : addBackticks(parent.child(index - 1), 1);\n var rawHTML = entering\n ? getOpenRawHTML(node.attrs.rawHTML)\n : getCloseRawHTML(node.attrs.rawHTML);\n return {\n delim: delim,\n rawHTML: rawHTML,\n };\n },\n htmlComment: function (_a) {\n var node = _a.node;\n return {\n text: node.textContent,\n };\n },\n // html inline node, html block node\n html: function (_a, _b) {\n var node = _a.node;\n var entering = _b.entering;\n var tagName = node.type.name;\n var attrs = node.attrs.htmlAttrs;\n var openTag = \"<\" + tagName;\n var closeTag = \"</\" + tagName + \">\";\n Object.keys(attrs).forEach(function (attrName) {\n // To prevent broken converting when attributes has double quote string\n openTag += \" \" + attrName + \"=\\\"\" + attrs[attrName].replace(/\"/g, \"'\") + \"\\\"\";\n });\n openTag += '>';\n if (node.attrs.htmlInline) {\n return {\n rawHTML: entering ? openTag : closeTag,\n };\n }\n return {\n text: \"\" + openTag + node.attrs.childrenHTML + closeTag,\n };\n },\n};\nvar markTypeOptions = {\n strong: {\n mixable: true,\n removedEnclosingWhitespace: true,\n },\n emph: {\n mixable: true,\n removedEnclosingWhitespace: true,\n },\n strike: {\n mixable: true,\n removedEnclosingWhitespace: true,\n },\n code: {\n escape: false,\n },\n link: null,\n html: null,\n};\nfunction createNodeTypeConvertors(convertors) {\n var nodeTypeConvertors = {};\n var nodeTypes = Object.keys(nodeTypeWriters);\n nodeTypes.forEach(function (type) {\n nodeTypeConvertors[type] = function (state, nodeInfo) {\n var writer = nodeTypeWriters[type];\n if (writer) {\n var convertor = convertors[type];\n var params = convertor\n ? convertor(nodeInfo, {\n inTable: state.inTable,\n })\n : {};\n write(type, { state: state, nodeInfo: nodeInfo, params: params });\n }\n };\n });\n return nodeTypeConvertors;\n}\nfunction createMarkTypeConvertors(convertors) {\n var markTypeConvertors = {};\n var markTypes = Object.keys(markTypeOptions);\n markTypes.forEach(function (type) {\n markTypeConvertors[type] = function (nodeInfo, entering) {\n var markOption = markTypeOptions[type];\n var convertor = convertors[type];\n // There are two ways to call the mark type converter\n // in the `toMdConvertorState` module.\n // When calling the converter without using `delim` and `rawHTML` values,\n // the converter is called without parameters.\n var runConvertor = convertor && nodeInfo && !isUndefined_1(entering);\n var params = runConvertor ? convertor(nodeInfo, { entering: entering }) : {};\n return __assign$1(__assign$1({}, params), markOption);\n };\n });\n return markTypeConvertors;\n}\n// Step 1: Create the converter by overriding the custom converter\n// to the original converter defined in the `toMdConvertors` module.\n// If the node type is defined in the original converter,\n// the `origin()` function is exported to the paramter of the converter.\n// Step 2: Create a converter for the node type of ProseMirror by combining the converter\n// created in Step 1 with the writers defined in the`toMdNodeTypeWriters` module.\n// Each writer converts the ProseMirror's node to a string with the value returned\n// by the converter, and then stores the state in the`toMdConverterState` class.\n// Step 3: Create a converter for the mark type of ProseMirror by combining the converter\n// created in Step 1 with `markTypeOptions`.\n// Step 4: The created node type converter and mark type converter are injected\n// when creating an instance of the`toMdConverterState` class.\nfunction createMdConvertors(customConvertors) {\n var customConvertorTypes = Object.keys(customConvertors);\n customConvertorTypes.forEach(function (type) {\n var baseConvertor = toMdConvertors[type];\n var customConvertor = customConvertors[type];\n if (baseConvertor) {\n toMdConvertors[type] = function (nodeInfo, context) {\n context.origin = function () { return baseConvertor(nodeInfo, context); };\n return customConvertor(nodeInfo, context);\n };\n }\n else {\n toMdConvertors[type] = customConvertor;\n }\n delete customConvertors[type];\n });\n var nodeTypeConvertors = createNodeTypeConvertors(toMdConvertors);\n var markTypeConvertors = createMarkTypeConvertors(toMdConvertors);\n return {\n nodeTypeConvertors: nodeTypeConvertors,\n markTypeConvertors: markTypeConvertors,\n };\n}\n\nvar ToMdConvertorState = /** @class */ (function () {\n function ToMdConvertorState(_a) {\n var nodeTypeConvertors = _a.nodeTypeConvertors, markTypeConvertors = _a.markTypeConvertors;\n this.nodeTypeConvertors = nodeTypeConvertors;\n this.markTypeConvertors = markTypeConvertors;\n this.delim = '';\n this.result = '';\n this.closed = false;\n this.tightList = false;\n this.stopNewline = false;\n this.inTable = false;\n }\n ToMdConvertorState.prototype.getMarkConvertor = function (mark) {\n var type = mark.attrs.htmlInline ? 'html' : mark.type.name;\n return this.markTypeConvertors[type];\n };\n ToMdConvertorState.prototype.isInBlank = function () {\n return /(^|\\n)$/.test(this.result);\n };\n ToMdConvertorState.prototype.markText = function (mark, entering, parent, index) {\n var convertor = this.getMarkConvertor(mark);\n if (convertor) {\n var _a = convertor({ node: mark, parent: parent, index: index }, entering), delim = _a.delim, rawHTML = _a.rawHTML;\n return rawHTML || delim;\n }\n return '';\n };\n ToMdConvertorState.prototype.setDelim = function (delim) {\n this.delim = delim;\n };\n ToMdConvertorState.prototype.getDelim = function () {\n return this.delim;\n };\n ToMdConvertorState.prototype.flushClose = function (size) {\n if (!this.stopNewline && this.closed) {\n if (!this.isInBlank()) {\n this.result += '\\n';\n }\n if (!size) {\n size = 2;\n }\n if (size > 1) {\n var delimMin = this.delim;\n var trim = /\\s+$/.exec(delimMin);\n if (trim) {\n delimMin = delimMin.slice(0, delimMin.length - trim[0].length);\n }\n for (var i = 1; i < size; i += 1) {\n this.result += delimMin + \"\\n\";\n }\n }\n this.closed = false;\n }\n };\n ToMdConvertorState.prototype.wrapBlock = function (delim, firstDelim, node, fn) {\n var old = this.getDelim();\n this.write(firstDelim || delim);\n this.setDelim(this.getDelim() + delim);\n fn();\n this.setDelim(old);\n this.closeBlock(node);\n };\n ToMdConvertorState.prototype.ensureNewLine = function () {\n if (!this.isInBlank()) {\n this.result += '\\n';\n }\n };\n ToMdConvertorState.prototype.write = function (content) {\n if (content === void 0) { content = ''; }\n this.flushClose();\n if (this.delim && this.isInBlank()) {\n this.result += this.delim;\n }\n if (content) {\n this.result += content;\n }\n };\n ToMdConvertorState.prototype.closeBlock = function (node) {\n this.closed = node;\n };\n ToMdConvertorState.prototype.text = function (text, escaped) {\n if (escaped === void 0) { escaped = true; }\n var lines = text.split('\\n');\n for (var i = 0; i < lines.length; i += 1) {\n this.write();\n this.result += escaped ? escape$1(lines[i]) : lines[i];\n if (i !== lines.length - 1) {\n this.result += '\\n';\n }\n }\n };\n ToMdConvertorState.prototype.convertBlock = function (node, parent, index) {\n var type = node.type.name;\n var convertor = this.nodeTypeConvertors[type];\n var nodeInfo = { node: node, parent: parent, index: index };\n if (node.attrs.htmlBlock) {\n this.nodeTypeConvertors.html(this, nodeInfo);\n }\n else if (convertor) {\n convertor(this, nodeInfo);\n }\n };\n ToMdConvertorState.prototype.convertInline = function (parent) {\n var _this = this;\n var active = [];\n var trailing = '';\n var progress = function (node, _, index) {\n var marks = node ? node.marks : [];\n var leading = trailing;\n trailing = '';\n // If whitespace has to be expelled from the node, adjust\n // leading and trailing accordingly.\n var removedWhitespace = node &&\n node.isText &&\n marks.some(function (mark) {\n var markConvertor = _this.getMarkConvertor(mark);\n var info = markConvertor && markConvertor();\n return info && info.removedEnclosingWhitespace;\n });\n if (removedWhitespace && node && node.text) {\n var _a = /^(\\s*)(.*?)(\\s*)$/m.exec(node.text), lead = _a[1], mark = _a[2], trail = _a[3];\n leading += lead;\n trailing = trail;\n if (lead || trail) {\n // @ts-ignore\n // type is not defined for \"withText\" in prosemirror-model\n node = mark ? node.withText(mark) : null;\n if (!node) {\n marks = active;\n }\n }\n }\n var lastMark = marks.length && last$1(marks);\n var markConvertor = lastMark && _this.getMarkConvertor(lastMark);\n var markType = markConvertor && markConvertor();\n var noEscape = markType && markType.escape === false;\n var len = marks.length - (noEscape ? 1 : 0);\n // Try to reorder 'mixable' marks, such as em and strong, which\n // in Markdown may be opened and closed in different order, so\n // that order of the marks for the token matches the order in\n // active.\n for (var i = 0; i < len; i += 1) {\n var mark = marks[i];\n if (markType && !markType.mixable) {\n break;\n }\n for (var j = 0; j < active.length; j += 1) {\n var other = active[j];\n if (markType && !markType.mixable) {\n break;\n }\n if (mark.eq(other)) {\n // eslint-disable-next-line max-depth\n if (i > j) {\n marks = marks\n .slice(0, j)\n .concat(mark)\n .concat(marks.slice(j, i))\n .concat(marks.slice(i + 1, len));\n }\n else if (j > i) {\n marks = marks\n .slice(0, i)\n .concat(marks.slice(i + 1, j))\n .concat(mark)\n .concat(marks.slice(j, len));\n }\n break;\n }\n }\n }\n // Find the prefix of the mark set that didn't change\n var keep = 0;\n while (keep < Math.min(active.length, len) && marks[keep].eq(active[keep])) {\n keep += 1;\n }\n // Close the marks that need to be closed\n while (keep < active.length) {\n var activedMark = active.pop();\n if (activedMark) {\n _this.text(_this.markText(activedMark, false, parent, index), false);\n }\n }\n // Output any previously expelled trailing whitespace outside the marks\n if (leading) {\n _this.text(leading);\n }\n // Open the marks that need to be opened\n if (node) {\n while (active.length < len) {\n var mark = marks[active.length];\n active.push(mark);\n _this.text(_this.markText(mark, true, parent, index), false);\n }\n // Render the node. Special case code marks, since their content\n // may not be escaped.\n if (noEscape && node.isText) {\n _this.text(_this.markText(lastMark, true, parent, index) +\n node.text +\n _this.markText(lastMark, false, parent, index + 1), false);\n }\n else {\n _this.convertBlock(node, parent, index);\n }\n }\n };\n parent.forEach(progress);\n progress(null, null, parent.childCount);\n };\n // Render a node's content as a list. `delim` should be the extra\n // indentation added to all lines except the first in an item,\n // `firstDelimFn` is a function going from an item index to a\n // delimiter for the first line of the item.\n ToMdConvertorState.prototype.convertList = function (node, delim, firstDelimFn) {\n var _this = this;\n var _a;\n if (this.closed && this.closed.type === node.type) {\n this.flushClose(3);\n }\n else if (this.tightList) {\n this.flushClose(1);\n }\n var tight = (_a = node.attrs.tight) !== null && _a !== void 0 ? _a : true;\n var prevTight = this.tightList;\n this.tightList = tight;\n node.forEach(function (child, _, index) {\n if (index && tight) {\n _this.flushClose(1);\n }\n _this.wrapBlock(delim, firstDelimFn(index), node, function () { return _this.convertBlock(child, node, index); });\n });\n this.tightList = prevTight;\n };\n ToMdConvertorState.prototype.convertTableCell = function (node) {\n var _this = this;\n this.stopNewline = true;\n this.inTable = true;\n node.forEach(function (child, _, index) {\n if (includes(['bulletList', 'orderedList'], child.type.name)) {\n _this.convertBlock(child, node, index);\n _this.closed = false;\n }\n else {\n _this.convertInline(child);\n if (index < node.childCount - 1) {\n var nextChild = node.child(index + 1);\n if (nextChild.type.name === 'paragraph') {\n _this.write('<br>');\n }\n }\n }\n });\n this.stopNewline = false;\n this.inTable = false;\n };\n ToMdConvertorState.prototype.convertNode = function (parent, infoForPosSync) {\n var _this = this;\n parent.forEach(function (node, _, index) {\n _this.convertBlock(node, parent, index);\n if ((infoForPosSync === null || infoForPosSync === void 0 ? void 0 : infoForPosSync.node) === node) {\n var lineTexts = _this.result.split('\\n');\n infoForPosSync.setMappedPos([lineTexts.length, last$1(lineTexts).length + 1]);\n }\n });\n return this.result;\n };\n return ToMdConvertorState;\n}());\n\nvar Convertor = /** @class */ (function () {\n function Convertor(schema, toMdConvertors, toHTMLConvertors, eventEmitter) {\n var _this = this;\n this.setMappedPos = function (pos) {\n _this.mappedPosWhenConverting = pos;\n };\n this.schema = schema;\n this.eventEmitter = eventEmitter;\n this.focusedNode = null;\n this.mappedPosWhenConverting = null;\n this.toWwConvertors = createWwConvertors(toHTMLConvertors);\n this.toMdConvertors = createMdConvertors(toMdConvertors || {});\n this.eventEmitter.listen('setFocusedNode', function (node) { return (_this.focusedNode = node); });\n }\n Convertor.prototype.getMappedPos = function () {\n return this.mappedPosWhenConverting;\n };\n Convertor.prototype.getInfoForPosSync = function () {\n return { node: this.focusedNode, setMappedPos: this.setMappedPos };\n };\n Convertor.prototype.toWysiwygModel = function (mdNode) {\n var state = new ToWwConvertorState(this.schema, this.toWwConvertors);\n return state.convertNode(mdNode, this.getInfoForPosSync());\n };\n Convertor.prototype.toMarkdownText = function (wwNode) {\n var state = new ToMdConvertorState(this.toMdConvertors);\n var markdownText = state.convertNode(wwNode, this.getInfoForPosSync());\n markdownText = this.eventEmitter.emitReduce('beforeConvertWysiwygToMarkdown', markdownText);\n return markdownText;\n };\n return Convertor;\n}());\n\nfunction execPlugin(pluginInfo) {\n var plugin = pluginInfo.plugin, eventEmitter = pluginInfo.eventEmitter, usageStatistics = pluginInfo.usageStatistics, instance = pluginInfo.instance;\n var pmState = { Plugin: prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"], PluginKey: prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"PluginKey\"], Selection: prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"Selection\"], TextSelection: prosemirror_state__WEBPACK_IMPORTED_MODULE_3__[\"TextSelection\"] };\n var pmView = { Decoration: prosemirror_view__WEBPACK_IMPORTED_MODULE_1__[\"Decoration\"], DecorationSet: prosemirror_view__WEBPACK_IMPORTED_MODULE_1__[\"DecorationSet\"] };\n var pmModel = { Fragment: prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"] };\n var pmRules = { InputRule: prosemirror_inputrules__WEBPACK_IMPORTED_MODULE_6__[\"InputRule\"], inputRules: prosemirror_inputrules__WEBPACK_IMPORTED_MODULE_6__[\"inputRules\"], undoInputRule: prosemirror_inputrules__WEBPACK_IMPORTED_MODULE_6__[\"undoInputRule\"] };\n var pmKeymap = { keymap: prosemirror_keymap__WEBPACK_IMPORTED_MODULE_4__[\"keymap\"] };\n var context = {\n eventEmitter: eventEmitter,\n usageStatistics: usageStatistics,\n instance: instance,\n pmState: pmState,\n pmView: pmView,\n pmModel: pmModel,\n pmRules: pmRules,\n pmKeymap: pmKeymap,\n i18n: i18n,\n };\n if (isArray_1(plugin)) {\n var pluginFn = plugin[0], _a = plugin[1], options = _a === void 0 ? {} : _a;\n return pluginFn(context, options);\n }\n return plugin(context);\n}\nfunction getPluginInfo(pluginsInfo) {\n var plugins = pluginsInfo.plugins, eventEmitter = pluginsInfo.eventEmitter, usageStatistics = pluginsInfo.usageStatistics, instance = pluginsInfo.instance;\n eventEmitter.listen('mixinTableOffsetMapPrototype', mixinTableOffsetMapPrototype);\n return (plugins !== null && plugins !== void 0 ? plugins : []).reduce(function (acc, plugin) {\n var pluginInfoResult = execPlugin({\n plugin: plugin,\n eventEmitter: eventEmitter,\n usageStatistics: usageStatistics,\n instance: instance,\n });\n if (!pluginInfoResult) {\n throw new Error('The return value of the executed plugin is empty.');\n }\n var markdownParsers = pluginInfoResult.markdownParsers, toHTMLRenderers = pluginInfoResult.toHTMLRenderers, toMarkdownRenderers = pluginInfoResult.toMarkdownRenderers, markdownPlugins = pluginInfoResult.markdownPlugins, wysiwygPlugins = pluginInfoResult.wysiwygPlugins, wysiwygNodeViews = pluginInfoResult.wysiwygNodeViews, markdownCommands = pluginInfoResult.markdownCommands, wysiwygCommands = pluginInfoResult.wysiwygCommands, toolbarItems = pluginInfoResult.toolbarItems;\n if (toHTMLRenderers) {\n acc.toHTMLRenderers = deepMergedCopy(acc.toHTMLRenderers, toHTMLRenderers);\n }\n if (toMarkdownRenderers) {\n acc.toMarkdownRenderers = deepMergedCopy(acc.toMarkdownRenderers, toMarkdownRenderers);\n }\n if (markdownPlugins) {\n acc.mdPlugins = acc.mdPlugins.concat(markdownPlugins);\n }\n if (wysiwygPlugins) {\n acc.wwPlugins = acc.wwPlugins.concat(wysiwygPlugins);\n }\n if (wysiwygNodeViews) {\n acc.wwNodeViews = __assign$1(__assign$1({}, acc.wwNodeViews), wysiwygNodeViews);\n }\n if (markdownCommands) {\n acc.mdCommands = __assign$1(__assign$1({}, acc.mdCommands), markdownCommands);\n }\n if (wysiwygCommands) {\n acc.wwCommands = __assign$1(__assign$1({}, acc.wwCommands), wysiwygCommands);\n }\n if (toolbarItems) {\n acc.toolbarItems = acc.toolbarItems.concat(toolbarItems);\n }\n if (markdownParsers) {\n acc.markdownParsers = __assign$1(__assign$1({}, acc.markdownParsers), markdownParsers);\n }\n return acc;\n }, {\n toHTMLRenderers: {},\n toMarkdownRenderers: {},\n mdPlugins: [],\n wwPlugins: [],\n wwNodeViews: {},\n mdCommands: {},\n wwCommands: {},\n toolbarItems: [],\n markdownParsers: {},\n });\n}\n\nvar TASK_ATTR_NAME = 'data-task';\nvar DISABLED_TASK_ATTR_NAME = 'data-task-disabled';\nvar TASK_CHECKED_CLASS_NAME = 'checked';\nfunction registerHTMLTagToWhitelist(convertorMap) {\n ['htmlBlock', 'htmlInline'].forEach(function (htmlType) {\n if (convertorMap[htmlType]) {\n // register tag white list for preventing to remove the html in sanitizer\n Object.keys(convertorMap[htmlType]).forEach(function (type) { return registerTagWhitelistIfPossible(type); });\n }\n });\n}\n/**\n * Class ToastUIEditorViewer\n * @param {object} options Option object\n * @param {HTMLElement} options.el - container element\n * @param {string} [options.initialValue] Editor's initial value\n * @param {Object} [options.events] - Events\n * @param {function} [options.events.load] - It would be emitted when editor fully load\n * @param {function} [options.events.change] - It would be emitted when content changed\n * @param {function} [options.events.caretChange] - It would be emitted when format change by cursor position\n * @param {function} [options.events.focus] - It would be emitted when editor get focus\n * @param {function} [options.events.blur] - It would be emitted when editor loose focus\n * @param {Array.<function|Array>} [options.plugins] - Array of plugins. A plugin can be either a function or an array in the form of [function, options].\n * @param {Object} [options.extendedAutolinks] - Using extended Autolinks specified in GFM spec\n * @param {Object} [options.linkAttributes] - Attributes of anchor element that should be rel, target, hreflang, type\n * @param {Object} [options.customHTMLRenderer=null] - Object containing custom renderer functions correspond to change markdown node to preview HTML or wysiwyg node\n * @param {boolean} [options.referenceDefinition=false] - whether use the specification of link reference definition\n * @param {function} [options.customHTMLSanitizer=null] - custom HTML sanitizer\n * @param {boolean} [options.frontMatter=false] - whether use the front matter\n * @param {string} [options.theme] - The theme to style the viewer with. The default is included in toastui-editor.css.\n */\nvar ToastUIEditorViewer = /** @class */ (function () {\n function ToastUIEditorViewer(options) {\n var _this = this;\n this.options = extend_1({\n linkAttributes: null,\n extendedAutolinks: false,\n customHTMLRenderer: null,\n referenceDefinition: false,\n customHTMLSanitizer: null,\n frontMatter: false,\n usageStatistics: true,\n theme: 'light',\n }, options);\n this.eventEmitter = new EventEmitter();\n var linkAttributes = sanitizeLinkAttribute(this.options.linkAttributes);\n var _a = getPluginInfo({\n plugins: this.options.plugins,\n eventEmitter: this.eventEmitter,\n usageStatistics: this.options.usageStatistics,\n instance: this,\n }) || {}, toHTMLRenderers = _a.toHTMLRenderers, markdownParsers = _a.markdownParsers;\n var _b = this.options, customHTMLRenderer = _b.customHTMLRenderer, extendedAutolinks = _b.extendedAutolinks, referenceDefinition = _b.referenceDefinition, frontMatter = _b.frontMatter, customHTMLSanitizer = _b.customHTMLSanitizer;\n var rendererOptions = {\n linkAttributes: linkAttributes,\n customHTMLRenderer: __assign$1(__assign$1({}, toHTMLRenderers), customHTMLRenderer),\n extendedAutolinks: extendedAutolinks,\n referenceDefinition: referenceDefinition,\n frontMatter: frontMatter,\n sanitizer: customHTMLSanitizer || sanitizeHTML,\n };\n registerHTMLTagToWhitelist(rendererOptions.customHTMLRenderer);\n if (this.options.events) {\n forEachOwnProperties_1(this.options.events, function (fn, key) {\n _this.on(key, fn);\n });\n }\n var _c = this.options, el = _c.el, initialValue = _c.initialValue, theme = _c.theme;\n var existingHTML = el.innerHTML;\n if (theme !== 'light') {\n el.classList.add(cls(theme));\n }\n el.innerHTML = '';\n this.toastMark = new ToastMark('', {\n disallowedHtmlBlockTags: ['br', 'img'],\n extendedAutolinks: extendedAutolinks,\n referenceDefinition: referenceDefinition,\n disallowDeepHeading: true,\n frontMatter: frontMatter,\n customParser: markdownParsers,\n });\n this.preview = new MarkdownPreview(this.eventEmitter, __assign$1(__assign$1({}, rendererOptions), { isViewer: true }));\n on_1(this.preview.previewContent, 'mousedown', this.toggleTask.bind(this));\n if (initialValue) {\n this.setMarkdown(initialValue);\n }\n else if (existingHTML) {\n this.preview.setHTML(existingHTML);\n }\n el.appendChild(this.preview.previewContent);\n this.eventEmitter.emit('load', this);\n }\n /**\n * Toggle task by detecting mousedown event.\n * @param {MouseEvent} ev - event\n * @private\n */\n ToastUIEditorViewer.prototype.toggleTask = function (ev) {\n var element = ev.target;\n var style = getComputedStyle(element, ':before');\n if (!element.hasAttribute(DISABLED_TASK_ATTR_NAME) &&\n element.hasAttribute(TASK_ATTR_NAME) &&\n isPositionInBox(style, ev.offsetX, ev.offsetY)) {\n toggleClass(element, TASK_CHECKED_CLASS_NAME);\n this.eventEmitter.emit('change', {\n source: 'viewer',\n date: ev,\n });\n }\n };\n /**\n * Set content for preview\n * @param {string} markdown Markdown text\n */\n ToastUIEditorViewer.prototype.setMarkdown = function (markdown) {\n var lineTexts = this.toastMark.getLineTexts();\n var length = lineTexts.length;\n var lastLine = last$1(lineTexts);\n var endSourcepos = [length, lastLine.length + 1];\n var editResult = this.toastMark.editMarkdown([1, 1], endSourcepos, markdown || '');\n this.eventEmitter.emit('updatePreview', editResult);\n };\n /**\n * Bind eventHandler to event type\n * @param {string} type Event type\n * @param {function} handler Event handler\n */\n ToastUIEditorViewer.prototype.on = function (type, handler) {\n this.eventEmitter.listen(type, handler);\n };\n /**\n * Unbind eventHandler from event type\n * @param {string} type Event type\n */\n ToastUIEditorViewer.prototype.off = function (type) {\n this.eventEmitter.removeEventHandler(type);\n };\n /**\n * Add hook to TUIEditor event\n * @param {string} type Event type\n * @param {function} handler Event handler\n */\n ToastUIEditorViewer.prototype.addHook = function (type, handler) {\n this.eventEmitter.removeEventHandler(type);\n this.eventEmitter.listen(type, handler);\n };\n /**\n * Remove Viewer preview from document\n */\n ToastUIEditorViewer.prototype.destroy = function () {\n off_1(this.preview.el, 'mousedown', this.toggleTask.bind(this));\n this.preview.destroy();\n this.eventEmitter.emit('destroy');\n };\n /**\n * Return true\n * @returns {boolean}\n */\n ToastUIEditorViewer.prototype.isViewer = function () {\n return true;\n };\n /**\n * Return false\n * @returns {boolean}\n */\n ToastUIEditorViewer.prototype.isMarkdownMode = function () {\n return false;\n };\n /**\n * Return false\n * @returns {boolean}\n */\n ToastUIEditorViewer.prototype.isWysiwygMode = function () {\n return false;\n };\n return ToastUIEditorViewer;\n}());\n\nfunction isPmNode(node) {\n return node instanceof prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Node\"];\n}\nfunction isContainer(type) {\n var containerTypes = [\n 'document',\n 'blockQuote',\n 'bulletList',\n 'orderedList',\n 'listItem',\n 'paragraph',\n 'heading',\n 'emph',\n 'strong',\n 'strike',\n 'link',\n 'image',\n 'table',\n 'tableHead',\n 'tableBody',\n 'tableRow',\n 'tableHeadCell',\n 'tableBodyCell',\n ];\n return includes(containerTypes, type);\n}\nfunction createMdLikeNode(node) {\n var attrs = node.attrs, type = node.type;\n var nodeType = type.name;\n var mdLikeNode = {\n type: nodeType,\n wysiwygNode: true,\n literal: !isContainer(nodeType) && isPmNode(node) ? node.textContent : null,\n };\n var nodeTypeMap = {\n heading: { level: attrs.level },\n link: { destination: attrs.linkUrl, title: attrs.title },\n image: { destination: attrs.imageUrl },\n codeBlock: { info: attrs.language },\n bulletList: { type: 'list', listData: { type: 'bullet' } },\n orderedList: { type: 'list', listData: { type: 'ordered', start: attrs.order } },\n listItem: { type: 'item', listData: { task: attrs.task, checked: attrs.checked } },\n tableHeadCell: { type: 'tableCell', cellType: 'head', align: attrs.align },\n tableBodyCell: { type: 'tableCell', cellType: 'body', align: attrs.align },\n customBlock: { info: attrs.info },\n };\n var nodeInfo = nodeTypeMap[nodeType];\n var attributes = __assign$1(__assign$1({}, mdLikeNode), nodeInfo);\n // html block, inline node\n var _a = node.attrs, htmlAttrs = _a.htmlAttrs, childrenHTML = _a.childrenHTML;\n if (htmlAttrs) {\n return __assign$1(__assign$1({}, attributes), { attrs: htmlAttrs, childrenHTML: childrenHTML });\n }\n return attributes;\n}\n\nvar tokenToDOMNode = {\n openTag: function (token, stack) {\n var _a = token, tagName = _a.tagName, classNames = _a.classNames, attributes = _a.attributes;\n var el = document.createElement(tagName);\n var attrs = {};\n if (classNames) {\n el.className = classNames.join(' ');\n }\n if (attributes) {\n attrs = __assign$1(__assign$1({}, attrs), attributes);\n }\n setAttributes(attrs, el);\n stack.push(el);\n },\n closeTag: function (_, stack) {\n if (stack.length > 1) {\n var el = stack.pop();\n last$1(stack).appendChild(el);\n }\n },\n html: function (token, stack) {\n last$1(stack).insertAdjacentHTML('beforeend', token.content);\n },\n text: function (token, stack) {\n var textNode = document.createTextNode(token.content);\n last$1(stack).appendChild(textNode);\n },\n};\nvar WwToDOMAdaptor = /** @class */ (function () {\n function WwToDOMAdaptor(linkAttributes, customRenderer) {\n var convertors = getHTMLRenderConvertors(linkAttributes, customRenderer);\n var customHTMLConvertor = __assign$1(__assign$1({}, customRenderer.htmlBlock), customRenderer.htmlInline);\n // flatten the html block, inline convertor to other custom convertors\n this.customConvertorKeys = Object.keys(customRenderer).concat(Object.keys(customHTMLConvertor));\n this.renderer = new Renderer({\n gfm: true,\n convertors: __assign$1(__assign$1({}, convertors), customHTMLConvertor),\n });\n this.convertors = this.renderer.getConvertors();\n }\n WwToDOMAdaptor.prototype.generateTokens = function (node) {\n var mdLikeNode = createMdLikeNode(node);\n var context = {\n entering: true,\n leaf: isPmNode(node) ? node.isLeaf : false,\n options: this.renderer.getOptions(),\n getChildrenText: function () { return (isPmNode(node) ? node.textContent : ''); },\n skipChildren: function () { return false; },\n };\n var convertor = this.convertors[node.type.name];\n var converted = convertor(mdLikeNode, context, this.convertors);\n var tokens = isArray_1(converted) ? converted : [converted];\n if (isContainer(node.type.name) || node.attrs.htmlInline) {\n context.entering = false;\n tokens.push({ type: 'text', content: isPmNode(node) ? node.textContent : '' });\n tokens = tokens.concat(convertor(mdLikeNode, context, this.convertors));\n }\n return tokens;\n };\n WwToDOMAdaptor.prototype.toDOMNode = function (node) {\n var tokens = this.generateTokens(node);\n var stack = [];\n tokens.forEach(function (token) { return tokenToDOMNode[token.type](token, stack); });\n return stack[0];\n };\n WwToDOMAdaptor.prototype.getToDOMNode = function (name) {\n if (includes(this.customConvertorKeys, name)) {\n return this.toDOMNode.bind(this);\n }\n return null;\n };\n return WwToDOMAdaptor;\n}());\n\nvar ANIMATION_TIME = 100;\nvar SCROLL_BLOCKING_RESET_DELAY = 15;\nvar currentTimeoutId = null;\nvar releaseTimer = null;\nfunction run(deltaScrollTop, _a) {\n var syncScrollTop = _a.syncScrollTop, releaseEventBlock = _a.releaseEventBlock;\n if (releaseTimer) {\n clearTimeout(releaseTimer);\n }\n syncScrollTop(deltaScrollTop);\n releaseTimer = setTimeout(function () {\n releaseEventBlock();\n }, SCROLL_BLOCKING_RESET_DELAY);\n}\nfunction animate(curScrollTop, targetScrollTop, syncCallbacks) {\n var diff = targetScrollTop - curScrollTop;\n var startTime = Date.now();\n var step = function () {\n var stepTime = Date.now();\n var progress = (stepTime - startTime) / ANIMATION_TIME;\n var deltaValue;\n if (currentTimeoutId) {\n clearTimeout(currentTimeoutId);\n }\n if (progress < 1) {\n deltaValue = curScrollTop + diff * Math.cos(((1 - progress) * Math.PI) / 2);\n run(Math.ceil(deltaValue), syncCallbacks);\n currentTimeoutId = setTimeout(step, 1);\n }\n else {\n run(targetScrollTop, syncCallbacks);\n currentTimeoutId = null;\n }\n };\n step();\n}\n\nvar EDITOR_BOTTOM_PADDING = 18;\nvar ScrollSync = /** @class */ (function () {\n function ScrollSync(mdEditor, preview, eventEmitter) {\n this.latestEditorScrollTop = null;\n this.latestPreviewScrollTop = null;\n this.blockedScroll = null;\n this.active = true;\n this.timer = null;\n var previewRoot = preview.previewContent, previewEl = preview.el;\n this.previewRoot = previewRoot;\n this.previewEl = previewEl;\n this.mdEditor = mdEditor;\n this.editorView = mdEditor.view;\n this.toastMark = mdEditor.getToastMark();\n this.eventEmitter = eventEmitter;\n this.addScrollSyncEvent();\n }\n ScrollSync.prototype.addScrollSyncEvent = function () {\n var _this = this;\n this.eventEmitter.listen('afterPreviewRender', function () {\n _this.clearTimer();\n // Immediately after the 'afterPreviewRender' event has occurred,\n // browser rendering is not yet complete.\n // So the size of elements can not be accurately measured.\n _this.timer = setTimeout(function () {\n _this.syncPreviewScrollTop(true);\n }, 200);\n });\n this.eventEmitter.listen('scroll', function (type, data) {\n if (_this.active) {\n if (type === 'editor' && _this.blockedScroll !== 'editor') {\n _this.syncPreviewScrollTop();\n }\n else if (type === 'preview' && _this.blockedScroll !== 'preview') {\n _this.syncEditorScrollTop(data);\n }\n }\n });\n this.eventEmitter.listen('toggleScrollSync', function (active) {\n _this.active = active;\n });\n };\n ScrollSync.prototype.getMdNodeAtPos = function (doc, posInfo) {\n var indexInfo = doc.content.findIndex(posInfo.pos);\n var line = indexInfo.index;\n return this.toastMark.findFirstNodeAtLine(line + 1);\n };\n ScrollSync.prototype.getScrollTopByCaretPos = function () {\n var pos = this.mdEditor.getSelection();\n var firstMdNode = this.toastMark.findFirstNodeAtLine(pos[0][0]);\n var previewHeight = this.previewEl.clientHeight;\n var el = getParentNodeObj(this.previewRoot, firstMdNode).el;\n var totalOffsetTop = getTotalOffsetTop(el, this.previewRoot) || el.offsetTop;\n var nodeHeight = el.clientHeight;\n // multiply 0.5 for calculating the position in the middle of preview area\n var targetScrollTop = totalOffsetTop + nodeHeight - previewHeight * 0.5;\n this.latestEditorScrollTop = null;\n var diff = el.getBoundingClientRect().top - this.previewEl.getBoundingClientRect().top;\n return diff < previewHeight ? null : targetScrollTop;\n };\n ScrollSync.prototype.syncPreviewScrollTop = function (editing) {\n if (editing === void 0) { editing = false; }\n var _a = this, editorView = _a.editorView, previewEl = _a.previewEl, previewRoot = _a.previewRoot;\n var _b = editorView.dom.getBoundingClientRect(), left = _b.left, top = _b.top;\n var posInfo = editorView.posAtCoords({ left: left, top: top });\n var doc = editorView.state.doc;\n var firstMdNode = this.getMdNodeAtPos(doc, posInfo);\n if (!firstMdNode || isHTMLNode(firstMdNode)) {\n return;\n }\n var curScrollTop = previewEl.scrollTop;\n var _c = editorView.dom, scrollTop = _c.scrollTop, scrollHeight = _c.scrollHeight, clientHeight = _c.clientHeight, children = _c.children;\n var isBottomPos = scrollHeight - scrollTop <= clientHeight + EDITOR_BOTTOM_PADDING;\n var targetScrollTop = isBottomPos ? previewEl.scrollHeight : 0;\n if (scrollTop && !isBottomPos) {\n if (editing) {\n var scrollTopByEditing = this.getScrollTopByCaretPos();\n if (!scrollTopByEditing) {\n return;\n }\n targetScrollTop = scrollTopByEditing;\n }\n else {\n var _d = getParentNodeObj(this.previewRoot, firstMdNode), el = _d.el, mdNode = _d.mdNode;\n var _e = getEditorRangeHeightInfo(doc, mdNode, children), height = _e.height, rect = _e.rect;\n var totalOffsetTop = getTotalOffsetTop(el, previewRoot) || el.offsetTop;\n var nodeHeight = el.clientHeight;\n var ratio = top > rect.top ? Math.min((top - rect.top) / height, 1) : 0;\n targetScrollTop = totalOffsetTop + nodeHeight * ratio;\n }\n targetScrollTop = this.getResolvedScrollTop('editor', scrollTop, targetScrollTop, curScrollTop);\n this.latestEditorScrollTop = scrollTop;\n }\n if (targetScrollTop !== curScrollTop) {\n this.run('editor', targetScrollTop, curScrollTop);\n }\n };\n ScrollSync.prototype.syncEditorScrollTop = function (targetNode) {\n var _a = this, toastMark = _a.toastMark, editorView = _a.editorView, previewRoot = _a.previewRoot, previewEl = _a.previewEl;\n var dom = editorView.dom, state = editorView.state;\n var scrollTop = previewEl.scrollTop, clientHeight = previewEl.clientHeight, scrollHeight = previewEl.scrollHeight;\n var isBottomPos = scrollHeight - scrollTop <= clientHeight;\n var curScrollTop = dom.scrollTop;\n var targetScrollTop = isBottomPos ? dom.scrollHeight : 0;\n if (scrollTop && targetNode && !isBottomPos) {\n targetNode = findAncestorHavingId(targetNode, previewRoot);\n if (!targetNode.getAttribute('data-nodeid')) {\n return;\n }\n var children = dom.children;\n var mdNodeId = Number(targetNode.getAttribute('data-nodeid'));\n var _b = getParentNodeObj(this.previewRoot, toastMark.findNodeById(mdNodeId)), mdNode = _b.mdNode, el = _b.el;\n var mdNodeStartLine = getMdStartLine(mdNode);\n targetScrollTop = children[mdNodeStartLine - 1].offsetTop;\n var height = getEditorRangeHeightInfo(state.doc, mdNode, children).height;\n var _c = getAndSaveOffsetInfo(el, previewRoot, mdNodeId), nodeHeight = _c.nodeHeight, offsetTop = _c.offsetTop;\n targetScrollTop += getAdditionalPos(scrollTop, offsetTop, nodeHeight, height);\n targetScrollTop = this.getResolvedScrollTop('preview', scrollTop, targetScrollTop, curScrollTop);\n this.latestPreviewScrollTop = scrollTop;\n }\n if (targetScrollTop !== curScrollTop) {\n this.run('preview', targetScrollTop, curScrollTop);\n }\n };\n ScrollSync.prototype.getResolvedScrollTop = function (from, scrollTop, targetScrollTop, curScrollTop) {\n var latestScrollTop = from === 'editor' ? this.latestEditorScrollTop : this.latestPreviewScrollTop;\n if (latestScrollTop === null) {\n return targetScrollTop;\n }\n return latestScrollTop < scrollTop\n ? Math.max(targetScrollTop, curScrollTop)\n : Math.min(targetScrollTop, curScrollTop);\n };\n ScrollSync.prototype.run = function (from, targetScrollTop, curScrollTop) {\n var _this = this;\n var scrollTarget;\n if (from === 'editor') {\n scrollTarget = this.previewEl;\n this.blockedScroll = 'preview';\n }\n else {\n scrollTarget = this.editorView.dom;\n this.blockedScroll = 'editor';\n }\n var syncCallbacks = {\n syncScrollTop: function (scrollTop) { return (scrollTarget.scrollTop = scrollTop); },\n releaseEventBlock: function () { return (_this.blockedScroll = null); },\n };\n animate(curScrollTop, targetScrollTop, syncCallbacks);\n };\n ScrollSync.prototype.clearTimer = function () {\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n };\n ScrollSync.prototype.destroy = function () {\n this.clearTimer();\n this.eventEmitter.removeEventHandler('scroll');\n this.eventEmitter.removeEventHandler('afterPreviewRender');\n };\n return ScrollSync;\n}());\n\nvar queryMap = {\n getPopupInitialValues: function (editor, payload) {\n var popupName = payload.popupName;\n return popupName === 'link' ? { linkText: editor.getSelectedText() } : {};\n },\n};\nfunction buildQuery(editor) {\n editor.eventEmitter.listen('query', function (query, payload) {\n return queryMap[query](editor, payload);\n });\n}\n\n/**\n * ToastUIEditorCore\n * @param {Object} options Option object\n * @param {HTMLElement} options.el - container element\n * @param {string} [options.height='300px'] - Editor's height style value. Height is applied as border-box ex) '300px', '100%', 'auto'\n * @param {string} [options.minHeight='200px'] - Editor's min-height style value in pixel ex) '300px'\n * @param {string} [options.initialValue] - Editor's initial value\n * @param {string} [options.previewStyle] - Markdown editor's preview style (tab, vertical)\n * @param {boolean} [options.previewHighlight = true] - Highlight a preview element corresponds to the cursor position in the markdown editor\n * @param {string} [options.initialEditType] - Initial editor type (markdown, wysiwyg)\n * @param {Object} [options.events] - Events\n * @param {function} [options.events.load] - It would be emitted when editor fully load\n * @param {function} [options.events.change] - It would be emitted when content changed\n * @param {function} [options.events.caretChange] - It would be emitted when format change by cursor position\n * @param {function} [options.events.focus] - It would be emitted when editor get focus\n * @param {function} [options.events.blur] - It would be emitted when editor loose focus\n * @param {function} [options.events.keydown] - It would be emitted when the key is pressed in editor\n * @param {function} [options.events.keyup] - It would be emitted when the key is released in editor\n * @param {function} [options.events.beforePreviewRender] - It would be emitted before rendering the markdown preview with html string\n * @param {function} [options.events.beforeConvertWysiwygToMarkdown] - It would be emitted before converting wysiwyg to markdown with markdown text\n * @param {Object} [options.hooks] - Hooks\n * @param {addImageBlobHook} [options.hooks.addImageBlobHook] - hook for image upload\n * @param {string} [options.language='en-US'] - language\n * @param {boolean} [options.useCommandShortcut=true] - whether use keyboard shortcuts to perform commands\n * @param {boolean} [options.usageStatistics=true] - send hostname to google analytics\n * @param {Array.<string|toolbarItemsValue>} [options.toolbarItems] - toolbar items.\n * @param {boolean} [options.hideModeSwitch=false] - hide mode switch tab bar\n * @param {Array.<function|Array>} [options.plugins] - Array of plugins. A plugin can be either a function or an array in the form of [function, options].\n * @param {Object} [options.extendedAutolinks] - Using extended Autolinks specified in GFM spec\n * @param {string} [options.placeholder] - The placeholder text of the editable element.\n * @param {Object} [options.linkAttributes] - Attributes of anchor element that should be rel, target, hreflang, type\n * @param {Object} [options.customHTMLRenderer=null] - Object containing custom renderer functions correspond to change markdown node to preview HTML or wysiwyg node\n * @param {Object} [options.customMarkdownRenderer=null] - Object containing custom renderer functions correspond to change wysiwyg node to markdown text\n * @param {boolean} [options.referenceDefinition=false] - whether use the specification of link reference definition\n * @param {function} [options.customHTMLSanitizer=null] - custom HTML sanitizer\n * @param {boolean} [options.previewHighlight=false] - whether highlight preview area\n * @param {boolean} [options.frontMatter=false] - whether use the front matter\n * @param {Array.<object>} [options.widgetRules=[]] - The rules for replacing the text with widget node\n * @param {string} [options.theme] - The theme to style the editor with. The default is included in toastui-editor.css.\n * @param {autofocus} [options.autofocus=true] - automatically focus the editor on creation.\n */\nvar ToastUIEditorCore = /** @class */ (function () {\n function ToastUIEditorCore(options) {\n var _this = this;\n this.initialHTML = options.el.innerHTML;\n options.el.innerHTML = '';\n this.options = extend_1({\n previewStyle: 'tab',\n previewHighlight: true,\n initialEditType: 'markdown',\n height: '300px',\n minHeight: '200px',\n language: 'en-US',\n useCommandShortcut: true,\n usageStatistics: true,\n toolbarItems: [\n ['heading', 'bold', 'italic', 'strike'],\n ['hr', 'quote'],\n ['ul', 'ol', 'task', 'indent', 'outdent'],\n ['table', 'image', 'link'],\n ['code', 'codeblock'],\n ['scrollSync'],\n ],\n hideModeSwitch: false,\n linkAttributes: null,\n extendedAutolinks: false,\n customHTMLRenderer: null,\n customMarkdownRenderer: null,\n referenceDefinition: false,\n customHTMLSanitizer: null,\n frontMatter: false,\n widgetRules: [],\n theme: 'light',\n autofocus: true,\n }, options);\n var _a = this.options, customHTMLRenderer = _a.customHTMLRenderer, extendedAutolinks = _a.extendedAutolinks, referenceDefinition = _a.referenceDefinition, frontMatter = _a.frontMatter, customMarkdownRenderer = _a.customMarkdownRenderer, useCommandShortcut = _a.useCommandShortcut, initialEditType = _a.initialEditType, widgetRules = _a.widgetRules, customHTMLSanitizer = _a.customHTMLSanitizer;\n this.mode = initialEditType || 'markdown';\n this.mdPreviewStyle = this.options.previewStyle;\n this.i18n = i18n;\n this.i18n.setCode(this.options.language);\n this.eventEmitter = new EventEmitter();\n setWidgetRules(widgetRules);\n var linkAttributes = sanitizeLinkAttribute(this.options.linkAttributes);\n this.pluginInfo = getPluginInfo({\n plugins: this.options.plugins,\n eventEmitter: this.eventEmitter,\n usageStatistics: this.options.usageStatistics,\n instance: this,\n });\n var _b = this.pluginInfo, toHTMLRenderers = _b.toHTMLRenderers, toMarkdownRenderers = _b.toMarkdownRenderers, mdPlugins = _b.mdPlugins, wwPlugins = _b.wwPlugins, wwNodeViews = _b.wwNodeViews, mdCommands = _b.mdCommands, wwCommands = _b.wwCommands, markdownParsers = _b.markdownParsers;\n var rendererOptions = {\n linkAttributes: linkAttributes,\n customHTMLRenderer: deepMergedCopy(toHTMLRenderers, customHTMLRenderer),\n extendedAutolinks: extendedAutolinks,\n referenceDefinition: referenceDefinition,\n frontMatter: frontMatter,\n sanitizer: customHTMLSanitizer || sanitizeHTML,\n };\n var wwToDOMAdaptor = new WwToDOMAdaptor(linkAttributes, rendererOptions.customHTMLRenderer);\n var htmlSchemaMap = createHTMLSchemaMap(rendererOptions.customHTMLRenderer, rendererOptions.sanitizer, wwToDOMAdaptor);\n this.toastMark = new ToastMark('', {\n disallowedHtmlBlockTags: ['br', 'img'],\n extendedAutolinks: extendedAutolinks,\n referenceDefinition: referenceDefinition,\n disallowDeepHeading: true,\n frontMatter: frontMatter,\n customParser: markdownParsers,\n });\n this.mdEditor = new MdEditor(this.eventEmitter, {\n toastMark: this.toastMark,\n useCommandShortcut: useCommandShortcut,\n mdPlugins: mdPlugins,\n });\n this.preview = new MarkdownPreview(this.eventEmitter, __assign$1(__assign$1({}, rendererOptions), { isViewer: false, highlight: this.options.previewHighlight }));\n this.wwEditor = new WysiwygEditor(this.eventEmitter, {\n toDOMAdaptor: wwToDOMAdaptor,\n useCommandShortcut: useCommandShortcut,\n htmlSchemaMap: htmlSchemaMap,\n linkAttributes: linkAttributes,\n wwPlugins: wwPlugins,\n wwNodeViews: wwNodeViews,\n });\n this.convertor = new Convertor(this.wwEditor.getSchema(), __assign$1(__assign$1({}, toMarkdownRenderers), customMarkdownRenderer), getHTMLRenderConvertors(linkAttributes, rendererOptions.customHTMLRenderer), this.eventEmitter);\n this.setMinHeight(this.options.minHeight);\n this.setHeight(this.options.height);\n this.setMarkdown(this.options.initialValue, false);\n if (this.options.placeholder) {\n this.setPlaceholder(this.options.placeholder);\n }\n if (!this.options.initialValue) {\n this.setHTML(this.initialHTML, false);\n }\n this.commandManager = new CommandManager(this.eventEmitter, this.mdEditor.commands, this.wwEditor.commands, function () { return _this.mode; });\n if (this.options.usageStatistics) {\n sendHostName();\n }\n this.scrollSync = new ScrollSync(this.mdEditor, this.preview, this.eventEmitter);\n this.addInitEvent();\n this.addInitCommand(mdCommands, wwCommands);\n buildQuery(this);\n if (this.options.hooks) {\n forEachOwnProperties_1(this.options.hooks, function (fn, key) { return _this.addHook(key, fn); });\n }\n if (this.options.events) {\n forEachOwnProperties_1(this.options.events, function (fn, key) { return _this.on(key, fn); });\n }\n this.eventEmitter.emit('load', this);\n this.moveCursorToStart(this.options.autofocus);\n }\n ToastUIEditorCore.prototype.addInitEvent = function () {\n var _this = this;\n this.on('needChangeMode', this.changeMode.bind(this));\n this.on('loadUI', function () {\n if (_this.height !== 'auto') {\n // 75px equals default editor ui height - the editing area height\n var minHeight = Math.min(parseInt(_this.minHeight, 10), parseInt(_this.height, 10) - 75) + \"px\";\n _this.setMinHeight(minHeight);\n }\n });\n addDefaultImageBlobHook(this.eventEmitter);\n };\n ToastUIEditorCore.prototype.addInitCommand = function (mdCommands, wwCommands) {\n var _this = this;\n var addPluginCommands = function (type, commandMap) {\n Object.keys(commandMap).forEach(function (name) {\n _this.addCommand(type, name, commandMap[name]);\n });\n };\n this.addCommand('markdown', 'toggleScrollSync', function (payload) {\n _this.eventEmitter.emit('toggleScrollSync', payload.active);\n return true;\n });\n addPluginCommands('markdown', mdCommands);\n addPluginCommands('wysiwyg', wwCommands);\n };\n ToastUIEditorCore.prototype.getCurrentModeEditor = function () {\n return (this.isMarkdownMode() ? this.mdEditor : this.wwEditor);\n };\n /**\n * Factory method for Editor\n * @param {object} options Option for initialize TUIEditor\n * @returns {object} ToastUIEditorCore or ToastUIEditorViewer\n */\n ToastUIEditorCore.factory = function (options) {\n return options.viewer ? new ToastUIEditorViewer(options) : new ToastUIEditorCore(options);\n };\n /**\n * Set language\n * @param {string|string[]} code - code for I18N language\n * @param {object} data - language set\n */\n ToastUIEditorCore.setLanguage = function (code, data) {\n i18n.setLanguage(code, data);\n };\n /**\n * change preview style\n * @param {string} style - 'tab'|'vertical'\n */\n ToastUIEditorCore.prototype.changePreviewStyle = function (style) {\n if (this.mdPreviewStyle !== style) {\n this.mdPreviewStyle = style;\n this.eventEmitter.emit('changePreviewStyle', style);\n }\n };\n /**\n * execute editor command\n * @param {string} name - command name\n * @param {object} [payload] - payload for command\n */\n ToastUIEditorCore.prototype.exec = function (name, payload) {\n this.commandManager.exec(name, payload);\n };\n /**\n * @param {string} type - editor type\n * @param {string} name - command name\n * @param {function} command - command handler\n */\n ToastUIEditorCore.prototype.addCommand = function (type, name, command) {\n var _this = this;\n var commandHoc = function (paylaod) {\n if (paylaod === void 0) { paylaod = {}; }\n var view = (type === 'markdown' ? _this.mdEditor : _this.wwEditor).view;\n command(paylaod, view.state, view.dispatch, view);\n };\n this.commandManager.addCommand(type, name, commandHoc);\n };\n /**\n * Bind eventHandler to event type\n * @param {string} type Event type\n * @param {function} handler Event handler\n */\n ToastUIEditorCore.prototype.on = function (type, handler) {\n this.eventEmitter.listen(type, handler);\n };\n /**\n * Unbind eventHandler from event type\n * @param {string} type Event type\n */\n ToastUIEditorCore.prototype.off = function (type) {\n this.eventEmitter.removeEventHandler(type);\n };\n /**\n * Add hook to TUIEditor event\n * @param {string} type Event type\n * @param {function} handler Event handler\n */\n ToastUIEditorCore.prototype.addHook = function (type, handler) {\n this.eventEmitter.removeEventHandler(type);\n this.eventEmitter.listen(type, handler);\n };\n /**\n * Remove hook from TUIEditor event\n * @param {string} type Event type\n */\n ToastUIEditorCore.prototype.removeHook = function (type) {\n this.eventEmitter.removeEventHandler(type);\n };\n /**\n * Set focus to current Editor\n */\n ToastUIEditorCore.prototype.focus = function () {\n this.getCurrentModeEditor().focus();\n };\n /**\n * Remove focus of current Editor\n */\n ToastUIEditorCore.prototype.blur = function () {\n this.getCurrentModeEditor().blur();\n };\n /**\n * Set cursor position to end\n * @param {boolean} [focus] - automatically focus the editor\n */\n ToastUIEditorCore.prototype.moveCursorToEnd = function (focus) {\n if (focus === void 0) { focus = true; }\n this.getCurrentModeEditor().moveCursorToEnd(focus);\n };\n /**\n * Set cursor position to start\n * @param {boolean} [focus] - automatically focus the editor\n */\n ToastUIEditorCore.prototype.moveCursorToStart = function (focus) {\n if (focus === void 0) { focus = true; }\n this.getCurrentModeEditor().moveCursorToStart(focus);\n };\n /**\n * Set markdown syntax text.\n * @param {string} markdown - markdown syntax text.\n * @param {boolean} [cursorToEnd=true] - move cursor to contents end\n */\n ToastUIEditorCore.prototype.setMarkdown = function (markdown, cursorToEnd) {\n if (markdown === void 0) { markdown = ''; }\n if (cursorToEnd === void 0) { cursorToEnd = true; }\n this.mdEditor.setMarkdown(markdown, cursorToEnd);\n if (this.isWysiwygMode()) {\n var mdNode = this.toastMark.getRootNode();\n var wwNode = this.convertor.toWysiwygModel(mdNode);\n this.wwEditor.setModel(wwNode, cursorToEnd);\n }\n };\n /**\n * Set html value.\n * @param {string} html - html syntax text\n * @param {boolean} [cursorToEnd=true] - move cursor to contents end\n */\n ToastUIEditorCore.prototype.setHTML = function (html, cursorToEnd) {\n if (html === void 0) { html = ''; }\n if (cursorToEnd === void 0) { cursorToEnd = true; }\n var container = document.createElement('div');\n // the `br` tag should be replaced with empty block to separate between blocks\n container.innerHTML = replaceBRWithEmptyBlock(html);\n var wwNode = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"DOMParser\"].fromSchema(this.wwEditor.schema).parse(container);\n if (this.isMarkdownMode()) {\n this.mdEditor.setMarkdown(this.convertor.toMarkdownText(wwNode), cursorToEnd);\n }\n else {\n this.wwEditor.setModel(wwNode, cursorToEnd);\n }\n };\n /**\n * Get content to markdown\n * @returns {string} markdown text\n */\n ToastUIEditorCore.prototype.getMarkdown = function () {\n if (this.isMarkdownMode()) {\n return this.mdEditor.getMarkdown();\n }\n return this.convertor.toMarkdownText(this.wwEditor.getModel());\n };\n /**\n * Get content to html\n * @returns {string} html string\n */\n ToastUIEditorCore.prototype.getHTML = function () {\n var _this = this;\n this.eventEmitter.holdEventInvoke(function () {\n if (_this.isMarkdownMode()) {\n var mdNode = _this.toastMark.getRootNode();\n var wwNode = _this.convertor.toWysiwygModel(mdNode);\n _this.wwEditor.setModel(wwNode);\n }\n });\n var html = removeProseMirrorHackNodes(this.wwEditor.view.dom.innerHTML);\n if (this.placeholder) {\n var rePlaceholder = new RegExp(\"<span class=\\\"placeholder[^>]+>\" + this.placeholder + \"</span>\", 'i');\n return html.replace(rePlaceholder, '');\n }\n return html;\n };\n /**\n * Insert text\n * @param {string} text - text content\n */\n ToastUIEditorCore.prototype.insertText = function (text) {\n this.getCurrentModeEditor().replaceSelection(text);\n };\n /**\n * Set selection range\n * @param {number|Array.<number>} start - start position\n * @param {number|Array.<number>} end - end position\n */\n ToastUIEditorCore.prototype.setSelection = function (start, end) {\n this.getCurrentModeEditor().setSelection(start, end);\n };\n /**\n * Replace selection range with given text content\n * @param {string} text - text content\n * @param {number|Array.<number>} [start] - start position\n * @param {number|Array.<number>} [end] - end position\n */\n ToastUIEditorCore.prototype.replaceSelection = function (text, start, end) {\n this.getCurrentModeEditor().replaceSelection(text, start, end);\n };\n /**\n * Delete the content of selection range\n * @param {number|Array.<number>} [start] - start position\n * @param {number|Array.<number>} [end] - end position\n */\n ToastUIEditorCore.prototype.deleteSelection = function (start, end) {\n this.getCurrentModeEditor().deleteSelection(start, end);\n };\n /**\n * Get selected text content\n * @param {number|Array.<number>} [start] - start position\n * @param {number|Array.<number>} [end] - end position\n * @returns {string} - selected text content\n */\n ToastUIEditorCore.prototype.getSelectedText = function (start, end) {\n return this.getCurrentModeEditor().getSelectedText(start, end);\n };\n /**\n * Get range of the node\n * @param {number|Array.<number>} [pos] - position\n * @returns {Array.<number[]>|Array.<number>} - node [start, end] range\n * @example\n * // Markdown mode\n * const rangeInfo = editor.getRangeInfoOfNode();\n *\n * console.log(rangeInfo); // { range: [[startLineOffset, startCurorOffset], [endLineOffset, endCurorOffset]], type: 'emph' }\n *\n * // WYSIWYG mode\n * const rangeInfo = editor.getRangeInfoOfNode();\n *\n * console.log(rangeInfo); // { range: [startCursorOffset, endCursorOffset], type: 'emph' }\n */\n ToastUIEditorCore.prototype.getRangeInfoOfNode = function (pos) {\n return this.getCurrentModeEditor().getRangeInfoOfNode(pos);\n };\n /**\n * Add widget to selection\n * @param {Node} node - widget node\n * @param {string} style - Adding style \"top\" or \"bottom\"\n * @param {number|Array.<number>} [pos] - position\n */\n ToastUIEditorCore.prototype.addWidget = function (node, style, pos) {\n this.getCurrentModeEditor().addWidget(node, style, pos);\n };\n /**\n * Replace node with widget to range\n * @param {number|Array.<number>} start - start position\n * @param {number|Array.<number>} end - end position\n * @param {string} text - widget text content\n */\n ToastUIEditorCore.prototype.replaceWithWidget = function (start, end, text) {\n this.getCurrentModeEditor().replaceWithWidget(start, end, text);\n };\n /**\n * Set editor height\n * @param {string} height - editor height in pixel\n */\n ToastUIEditorCore.prototype.setHeight = function (height) {\n var el = this.options.el;\n if (isString_1(height)) {\n if (height === 'auto') {\n addClass_1(el, 'auto-height');\n }\n else {\n removeClass_1(el, 'auto-height');\n }\n this.setMinHeight(this.getMinHeight());\n }\n css_1(el, { height: height });\n this.height = height;\n };\n /**\n * Get editor height\n * @returns {string} editor height in pixel\n */\n ToastUIEditorCore.prototype.getHeight = function () {\n return this.height;\n };\n /**\n * Set minimum height to editor content\n * @param {string} minHeight - min content height in pixel\n */\n ToastUIEditorCore.prototype.setMinHeight = function (minHeight) {\n if (minHeight !== this.minHeight) {\n var height = this.height || this.options.height;\n if (height !== 'auto' && this.options.el.querySelector(\".\" + cls('main'))) {\n // 75px equals default editor ui height - the editing area height\n minHeight = Math.min(parseInt(minHeight, 10), parseInt(height, 10) - 75) + \"px\";\n }\n var minHeightNum = parseInt(minHeight, 10);\n this.minHeight = minHeight;\n this.wwEditor.setMinHeight(minHeightNum);\n this.mdEditor.setMinHeight(minHeightNum);\n this.preview.setMinHeight(minHeightNum);\n }\n };\n /**\n * Get minimum height of editor content\n * @returns {string} min height in pixel\n */\n ToastUIEditorCore.prototype.getMinHeight = function () {\n return this.minHeight;\n };\n /**\n * Return true if current editor mode is Markdown\n * @returns {boolean}\n */\n ToastUIEditorCore.prototype.isMarkdownMode = function () {\n return this.mode === 'markdown';\n };\n /**\n * Return true if current editor mode is WYSIWYG\n * @returns {boolean}\n */\n ToastUIEditorCore.prototype.isWysiwygMode = function () {\n return this.mode === 'wysiwyg';\n };\n /**\n * Return false\n * @returns {boolean}\n */\n ToastUIEditorCore.prototype.isViewer = function () {\n return false;\n };\n /**\n * Get current Markdown editor's preview style\n * @returns {string}\n */\n ToastUIEditorCore.prototype.getCurrentPreviewStyle = function () {\n return this.mdPreviewStyle;\n };\n /**\n * Change editor's mode to given mode string\n * @param {string} mode - Editor mode name of want to change\n * @param {boolean} [withoutFocus] - Change mode without focus\n */\n ToastUIEditorCore.prototype.changeMode = function (mode, withoutFocus) {\n if (this.mode === mode) {\n return;\n }\n this.mode = mode;\n if (this.isWysiwygMode()) {\n var mdNode = this.toastMark.getRootNode();\n var wwNode = this.convertor.toWysiwygModel(mdNode);\n this.wwEditor.setModel(wwNode);\n }\n else {\n var wwNode = this.wwEditor.getModel();\n this.mdEditor.setMarkdown(this.convertor.toMarkdownText(wwNode), !withoutFocus);\n }\n this.eventEmitter.emit('removePopupWidget');\n this.eventEmitter.emit('changeMode', mode);\n if (!withoutFocus) {\n var pos = this.convertor.getMappedPos();\n this.focus();\n if (this.isWysiwygMode() && isNumber_1(pos)) {\n this.wwEditor.setSelection(pos);\n }\n else if (Array.isArray(pos)) {\n this.mdEditor.setSelection(pos);\n }\n }\n };\n /**\n * Destroy TUIEditor from document\n */\n ToastUIEditorCore.prototype.destroy = function () {\n var _this = this;\n this.wwEditor.destroy();\n this.mdEditor.destroy();\n this.preview.destroy();\n this.scrollSync.destroy();\n this.eventEmitter.emit('destroy');\n this.eventEmitter.getEvents().forEach(function (_, type) { return _this.off(type); });\n };\n /**\n * Hide TUIEditor\n */\n ToastUIEditorCore.prototype.hide = function () {\n this.eventEmitter.emit('hide');\n };\n /**\n * Show TUIEditor\n */\n ToastUIEditorCore.prototype.show = function () {\n this.eventEmitter.emit('show');\n };\n /**\n * Move on scroll position of the editor container\n * @param {number} value scrollTop value of editor container\n */\n ToastUIEditorCore.prototype.setScrollTop = function (value) {\n this.getCurrentModeEditor().setScrollTop(value);\n };\n /**\n * Get scroll position value of editor container\n * @returns {number} scrollTop value of editor container\n */\n ToastUIEditorCore.prototype.getScrollTop = function () {\n return this.getCurrentModeEditor().getScrollTop();\n };\n /**\n * Reset TUIEditor\n */\n ToastUIEditorCore.prototype.reset = function () {\n this.wwEditor.setModel([]);\n this.mdEditor.setMarkdown('');\n };\n /**\n * Get current selection range\n * @returns {Array.<number[]>|Array.<number>} Returns the range of the selection depending on the editor mode\n * @example\n * // Markdown mode\n * const mdSelection = editor.getSelection();\n *\n * console.log(mdSelection); // [[startLineOffset, startCurorOffset], [endLineOffset, endCurorOffset]]\n *\n * // WYSIWYG mode\n * const wwSelection = editor.getSelection();\n *\n * console.log(wwSelection); // [startCursorOffset, endCursorOffset]\n */\n ToastUIEditorCore.prototype.getSelection = function () {\n return this.getCurrentModeEditor().getSelection();\n };\n /**\n * Set the placeholder on all editors\n * @param {string} placeholder - placeholder to set\n */\n ToastUIEditorCore.prototype.setPlaceholder = function (placeholder) {\n this.placeholder = placeholder;\n this.mdEditor.setPlaceholder(placeholder);\n this.wwEditor.setPlaceholder(placeholder);\n };\n /**\n * Get markdown editor, preview, wysiwyg editor DOM elements\n */\n ToastUIEditorCore.prototype.getEditorElements = function () {\n return {\n mdEditor: this.mdEditor.getElement(),\n mdPreview: this.preview.getElement(),\n wwEditor: this.wwEditor.getElement(),\n };\n };\n /**\n * Convert position to match editor mode\n * @param {number|Array.<number>} start - start position\n * @param {number|Array.<number>} end - end position\n * @param {string} mode - Editor mode name of want to match converted position to\n */\n ToastUIEditorCore.prototype.convertPosToMatchEditorMode = function (start, end, mode) {\n var _a, _b;\n if (end === void 0) { end = start; }\n if (mode === void 0) { mode = this.mode; }\n var doc = this.mdEditor.view.state.doc;\n var isFromArray = Array.isArray(start);\n var isToArray = Array.isArray(end);\n var convertedFrom = start;\n var convertedTo = end;\n if (isFromArray !== isToArray) {\n throw new Error('Types of arguments must be same');\n }\n if (mode === 'markdown' && !isFromArray && !isToArray) {\n _a = getEditorToMdPos(doc, start, end), convertedFrom = _a[0], convertedTo = _a[1];\n }\n else if (mode === 'wysiwyg' && isFromArray && isToArray) {\n _b = getMdToEditorPos(doc, start, end), convertedFrom = _b[0], convertedTo = _b[1];\n }\n return [convertedFrom, convertedTo];\n };\n return ToastUIEditorCore;\n}());\n\n// @TODO: change syntax with our convention\n/* eslint-disable */\nfunction html$1 (n) {\n for (\n var l,\n e,\n s = arguments,\n t = 1,\n r = '',\n u = '',\n a = [0],\n c = function (n) {\n t === 1 && (n || (r = r.replace(/^\\s*\\n\\s*|\\s*\\n\\s*$/g, '')))\n ? a.push(n ? s[n] : r)\n : t === 3 && (n || r)\n ? ((a[1] = n ? s[n] : r), (t = 2))\n : t === 2 && r === '...' && n\n ? (a[2] = assign(a[2] || {}, s[n]))\n : t === 2 && r && !n\n ? ((a[2] = a[2] || {})[r] = !0)\n : t >= 5 &&\n (t === 5\n ? (((a[2] = a[2] || {})[e] = n ? (r ? r + s[n] : s[n]) : r), (t = 6))\n : (n || r) && (a[2][e] += n ? r + s[n] : r)),\n (r = '');\n },\n h = 0;\n h < n.length;\n h++\n ) {\n h && (t === 1 && c(), c(h));\n for (let i = 0; i < n[h].length; i++)\n (l = n[h][i]),\n t === 1\n ? l === '<'\n ? (c(), (a = [a, '', null]), (t = 3))\n : (r += l)\n : t === 4\n ? r === '--' && l === '>'\n ? ((t = 1), (r = ''))\n : (r = l + r[0])\n : u\n ? l === u\n ? (u = '')\n : (r += l)\n : l === '\"' || l === \"'\"\n ? (u = l)\n : l === '>'\n ? (c(), (t = 1))\n : t &&\n (l === '='\n ? ((t = 5), (e = r), (r = ''))\n : l === '/' && (t < 5 || n[h][i + 1] === '>')\n ? (c(),\n t === 3 && (a = a[0]),\n (t = a),\n (a = a[0]).push(this.apply(null, t.slice(1))),\n (t = 0))\n : l === ' ' || l === '\\t' || l === '\\n' || l === '\\r'\n ? (c(), (t = 2))\n : (r += l)),\n t === 3 && r === '!--' && ((t = 4), (a = a[0]));\n }\n return c(), a.length > 2 ? a.slice(1) : a[1];\n}\n\n/**\n * @fileoverview Check whether the given variable is a string or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n/**\n * Check whether the given variable is a boolean or not.\n * If the given variable is a boolean, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is boolean?\n * @memberof module:type\n */\nfunction isBoolean(obj) {\n return typeof obj === 'boolean' || obj instanceof Boolean;\n}\n\nvar isBoolean_1 = isBoolean;\n\nvar VNodeWalker = /** @class */ (function () {\n function VNodeWalker(current) {\n this.current = current;\n this.root = current;\n this.entering = true;\n }\n VNodeWalker.prototype.walk = function () {\n var _a = this, entering = _a.entering, cur = _a.current;\n if (!cur) {\n return null;\n }\n if (entering) {\n if (cur.firstChild) {\n this.current = cur.firstChild;\n this.entering = true;\n }\n else {\n this.entering = false;\n }\n }\n else if (cur === this.root) {\n this.current = null;\n }\n else if (cur.next) {\n this.current = cur.next;\n this.entering = true;\n }\n else {\n this.current = cur.parent;\n this.entering = false;\n }\n return { vnode: cur, entering: entering };\n };\n return VNodeWalker;\n}());\nvar VNode = /** @class */ (function () {\n function VNode(type, props, children) {\n this.parent = null;\n this.old = null;\n this.firstChild = null;\n this.next = null;\n this.skip = false;\n this.type = type;\n this.props = props;\n this.children = children;\n this.props.children = children;\n if (props.ref) {\n this.ref = props.ref;\n delete props.ref;\n }\n if (props.key) {\n this.key = props.key;\n delete props.key;\n }\n }\n VNode.prototype.walker = function () {\n return new VNodeWalker(this);\n };\n VNode.removalNodes = [];\n return VNode;\n}());\n\nfunction createTextNode(text) {\n return new VNode('TEXT_NODE', { nodeValue: text }, []);\n}\nfunction excludeUnnecessaryChild(child, flatted) {\n var vnode = child;\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (isBoolean_1(child) || child == null) {\n vnode = null;\n }\n else if (isString_1(child) || isNumber_1(child)) {\n vnode = createTextNode(String(child));\n }\n if (vnode) {\n flatted.push(vnode);\n }\n}\nfunction h(type, props) {\n var children = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n children[_i - 2] = arguments[_i];\n }\n var flatted = [];\n children.forEach(function (child) {\n if (Array.isArray(child)) {\n child.forEach(function (vnode) {\n excludeUnnecessaryChild(vnode, flatted);\n });\n }\n else {\n excludeUnnecessaryChild(child, flatted);\n }\n });\n return new VNode(type, props || {}, flatted);\n}\n// @ts-ignore\nvar html = html$1.bind(h);\n\n/**\n * @fileoverview Check whether the given variable is an object or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n/**\n * Check whether the given variable is an object or not.\n * If the given variable is an object, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is object?\n * @memberof module:type\n */\nfunction isObject(obj) {\n return obj === Object(obj);\n}\n\nvar isObject_1 = isObject;\n\n// @TODO: clearfy the type definition for CSSDeclaration\nfunction createNode(vnode) {\n var node;\n if (vnode.type === 'TEXT_NODE') {\n node = document.createTextNode(vnode.props.nodeValue);\n }\n else {\n node = document.createElement(vnode.type);\n setProps(node, {}, vnode.props);\n }\n return node;\n}\nfunction removeNode(vnode, parentNode) {\n if (vnode.node) {\n parentNode.removeChild(vnode.node);\n }\n else {\n removeNode(vnode.firstChild, parentNode);\n }\n}\nfunction innerDiff(node, prevProps, nextProps) {\n Object.keys(prevProps).forEach(function (propName) {\n if (/^on/.test(propName)) {\n if (!nextProps[propName] || prevProps[propName] !== nextProps[propName]) {\n var eventName = propName.slice(2).toLowerCase();\n node.removeEventListener(eventName, prevProps[propName]);\n }\n }\n else if (propName !== 'children' && !nextProps[propName] && !isTextNode(node)) {\n node.removeAttribute(propName);\n }\n });\n setProps(node, prevProps, nextProps, function (propName) { return !shallowEqual(prevProps[propName], nextProps[propName]); });\n}\nvar reNonDimension = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\nfunction setProps(node, prevProps, props, condition) {\n Object.keys(props).forEach(function (propName) {\n if (!condition || condition(propName)) {\n if (/^on/.test(propName)) {\n var eventName = propName.slice(2).toLowerCase();\n node.addEventListener(eventName, props[propName]);\n }\n else if (propName === 'nodeValue') {\n node[propName] = props[propName];\n }\n else if (propName === 'style' && isObject_1(props[propName])) {\n setStyleProps(node, prevProps[propName], props[propName]);\n }\n else if (propName !== 'children') {\n if (props[propName] === false) {\n node.removeAttribute(propName);\n }\n else {\n node.setAttribute(propName, props[propName]);\n }\n }\n }\n });\n}\nfunction setStyleProps(node, prevStyleProps, styleProps) {\n if (prevStyleProps) {\n Object.keys(prevStyleProps).forEach(function (styleProp) {\n // @ts-ignore\n node.style[styleProp] = '';\n });\n }\n Object.keys(styleProps).forEach(function (styleProp) {\n var value = styleProps[styleProp];\n // @ts-ignore\n node.style[styleProp] =\n isNumber_1(value) && !reNonDimension.test(styleProp) ? value + \"px\" : value;\n });\n}\n\nfunction commit(vnode) {\n VNode.removalNodes.forEach(function (removalNode) { return diff(removalNode); });\n if (vnode) {\n var next = void 0;\n var walker = vnode.walker();\n while ((next = walker.walk())) {\n vnode = next.vnode;\n if (next.entering) {\n diff(vnode);\n }\n else if (isFunction_1(vnode.type)) {\n var comp = vnode.component;\n // lifecycle method\n if (!vnode.old && comp.mounted) {\n comp.mounted();\n }\n if (vnode.old && comp.updated) {\n var prevProps = comp.prevProps || {};\n comp.updated(prevProps);\n }\n }\n }\n }\n}\nfunction getParentNode(vnode) {\n var parent = vnode.parent;\n while (!parent.node) {\n parent = parent.parent;\n }\n return parent.node;\n}\nfunction diff(vnode) {\n if (!vnode || !vnode.parent) {\n return;\n }\n if (vnode.node) {\n var parentNode = getParentNode(vnode);\n if (vnode.effect === 'A') {\n parentNode.appendChild(vnode.node);\n }\n else if (vnode.effect === 'U') {\n innerDiff(vnode.node, vnode.old.props, vnode.props);\n }\n }\n if (vnode.effect === 'D') {\n var next = void 0;\n var walker = vnode.walker();\n while ((next = walker.walk())) {\n vnode = next.vnode;\n if (!next.entering) {\n if (isFunction_1(vnode.type)) {\n var comp = vnode.component;\n // lifecycle method\n if (comp.beforeDestroy) {\n comp.beforeDestroy();\n }\n }\n else {\n var parentNode = getParentNode(vnode);\n removeNode(vnode, parentNode);\n }\n }\n }\n }\n // apply ref\n if (vnode.ref) {\n if (vnode.component) {\n vnode.ref(vnode.component);\n }\n else if (vnode.node) {\n vnode.ref(vnode.node);\n }\n }\n}\n\nfunction createComponent(Comp, vnode) {\n var props = vnode.props, component = vnode.component;\n if (component) {\n component.prevProps = component.props;\n component.props = vnode.props;\n return component;\n }\n return new Comp(props);\n}\nfunction buildVNode(vnode) {\n var root = vnode;\n while (vnode && !vnode.skip) {\n if (isFunction_1(vnode.type)) {\n var instance = createComponent(vnode.type, vnode);\n instance.vnode = vnode;\n vnode.component = instance;\n vnode.props.children = vnode.children = [instance.render()];\n buildChildrenVNode(vnode);\n }\n else {\n if (!vnode.node) {\n vnode.node = createNode(vnode);\n }\n buildChildrenVNode(vnode);\n }\n if (vnode.firstChild) {\n vnode = vnode.firstChild;\n }\n else {\n while (vnode && vnode.parent && !vnode.next) {\n vnode = vnode.parent;\n if (vnode === root) {\n break;\n }\n }\n vnode = vnode.next;\n }\n }\n}\nfunction isSameType(old, vnode) {\n return old && vnode && vnode.type === old.type && (!vnode.key || vnode.key === old.key);\n}\n// @TODO: add key diff algorithm\nfunction buildChildrenVNode(parent) {\n var children = parent.children;\n var old = parent.old ? parent.old.firstChild : null;\n var prev = null;\n children.forEach(function (vnode, index) {\n var sameType = isSameType(old, vnode);\n if (sameType) {\n vnode.old = old;\n vnode.parent = parent;\n vnode.node = old.node;\n vnode.component = old.component;\n vnode.effect = 'U';\n }\n if (vnode && !sameType) {\n vnode.old = null;\n vnode.parent = parent;\n vnode.node = null;\n vnode.effect = 'A';\n }\n if (old && !sameType) {\n VNode.removalNodes.push(old);\n old.effect = 'D';\n }\n if (old) {\n old = old.next;\n }\n if (index === 0) {\n parent.firstChild = vnode;\n }\n else if (vnode) {\n prev.next = vnode;\n }\n prev = vnode;\n });\n var lastChild = last$1(children);\n if (!children.length) {\n while (old) {\n VNode.removalNodes.push(old);\n old.effect = 'D';\n old = old.next;\n }\n }\n while (old && lastChild) {\n if (old && lastChild.old !== old) {\n VNode.removalNodes.push(old);\n old.effect = 'D';\n old = old.next;\n }\n }\n}\n\nfunction destroy(vnode) {\n vnode.effect = 'D';\n VNode.removalNodes = [vnode];\n commit();\n VNode.removalNodes = [];\n}\nfunction rerender(comp) {\n var root = comp.vnode;\n root.effect = 'U';\n root.old = root;\n // skip for unnecessary reconciliation\n if (root.next) {\n root.next.skip = true;\n }\n VNode.removalNodes = [];\n buildVNode(root);\n commit(root);\n if (root.next) {\n root.next.skip = false;\n }\n}\nfunction render(container, vnode) {\n var root = new VNode(container.tagName.toLowerCase(), {}, [vnode]);\n root.node = container;\n VNode.removalNodes = [];\n buildVNode(root);\n commit(root);\n return function () { return destroy(root.firstChild); };\n}\n\nvar Component = /** @class */ (function () {\n function Component(props) {\n this.props = props;\n this.state = {};\n this.refs = {};\n }\n Component.prototype.setState = function (state) {\n var newState = __assign$1(__assign$1({}, this.state), state);\n if (!shallowEqual(this.state, newState)) {\n this.state = newState;\n rerender(this);\n }\n };\n return Component;\n}());\n\nvar Switch = /** @class */ (function (_super) {\n __extends$1(Switch, _super);\n function Switch(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n hide: false,\n };\n return _this;\n }\n Switch.prototype.show = function () {\n this.setState({ hide: false });\n };\n Switch.prototype.hide = function () {\n this.setState({ hide: true });\n };\n Switch.prototype.render = function () {\n var _a = this.props, editorType = _a.editorType, eventEmitter = _a.eventEmitter;\n return html(templateObject_1$h || (templateObject_1$h = __makeTemplateObject([\"\\n <div class=\\\"\", \"\\\" style=\\\"display: \", \"\\\">\\n <div\\n class=\\\"tab-item\", \"\\\"\\n onClick=\", \"\\n >\\n \", \"\\n </div>\\n <div\\n class=\\\"tab-item\", \"\\\"\\n onClick=\", \"\\n >\\n \", \"\\n </div>\\n </div>\\n \"], [\"\\n <div class=\\\"\", \"\\\" style=\\\"display: \", \"\\\">\\n <div\\n class=\\\"tab-item\", \"\\\"\\n onClick=\",\n \"\\n >\\n \", \"\\n </div>\\n <div\\n class=\\\"tab-item\", \"\\\"\\n onClick=\",\n \"\\n >\\n \", \"\\n </div>\\n </div>\\n \"])), cls('mode-switch'), this.state.hide ? 'none' : 'block', editorType === 'markdown' ? ' active' : '', function () {\n eventEmitter.emit('needChangeMode', 'markdown');\n }, i18n.get('Markdown'), editorType === 'wysiwyg' ? ' active' : '', function () {\n eventEmitter.emit('needChangeMode', 'wysiwyg');\n }, i18n.get('WYSIWYG'));\n };\n return Switch;\n}(Component));\nvar templateObject_1$h;\n\n/**\n * @fileoverview Creates a debounced function that delays invoking fn until after delay milliseconds has elapsed since the last time the debouced function was invoked.\n * @author NHN FE Development Lab <dl_javascript.nhn.com>\n */\n\n/**\n * @module tricks\n */\n\n/**\n * Creates a debounced function that delays invoking fn until after delay milliseconds has elapsed\n * since the last time the debouced function was invoked.\n * @param {function} fn The function to debounce.\n * @param {number} [delay=0] The number of milliseconds to delay\n * @returns {function} debounced function.\n * @memberof module:tricks\n * @example\n * // ES6\n * import debounce from 'tui-code-snippet/tricks/debounce';\n * \n * // CommonJS\n * const debounce = require('tui-code-snippet/tricks/debounce');\n *\n * function someMethodToInvokeDebounced() {}\n *\n * const debounced = debounce(someMethodToInvokeDebounced, 300);\n *\n * // invoke repeatedly\n * debounced();\n * debounced();\n * debounced();\n * debounced();\n * debounced();\n * debounced(); // last invoke of debounced()\n *\n * // invoke someMethodToInvokeDebounced() after 300 milliseconds.\n */\nfunction debounce$1(fn, delay) {\n var timer, args;\n\n /* istanbul ignore next */\n delay = delay || 0;\n\n function debounced() { // eslint-disable-line require-jsdoc\n args = Array.prototype.slice.call(arguments);\n\n window.clearTimeout(timer);\n timer = window.setTimeout(function() {\n fn.apply(null, args);\n }, delay);\n }\n\n return debounced;\n}\n\nvar debounce_1 = debounce$1;\n\n/**\n * @fileoverview Creates a throttled function that only invokes fn at most once per every interval milliseconds.\n * @author NHN FE Development Lab <dl_javascript.nhn.com>\n */\n\nvar debounce = debounce_1;\n\n/**\n * Creates a throttled function that only invokes fn at most once per every interval milliseconds.\n * You can use this throttle short time repeatedly invoking functions. (e.g MouseMove, Resize ...)\n * if you need reuse throttled method. you must remove slugs (e.g. flag variable) related with throttling.\n * @param {function} fn function to throttle\n * @param {number} [interval=0] the number of milliseconds to throttle invocations to.\n * @returns {function} throttled function\n * @memberof module:tricks\n * @example\n * // ES6\n * import throttle from 'tui-code-snippet/tricks/throttle';\n * \n * // CommonJS\n * const throttle = require('tui-code-snippet/tricks/throttle');\n *\n * function someMethodToInvokeThrottled() {}\n *\n * const throttled = throttle(someMethodToInvokeThrottled, 300);\n *\n * // invoke repeatedly\n * throttled(); // invoke (leading)\n * throttled();\n * throttled(); // invoke (near 300 milliseconds)\n * throttled();\n * throttled();\n * throttled(); // invoke (near 600 milliseconds)\n * // ...\n * // invoke (trailing)\n *\n * // if you need reuse throttled method. then invoke reset()\n * throttled.reset();\n */\nfunction throttle$1(fn, interval) {\n var base;\n var isLeading = true;\n var tick = function(_args) {\n fn.apply(null, _args);\n base = null;\n };\n var debounced, stamp, args;\n\n /* istanbul ignore next */\n interval = interval || 0;\n\n debounced = debounce(tick, interval);\n\n function throttled() { // eslint-disable-line require-jsdoc\n args = Array.prototype.slice.call(arguments);\n\n if (isLeading) {\n tick(args);\n isLeading = false;\n\n return;\n }\n\n stamp = Number(new Date());\n\n base = base || stamp;\n\n // pass array directly because `debounce()`, `tick()` are already use\n // `apply()` method to invoke developer's `fn` handler.\n //\n // also, this `debounced` line invoked every time for implements\n // `trailing` features.\n debounced(args);\n\n if ((stamp - base) >= interval) {\n tick(args);\n }\n }\n\n function reset() { // eslint-disable-line require-jsdoc\n isLeading = true;\n base = null;\n }\n\n throttled.reset = reset;\n\n return throttled;\n}\n\nvar throttle_1 = throttle$1;\n\n/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nvar HeadingPopupBody = /** @class */ (function (_super) {\n __extends$1(HeadingPopupBody, _super);\n function HeadingPopupBody() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HeadingPopupBody.prototype.execCommand = function (ev) {\n var el = closest(ev.target, 'li');\n this.props.execCommand('heading', {\n level: Number(el.getAttribute('data-level')),\n });\n };\n HeadingPopupBody.prototype.render = function () {\n var _this = this;\n return html(templateObject_2$8 || (templateObject_2$8 = __makeTemplateObject([\"\\n <ul\\n onClick=\", \"\\n aria-role=\\\"menu\\\"\\n aria-label=\\\"\", \"\\\"\\n >\\n \", \"\\n <li data-type=\\\"Paragraph\\\" aria-role=\\\"menuitem\\\">\\n <div>\", \"</div>\\n </li>\\n </ul>\\n \"], [\"\\n <ul\\n onClick=\", \"\\n aria-role=\\\"menu\\\"\\n aria-label=\\\"\", \"\\\"\\n >\\n \",\n \"\\n <li data-type=\\\"Paragraph\\\" aria-role=\\\"menuitem\\\">\\n <div>\", \"</div>\\n </li>\\n </ul>\\n \"])), function (ev) { return _this.execCommand(ev); }, i18n.get('Headings'), [1, 2, 3, 4, 5, 6].map(function (level) {\n return html(templateObject_1$g || (templateObject_1$g = __makeTemplateObject([\"\\n <li data-level=\\\"\", \"\\\" data-type=\\\"Heading\\\" aria-role=\\\"menuitem\\\">\\n <\", \">\", \" \", \"</$>\\n </li>\\n \"], [\"\\n <li data-level=\\\"\", \"\\\" data-type=\\\"Heading\\\" aria-role=\\\"menuitem\\\">\\n <\", \">\", \" \", \"</$>\\n </li>\\n \"])), level, \"h\" + level, i18n.get('Heading'), level);\n }), i18n.get('Paragraph'));\n };\n return HeadingPopupBody;\n}(Component));\nvar templateObject_1$g, templateObject_2$8;\n\nvar Tabs = /** @class */ (function (_super) {\n __extends$1(Tabs, _super);\n function Tabs() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Tabs.prototype.toggleTab = function (ev, activeTab) {\n this.props.onClick(ev, activeTab);\n };\n Tabs.prototype.render = function () {\n var _this = this;\n return html(templateObject_2$7 || (templateObject_2$7 = __makeTemplateObject([\"\\n <div class=\\\"\", \"\\\" aria-role=\\\"tabpanel\\\">\\n \", \"\\n </div>\\n \"], [\"\\n <div class=\\\"\", \"\\\" aria-role=\\\"tabpanel\\\">\\n \",\n \"\\n </div>\\n \"])), cls('tabs'), this.props.tabs.map(function (_a) {\n var name = _a.name, text = _a.text;\n var isActive = _this.props.activeTab === name;\n return html(templateObject_1$f || (templateObject_1$f = __makeTemplateObject([\"\\n <div\\n class=\\\"tab-item\", \"\\\"\\n onClick=\", \"\\n aria-role=\\\"tab\\\"\\n aria-label=\\\"\", \"\\\"\\n aria-selected=\\\"\", \"\\\"\\n tabindex=\\\"\", \"\\\"\\n >\\n \", \"\\n </div>\\n \"], [\"\\n <div\\n class=\\\"tab-item\", \"\\\"\\n onClick=\", \"\\n aria-role=\\\"tab\\\"\\n aria-label=\\\"\", \"\\\"\\n aria-selected=\\\"\", \"\\\"\\n tabindex=\\\"\", \"\\\"\\n >\\n \", \"\\n </div>\\n \"])), isActive ? ' active' : '', function (ev) { return _this.toggleTab(ev, name); }, i18n.get(text), isActive ? 'true' : 'false', isActive ? '0' : '-1', i18n.get(text));\n }));\n };\n return Tabs;\n}(Component));\nvar templateObject_1$f, templateObject_2$7;\n\nvar TYPE_UI = 'ui';\nvar ImagePopupBody = /** @class */ (function (_super) {\n __extends$1(ImagePopupBody, _super);\n function ImagePopupBody(props) {\n var _this = _super.call(this, props) || this;\n _this.initialize = function (activeTab) {\n if (activeTab === void 0) { activeTab = 'file'; }\n var urlEl = _this.refs.url;\n urlEl.value = '';\n _this.refs.altText.value = '';\n _this.refs.file.value = '';\n removeClass_1(urlEl, 'wrong');\n _this.setState({ activeTab: activeTab, file: null, fileNameElClassName: '' });\n };\n _this.execCommand = function () {\n if (_this.state.activeTab === 'file') {\n _this.emitAddImageBlob();\n }\n else {\n _this.emitAddImage();\n }\n };\n _this.toggleTab = function (_, activeTab) {\n if (activeTab !== _this.state.activeTab) {\n _this.initialize(activeTab);\n }\n };\n _this.showFileSelectBox = function () {\n _this.refs.file.click();\n };\n _this.changeFile = function (ev) {\n var files = ev.target.files;\n if (files === null || files === void 0 ? void 0 : files.length) {\n _this.setState({ file: files[0] });\n }\n };\n _this.state = { activeTab: 'file', file: null, fileNameElClassName: '' };\n _this.tabs = [\n { name: 'file', text: 'File' },\n { name: 'url', text: 'URL' },\n ];\n return _this;\n }\n ImagePopupBody.prototype.emitAddImageBlob = function () {\n var _this = this;\n var files = this.refs.file.files;\n var altTextEl = this.refs.altText;\n var fileNameElClassName = ' wrong';\n if (files === null || files === void 0 ? void 0 : files.length) {\n fileNameElClassName = '';\n var imageFile = files.item(0);\n var hookCallback = function (url, text) {\n return _this.props.execCommand('addImage', { imageUrl: url, altText: text || altTextEl.value });\n };\n this.props.eventEmitter.emit('addImageBlobHook', imageFile, hookCallback, TYPE_UI);\n }\n this.setState({ fileNameElClassName: fileNameElClassName });\n };\n ImagePopupBody.prototype.emitAddImage = function () {\n var imageUrlEl = this.refs.url;\n var altTextEl = this.refs.altText;\n var imageUrl = imageUrlEl.value;\n var altText = altTextEl.value || 'image';\n removeClass_1(imageUrlEl, 'wrong');\n if (!imageUrl.length) {\n addClass_1(imageUrlEl, 'wrong');\n return;\n }\n if (imageUrl) {\n this.props.execCommand('addImage', { imageUrl: imageUrl, altText: altText });\n }\n };\n ImagePopupBody.prototype.preventSelectStart = function (ev) {\n ev.preventDefault();\n };\n ImagePopupBody.prototype.updated = function () {\n if (!this.props.show) {\n this.initialize();\n }\n };\n ImagePopupBody.prototype.render = function () {\n var _this = this;\n var _a = this.state, activeTab = _a.activeTab, file = _a.file, fileNameElClassName = _a.fileNameElClassName;\n return html(templateObject_1$e || (templateObject_1$e = __makeTemplateObject([\"\\n <div aria-label=\\\"\", \"\\\">\\n <\", \" tabs=\", \" activeTab=\", \" onClick=\", \" />\\n <div style=\\\"display:\", \"\\\">\\n <label for=\\\"toastuiImageUrlInput\\\">\", \"</label>\\n <input\\n id=\\\"toastuiImageUrlInput\\\"\\n type=\\\"text\\\"\\n ref=\", \"\\n />\\n </div>\\n <div style=\\\"display:\", \";position: relative;\\\">\\n <label for=\\\"toastuiImageFileInput\\\">\", \"</label>\\n <span\\n class=\\\"\", \"\", \"\\\"\\n onClick=\", \"\\n onSelectstart=\", \"\\n >\\n \", \"\\n </span>\\n <button\\n type=\\\"button\\\"\\n class=\\\"\", \"\\\"\\n onClick=\", \"\\n >\\n \", \"\\n </button>\\n <input\\n id=\\\"toastuiImageFileInput\\\"\\n type=\\\"file\\\"\\n accept=\\\"image/*\\\"\\n onChange=\", \"\\n ref=\", \"\\n />\\n </div>\\n <label for=\\\"toastuiAltTextInput\\\">\", \"</label>\\n <input\\n id=\\\"toastuiAltTextInput\\\"\\n type=\\\"text\\\"\\n ref=\", \"\\n />\\n <div class=\\\"\", \"\\\">\\n <button type=\\\"button\\\" class=\\\"\", \"\\\" onClick=\", \">\\n \", \"\\n </button>\\n <button type=\\\"button\\\" class=\\\"\", \"\\\" onClick=\", \">\\n \", \"\\n </button>\\n </div>\\n </div>\\n \"], [\"\\n <div aria-label=\\\"\", \"\\\">\\n <\", \" tabs=\", \" activeTab=\", \" onClick=\", \" />\\n <div style=\\\"display:\", \"\\\">\\n <label for=\\\"toastuiImageUrlInput\\\">\", \"</label>\\n <input\\n id=\\\"toastuiImageUrlInput\\\"\\n type=\\\"text\\\"\\n ref=\", \"\\n />\\n </div>\\n <div style=\\\"display:\", \";position: relative;\\\">\\n <label for=\\\"toastuiImageFileInput\\\">\", \"</label>\\n <span\\n class=\\\"\", \"\", \"\\\"\\n onClick=\", \"\\n onSelectstart=\", \"\\n >\\n \", \"\\n </span>\\n <button\\n type=\\\"button\\\"\\n class=\\\"\", \"\\\"\\n onClick=\", \"\\n >\\n \", \"\\n </button>\\n <input\\n id=\\\"toastuiImageFileInput\\\"\\n type=\\\"file\\\"\\n accept=\\\"image/*\\\"\\n onChange=\", \"\\n ref=\", \"\\n />\\n </div>\\n <label for=\\\"toastuiAltTextInput\\\">\", \"</label>\\n <input\\n id=\\\"toastuiAltTextInput\\\"\\n type=\\\"text\\\"\\n ref=\", \"\\n />\\n <div class=\\\"\", \"\\\">\\n <button type=\\\"button\\\" class=\\\"\", \"\\\" onClick=\", \">\\n \", \"\\n </button>\\n <button type=\\\"button\\\" class=\\\"\", \"\\\" onClick=\", \">\\n \", \"\\n </button>\\n </div>\\n </div>\\n \"])), i18n.get('Insert image'), Tabs, this.tabs, activeTab, this.toggleTab, activeTab === 'url' ? 'block' : 'none', i18n.get('Image URL'), function (el) { return (_this.refs.url = el); }, activeTab === 'file' ? 'block' : 'none', i18n.get('Select image file'), cls('file-name'), file ? ' has-file' : fileNameElClassName, this.showFileSelectBox, this.preventSelectStart, file ? file.name : i18n.get('No file'), cls('file-select-button'), this.showFileSelectBox, i18n.get('Choose a file'), this.changeFile, function (el) { return (_this.refs.file = el); }, i18n.get('Description'), function (el) { return (_this.refs.altText = el); }, cls('button-container'), cls('close-button'), this.props.hidePopup, i18n.get('Cancel'), cls('ok-button'), this.execCommand, i18n.get('OK'));\n };\n return ImagePopupBody;\n}(Component));\nvar templateObject_1$e;\n\nvar LinkPopupBody = /** @class */ (function (_super) {\n __extends$1(LinkPopupBody, _super);\n function LinkPopupBody() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.execCommand = function () {\n var linkUrlEl = _this.refs.url;\n var linkTextEl = _this.refs.text;\n removeClass_1(linkUrlEl, 'wrong');\n removeClass_1(linkTextEl, 'wrong');\n if (linkUrlEl.value.length < 1) {\n addClass_1(linkUrlEl, 'wrong');\n return;\n }\n var checkLinkText = isUndefined_1(_this.props.initialValues.linkUrl);\n if (checkLinkText && linkTextEl.value.length < 1) {\n addClass_1(linkTextEl, 'wrong');\n return;\n }\n _this.props.execCommand('addLink', {\n linkUrl: linkUrlEl.value,\n linkText: linkTextEl.value,\n });\n };\n return _this;\n }\n LinkPopupBody.prototype.initialize = function () {\n var _a = this.props.initialValues, linkUrl = _a.linkUrl, linkText = _a.linkText;\n var linkUrlEl = this.refs.url;\n var linkTextEl = this.refs.text;\n removeClass_1(linkUrlEl, 'wrong');\n removeClass_1(linkTextEl, 'wrong', 'disabled');\n linkTextEl.removeAttribute('disabled');\n if (linkUrl) {\n addClass_1(linkTextEl, 'disabled');\n linkTextEl.setAttribute('disabled', 'disabled');\n }\n linkUrlEl.value = linkUrl || '';\n linkTextEl.value = linkText || '';\n };\n LinkPopupBody.prototype.mounted = function () {\n this.initialize();\n };\n LinkPopupBody.prototype.updated = function (prevProps) {\n if (!prevProps.show && this.props.show) {\n this.initialize();\n }\n };\n LinkPopupBody.prototype.render = function () {\n var _this = this;\n return html(templateObject_1$d || (templateObject_1$d = __makeTemplateObject([\"\\n <div aria-label=\\\"\", \"\\\">\\n <label for=\\\"toastuiLinkUrlInput\\\">\", \"</label>\\n <input\\n id=\\\"toastuiLinkUrlInput\\\"\\n type=\\\"text\\\"\\n ref=\", \"\\n />\\n <label for=\\\"toastuiLinkTextInput\\\">\", \"</label>\\n <input\\n id=\\\"toastuiLinkTextInput\\\"\\n type=\\\"text\\\"\\n ref=\", \"\\n />\\n <div class=\\\"\", \"\\\">\\n <button type=\\\"button\\\" class=\\\"\", \"\\\" onClick=\", \">\\n \", \"\\n </button>\\n <button type=\\\"button\\\" class=\\\"\", \"\\\" onClick=\", \">\\n \", \"\\n </button>\\n </div>\\n </div>\\n \"], [\"\\n <div aria-label=\\\"\", \"\\\">\\n <label for=\\\"toastuiLinkUrlInput\\\">\", \"</label>\\n <input\\n id=\\\"toastuiLinkUrlInput\\\"\\n type=\\\"text\\\"\\n ref=\", \"\\n />\\n <label for=\\\"toastuiLinkTextInput\\\">\", \"</label>\\n <input\\n id=\\\"toastuiLinkTextInput\\\"\\n type=\\\"text\\\"\\n ref=\", \"\\n />\\n <div class=\\\"\", \"\\\">\\n <button type=\\\"button\\\" class=\\\"\", \"\\\" onClick=\", \">\\n \", \"\\n </button>\\n <button type=\\\"button\\\" class=\\\"\", \"\\\" onClick=\", \">\\n \", \"\\n </button>\\n </div>\\n </div>\\n \"])), i18n.get('Insert link'), i18n.get('URL'), function (el) { return (_this.refs.url = el); }, i18n.get('Link text'), function (el) { return (_this.refs.text = el); }, cls('button-container'), cls('close-button'), this.props.hidePopup, i18n.get('Cancel'), cls('ok-button'), this.execCommand, i18n.get('OK'));\n };\n return LinkPopupBody;\n}(Component));\nvar templateObject_1$d;\n\nvar CELL_WIDTH = 20;\nvar CELL_HEIGHT = 20;\nvar MIN_ROW_INDEX = 5;\nvar MAX_ROW_INDEX = 14;\nvar MIN_COL_INDEX = 5;\nvar MAX_COL_INDEX = 9;\nvar MIN_ROW_SELECTION_INDEX = 1;\nvar MIN_COL_SELECTION_INDEX = 1;\nvar BORDER_WIDTH = 1;\nvar TablePopupBody = /** @class */ (function (_super) {\n __extends$1(TablePopupBody, _super);\n function TablePopupBody(props) {\n var _this = _super.call(this, props) || this;\n _this.extendSelectionRange = function (_a) {\n var pageX = _a.pageX, pageY = _a.pageY;\n var x = pageX - _this.offsetRect.left;\n var y = pageY - _this.offsetRect.top;\n var range = _this.getSelectionRangeByOffset(x, y);\n _this.setState(__assign$1({}, range));\n };\n _this.execCommand = function () {\n _this.props.execCommand('addTable', {\n rowCount: _this.state.rowIdx + 1,\n columnCount: _this.state.colIdx + 1,\n });\n };\n _this.state = {\n rowIdx: -1,\n colIdx: -1,\n };\n return _this;\n }\n TablePopupBody.prototype.getDescription = function () {\n return this.state.colIdx === -1 ? '' : this.state.colIdx + 1 + \" x \" + (this.state.rowIdx + 1);\n };\n TablePopupBody.prototype.getBoundByRange = function (colIdx, rowIdx) {\n return {\n width: (colIdx + 1) * CELL_WIDTH,\n height: (rowIdx + 1) * CELL_HEIGHT,\n };\n };\n TablePopupBody.prototype.getRangeByOffset = function (x, y) {\n return {\n colIdx: Math.floor(x / CELL_WIDTH),\n rowIdx: Math.floor(y / CELL_HEIGHT),\n };\n };\n TablePopupBody.prototype.getTableRange = function () {\n var _a = this.state, orgColIdx = _a.colIdx, orgRowIdx = _a.rowIdx;\n var colIdx = Math.max(orgColIdx, MIN_COL_INDEX);\n var rowIdx = Math.max(orgRowIdx, MIN_ROW_INDEX);\n if (orgColIdx >= MIN_COL_INDEX && colIdx < MAX_COL_INDEX) {\n colIdx += 1;\n }\n if (orgRowIdx >= MIN_ROW_INDEX && rowIdx < MAX_ROW_INDEX) {\n rowIdx += 1;\n }\n return { colIdx: colIdx + 1, rowIdx: rowIdx + 1 };\n };\n TablePopupBody.prototype.getSelectionAreaBound = function () {\n var _a = this.getBoundByRange(this.state.colIdx, this.state.rowIdx), width = _a.width, height = _a.height;\n if (!width && !height) {\n return { display: 'none' };\n }\n return { width: width - BORDER_WIDTH, height: height - BORDER_WIDTH, display: 'block' };\n };\n TablePopupBody.prototype.getSelectionRangeByOffset = function (x, y) {\n var range = this.getRangeByOffset(x, y);\n range.rowIdx = Math.min(Math.max(range.rowIdx, MIN_ROW_SELECTION_INDEX), MAX_ROW_INDEX);\n range.colIdx = Math.min(Math.max(range.colIdx, MIN_COL_SELECTION_INDEX), MAX_COL_INDEX);\n return range;\n };\n TablePopupBody.prototype.updated = function () {\n if (!this.props.show) {\n this.setState({ colIdx: -1, rowIdx: -1 });\n }\n else if (this.state.colIdx === -1 && this.state.rowIdx === -1) {\n var _a = this.refs.tableEl.getBoundingClientRect(), left = _a.left, top_1 = _a.top;\n this.offsetRect = {\n left: window.pageXOffset + left,\n top: window.pageYOffset + top_1,\n };\n }\n };\n TablePopupBody.prototype.createTableArea = function (tableRange) {\n var colIdx = tableRange.colIdx, rowIdx = tableRange.rowIdx;\n var rows = [];\n for (var i = 0; i < rowIdx; i += 1) {\n var cells = [];\n for (var j = 0; j < colIdx; j += 1) {\n var cellClassNames = \"\" + cls('table-cell') + (i > 0 ? '' : ' header');\n cells.push(html(templateObject_1$c || (templateObject_1$c = __makeTemplateObject([\"<div class=\\\"\", \"\\\"></div>\"], [\"<div class=\\\"\", \"\\\"></div>\"])), cellClassNames));\n }\n rows.push(html(templateObject_2$6 || (templateObject_2$6 = __makeTemplateObject([\"<div class=\\\"\", \"\\\">\", \"</div>\"], [\"<div class=\\\"\", \"\\\">\", \"</div>\"])), cls('table-row'), cells));\n }\n return html(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject([\"<div class=\\\"\", \"\\\">\", \"</div>\"], [\"<div class=\\\"\", \"\\\">\", \"</div>\"])), cls('table'), rows);\n };\n TablePopupBody.prototype.render = function () {\n var _this = this;\n var tableRange = this.getTableRange();\n var selectionAreaBound = this.getSelectionAreaBound();\n return html(templateObject_4$1 || (templateObject_4$1 = __makeTemplateObject([\"\\n <div aria-label=\\\"\", \"\\\">\\n <div\\n class=\\\"\", \"\\\"\\n ref=\", \"\\n onMousemove=\", \"\\n onClick=\", \"\\n >\\n \", \"\\n <div class=\\\"\", \"\\\" style=\", \"></div>\\n </div>\\n <p class=\\\"\", \"\\\">\", \"</p>\\n </div>\\n \"], [\"\\n <div aria-label=\\\"\", \"\\\">\\n <div\\n class=\\\"\", \"\\\"\\n ref=\", \"\\n onMousemove=\", \"\\n onClick=\", \"\\n >\\n \", \"\\n <div class=\\\"\", \"\\\" style=\", \"></div>\\n </div>\\n <p class=\\\"\", \"\\\">\", \"</p>\\n </div>\\n \"])), i18n.get('Insert table'), cls('table-selection'), function (el) { return (_this.refs.tableEl = el); }, this.extendSelectionRange, this.execCommand, this.createTableArea(tableRange), cls('table-selection-layer'), selectionAreaBound, cls('table-description'), this.getDescription());\n };\n return TablePopupBody;\n}(Component));\nvar templateObject_1$c, templateObject_2$6, templateObject_3$2, templateObject_4$1;\n\nvar CustomPopupBody = /** @class */ (function (_super) {\n __extends$1(CustomPopupBody, _super);\n function CustomPopupBody() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CustomPopupBody.prototype.mounted = function () {\n // append the custom popup body element\n this.refs.el.appendChild(this.props.body);\n };\n CustomPopupBody.prototype.updated = function (prevProps) {\n // update custom popup element\n this.refs.el.replaceChild(this.props.body, prevProps.body);\n };\n CustomPopupBody.prototype.render = function () {\n var _this = this;\n return html(templateObject_1$b || (templateObject_1$b = __makeTemplateObject([\"<div ref=\", \"></div>\"], [\"<div ref=\", \"></div>\"])), function (el) { return (_this.refs.el = el); });\n };\n return CustomPopupBody;\n}(Component));\nvar templateObject_1$b;\n\nfunction createToolbarItemInfo(type) {\n return isString_1(type) ? createDefaultToolbarItemInfo(type) : type;\n}\nfunction createScrollSyncToolbarItem() {\n var label = document.createElement('label');\n var checkbox = document.createElement('input');\n var toggleSwitch = document.createElement('span');\n label.className = 'scroll-sync active';\n checkbox.type = 'checkbox';\n checkbox.checked = true;\n toggleSwitch.className = 'switch';\n var onMounted = function (execCommand) {\n return checkbox.addEventListener('change', function (ev) {\n var checked = ev.target.checked;\n if (checked) {\n addClass_1(label, 'active');\n }\n else {\n removeClass_1(label, 'active');\n }\n execCommand('toggleScrollSync', { active: checked });\n });\n };\n label.appendChild(checkbox);\n label.appendChild(toggleSwitch);\n return {\n name: 'scrollSync',\n el: label,\n onMounted: onMounted,\n };\n}\nfunction createDefaultToolbarItemInfo(type) {\n var info;\n switch (type) {\n case 'heading':\n info = {\n name: 'heading',\n className: 'heading',\n tooltip: i18n.get('Headings'),\n state: 'heading',\n };\n break;\n case 'bold':\n info = {\n name: 'bold',\n className: 'bold',\n command: 'bold',\n tooltip: i18n.get('Bold'),\n state: 'strong',\n };\n break;\n case 'italic':\n info = {\n name: 'italic',\n className: 'italic',\n command: 'italic',\n tooltip: i18n.get('Italic'),\n state: 'emph',\n };\n break;\n case 'strike':\n info = {\n name: 'strike',\n className: 'strike',\n command: 'strike',\n tooltip: i18n.get('Strike'),\n state: 'strike',\n };\n break;\n case 'hr':\n info = {\n name: 'hr',\n className: 'hrline',\n command: 'hr',\n tooltip: i18n.get('Line'),\n state: 'thematicBreak',\n };\n break;\n case 'quote':\n info = {\n name: 'quote',\n className: 'quote',\n command: 'blockQuote',\n tooltip: i18n.get('Blockquote'),\n state: 'blockQuote',\n };\n break;\n case 'ul':\n info = {\n name: 'ul',\n className: 'bullet-list',\n command: 'bulletList',\n tooltip: i18n.get('Unordered list'),\n state: 'bulletList',\n };\n break;\n case 'ol':\n info = {\n name: 'ol',\n className: 'ordered-list',\n command: 'orderedList',\n tooltip: i18n.get('Ordered list'),\n state: 'orderedList',\n };\n break;\n case 'task':\n info = {\n name: 'task',\n className: 'task-list',\n command: 'taskList',\n tooltip: i18n.get('Task'),\n state: 'taskList',\n };\n break;\n case 'table':\n info = {\n name: 'table',\n className: 'table',\n tooltip: i18n.get('Insert table'),\n state: 'table',\n };\n break;\n case 'image':\n info = {\n name: 'image',\n className: 'image',\n tooltip: i18n.get('Insert image'),\n };\n break;\n case 'link':\n info = {\n name: 'link',\n className: 'link',\n tooltip: i18n.get('Insert link'),\n };\n break;\n case 'code':\n info = {\n name: 'code',\n className: 'code',\n command: 'code',\n tooltip: i18n.get('Code'),\n state: 'code',\n };\n break;\n case 'codeblock':\n info = {\n name: 'codeblock',\n className: 'codeblock',\n command: 'codeBlock',\n tooltip: i18n.get('Insert CodeBlock'),\n state: 'codeBlock',\n };\n break;\n case 'indent':\n info = {\n name: 'indent',\n className: 'indent',\n command: 'indent',\n tooltip: i18n.get('Indent'),\n state: 'indent',\n };\n break;\n case 'outdent':\n info = {\n name: 'outdent',\n className: 'outdent',\n command: 'outdent',\n tooltip: i18n.get('Outdent'),\n state: 'outdent',\n };\n break;\n case 'scrollSync':\n info = createScrollSyncToolbarItem();\n break;\n case 'more':\n info = {\n name: 'more',\n className: 'more',\n tooltip: i18n.get('More'),\n };\n break;\n // do nothing\n }\n if (info.name !== 'scrollSync') {\n info.className += \" \" + cls('toolbar-icons');\n }\n return info;\n}\nfunction createPopupInfo(type, payload) {\n var el = payload.el, pos = payload.pos, popup = payload.popup, initialValues = payload.initialValues;\n switch (type) {\n case 'heading':\n return {\n render: function (props) { return html(templateObject_1$a || (templateObject_1$a = __makeTemplateObject([\"<\", \" ...\", \" />\"], [\"<\", \" ...\", \" />\"])), HeadingPopupBody, props); },\n className: cls('popup-add-heading'),\n fromEl: el,\n pos: pos,\n };\n case 'link':\n return {\n render: function (props) { return html(templateObject_2$5 || (templateObject_2$5 = __makeTemplateObject([\"<\", \" ...\", \" />\"], [\"<\", \" ...\", \" />\"])), LinkPopupBody, props); },\n className: cls('popup-add-link'),\n fromEl: el,\n pos: pos,\n initialValues: initialValues,\n };\n case 'image':\n return {\n render: function (props) { return html(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject([\"<\", \" ...\", \" />\"], [\"<\", \" ...\", \" />\"])), ImagePopupBody, props); },\n className: cls('popup-add-image'),\n fromEl: el,\n pos: pos,\n };\n case 'table':\n return {\n render: function (props) { return html(templateObject_4 || (templateObject_4 = __makeTemplateObject([\"<\", \" ...\", \" />\"], [\"<\", \" ...\", \" />\"])), TablePopupBody, props); },\n className: cls('popup-add-table'),\n fromEl: el,\n pos: pos,\n };\n case 'customPopupBody':\n if (!popup) {\n return null;\n }\n return __assign$1({ render: function (props) { return html(templateObject_5 || (templateObject_5 = __makeTemplateObject([\"<\", \" ...\", \" body=\", \" />\"], [\"<\", \" ...\", \" body=\", \" />\"])), CustomPopupBody, props, popup.body); }, fromEl: el, pos: pos }, popup);\n default:\n return null;\n }\n}\nfunction setGroupState(group) {\n group.hidden = group.length === group.filter(function (info) { return info.hidden; }).length;\n}\nfunction groupToolbarItems(toolbarItems, hiddenScrollSync) {\n var toggleScrollSyncState = function (item) {\n item.hidden = item.name === 'scrollSync' && hiddenScrollSync;\n return item;\n };\n return toolbarItems.reduce(function (acc, item) {\n acc.push(item.map(function (type) { return toggleScrollSyncState(createToolbarItemInfo(type)); }));\n var group = acc[(acc.length || 1) - 1];\n if (group) {\n setGroupState(group);\n }\n return acc;\n }, []);\n}\nfunction toggleScrollSync(toolbarItems, hiddenScrollSync) {\n toolbarItems.forEach(function (group) {\n group.forEach(function (item) { return (item.hidden = item.name === 'scrollSync' && hiddenScrollSync); });\n setGroupState(group);\n });\n}\nvar templateObject_1$a, templateObject_2$5, templateObject_3$1, templateObject_4, templateObject_5;\n\nvar MARGIN_FROM_RIGHT_SIDE = 20;\nvar Popup = /** @class */ (function (_super) {\n __extends$1(Popup, _super);\n function Popup() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handleMousedown = function (ev) {\n if (!closest(ev.target, \".\" + cls('popup')) &&\n !closest(ev.target, _this.props.info.fromEl)) {\n _this.props.hidePopup();\n }\n };\n return _this;\n }\n Popup.prototype.mounted = function () {\n document.addEventListener('mousedown', this.handleMousedown);\n this.props.eventEmitter.listen('closePopup', this.props.hidePopup);\n };\n Popup.prototype.beforeDestroy = function () {\n document.removeEventListener('mousedown', this.handleMousedown);\n };\n Popup.prototype.updated = function (prevProps) {\n var _a = this.props, show = _a.show, info = _a.info;\n if (show && info.pos && prevProps.show !== show) {\n var popupPos = __assign$1({}, info.pos);\n var offsetWidth = this.refs.el.offsetWidth;\n var toolbarEl = closest(this.refs.el, \".\" + cls('toolbar'));\n var toolbarOffsetWidth = toolbarEl.offsetWidth;\n if (popupPos.left + offsetWidth >= toolbarOffsetWidth) {\n popupPos.left = toolbarOffsetWidth - offsetWidth - MARGIN_FROM_RIGHT_SIDE;\n }\n if (!shallowEqual(this.state.popupPos, popupPos)) {\n this.setState({ popupPos: popupPos });\n }\n }\n };\n Popup.prototype.render = function () {\n var _this = this;\n var _a = this.props, info = _a.info, show = _a.show, hidePopup = _a.hidePopup, eventEmitter = _a.eventEmitter, execCommand = _a.execCommand;\n var _b = info || {}, _c = _b.className, className = _c === void 0 ? '' : _c, style = _b.style, render = _b.render, _d = _b.initialValues, initialValues = _d === void 0 ? {} : _d;\n var popupStyle = __assign$1(__assign$1({ display: show ? 'block' : 'none' }, style), this.state.popupPos);\n return html(templateObject_1$9 || (templateObject_1$9 = __makeTemplateObject([\"\\n <div\\n class=\\\"\", \" \", \"\\\"\\n style=\", \"\\n ref=\", \"\\n aria-role=\\\"dialog\\\"\\n >\\n <div class=\\\"\", \"\\\">\\n \", \"\\n </div>\\n </div>\\n \"], [\"\\n <div\\n class=\\\"\", \" \", \"\\\"\\n style=\", \"\\n ref=\", \"\\n aria-role=\\\"dialog\\\"\\n >\\n <div class=\\\"\", \"\\\">\\n \", \"\\n </div>\\n </div>\\n \"])), cls('popup'), className, popupStyle, function (el) { return (_this.refs.el = el); }, cls('popup-body'), render && render({ eventEmitter: eventEmitter, show: show, hidePopup: hidePopup, execCommand: execCommand, initialValues: initialValues }));\n };\n return Popup;\n}(Component));\nvar templateObject_1$9;\n\nvar TOOLTIP_INDENT = 6;\nfunction connectHOC(WrappedComponent) {\n return /** @class */ (function (_super) {\n __extends$1(ButtonHOC, _super);\n function ButtonHOC(props) {\n var _this = _super.call(this, props) || this;\n _this.showTooltip = function (el) {\n var tooltip = _this.props.item.tooltip;\n if (!_this.props.disabled && tooltip) {\n var bound = _this.getBound(el);\n var left = bound.left + TOOLTIP_INDENT + \"px\";\n var top_1 = bound.top + TOOLTIP_INDENT + \"px\";\n css_1(_this.props.tooltipRef.current, { display: 'block', left: left, top: top_1 });\n _this.props.tooltipRef.current.querySelector('.text').textContent = tooltip;\n }\n };\n _this.hideTooltip = function () {\n css_1(_this.props.tooltipRef.current, 'display', 'none');\n };\n _this.state = { active: false, disabled: props.disabled };\n _this.addEvent();\n return _this;\n }\n ButtonHOC.prototype.addEvent = function () {\n var _this = this;\n var _a = this.props, item = _a.item, eventEmitter = _a.eventEmitter;\n if (item.state) {\n eventEmitter.listen('changeToolbarState', function (_a) {\n var _b;\n var toolbarState = _a.toolbarState;\n var _c = (_b = toolbarState[item.state]) !== null && _b !== void 0 ? _b : {}, active = _c.active, disabled = _c.disabled;\n _this.setState({ active: !!active, disabled: disabled !== null && disabled !== void 0 ? disabled : _this.props.disabled });\n });\n }\n };\n ButtonHOC.prototype.getBound = function (el) {\n var _a = getTotalOffset(el, closest(el, \".\" + cls('toolbar'))), offsetLeft = _a.offsetLeft, offsetTop = _a.offsetTop;\n return { left: offsetLeft, top: el.offsetHeight + offsetTop };\n };\n ButtonHOC.prototype.render = function () {\n return html(templateObject_1$8 || (templateObject_1$8 = __makeTemplateObject([\"\\n <\", \"\\n ...\", \"\\n active=\", \"\\n showTooltip=\", \"\\n hideTooltip=\", \"\\n getBound=\", \"\\n disabled=\", \"\\n />\\n \"], [\"\\n <\", \"\\n ...\", \"\\n active=\", \"\\n showTooltip=\", \"\\n hideTooltip=\", \"\\n getBound=\", \"\\n disabled=\", \"\\n />\\n \"])), WrappedComponent, this.props, this.state.active, this.showTooltip, this.hideTooltip, this.getBound, this.state.disabled || this.props.disabled);\n };\n return ButtonHOC;\n }(Component));\n}\nvar templateObject_1$8;\n\nvar DEFAULT_WIDTH = 80;\nvar ToolbarButtonComp = /** @class */ (function (_super) {\n __extends$1(ToolbarButtonComp, _super);\n function ToolbarButtonComp() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.showTooltip = function () {\n _this.props.showTooltip(_this.refs.el);\n };\n _this.execCommand = function () {\n var _a = _this.props, item = _a.item, execCommand = _a.execCommand, setPopupInfo = _a.setPopupInfo, getBound = _a.getBound, eventEmitter = _a.eventEmitter;\n var command = item.command, name = item.name, popup = item.popup;\n if (command) {\n execCommand(command);\n }\n else {\n var popupName = popup ? 'customPopupBody' : name;\n var initialValues = eventEmitter.emit('query', 'getPopupInitialValues', { popupName: popupName })[0];\n var info = createPopupInfo(popupName, {\n el: _this.refs.el,\n pos: getBound(_this.refs.el),\n popup: popup,\n initialValues: initialValues,\n });\n if (info) {\n setPopupInfo(info);\n }\n }\n };\n return _this;\n }\n ToolbarButtonComp.prototype.mounted = function () {\n this.setItemWidth();\n };\n ToolbarButtonComp.prototype.updated = function (prevProps) {\n if (prevProps.item.name !== this.props.item.name) {\n this.setItemWidth();\n }\n };\n ToolbarButtonComp.prototype.setItemWidth = function () {\n var _a = this.props, setItemWidth = _a.setItemWidth, item = _a.item;\n // set width only if it is not a dropdown toolbar\n if (setItemWidth) {\n setItemWidth(item.name, getOuterWidth(this.refs.el) + (item.hidden ? DEFAULT_WIDTH : 0));\n }\n };\n ToolbarButtonComp.prototype.render = function () {\n var _this = this;\n var _a = this.props, hideTooltip = _a.hideTooltip, disabled = _a.disabled, item = _a.item, active = _a.active;\n var style = __assign$1({ display: item.hidden ? 'none' : null }, item.style);\n var classNames = \"\" + (item.className || '') + (active ? ' active' : '');\n return html(templateObject_1$7 || (templateObject_1$7 = __makeTemplateObject([\"\\n <button\\n ref=\", \"\\n type=\\\"button\\\"\\n style=\", \"\\n class=\", \"\\n onClick=\", \"\\n onMouseover=\", \"\\n onMouseout=\", \"\\n disabled=\", \"\\n aria-label=\", \"\\n >\\n \", \"\\n </button>\\n \"], [\"\\n <button\\n ref=\", \"\\n type=\\\"button\\\"\\n style=\", \"\\n class=\", \"\\n onClick=\", \"\\n onMouseover=\", \"\\n onMouseout=\", \"\\n disabled=\", \"\\n aria-label=\", \"\\n >\\n \", \"\\n </button>\\n \"])), function (el) { return (_this.refs.el = el); }, style, classNames, this.execCommand, this.showTooltip, hideTooltip, !!disabled, item.text || item.tooltip || '', item.text || '');\n };\n return ToolbarButtonComp;\n}(Component));\nvar ToolbarButton = connectHOC(ToolbarButtonComp);\nvar templateObject_1$7;\n\nvar CustomToolbarItemComp = /** @class */ (function (_super) {\n __extends$1(CustomToolbarItemComp, _super);\n function CustomToolbarItemComp() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.showTooltip = function () {\n _this.props.showTooltip(_this.refs.el);\n };\n _this.showPopup = function () {\n var info = createPopupInfo('customPopupBody', {\n el: _this.refs.el,\n pos: _this.props.getBound(_this.refs.el),\n popup: _this.props.item.popup,\n });\n if (info) {\n _this.props.setPopupInfo(info);\n }\n };\n return _this;\n }\n CustomToolbarItemComp.prototype.mounted = function () {\n var _a = this.props, setItemWidth = _a.setItemWidth, item = _a.item;\n // append the custom html element\n this.refs.el.appendChild(item.el);\n // set width only if it is not a dropdown toolbar\n if (setItemWidth) {\n setItemWidth(item.name, getOuterWidth(this.refs.el));\n }\n if (item.onMounted) {\n item.onMounted(this.props.execCommand);\n }\n };\n CustomToolbarItemComp.prototype.updated = function (prevProps) {\n var _a;\n var _b = this.props, item = _b.item, active = _b.active, disabled = _b.disabled;\n if (prevProps.active !== active || prevProps.disabled !== disabled) {\n (_a = item.onUpdated) === null || _a === void 0 ? void 0 : _a.call(item, { active: active, disabled: disabled });\n }\n };\n CustomToolbarItemComp.prototype.render = function () {\n var _this = this;\n var _a = this.props, disabled = _a.disabled, item = _a.item;\n var style = { display: item.hidden ? 'none' : 'inline-block' };\n var getListener = function (listener) { return (disabled ? null : listener); };\n return html(templateObject_1$6 || (templateObject_1$6 = __makeTemplateObject([\"\\n <div\\n ref=\", \"\\n style=\", \"\\n class=\", \"\\n onClick=\", \"\\n onMouseover=\", \"\\n onMouseout=\", \"\\n ></div>\\n \"], [\"\\n <div\\n ref=\", \"\\n style=\", \"\\n class=\", \"\\n onClick=\", \"\\n onMouseover=\", \"\\n onMouseout=\", \"\\n ></div>\\n \"])), function (el) { return (_this.refs.el = el); }, style, cls('toolbar-item-wrapper'), getListener(this.showPopup), getListener(this.showTooltip), getListener(this.props.hideTooltip));\n };\n return CustomToolbarItemComp;\n}(Component));\nvar CustomToolbarItem = connectHOC(CustomToolbarItemComp);\nvar templateObject_1$6;\n\nvar ToolbarGroup = /** @class */ (function (_super) {\n __extends$1(ToolbarGroup, _super);\n function ToolbarGroup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ToolbarGroup.prototype.render = function () {\n var _this = this;\n var _a = this.props, group = _a.group, hiddenDivider = _a.hiddenDivider;\n var groupStyle = group.hidden ? { display: 'none' } : null;\n var dividerStyle = hiddenDivider ? { display: 'none' } : null;\n return html(templateObject_2$4 || (templateObject_2$4 = __makeTemplateObject([\"\\n <div class=\\\"\", \"\\\" style=\", \">\\n \", \"\\n <div class=\\\"\", \"\\\" style=\", \"></div>\\n </div>\\n \"], [\"\\n <div class=\\\"\", \"\\\" style=\", \">\\n \",\n \"\\n <div class=\\\"\", \"\\\" style=\", \"></div>\\n </div>\\n \"])), cls('toolbar-group'), groupStyle, group.map(function (item) {\n var Comp = item.el ? CustomToolbarItem : ToolbarButton;\n return html(templateObject_1$5 || (templateObject_1$5 = __makeTemplateObject([\"<\", \" key=\", \" ...\", \" item=\", \" />\"], [\"<\", \" key=\", \" ...\", \" item=\", \" />\"])), Comp, item.name, _this.props, item);\n }), cls('toolbar-divider'), dividerStyle);\n };\n return ToolbarGroup;\n}(Component));\nvar templateObject_1$5, templateObject_2$4;\n\nvar POPUP_INDENT = 4;\nvar DropdownToolbarButtonComp = /** @class */ (function (_super) {\n __extends$1(DropdownToolbarButtonComp, _super);\n function DropdownToolbarButtonComp(props) {\n var _this = _super.call(this, props) || this;\n _this.handleClickDocument = function (_a) {\n var target = _a.target;\n if (!closest(target, \".\" + cls('dropdown-toolbar')) &&\n !closest(target, '.more')) {\n _this.setState({ showDropdown: false, dropdownPos: null });\n }\n };\n _this.showTooltip = function () {\n _this.props.showTooltip(_this.refs.el);\n };\n _this.state = { showDropdown: false, dropdownPos: null };\n return _this;\n }\n DropdownToolbarButtonComp.prototype.getBound = function () {\n var rect = this.props.getBound(this.refs.el);\n rect.top += POPUP_INDENT;\n return __assign$1(__assign$1({}, rect), { left: null, right: 10 });\n };\n DropdownToolbarButtonComp.prototype.mounted = function () {\n document.addEventListener('click', this.handleClickDocument);\n };\n DropdownToolbarButtonComp.prototype.updated = function () {\n if (this.state.showDropdown && !this.state.dropdownPos) {\n this.setState({ dropdownPos: this.getBound() });\n }\n };\n DropdownToolbarButtonComp.prototype.beforeDestroy = function () {\n document.removeEventListener('click', this.handleClickDocument);\n };\n DropdownToolbarButtonComp.prototype.render = function () {\n var _this = this;\n var _a = this.state, showDropdown = _a.showDropdown, dropdownPos = _a.dropdownPos;\n var _b = this.props, disabled = _b.disabled, item = _b.item, items = _b.items, hideTooltip = _b.hideTooltip;\n var visibleItems = items.filter(function (dropdownItem) { return !dropdownItem.hidden; });\n var groupStyle = visibleItems.length ? null : { display: 'none' };\n var dropdownStyle = showDropdown ? null : { display: 'none' };\n return html(templateObject_2$3 || (templateObject_2$3 = __makeTemplateObject([\"\\n <div class=\\\"\", \"\\\" style=\", \">\\n <button\\n ref=\", \"\\n type=\\\"button\\\"\\n class=\", \"\\n onClick=\", \"\\n onMouseover=\", \"\\n onMouseout=\", \"\\n disabled=\", \"\\n ></button>\\n <div\\n class=\\\"\", \"\\\"\\n style=\", \"\\n ref=\", \"\\n >\\n \", \"\\n </div>\\n </div>\\n \"], [\"\\n <div class=\\\"\", \"\\\" style=\", \">\\n <button\\n ref=\", \"\\n type=\\\"button\\\"\\n class=\", \"\\n onClick=\", \"\\n onMouseover=\", \"\\n onMouseout=\", \"\\n disabled=\", \"\\n ></button>\\n <div\\n class=\\\"\", \"\\\"\\n style=\", \"\\n ref=\", \"\\n >\\n \",\n \"\\n </div>\\n </div>\\n \"])), cls('toolbar-group'), groupStyle, function (el) { return (_this.refs.el = el); }, item.className, function () { return _this.setState({ showDropdown: true }); }, this.showTooltip, hideTooltip, disabled, cls('dropdown-toolbar'), __assign$1(__assign$1({}, dropdownStyle), dropdownPos), function (el) { return (_this.refs.dropdownEl = el); }, visibleItems.length\n ? visibleItems.map(function (group, index) {\n var _a;\n return html(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject([\"\\n <\", \"\\n group=\", \"\\n hiddenDivider=\", \"\\n ...\", \"\\n />\\n \"], [\"\\n <\", \"\\n group=\", \"\\n hiddenDivider=\",\n \"\\n ...\", \"\\n />\\n \"])), ToolbarGroup, group, index === visibleItems.length - 1 ||\n ((_a = visibleItems[index + 1]) === null || _a === void 0 ? void 0 : _a.hidden), _this.props);\n })\n : null);\n };\n return DropdownToolbarButtonComp;\n}(Component));\nvar DropdownToolbarButton = connectHOC(DropdownToolbarButtonComp);\nvar templateObject_1$4, templateObject_2$3;\n\nvar INLINE_PADDING = 50;\nvar Toolbar = /** @class */ (function (_super) {\n __extends$1(Toolbar, _super);\n function Toolbar(props) {\n var _this = _super.call(this, props) || this;\n _this.toggleTab = function (_, activeTab) {\n var eventEmitter = _this.props.eventEmitter;\n if (_this.state.activeTab !== activeTab) {\n var event_1 = activeTab === 'write' ? 'changePreviewTabWrite' : 'changePreviewTabPreview';\n eventEmitter.emit(event_1);\n _this.setState({ activeTab: activeTab });\n }\n };\n _this.setItemWidth = function (name, width) {\n _this.itemWidthMap[name] = width;\n };\n _this.setPopupInfo = function (popupInfo) {\n _this.setState({ showPopup: true, popupInfo: popupInfo });\n };\n _this.openPopup = function (popupName, initialValues) {\n if (initialValues === void 0) { initialValues = {}; }\n var el = _this.refs.el.querySelector(\".\" + cls('toolbar-group') + \" .\" + popupName);\n if (el) {\n var _a = getTotalOffset(el, closest(el, \".\" + cls('toolbar'))), offsetLeft = _a.offsetLeft, offsetTop = _a.offsetTop;\n var info = createPopupInfo(popupName, {\n el: el,\n pos: { left: offsetLeft, top: el.offsetHeight + offsetTop },\n initialValues: initialValues,\n });\n if (info) {\n _this.setPopupInfo(info);\n }\n }\n };\n _this.hidePopup = function () {\n if (_this.state.showPopup) {\n _this.setState({ showPopup: false });\n }\n };\n _this.execCommand = function (command, payload) {\n var eventEmitter = _this.props.eventEmitter;\n eventEmitter.emit('command', command, payload);\n _this.hidePopup();\n };\n _this.tabs = [\n { name: 'write', text: 'Write' },\n { name: 'preview', text: 'Preview' },\n ];\n _this.itemWidthMap = {};\n _this.initialItems = groupToolbarItems(props.toolbarItems || [], _this.hiddenScrollSync());\n _this.state = {\n items: _this.initialItems,\n dropdownItems: [],\n showPopup: false,\n popupInfo: {},\n activeTab: 'write',\n };\n _this.tooltipRef = { current: null };\n _this.resizeObserver = new index(function () { return _this.handleResize(); });\n _this.addEvent();\n return _this;\n }\n Toolbar.prototype.insertToolbarItem = function (indexList, item) {\n var groupIndex = indexList.groupIndex, itemIndex = indexList.itemIndex;\n var group = this.initialItems[groupIndex];\n item = createToolbarItemInfo(item);\n if (group) {\n group.splice(itemIndex, 0, item);\n }\n else {\n this.initialItems.push([item]);\n }\n this.setState(this.classifyToolbarItems());\n };\n Toolbar.prototype.removeToolbarItem = function (name) {\n var _this = this;\n forEachArray_1(this.initialItems, function (group) {\n var found = false;\n forEachArray_1(group, function (item, index) {\n if (item.name === name) {\n found = true;\n group.splice(index, 1);\n _this.setState(_this.classifyToolbarItems());\n return false;\n }\n return true;\n });\n return !found;\n });\n };\n Toolbar.prototype.addEvent = function () {\n var _this = this;\n var eventEmitter = this.props.eventEmitter;\n this.handleResize = throttle_1(function () {\n // reset toolbar items to re-layout toolbar items with each clientWidth\n _this.setState({ items: _this.initialItems, dropdownItems: [] });\n _this.setState(_this.classifyToolbarItems());\n }, 200);\n eventEmitter.listen('openPopup', this.openPopup);\n };\n Toolbar.prototype.appendTooltipToRoot = function () {\n var tooltip = \"<div class=\\\"\" + cls('tooltip') + \"\\\" style=\\\"display:none\\\">\\n <div class=\\\"arrow\\\"></div>\\n <span class=\\\"text\\\"></span>\\n </div>\";\n this.tooltipRef.current = createElementWith(tooltip, this.refs.el);\n };\n Toolbar.prototype.hiddenScrollSync = function () {\n return this.props.editorType === 'wysiwyg' || this.props.previewStyle === 'tab';\n };\n Toolbar.prototype.movePrevItemToDropdownToolbar = function (itemIndex, items, group, dropdownGroup) {\n var moveItem = function (targetGroup) {\n var item = targetGroup.pop();\n if (item) {\n dropdownGroup.push(item);\n }\n };\n if (itemIndex > 1) {\n moveItem(group);\n }\n else {\n var prevGroup = last$1(items);\n if (prevGroup) {\n moveItem(prevGroup);\n }\n }\n };\n Toolbar.prototype.classifyToolbarItems = function () {\n var _this = this;\n var totalWidth = 0;\n var clientWidth = this.refs.el.clientWidth;\n var divider = this.refs.el.querySelector(\".\" + cls('toolbar-divider'));\n var dividerWidth = divider ? getOuterWidth(divider) : 0;\n var items = [];\n var dropdownItems = [];\n var moved = false;\n this.initialItems.forEach(function (initialGroup, groupIndex) {\n var group = [];\n var dropdownGroup = [];\n initialGroup.forEach(function (item, itemIndex) {\n if (!item.hidden) {\n totalWidth += _this.itemWidthMap[item.name];\n if (totalWidth > clientWidth - INLINE_PADDING) {\n // should move the prev item to dropdown toolbar for placing the more button\n if (!moved) {\n _this.movePrevItemToDropdownToolbar(itemIndex, items, group, dropdownGroup);\n moved = true;\n }\n dropdownGroup.push(item);\n }\n else {\n group.push(item);\n }\n }\n });\n if (group.length) {\n setGroupState(group);\n items.push(group);\n }\n if (dropdownGroup.length) {\n setGroupState(dropdownGroup);\n dropdownItems.push(dropdownGroup);\n }\n // add divider width\n if (groupIndex < _this.state.items.length - 1) {\n totalWidth += dividerWidth;\n }\n });\n return { items: items, dropdownItems: dropdownItems };\n };\n Toolbar.prototype.mounted = function () {\n if (this.props.previewStyle === 'tab') {\n this.props.eventEmitter.emit('changePreviewTabWrite', true);\n }\n // classify toolbar and dropdown toolbar after DOM has been rendered\n this.setState(this.classifyToolbarItems());\n this.appendTooltipToRoot();\n this.resizeObserver.observe(this.refs.el);\n };\n Toolbar.prototype.updated = function (prevProps) {\n var _a = this.props, editorType = _a.editorType, previewStyle = _a.previewStyle, eventEmitter = _a.eventEmitter;\n var changedStyle = previewStyle !== prevProps.previewStyle;\n var changedType = editorType !== prevProps.editorType;\n if (changedStyle || changedType) {\n // show or hide scrollSync button\n toggleScrollSync(this.initialItems, this.hiddenScrollSync());\n var newState = this.classifyToolbarItems();\n if (changedStyle || (previewStyle === 'tab' && editorType === 'markdown')) {\n eventEmitter.emit('changePreviewTabWrite');\n newState.activeTab = 'write';\n }\n this.setState(newState);\n }\n };\n Toolbar.prototype.beforeDestroy = function () {\n window.removeEventListener('resize', this.handleResize);\n this.resizeObserver.disconnect();\n removeNode$1(this.tooltipRef.current);\n };\n Toolbar.prototype.render = function () {\n var _this = this;\n var _a = this.props, previewStyle = _a.previewStyle, eventEmitter = _a.eventEmitter, editorType = _a.editorType;\n var _b = this.state, popupInfo = _b.popupInfo, showPopup = _b.showPopup, activeTab = _b.activeTab, items = _b.items, dropdownItems = _b.dropdownItems;\n var props = {\n eventEmitter: eventEmitter,\n tooltipRef: this.tooltipRef,\n disabled: editorType === 'markdown' && previewStyle === 'tab' && activeTab === 'preview',\n execCommand: this.execCommand,\n setPopupInfo: this.setPopupInfo,\n };\n var toolbarStyle = previewStyle === 'tab' ? { borderTopLeftRadius: 0 } : null;\n return html(templateObject_2$2 || (templateObject_2$2 = __makeTemplateObject([\"\\n <div class=\\\"\", \"\\\">\\n <div\\n class=\\\"\", \"\\\"\\n style=\\\"display: \", \"\\\"\\n >\\n <\", \" tabs=\", \" activeTab=\", \" onClick=\", \" />\\n </div>\\n <div\\n class=\\\"\", \"\\\"\\n ref=\", \"\\n style=\", \"\\n >\\n \", \"\\n <\", \"\\n item=\", \"\\n items=\", \"\\n ...\", \"\\n />\\n </div>\\n <\", \"\\n info=\", \"\\n show=\", \"\\n eventEmitter=\", \"\\n hidePopup=\", \"\\n execCommand=\", \"\\n />\\n </div>\\n \"], [\"\\n <div class=\\\"\", \"\\\">\\n <div\\n class=\\\"\", \"\\\"\\n style=\\\"display: \",\n \"\\\"\\n >\\n <\", \" tabs=\", \" activeTab=\", \" onClick=\", \" />\\n </div>\\n <div\\n class=\\\"\", \"\\\"\\n ref=\", \"\\n style=\", \"\\n >\\n \",\n \"\\n <\", \"\\n item=\", \"\\n items=\", \"\\n ...\", \"\\n />\\n </div>\\n <\", \"\\n info=\", \"\\n show=\", \"\\n eventEmitter=\", \"\\n hidePopup=\", \"\\n execCommand=\", \"\\n />\\n </div>\\n \"])), cls('toolbar'), cls('md-tab-container'), editorType === 'wysiwyg' || previewStyle === 'vertical'\n ? 'none'\n : 'block', Tabs, this.tabs, activeTab, this.toggleTab, cls('defaultUI-toolbar'), function (el) { return (_this.refs.el = el); }, toolbarStyle, items.map(function (group, index) {\n var _a;\n return html(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject([\"\\n <\", \"\\n group=\", \"\\n hiddenDivider=\", \"\\n setItemWidth=\", \"\\n ...\", \"\\n />\\n \"], [\"\\n <\", \"\\n group=\", \"\\n hiddenDivider=\", \"\\n setItemWidth=\", \"\\n ...\", \"\\n />\\n \"])), ToolbarGroup, group, index === items.length - 1 || ((_a = items[index + 1]) === null || _a === void 0 ? void 0 : _a.hidden), _this.setItemWidth, props);\n }), DropdownToolbarButton, createToolbarItemInfo('more'), dropdownItems, props, Popup, popupInfo, showPopup, eventEmitter, this.hidePopup, this.execCommand);\n };\n return Toolbar;\n}(Component));\nvar templateObject_1$3, templateObject_2$2;\n\nvar ContextMenu = /** @class */ (function (_super) {\n __extends$1(ContextMenu, _super);\n function ContextMenu(props) {\n var _this = _super.call(this, props) || this;\n _this.handleClickDocument = function (ev) {\n if (!closest(ev.target, \".\" + cls('context-menu'))) {\n _this.setState({ pos: null });\n }\n };\n _this.state = {\n pos: null,\n menuGroups: [],\n };\n _this.addEvent();\n return _this;\n }\n ContextMenu.prototype.addEvent = function () {\n var _this = this;\n this.props.eventEmitter.listen('contextmenu', function (_a) {\n var pos = _a.pos, menuGroups = _a.menuGroups;\n _this.setState({ pos: pos, menuGroups: menuGroups });\n });\n };\n ContextMenu.prototype.mounted = function () {\n document.addEventListener('click', this.handleClickDocument);\n };\n ContextMenu.prototype.beforeDestroy = function () {\n document.removeEventListener('click', this.handleClickDocument);\n };\n ContextMenu.prototype.getMenuGroupElements = function () {\n var _this = this;\n var _a = this.state, pos = _a.pos, menuGroups = _a.menuGroups;\n return pos\n ? menuGroups.reduce(function (acc, group) {\n var menuItem = [];\n group.forEach(function (_a) {\n var label = _a.label, _b = _a.className, className = _b === void 0 ? false : _b, disabled = _a.disabled, onClick = _a.onClick;\n var handleClick = function () {\n if (!disabled) {\n onClick();\n _this.setState({ pos: null });\n }\n };\n menuItem.push(html(templateObject_1$2 || (templateObject_1$2 = __makeTemplateObject([\"\\n <li\\n onClick=\", \"\\n class=\\\"menu-item\", \"\\\"\\n aria-role=\\\"menuitem\\\"\\n >\\n <span class=\\\"\", \"\\\">\", \"</span>\\n </li>\\n \"], [\"\\n <li\\n onClick=\", \"\\n class=\\\"menu-item\", \"\\\"\\n aria-role=\\\"menuitem\\\"\\n >\\n <span class=\\\"\", \"\\\">\", \"</span>\\n </li>\\n \"])), handleClick, disabled ? ' disabled' : '', className, label));\n });\n acc.push(html(templateObject_2$1 || (templateObject_2$1 = __makeTemplateObject([\"<ul class=\\\"menu-group\\\">\\n \", \"\\n </ul>\"], [\"<ul class=\\\"menu-group\\\">\\n \", \"\\n </ul>\"])), menuItem));\n return acc;\n }, [])\n : [];\n };\n ContextMenu.prototype.render = function () {\n var style = __assign$1({ display: this.state.pos ? 'block' : 'none' }, this.state.pos);\n return html(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"<div class=\\\"\", \"\\\" style=\", \" aria-role=\\\"menu\\\">\\n \", \"\\n </div>\"], [\"<div class=\\\"\", \"\\\" style=\", \" aria-role=\\\"menu\\\">\\n \", \"\\n </div>\"])), cls('context-menu'), style, this.getMenuGroupElements());\n };\n return ContextMenu;\n}(Component));\nvar templateObject_1$2, templateObject_2$1, templateObject_3;\n\nvar Layout = /** @class */ (function (_super) {\n __extends$1(Layout, _super);\n function Layout(props) {\n var _this = _super.call(this, props) || this;\n _this.changeMode = function (editorType) {\n if (editorType !== _this.state.editorType) {\n _this.setState({ editorType: editorType });\n }\n };\n _this.changePreviewStyle = function (previewStyle) {\n if (previewStyle !== _this.state.previewStyle) {\n _this.setState({ previewStyle: previewStyle });\n }\n };\n _this.hide = function () {\n _this.setState({ hide: true });\n };\n _this.show = function () {\n _this.setState({ hide: false });\n };\n var editorType = props.editorType, previewStyle = props.previewStyle;\n _this.state = {\n editorType: editorType,\n previewStyle: previewStyle,\n hide: false,\n };\n _this.addEvent();\n return _this;\n }\n Layout.prototype.mounted = function () {\n var _a = this.props.slots, wwEditor = _a.wwEditor, mdEditor = _a.mdEditor, mdPreview = _a.mdPreview;\n this.refs.wwContainer.appendChild(wwEditor);\n this.refs.mdContainer.insertAdjacentElement('afterbegin', mdEditor);\n this.refs.mdContainer.appendChild(mdPreview);\n };\n Layout.prototype.insertToolbarItem = function (indexList, item) {\n this.toolbar.insertToolbarItem(indexList, item);\n };\n Layout.prototype.removeToolbarItem = function (name) {\n this.toolbar.removeToolbarItem(name);\n };\n Layout.prototype.render = function () {\n var _this = this;\n var _a = this.props, eventEmitter = _a.eventEmitter, hideModeSwitch = _a.hideModeSwitch, toolbarItems = _a.toolbarItems, theme = _a.theme;\n var _b = this.state, hide = _b.hide, previewStyle = _b.previewStyle, editorType = _b.editorType;\n var displayClassName = hide ? ' hidden' : '';\n var editorTypeClassName = cls(editorType === 'markdown' ? 'md-mode' : 'ww-mode');\n var previewClassName = cls('md') + \"-\" + previewStyle + \"-style\";\n var themeClassName = cls([theme !== 'light', theme + \" \"]);\n return html(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"\\n <div\\n class=\\\"\", \"\", \"\", \"\\\"\\n ref=\", \"\\n >\\n <\", \"\\n ref=\", \"\\n eventEmitter=\", \"\\n previewStyle=\", \"\\n toolbarItems=\", \"\\n editorType=\", \"\\n />\\n <div\\n class=\\\"\", \" \", \"\\\"\\n ref=\", \"\\n >\\n <div class=\\\"\", \"\\\">\\n <div\\n class=\\\"\", \" \", \"\\\"\\n ref=\", \"\\n >\\n <div class=\\\"\", \"\\\"></div>\\n </div>\\n <div\\n class=\\\"\", \"\\\"\\n ref=\", \"\\n />\\n </div>\\n </div>\\n \", \"\\n <\", \" eventEmitter=\", \" />\\n </div>\\n \"], [\"\\n <div\\n class=\\\"\", \"\", \"\", \"\\\"\\n ref=\", \"\\n >\\n <\", \"\\n ref=\", \"\\n eventEmitter=\", \"\\n previewStyle=\", \"\\n toolbarItems=\", \"\\n editorType=\", \"\\n />\\n <div\\n class=\\\"\", \" \", \"\\\"\\n ref=\", \"\\n >\\n <div class=\\\"\", \"\\\">\\n <div\\n class=\\\"\", \" \", \"\\\"\\n ref=\", \"\\n >\\n <div class=\\\"\", \"\\\"></div>\\n </div>\\n <div\\n class=\\\"\", \"\\\"\\n ref=\", \"\\n />\\n </div>\\n </div>\\n \",\n \"\\n <\", \" eventEmitter=\", \" />\\n </div>\\n \"])), themeClassName, cls('defaultUI'), displayClassName, function (el) { return (_this.refs.el = el); }, Toolbar, function (toolbar) { return (_this.toolbar = toolbar); }, eventEmitter, previewStyle, toolbarItems, editorType, cls('main'), editorTypeClassName, function (el) { return (_this.refs.editorSection = el); }, cls('main-container'), cls('md-container'), previewClassName, function (el) { return (_this.refs.mdContainer = el); }, cls('md-splitter'), cls('ww-container'), function (el) { return (_this.refs.wwContainer = el); }, !hideModeSwitch && html(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject([\"<\", \" eventEmitter=\", \" editorType=\", \" />\"], [\"<\", \" eventEmitter=\", \" editorType=\", \" />\"])), Switch, eventEmitter, editorType), ContextMenu, eventEmitter);\n };\n Layout.prototype.addEvent = function () {\n var eventEmitter = this.props.eventEmitter;\n eventEmitter.listen('hide', this.hide);\n eventEmitter.listen('show', this.show);\n eventEmitter.listen('changeMode', this.changeMode);\n eventEmitter.listen('changePreviewStyle', this.changePreviewStyle);\n };\n return Layout;\n}(Component));\nvar templateObject_1$1, templateObject_2;\n\n/**\n * ToastUI Editor\n * @extends ToastUIEditorCore\n */\nvar ToastUIEditor = /** @class */ (function (_super) {\n __extends$1(ToastUIEditor, _super);\n function ToastUIEditor(options) {\n var _a;\n var _this = _super.call(this, options) || this;\n var layoutComp;\n var destroy = render(_this.options.el, html(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n <\", \"\\n ref=\", \"\\n eventEmitter=\", \"\\n slots=\", \"\\n hideModeSwitch=\", \"\\n toolbarItems=\", \"\\n previewStyle=\", \"\\n editorType=\", \"\\n theme=\", \"\\n />\\n \"], [\"\\n <\", \"\\n ref=\", \"\\n eventEmitter=\", \"\\n slots=\", \"\\n hideModeSwitch=\", \"\\n toolbarItems=\", \"\\n previewStyle=\", \"\\n editorType=\", \"\\n theme=\", \"\\n />\\n \"])), Layout, function (layout) { return (layoutComp = layout); }, _this.eventEmitter, _this.getEditorElements(), _this.options.hideModeSwitch, _this.options.toolbarItems, _this.options.previewStyle, _this.options.initialEditType, _this.options.theme));\n _this.setMinHeight(_this.options.minHeight);\n _this.setHeight(_this.options.height);\n _this.defaultUI = {\n insertToolbarItem: layoutComp.insertToolbarItem.bind(layoutComp),\n removeToolbarItem: layoutComp.removeToolbarItem.bind(layoutComp),\n destroy: destroy,\n };\n (_a = _this.pluginInfo.toolbarItems) === null || _a === void 0 ? void 0 : _a.forEach(function (toolbarItem) {\n var groupIndex = toolbarItem.groupIndex, itemIndex = toolbarItem.itemIndex, item = toolbarItem.item;\n _this.defaultUI.insertToolbarItem({ groupIndex: groupIndex, itemIndex: itemIndex }, item);\n });\n _this.eventEmitter.emit('loadUI', _this);\n return _this;\n }\n /**\n * Factory method for Editor\n * @param {object} options Option for initialize TUIEditor\n * @returns {object} ToastUIEditor or ToastUIEditorViewer\n */\n ToastUIEditor.factory = function (options) {\n return options.viewer ? new ToastUIEditorViewer(options) : new ToastUIEditor(options);\n };\n /**\n * add toolbar item\n * @param {Object} indexInfo group index and item index of the toolbar item\n * @param {string|Object} item toolbar item\n */\n ToastUIEditor.prototype.insertToolbarItem = function (indexInfo, item) {\n this.defaultUI.insertToolbarItem(indexInfo, item);\n };\n /**\n * Remove toolbar item\n * @param {string} itemName toolbar item name\n */\n ToastUIEditor.prototype.removeToolbarItem = function (itemName) {\n this.defaultUI.removeToolbarItem(itemName);\n };\n /**\n * Destroy TUIEditor from document\n */\n ToastUIEditor.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.defaultUI.destroy();\n };\n return ToastUIEditor;\n}(ToastUIEditorCore));\nvar templateObject_1;\n\n/**\n * @fileoverview I18N for English\n * @author NHN Cloud FE Development Lab <dl_javascript@nhn.com>\n */\nToastUIEditorCore.setLanguage(['en', 'en-US'], {\n Markdown: 'Markdown',\n WYSIWYG: 'WYSIWYG',\n Write: 'Write',\n Preview: 'Preview',\n Headings: 'Headings',\n Paragraph: 'Paragraph',\n Bold: 'Bold',\n Italic: 'Italic',\n Strike: 'Strike',\n Code: 'Inline code',\n Line: 'Line',\n Blockquote: 'Blockquote',\n 'Unordered list': 'Unordered list',\n 'Ordered list': 'Ordered list',\n Task: 'Task',\n Indent: 'Indent',\n Outdent: 'Outdent',\n 'Insert link': 'Insert link',\n 'Insert CodeBlock': 'Insert codeBlock',\n 'Insert table': 'Insert table',\n 'Insert image': 'Insert image',\n Heading: 'Heading',\n 'Image URL': 'Image URL',\n 'Select image file': 'Select image file',\n 'Choose a file': 'Choose a file',\n 'No file': 'No file',\n Description: 'Description',\n OK: 'OK',\n More: 'More',\n Cancel: 'Cancel',\n File: 'File',\n URL: 'URL',\n 'Link text': 'Link text',\n 'Add row to up': 'Add row to up',\n 'Add row to down': 'Add row to down',\n 'Add column to left': 'Add column to left',\n 'Add column to right': 'Add column to right',\n 'Remove row': 'Remove row',\n 'Remove column': 'Remove column',\n 'Align column to left': 'Align column to left',\n 'Align column to center': 'Align column to center',\n 'Align column to right': 'Align column to right',\n 'Remove table': 'Remove table',\n 'Would you like to paste as table?': 'Would you like to paste as table?',\n 'Text color': 'Text color',\n 'Auto scroll enabled': 'Auto scroll enabled',\n 'Auto scroll disabled': 'Auto scroll disabled',\n 'Choose language': 'Choose language',\n});\n\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/@toast-ui/editor/dist/esm/index.js?");
/***/ }),
/***/ "./node_modules/@toast-ui/editor/dist/toastui-editor-viewer.css":
/*!**********************************************************************!*\
!*** ./node_modules/@toast-ui/editor/dist/toastui-editor-viewer.css ***!
\**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../css-loader/dist/cjs.js??ref--7-oneOf-3-1!../../../postcss-loader/src??ref--7-oneOf-3-2!./toastui-editor-viewer.css */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/@toast-ui/editor/dist/toastui-editor-viewer.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"237baa89\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./node_modules/@toast-ui/editor/dist/toastui-editor-viewer.css?");
/***/ }),
/***/ "./node_modules/@toast-ui/editor/dist/toastui-editor-viewer.js":
/*!*********************************************************************!*\
!*** ./node_modules/@toast-ui/editor/dist/toastui-editor-viewer.js ***!
\*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/*!\n * @toast-ui/editor\n * @version 3.2.2 | Fri Feb 17 2023\n * @author NHN Cloud FE Development Lab <dl_javascript@nhn.com>\n * @license MIT\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory(__webpack_require__(/*! prosemirror-inputrules */ \"./node_modules/prosemirror-inputrules/dist/index.js\"), __webpack_require__(/*! prosemirror-keymap */ \"./node_modules/prosemirror-keymap/dist/index.js\"), __webpack_require__(/*! prosemirror-model */ \"./node_modules/prosemirror-model/dist/index.js\"), __webpack_require__(/*! prosemirror-state */ \"./node_modules/prosemirror-state/dist/index.js\"), __webpack_require__(/*! prosemirror-view */ \"./node_modules/prosemirror-view/dist/index.js\"));\n\telse {}\n})(self, function(__WEBPACK_EXTERNAL_MODULE__479__, __WEBPACK_EXTERNAL_MODULE__481__, __WEBPACK_EXTERNAL_MODULE__43__, __WEBPACK_EXTERNAL_MODULE__814__, __WEBPACK_EXTERNAL_MODULE__311__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 368:\n/***/ (function(module) {\n\n/*! @license DOMPurify 2.3.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.3/LICENSE */\n\n(function (global, factory) {\n true ? module.exports = factory() :\n undefined;\n}(this, function () { 'use strict';\n\n function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\n\n var _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n\n if (!construct) {\n construct = function construct(Func, args) {\n return new (Function.prototype.bind.apply(Func, [null].concat(_toConsumableArray(args))))();\n };\n }\n\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringMatch = unapply(String.prototype.match);\n var stringReplace = unapply(String.prototype.replace);\n var stringIndexOf = unapply(String.prototype.indexOf);\n var stringTrim = unapply(String.prototype.trim);\n\n var regExpTest = unapply(RegExp.prototype.test);\n\n var typeErrorCreate = unconstruct(TypeError);\n\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n }\n\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n }\n\n /* Add properties to a lookup table */\n function addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n }\n\n /* Shallow clone an object */\n function clone(object) {\n var newObject = create(null);\n\n var property = void 0;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n }\n\n /* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\n function lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n }\n\n var html = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n var svg = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'feimage', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n\n var mathMl = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n\n var text = freeze(['#text']);\n\n var html$1 = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\n\n var svg$1 = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n\n var mathMl$1 = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n var MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n var ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.3.3';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n Text = window.Text,\n Comment = window.Comment,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n\n\n var ElementPrototype = Element.prototype;\n\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML('') : '';\n\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n\n\n var documentMode = {};\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(html), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray$1(html$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml)));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with <html>... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n * `Node` is imported into the current `Document`. If this flag is not enabled the\n * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n * DOMPurify.\n *\n * This defaults to `true` starting DOMPurify 2.2.0. Note that setting it to `false`\n * might cause XSS from attacks hidden in closed shadowroots in case the browser\n * supports Declarative Shadow: DOM https://web.dev/declarative-shadow-dom/\n */\n var RETURN_DOM_IMPORT = true;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n\n /* Parsing of strict XHTML documents */\n var PARSER_MEDIA_TYPE = void 0;\n var SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n var transformCaseFunc = void 0;\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT !== false; // Default true\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? function (x) {\n return x;\n } : stringToLowerCase;\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(text)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n var ALL_SVG_TAGS = addToSet({}, svg);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n\n var ALL_MATHML_TAGS = addToSet({}, mathMl);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: HTML_NAMESPACE,\n tagName: 'template'\n };\n }\n\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erronously deleted from\n // HTML namespace.\n var commonSvgAndHTMLElements = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (commonSvgAndHTMLElements[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG or MathML). Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\n\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml') {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n var body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n var _isClobbered = function _isClobbered(elm) {\n if (elm instanceof Text || elm instanceof Comment) {\n return false;\n }\n\n if (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function') {\n return true;\n }\n\n return false;\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n var _isNode = function _isNode(object) {\n return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? object instanceof Node : object && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content = void 0;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check if tagname contains Unicode */\n if (stringMatch(currentNode.nodeName, /[\\u0080-\\uFFFF]/)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (!_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Mitigate a problem with templates inside select */\n if (tagName === 'select' && regExpTest(/<template/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n var parentNode = getParentNode(currentNode) || currentNode.parentNode;\n var childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n var childCount = childNodes.length;\n\n for (var i = childCount - 1; i >= 0; --i) {\n parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));\n }\n }\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n if ((tagName === 'noscript' || tagName === 'noembed') && regExpTest(/<\\/no(script|embed)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR$$1, ' ');\n content = stringReplace(content, ERB_EXPR$$1, ' ');\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$$1, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n return false;\n\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) ; else if (!value) ; else {\n return false;\n }\n\n return true;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr = void 0;\n var value = void 0;\n var lcName = void 0;\n var l = void 0;\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n var attributes = currentNode.attributes;\n\n /* Check if we have attributes; if not we might have a text node */\n\n if (!attributes) {\n return;\n }\n\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n\n value = stringTrim(attr.value);\n lcName = transformCaseFunc(name);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR$$1, ' ');\n value = stringReplace(value, ERB_EXPR$$1, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n var lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode = void 0;\n var shadowIterator = _createIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg) {\n var body = void 0;\n var importedNode = void 0;\n var currentNode = void 0;\n var oldNode = void 0;\n var returnNode = void 0;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n // eslint-disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'function') {\n throw typeErrorCreate('toString is not a function');\n } else {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n }\n\n /* Check we can run. Otherwise fall back or ignore */\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) ; else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : emptyHTML;\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n\n oldNode = currentNode;\n }\n\n oldNode = null;\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (RETURN_DOM_IMPORT) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$$1, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n var lcTag = transformCaseFunc(tag);\n var lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n }\n\n var purify = createDOMPurify();\n\n return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n\n\n/***/ }),\n\n/***/ 928:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/* eslint-disable complexity */\n/**\n * @fileoverview Returns the first index at which a given element can be found in the array.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isArray = __webpack_require__(322);\n\n/**\n * @module array\n */\n\n/**\n * Returns the first index at which a given element can be found in the array\n * from start index(default 0), or -1 if it is not present.\n * It compares searchElement to elements of the Array using strict equality\n * (the same method used by the ===, or triple-equals, operator).\n * @param {*} searchElement Element to locate in the array\n * @param {Array} array Array that will be traversed.\n * @param {number} startIndex Start index in array for searching (default 0)\n * @returns {number} the First index at which a given element, or -1 if it is not present\n * @memberof module:array\n * @example\n * // ES6\n * import inArray from 'tui-code-snippet/array/inArray';\n * \n * // CommonJS\n * const inArray = require('tui-code-snippet/array/inArray');\n *\n * const arr = ['one', 'two', 'three', 'four'];\n * const idx1 = inArray('one', arr, 3); // -1\n * const idx2 = inArray('one', arr); // 0\n */\nfunction inArray(searchElement, array, startIndex) {\n var i;\n var length;\n startIndex = startIndex || 0;\n\n if (!isArray(array)) {\n return -1;\n }\n\n if (Array.prototype.indexOf) {\n return Array.prototype.indexOf.call(array, searchElement, startIndex);\n }\n\n length = array.length;\n for (i = startIndex; startIndex >= 0 && i < length; i += 1) {\n if (array[i] === searchElement) {\n return i;\n }\n }\n\n return -1;\n}\n\nmodule.exports = inArray;\n\n\n/***/ }),\n\n/***/ 690:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Execute the provided callback once for each property of object(or element of array) which actually exist.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isArray = __webpack_require__(322);\nvar forEachArray = __webpack_require__(893);\nvar forEachOwnProperties = __webpack_require__(956);\n\n/**\n * @module collection\n */\n\n/**\n * Execute the provided callback once for each property of object(or element of array) which actually exist.\n * If the object is Array-like object(ex-arguments object), It needs to transform to Array.(see 'ex2' of example).\n * If the callback function returns false, the loop will be stopped.\n * Callback function(iteratee) is invoked with three arguments:\n * 1) The value of the property(or The value of the element)\n * 2) The name of the property(or The index of the element)\n * 3) The object being traversed\n * @param {Object} obj The object that will be traversed\n * @param {function} iteratee Callback function\n * @param {Object} [context] Context(this) of callback function\n * @memberof module:collection\n * @example\n * // ES6\n * import forEach from 'tui-code-snippet/collection/forEach'; \n * \n * // CommonJS\n * const forEach = require('tui-code-snippet/collection/forEach'); \n *\n * let sum = 0;\n *\n * forEach([1,2,3], function(value){\n * sum += value;\n * });\n * alert(sum); // 6\n *\n * // In case of Array-like object\n * const array = Array.prototype.slice.call(arrayLike); // change to array\n * forEach(array, function(value){\n * sum += value;\n * });\n */\nfunction forEach(obj, iteratee, context) {\n if (isArray(obj)) {\n forEachArray(obj, iteratee, context);\n } else {\n forEachOwnProperties(obj, iteratee, context);\n }\n}\n\nmodule.exports = forEach;\n\n\n/***/ }),\n\n/***/ 893:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Execute the provided callback once for each element present in the array(or Array-like object) in ascending order.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\n/**\n * Execute the provided callback once for each element present\n * in the array(or Array-like object) in ascending order.\n * If the callback function returns false, the loop will be stopped.\n * Callback function(iteratee) is invoked with three arguments:\n * 1) The value of the element\n * 2) The index of the element\n * 3) The array(or Array-like object) being traversed\n * @param {Array|Arguments|NodeList} arr The array(or Array-like object) that will be traversed\n * @param {function} iteratee Callback function\n * @param {Object} [context] Context(this) of callback function\n * @memberof module:collection\n * @example\n * // ES6\n * import forEachArray from 'tui-code-snippet/collection/forEachArray';\n * \n * // CommonJS\n * const forEachArray = require('tui-code-snippet/collection/forEachArray'); \n *\n * let sum = 0;\n *\n * forEachArray([1,2,3], function(value){\n * sum += value;\n * });\n * alert(sum); // 6\n */\nfunction forEachArray(arr, iteratee, context) {\n var index = 0;\n var len = arr.length;\n\n context = context || null;\n\n for (; index < len; index += 1) {\n if (iteratee.call(context, arr[index], index, arr) === false) {\n break;\n }\n }\n}\n\nmodule.exports = forEachArray;\n\n\n/***/ }),\n\n/***/ 956:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Execute the provided callback once for each property of object which actually exist.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\n/**\n * Execute the provided callback once for each property of object which actually exist.\n * If the callback function returns false, the loop will be stopped.\n * Callback function(iteratee) is invoked with three arguments:\n * 1) The value of the property\n * 2) The name of the property\n * 3) The object being traversed\n * @param {Object} obj The object that will be traversed\n * @param {function} iteratee Callback function\n * @param {Object} [context] Context(this) of callback function\n * @memberof module:collection\n * @example\n * // ES6\n * import forEachOwnProperties from 'tui-code-snippet/collection/forEachOwnProperties';\n * \n * // CommonJS\n * const forEachOwnProperties = require('tui-code-snippet/collection/forEachOwnProperties'); \n *\n * let sum = 0;\n *\n * forEachOwnProperties({a:1,b:2,c:3}, function(value){\n * sum += value;\n * });\n * alert(sum); // 6\n */\nfunction forEachOwnProperties(obj, iteratee, context) {\n var key;\n\n context = context || null;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (iteratee.call(context, obj[key], key, obj) === false) {\n break;\n }\n }\n }\n}\n\nmodule.exports = forEachOwnProperties;\n\n\n/***/ }),\n\n/***/ 990:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Transform the Array-like object to Array.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar forEachArray = __webpack_require__(893);\n\n/**\n * Transform the Array-like object to Array.\n * In low IE (below 8), Array.prototype.slice.call is not perfect. So, try-catch statement is used.\n * @param {*} arrayLike Array-like object\n * @returns {Array} Array\n * @memberof module:collection\n * @example\n * // ES6\n * import toArray from 'tui-code-snippet/collection/toArray'; \n * \n * // CommonJS\n * const toArray = require('tui-code-snippet/collection/toArray'); \n *\n * const arrayLike = {\n * 0: 'one',\n * 1: 'two',\n * 2: 'three',\n * 3: 'four',\n * length: 4\n * };\n * const result = toArray(arrayLike);\n *\n * alert(result instanceof Array); // true\n * alert(result); // one,two,three,four\n */\nfunction toArray(arrayLike) {\n var arr;\n try {\n arr = Array.prototype.slice.call(arrayLike);\n } catch (e) {\n arr = [];\n forEachArray(arrayLike, function(value) {\n arr.push(value);\n });\n }\n\n return arr;\n}\n\nmodule.exports = toArray;\n\n\n/***/ }),\n\n/***/ 755:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Get event collection for specific HTML element\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar EVENT_KEY = '_feEventKey';\n\n/**\n * Get event collection for specific HTML element\n * @param {HTMLElement} element - HTML element\n * @param {string} type - event type\n * @returns {array}\n * @private\n */\nfunction safeEvent(element, type) {\n var events = element[EVENT_KEY];\n var handlers;\n\n if (!events) {\n events = element[EVENT_KEY] = {};\n }\n\n handlers = events[type];\n if (!handlers) {\n handlers = events[type] = [];\n }\n\n return handlers;\n}\n\nmodule.exports = safeEvent;\n\n\n/***/ }),\n\n/***/ 349:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Unbind DOM events\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isString = __webpack_require__(758);\nvar forEach = __webpack_require__(690);\n\nvar safeEvent = __webpack_require__(755);\n\n/**\n * Unbind DOM events\n * If a handler function is not passed, remove all events of that type.\n * @param {HTMLElement} element - element to unbind events\n * @param {(string|object)} types - Space splitted events names or eventName:handler object\n * @param {function} [handler] - handler function\n * @memberof module:domEvent\n * @example\n * // Following the example of domEvent#on\n * \n * // Unbind one event from an element.\n * off(div, 'click', toggle);\n * \n * // Unbind multiple events with a same handler from multiple elements at once.\n * // Use event names splitted by a space.\n * off(element, 'mouseenter mouseleave', changeColor);\n * \n * // Unbind multiple events with different handlers from an element at once.\n * // Use an object which of key is an event name and value is a handler function.\n * off(div, {\n * keydown: highlight,\n * keyup: dehighlight\n * });\n * \n * // Unbind events without handlers.\n * off(div, 'drag');\n */\nfunction off(element, types, handler) {\n if (isString(types)) {\n forEach(types.split(/\\s+/g), function(type) {\n unbindEvent(element, type, handler);\n });\n\n return;\n }\n\n forEach(types, function(func, type) {\n unbindEvent(element, type, func);\n });\n}\n\n/**\n * Unbind DOM events\n * If a handler function is not passed, remove all events of that type.\n * @param {HTMLElement} element - element to unbind events\n * @param {string} type - events name\n * @param {function} [handler] - handler function\n * @private\n */\nfunction unbindEvent(element, type, handler) {\n var events = safeEvent(element, type);\n var index;\n\n if (!handler) {\n forEach(events, function(item) {\n removeHandler(element, type, item.wrappedHandler);\n });\n events.splice(0, events.length);\n } else {\n forEach(events, function(item, idx) {\n if (handler === item.handler) {\n removeHandler(element, type, item.wrappedHandler);\n index = idx;\n\n return false;\n }\n\n return true;\n });\n events.splice(index, 1);\n }\n}\n\n/**\n * Remove an event handler\n * @param {HTMLElement} element - An element to remove an event\n * @param {string} type - event type\n * @param {function} handler - event handler\n * @private\n */\nfunction removeHandler(element, type, handler) {\n if ('removeEventListener' in element) {\n element.removeEventListener(type, handler);\n } else if ('detachEvent' in element) {\n element.detachEvent('on' + type, handler);\n }\n}\n\nmodule.exports = off;\n\n\n/***/ }),\n\n/***/ 348:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Bind DOM events\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isString = __webpack_require__(758);\nvar forEach = __webpack_require__(690);\n\nvar safeEvent = __webpack_require__(755);\n\n/**\n * Bind DOM events.\n * @param {HTMLElement} element - element to bind events\n * @param {(string|object)} types - Space splitted events names or eventName:handler object\n * @param {(function|object)} handler - handler function or context for handler method\n * @param {object} [context] context - context for handler method.\n * @memberof module:domEvent\n * @example\n * const div = document.querySelector('div');\n * \n * // Bind one event to an element.\n * on(div, 'click', toggle);\n * \n * // Bind multiple events with a same handler to multiple elements at once.\n * // Use event names splitted by a space.\n * on(div, 'mouseenter mouseleave', changeColor);\n * \n * // Bind multiple events with different handlers to an element at once.\n * // Use an object which of key is an event name and value is a handler function.\n * on(div, {\n * keydown: highlight,\n * keyup: dehighlight\n * });\n * \n * // Set a context for handler method.\n * const name = 'global';\n * const repository = {name: 'CodeSnippet'};\n * on(div, 'drag', function() {\n * console.log(this.name);\n * }, repository);\n * // Result when you drag a div: \"CodeSnippet\"\n */\nfunction on(element, types, handler, context) {\n if (isString(types)) {\n forEach(types.split(/\\s+/g), function(type) {\n bindEvent(element, type, handler, context);\n });\n\n return;\n }\n\n forEach(types, function(func, type) {\n bindEvent(element, type, func, handler);\n });\n}\n\n/**\n * Bind DOM events\n * @param {HTMLElement} element - element to bind events\n * @param {string} type - events name\n * @param {function} handler - handler function or context for handler method\n * @param {object} [context] context - context for handler method.\n * @private\n */\nfunction bindEvent(element, type, handler, context) {\n /**\n * Event handler\n * @param {Event} e - event object\n */\n function eventHandler(e) {\n handler.call(context || element, e || window.event);\n }\n\n if ('addEventListener' in element) {\n element.addEventListener(type, eventHandler);\n } else if ('attachEvent' in element) {\n element.attachEvent('on' + type, eventHandler);\n }\n memorizeHandler(element, type, handler, eventHandler);\n}\n\n/**\n * Memorize DOM event handler for unbinding.\n * @param {HTMLElement} element - element to bind events\n * @param {string} type - events name\n * @param {function} handler - handler function that user passed at on() use\n * @param {function} wrappedHandler - handler function that wrapped by domevent for implementing some features\n * @private\n */\nfunction memorizeHandler(element, type, handler, wrappedHandler) {\n var events = safeEvent(element, type);\n var existInEvents = false;\n\n forEach(events, function(obj) {\n if (obj.handler === handler) {\n existInEvents = true;\n\n return false;\n }\n\n return true;\n });\n\n if (!existInEvents) {\n events.push({\n handler: handler,\n wrappedHandler: wrappedHandler\n });\n }\n}\n\nmodule.exports = on;\n\n\n/***/ }),\n\n/***/ 24:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Set className value\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isArray = __webpack_require__(322);\nvar isUndefined = __webpack_require__(929);\n\n/**\n * Set className value\n * @param {(HTMLElement|SVGElement)} element - target element\n * @param {(string|string[])} cssClass - class names\n * @private\n */\nfunction setClassName(element, cssClass) {\n cssClass = isArray(cssClass) ? cssClass.join(' ') : cssClass;\n\n cssClass = cssClass.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n if (isUndefined(element.className.baseVal)) {\n element.className = cssClass;\n\n return;\n }\n\n element.className.baseVal = cssClass;\n}\n\nmodule.exports = setClassName;\n\n\n/***/ }),\n\n/***/ 204:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Add css class to element\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar forEach = __webpack_require__(690);\nvar inArray = __webpack_require__(928);\nvar getClass = __webpack_require__(902);\nvar setClassName = __webpack_require__(24);\n\n/**\n * domUtil module\n * @module domUtil\n */\n\n/**\n * Add css class to element\n * @param {(HTMLElement|SVGElement)} element - target element\n * @param {...string} cssClass - css classes to add\n * @memberof module:domUtil\n */\nfunction addClass(element) {\n var cssClass = Array.prototype.slice.call(arguments, 1);\n var classList = element.classList;\n var newClass = [];\n var origin;\n\n if (classList) {\n forEach(cssClass, function(name) {\n element.classList.add(name);\n });\n\n return;\n }\n\n origin = getClass(element);\n\n if (origin) {\n cssClass = [].concat(origin.split(/\\s+/), cssClass);\n }\n\n forEach(cssClass, function(cls) {\n if (inArray(cls, newClass) < 0) {\n newClass.push(cls);\n }\n });\n\n setClassName(element, newClass);\n}\n\nmodule.exports = addClass;\n\n\n/***/ }),\n\n/***/ 522:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Setting element style\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isString = __webpack_require__(758);\nvar forEach = __webpack_require__(690);\n\n/**\n * Setting element style\n * @param {(HTMLElement|SVGElement)} element - element to setting style\n * @param {(string|object)} key - style prop name or {prop: value} pair object\n * @param {string} [value] - style value\n * @memberof module:domUtil\n */\nfunction css(element, key, value) {\n var style = element.style;\n\n if (isString(key)) {\n style[key] = value;\n\n return;\n }\n\n forEach(key, function(v, k) {\n style[k] = v;\n });\n}\n\nmodule.exports = css;\n\n\n/***/ }),\n\n/***/ 902:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Get HTML element's design classes.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isUndefined = __webpack_require__(929);\n\n/**\n * Get HTML element's design classes.\n * @param {(HTMLElement|SVGElement)} element target element\n * @returns {string} element css class name\n * @memberof module:domUtil\n */\nfunction getClass(element) {\n if (!element || !element.className) {\n return '';\n }\n\n if (isUndefined(element.className.baseVal)) {\n return element.className;\n }\n\n return element.className.baseVal;\n}\n\nmodule.exports = getClass;\n\n\n/***/ }),\n\n/***/ 714:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check element has specific css class\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar inArray = __webpack_require__(928);\nvar getClass = __webpack_require__(902);\n\n/**\n * Check element has specific css class\n * @param {(HTMLElement|SVGElement)} element - target element\n * @param {string} cssClass - css class\n * @returns {boolean}\n * @memberof module:domUtil\n */\nfunction hasClass(element, cssClass) {\n var origin;\n\n if (element.classList) {\n return element.classList.contains(cssClass);\n }\n\n origin = getClass(element).split(/\\s+/);\n\n return inArray(cssClass, origin) > -1;\n}\n\nmodule.exports = hasClass;\n\n\n/***/ }),\n\n/***/ 471:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check element match selector\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar inArray = __webpack_require__(928);\nvar toArray = __webpack_require__(990);\n\nvar elProto = Element.prototype;\nvar matchSelector = elProto.matches ||\n elProto.webkitMatchesSelector ||\n elProto.mozMatchesSelector ||\n elProto.msMatchesSelector ||\n function(selector) {\n var doc = this.document || this.ownerDocument;\n\n return inArray(this, toArray(doc.querySelectorAll(selector))) > -1;\n };\n\n/**\n * Check element match selector\n * @param {HTMLElement} element - element to check\n * @param {string} selector - selector to check\n * @returns {boolean} is selector matched to element?\n * @memberof module:domUtil\n */\nfunction matches(element, selector) {\n return matchSelector.call(element, selector);\n}\n\nmodule.exports = matches;\n\n\n/***/ }),\n\n/***/ 462:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Remove css class from element\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar forEachArray = __webpack_require__(893);\nvar inArray = __webpack_require__(928);\nvar getClass = __webpack_require__(902);\nvar setClassName = __webpack_require__(24);\n\n/**\n * Remove css class from element\n * @param {(HTMLElement|SVGElement)} element - target element\n * @param {...string} cssClass - css classes to remove\n * @memberof module:domUtil\n */\nfunction removeClass(element) {\n var cssClass = Array.prototype.slice.call(arguments, 1);\n var classList = element.classList;\n var origin, newClass;\n\n if (classList) {\n forEachArray(cssClass, function(name) {\n classList.remove(name);\n });\n\n return;\n }\n\n origin = getClass(element).split(/\\s+/);\n newClass = [];\n forEachArray(origin, function(name) {\n if (inArray(name, cssClass) < 0) {\n newClass.push(name);\n }\n });\n\n setClassName(element, newClass);\n}\n\nmodule.exports = removeClass;\n\n\n/***/ }),\n\n/***/ 969:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Extend the target object from other objects.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\n/**\n * @module object\n */\n\n/**\n * Extend the target object from other objects.\n * @param {object} target - Object that will be extended\n * @param {...object} objects - Objects as sources\n * @returns {object} Extended object\n * @memberof module:object\n */\nfunction extend(target, objects) { // eslint-disable-line no-unused-vars\n var hasOwnProp = Object.prototype.hasOwnProperty;\n var source, prop, i, len;\n\n for (i = 1, len = arguments.length; i < len; i += 1) {\n source = arguments[i];\n for (prop in source) {\n if (hasOwnProp.call(source, prop)) {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\n\nmodule.exports = extend;\n\n\n/***/ }),\n\n/***/ 254:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Request image ping.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar forEachOwnProperties = __webpack_require__(956);\n\n/**\n * @module request\n */\n\n/**\n * Request image ping.\n * @param {String} url url for ping request\n * @param {Object} trackingInfo infos for make query string\n * @returns {HTMLElement}\n * @memberof module:request\n * @example\n * // ES6\n * import imagePing from 'tui-code-snippet/request/imagePing';\n * \n * // CommonJS\n * const imagePing = require('tui-code-snippet/request/imagePing');\n *\n * imagePing('https://www.google-analytics.com/collect', {\n * v: 1,\n * t: 'event',\n * tid: 'trackingid',\n * cid: 'cid',\n * dp: 'dp',\n * dh: 'dh'\n * });\n */\nfunction imagePing(url, trackingInfo) {\n var trackingElement = document.createElement('img');\n var queryString = '';\n forEachOwnProperties(trackingInfo, function(value, key) {\n queryString += '&' + key + '=' + value;\n });\n queryString = queryString.substring(1);\n\n trackingElement.src = url + '?' + queryString;\n\n trackingElement.style.display = 'none';\n document.body.appendChild(trackingElement);\n document.body.removeChild(trackingElement);\n\n return trackingElement;\n}\n\nmodule.exports = imagePing;\n\n\n/***/ }),\n\n/***/ 391:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Send hostname on DOMContentLoaded.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isUndefined = __webpack_require__(929);\nvar imagePing = __webpack_require__(254);\n\nvar ms7days = 7 * 24 * 60 * 60 * 1000;\n\n/**\n * Check if the date has passed 7 days\n * @param {number} date - milliseconds\n * @returns {boolean}\n * @private\n */\nfunction isExpired(date) {\n var now = new Date().getTime();\n\n return now - date > ms7days;\n}\n\n/**\n * Send hostname on DOMContentLoaded.\n * To prevent hostname set tui.usageStatistics to false.\n * @param {string} appName - application name\n * @param {string} trackingId - GA tracking ID\n * @ignore\n */\nfunction sendHostname(appName, trackingId) {\n var url = 'https://www.google-analytics.com/collect';\n var hostname = location.hostname;\n var hitType = 'event';\n var eventCategory = 'use';\n var applicationKeyForStorage = 'TOAST UI ' + appName + ' for ' + hostname + ': Statistics';\n var date = window.localStorage.getItem(applicationKeyForStorage);\n\n // skip if the flag is defined and is set to false explicitly\n if (!isUndefined(window.tui) && window.tui.usageStatistics === false) {\n return;\n }\n\n // skip if not pass seven days old\n if (date && !isExpired(date)) {\n return;\n }\n\n window.localStorage.setItem(applicationKeyForStorage, new Date().getTime());\n\n setTimeout(function() {\n if (document.readyState === 'interactive' || document.readyState === 'complete') {\n imagePing(url, {\n v: 1,\n t: hitType,\n tid: trackingId,\n cid: hostname,\n dp: hostname,\n dh: appName,\n el: appName,\n ec: eventCategory\n });\n }\n }, 1000);\n}\n\nmodule.exports = sendHostname;\n\n\n/***/ }),\n\n/***/ 322:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is an instance of Array or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\n/**\n * Check whether the given variable is an instance of Array or not.\n * If the given variable is an instance of Array, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is array instance?\n * @memberof module:type\n */\nfunction isArray(obj) {\n return obj instanceof Array;\n}\n\nmodule.exports = isArray;\n\n\n/***/ }),\n\n/***/ 65:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is existing or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isUndefined = __webpack_require__(929);\nvar isNull = __webpack_require__(934);\n\n/**\n * Check whether the given variable is existing or not.\n * If the given variable is not null and not undefined, returns true.\n * @param {*} param - Target for checking\n * @returns {boolean} Is existy?\n * @memberof module:type\n * @example\n * // ES6\n * import isExisty from 'tui-code-snippet/type/isExisty');\n * \n * // CommonJS\n * const isExisty = require('tui-code-snippet/type/isExisty');\n *\n * isExisty(''); //true\n * isExisty(0); //true\n * isExisty([]); //true\n * isExisty({}); //true\n * isExisty(null); //false\n * isExisty(undefined); //false\n*/\nfunction isExisty(param) {\n return !isUndefined(param) && !isNull(param);\n}\n\nmodule.exports = isExisty;\n\n\n/***/ }),\n\n/***/ 404:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is falsy or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isTruthy = __webpack_require__(790);\n\n/**\n * Check whether the given variable is falsy or not.\n * If the given variable is null or undefined or false, returns true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is falsy?\n * @memberof module:type\n */\nfunction isFalsy(obj) {\n return !isTruthy(obj);\n}\n\nmodule.exports = isFalsy;\n\n\n/***/ }),\n\n/***/ 294:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is a function or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\n/**\n * Check whether the given variable is a function or not.\n * If the given variable is a function, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is function?\n * @memberof module:type\n */\nfunction isFunction(obj) {\n return obj instanceof Function;\n}\n\nmodule.exports = isFunction;\n\n\n/***/ }),\n\n/***/ 934:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is null or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\n/**\n * Check whether the given variable is null or not.\n * If the given variable(arguments[0]) is null, returns true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is null?\n * @memberof module:type\n */\nfunction isNull(obj) {\n return obj === null;\n}\n\nmodule.exports = isNull;\n\n\n/***/ }),\n\n/***/ 758:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is a string or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\n/**\n * Check whether the given variable is a string or not.\n * If the given variable is a string, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is string?\n * @memberof module:type\n */\nfunction isString(obj) {\n return typeof obj === 'string' || obj instanceof String;\n}\n\nmodule.exports = isString;\n\n\n/***/ }),\n\n/***/ 790:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is truthy or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isExisty = __webpack_require__(65);\n\n/**\n * Check whether the given variable is truthy or not.\n * If the given variable is not null or not undefined or not false, returns true.\n * (It regards 0 as true)\n * @param {*} obj - Target for checking\n * @returns {boolean} Is truthy?\n * @memberof module:type\n */\nfunction isTruthy(obj) {\n return isExisty(obj) && obj !== false;\n}\n\nmodule.exports = isTruthy;\n\n\n/***/ }),\n\n/***/ 929:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is undefined or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\n/**\n * Check whether the given variable is undefined or not.\n * If the given variable is undefined, returns true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is undefined?\n * @memberof module:type\n */\nfunction isUndefined(obj) {\n return obj === undefined; // eslint-disable-line no-undefined\n}\n\nmodule.exports = isUndefined;\n\n\n/***/ }),\n\n/***/ 479:\n/***/ (function(module) {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__479__;\n\n/***/ }),\n\n/***/ 481:\n/***/ (function(module) {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__481__;\n\n/***/ }),\n\n/***/ 43:\n/***/ (function(module) {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__43__;\n\n/***/ }),\n\n/***/ 814:\n/***/ (function(module) {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__814__;\n\n/***/ }),\n\n/***/ 311:\n/***/ (function(module) {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__311__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/global */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.g = (function() {\n/******/ \t\t\tif (typeof globalThis === 'object') return globalThis;\n/******/ \t\t\ttry {\n/******/ \t\t\t\treturn this || new Function('return this')();\n/******/ \t\t\t} catch (e) {\n/******/ \t\t\t\tif (typeof window === 'object') return window;\n/******/ \t\t\t}\n/******/ \t\t})();\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n!function() {\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ indexViewer; }\n});\n\n;// CONCATENATED MODULE: ../../node_modules/tslib/tslib.es6.js\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar tslib_es6_assign = function() {\r\n tslib_es6_assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return tslib_es6_assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nfunction __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nfunction __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\n;// CONCATENATED MODULE: ../../libs/toastmark/dist/esm/index.js\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */\nvar esm_extendStatics = function (d, b) {\n esm_extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b)\n if (Object.prototype.hasOwnProperty.call(b, p))\n d[p] = b[p]; };\n return esm_extendStatics(d, b);\n};\nfunction esm_extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n esm_extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nvar esm_assign = function () {\n esm_assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return esm_assign.apply(this, arguments);\n};\nfunction esm_spreadArray(to, from, pack) {\n if (pack || arguments.length === 2)\n for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar)\n ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};\nvar encodeCache = {};\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) {\n return cache;\n }\n cache = encodeCache[exclude] = [];\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n }\n else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n return cache;\n}\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode$1(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache, result = '';\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode$1.defaultChars;\n }\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n cache = getEncodeCache(exclude);\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n if (code < 128) {\n result += cache[code];\n continue;\n }\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n result += encodeURIComponent(string[i]);\n }\n return result;\n}\nencode$1.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode$1.componentChars = \"-_.!~*'()\";\nvar encode_1 = encode$1;\nvar lib = {};\nvar decode = {};\nvar Aacute$1 = \"Á\";\nvar aacute$1 = \"á\";\nvar Abreve = \"Ă\";\nvar abreve = \"ă\";\nvar ac = \"∾\";\nvar acd = \"∿\";\nvar acE = \"∾̳\";\nvar Acirc$1 = \"Â\";\nvar acirc$1 = \"â\";\nvar acute$1 = \"´\";\nvar Acy = \"А\";\nvar acy = \"а\";\nvar AElig$1 = \"Æ\";\nvar aelig$1 = \"æ\";\nvar af = \"\";\nvar Afr = \"𝔄\";\nvar afr = \"𝔞\";\nvar Agrave$1 = \"À\";\nvar agrave$1 = \"à\";\nvar alefsym = \"ℵ\";\nvar aleph = \"ℵ\";\nvar Alpha = \"Α\";\nvar alpha = \"α\";\nvar Amacr = \"Ā\";\nvar amacr = \"ā\";\nvar amalg = \"⨿\";\nvar amp$2 = \"&\";\nvar AMP$1 = \"&\";\nvar andand = \"⩕\";\nvar And = \"⩓\";\nvar and = \"∧\";\nvar andd = \"⩜\";\nvar andslope = \"⩘\";\nvar andv = \"⩚\";\nvar ang = \"∠\";\nvar ange = \"⦤\";\nvar angle = \"∠\";\nvar angmsdaa = \"⦨\";\nvar angmsdab = \"⦩\";\nvar angmsdac = \"⦪\";\nvar angmsdad = \"⦫\";\nvar angmsdae = \"⦬\";\nvar angmsdaf = \"⦭\";\nvar angmsdag = \"⦮\";\nvar angmsdah = \"⦯\";\nvar angmsd = \"∡\";\nvar angrt = \"∟\";\nvar angrtvb = \"⊾\";\nvar angrtvbd = \"⦝\";\nvar angsph = \"∢\";\nvar angst = \"Å\";\nvar angzarr = \"⍼\";\nvar Aogon = \"Ą\";\nvar aogon = \"ą\";\nvar Aopf = \"𝔸\";\nvar aopf = \"𝕒\";\nvar apacir = \"⩯\";\nvar ap = \"≈\";\nvar apE = \"⩰\";\nvar ape = \"≊\";\nvar apid = \"≋\";\nvar apos$1 = \"'\";\nvar ApplyFunction = \"\";\nvar approx = \"≈\";\nvar approxeq = \"≊\";\nvar Aring$1 = \"Å\";\nvar aring$1 = \"å\";\nvar Ascr = \"𝒜\";\nvar ascr = \"𝒶\";\nvar Assign = \"≔\";\nvar ast = \"*\";\nvar asymp = \"≈\";\nvar asympeq = \"≍\";\nvar Atilde$1 = \"Ã\";\nvar atilde$1 = \"ã\";\nvar Auml$1 = \"Ä\";\nvar auml$1 = \"ä\";\nvar awconint = \"∳\";\nvar awint = \"⨑\";\nvar backcong = \"≌\";\nvar backepsilon = \"϶\";\nvar backprime = \"\";\nvar backsim = \"∽\";\nvar backsimeq = \"⋍\";\nvar Backslash = \"\";\nvar Barv = \"⫧\";\nvar barvee = \"⊽\";\nvar barwed = \"⌅\";\nvar Barwed = \"⌆\";\nvar barwedge = \"⌅\";\nvar bbrk = \"⎵\";\nvar bbrktbrk = \"⎶\";\nvar bcong = \"≌\";\nvar Bcy = \"Б\";\nvar bcy = \"б\";\nvar bdquo = \"„\";\nvar becaus = \"∵\";\nvar because = \"∵\";\nvar Because = \"∵\";\nvar bemptyv = \"⦰\";\nvar bepsi = \"϶\";\nvar bernou = \"\";\nvar Bernoullis = \"\";\nvar Beta = \"Β\";\nvar beta = \"β\";\nvar beth = \"ℶ\";\nvar between = \"≬\";\nvar Bfr = \"𝔅\";\nvar bfr = \"𝔟\";\nvar bigcap = \"⋂\";\nvar bigcirc = \"◯\";\nvar bigcup = \"\";\nvar bigodot = \"⨀\";\nvar bigoplus = \"⨁\";\nvar bigotimes = \"⨂\";\nvar bigsqcup = \"⨆\";\nvar bigstar = \"★\";\nvar bigtriangledown = \"▽\";\nvar bigtriangleup = \"△\";\nvar biguplus = \"⨄\";\nvar bigvee = \"\";\nvar bigwedge = \"⋀\";\nvar bkarow = \"⤍\";\nvar blacklozenge = \"⧫\";\nvar blacksquare = \"▪\";\nvar blacktriangle = \"▴\";\nvar blacktriangledown = \"▾\";\nvar blacktriangleleft = \"◂\";\nvar blacktriangleright = \"▸\";\nvar blank = \"␣\";\nvar blk12 = \"▒\";\nvar blk14 = \"░\";\nvar blk34 = \"▓\";\nvar block = \"█\";\nvar bne = \"=⃥\";\nvar bnequiv = \"≡⃥\";\nvar bNot = \"⫭\";\nvar bnot = \"⌐\";\nvar Bopf = \"𝔹\";\nvar bopf = \"𝕓\";\nvar bot = \"⊥\";\nvar bottom = \"⊥\";\nvar bowtie = \"⋈\";\nvar boxbox = \"⧉\";\nvar boxdl = \"┐\";\nvar boxdL = \"╕\";\nvar boxDl = \"╖\";\nvar boxDL = \"╗\";\nvar boxdr = \"┌\";\nvar boxdR = \"╒\";\nvar boxDr = \"╓\";\nvar boxDR = \"╔\";\nvar boxh = \"─\";\nvar boxH = \"═\";\nvar boxhd = \"┬\";\nvar boxHd = \"╤\";\nvar boxhD = \"╥\";\nvar boxHD = \"╦\";\nvar boxhu = \"┴\";\nvar boxHu = \"╧\";\nvar boxhU = \"╨\";\nvar boxHU = \"╩\";\nvar boxminus = \"⊟\";\nvar boxplus = \"⊞\";\nvar boxtimes = \"⊠\";\nvar boxul = \"┘\";\nvar boxuL = \"╛\";\nvar boxUl = \"╜\";\nvar boxUL = \"╝\";\nvar boxur = \"└\";\nvar boxuR = \"╘\";\nvar boxUr = \"╙\";\nvar boxUR = \"╚\";\nvar boxv = \"│\";\nvar boxV = \"║\";\nvar boxvh = \"┼\";\nvar boxvH = \"╪\";\nvar boxVh = \"╫\";\nvar boxVH = \"╬\";\nvar boxvl = \"┤\";\nvar boxvL = \"╡\";\nvar boxVl = \"╢\";\nvar boxVL = \"╣\";\nvar boxvr = \"├\";\nvar boxvR = \"╞\";\nvar boxVr = \"╟\";\nvar boxVR = \"╠\";\nvar bprime = \"\";\nvar breve = \"˘\";\nvar Breve = \"˘\";\nvar brvbar$1 = \"¦\";\nvar bscr = \"𝒷\";\nvar Bscr = \"\";\nvar bsemi = \"⁏\";\nvar bsim = \"∽\";\nvar bsime = \"⋍\";\nvar bsolb = \"⧅\";\nvar bsol = \"\\\\\";\nvar bsolhsub = \"⟈\";\nvar bull = \"•\";\nvar bullet = \"•\";\nvar bump = \"≎\";\nvar bumpE = \"⪮\";\nvar bumpe = \"≏\";\nvar Bumpeq = \"≎\";\nvar bumpeq = \"≏\";\nvar Cacute = \"Ć\";\nvar cacute = \"ć\";\nvar capand = \"⩄\";\nvar capbrcup = \"⩉\";\nvar capcap = \"⩋\";\nvar cap = \"∩\";\nvar Cap = \"⋒\";\nvar capcup = \"⩇\";\nvar capdot = \"⩀\";\nvar CapitalDifferentialD = \"\";\nvar caps = \"∩︀\";\nvar caret = \"\";\nvar caron = \"ˇ\";\nvar Cayleys = \"\";\nvar ccaps = \"⩍\";\nvar Ccaron = \"Č\";\nvar ccaron = \"č\";\nvar Ccedil$1 = \"Ç\";\nvar ccedil$1 = \"ç\";\nvar Ccirc = \"Ĉ\";\nvar ccirc = \"ĉ\";\nvar Cconint = \"∰\";\nvar ccups = \"⩌\";\nvar ccupssm = \"⩐\";\nvar Cdot = \"Ċ\";\nvar cdot = \"ċ\";\nvar cedil$1 = \"¸\";\nvar Cedilla = \"¸\";\nvar cemptyv = \"⦲\";\nvar cent$1 = \"¢\";\nvar centerdot = \"·\";\nvar CenterDot = \"·\";\nvar cfr = \"𝔠\";\nvar Cfr = \"\";\nvar CHcy = \"Ч\";\nvar chcy = \"ч\";\nvar check = \"✓\";\nvar checkmark = \"✓\";\nvar Chi = \"Χ\";\nvar chi = \"χ\";\nvar circ = \"ˆ\";\nvar circeq = \"≗\";\nvar circlearrowleft = \"↺\";\nvar circlearrowright = \"↻\";\nvar circledast = \"⊛\";\nvar circledcirc = \"⊚\";\nvar circleddash = \"⊝\";\nvar CircleDot = \"⊙\";\nvar circledR = \"®\";\nvar circledS = \"Ⓢ\";\nvar CircleMinus = \"⊖\";\nvar CirclePlus = \"⊕\";\nvar CircleTimes = \"⊗\";\nvar cir = \"○\";\nvar cirE = \"⧃\";\nvar cire = \"≗\";\nvar cirfnint = \"⨐\";\nvar cirmid = \"⫯\";\nvar cirscir = \"⧂\";\nvar ClockwiseContourIntegral = \"∲\";\nvar CloseCurlyDoubleQuote = \"”\";\nvar CloseCurlyQuote = \"\";\nvar clubs = \"♣\";\nvar clubsuit = \"♣\";\nvar colon = \":\";\nvar Colon = \"∷\";\nvar Colone = \"⩴\";\nvar colone = \"≔\";\nvar coloneq = \"≔\";\nvar comma = \",\";\nvar commat = \"@\";\nvar comp = \"∁\";\nvar compfn = \"∘\";\nvar complement = \"∁\";\nvar complexes = \"\";\nvar cong = \"≅\";\nvar congdot = \"⩭\";\nvar Congruent = \"≡\";\nvar conint = \"∮\";\nvar Conint = \"∯\";\nvar ContourIntegral = \"∮\";\nvar copf = \"𝕔\";\nvar Copf = \"\";\nvar coprod = \"∐\";\nvar Coproduct = \"∐\";\nvar copy$1 = \"©\";\nvar COPY$1 = \"©\";\nvar copysr = \"℗\";\nvar CounterClockwiseContourIntegral = \"∳\";\nvar crarr = \"↵\";\nvar cross = \"✗\";\nvar Cross = \"\";\nvar Cscr = \"𝒞\";\nvar cscr = \"𝒸\";\nvar csub = \"⫏\";\nvar csube = \"⫑\";\nvar csup = \"⫐\";\nvar csupe = \"⫒\";\nvar ctdot = \"⋯\";\nvar cudarrl = \"⤸\";\nvar cudarrr = \"⤵\";\nvar cuepr = \"⋞\";\nvar cuesc = \"⋟\";\nvar cularr = \"↶\";\nvar cularrp = \"⤽\";\nvar cupbrcap = \"⩈\";\nvar cupcap = \"⩆\";\nvar CupCap = \"≍\";\nvar cup = \"\";\nvar Cup = \"⋓\";\nvar cupcup = \"⩊\";\nvar cupdot = \"⊍\";\nvar cupor = \"⩅\";\nvar cups = \"︀\";\nvar curarr = \"↷\";\nvar curarrm = \"⤼\";\nvar curlyeqprec = \"⋞\";\nvar curlyeqsucc = \"⋟\";\nvar curlyvee = \"⋎\";\nvar curlywedge = \"⋏\";\nvar curren$1 = \"¤\";\nvar curvearrowleft = \"↶\";\nvar curvearrowright = \"↷\";\nvar cuvee = \"⋎\";\nvar cuwed = \"⋏\";\nvar cwconint = \"∲\";\nvar cwint = \"∱\";\nvar cylcty = \"⌭\";\nvar dagger = \"†\";\nvar Dagger = \"‡\";\nvar daleth = \"ℸ\";\nvar darr = \"↓\";\nvar Darr = \"↡\";\nvar dArr = \"⇓\";\nvar dash = \"\";\nvar Dashv = \"⫤\";\nvar dashv = \"⊣\";\nvar dbkarow = \"⤏\";\nvar dblac = \"˝\";\nvar Dcaron = \"Ď\";\nvar dcaron = \"ď\";\nvar Dcy = \"Д\";\nvar dcy = \"д\";\nvar ddagger = \"‡\";\nvar ddarr = \"⇊\";\nvar DD = \"\";\nvar dd = \"\";\nvar DDotrahd = \"⤑\";\nvar ddotseq = \"⩷\";\nvar deg$1 = \"°\";\nvar Del = \"∇\";\nvar Delta = \"Δ\";\nvar delta = \"δ\";\nvar demptyv = \"⦱\";\nvar dfisht = \"⥿\";\nvar Dfr = \"𝔇\";\nvar dfr = \"𝔡\";\nvar dHar = \"⥥\";\nvar dharl = \"⇃\";\nvar dharr = \"⇂\";\nvar DiacriticalAcute = \"´\";\nvar DiacriticalDot = \"˙\";\nvar DiacriticalDoubleAcute = \"˝\";\nvar DiacriticalGrave = \"`\";\nvar DiacriticalTilde = \"˜\";\nvar diam = \"⋄\";\nvar diamond = \"⋄\";\nvar Diamond = \"⋄\";\nvar diamondsuit = \"♦\";\nvar diams = \"♦\";\nvar die = \"¨\";\nvar DifferentialD = \"\";\nvar digamma = \"ϝ\";\nvar disin = \"⋲\";\nvar div = \"÷\";\nvar divide$1 = \"÷\";\nvar divideontimes = \"⋇\";\nvar divonx = \"⋇\";\nvar DJcy = \"Ђ\";\nvar djcy = \"ђ\";\nvar dlcorn = \"⌞\";\nvar dlcrop = \"⌍\";\nvar dollar = \"$\";\nvar Dopf = \"𝔻\";\nvar dopf = \"𝕕\";\nvar Dot = \"¨\";\nvar dot = \"˙\";\nvar DotDot = \"⃜\";\nvar doteq = \"≐\";\nvar doteqdot = \"≑\";\nvar DotEqual = \"≐\";\nvar dotminus = \"∸\";\nvar dotplus = \"∔\";\nvar dotsquare = \"⊡\";\nvar doublebarwedge = \"⌆\";\nvar DoubleContourIntegral = \"∯\";\nvar DoubleDot = \"¨\";\nvar DoubleDownArrow = \"⇓\";\nvar DoubleLeftArrow = \"⇐\";\nvar DoubleLeftRightArrow = \"⇔\";\nvar DoubleLeftTee = \"⫤\";\nvar DoubleLongLeftArrow = \"⟸\";\nvar DoubleLongLeftRightArrow = \"⟺\";\nvar DoubleLongRightArrow = \"⟹\";\nvar DoubleRightArrow = \"⇒\";\nvar DoubleRightTee = \"⊨\";\nvar DoubleUpArrow = \"⇑\";\nvar DoubleUpDownArrow = \"⇕\";\nvar DoubleVerticalBar = \"∥\";\nvar DownArrowBar = \"⤓\";\nvar downarrow = \"↓\";\nvar DownArrow = \"↓\";\nvar Downarrow = \"⇓\";\nvar DownArrowUpArrow = \"⇵\";\nvar DownBreve = \"̑\";\nvar downdownarrows = \"⇊\";\nvar downharpoonleft = \"⇃\";\nvar downharpoonright = \"⇂\";\nvar DownLeftRightVector = \"⥐\";\nvar DownLeftTeeVector = \"⥞\";\nvar DownLeftVectorBar = \"⥖\";\nvar DownLeftVector = \"↽\";\nvar DownRightTeeVector = \"⥟\";\nvar DownRightVectorBar = \"⥗\";\nvar DownRightVector = \"⇁\";\nvar DownTeeArrow = \"↧\";\nvar DownTee = \"\";\nvar drbkarow = \"⤐\";\nvar drcorn = \"⌟\";\nvar drcrop = \"⌌\";\nvar Dscr = \"𝒟\";\nvar dscr = \"𝒹\";\nvar DScy = \"Ѕ\";\nvar dscy = \"ѕ\";\nvar dsol = \"⧶\";\nvar Dstrok = \"Đ\";\nvar dstrok = \"đ\";\nvar dtdot = \"⋱\";\nvar dtri = \"▿\";\nvar dtrif = \"▾\";\nvar duarr = \"⇵\";\nvar duhar = \"⥯\";\nvar dwangle = \"⦦\";\nvar DZcy = \"Џ\";\nvar dzcy = \"џ\";\nvar dzigrarr = \"⟿\";\nvar Eacute$1 = \"É\";\nvar eacute$1 = \"é\";\nvar easter = \"⩮\";\nvar Ecaron = \"Ě\";\nvar ecaron = \"ě\";\nvar Ecirc$1 = \"Ê\";\nvar ecirc$1 = \"ê\";\nvar ecir = \"≖\";\nvar ecolon = \"≕\";\nvar Ecy = \"Э\";\nvar ecy = \"э\";\nvar eDDot = \"⩷\";\nvar Edot = \"Ė\";\nvar edot = \"ė\";\nvar eDot = \"≑\";\nvar ee = \"\";\nvar efDot = \"≒\";\nvar Efr = \"𝔈\";\nvar efr = \"𝔢\";\nvar eg = \"⪚\";\nvar Egrave$1 = \"È\";\nvar egrave$1 = \"è\";\nvar egs = \"⪖\";\nvar egsdot = \"⪘\";\nvar el = \"⪙\";\nvar Element = \"∈\";\nvar elinters = \"⏧\";\nvar ell = \"\";\nvar els = \"⪕\";\nvar elsdot = \"⪗\";\nvar Emacr = \"Ē\";\nvar emacr = \"ē\";\nvar empty = \"∅\";\nvar emptyset = \"∅\";\nvar EmptySmallSquare = \"◻\";\nvar emptyv = \"∅\";\nvar EmptyVerySmallSquare = \"▫\";\nvar emsp13 = \"\";\nvar emsp14 = \"\";\nvar emsp = \"\";\nvar ENG = \"Ŋ\";\nvar eng = \"ŋ\";\nvar ensp = \"\";\nvar Eogon = \"Ę\";\nvar eogon = \"ę\";\nvar Eopf = \"𝔼\";\nvar eopf = \"𝕖\";\nvar epar = \"⋕\";\nvar eparsl = \"⧣\";\nvar eplus = \"⩱\";\nvar epsi = \"ε\";\nvar Epsilon = \"Ε\";\nvar epsilon = \"ε\";\nvar epsiv = \"ϵ\";\nvar eqcirc = \"≖\";\nvar eqcolon = \"≕\";\nvar eqsim = \"≂\";\nvar eqslantgtr = \"⪖\";\nvar eqslantless = \"⪕\";\nvar Equal = \"⩵\";\nvar equals = \"=\";\nvar EqualTilde = \"≂\";\nvar equest = \"≟\";\nvar Equilibrium = \"⇌\";\nvar equiv = \"≡\";\nvar equivDD = \"⩸\";\nvar eqvparsl = \"⧥\";\nvar erarr = \"⥱\";\nvar erDot = \"≓\";\nvar escr = \"\";\nvar Escr = \"\";\nvar esdot = \"≐\";\nvar Esim = \"⩳\";\nvar esim = \"≂\";\nvar Eta = \"Η\";\nvar eta = \"η\";\nvar ETH$1 = \"Ð\";\nvar eth$1 = \"ð\";\nvar Euml$1 = \"Ë\";\nvar euml$1 = \"ë\";\nvar euro = \"€\";\nvar excl = \"!\";\nvar exist = \"∃\";\nvar Exists = \"∃\";\nvar expectation = \"\";\nvar exponentiale = \"\";\nvar ExponentialE = \"\";\nvar fallingdotseq = \"≒\";\nvar Fcy = \"Ф\";\nvar fcy = \"ф\";\nvar female = \"♀\";\nvar ffilig = \"ffi\";\nvar fflig = \"ff\";\nvar ffllig = \"ffl\";\nvar Ffr = \"𝔉\";\nvar ffr = \"𝔣\";\nvar filig = \"fi\";\nvar FilledSmallSquare = \"◼\";\nvar FilledVerySmallSquare = \"▪\";\nvar fjlig = \"fj\";\nvar flat = \"♭\";\nvar fllig = \"fl\";\nvar fltns = \"▱\";\nvar fnof = \"ƒ\";\nvar Fopf = \"𝔽\";\nvar fopf = \"𝕗\";\nvar forall = \"∀\";\nvar ForAll = \"∀\";\nvar fork = \"⋔\";\nvar forkv = \"⫙\";\nvar Fouriertrf = \"\";\nvar fpartint = \"⨍\";\nvar frac12$1 = \"½\";\nvar frac13 = \"⅓\";\nvar frac14$1 = \"¼\";\nvar frac15 = \"⅕\";\nvar frac16 = \"⅙\";\nvar frac18 = \"⅛\";\nvar frac23 = \"⅔\";\nvar frac25 = \"⅖\";\nvar frac34$1 = \"¾\";\nvar frac35 = \"⅗\";\nvar frac38 = \"⅜\";\nvar frac45 = \"⅘\";\nvar frac56 = \"⅚\";\nvar frac58 = \"⅝\";\nvar frac78 = \"⅞\";\nvar frasl = \"\";\nvar frown = \"⌢\";\nvar fscr = \"𝒻\";\nvar Fscr = \"\";\nvar gacute = \"ǵ\";\nvar Gamma = \"Γ\";\nvar gamma = \"γ\";\nvar Gammad = \"Ϝ\";\nvar gammad = \"ϝ\";\nvar gap = \"⪆\";\nvar Gbreve = \"Ğ\";\nvar gbreve = \"ğ\";\nvar Gcedil = \"Ģ\";\nvar Gcirc = \"Ĝ\";\nvar gcirc = \"ĝ\";\nvar Gcy = \"Г\";\nvar gcy = \"г\";\nvar Gdot = \"Ġ\";\nvar gdot = \"ġ\";\nvar ge = \"≥\";\nvar gE = \"≧\";\nvar gEl = \"⪌\";\nvar gel = \"⋛\";\nvar geq = \"≥\";\nvar geqq = \"≧\";\nvar geqslant = \"⩾\";\nvar gescc = \"⪩\";\nvar ges = \"⩾\";\nvar gesdot = \"⪀\";\nvar gesdoto = \"⪂\";\nvar gesdotol = \"⪄\";\nvar gesl = \"⋛︀\";\nvar gesles = \"⪔\";\nvar Gfr = \"𝔊\";\nvar gfr = \"𝔤\";\nvar gg = \"≫\";\nvar Gg = \"⋙\";\nvar ggg = \"⋙\";\nvar gimel = \"ℷ\";\nvar GJcy = \"Ѓ\";\nvar gjcy = \"ѓ\";\nvar gla = \"⪥\";\nvar gl = \"≷\";\nvar glE = \"⪒\";\nvar glj = \"⪤\";\nvar gnap = \"⪊\";\nvar gnapprox = \"⪊\";\nvar gne = \"⪈\";\nvar gnE = \"≩\";\nvar gneq = \"⪈\";\nvar gneqq = \"≩\";\nvar gnsim = \"⋧\";\nvar Gopf = \"𝔾\";\nvar gopf = \"𝕘\";\nvar grave = \"`\";\nvar GreaterEqual = \"≥\";\nvar GreaterEqualLess = \"⋛\";\nvar GreaterFullEqual = \"≧\";\nvar GreaterGreater = \"⪢\";\nvar GreaterLess = \"≷\";\nvar GreaterSlantEqual = \"⩾\";\nvar GreaterTilde = \"≳\";\nvar Gscr = \"𝒢\";\nvar gscr = \"\";\nvar gsim = \"≳\";\nvar gsime = \"⪎\";\nvar gsiml = \"⪐\";\nvar gtcc = \"⪧\";\nvar gtcir = \"⩺\";\nvar gt$2 = \">\";\nvar GT$1 = \">\";\nvar Gt = \"≫\";\nvar gtdot = \"⋗\";\nvar gtlPar = \"⦕\";\nvar gtquest = \"⩼\";\nvar gtrapprox = \"⪆\";\nvar gtrarr = \"⥸\";\nvar gtrdot = \"⋗\";\nvar gtreqless = \"⋛\";\nvar gtreqqless = \"⪌\";\nvar gtrless = \"≷\";\nvar gtrsim = \"≳\";\nvar gvertneqq = \"≩︀\";\nvar gvnE = \"≩︀\";\nvar Hacek = \"ˇ\";\nvar hairsp = \"\";\nvar half = \"½\";\nvar hamilt = \"\";\nvar HARDcy = \"Ъ\";\nvar hardcy = \"ъ\";\nvar harrcir = \"⥈\";\nvar harr = \"↔\";\nvar hArr = \"⇔\";\nvar harrw = \"↭\";\nvar Hat = \"^\";\nvar hbar = \"ℏ\";\nvar Hcirc = \"Ĥ\";\nvar hcirc = \"ĥ\";\nvar hearts = \"♥\";\nvar heartsuit = \"♥\";\nvar hellip = \"…\";\nvar hercon = \"⊹\";\nvar hfr = \"𝔥\";\nvar Hfr = \"\";\nvar HilbertSpace = \"\";\nvar hksearow = \"⤥\";\nvar hkswarow = \"⤦\";\nvar hoarr = \"⇿\";\nvar homtht = \"∻\";\nvar hookleftarrow = \"↩\";\nvar hookrightarrow = \"↪\";\nvar hopf = \"𝕙\";\nvar Hopf = \"\";\nvar horbar = \"―\";\nvar HorizontalLine = \"─\";\nvar hscr = \"𝒽\";\nvar Hscr = \"\";\nvar hslash = \"ℏ\";\nvar Hstrok = \"Ħ\";\nvar hstrok = \"ħ\";\nvar HumpDownHump = \"≎\";\nvar HumpEqual = \"≏\";\nvar hybull = \"\";\nvar hyphen = \"\";\nvar Iacute$1 = \"Í\";\nvar iacute$1 = \"í\";\nvar ic = \"\";\nvar Icirc$1 = \"Î\";\nvar icirc$1 = \"î\";\nvar Icy = \"И\";\nvar icy = \"и\";\nvar Idot = \"İ\";\nvar IEcy = \"Е\";\nvar iecy = \"е\";\nvar iexcl$1 = \"¡\";\nvar iff = \"⇔\";\nvar ifr = \"𝔦\";\nvar Ifr = \"\";\nvar Igrave$1 = \"Ì\";\nvar igrave$1 = \"ì\";\nvar ii = \"\";\nvar iiiint = \"⨌\";\nvar iiint = \"∭\";\nvar iinfin = \"⧜\";\nvar iiota = \"℩\";\nvar IJlig = \"IJ\";\nvar ijlig = \"ij\";\nvar Imacr = \"Ī\";\nvar imacr = \"ī\";\nvar esm_image = \"\";\nvar ImaginaryI = \"\";\nvar imagline = \"\";\nvar imagpart = \"\";\nvar imath = \"ı\";\nvar Im = \"\";\nvar imof = \"⊷\";\nvar imped = \"Ƶ\";\nvar Implies = \"⇒\";\nvar incare = \"℅\";\nvar infin = \"∞\";\nvar infintie = \"⧝\";\nvar inodot = \"ı\";\nvar intcal = \"⊺\";\nvar esm_int = \"∫\";\nvar Int = \"∬\";\nvar integers = \"\";\nvar Integral = \"∫\";\nvar intercal = \"⊺\";\nvar Intersection = \"⋂\";\nvar intlarhk = \"⨗\";\nvar intprod = \"⨼\";\nvar InvisibleComma = \"\";\nvar InvisibleTimes = \"\";\nvar IOcy = \"Ё\";\nvar iocy = \"ё\";\nvar Iogon = \"Į\";\nvar iogon = \"į\";\nvar Iopf = \"𝕀\";\nvar iopf = \"𝕚\";\nvar Iota = \"Ι\";\nvar iota = \"ι\";\nvar iprod = \"⨼\";\nvar iquest$1 = \"¿\";\nvar iscr = \"𝒾\";\nvar Iscr = \"\";\nvar isin = \"∈\";\nvar isindot = \"⋵\";\nvar isinE = \"⋹\";\nvar isins = \"⋴\";\nvar isinsv = \"⋳\";\nvar isinv = \"∈\";\nvar it = \"\";\nvar Itilde = \"Ĩ\";\nvar itilde = \"ĩ\";\nvar Iukcy = \"І\";\nvar iukcy = \"і\";\nvar Iuml$1 = \"Ï\";\nvar iuml$1 = \"ï\";\nvar Jcirc = \"Ĵ\";\nvar jcirc = \"ĵ\";\nvar Jcy = \"Й\";\nvar jcy = \"й\";\nvar Jfr = \"𝔍\";\nvar jfr = \"𝔧\";\nvar jmath = \"ȷ\";\nvar Jopf = \"𝕁\";\nvar jopf = \"𝕛\";\nvar Jscr = \"𝒥\";\nvar jscr = \"𝒿\";\nvar Jsercy = \"Ј\";\nvar jsercy = \"ј\";\nvar Jukcy = \"Є\";\nvar jukcy = \"є\";\nvar Kappa = \"Κ\";\nvar kappa = \"κ\";\nvar kappav = \"ϰ\";\nvar Kcedil = \"Ķ\";\nvar kcedil = \"ķ\";\nvar Kcy = \"К\";\nvar kcy = \"к\";\nvar Kfr = \"𝔎\";\nvar kfr = \"𝔨\";\nvar kgreen = \"ĸ\";\nvar KHcy = \"Х\";\nvar khcy = \"х\";\nvar KJcy = \"Ќ\";\nvar kjcy = \"ќ\";\nvar Kopf = \"𝕂\";\nvar kopf = \"𝕜\";\nvar Kscr = \"𝒦\";\nvar kscr = \"𝓀\";\nvar lAarr = \"⇚\";\nvar Lacute = \"Ĺ\";\nvar lacute = \"ĺ\";\nvar laemptyv = \"⦴\";\nvar lagran = \"\";\nvar Lambda = \"Λ\";\nvar lambda = \"λ\";\nvar lang = \"⟨\";\nvar Lang = \"⟪\";\nvar langd = \"⦑\";\nvar langle = \"⟨\";\nvar lap = \"⪅\";\nvar Laplacetrf = \"\";\nvar laquo$1 = \"«\";\nvar larrb = \"⇤\";\nvar larrbfs = \"⤟\";\nvar larr = \"←\";\nvar Larr = \"↞\";\nvar lArr = \"⇐\";\nvar larrfs = \"⤝\";\nvar larrhk = \"↩\";\nvar larrlp = \"↫\";\nvar larrpl = \"⤹\";\nvar larrsim = \"⥳\";\nvar larrtl = \"↢\";\nvar latail = \"⤙\";\nvar lAtail = \"⤛\";\nvar lat = \"⪫\";\nvar late = \"⪭\";\nvar lates = \"⪭︀\";\nvar lbarr = \"⤌\";\nvar lBarr = \"⤎\";\nvar lbbrk = \"\";\nvar lbrace = \"{\";\nvar lbrack = \"[\";\nvar lbrke = \"⦋\";\nvar lbrksld = \"⦏\";\nvar lbrkslu = \"⦍\";\nvar Lcaron = \"Ľ\";\nvar lcaron = \"ľ\";\nvar Lcedil = \"Ļ\";\nvar lcedil = \"ļ\";\nvar lceil = \"⌈\";\nvar lcub = \"{\";\nvar Lcy = \"Л\";\nvar lcy = \"л\";\nvar ldca = \"⤶\";\nvar ldquo = \"“\";\nvar ldquor = \"„\";\nvar ldrdhar = \"⥧\";\nvar ldrushar = \"⥋\";\nvar ldsh = \"↲\";\nvar le = \"≤\";\nvar lE = \"≦\";\nvar LeftAngleBracket = \"⟨\";\nvar LeftArrowBar = \"⇤\";\nvar leftarrow = \"←\";\nvar LeftArrow = \"←\";\nvar Leftarrow = \"⇐\";\nvar LeftArrowRightArrow = \"⇆\";\nvar leftarrowtail = \"↢\";\nvar LeftCeiling = \"⌈\";\nvar LeftDoubleBracket = \"⟦\";\nvar LeftDownTeeVector = \"⥡\";\nvar LeftDownVectorBar = \"⥙\";\nvar LeftDownVector = \"⇃\";\nvar LeftFloor = \"⌊\";\nvar leftharpoondown = \"↽\";\nvar leftharpoonup = \"↼\";\nvar leftleftarrows = \"⇇\";\nvar leftrightarrow = \"↔\";\nvar LeftRightArrow = \"↔\";\nvar Leftrightarrow = \"⇔\";\nvar leftrightarrows = \"⇆\";\nvar leftrightharpoons = \"⇋\";\nvar leftrightsquigarrow = \"↭\";\nvar LeftRightVector = \"⥎\";\nvar LeftTeeArrow = \"↤\";\nvar LeftTee = \"⊣\";\nvar LeftTeeVector = \"⥚\";\nvar leftthreetimes = \"⋋\";\nvar LeftTriangleBar = \"⧏\";\nvar LeftTriangle = \"⊲\";\nvar LeftTriangleEqual = \"⊴\";\nvar LeftUpDownVector = \"⥑\";\nvar LeftUpTeeVector = \"⥠\";\nvar LeftUpVectorBar = \"⥘\";\nvar LeftUpVector = \"↿\";\nvar LeftVectorBar = \"⥒\";\nvar LeftVector = \"↼\";\nvar lEg = \"⪋\";\nvar leg = \"⋚\";\nvar leq = \"≤\";\nvar leqq = \"≦\";\nvar leqslant = \"⩽\";\nvar lescc = \"⪨\";\nvar les = \"⩽\";\nvar lesdot = \"⩿\";\nvar lesdoto = \"⪁\";\nvar lesdotor = \"⪃\";\nvar lesg = \"⋚︀\";\nvar lesges = \"⪓\";\nvar lessapprox = \"⪅\";\nvar lessdot = \"⋖\";\nvar lesseqgtr = \"⋚\";\nvar lesseqqgtr = \"⪋\";\nvar LessEqualGreater = \"⋚\";\nvar LessFullEqual = \"≦\";\nvar LessGreater = \"≶\";\nvar lessgtr = \"≶\";\nvar LessLess = \"⪡\";\nvar lesssim = \"≲\";\nvar LessSlantEqual = \"⩽\";\nvar LessTilde = \"≲\";\nvar lfisht = \"⥼\";\nvar lfloor = \"⌊\";\nvar Lfr = \"𝔏\";\nvar lfr = \"𝔩\";\nvar lg = \"≶\";\nvar lgE = \"⪑\";\nvar lHar = \"⥢\";\nvar lhard = \"↽\";\nvar lharu = \"↼\";\nvar lharul = \"⥪\";\nvar lhblk = \"▄\";\nvar LJcy = \"Љ\";\nvar ljcy = \"љ\";\nvar llarr = \"⇇\";\nvar ll = \"≪\";\nvar Ll = \"⋘\";\nvar llcorner = \"⌞\";\nvar Lleftarrow = \"⇚\";\nvar llhard = \"⥫\";\nvar lltri = \"◺\";\nvar Lmidot = \"Ŀ\";\nvar lmidot = \"ŀ\";\nvar lmoustache = \"⎰\";\nvar lmoust = \"⎰\";\nvar lnap = \"⪉\";\nvar lnapprox = \"⪉\";\nvar lne = \"⪇\";\nvar lnE = \"≨\";\nvar lneq = \"⪇\";\nvar lneqq = \"≨\";\nvar lnsim = \"⋦\";\nvar loang = \"⟬\";\nvar loarr = \"⇽\";\nvar lobrk = \"⟦\";\nvar longleftarrow = \"⟵\";\nvar LongLeftArrow = \"⟵\";\nvar Longleftarrow = \"⟸\";\nvar longleftrightarrow = \"⟷\";\nvar LongLeftRightArrow = \"⟷\";\nvar Longleftrightarrow = \"⟺\";\nvar longmapsto = \"⟼\";\nvar longrightarrow = \"⟶\";\nvar LongRightArrow = \"⟶\";\nvar Longrightarrow = \"⟹\";\nvar looparrowleft = \"↫\";\nvar looparrowright = \"↬\";\nvar lopar = \"⦅\";\nvar Lopf = \"𝕃\";\nvar lopf = \"𝕝\";\nvar loplus = \"⨭\";\nvar lotimes = \"⨴\";\nvar lowast = \"\";\nvar lowbar = \"_\";\nvar LowerLeftArrow = \"↙\";\nvar LowerRightArrow = \"↘\";\nvar loz = \"◊\";\nvar lozenge = \"◊\";\nvar lozf = \"⧫\";\nvar lpar = \"(\";\nvar lparlt = \"⦓\";\nvar lrarr = \"⇆\";\nvar lrcorner = \"⌟\";\nvar lrhar = \"⇋\";\nvar lrhard = \"⥭\";\nvar lrm = \"\";\nvar lrtri = \"⊿\";\nvar lsaquo = \"\";\nvar lscr = \"𝓁\";\nvar Lscr = \"\";\nvar lsh = \"↰\";\nvar Lsh = \"↰\";\nvar lsim = \"≲\";\nvar lsime = \"⪍\";\nvar lsimg = \"⪏\";\nvar lsqb = \"[\";\nvar lsquo = \"\";\nvar lsquor = \"\";\nvar Lstrok = \"Ł\";\nvar lstrok = \"ł\";\nvar ltcc = \"⪦\";\nvar ltcir = \"⩹\";\nvar lt$2 = \"<\";\nvar LT$1 = \"<\";\nvar Lt = \"≪\";\nvar ltdot = \"⋖\";\nvar lthree = \"⋋\";\nvar ltimes = \"⋉\";\nvar ltlarr = \"⥶\";\nvar ltquest = \"⩻\";\nvar ltri = \"◃\";\nvar ltrie = \"⊴\";\nvar ltrif = \"◂\";\nvar ltrPar = \"⦖\";\nvar lurdshar = \"⥊\";\nvar luruhar = \"⥦\";\nvar lvertneqq = \"≨︀\";\nvar lvnE = \"≨︀\";\nvar macr$1 = \"¯\";\nvar male = \"♂\";\nvar malt = \"✠\";\nvar maltese = \"✠\";\nvar map = \"↦\";\nvar mapsto = \"↦\";\nvar mapstodown = \"↧\";\nvar mapstoleft = \"↤\";\nvar mapstoup = \"↥\";\nvar marker = \"▮\";\nvar mcomma = \"⨩\";\nvar Mcy = \"М\";\nvar mcy = \"м\";\nvar mdash = \"—\";\nvar mDDot = \"∺\";\nvar measuredangle = \"∡\";\nvar MediumSpace = \"\";\nvar Mellintrf = \"\";\nvar Mfr = \"𝔐\";\nvar mfr = \"𝔪\";\nvar mho = \"℧\";\nvar micro$1 = \"µ\";\nvar midast = \"*\";\nvar midcir = \"⫰\";\nvar mid = \"\";\nvar middot$1 = \"·\";\nvar minusb = \"⊟\";\nvar minus = \"\";\nvar minusd = \"∸\";\nvar minusdu = \"⨪\";\nvar MinusPlus = \"∓\";\nvar mlcp = \"⫛\";\nvar mldr = \"…\";\nvar mnplus = \"∓\";\nvar models = \"⊧\";\nvar Mopf = \"𝕄\";\nvar mopf = \"𝕞\";\nvar mp = \"∓\";\nvar mscr = \"𝓂\";\nvar Mscr = \"\";\nvar mstpos = \"∾\";\nvar Mu = \"Μ\";\nvar mu = \"μ\";\nvar multimap = \"⊸\";\nvar mumap = \"⊸\";\nvar nabla = \"∇\";\nvar Nacute = \"Ń\";\nvar nacute = \"ń\";\nvar nang = \"∠⃒\";\nvar nap = \"≉\";\nvar napE = \"⩰̸\";\nvar napid = \"≋̸\";\nvar napos = \"ʼn\";\nvar napprox = \"≉\";\nvar natural = \"♮\";\nvar naturals = \"\";\nvar natur = \"♮\";\nvar nbsp$1 = \" \";\nvar nbump = \"≎̸\";\nvar nbumpe = \"≏̸\";\nvar ncap = \"⩃\";\nvar Ncaron = \"Ň\";\nvar ncaron = \"ň\";\nvar Ncedil = \"Ņ\";\nvar ncedil = \"ņ\";\nvar ncong = \"≇\";\nvar ncongdot = \"⩭̸\";\nvar ncup = \"⩂\";\nvar Ncy = \"Н\";\nvar ncy = \"н\";\nvar ndash = \"\";\nvar nearhk = \"⤤\";\nvar nearr = \"↗\";\nvar neArr = \"⇗\";\nvar nearrow = \"↗\";\nvar ne = \"≠\";\nvar nedot = \"≐̸\";\nvar NegativeMediumSpace = \"\";\nvar NegativeThickSpace = \"\";\nvar NegativeThinSpace = \"\";\nvar NegativeVeryThinSpace = \"\";\nvar nequiv = \"≢\";\nvar nesear = \"⤨\";\nvar nesim = \"≂̸\";\nvar NestedGreaterGreater = \"≫\";\nvar NestedLessLess = \"≪\";\nvar NewLine = \"\\n\";\nvar nexist = \"∄\";\nvar nexists = \"∄\";\nvar Nfr = \"𝔑\";\nvar nfr = \"𝔫\";\nvar ngE = \"≧̸\";\nvar nge = \"≱\";\nvar ngeq = \"≱\";\nvar ngeqq = \"≧̸\";\nvar ngeqslant = \"⩾̸\";\nvar nges = \"⩾̸\";\nvar nGg = \"⋙̸\";\nvar ngsim = \"≵\";\nvar nGt = \"≫⃒\";\nvar ngt = \"≯\";\nvar ngtr = \"≯\";\nvar nGtv = \"≫̸\";\nvar nharr = \"↮\";\nvar nhArr = \"⇎\";\nvar nhpar = \"⫲\";\nvar ni = \"∋\";\nvar nis = \"⋼\";\nvar nisd = \"⋺\";\nvar niv = \"∋\";\nvar NJcy = \"Њ\";\nvar njcy = \"њ\";\nvar nlarr = \"↚\";\nvar nlArr = \"⇍\";\nvar nldr = \"‥\";\nvar nlE = \"≦̸\";\nvar nle = \"≰\";\nvar nleftarrow = \"↚\";\nvar nLeftarrow = \"⇍\";\nvar nleftrightarrow = \"↮\";\nvar nLeftrightarrow = \"⇎\";\nvar nleq = \"≰\";\nvar nleqq = \"≦̸\";\nvar nleqslant = \"⩽̸\";\nvar nles = \"⩽̸\";\nvar nless = \"≮\";\nvar nLl = \"⋘̸\";\nvar nlsim = \"≴\";\nvar nLt = \"≪⃒\";\nvar nlt = \"≮\";\nvar nltri = \"⋪\";\nvar nltrie = \"⋬\";\nvar nLtv = \"≪̸\";\nvar nmid = \"∤\";\nvar NoBreak = \"\";\nvar NonBreakingSpace = \" \";\nvar nopf = \"𝕟\";\nvar Nopf = \"\";\nvar Not = \"⫬\";\nvar not$1 = \"¬\";\nvar NotCongruent = \"≢\";\nvar NotCupCap = \"≭\";\nvar NotDoubleVerticalBar = \"∦\";\nvar NotElement = \"∉\";\nvar NotEqual = \"≠\";\nvar NotEqualTilde = \"≂̸\";\nvar NotExists = \"∄\";\nvar NotGreater = \"≯\";\nvar NotGreaterEqual = \"≱\";\nvar NotGreaterFullEqual = \"≧̸\";\nvar NotGreaterGreater = \"≫̸\";\nvar NotGreaterLess = \"≹\";\nvar NotGreaterSlantEqual = \"⩾̸\";\nvar NotGreaterTilde = \"≵\";\nvar NotHumpDownHump = \"≎̸\";\nvar NotHumpEqual = \"≏̸\";\nvar notin = \"∉\";\nvar notindot = \"⋵̸\";\nvar notinE = \"⋹̸\";\nvar notinva = \"∉\";\nvar notinvb = \"⋷\";\nvar notinvc = \"⋶\";\nvar NotLeftTriangleBar = \"⧏̸\";\nvar NotLeftTriangle = \"⋪\";\nvar NotLeftTriangleEqual = \"⋬\";\nvar NotLess = \"≮\";\nvar NotLessEqual = \"≰\";\nvar NotLessGreater = \"≸\";\nvar NotLessLess = \"≪̸\";\nvar NotLessSlantEqual = \"⩽̸\";\nvar NotLessTilde = \"≴\";\nvar NotNestedGreaterGreater = \"⪢̸\";\nvar NotNestedLessLess = \"⪡̸\";\nvar notni = \"∌\";\nvar notniva = \"∌\";\nvar notnivb = \"⋾\";\nvar notnivc = \"⋽\";\nvar NotPrecedes = \"⊀\";\nvar NotPrecedesEqual = \"⪯̸\";\nvar NotPrecedesSlantEqual = \"⋠\";\nvar NotReverseElement = \"∌\";\nvar NotRightTriangleBar = \"⧐̸\";\nvar NotRightTriangle = \"⋫\";\nvar NotRightTriangleEqual = \"⋭\";\nvar NotSquareSubset = \"⊏̸\";\nvar NotSquareSubsetEqual = \"⋢\";\nvar NotSquareSuperset = \"⊐̸\";\nvar NotSquareSupersetEqual = \"⋣\";\nvar NotSubset = \"⊂⃒\";\nvar NotSubsetEqual = \"⊈\";\nvar NotSucceeds = \"⊁\";\nvar NotSucceedsEqual = \"⪰̸\";\nvar NotSucceedsSlantEqual = \"⋡\";\nvar NotSucceedsTilde = \"≿̸\";\nvar NotSuperset = \"⊃⃒\";\nvar NotSupersetEqual = \"⊉\";\nvar NotTilde = \"≁\";\nvar NotTildeEqual = \"≄\";\nvar NotTildeFullEqual = \"≇\";\nvar NotTildeTilde = \"≉\";\nvar NotVerticalBar = \"∤\";\nvar nparallel = \"∦\";\nvar npar = \"∦\";\nvar nparsl = \"⫽⃥\";\nvar npart = \"∂̸\";\nvar npolint = \"⨔\";\nvar npr = \"⊀\";\nvar nprcue = \"⋠\";\nvar nprec = \"⊀\";\nvar npreceq = \"⪯̸\";\nvar npre = \"⪯̸\";\nvar nrarrc = \"⤳̸\";\nvar nrarr = \"↛\";\nvar nrArr = \"⇏\";\nvar nrarrw = \"↝̸\";\nvar nrightarrow = \"↛\";\nvar nRightarrow = \"⇏\";\nvar nrtri = \"⋫\";\nvar nrtrie = \"⋭\";\nvar nsc = \"⊁\";\nvar nsccue = \"⋡\";\nvar nsce = \"⪰̸\";\nvar Nscr = \"𝒩\";\nvar nscr = \"𝓃\";\nvar nshortmid = \"∤\";\nvar nshortparallel = \"∦\";\nvar nsim = \"≁\";\nvar nsime = \"≄\";\nvar nsimeq = \"≄\";\nvar nsmid = \"∤\";\nvar nspar = \"∦\";\nvar nsqsube = \"⋢\";\nvar nsqsupe = \"⋣\";\nvar nsub = \"⊄\";\nvar nsubE = \"⫅̸\";\nvar nsube = \"⊈\";\nvar nsubset = \"⊂⃒\";\nvar nsubseteq = \"⊈\";\nvar nsubseteqq = \"⫅̸\";\nvar nsucc = \"⊁\";\nvar nsucceq = \"⪰̸\";\nvar nsup = \"⊅\";\nvar nsupE = \"⫆̸\";\nvar nsupe = \"⊉\";\nvar nsupset = \"⊃⃒\";\nvar nsupseteq = \"⊉\";\nvar nsupseteqq = \"⫆̸\";\nvar ntgl = \"≹\";\nvar Ntilde$1 = \"Ñ\";\nvar ntilde$1 = \"ñ\";\nvar ntlg = \"≸\";\nvar ntriangleleft = \"⋪\";\nvar ntrianglelefteq = \"⋬\";\nvar ntriangleright = \"⋫\";\nvar ntrianglerighteq = \"⋭\";\nvar Nu = \"Ν\";\nvar nu = \"ν\";\nvar num = \"#\";\nvar numero = \"№\";\nvar numsp = \"\";\nvar nvap = \"≍⃒\";\nvar nvdash = \"⊬\";\nvar nvDash = \"⊭\";\nvar nVdash = \"⊮\";\nvar nVDash = \"⊯\";\nvar nvge = \"≥⃒\";\nvar nvgt = \">⃒\";\nvar nvHarr = \"⤄\";\nvar nvinfin = \"⧞\";\nvar nvlArr = \"⤂\";\nvar nvle = \"≤⃒\";\nvar nvlt = \"<⃒\";\nvar nvltrie = \"⊴⃒\";\nvar nvrArr = \"⤃\";\nvar nvrtrie = \"⊵⃒\";\nvar nvsim = \"∼⃒\";\nvar nwarhk = \"⤣\";\nvar nwarr = \"↖\";\nvar nwArr = \"⇖\";\nvar nwarrow = \"↖\";\nvar nwnear = \"⤧\";\nvar Oacute$1 = \"Ó\";\nvar oacute$1 = \"ó\";\nvar oast = \"⊛\";\nvar Ocirc$1 = \"Ô\";\nvar ocirc$1 = \"ô\";\nvar ocir = \"⊚\";\nvar Ocy = \"О\";\nvar ocy = \"о\";\nvar odash = \"⊝\";\nvar Odblac = \"Ő\";\nvar odblac = \"ő\";\nvar odiv = \"⨸\";\nvar odot = \"⊙\";\nvar odsold = \"⦼\";\nvar OElig = \"Œ\";\nvar oelig = \"œ\";\nvar ofcir = \"⦿\";\nvar Ofr = \"𝔒\";\nvar ofr = \"𝔬\";\nvar ogon = \"˛\";\nvar Ograve$1 = \"Ò\";\nvar ograve$1 = \"ò\";\nvar ogt = \"⧁\";\nvar ohbar = \"⦵\";\nvar ohm = \"Ω\";\nvar oint = \"∮\";\nvar olarr = \"↺\";\nvar olcir = \"⦾\";\nvar olcross = \"⦻\";\nvar oline = \"‾\";\nvar olt = \"⧀\";\nvar Omacr = \"Ō\";\nvar omacr = \"ō\";\nvar Omega = \"Ω\";\nvar omega = \"ω\";\nvar Omicron = \"Ο\";\nvar omicron = \"ο\";\nvar omid = \"⦶\";\nvar ominus = \"⊖\";\nvar Oopf = \"𝕆\";\nvar oopf = \"𝕠\";\nvar opar = \"⦷\";\nvar OpenCurlyDoubleQuote = \"“\";\nvar OpenCurlyQuote = \"\";\nvar operp = \"⦹\";\nvar oplus = \"⊕\";\nvar orarr = \"↻\";\nvar Or = \"⩔\";\nvar or = \"\";\nvar ord = \"⩝\";\nvar order = \"\";\nvar orderof = \"\";\nvar ordf$1 = \"ª\";\nvar ordm$1 = \"º\";\nvar origof = \"⊶\";\nvar oror = \"⩖\";\nvar orslope = \"⩗\";\nvar orv = \"⩛\";\nvar oS = \"Ⓢ\";\nvar Oscr = \"𝒪\";\nvar oscr = \"\";\nvar Oslash$1 = \"Ø\";\nvar oslash$1 = \"ø\";\nvar osol = \"⊘\";\nvar Otilde$1 = \"Õ\";\nvar otilde$1 = \"õ\";\nvar otimesas = \"⨶\";\nvar Otimes = \"⨷\";\nvar otimes = \"⊗\";\nvar Ouml$1 = \"Ö\";\nvar ouml$1 = \"ö\";\nvar ovbar = \"⌽\";\nvar OverBar = \"‾\";\nvar OverBrace = \"⏞\";\nvar OverBracket = \"⎴\";\nvar OverParenthesis = \"⏜\";\nvar para$1 = \"¶\";\nvar parallel = \"∥\";\nvar par = \"∥\";\nvar parsim = \"⫳\";\nvar parsl = \"⫽\";\nvar part = \"∂\";\nvar PartialD = \"∂\";\nvar Pcy = \"П\";\nvar pcy = \"п\";\nvar percnt = \"%\";\nvar period = \".\";\nvar permil = \"‰\";\nvar perp = \"⊥\";\nvar pertenk = \"‱\";\nvar Pfr = \"𝔓\";\nvar pfr = \"𝔭\";\nvar Phi = \"Φ\";\nvar phi = \"φ\";\nvar phiv = \"ϕ\";\nvar phmmat = \"\";\nvar phone = \"☎\";\nvar Pi = \"Π\";\nvar pi = \"π\";\nvar pitchfork = \"⋔\";\nvar piv = \"ϖ\";\nvar planck = \"ℏ\";\nvar planckh = \"\";\nvar plankv = \"ℏ\";\nvar plusacir = \"⨣\";\nvar plusb = \"⊞\";\nvar pluscir = \"⨢\";\nvar plus = \"+\";\nvar plusdo = \"∔\";\nvar plusdu = \"⨥\";\nvar pluse = \"⩲\";\nvar PlusMinus = \"±\";\nvar plusmn$1 = \"±\";\nvar plussim = \"⨦\";\nvar plustwo = \"⨧\";\nvar pm = \"±\";\nvar Poincareplane = \"\";\nvar pointint = \"⨕\";\nvar popf = \"𝕡\";\nvar Popf = \"\";\nvar pound$1 = \"£\";\nvar prap = \"⪷\";\nvar Pr = \"⪻\";\nvar pr = \"≺\";\nvar prcue = \"≼\";\nvar precapprox = \"⪷\";\nvar prec = \"≺\";\nvar preccurlyeq = \"≼\";\nvar Precedes = \"≺\";\nvar PrecedesEqual = \"⪯\";\nvar PrecedesSlantEqual = \"≼\";\nvar PrecedesTilde = \"≾\";\nvar preceq = \"⪯\";\nvar precnapprox = \"⪹\";\nvar precneqq = \"⪵\";\nvar precnsim = \"⋨\";\nvar pre = \"⪯\";\nvar prE = \"⪳\";\nvar precsim = \"≾\";\nvar prime = \"\";\nvar Prime = \"″\";\nvar primes = \"\";\nvar prnap = \"⪹\";\nvar prnE = \"⪵\";\nvar prnsim = \"⋨\";\nvar prod = \"∏\";\nvar Product = \"∏\";\nvar profalar = \"⌮\";\nvar profline = \"⌒\";\nvar profsurf = \"⌓\";\nvar prop = \"∝\";\nvar Proportional = \"∝\";\nvar Proportion = \"∷\";\nvar propto = \"∝\";\nvar prsim = \"≾\";\nvar prurel = \"⊰\";\nvar Pscr = \"𝒫\";\nvar pscr = \"𝓅\";\nvar Psi = \"Ψ\";\nvar psi = \"ψ\";\nvar puncsp = \"\";\nvar Qfr = \"𝔔\";\nvar qfr = \"𝔮\";\nvar qint = \"⨌\";\nvar qopf = \"𝕢\";\nvar Qopf = \"\";\nvar qprime = \"⁗\";\nvar Qscr = \"𝒬\";\nvar qscr = \"𝓆\";\nvar quaternions = \"\";\nvar quatint = \"⨖\";\nvar quest = \"?\";\nvar questeq = \"≟\";\nvar quot$2 = \"\\\"\";\nvar QUOT$1 = \"\\\"\";\nvar rAarr = \"⇛\";\nvar race = \"∽̱\";\nvar Racute = \"Ŕ\";\nvar racute = \"ŕ\";\nvar radic = \"√\";\nvar raemptyv = \"⦳\";\nvar rang = \"⟩\";\nvar Rang = \"⟫\";\nvar rangd = \"⦒\";\nvar range = \"⦥\";\nvar rangle = \"⟩\";\nvar raquo$1 = \"»\";\nvar rarrap = \"⥵\";\nvar rarrb = \"⇥\";\nvar rarrbfs = \"⤠\";\nvar rarrc = \"⤳\";\nvar rarr = \"→\";\nvar Rarr = \"↠\";\nvar rArr = \"⇒\";\nvar rarrfs = \"⤞\";\nvar rarrhk = \"↪\";\nvar rarrlp = \"↬\";\nvar rarrpl = \"⥅\";\nvar rarrsim = \"⥴\";\nvar Rarrtl = \"⤖\";\nvar rarrtl = \"↣\";\nvar rarrw = \"↝\";\nvar ratail = \"⤚\";\nvar rAtail = \"⤜\";\nvar ratio = \"\";\nvar rationals = \"\";\nvar rbarr = \"⤍\";\nvar rBarr = \"⤏\";\nvar RBarr = \"⤐\";\nvar rbbrk = \"\";\nvar rbrace = \"}\";\nvar rbrack = \"]\";\nvar rbrke = \"⦌\";\nvar rbrksld = \"⦎\";\nvar rbrkslu = \"⦐\";\nvar Rcaron = \"Ř\";\nvar rcaron = \"ř\";\nvar Rcedil = \"Ŗ\";\nvar rcedil = \"ŗ\";\nvar rceil = \"⌉\";\nvar rcub = \"}\";\nvar Rcy = \"Р\";\nvar rcy = \"р\";\nvar rdca = \"⤷\";\nvar rdldhar = \"⥩\";\nvar rdquo = \"”\";\nvar rdquor = \"”\";\nvar rdsh = \"↳\";\nvar real = \"\";\nvar realine = \"\";\nvar realpart = \"\";\nvar reals = \"\";\nvar Re = \"\";\nvar rect = \"▭\";\nvar reg$1 = \"®\";\nvar REG$1 = \"®\";\nvar ReverseElement = \"∋\";\nvar ReverseEquilibrium = \"⇋\";\nvar ReverseUpEquilibrium = \"⥯\";\nvar rfisht = \"⥽\";\nvar rfloor = \"⌋\";\nvar rfr = \"𝔯\";\nvar Rfr = \"\";\nvar rHar = \"⥤\";\nvar rhard = \"⇁\";\nvar rharu = \"⇀\";\nvar rharul = \"⥬\";\nvar Rho = \"Ρ\";\nvar rho = \"ρ\";\nvar rhov = \"ϱ\";\nvar RightAngleBracket = \"⟩\";\nvar RightArrowBar = \"⇥\";\nvar rightarrow = \"→\";\nvar RightArrow = \"→\";\nvar Rightarrow = \"⇒\";\nvar RightArrowLeftArrow = \"⇄\";\nvar rightarrowtail = \"↣\";\nvar RightCeiling = \"⌉\";\nvar RightDoubleBracket = \"⟧\";\nvar RightDownTeeVector = \"⥝\";\nvar RightDownVectorBar = \"⥕\";\nvar RightDownVector = \"⇂\";\nvar RightFloor = \"⌋\";\nvar rightharpoondown = \"⇁\";\nvar rightharpoonup = \"⇀\";\nvar rightleftarrows = \"⇄\";\nvar rightleftharpoons = \"⇌\";\nvar rightrightarrows = \"⇉\";\nvar rightsquigarrow = \"↝\";\nvar RightTeeArrow = \"↦\";\nvar RightTee = \"⊢\";\nvar RightTeeVector = \"⥛\";\nvar rightthreetimes = \"⋌\";\nvar RightTriangleBar = \"⧐\";\nvar RightTriangle = \"⊳\";\nvar RightTriangleEqual = \"⊵\";\nvar RightUpDownVector = \"⥏\";\nvar RightUpTeeVector = \"⥜\";\nvar RightUpVectorBar = \"⥔\";\nvar RightUpVector = \"↾\";\nvar RightVectorBar = \"⥓\";\nvar RightVector = \"⇀\";\nvar ring = \"˚\";\nvar risingdotseq = \"≓\";\nvar rlarr = \"⇄\";\nvar rlhar = \"⇌\";\nvar rlm = \"\";\nvar rmoustache = \"⎱\";\nvar rmoust = \"⎱\";\nvar rnmid = \"⫮\";\nvar roang = \"⟭\";\nvar roarr = \"⇾\";\nvar robrk = \"⟧\";\nvar ropar = \"⦆\";\nvar ropf = \"𝕣\";\nvar Ropf = \"\";\nvar roplus = \"⨮\";\nvar rotimes = \"⨵\";\nvar RoundImplies = \"⥰\";\nvar rpar = \")\";\nvar rpargt = \"⦔\";\nvar rppolint = \"⨒\";\nvar rrarr = \"⇉\";\nvar Rrightarrow = \"⇛\";\nvar rsaquo = \"\";\nvar rscr = \"𝓇\";\nvar Rscr = \"\";\nvar rsh = \"↱\";\nvar Rsh = \"↱\";\nvar rsqb = \"]\";\nvar rsquo = \"\";\nvar rsquor = \"\";\nvar rthree = \"⋌\";\nvar rtimes = \"⋊\";\nvar rtri = \"▹\";\nvar rtrie = \"⊵\";\nvar rtrif = \"▸\";\nvar rtriltri = \"⧎\";\nvar RuleDelayed = \"⧴\";\nvar ruluhar = \"⥨\";\nvar rx = \"℞\";\nvar Sacute = \"Ś\";\nvar sacute = \"ś\";\nvar sbquo = \"\";\nvar scap = \"⪸\";\nvar Scaron = \"Š\";\nvar scaron = \"š\";\nvar Sc = \"⪼\";\nvar sc = \"≻\";\nvar sccue = \"≽\";\nvar sce = \"⪰\";\nvar scE = \"⪴\";\nvar Scedil = \"Ş\";\nvar scedil = \"ş\";\nvar Scirc = \"Ŝ\";\nvar scirc = \"ŝ\";\nvar scnap = \"⪺\";\nvar scnE = \"⪶\";\nvar scnsim = \"⋩\";\nvar scpolint = \"⨓\";\nvar scsim = \"≿\";\nvar Scy = \"С\";\nvar scy = \"с\";\nvar sdotb = \"⊡\";\nvar sdot = \"⋅\";\nvar sdote = \"⩦\";\nvar searhk = \"⤥\";\nvar searr = \"↘\";\nvar seArr = \"⇘\";\nvar searrow = \"↘\";\nvar sect$1 = \"§\";\nvar semi = \";\";\nvar seswar = \"⤩\";\nvar setminus = \"\";\nvar setmn = \"\";\nvar sext = \"✶\";\nvar Sfr = \"𝔖\";\nvar sfr = \"𝔰\";\nvar sfrown = \"⌢\";\nvar sharp = \"♯\";\nvar SHCHcy = \"Щ\";\nvar shchcy = \"щ\";\nvar SHcy = \"Ш\";\nvar shcy = \"ш\";\nvar ShortDownArrow = \"↓\";\nvar ShortLeftArrow = \"←\";\nvar shortmid = \"\";\nvar shortparallel = \"∥\";\nvar ShortRightArrow = \"→\";\nvar ShortUpArrow = \"↑\";\nvar shy$1 = \"­\";\nvar Sigma = \"Σ\";\nvar sigma = \"σ\";\nvar sigmaf = \"ς\";\nvar sigmav = \"ς\";\nvar sim = \"\";\nvar simdot = \"⩪\";\nvar sime = \"≃\";\nvar simeq = \"≃\";\nvar simg = \"⪞\";\nvar simgE = \"⪠\";\nvar siml = \"⪝\";\nvar simlE = \"⪟\";\nvar simne = \"≆\";\nvar simplus = \"⨤\";\nvar simrarr = \"⥲\";\nvar slarr = \"←\";\nvar SmallCircle = \"∘\";\nvar smallsetminus = \"\";\nvar smashp = \"⨳\";\nvar smeparsl = \"⧤\";\nvar smid = \"\";\nvar smile = \"⌣\";\nvar smt = \"⪪\";\nvar smte = \"⪬\";\nvar smtes = \"⪬︀\";\nvar SOFTcy = \"Ь\";\nvar softcy = \"ь\";\nvar solbar = \"⌿\";\nvar solb = \"⧄\";\nvar sol = \"/\";\nvar Sopf = \"𝕊\";\nvar sopf = \"𝕤\";\nvar spades = \"♠\";\nvar spadesuit = \"♠\";\nvar spar = \"∥\";\nvar sqcap = \"⊓\";\nvar sqcaps = \"⊓︀\";\nvar sqcup = \"⊔\";\nvar sqcups = \"⊔︀\";\nvar Sqrt = \"√\";\nvar sqsub = \"⊏\";\nvar sqsube = \"⊑\";\nvar sqsubset = \"⊏\";\nvar sqsubseteq = \"⊑\";\nvar sqsup = \"⊐\";\nvar sqsupe = \"⊒\";\nvar sqsupset = \"⊐\";\nvar sqsupseteq = \"⊒\";\nvar square = \"□\";\nvar Square = \"□\";\nvar SquareIntersection = \"⊓\";\nvar SquareSubset = \"⊏\";\nvar SquareSubsetEqual = \"⊑\";\nvar SquareSuperset = \"⊐\";\nvar SquareSupersetEqual = \"⊒\";\nvar SquareUnion = \"⊔\";\nvar squarf = \"▪\";\nvar squ = \"□\";\nvar squf = \"▪\";\nvar srarr = \"→\";\nvar Sscr = \"𝒮\";\nvar sscr = \"𝓈\";\nvar ssetmn = \"\";\nvar ssmile = \"⌣\";\nvar sstarf = \"⋆\";\nvar Star = \"⋆\";\nvar star = \"☆\";\nvar starf = \"★\";\nvar straightepsilon = \"ϵ\";\nvar straightphi = \"ϕ\";\nvar strns = \"¯\";\nvar sub = \"⊂\";\nvar Sub = \"⋐\";\nvar subdot = \"⪽\";\nvar subE = \"⫅\";\nvar sube = \"⊆\";\nvar subedot = \"⫃\";\nvar submult = \"⫁\";\nvar subnE = \"⫋\";\nvar subne = \"⊊\";\nvar subplus = \"⪿\";\nvar subrarr = \"⥹\";\nvar subset = \"⊂\";\nvar Subset = \"⋐\";\nvar subseteq = \"⊆\";\nvar subseteqq = \"⫅\";\nvar SubsetEqual = \"⊆\";\nvar subsetneq = \"⊊\";\nvar subsetneqq = \"⫋\";\nvar subsim = \"⫇\";\nvar subsub = \"⫕\";\nvar subsup = \"⫓\";\nvar succapprox = \"⪸\";\nvar succ = \"≻\";\nvar succcurlyeq = \"≽\";\nvar Succeeds = \"≻\";\nvar SucceedsEqual = \"⪰\";\nvar SucceedsSlantEqual = \"≽\";\nvar SucceedsTilde = \"≿\";\nvar succeq = \"⪰\";\nvar succnapprox = \"⪺\";\nvar succneqq = \"⪶\";\nvar succnsim = \"⋩\";\nvar succsim = \"≿\";\nvar SuchThat = \"∋\";\nvar sum = \"∑\";\nvar Sum = \"∑\";\nvar sung = \"♪\";\nvar sup1$1 = \"¹\";\nvar sup2$1 = \"²\";\nvar sup3$1 = \"³\";\nvar sup = \"⊃\";\nvar Sup = \"⋑\";\nvar supdot = \"⪾\";\nvar supdsub = \"⫘\";\nvar supE = \"⫆\";\nvar supe = \"⊇\";\nvar supedot = \"⫄\";\nvar Superset = \"⊃\";\nvar SupersetEqual = \"⊇\";\nvar suphsol = \"⟉\";\nvar suphsub = \"⫗\";\nvar suplarr = \"⥻\";\nvar supmult = \"⫂\";\nvar supnE = \"⫌\";\nvar supne = \"⊋\";\nvar supplus = \"⫀\";\nvar supset = \"⊃\";\nvar Supset = \"⋑\";\nvar supseteq = \"⊇\";\nvar supseteqq = \"⫆\";\nvar supsetneq = \"⊋\";\nvar supsetneqq = \"⫌\";\nvar supsim = \"⫈\";\nvar supsub = \"⫔\";\nvar supsup = \"⫖\";\nvar swarhk = \"⤦\";\nvar swarr = \"↙\";\nvar swArr = \"⇙\";\nvar swarrow = \"↙\";\nvar swnwar = \"⤪\";\nvar szlig$1 = \"ß\";\nvar Tab = \"\\t\";\nvar target = \"⌖\";\nvar Tau = \"Τ\";\nvar tau = \"τ\";\nvar tbrk = \"⎴\";\nvar Tcaron = \"Ť\";\nvar tcaron = \"ť\";\nvar Tcedil = \"Ţ\";\nvar tcedil = \"ţ\";\nvar Tcy = \"Т\";\nvar tcy = \"т\";\nvar tdot = \"⃛\";\nvar telrec = \"⌕\";\nvar Tfr = \"𝔗\";\nvar tfr = \"𝔱\";\nvar there4 = \"∴\";\nvar therefore = \"∴\";\nvar Therefore = \"∴\";\nvar Theta = \"Θ\";\nvar theta = \"θ\";\nvar thetasym = \"ϑ\";\nvar thetav = \"ϑ\";\nvar thickapprox = \"≈\";\nvar thicksim = \"\";\nvar ThickSpace = \"\";\nvar ThinSpace = \"\";\nvar thinsp = \"\";\nvar thkap = \"≈\";\nvar thksim = \"\";\nvar THORN$1 = \"Þ\";\nvar thorn$1 = \"þ\";\nvar tilde = \"˜\";\nvar Tilde = \"\";\nvar TildeEqual = \"≃\";\nvar TildeFullEqual = \"≅\";\nvar TildeTilde = \"≈\";\nvar timesbar = \"⨱\";\nvar timesb = \"⊠\";\nvar times$1 = \"×\";\nvar timesd = \"⨰\";\nvar tint = \"∭\";\nvar toea = \"⤨\";\nvar topbot = \"⌶\";\nvar topcir = \"⫱\";\nvar esm_top = \"\";\nvar Topf = \"𝕋\";\nvar topf = \"𝕥\";\nvar topfork = \"⫚\";\nvar tosa = \"⤩\";\nvar tprime = \"‴\";\nvar trade = \"™\";\nvar TRADE = \"™\";\nvar triangle = \"▵\";\nvar triangledown = \"▿\";\nvar triangleleft = \"◃\";\nvar trianglelefteq = \"⊴\";\nvar triangleq = \"≜\";\nvar triangleright = \"▹\";\nvar trianglerighteq = \"⊵\";\nvar tridot = \"◬\";\nvar trie = \"≜\";\nvar triminus = \"⨺\";\nvar TripleDot = \"⃛\";\nvar triplus = \"⨹\";\nvar trisb = \"⧍\";\nvar tritime = \"⨻\";\nvar trpezium = \"⏢\";\nvar Tscr = \"𝒯\";\nvar tscr = \"𝓉\";\nvar TScy = \"Ц\";\nvar tscy = \"ц\";\nvar TSHcy = \"Ћ\";\nvar tshcy = \"ћ\";\nvar Tstrok = \"Ŧ\";\nvar tstrok = \"ŧ\";\nvar twixt = \"≬\";\nvar twoheadleftarrow = \"↞\";\nvar twoheadrightarrow = \"↠\";\nvar Uacute$1 = \"Ú\";\nvar uacute$1 = \"ú\";\nvar uarr = \"↑\";\nvar Uarr = \"↟\";\nvar uArr = \"⇑\";\nvar Uarrocir = \"⥉\";\nvar Ubrcy = \"Ў\";\nvar ubrcy = \"ў\";\nvar Ubreve = \"Ŭ\";\nvar ubreve = \"ŭ\";\nvar Ucirc$1 = \"Û\";\nvar ucirc$1 = \"û\";\nvar Ucy = \"У\";\nvar ucy = \"у\";\nvar udarr = \"⇅\";\nvar Udblac = \"Ű\";\nvar udblac = \"ű\";\nvar udhar = \"⥮\";\nvar ufisht = \"⥾\";\nvar Ufr = \"𝔘\";\nvar ufr = \"𝔲\";\nvar Ugrave$1 = \"Ù\";\nvar ugrave$1 = \"ù\";\nvar uHar = \"⥣\";\nvar uharl = \"↿\";\nvar uharr = \"↾\";\nvar uhblk = \"▀\";\nvar ulcorn = \"⌜\";\nvar ulcorner = \"⌜\";\nvar ulcrop = \"⌏\";\nvar ultri = \"◸\";\nvar Umacr = \"Ū\";\nvar umacr = \"ū\";\nvar uml$1 = \"¨\";\nvar UnderBar = \"_\";\nvar UnderBrace = \"⏟\";\nvar UnderBracket = \"⎵\";\nvar UnderParenthesis = \"⏝\";\nvar Union = \"\";\nvar UnionPlus = \"⊎\";\nvar Uogon = \"Ų\";\nvar uogon = \"ų\";\nvar Uopf = \"𝕌\";\nvar uopf = \"𝕦\";\nvar UpArrowBar = \"⤒\";\nvar uparrow = \"↑\";\nvar UpArrow = \"↑\";\nvar Uparrow = \"⇑\";\nvar UpArrowDownArrow = \"⇅\";\nvar updownarrow = \"↕\";\nvar UpDownArrow = \"↕\";\nvar Updownarrow = \"⇕\";\nvar UpEquilibrium = \"⥮\";\nvar upharpoonleft = \"↿\";\nvar upharpoonright = \"↾\";\nvar uplus = \"⊎\";\nvar UpperLeftArrow = \"↖\";\nvar UpperRightArrow = \"↗\";\nvar upsi = \"υ\";\nvar Upsi = \"ϒ\";\nvar upsih = \"ϒ\";\nvar Upsilon = \"Υ\";\nvar upsilon = \"υ\";\nvar UpTeeArrow = \"↥\";\nvar UpTee = \"⊥\";\nvar upuparrows = \"⇈\";\nvar urcorn = \"⌝\";\nvar urcorner = \"⌝\";\nvar urcrop = \"⌎\";\nvar Uring = \"Ů\";\nvar uring = \"ů\";\nvar urtri = \"◹\";\nvar Uscr = \"𝒰\";\nvar uscr = \"𝓊\";\nvar utdot = \"⋰\";\nvar Utilde = \"Ũ\";\nvar utilde = \"ũ\";\nvar utri = \"▵\";\nvar utrif = \"▴\";\nvar uuarr = \"⇈\";\nvar Uuml$1 = \"Ü\";\nvar uuml$1 = \"ü\";\nvar uwangle = \"⦧\";\nvar vangrt = \"⦜\";\nvar varepsilon = \"ϵ\";\nvar varkappa = \"ϰ\";\nvar varnothing = \"∅\";\nvar varphi = \"ϕ\";\nvar varpi = \"ϖ\";\nvar varpropto = \"∝\";\nvar varr = \"↕\";\nvar vArr = \"⇕\";\nvar varrho = \"ϱ\";\nvar varsigma = \"ς\";\nvar varsubsetneq = \"⊊︀\";\nvar varsubsetneqq = \"⫋︀\";\nvar varsupsetneq = \"⊋︀\";\nvar varsupsetneqq = \"⫌︀\";\nvar vartheta = \"ϑ\";\nvar vartriangleleft = \"⊲\";\nvar vartriangleright = \"⊳\";\nvar vBar = \"⫨\";\nvar Vbar = \"⫫\";\nvar vBarv = \"⫩\";\nvar Vcy = \"В\";\nvar vcy = \"в\";\nvar vdash = \"⊢\";\nvar vDash = \"⊨\";\nvar Vdash = \"⊩\";\nvar VDash = \"⊫\";\nvar Vdashl = \"⫦\";\nvar veebar = \"⊻\";\nvar vee = \"\";\nvar Vee = \"\";\nvar veeeq = \"≚\";\nvar vellip = \"⋮\";\nvar verbar = \"|\";\nvar Verbar = \"‖\";\nvar vert = \"|\";\nvar Vert = \"‖\";\nvar VerticalBar = \"\";\nvar VerticalLine = \"|\";\nvar VerticalSeparator = \"❘\";\nvar VerticalTilde = \"≀\";\nvar VeryThinSpace = \"\";\nvar Vfr = \"𝔙\";\nvar vfr = \"𝔳\";\nvar vltri = \"⊲\";\nvar vnsub = \"⊂⃒\";\nvar vnsup = \"⊃⃒\";\nvar Vopf = \"𝕍\";\nvar vopf = \"𝕧\";\nvar vprop = \"∝\";\nvar vrtri = \"⊳\";\nvar Vscr = \"𝒱\";\nvar vscr = \"𝓋\";\nvar vsubnE = \"⫋︀\";\nvar vsubne = \"⊊︀\";\nvar vsupnE = \"⫌︀\";\nvar vsupne = \"⊋︀\";\nvar Vvdash = \"⊪\";\nvar vzigzag = \"⦚\";\nvar Wcirc = \"Ŵ\";\nvar wcirc = \"ŵ\";\nvar wedbar = \"⩟\";\nvar wedge = \"∧\";\nvar Wedge = \"⋀\";\nvar wedgeq = \"≙\";\nvar weierp = \"℘\";\nvar Wfr = \"𝔚\";\nvar wfr = \"𝔴\";\nvar Wopf = \"𝕎\";\nvar wopf = \"𝕨\";\nvar wp = \"℘\";\nvar wr = \"≀\";\nvar wreath = \"≀\";\nvar Wscr = \"𝒲\";\nvar wscr = \"𝓌\";\nvar xcap = \"⋂\";\nvar xcirc = \"◯\";\nvar xcup = \"\";\nvar xdtri = \"▽\";\nvar Xfr = \"𝔛\";\nvar xfr = \"𝔵\";\nvar xharr = \"⟷\";\nvar xhArr = \"⟺\";\nvar Xi = \"Ξ\";\nvar xi = \"ξ\";\nvar xlarr = \"⟵\";\nvar xlArr = \"⟸\";\nvar xmap = \"⟼\";\nvar xnis = \"⋻\";\nvar xodot = \"⨀\";\nvar Xopf = \"𝕏\";\nvar xopf = \"𝕩\";\nvar xoplus = \"⨁\";\nvar xotime = \"⨂\";\nvar xrarr = \"⟶\";\nvar xrArr = \"⟹\";\nvar Xscr = \"𝒳\";\nvar xscr = \"𝓍\";\nvar xsqcup = \"⨆\";\nvar xuplus = \"⨄\";\nvar xutri = \"△\";\nvar xvee = \"\";\nvar xwedge = \"⋀\";\nvar Yacute$1 = \"Ý\";\nvar yacute$1 = \"ý\";\nvar YAcy = \"Я\";\nvar yacy = \"я\";\nvar Ycirc = \"Ŷ\";\nvar ycirc = \"ŷ\";\nvar Ycy = \"Ы\";\nvar ycy = \"ы\";\nvar yen$1 = \"¥\";\nvar Yfr = \"𝔜\";\nvar yfr = \"𝔶\";\nvar YIcy = \"Ї\";\nvar yicy = \"ї\";\nvar Yopf = \"𝕐\";\nvar yopf = \"𝕪\";\nvar Yscr = \"𝒴\";\nvar yscr = \"𝓎\";\nvar YUcy = \"Ю\";\nvar yucy = \"ю\";\nvar yuml$1 = \"ÿ\";\nvar Yuml = \"Ÿ\";\nvar Zacute = \"Ź\";\nvar zacute = \"ź\";\nvar Zcaron = \"Ž\";\nvar zcaron = \"ž\";\nvar Zcy = \"З\";\nvar zcy = \"з\";\nvar Zdot = \"Ż\";\nvar zdot = \"ż\";\nvar zeetrf = \"\";\nvar ZeroWidthSpace = \"\";\nvar Zeta = \"Ζ\";\nvar zeta = \"ζ\";\nvar zfr = \"𝔷\";\nvar Zfr = \"\";\nvar ZHcy = \"Ж\";\nvar zhcy = \"ж\";\nvar zigrarr = \"⇝\";\nvar zopf = \"𝕫\";\nvar Zopf = \"\";\nvar Zscr = \"𝒵\";\nvar zscr = \"𝓏\";\nvar zwj = \"\";\nvar zwnj = \"\";\nvar require$$1$1 = {\n Aacute: Aacute$1,\n aacute: aacute$1,\n Abreve: Abreve,\n abreve: abreve,\n ac: ac,\n acd: acd,\n acE: acE,\n Acirc: Acirc$1,\n acirc: acirc$1,\n acute: acute$1,\n Acy: Acy,\n acy: acy,\n AElig: AElig$1,\n aelig: aelig$1,\n af: af,\n Afr: Afr,\n afr: afr,\n Agrave: Agrave$1,\n agrave: agrave$1,\n alefsym: alefsym,\n aleph: aleph,\n Alpha: Alpha,\n alpha: alpha,\n Amacr: Amacr,\n amacr: amacr,\n amalg: amalg,\n amp: amp$2,\n AMP: AMP$1,\n andand: andand,\n And: And,\n and: and,\n andd: andd,\n andslope: andslope,\n andv: andv,\n ang: ang,\n ange: ange,\n angle: angle,\n angmsdaa: angmsdaa,\n angmsdab: angmsdab,\n angmsdac: angmsdac,\n angmsdad: angmsdad,\n angmsdae: angmsdae,\n angmsdaf: angmsdaf,\n angmsdag: angmsdag,\n angmsdah: angmsdah,\n angmsd: angmsd,\n angrt: angrt,\n angrtvb: angrtvb,\n angrtvbd: angrtvbd,\n angsph: angsph,\n angst: angst,\n angzarr: angzarr,\n Aogon: Aogon,\n aogon: aogon,\n Aopf: Aopf,\n aopf: aopf,\n apacir: apacir,\n ap: ap,\n apE: apE,\n ape: ape,\n apid: apid,\n apos: apos$1,\n ApplyFunction: ApplyFunction,\n approx: approx,\n approxeq: approxeq,\n Aring: Aring$1,\n aring: aring$1,\n Ascr: Ascr,\n ascr: ascr,\n Assign: Assign,\n ast: ast,\n asymp: asymp,\n asympeq: asympeq,\n Atilde: Atilde$1,\n atilde: atilde$1,\n Auml: Auml$1,\n auml: auml$1,\n awconint: awconint,\n awint: awint,\n backcong: backcong,\n backepsilon: backepsilon,\n backprime: backprime,\n backsim: backsim,\n backsimeq: backsimeq,\n Backslash: Backslash,\n Barv: Barv,\n barvee: barvee,\n barwed: barwed,\n Barwed: Barwed,\n barwedge: barwedge,\n bbrk: bbrk,\n bbrktbrk: bbrktbrk,\n bcong: bcong,\n Bcy: Bcy,\n bcy: bcy,\n bdquo: bdquo,\n becaus: becaus,\n because: because,\n Because: Because,\n bemptyv: bemptyv,\n bepsi: bepsi,\n bernou: bernou,\n Bernoullis: Bernoullis,\n Beta: Beta,\n beta: beta,\n beth: beth,\n between: between,\n Bfr: Bfr,\n bfr: bfr,\n bigcap: bigcap,\n bigcirc: bigcirc,\n bigcup: bigcup,\n bigodot: bigodot,\n bigoplus: bigoplus,\n bigotimes: bigotimes,\n bigsqcup: bigsqcup,\n bigstar: bigstar,\n bigtriangledown: bigtriangledown,\n bigtriangleup: bigtriangleup,\n biguplus: biguplus,\n bigvee: bigvee,\n bigwedge: bigwedge,\n bkarow: bkarow,\n blacklozenge: blacklozenge,\n blacksquare: blacksquare,\n blacktriangle: blacktriangle,\n blacktriangledown: blacktriangledown,\n blacktriangleleft: blacktriangleleft,\n blacktriangleright: blacktriangleright,\n blank: blank,\n blk12: blk12,\n blk14: blk14,\n blk34: blk34,\n block: block,\n bne: bne,\n bnequiv: bnequiv,\n bNot: bNot,\n bnot: bnot,\n Bopf: Bopf,\n bopf: bopf,\n bot: bot,\n bottom: bottom,\n bowtie: bowtie,\n boxbox: boxbox,\n boxdl: boxdl,\n boxdL: boxdL,\n boxDl: boxDl,\n boxDL: boxDL,\n boxdr: boxdr,\n boxdR: boxdR,\n boxDr: boxDr,\n boxDR: boxDR,\n boxh: boxh,\n boxH: boxH,\n boxhd: boxhd,\n boxHd: boxHd,\n boxhD: boxhD,\n boxHD: boxHD,\n boxhu: boxhu,\n boxHu: boxHu,\n boxhU: boxhU,\n boxHU: boxHU,\n boxminus: boxminus,\n boxplus: boxplus,\n boxtimes: boxtimes,\n boxul: boxul,\n boxuL: boxuL,\n boxUl: boxUl,\n boxUL: boxUL,\n boxur: boxur,\n boxuR: boxuR,\n boxUr: boxUr,\n boxUR: boxUR,\n boxv: boxv,\n boxV: boxV,\n boxvh: boxvh,\n boxvH: boxvH,\n boxVh: boxVh,\n boxVH: boxVH,\n boxvl: boxvl,\n boxvL: boxvL,\n boxVl: boxVl,\n boxVL: boxVL,\n boxvr: boxvr,\n boxvR: boxvR,\n boxVr: boxVr,\n boxVR: boxVR,\n bprime: bprime,\n breve: breve,\n Breve: Breve,\n brvbar: brvbar$1,\n bscr: bscr,\n Bscr: Bscr,\n bsemi: bsemi,\n bsim: bsim,\n bsime: bsime,\n bsolb: bsolb,\n bsol: bsol,\n bsolhsub: bsolhsub,\n bull: bull,\n bullet: bullet,\n bump: bump,\n bumpE: bumpE,\n bumpe: bumpe,\n Bumpeq: Bumpeq,\n bumpeq: bumpeq,\n Cacute: Cacute,\n cacute: cacute,\n capand: capand,\n capbrcup: capbrcup,\n capcap: capcap,\n cap: cap,\n Cap: Cap,\n capcup: capcup,\n capdot: capdot,\n CapitalDifferentialD: CapitalDifferentialD,\n caps: caps,\n caret: caret,\n caron: caron,\n Cayleys: Cayleys,\n ccaps: ccaps,\n Ccaron: Ccaron,\n ccaron: ccaron,\n Ccedil: Ccedil$1,\n ccedil: ccedil$1,\n Ccirc: Ccirc,\n ccirc: ccirc,\n Cconint: Cconint,\n ccups: ccups,\n ccupssm: ccupssm,\n Cdot: Cdot,\n cdot: cdot,\n cedil: cedil$1,\n Cedilla: Cedilla,\n cemptyv: cemptyv,\n cent: cent$1,\n centerdot: centerdot,\n CenterDot: CenterDot,\n cfr: cfr,\n Cfr: Cfr,\n CHcy: CHcy,\n chcy: chcy,\n check: check,\n checkmark: checkmark,\n Chi: Chi,\n chi: chi,\n circ: circ,\n circeq: circeq,\n circlearrowleft: circlearrowleft,\n circlearrowright: circlearrowright,\n circledast: circledast,\n circledcirc: circledcirc,\n circleddash: circleddash,\n CircleDot: CircleDot,\n circledR: circledR,\n circledS: circledS,\n CircleMinus: CircleMinus,\n CirclePlus: CirclePlus,\n CircleTimes: CircleTimes,\n cir: cir,\n cirE: cirE,\n cire: cire,\n cirfnint: cirfnint,\n cirmid: cirmid,\n cirscir: cirscir,\n ClockwiseContourIntegral: ClockwiseContourIntegral,\n CloseCurlyDoubleQuote: CloseCurlyDoubleQuote,\n CloseCurlyQuote: CloseCurlyQuote,\n clubs: clubs,\n clubsuit: clubsuit,\n colon: colon,\n Colon: Colon,\n Colone: Colone,\n colone: colone,\n coloneq: coloneq,\n comma: comma,\n commat: commat,\n comp: comp,\n compfn: compfn,\n complement: complement,\n complexes: complexes,\n cong: cong,\n congdot: congdot,\n Congruent: Congruent,\n conint: conint,\n Conint: Conint,\n ContourIntegral: ContourIntegral,\n copf: copf,\n Copf: Copf,\n coprod: coprod,\n Coproduct: Coproduct,\n copy: copy$1,\n COPY: COPY$1,\n copysr: copysr,\n CounterClockwiseContourIntegral: CounterClockwiseContourIntegral,\n crarr: crarr,\n cross: cross,\n Cross: Cross,\n Cscr: Cscr,\n cscr: cscr,\n csub: csub,\n csube: csube,\n csup: csup,\n csupe: csupe,\n ctdot: ctdot,\n cudarrl: cudarrl,\n cudarrr: cudarrr,\n cuepr: cuepr,\n cuesc: cuesc,\n cularr: cularr,\n cularrp: cularrp,\n cupbrcap: cupbrcap,\n cupcap: cupcap,\n CupCap: CupCap,\n cup: cup,\n Cup: Cup,\n cupcup: cupcup,\n cupdot: cupdot,\n cupor: cupor,\n cups: cups,\n curarr: curarr,\n curarrm: curarrm,\n curlyeqprec: curlyeqprec,\n curlyeqsucc: curlyeqsucc,\n curlyvee: curlyvee,\n curlywedge: curlywedge,\n curren: curren$1,\n curvearrowleft: curvearrowleft,\n curvearrowright: curvearrowright,\n cuvee: cuvee,\n cuwed: cuwed,\n cwconint: cwconint,\n cwint: cwint,\n cylcty: cylcty,\n dagger: dagger,\n Dagger: Dagger,\n daleth: daleth,\n darr: darr,\n Darr: Darr,\n dArr: dArr,\n dash: dash,\n Dashv: Dashv,\n dashv: dashv,\n dbkarow: dbkarow,\n dblac: dblac,\n Dcaron: Dcaron,\n dcaron: dcaron,\n Dcy: Dcy,\n dcy: dcy,\n ddagger: ddagger,\n ddarr: ddarr,\n DD: DD,\n dd: dd,\n DDotrahd: DDotrahd,\n ddotseq: ddotseq,\n deg: deg$1,\n Del: Del,\n Delta: Delta,\n delta: delta,\n demptyv: demptyv,\n dfisht: dfisht,\n Dfr: Dfr,\n dfr: dfr,\n dHar: dHar,\n dharl: dharl,\n dharr: dharr,\n DiacriticalAcute: DiacriticalAcute,\n DiacriticalDot: DiacriticalDot,\n DiacriticalDoubleAcute: DiacriticalDoubleAcute,\n DiacriticalGrave: DiacriticalGrave,\n DiacriticalTilde: DiacriticalTilde,\n diam: diam,\n diamond: diamond,\n Diamond: Diamond,\n diamondsuit: diamondsuit,\n diams: diams,\n die: die,\n DifferentialD: DifferentialD,\n digamma: digamma,\n disin: disin,\n div: div,\n divide: divide$1,\n divideontimes: divideontimes,\n divonx: divonx,\n DJcy: DJcy,\n djcy: djcy,\n dlcorn: dlcorn,\n dlcrop: dlcrop,\n dollar: dollar,\n Dopf: Dopf,\n dopf: dopf,\n Dot: Dot,\n dot: dot,\n DotDot: DotDot,\n doteq: doteq,\n doteqdot: doteqdot,\n DotEqual: DotEqual,\n dotminus: dotminus,\n dotplus: dotplus,\n dotsquare: dotsquare,\n doublebarwedge: doublebarwedge,\n DoubleContourIntegral: DoubleContourIntegral,\n DoubleDot: DoubleDot,\n DoubleDownArrow: DoubleDownArrow,\n DoubleLeftArrow: DoubleLeftArrow,\n DoubleLeftRightArrow: DoubleLeftRightArrow,\n DoubleLeftTee: DoubleLeftTee,\n DoubleLongLeftArrow: DoubleLongLeftArrow,\n DoubleLongLeftRightArrow: DoubleLongLeftRightArrow,\n DoubleLongRightArrow: DoubleLongRightArrow,\n DoubleRightArrow: DoubleRightArrow,\n DoubleRightTee: DoubleRightTee,\n DoubleUpArrow: DoubleUpArrow,\n DoubleUpDownArrow: DoubleUpDownArrow,\n DoubleVerticalBar: DoubleVerticalBar,\n DownArrowBar: DownArrowBar,\n downarrow: downarrow,\n DownArrow: DownArrow,\n Downarrow: Downarrow,\n DownArrowUpArrow: DownArrowUpArrow,\n DownBreve: DownBreve,\n downdownarrows: downdownarrows,\n downharpoonleft: downharpoonleft,\n downharpoonright: downharpoonright,\n DownLeftRightVector: DownLeftRightVector,\n DownLeftTeeVector: DownLeftTeeVector,\n DownLeftVectorBar: DownLeftVectorBar,\n DownLeftVector: DownLeftVector,\n DownRightTeeVector: DownRightTeeVector,\n DownRightVectorBar: DownRightVectorBar,\n DownRightVector: DownRightVector,\n DownTeeArrow: DownTeeArrow,\n DownTee: DownTee,\n drbkarow: drbkarow,\n drcorn: drcorn,\n drcrop: drcrop,\n Dscr: Dscr,\n dscr: dscr,\n DScy: DScy,\n dscy: dscy,\n dsol: dsol,\n Dstrok: Dstrok,\n dstrok: dstrok,\n dtdot: dtdot,\n dtri: dtri,\n dtrif: dtrif,\n duarr: duarr,\n duhar: duhar,\n dwangle: dwangle,\n DZcy: DZcy,\n dzcy: dzcy,\n dzigrarr: dzigrarr,\n Eacute: Eacute$1,\n eacute: eacute$1,\n easter: easter,\n Ecaron: Ecaron,\n ecaron: ecaron,\n Ecirc: Ecirc$1,\n ecirc: ecirc$1,\n ecir: ecir,\n ecolon: ecolon,\n Ecy: Ecy,\n ecy: ecy,\n eDDot: eDDot,\n Edot: Edot,\n edot: edot,\n eDot: eDot,\n ee: ee,\n efDot: efDot,\n Efr: Efr,\n efr: efr,\n eg: eg,\n Egrave: Egrave$1,\n egrave: egrave$1,\n egs: egs,\n egsdot: egsdot,\n el: el,\n Element: Element,\n elinters: elinters,\n ell: ell,\n els: els,\n elsdot: elsdot,\n Emacr: Emacr,\n emacr: emacr,\n empty: empty,\n emptyset: emptyset,\n EmptySmallSquare: EmptySmallSquare,\n emptyv: emptyv,\n EmptyVerySmallSquare: EmptyVerySmallSquare,\n emsp13: emsp13,\n emsp14: emsp14,\n emsp: emsp,\n ENG: ENG,\n eng: eng,\n ensp: ensp,\n Eogon: Eogon,\n eogon: eogon,\n Eopf: Eopf,\n eopf: eopf,\n epar: epar,\n eparsl: eparsl,\n eplus: eplus,\n epsi: epsi,\n Epsilon: Epsilon,\n epsilon: epsilon,\n epsiv: epsiv,\n eqcirc: eqcirc,\n eqcolon: eqcolon,\n eqsim: eqsim,\n eqslantgtr: eqslantgtr,\n eqslantless: eqslantless,\n Equal: Equal,\n equals: equals,\n EqualTilde: EqualTilde,\n equest: equest,\n Equilibrium: Equilibrium,\n equiv: equiv,\n equivDD: equivDD,\n eqvparsl: eqvparsl,\n erarr: erarr,\n erDot: erDot,\n escr: escr,\n Escr: Escr,\n esdot: esdot,\n Esim: Esim,\n esim: esim,\n Eta: Eta,\n eta: eta,\n ETH: ETH$1,\n eth: eth$1,\n Euml: Euml$1,\n euml: euml$1,\n euro: euro,\n excl: excl,\n exist: exist,\n Exists: Exists,\n expectation: expectation,\n exponentiale: exponentiale,\n ExponentialE: ExponentialE,\n fallingdotseq: fallingdotseq,\n Fcy: Fcy,\n fcy: fcy,\n female: female,\n ffilig: ffilig,\n fflig: fflig,\n ffllig: ffllig,\n Ffr: Ffr,\n ffr: ffr,\n filig: filig,\n FilledSmallSquare: FilledSmallSquare,\n FilledVerySmallSquare: FilledVerySmallSquare,\n fjlig: fjlig,\n flat: flat,\n fllig: fllig,\n fltns: fltns,\n fnof: fnof,\n Fopf: Fopf,\n fopf: fopf,\n forall: forall,\n ForAll: ForAll,\n fork: fork,\n forkv: forkv,\n Fouriertrf: Fouriertrf,\n fpartint: fpartint,\n frac12: frac12$1,\n frac13: frac13,\n frac14: frac14$1,\n frac15: frac15,\n frac16: frac16,\n frac18: frac18,\n frac23: frac23,\n frac25: frac25,\n frac34: frac34$1,\n frac35: frac35,\n frac38: frac38,\n frac45: frac45,\n frac56: frac56,\n frac58: frac58,\n frac78: frac78,\n frasl: frasl,\n frown: frown,\n fscr: fscr,\n Fscr: Fscr,\n gacute: gacute,\n Gamma: Gamma,\n gamma: gamma,\n Gammad: Gammad,\n gammad: gammad,\n gap: gap,\n Gbreve: Gbreve,\n gbreve: gbreve,\n Gcedil: Gcedil,\n Gcirc: Gcirc,\n gcirc: gcirc,\n Gcy: Gcy,\n gcy: gcy,\n Gdot: Gdot,\n gdot: gdot,\n ge: ge,\n gE: gE,\n gEl: gEl,\n gel: gel,\n geq: geq,\n geqq: geqq,\n geqslant: geqslant,\n gescc: gescc,\n ges: ges,\n gesdot: gesdot,\n gesdoto: gesdoto,\n gesdotol: gesdotol,\n gesl: gesl,\n gesles: gesles,\n Gfr: Gfr,\n gfr: gfr,\n gg: gg,\n Gg: Gg,\n ggg: ggg,\n gimel: gimel,\n GJcy: GJcy,\n gjcy: gjcy,\n gla: gla,\n gl: gl,\n glE: glE,\n glj: glj,\n gnap: gnap,\n gnapprox: gnapprox,\n gne: gne,\n gnE: gnE,\n gneq: gneq,\n gneqq: gneqq,\n gnsim: gnsim,\n Gopf: Gopf,\n gopf: gopf,\n grave: grave,\n GreaterEqual: GreaterEqual,\n GreaterEqualLess: GreaterEqualLess,\n GreaterFullEqual: GreaterFullEqual,\n GreaterGreater: GreaterGreater,\n GreaterLess: GreaterLess,\n GreaterSlantEqual: GreaterSlantEqual,\n GreaterTilde: GreaterTilde,\n Gscr: Gscr,\n gscr: gscr,\n gsim: gsim,\n gsime: gsime,\n gsiml: gsiml,\n gtcc: gtcc,\n gtcir: gtcir,\n gt: gt$2,\n GT: GT$1,\n Gt: Gt,\n gtdot: gtdot,\n gtlPar: gtlPar,\n gtquest: gtquest,\n gtrapprox: gtrapprox,\n gtrarr: gtrarr,\n gtrdot: gtrdot,\n gtreqless: gtreqless,\n gtreqqless: gtreqqless,\n gtrless: gtrless,\n gtrsim: gtrsim,\n gvertneqq: gvertneqq,\n gvnE: gvnE,\n Hacek: Hacek,\n hairsp: hairsp,\n half: half,\n hamilt: hamilt,\n HARDcy: HARDcy,\n hardcy: hardcy,\n harrcir: harrcir,\n harr: harr,\n hArr: hArr,\n harrw: harrw,\n Hat: Hat,\n hbar: hbar,\n Hcirc: Hcirc,\n hcirc: hcirc,\n hearts: hearts,\n heartsuit: heartsuit,\n hellip: hellip,\n hercon: hercon,\n hfr: hfr,\n Hfr: Hfr,\n HilbertSpace: HilbertSpace,\n hksearow: hksearow,\n hkswarow: hkswarow,\n hoarr: hoarr,\n homtht: homtht,\n hookleftarrow: hookleftarrow,\n hookrightarrow: hookrightarrow,\n hopf: hopf,\n Hopf: Hopf,\n horbar: horbar,\n HorizontalLine: HorizontalLine,\n hscr: hscr,\n Hscr: Hscr,\n hslash: hslash,\n Hstrok: Hstrok,\n hstrok: hstrok,\n HumpDownHump: HumpDownHump,\n HumpEqual: HumpEqual,\n hybull: hybull,\n hyphen: hyphen,\n Iacute: Iacute$1,\n iacute: iacute$1,\n ic: ic,\n Icirc: Icirc$1,\n icirc: icirc$1,\n Icy: Icy,\n icy: icy,\n Idot: Idot,\n IEcy: IEcy,\n iecy: iecy,\n iexcl: iexcl$1,\n iff: iff,\n ifr: ifr,\n Ifr: Ifr,\n Igrave: Igrave$1,\n igrave: igrave$1,\n ii: ii,\n iiiint: iiiint,\n iiint: iiint,\n iinfin: iinfin,\n iiota: iiota,\n IJlig: IJlig,\n ijlig: ijlig,\n Imacr: Imacr,\n imacr: imacr,\n image: esm_image,\n ImaginaryI: ImaginaryI,\n imagline: imagline,\n imagpart: imagpart,\n imath: imath,\n Im: Im,\n imof: imof,\n imped: imped,\n Implies: Implies,\n incare: incare,\n \"in\": \"∈\",\n infin: infin,\n infintie: infintie,\n inodot: inodot,\n intcal: intcal,\n int: esm_int,\n Int: Int,\n integers: integers,\n Integral: Integral,\n intercal: intercal,\n Intersection: Intersection,\n intlarhk: intlarhk,\n intprod: intprod,\n InvisibleComma: InvisibleComma,\n InvisibleTimes: InvisibleTimes,\n IOcy: IOcy,\n iocy: iocy,\n Iogon: Iogon,\n iogon: iogon,\n Iopf: Iopf,\n iopf: iopf,\n Iota: Iota,\n iota: iota,\n iprod: iprod,\n iquest: iquest$1,\n iscr: iscr,\n Iscr: Iscr,\n isin: isin,\n isindot: isindot,\n isinE: isinE,\n isins: isins,\n isinsv: isinsv,\n isinv: isinv,\n it: it,\n Itilde: Itilde,\n itilde: itilde,\n Iukcy: Iukcy,\n iukcy: iukcy,\n Iuml: Iuml$1,\n iuml: iuml$1,\n Jcirc: Jcirc,\n jcirc: jcirc,\n Jcy: Jcy,\n jcy: jcy,\n Jfr: Jfr,\n jfr: jfr,\n jmath: jmath,\n Jopf: Jopf,\n jopf: jopf,\n Jscr: Jscr,\n jscr: jscr,\n Jsercy: Jsercy,\n jsercy: jsercy,\n Jukcy: Jukcy,\n jukcy: jukcy,\n Kappa: Kappa,\n kappa: kappa,\n kappav: kappav,\n Kcedil: Kcedil,\n kcedil: kcedil,\n Kcy: Kcy,\n kcy: kcy,\n Kfr: Kfr,\n kfr: kfr,\n kgreen: kgreen,\n KHcy: KHcy,\n khcy: khcy,\n KJcy: KJcy,\n kjcy: kjcy,\n Kopf: Kopf,\n kopf: kopf,\n Kscr: Kscr,\n kscr: kscr,\n lAarr: lAarr,\n Lacute: Lacute,\n lacute: lacute,\n laemptyv: laemptyv,\n lagran: lagran,\n Lambda: Lambda,\n lambda: lambda,\n lang: lang,\n Lang: Lang,\n langd: langd,\n langle: langle,\n lap: lap,\n Laplacetrf: Laplacetrf,\n laquo: laquo$1,\n larrb: larrb,\n larrbfs: larrbfs,\n larr: larr,\n Larr: Larr,\n lArr: lArr,\n larrfs: larrfs,\n larrhk: larrhk,\n larrlp: larrlp,\n larrpl: larrpl,\n larrsim: larrsim,\n larrtl: larrtl,\n latail: latail,\n lAtail: lAtail,\n lat: lat,\n late: late,\n lates: lates,\n lbarr: lbarr,\n lBarr: lBarr,\n lbbrk: lbbrk,\n lbrace: lbrace,\n lbrack: lbrack,\n lbrke: lbrke,\n lbrksld: lbrksld,\n lbrkslu: lbrkslu,\n Lcaron: Lcaron,\n lcaron: lcaron,\n Lcedil: Lcedil,\n lcedil: lcedil,\n lceil: lceil,\n lcub: lcub,\n Lcy: Lcy,\n lcy: lcy,\n ldca: ldca,\n ldquo: ldquo,\n ldquor: ldquor,\n ldrdhar: ldrdhar,\n ldrushar: ldrushar,\n ldsh: ldsh,\n le: le,\n lE: lE,\n LeftAngleBracket: LeftAngleBracket,\n LeftArrowBar: LeftArrowBar,\n leftarrow: leftarrow,\n LeftArrow: LeftArrow,\n Leftarrow: Leftarrow,\n LeftArrowRightArrow: LeftArrowRightArrow,\n leftarrowtail: leftarrowtail,\n LeftCeiling: LeftCeiling,\n LeftDoubleBracket: LeftDoubleBracket,\n LeftDownTeeVector: LeftDownTeeVector,\n LeftDownVectorBar: LeftDownVectorBar,\n LeftDownVector: LeftDownVector,\n LeftFloor: LeftFloor,\n leftharpoondown: leftharpoondown,\n leftharpoonup: leftharpoonup,\n leftleftarrows: leftleftarrows,\n leftrightarrow: leftrightarrow,\n LeftRightArrow: LeftRightArrow,\n Leftrightarrow: Leftrightarrow,\n leftrightarrows: leftrightarrows,\n leftrightharpoons: leftrightharpoons,\n leftrightsquigarrow: leftrightsquigarrow,\n LeftRightVector: LeftRightVector,\n LeftTeeArrow: LeftTeeArrow,\n LeftTee: LeftTee,\n LeftTeeVector: LeftTeeVector,\n leftthreetimes: leftthreetimes,\n LeftTriangleBar: LeftTriangleBar,\n LeftTriangle: LeftTriangle,\n LeftTriangleEqual: LeftTriangleEqual,\n LeftUpDownVector: LeftUpDownVector,\n LeftUpTeeVector: LeftUpTeeVector,\n LeftUpVectorBar: LeftUpVectorBar,\n LeftUpVector: LeftUpVector,\n LeftVectorBar: LeftVectorBar,\n LeftVector: LeftVector,\n lEg: lEg,\n leg: leg,\n leq: leq,\n leqq: leqq,\n leqslant: leqslant,\n lescc: lescc,\n les: les,\n lesdot: lesdot,\n lesdoto: lesdoto,\n lesdotor: lesdotor,\n lesg: lesg,\n lesges: lesges,\n lessapprox: lessapprox,\n lessdot: lessdot,\n lesseqgtr: lesseqgtr,\n lesseqqgtr: lesseqqgtr,\n LessEqualGreater: LessEqualGreater,\n LessFullEqual: LessFullEqual,\n LessGreater: LessGreater,\n lessgtr: lessgtr,\n LessLess: LessLess,\n lesssim: lesssim,\n LessSlantEqual: LessSlantEqual,\n LessTilde: LessTilde,\n lfisht: lfisht,\n lfloor: lfloor,\n Lfr: Lfr,\n lfr: lfr,\n lg: lg,\n lgE: lgE,\n lHar: lHar,\n lhard: lhard,\n lharu: lharu,\n lharul: lharul,\n lhblk: lhblk,\n LJcy: LJcy,\n ljcy: ljcy,\n llarr: llarr,\n ll: ll,\n Ll: Ll,\n llcorner: llcorner,\n Lleftarrow: Lleftarrow,\n llhard: llhard,\n lltri: lltri,\n Lmidot: Lmidot,\n lmidot: lmidot,\n lmoustache: lmoustache,\n lmoust: lmoust,\n lnap: lnap,\n lnapprox: lnapprox,\n lne: lne,\n lnE: lnE,\n lneq: lneq,\n lneqq: lneqq,\n lnsim: lnsim,\n loang: loang,\n loarr: loarr,\n lobrk: lobrk,\n longleftarrow: longleftarrow,\n LongLeftArrow: LongLeftArrow,\n Longleftarrow: Longleftarrow,\n longleftrightarrow: longleftrightarrow,\n LongLeftRightArrow: LongLeftRightArrow,\n Longleftrightarrow: Longleftrightarrow,\n longmapsto: longmapsto,\n longrightarrow: longrightarrow,\n LongRightArrow: LongRightArrow,\n Longrightarrow: Longrightarrow,\n looparrowleft: looparrowleft,\n looparrowright: looparrowright,\n lopar: lopar,\n Lopf: Lopf,\n lopf: lopf,\n loplus: loplus,\n lotimes: lotimes,\n lowast: lowast,\n lowbar: lowbar,\n LowerLeftArrow: LowerLeftArrow,\n LowerRightArrow: LowerRightArrow,\n loz: loz,\n lozenge: lozenge,\n lozf: lozf,\n lpar: lpar,\n lparlt: lparlt,\n lrarr: lrarr,\n lrcorner: lrcorner,\n lrhar: lrhar,\n lrhard: lrhard,\n lrm: lrm,\n lrtri: lrtri,\n lsaquo: lsaquo,\n lscr: lscr,\n Lscr: Lscr,\n lsh: lsh,\n Lsh: Lsh,\n lsim: lsim,\n lsime: lsime,\n lsimg: lsimg,\n lsqb: lsqb,\n lsquo: lsquo,\n lsquor: lsquor,\n Lstrok: Lstrok,\n lstrok: lstrok,\n ltcc: ltcc,\n ltcir: ltcir,\n lt: lt$2,\n LT: LT$1,\n Lt: Lt,\n ltdot: ltdot,\n lthree: lthree,\n ltimes: ltimes,\n ltlarr: ltlarr,\n ltquest: ltquest,\n ltri: ltri,\n ltrie: ltrie,\n ltrif: ltrif,\n ltrPar: ltrPar,\n lurdshar: lurdshar,\n luruhar: luruhar,\n lvertneqq: lvertneqq,\n lvnE: lvnE,\n macr: macr$1,\n male: male,\n malt: malt,\n maltese: maltese,\n \"Map\": \"⤅\",\n map: map,\n mapsto: mapsto,\n mapstodown: mapstodown,\n mapstoleft: mapstoleft,\n mapstoup: mapstoup,\n marker: marker,\n mcomma: mcomma,\n Mcy: Mcy,\n mcy: mcy,\n mdash: mdash,\n mDDot: mDDot,\n measuredangle: measuredangle,\n MediumSpace: MediumSpace,\n Mellintrf: Mellintrf,\n Mfr: Mfr,\n mfr: mfr,\n mho: mho,\n micro: micro$1,\n midast: midast,\n midcir: midcir,\n mid: mid,\n middot: middot$1,\n minusb: minusb,\n minus: minus,\n minusd: minusd,\n minusdu: minusdu,\n MinusPlus: MinusPlus,\n mlcp: mlcp,\n mldr: mldr,\n mnplus: mnplus,\n models: models,\n Mopf: Mopf,\n mopf: mopf,\n mp: mp,\n mscr: mscr,\n Mscr: Mscr,\n mstpos: mstpos,\n Mu: Mu,\n mu: mu,\n multimap: multimap,\n mumap: mumap,\n nabla: nabla,\n Nacute: Nacute,\n nacute: nacute,\n nang: nang,\n nap: nap,\n napE: napE,\n napid: napid,\n napos: napos,\n napprox: napprox,\n natural: natural,\n naturals: naturals,\n natur: natur,\n nbsp: nbsp$1,\n nbump: nbump,\n nbumpe: nbumpe,\n ncap: ncap,\n Ncaron: Ncaron,\n ncaron: ncaron,\n Ncedil: Ncedil,\n ncedil: ncedil,\n ncong: ncong,\n ncongdot: ncongdot,\n ncup: ncup,\n Ncy: Ncy,\n ncy: ncy,\n ndash: ndash,\n nearhk: nearhk,\n nearr: nearr,\n neArr: neArr,\n nearrow: nearrow,\n ne: ne,\n nedot: nedot,\n NegativeMediumSpace: NegativeMediumSpace,\n NegativeThickSpace: NegativeThickSpace,\n NegativeThinSpace: NegativeThinSpace,\n NegativeVeryThinSpace: NegativeVeryThinSpace,\n nequiv: nequiv,\n nesear: nesear,\n nesim: nesim,\n NestedGreaterGreater: NestedGreaterGreater,\n NestedLessLess: NestedLessLess,\n NewLine: NewLine,\n nexist: nexist,\n nexists: nexists,\n Nfr: Nfr,\n nfr: nfr,\n ngE: ngE,\n nge: nge,\n ngeq: ngeq,\n ngeqq: ngeqq,\n ngeqslant: ngeqslant,\n nges: nges,\n nGg: nGg,\n ngsim: ngsim,\n nGt: nGt,\n ngt: ngt,\n ngtr: ngtr,\n nGtv: nGtv,\n nharr: nharr,\n nhArr: nhArr,\n nhpar: nhpar,\n ni: ni,\n nis: nis,\n nisd: nisd,\n niv: niv,\n NJcy: NJcy,\n njcy: njcy,\n nlarr: nlarr,\n nlArr: nlArr,\n nldr: nldr,\n nlE: nlE,\n nle: nle,\n nleftarrow: nleftarrow,\n nLeftarrow: nLeftarrow,\n nleftrightarrow: nleftrightarrow,\n nLeftrightarrow: nLeftrightarrow,\n nleq: nleq,\n nleqq: nleqq,\n nleqslant: nleqslant,\n nles: nles,\n nless: nless,\n nLl: nLl,\n nlsim: nlsim,\n nLt: nLt,\n nlt: nlt,\n nltri: nltri,\n nltrie: nltrie,\n nLtv: nLtv,\n nmid: nmid,\n NoBreak: NoBreak,\n NonBreakingSpace: NonBreakingSpace,\n nopf: nopf,\n Nopf: Nopf,\n Not: Not,\n not: not$1,\n NotCongruent: NotCongruent,\n NotCupCap: NotCupCap,\n NotDoubleVerticalBar: NotDoubleVerticalBar,\n NotElement: NotElement,\n NotEqual: NotEqual,\n NotEqualTilde: NotEqualTilde,\n NotExists: NotExists,\n NotGreater: NotGreater,\n NotGreaterEqual: NotGreaterEqual,\n NotGreaterFullEqual: NotGreaterFullEqual,\n NotGreaterGreater: NotGreaterGreater,\n NotGreaterLess: NotGreaterLess,\n NotGreaterSlantEqual: NotGreaterSlantEqual,\n NotGreaterTilde: NotGreaterTilde,\n NotHumpDownHump: NotHumpDownHump,\n NotHumpEqual: NotHumpEqual,\n notin: notin,\n notindot: notindot,\n notinE: notinE,\n notinva: notinva,\n notinvb: notinvb,\n notinvc: notinvc,\n NotLeftTriangleBar: NotLeftTriangleBar,\n NotLeftTriangle: NotLeftTriangle,\n NotLeftTriangleEqual: NotLeftTriangleEqual,\n NotLess: NotLess,\n NotLessEqual: NotLessEqual,\n NotLessGreater: NotLessGreater,\n NotLessLess: NotLessLess,\n NotLessSlantEqual: NotLessSlantEqual,\n NotLessTilde: NotLessTilde,\n NotNestedGreaterGreater: NotNestedGreaterGreater,\n NotNestedLessLess: NotNestedLessLess,\n notni: notni,\n notniva: notniva,\n notnivb: notnivb,\n notnivc: notnivc,\n NotPrecedes: NotPrecedes,\n NotPrecedesEqual: NotPrecedesEqual,\n NotPrecedesSlantEqual: NotPrecedesSlantEqual,\n NotReverseElement: NotReverseElement,\n NotRightTriangleBar: NotRightTriangleBar,\n NotRightTriangle: NotRightTriangle,\n NotRightTriangleEqual: NotRightTriangleEqual,\n NotSquareSubset: NotSquareSubset,\n NotSquareSubsetEqual: NotSquareSubsetEqual,\n NotSquareSuperset: NotSquareSuperset,\n NotSquareSupersetEqual: NotSquareSupersetEqual,\n NotSubset: NotSubset,\n NotSubsetEqual: NotSubsetEqual,\n NotSucceeds: NotSucceeds,\n NotSucceedsEqual: NotSucceedsEqual,\n NotSucceedsSlantEqual: NotSucceedsSlantEqual,\n NotSucceedsTilde: NotSucceedsTilde,\n NotSuperset: NotSuperset,\n NotSupersetEqual: NotSupersetEqual,\n NotTilde: NotTilde,\n NotTildeEqual: NotTildeEqual,\n NotTildeFullEqual: NotTildeFullEqual,\n NotTildeTilde: NotTildeTilde,\n NotVerticalBar: NotVerticalBar,\n nparallel: nparallel,\n npar: npar,\n nparsl: nparsl,\n npart: npart,\n npolint: npolint,\n npr: npr,\n nprcue: nprcue,\n nprec: nprec,\n npreceq: npreceq,\n npre: npre,\n nrarrc: nrarrc,\n nrarr: nrarr,\n nrArr: nrArr,\n nrarrw: nrarrw,\n nrightarrow: nrightarrow,\n nRightarrow: nRightarrow,\n nrtri: nrtri,\n nrtrie: nrtrie,\n nsc: nsc,\n nsccue: nsccue,\n nsce: nsce,\n Nscr: Nscr,\n nscr: nscr,\n nshortmid: nshortmid,\n nshortparallel: nshortparallel,\n nsim: nsim,\n nsime: nsime,\n nsimeq: nsimeq,\n nsmid: nsmid,\n nspar: nspar,\n nsqsube: nsqsube,\n nsqsupe: nsqsupe,\n nsub: nsub,\n nsubE: nsubE,\n nsube: nsube,\n nsubset: nsubset,\n nsubseteq: nsubseteq,\n nsubseteqq: nsubseteqq,\n nsucc: nsucc,\n nsucceq: nsucceq,\n nsup: nsup,\n nsupE: nsupE,\n nsupe: nsupe,\n nsupset: nsupset,\n nsupseteq: nsupseteq,\n nsupseteqq: nsupseteqq,\n ntgl: ntgl,\n Ntilde: Ntilde$1,\n ntilde: ntilde$1,\n ntlg: ntlg,\n ntriangleleft: ntriangleleft,\n ntrianglelefteq: ntrianglelefteq,\n ntriangleright: ntriangleright,\n ntrianglerighteq: ntrianglerighteq,\n Nu: Nu,\n nu: nu,\n num: num,\n numero: numero,\n numsp: numsp,\n nvap: nvap,\n nvdash: nvdash,\n nvDash: nvDash,\n nVdash: nVdash,\n nVDash: nVDash,\n nvge: nvge,\n nvgt: nvgt,\n nvHarr: nvHarr,\n nvinfin: nvinfin,\n nvlArr: nvlArr,\n nvle: nvle,\n nvlt: nvlt,\n nvltrie: nvltrie,\n nvrArr: nvrArr,\n nvrtrie: nvrtrie,\n nvsim: nvsim,\n nwarhk: nwarhk,\n nwarr: nwarr,\n nwArr: nwArr,\n nwarrow: nwarrow,\n nwnear: nwnear,\n Oacute: Oacute$1,\n oacute: oacute$1,\n oast: oast,\n Ocirc: Ocirc$1,\n ocirc: ocirc$1,\n ocir: ocir,\n Ocy: Ocy,\n ocy: ocy,\n odash: odash,\n Odblac: Odblac,\n odblac: odblac,\n odiv: odiv,\n odot: odot,\n odsold: odsold,\n OElig: OElig,\n oelig: oelig,\n ofcir: ofcir,\n Ofr: Ofr,\n ofr: ofr,\n ogon: ogon,\n Ograve: Ograve$1,\n ograve: ograve$1,\n ogt: ogt,\n ohbar: ohbar,\n ohm: ohm,\n oint: oint,\n olarr: olarr,\n olcir: olcir,\n olcross: olcross,\n oline: oline,\n olt: olt,\n Omacr: Omacr,\n omacr: omacr,\n Omega: Omega,\n omega: omega,\n Omicron: Omicron,\n omicron: omicron,\n omid: omid,\n ominus: ominus,\n Oopf: Oopf,\n oopf: oopf,\n opar: opar,\n OpenCurlyDoubleQuote: OpenCurlyDoubleQuote,\n OpenCurlyQuote: OpenCurlyQuote,\n operp: operp,\n oplus: oplus,\n orarr: orarr,\n Or: Or,\n or: or,\n ord: ord,\n order: order,\n orderof: orderof,\n ordf: ordf$1,\n ordm: ordm$1,\n origof: origof,\n oror: oror,\n orslope: orslope,\n orv: orv,\n oS: oS,\n Oscr: Oscr,\n oscr: oscr,\n Oslash: Oslash$1,\n oslash: oslash$1,\n osol: osol,\n Otilde: Otilde$1,\n otilde: otilde$1,\n otimesas: otimesas,\n Otimes: Otimes,\n otimes: otimes,\n Ouml: Ouml$1,\n ouml: ouml$1,\n ovbar: ovbar,\n OverBar: OverBar,\n OverBrace: OverBrace,\n OverBracket: OverBracket,\n OverParenthesis: OverParenthesis,\n para: para$1,\n parallel: parallel,\n par: par,\n parsim: parsim,\n parsl: parsl,\n part: part,\n PartialD: PartialD,\n Pcy: Pcy,\n pcy: pcy,\n percnt: percnt,\n period: period,\n permil: permil,\n perp: perp,\n pertenk: pertenk,\n Pfr: Pfr,\n pfr: pfr,\n Phi: Phi,\n phi: phi,\n phiv: phiv,\n phmmat: phmmat,\n phone: phone,\n Pi: Pi,\n pi: pi,\n pitchfork: pitchfork,\n piv: piv,\n planck: planck,\n planckh: planckh,\n plankv: plankv,\n plusacir: plusacir,\n plusb: plusb,\n pluscir: pluscir,\n plus: plus,\n plusdo: plusdo,\n plusdu: plusdu,\n pluse: pluse,\n PlusMinus: PlusMinus,\n plusmn: plusmn$1,\n plussim: plussim,\n plustwo: plustwo,\n pm: pm,\n Poincareplane: Poincareplane,\n pointint: pointint,\n popf: popf,\n Popf: Popf,\n pound: pound$1,\n prap: prap,\n Pr: Pr,\n pr: pr,\n prcue: prcue,\n precapprox: precapprox,\n prec: prec,\n preccurlyeq: preccurlyeq,\n Precedes: Precedes,\n PrecedesEqual: PrecedesEqual,\n PrecedesSlantEqual: PrecedesSlantEqual,\n PrecedesTilde: PrecedesTilde,\n preceq: preceq,\n precnapprox: precnapprox,\n precneqq: precneqq,\n precnsim: precnsim,\n pre: pre,\n prE: prE,\n precsim: precsim,\n prime: prime,\n Prime: Prime,\n primes: primes,\n prnap: prnap,\n prnE: prnE,\n prnsim: prnsim,\n prod: prod,\n Product: Product,\n profalar: profalar,\n profline: profline,\n profsurf: profsurf,\n prop: prop,\n Proportional: Proportional,\n Proportion: Proportion,\n propto: propto,\n prsim: prsim,\n prurel: prurel,\n Pscr: Pscr,\n pscr: pscr,\n Psi: Psi,\n psi: psi,\n puncsp: puncsp,\n Qfr: Qfr,\n qfr: qfr,\n qint: qint,\n qopf: qopf,\n Qopf: Qopf,\n qprime: qprime,\n Qscr: Qscr,\n qscr: qscr,\n quaternions: quaternions,\n quatint: quatint,\n quest: quest,\n questeq: questeq,\n quot: quot$2,\n QUOT: QUOT$1,\n rAarr: rAarr,\n race: race,\n Racute: Racute,\n racute: racute,\n radic: radic,\n raemptyv: raemptyv,\n rang: rang,\n Rang: Rang,\n rangd: rangd,\n range: range,\n rangle: rangle,\n raquo: raquo$1,\n rarrap: rarrap,\n rarrb: rarrb,\n rarrbfs: rarrbfs,\n rarrc: rarrc,\n rarr: rarr,\n Rarr: Rarr,\n rArr: rArr,\n rarrfs: rarrfs,\n rarrhk: rarrhk,\n rarrlp: rarrlp,\n rarrpl: rarrpl,\n rarrsim: rarrsim,\n Rarrtl: Rarrtl,\n rarrtl: rarrtl,\n rarrw: rarrw,\n ratail: ratail,\n rAtail: rAtail,\n ratio: ratio,\n rationals: rationals,\n rbarr: rbarr,\n rBarr: rBarr,\n RBarr: RBarr,\n rbbrk: rbbrk,\n rbrace: rbrace,\n rbrack: rbrack,\n rbrke: rbrke,\n rbrksld: rbrksld,\n rbrkslu: rbrkslu,\n Rcaron: Rcaron,\n rcaron: rcaron,\n Rcedil: Rcedil,\n rcedil: rcedil,\n rceil: rceil,\n rcub: rcub,\n Rcy: Rcy,\n rcy: rcy,\n rdca: rdca,\n rdldhar: rdldhar,\n rdquo: rdquo,\n rdquor: rdquor,\n rdsh: rdsh,\n real: real,\n realine: realine,\n realpart: realpart,\n reals: reals,\n Re: Re,\n rect: rect,\n reg: reg$1,\n REG: REG$1,\n ReverseElement: ReverseElement,\n ReverseEquilibrium: ReverseEquilibrium,\n ReverseUpEquilibrium: ReverseUpEquilibrium,\n rfisht: rfisht,\n rfloor: rfloor,\n rfr: rfr,\n Rfr: Rfr,\n rHar: rHar,\n rhard: rhard,\n rharu: rharu,\n rharul: rharul,\n Rho: Rho,\n rho: rho,\n rhov: rhov,\n RightAngleBracket: RightAngleBracket,\n RightArrowBar: RightArrowBar,\n rightarrow: rightarrow,\n RightArrow: RightArrow,\n Rightarrow: Rightarrow,\n RightArrowLeftArrow: RightArrowLeftArrow,\n rightarrowtail: rightarrowtail,\n RightCeiling: RightCeiling,\n RightDoubleBracket: RightDoubleBracket,\n RightDownTeeVector: RightDownTeeVector,\n RightDownVectorBar: RightDownVectorBar,\n RightDownVector: RightDownVector,\n RightFloor: RightFloor,\n rightharpoondown: rightharpoondown,\n rightharpoonup: rightharpoonup,\n rightleftarrows: rightleftarrows,\n rightleftharpoons: rightleftharpoons,\n rightrightarrows: rightrightarrows,\n rightsquigarrow: rightsquigarrow,\n RightTeeArrow: RightTeeArrow,\n RightTee: RightTee,\n RightTeeVector: RightTeeVector,\n rightthreetimes: rightthreetimes,\n RightTriangleBar: RightTriangleBar,\n RightTriangle: RightTriangle,\n RightTriangleEqual: RightTriangleEqual,\n RightUpDownVector: RightUpDownVector,\n RightUpTeeVector: RightUpTeeVector,\n RightUpVectorBar: RightUpVectorBar,\n RightUpVector: RightUpVector,\n RightVectorBar: RightVectorBar,\n RightVector: RightVector,\n ring: ring,\n risingdotseq: risingdotseq,\n rlarr: rlarr,\n rlhar: rlhar,\n rlm: rlm,\n rmoustache: rmoustache,\n rmoust: rmoust,\n rnmid: rnmid,\n roang: roang,\n roarr: roarr,\n robrk: robrk,\n ropar: ropar,\n ropf: ropf,\n Ropf: Ropf,\n roplus: roplus,\n rotimes: rotimes,\n RoundImplies: RoundImplies,\n rpar: rpar,\n rpargt: rpargt,\n rppolint: rppolint,\n rrarr: rrarr,\n Rrightarrow: Rrightarrow,\n rsaquo: rsaquo,\n rscr: rscr,\n Rscr: Rscr,\n rsh: rsh,\n Rsh: Rsh,\n rsqb: rsqb,\n rsquo: rsquo,\n rsquor: rsquor,\n rthree: rthree,\n rtimes: rtimes,\n rtri: rtri,\n rtrie: rtrie,\n rtrif: rtrif,\n rtriltri: rtriltri,\n RuleDelayed: RuleDelayed,\n ruluhar: ruluhar,\n rx: rx,\n Sacute: Sacute,\n sacute: sacute,\n sbquo: sbquo,\n scap: scap,\n Scaron: Scaron,\n scaron: scaron,\n Sc: Sc,\n sc: sc,\n sccue: sccue,\n sce: sce,\n scE: scE,\n Scedil: Scedil,\n scedil: scedil,\n Scirc: Scirc,\n scirc: scirc,\n scnap: scnap,\n scnE: scnE,\n scnsim: scnsim,\n scpolint: scpolint,\n scsim: scsim,\n Scy: Scy,\n scy: scy,\n sdotb: sdotb,\n sdot: sdot,\n sdote: sdote,\n searhk: searhk,\n searr: searr,\n seArr: seArr,\n searrow: searrow,\n sect: sect$1,\n semi: semi,\n seswar: seswar,\n setminus: setminus,\n setmn: setmn,\n sext: sext,\n Sfr: Sfr,\n sfr: sfr,\n sfrown: sfrown,\n sharp: sharp,\n SHCHcy: SHCHcy,\n shchcy: shchcy,\n SHcy: SHcy,\n shcy: shcy,\n ShortDownArrow: ShortDownArrow,\n ShortLeftArrow: ShortLeftArrow,\n shortmid: shortmid,\n shortparallel: shortparallel,\n ShortRightArrow: ShortRightArrow,\n ShortUpArrow: ShortUpArrow,\n shy: shy$1,\n Sigma: Sigma,\n sigma: sigma,\n sigmaf: sigmaf,\n sigmav: sigmav,\n sim: sim,\n simdot: simdot,\n sime: sime,\n simeq: simeq,\n simg: simg,\n simgE: simgE,\n siml: siml,\n simlE: simlE,\n simne: simne,\n simplus: simplus,\n simrarr: simrarr,\n slarr: slarr,\n SmallCircle: SmallCircle,\n smallsetminus: smallsetminus,\n smashp: smashp,\n smeparsl: smeparsl,\n smid: smid,\n smile: smile,\n smt: smt,\n smte: smte,\n smtes: smtes,\n SOFTcy: SOFTcy,\n softcy: softcy,\n solbar: solbar,\n solb: solb,\n sol: sol,\n Sopf: Sopf,\n sopf: sopf,\n spades: spades,\n spadesuit: spadesuit,\n spar: spar,\n sqcap: sqcap,\n sqcaps: sqcaps,\n sqcup: sqcup,\n sqcups: sqcups,\n Sqrt: Sqrt,\n sqsub: sqsub,\n sqsube: sqsube,\n sqsubset: sqsubset,\n sqsubseteq: sqsubseteq,\n sqsup: sqsup,\n sqsupe: sqsupe,\n sqsupset: sqsupset,\n sqsupseteq: sqsupseteq,\n square: square,\n Square: Square,\n SquareIntersection: SquareIntersection,\n SquareSubset: SquareSubset,\n SquareSubsetEqual: SquareSubsetEqual,\n SquareSuperset: SquareSuperset,\n SquareSupersetEqual: SquareSupersetEqual,\n SquareUnion: SquareUnion,\n squarf: squarf,\n squ: squ,\n squf: squf,\n srarr: srarr,\n Sscr: Sscr,\n sscr: sscr,\n ssetmn: ssetmn,\n ssmile: ssmile,\n sstarf: sstarf,\n Star: Star,\n star: star,\n starf: starf,\n straightepsilon: straightepsilon,\n straightphi: straightphi,\n strns: strns,\n sub: sub,\n Sub: Sub,\n subdot: subdot,\n subE: subE,\n sube: sube,\n subedot: subedot,\n submult: submult,\n subnE: subnE,\n subne: subne,\n subplus: subplus,\n subrarr: subrarr,\n subset: subset,\n Subset: Subset,\n subseteq: subseteq,\n subseteqq: subseteqq,\n SubsetEqual: SubsetEqual,\n subsetneq: subsetneq,\n subsetneqq: subsetneqq,\n subsim: subsim,\n subsub: subsub,\n subsup: subsup,\n succapprox: succapprox,\n succ: succ,\n succcurlyeq: succcurlyeq,\n Succeeds: Succeeds,\n SucceedsEqual: SucceedsEqual,\n SucceedsSlantEqual: SucceedsSlantEqual,\n SucceedsTilde: SucceedsTilde,\n succeq: succeq,\n succnapprox: succnapprox,\n succneqq: succneqq,\n succnsim: succnsim,\n succsim: succsim,\n SuchThat: SuchThat,\n sum: sum,\n Sum: Sum,\n sung: sung,\n sup1: sup1$1,\n sup2: sup2$1,\n sup3: sup3$1,\n sup: sup,\n Sup: Sup,\n supdot: supdot,\n supdsub: supdsub,\n supE: supE,\n supe: supe,\n supedot: supedot,\n Superset: Superset,\n SupersetEqual: SupersetEqual,\n suphsol: suphsol,\n suphsub: suphsub,\n suplarr: suplarr,\n supmult: supmult,\n supnE: supnE,\n supne: supne,\n supplus: supplus,\n supset: supset,\n Supset: Supset,\n supseteq: supseteq,\n supseteqq: supseteqq,\n supsetneq: supsetneq,\n supsetneqq: supsetneqq,\n supsim: supsim,\n supsub: supsub,\n supsup: supsup,\n swarhk: swarhk,\n swarr: swarr,\n swArr: swArr,\n swarrow: swarrow,\n swnwar: swnwar,\n szlig: szlig$1,\n Tab: Tab,\n target: target,\n Tau: Tau,\n tau: tau,\n tbrk: tbrk,\n Tcaron: Tcaron,\n tcaron: tcaron,\n Tcedil: Tcedil,\n tcedil: tcedil,\n Tcy: Tcy,\n tcy: tcy,\n tdot: tdot,\n telrec: telrec,\n Tfr: Tfr,\n tfr: tfr,\n there4: there4,\n therefore: therefore,\n Therefore: Therefore,\n Theta: Theta,\n theta: theta,\n thetasym: thetasym,\n thetav: thetav,\n thickapprox: thickapprox,\n thicksim: thicksim,\n ThickSpace: ThickSpace,\n ThinSpace: ThinSpace,\n thinsp: thinsp,\n thkap: thkap,\n thksim: thksim,\n THORN: THORN$1,\n thorn: thorn$1,\n tilde: tilde,\n Tilde: Tilde,\n TildeEqual: TildeEqual,\n TildeFullEqual: TildeFullEqual,\n TildeTilde: TildeTilde,\n timesbar: timesbar,\n timesb: timesb,\n times: times$1,\n timesd: timesd,\n tint: tint,\n toea: toea,\n topbot: topbot,\n topcir: topcir,\n top: esm_top,\n Topf: Topf,\n topf: topf,\n topfork: topfork,\n tosa: tosa,\n tprime: tprime,\n trade: trade,\n TRADE: TRADE,\n triangle: triangle,\n triangledown: triangledown,\n triangleleft: triangleleft,\n trianglelefteq: trianglelefteq,\n triangleq: triangleq,\n triangleright: triangleright,\n trianglerighteq: trianglerighteq,\n tridot: tridot,\n trie: trie,\n triminus: triminus,\n TripleDot: TripleDot,\n triplus: triplus,\n trisb: trisb,\n tritime: tritime,\n trpezium: trpezium,\n Tscr: Tscr,\n tscr: tscr,\n TScy: TScy,\n tscy: tscy,\n TSHcy: TSHcy,\n tshcy: tshcy,\n Tstrok: Tstrok,\n tstrok: tstrok,\n twixt: twixt,\n twoheadleftarrow: twoheadleftarrow,\n twoheadrightarrow: twoheadrightarrow,\n Uacute: Uacute$1,\n uacute: uacute$1,\n uarr: uarr,\n Uarr: Uarr,\n uArr: uArr,\n Uarrocir: Uarrocir,\n Ubrcy: Ubrcy,\n ubrcy: ubrcy,\n Ubreve: Ubreve,\n ubreve: ubreve,\n Ucirc: Ucirc$1,\n ucirc: ucirc$1,\n Ucy: Ucy,\n ucy: ucy,\n udarr: udarr,\n Udblac: Udblac,\n udblac: udblac,\n udhar: udhar,\n ufisht: ufisht,\n Ufr: Ufr,\n ufr: ufr,\n Ugrave: Ugrave$1,\n ugrave: ugrave$1,\n uHar: uHar,\n uharl: uharl,\n uharr: uharr,\n uhblk: uhblk,\n ulcorn: ulcorn,\n ulcorner: ulcorner,\n ulcrop: ulcrop,\n ultri: ultri,\n Umacr: Umacr,\n umacr: umacr,\n uml: uml$1,\n UnderBar: UnderBar,\n UnderBrace: UnderBrace,\n UnderBracket: UnderBracket,\n UnderParenthesis: UnderParenthesis,\n Union: Union,\n UnionPlus: UnionPlus,\n Uogon: Uogon,\n uogon: uogon,\n Uopf: Uopf,\n uopf: uopf,\n UpArrowBar: UpArrowBar,\n uparrow: uparrow,\n UpArrow: UpArrow,\n Uparrow: Uparrow,\n UpArrowDownArrow: UpArrowDownArrow,\n updownarrow: updownarrow,\n UpDownArrow: UpDownArrow,\n Updownarrow: Updownarrow,\n UpEquilibrium: UpEquilibrium,\n upharpoonleft: upharpoonleft,\n upharpoonright: upharpoonright,\n uplus: uplus,\n UpperLeftArrow: UpperLeftArrow,\n UpperRightArrow: UpperRightArrow,\n upsi: upsi,\n Upsi: Upsi,\n upsih: upsih,\n Upsilon: Upsilon,\n upsilon: upsilon,\n UpTeeArrow: UpTeeArrow,\n UpTee: UpTee,\n upuparrows: upuparrows,\n urcorn: urcorn,\n urcorner: urcorner,\n urcrop: urcrop,\n Uring: Uring,\n uring: uring,\n urtri: urtri,\n Uscr: Uscr,\n uscr: uscr,\n utdot: utdot,\n Utilde: Utilde,\n utilde: utilde,\n utri: utri,\n utrif: utrif,\n uuarr: uuarr,\n Uuml: Uuml$1,\n uuml: uuml$1,\n uwangle: uwangle,\n vangrt: vangrt,\n varepsilon: varepsilon,\n varkappa: varkappa,\n varnothing: varnothing,\n varphi: varphi,\n varpi: varpi,\n varpropto: varpropto,\n varr: varr,\n vArr: vArr,\n varrho: varrho,\n varsigma: varsigma,\n varsubsetneq: varsubsetneq,\n varsubsetneqq: varsubsetneqq,\n varsupsetneq: varsupsetneq,\n varsupsetneqq: varsupsetneqq,\n vartheta: vartheta,\n vartriangleleft: vartriangleleft,\n vartriangleright: vartriangleright,\n vBar: vBar,\n Vbar: Vbar,\n vBarv: vBarv,\n Vcy: Vcy,\n vcy: vcy,\n vdash: vdash,\n vDash: vDash,\n Vdash: Vdash,\n VDash: VDash,\n Vdashl: Vdashl,\n veebar: veebar,\n vee: vee,\n Vee: Vee,\n veeeq: veeeq,\n vellip: vellip,\n verbar: verbar,\n Verbar: Verbar,\n vert: vert,\n Vert: Vert,\n VerticalBar: VerticalBar,\n VerticalLine: VerticalLine,\n VerticalSeparator: VerticalSeparator,\n VerticalTilde: VerticalTilde,\n VeryThinSpace: VeryThinSpace,\n Vfr: Vfr,\n vfr: vfr,\n vltri: vltri,\n vnsub: vnsub,\n vnsup: vnsup,\n Vopf: Vopf,\n vopf: vopf,\n vprop: vprop,\n vrtri: vrtri,\n Vscr: Vscr,\n vscr: vscr,\n vsubnE: vsubnE,\n vsubne: vsubne,\n vsupnE: vsupnE,\n vsupne: vsupne,\n Vvdash: Vvdash,\n vzigzag: vzigzag,\n Wcirc: Wcirc,\n wcirc: wcirc,\n wedbar: wedbar,\n wedge: wedge,\n Wedge: Wedge,\n wedgeq: wedgeq,\n weierp: weierp,\n Wfr: Wfr,\n wfr: wfr,\n Wopf: Wopf,\n wopf: wopf,\n wp: wp,\n wr: wr,\n wreath: wreath,\n Wscr: Wscr,\n wscr: wscr,\n xcap: xcap,\n xcirc: xcirc,\n xcup: xcup,\n xdtri: xdtri,\n Xfr: Xfr,\n xfr: xfr,\n xharr: xharr,\n xhArr: xhArr,\n Xi: Xi,\n xi: xi,\n xlarr: xlarr,\n xlArr: xlArr,\n xmap: xmap,\n xnis: xnis,\n xodot: xodot,\n Xopf: Xopf,\n xopf: xopf,\n xoplus: xoplus,\n xotime: xotime,\n xrarr: xrarr,\n xrArr: xrArr,\n Xscr: Xscr,\n xscr: xscr,\n xsqcup: xsqcup,\n xuplus: xuplus,\n xutri: xutri,\n xvee: xvee,\n xwedge: xwedge,\n Yacute: Yacute$1,\n yacute: yacute$1,\n YAcy: YAcy,\n yacy: yacy,\n Ycirc: Ycirc,\n ycirc: ycirc,\n Ycy: Ycy,\n ycy: ycy,\n yen: yen$1,\n Yfr: Yfr,\n yfr: yfr,\n YIcy: YIcy,\n yicy: yicy,\n Yopf: Yopf,\n yopf: yopf,\n Yscr: Yscr,\n yscr: yscr,\n YUcy: YUcy,\n yucy: yucy,\n yuml: yuml$1,\n Yuml: Yuml,\n Zacute: Zacute,\n zacute: zacute,\n Zcaron: Zcaron,\n zcaron: zcaron,\n Zcy: Zcy,\n zcy: zcy,\n Zdot: Zdot,\n zdot: zdot,\n zeetrf: zeetrf,\n ZeroWidthSpace: ZeroWidthSpace,\n Zeta: Zeta,\n zeta: zeta,\n zfr: zfr,\n Zfr: Zfr,\n ZHcy: ZHcy,\n zhcy: zhcy,\n zigrarr: zigrarr,\n zopf: zopf,\n Zopf: Zopf,\n Zscr: Zscr,\n zscr: zscr,\n zwj: zwj,\n zwnj: zwnj\n};\nvar Aacute = \"Á\";\nvar aacute = \"á\";\nvar Acirc = \"Â\";\nvar acirc = \"â\";\nvar acute = \"´\";\nvar AElig = \"Æ\";\nvar aelig = \"æ\";\nvar Agrave = \"À\";\nvar agrave = \"à\";\nvar amp$1 = \"&\";\nvar AMP = \"&\";\nvar Aring = \"Å\";\nvar aring = \"å\";\nvar Atilde = \"Ã\";\nvar atilde = \"ã\";\nvar Auml = \"Ä\";\nvar auml = \"ä\";\nvar brvbar = \"¦\";\nvar Ccedil = \"Ç\";\nvar ccedil = \"ç\";\nvar cedil = \"¸\";\nvar cent = \"¢\";\nvar copy = \"©\";\nvar COPY = \"©\";\nvar curren = \"¤\";\nvar deg = \"°\";\nvar divide = \"÷\";\nvar Eacute = \"É\";\nvar eacute = \"é\";\nvar Ecirc = \"Ê\";\nvar ecirc = \"ê\";\nvar Egrave = \"È\";\nvar egrave = \"è\";\nvar ETH = \"Ð\";\nvar eth = \"ð\";\nvar Euml = \"Ë\";\nvar euml = \"ë\";\nvar frac12 = \"½\";\nvar frac14 = \"¼\";\nvar frac34 = \"¾\";\nvar gt$1 = \">\";\nvar GT = \">\";\nvar Iacute = \"Í\";\nvar iacute = \"í\";\nvar Icirc = \"Î\";\nvar icirc = \"î\";\nvar iexcl = \"¡\";\nvar Igrave = \"Ì\";\nvar igrave = \"ì\";\nvar iquest = \"¿\";\nvar Iuml = \"Ï\";\nvar iuml = \"ï\";\nvar laquo = \"«\";\nvar lt$1 = \"<\";\nvar LT = \"<\";\nvar macr = \"¯\";\nvar micro = \"µ\";\nvar middot = \"·\";\nvar nbsp = \" \";\nvar not = \"¬\";\nvar Ntilde = \"Ñ\";\nvar ntilde = \"ñ\";\nvar Oacute = \"Ó\";\nvar oacute = \"ó\";\nvar Ocirc = \"Ô\";\nvar ocirc = \"ô\";\nvar Ograve = \"Ò\";\nvar ograve = \"ò\";\nvar ordf = \"ª\";\nvar ordm = \"º\";\nvar Oslash = \"Ø\";\nvar oslash = \"ø\";\nvar Otilde = \"Õ\";\nvar otilde = \"õ\";\nvar Ouml = \"Ö\";\nvar ouml = \"ö\";\nvar para = \"¶\";\nvar plusmn = \"±\";\nvar pound = \"£\";\nvar quot$1 = \"\\\"\";\nvar QUOT = \"\\\"\";\nvar raquo = \"»\";\nvar reg = \"®\";\nvar REG = \"®\";\nvar sect = \"§\";\nvar shy = \"­\";\nvar sup1 = \"¹\";\nvar sup2 = \"²\";\nvar sup3 = \"³\";\nvar szlig = \"ß\";\nvar THORN = \"Þ\";\nvar thorn = \"þ\";\nvar times = \"×\";\nvar Uacute = \"Ú\";\nvar uacute = \"ú\";\nvar Ucirc = \"Û\";\nvar ucirc = \"û\";\nvar Ugrave = \"Ù\";\nvar ugrave = \"ù\";\nvar uml = \"¨\";\nvar Uuml = \"Ü\";\nvar uuml = \"ü\";\nvar Yacute = \"Ý\";\nvar yacute = \"ý\";\nvar yen = \"¥\";\nvar yuml = \"ÿ\";\nvar require$$1 = {\n Aacute: Aacute,\n aacute: aacute,\n Acirc: Acirc,\n acirc: acirc,\n acute: acute,\n AElig: AElig,\n aelig: aelig,\n Agrave: Agrave,\n agrave: agrave,\n amp: amp$1,\n AMP: AMP,\n Aring: Aring,\n aring: aring,\n Atilde: Atilde,\n atilde: atilde,\n Auml: Auml,\n auml: auml,\n brvbar: brvbar,\n Ccedil: Ccedil,\n ccedil: ccedil,\n cedil: cedil,\n cent: cent,\n copy: copy,\n COPY: COPY,\n curren: curren,\n deg: deg,\n divide: divide,\n Eacute: Eacute,\n eacute: eacute,\n Ecirc: Ecirc,\n ecirc: ecirc,\n Egrave: Egrave,\n egrave: egrave,\n ETH: ETH,\n eth: eth,\n Euml: Euml,\n euml: euml,\n frac12: frac12,\n frac14: frac14,\n frac34: frac34,\n gt: gt$1,\n GT: GT,\n Iacute: Iacute,\n iacute: iacute,\n Icirc: Icirc,\n icirc: icirc,\n iexcl: iexcl,\n Igrave: Igrave,\n igrave: igrave,\n iquest: iquest,\n Iuml: Iuml,\n iuml: iuml,\n laquo: laquo,\n lt: lt$1,\n LT: LT,\n macr: macr,\n micro: micro,\n middot: middot,\n nbsp: nbsp,\n not: not,\n Ntilde: Ntilde,\n ntilde: ntilde,\n Oacute: Oacute,\n oacute: oacute,\n Ocirc: Ocirc,\n ocirc: ocirc,\n Ograve: Ograve,\n ograve: ograve,\n ordf: ordf,\n ordm: ordm,\n Oslash: Oslash,\n oslash: oslash,\n Otilde: Otilde,\n otilde: otilde,\n Ouml: Ouml,\n ouml: ouml,\n para: para,\n plusmn: plusmn,\n pound: pound,\n quot: quot$1,\n QUOT: QUOT,\n raquo: raquo,\n reg: reg,\n REG: REG,\n sect: sect,\n shy: shy,\n sup1: sup1,\n sup2: sup2,\n sup3: sup3,\n szlig: szlig,\n THORN: THORN,\n thorn: thorn,\n times: times,\n Uacute: Uacute,\n uacute: uacute,\n Ucirc: Ucirc,\n ucirc: ucirc,\n Ugrave: Ugrave,\n ugrave: ugrave,\n uml: uml,\n Uuml: Uuml,\n uuml: uuml,\n Yacute: Yacute,\n yacute: yacute,\n yen: yen,\n yuml: yuml\n};\nvar amp = \"&\";\nvar apos = \"'\";\nvar gt = \">\";\nvar lt = \"<\";\nvar quot = \"\\\"\";\nvar require$$0$1 = {\n amp: amp,\n apos: apos,\n gt: gt,\n lt: lt,\n quot: quot\n};\nvar decode_codepoint = {};\nvar require$$0 = {\n \"0\": 65533,\n \"128\": 8364,\n \"130\": 8218,\n \"131\": 402,\n \"132\": 8222,\n \"133\": 8230,\n \"134\": 8224,\n \"135\": 8225,\n \"136\": 710,\n \"137\": 8240,\n \"138\": 352,\n \"139\": 8249,\n \"140\": 338,\n \"142\": 381,\n \"145\": 8216,\n \"146\": 8217,\n \"147\": 8220,\n \"148\": 8221,\n \"149\": 8226,\n \"150\": 8211,\n \"151\": 8212,\n \"152\": 732,\n \"153\": 8482,\n \"154\": 353,\n \"155\": 8250,\n \"156\": 339,\n \"158\": 382,\n \"159\": 376\n};\nvar __importDefault$2 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(decode_codepoint, \"__esModule\", { value: true });\nvar decode_json_1 = __importDefault$2(require$$0);\n// Adapted from https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119\nvar fromCodePoint$2 = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.fromCodePoint ||\n function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n };\nfunction decodeCodePoint(codePoint) {\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return \"\\uFFFD\";\n }\n if (codePoint in decode_json_1.default) {\n codePoint = decode_json_1.default[codePoint];\n }\n return fromCodePoint$2(codePoint);\n}\ndecode_codepoint.default = decodeCodePoint;\nvar __importDefault$1 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(decode, \"__esModule\", { value: true });\ndecode.decodeHTML = decode.decodeHTMLStrict = decode.decodeXML = void 0;\nvar entities_json_1$1 = __importDefault$1(require$$1$1);\nvar legacy_json_1 = __importDefault$1(require$$1);\nvar xml_json_1$1 = __importDefault$1(require$$0$1);\nvar decode_codepoint_1 = __importDefault$1(decode_codepoint);\nvar strictEntityRe = /&(?:[a-zA-Z0-9]+|#[xX][\\da-fA-F]+|#\\d+);/g;\ndecode.decodeXML = getStrictDecoder(xml_json_1$1.default);\ndecode.decodeHTMLStrict = getStrictDecoder(entities_json_1$1.default);\nfunction getStrictDecoder(map) {\n var replace = getReplacer(map);\n return function (str) { return String(str).replace(strictEntityRe, replace); };\n}\nvar sorter = function (a, b) { return (a < b ? 1 : -1); };\ndecode.decodeHTML = (function () {\n var legacy = Object.keys(legacy_json_1.default).sort(sorter);\n var keys = Object.keys(entities_json_1$1.default).sort(sorter);\n for (var i = 0, j = 0; i < keys.length; i++) {\n if (legacy[j] === keys[i]) {\n keys[i] += \";?\";\n j++;\n }\n else {\n keys[i] += \";\";\n }\n }\n var re = new RegExp(\"&(?:\" + keys.join(\"|\") + \"|#[xX][\\\\da-fA-F]+;?|#\\\\d+;?)\", \"g\");\n var replace = getReplacer(entities_json_1$1.default);\n function replacer(str) {\n if (str.substr(-1) !== \";\")\n str += \";\";\n return replace(str);\n }\n // TODO consider creating a merged map\n return function (str) { return String(str).replace(re, replacer); };\n})();\nfunction getReplacer(map) {\n return function replace(str) {\n if (str.charAt(1) === \"#\") {\n var secondChar = str.charAt(2);\n if (secondChar === \"X\" || secondChar === \"x\") {\n return decode_codepoint_1.default(parseInt(str.substr(3), 16));\n }\n return decode_codepoint_1.default(parseInt(str.substr(2), 10));\n }\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return map[str.slice(1, -1)] || str;\n };\n}\nvar encode = {};\nvar esm_importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(encode, \"__esModule\", { value: true });\nencode.escapeUTF8 = encode.escape = encode.encodeNonAsciiHTML = encode.encodeHTML = encode.encodeXML = void 0;\nvar xml_json_1 = esm_importDefault(require$$0$1);\nvar inverseXML = getInverseObj(xml_json_1.default);\nvar xmlReplacer = getInverseReplacer(inverseXML);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `&#xfc;`) will be used.\n */\nencode.encodeXML = getASCIIEncoder(inverseXML);\nvar entities_json_1 = esm_importDefault(require$$1$1);\nvar inverseHTML = getInverseObj(entities_json_1.default);\nvar htmlReplacer = getInverseReplacer(inverseHTML);\n/**\n * Encodes all entities and non-ASCII characters in the input.\n *\n * This includes characters that are valid ASCII characters in HTML documents.\n * For example `#` will be encoded as `&num;`. To get a more compact output,\n * consider using the `encodeNonAsciiHTML` function.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `&#xfc;`) will be used.\n */\nencode.encodeHTML = getInverse(inverseHTML, htmlReplacer);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `&#xfc;`) will be used.\n */\nencode.encodeNonAsciiHTML = getASCIIEncoder(inverseHTML);\nfunction getInverseObj(obj) {\n return Object.keys(obj)\n .sort()\n .reduce(function (inverse, name) {\n inverse[obj[name]] = \"&\" + name + \";\";\n return inverse;\n }, {});\n}\nfunction getInverseReplacer(inverse) {\n var single = [];\n var multiple = [];\n for (var _i = 0, _a = Object.keys(inverse); _i < _a.length; _i++) {\n var k = _a[_i];\n if (k.length === 1) {\n // Add value to single array\n single.push(\"\\\\\" + k);\n }\n else {\n // Add value to multiple array\n multiple.push(k);\n }\n }\n // Add ranges to single characters.\n single.sort();\n for (var start = 0; start < single.length - 1; start++) {\n // Find the end of a run of characters\n var end = start;\n while (end < single.length - 1 &&\n single[end].charCodeAt(1) + 1 === single[end + 1].charCodeAt(1)) {\n end += 1;\n }\n var count = 1 + end - start;\n // We want to replace at least three characters\n if (count < 3)\n continue;\n single.splice(start, count, single[start] + \"-\" + single[end]);\n }\n multiple.unshift(\"[\" + single.join(\"\") + \"]\");\n return new RegExp(multiple.join(\"|\"), \"g\");\n}\n// /[^\\0-\\x7F]/gu\nvar reNonASCII = /(?:[\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/g;\nvar getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n function (str) { return str.codePointAt(0); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c) {\n return (c.charCodeAt(0) - 0xd800) * 0x400 +\n c.charCodeAt(1) -\n 0xdc00 +\n 0x10000;\n };\nfunction singleCharReplacer(c) {\n return \"&#x\" + (c.length > 1 ? getCodePoint(c) : c.charCodeAt(0))\n .toString(16)\n .toUpperCase() + \";\";\n}\nfunction getInverse(inverse, re) {\n return function (data) {\n return data\n .replace(re, function (name) { return inverse[name]; })\n .replace(reNonASCII, singleCharReplacer);\n };\n}\nvar reEscapeChars = new RegExp(xmlReplacer.source + \"|\" + reNonASCII.source, \"g\");\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `&#xfc;`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nfunction esm_escape(data) {\n return data.replace(reEscapeChars, singleCharReplacer);\n}\nencode.escape = esm_escape;\n/**\n * Encodes all characters not valid in XML documents using numeric hexadecimal\n * reference (eg. `&#xfc;`).\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nfunction escapeUTF8(data) {\n return data.replace(xmlReplacer, singleCharReplacer);\n}\nencode.escapeUTF8 = escapeUTF8;\nfunction getASCIIEncoder(obj) {\n return function (data) {\n return data.replace(reEscapeChars, function (c) { return obj[c] || singleCharReplacer(c); });\n };\n}\n(function (exports) {\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.encodeHTML5 = exports.encodeHTML4 = exports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = void 0;\n var decode_1 = decode;\n var encode_1 = encode;\n /**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `decodeXML` or `decodeHTML` directly.\n */\n function decode$1(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTML)(data);\n }\n exports.decode = decode$1;\n /**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `decodeHTMLStrict` or `decodeXML` directly.\n */\n function decodeStrict(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTMLStrict)(data);\n }\n exports.decodeStrict = decodeStrict;\n /**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param level Optional level to encode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `encodeHTML`, `encodeXML` or `encodeNonAsciiHTML` directly.\n */\n function encode$1(data, level) {\n return (!level || level <= 0 ? encode_1.encodeXML : encode_1.encodeHTML)(data);\n }\n exports.encode = encode$1;\n var encode_2 = encode;\n Object.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return encode_2.encodeXML; } });\n Object.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\n Object.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_2.encodeNonAsciiHTML; } });\n Object.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return encode_2.escape; } });\n Object.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return encode_2.escapeUTF8; } });\n // Legacy aliases (deprecated)\n Object.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\n Object.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\n var decode_2 = decode;\n Object.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_2.decodeXML; } });\n Object.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\n Object.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\n // Legacy aliases (deprecated)\n Object.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\n Object.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\n Object.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\n Object.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\n Object.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_2.decodeXML; } });\n}(lib));\nvar ENTITY = '&(?:#x[a-f0-9]{1,6}|#[0-9]{1,7}|[a-z][a-z0-9]{1,31});';\nvar C_BACKSLASH$1 = 92;\nvar reBackslashOrAmp = /[\\\\&]/;\nvar ESCAPABLE = '[!\"#$%&\\'()*+,./:;<=>?@[\\\\\\\\\\\\]^_`{|}~-]';\nvar reEntityOrEscapedChar = new RegExp(\"\\\\\\\\\" + ESCAPABLE + \"|\" + ENTITY, 'gi');\nvar XMLSPECIAL = '[&<>\"]';\nvar reXmlSpecial = new RegExp(XMLSPECIAL, 'g');\nvar unescapeChar = function (s) {\n if (s.charCodeAt(0) === C_BACKSLASH$1) {\n return s.charAt(1);\n }\n return lib.decodeHTML(s);\n};\n// Replace entities and backslash escapes with literal characters.\nfunction unescapeString(s) {\n if (reBackslashOrAmp.test(s)) {\n return s.replace(reEntityOrEscapedChar, unescapeChar);\n }\n return s;\n}\nfunction normalizeURI(uri) {\n try {\n return encode_1(uri);\n }\n catch (err) {\n return uri;\n }\n}\nfunction replaceUnsafeChar(s) {\n switch (s) {\n case '&':\n return '&amp;';\n case '<':\n return '&lt;';\n case '>':\n return '&gt;';\n case '\"':\n return '&quot;';\n default:\n return s;\n }\n}\nfunction escapeXml(s) {\n if (reXmlSpecial.test(s)) {\n return s.replace(reXmlSpecial, replaceUnsafeChar);\n }\n return s;\n}\nfunction repeat(str, count) {\n var arr = [];\n for (var i = 0; i < count; i++) {\n arr.push(str);\n }\n return arr.join('');\n}\nfunction isEmpty(str) {\n if (!str) {\n return true;\n }\n return !/[^ \\t]+/.test(str);\n}\nvar NodeWalker = /** @class */ (function () {\n function NodeWalker(root) {\n this.current = root;\n this.root = root;\n this.entering = true;\n }\n NodeWalker.prototype.next = function () {\n var cur = this.current;\n var entering = this.entering;\n if (cur === null) {\n return null;\n }\n var container = isContainer(cur);\n if (entering && container) {\n if (cur.firstChild) {\n this.current = cur.firstChild;\n this.entering = true;\n }\n else {\n // stay on node but exit\n this.entering = false;\n }\n }\n else if (cur === this.root) {\n this.current = null;\n }\n else if (cur.next === null) {\n this.current = cur.parent;\n this.entering = false;\n }\n else {\n this.current = cur.next;\n this.entering = true;\n }\n return { entering: entering, node: cur };\n };\n NodeWalker.prototype.resumeAt = function (node, entering) {\n this.current = node;\n this.entering = entering === true;\n };\n return NodeWalker;\n}());\nfunction isContainer(node) {\n switch (node.type) {\n case 'document':\n case 'blockQuote':\n case 'list':\n case 'item':\n case 'paragraph':\n case 'heading':\n case 'emph':\n case 'strong':\n case 'strike':\n case 'link':\n case 'image':\n case 'table':\n case 'tableHead':\n case 'tableBody':\n case 'tableRow':\n case 'tableCell':\n case 'tableDelimRow':\n case 'customInline':\n return true;\n default:\n return false;\n }\n}\nvar lastNodeId = 1;\nvar nodeMap = {};\nfunction getNodeById(id) {\n return nodeMap[id];\n}\nfunction removeNodeById(id) {\n delete nodeMap[id];\n}\nfunction removeAllNode() {\n nodeMap = {};\n}\nvar esm_Node = /** @class */ (function () {\n function Node(nodeType, sourcepos) {\n this.parent = null;\n this.prev = null;\n this.next = null;\n // only for container node\n this.firstChild = null;\n this.lastChild = null;\n // only for leaf node\n this.literal = null;\n if (nodeType === 'document') {\n this.id = -1;\n }\n else {\n this.id = lastNodeId++;\n }\n this.type = nodeType;\n this.sourcepos = sourcepos;\n nodeMap[this.id] = this;\n }\n Node.prototype.isContainer = function () {\n return isContainer(this);\n };\n Node.prototype.unlink = function () {\n if (this.prev) {\n this.prev.next = this.next;\n }\n else if (this.parent) {\n this.parent.firstChild = this.next;\n }\n if (this.next) {\n this.next.prev = this.prev;\n }\n else if (this.parent) {\n this.parent.lastChild = this.prev;\n }\n this.parent = null;\n this.next = null;\n this.prev = null;\n };\n Node.prototype.replaceWith = function (node) {\n this.insertBefore(node);\n this.unlink();\n };\n Node.prototype.insertAfter = function (sibling) {\n sibling.unlink();\n sibling.next = this.next;\n if (sibling.next) {\n sibling.next.prev = sibling;\n }\n sibling.prev = this;\n this.next = sibling;\n if (this.parent) {\n sibling.parent = this.parent;\n if (!sibling.next) {\n sibling.parent.lastChild = sibling;\n }\n }\n };\n Node.prototype.insertBefore = function (sibling) {\n sibling.unlink();\n sibling.prev = this.prev;\n if (sibling.prev) {\n sibling.prev.next = sibling;\n }\n sibling.next = this;\n this.prev = sibling;\n sibling.parent = this.parent;\n if (!sibling.prev) {\n sibling.parent.firstChild = sibling;\n }\n };\n Node.prototype.appendChild = function (child) {\n child.unlink();\n child.parent = this;\n if (this.lastChild) {\n this.lastChild.next = child;\n child.prev = this.lastChild;\n this.lastChild = child;\n }\n else {\n this.firstChild = child;\n this.lastChild = child;\n }\n };\n Node.prototype.prependChild = function (child) {\n child.unlink();\n child.parent = this;\n if (this.firstChild) {\n this.firstChild.prev = child;\n child.next = this.firstChild;\n this.firstChild = child;\n }\n else {\n this.firstChild = child;\n this.lastChild = child;\n }\n };\n Node.prototype.walker = function () {\n return new NodeWalker(this);\n };\n return Node;\n}());\nvar BlockNode = /** @class */ (function (_super) {\n esm_extends(BlockNode, _super);\n function BlockNode(nodeType, sourcepos) {\n var _this = _super.call(this, nodeType, sourcepos) || this;\n // temporal data (for parsing)\n _this.open = true;\n _this.lineOffsets = null;\n _this.stringContent = null;\n _this.lastLineBlank = false;\n _this.lastLineChecked = false;\n _this.type = nodeType;\n return _this;\n }\n return BlockNode;\n}(esm_Node));\nvar ListNode = /** @class */ (function (_super) {\n esm_extends(ListNode, _super);\n function ListNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.listData = null;\n return _this;\n }\n return ListNode;\n}(BlockNode));\nvar HeadingNode = /** @class */ (function (_super) {\n esm_extends(HeadingNode, _super);\n function HeadingNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.level = 0;\n _this.headingType = 'atx';\n return _this;\n }\n return HeadingNode;\n}(BlockNode));\nvar CodeBlockNode = /** @class */ (function (_super) {\n esm_extends(CodeBlockNode, _super);\n function CodeBlockNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isFenced = false;\n _this.fenceChar = null;\n _this.fenceLength = 0;\n _this.fenceOffset = -1;\n _this.info = null;\n _this.infoPadding = 0;\n return _this;\n }\n return CodeBlockNode;\n}(BlockNode));\nvar TableNode = /** @class */ (function (_super) {\n esm_extends(TableNode, _super);\n function TableNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.columns = [];\n return _this;\n }\n return TableNode;\n}(BlockNode));\nvar TableCellNode = /** @class */ (function (_super) {\n esm_extends(TableCellNode, _super);\n function TableCellNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.startIdx = 0;\n _this.endIdx = 0;\n _this.paddingLeft = 0;\n _this.paddingRight = 0;\n _this.ignored = false;\n return _this;\n }\n return TableCellNode;\n}(BlockNode));\nvar RefDefNode = /** @class */ (function (_super) {\n esm_extends(RefDefNode, _super);\n function RefDefNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.title = '';\n _this.dest = '';\n _this.label = '';\n return _this;\n }\n return RefDefNode;\n}(BlockNode));\nvar CustomBlockNode = /** @class */ (function (_super) {\n esm_extends(CustomBlockNode, _super);\n function CustomBlockNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.syntaxLength = 0;\n _this.offset = -1;\n _this.info = '';\n return _this;\n }\n return CustomBlockNode;\n}(BlockNode));\nvar HtmlBlockNode = /** @class */ (function (_super) {\n esm_extends(HtmlBlockNode, _super);\n function HtmlBlockNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.htmlBlockType = -1;\n return _this;\n }\n return HtmlBlockNode;\n}(BlockNode));\nvar LinkNode = /** @class */ (function (_super) {\n esm_extends(LinkNode, _super);\n function LinkNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.destination = null;\n _this.title = null;\n _this.extendedAutolink = false;\n return _this;\n }\n return LinkNode;\n}(esm_Node));\nvar CodeNode = /** @class */ (function (_super) {\n esm_extends(CodeNode, _super);\n function CodeNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.tickCount = 0;\n return _this;\n }\n return CodeNode;\n}(esm_Node));\nvar CustomInlineNode = /** @class */ (function (_super) {\n esm_extends(CustomInlineNode, _super);\n function CustomInlineNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.info = '';\n return _this;\n }\n return CustomInlineNode;\n}(esm_Node));\nfunction createNode(type, sourcepos) {\n switch (type) {\n case 'heading':\n return new HeadingNode(type, sourcepos);\n case 'list':\n case 'item':\n return new ListNode(type, sourcepos);\n case 'link':\n case 'image':\n return new LinkNode(type, sourcepos);\n case 'codeBlock':\n return new CodeBlockNode(type, sourcepos);\n case 'htmlBlock':\n return new HtmlBlockNode(type, sourcepos);\n case 'table':\n return new TableNode(type, sourcepos);\n case 'tableCell':\n return new TableCellNode(type, sourcepos);\n case 'document':\n case 'paragraph':\n case 'blockQuote':\n case 'thematicBreak':\n case 'tableRow':\n case 'tableBody':\n case 'tableHead':\n case 'frontMatter':\n return new BlockNode(type, sourcepos);\n case 'code':\n return new CodeNode(type, sourcepos);\n case 'refDef':\n return new RefDefNode(type, sourcepos);\n case 'customBlock':\n return new CustomBlockNode(type, sourcepos);\n case 'customInline':\n return new CustomInlineNode(type, sourcepos);\n default:\n return new esm_Node(type, sourcepos);\n }\n}\nfunction isCodeBlock(node) {\n return node.type === 'codeBlock';\n}\nfunction isHtmlBlock(node) {\n return node.type === 'htmlBlock';\n}\nfunction isHeading(node) {\n return node.type === 'heading';\n}\nfunction isList(node) {\n return node.type === 'list';\n}\nfunction isTable(node) {\n return node.type === 'table';\n}\nfunction isRefDef(node) {\n return node.type === 'refDef';\n}\nfunction isCustomBlock(node) {\n return node.type === 'customBlock';\n}\nfunction isCustomInline(node) {\n return node.type === 'customInline';\n}\nfunction esm_text(s, sourcepos) {\n var node = createNode('text', sourcepos);\n node.literal = s;\n return node;\n}\nvar TAGNAME = '[A-Za-z][A-Za-z0-9-]*';\nvar ATTRIBUTENAME = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\nvar UNQUOTEDVALUE = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\nvar SINGLEQUOTEDVALUE = \"'[^']*'\";\nvar DOUBLEQUOTEDVALUE = '\"[^\"]*\"';\nvar ATTRIBUTEVALUE = \"(?:\" + UNQUOTEDVALUE + \"|\" + SINGLEQUOTEDVALUE + \"|\" + DOUBLEQUOTEDVALUE + \")\";\nvar ATTRIBUTEVALUESPEC = \"\" + '(?:\\\\s*=\\\\s*' + ATTRIBUTEVALUE + \")\";\nvar ATTRIBUTE = \"\" + '(?:\\\\s+' + ATTRIBUTENAME + ATTRIBUTEVALUESPEC + \"?)\";\nvar OPENTAG = \"<\" + TAGNAME + ATTRIBUTE + \"*\\\\s*/?>\";\nvar CLOSETAG = \"</\" + TAGNAME + \"\\\\s*[>]\";\nvar HTMLCOMMENT = '<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->';\nvar PROCESSINGINSTRUCTION = '[<][?].*?[?][>]';\nvar DECLARATION = '<![A-Z]+\\\\s+[^>]*>';\nvar CDATA = '<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>';\nvar HTMLTAG = \"(?:\" + OPENTAG + \"|\" + CLOSETAG + \"|\" + HTMLCOMMENT + \"|\" + PROCESSINGINSTRUCTION + \"|\" + DECLARATION + \"|\" + CDATA + \")\";\nvar reHtmlTag = new RegExp(\"^\" + HTMLTAG, 'i');\n// derived from https://github.com/mathiasbynens/String.fromCodePoint\n/*! http://mths.be/fromcodepoint v0.2.1 by @mathias */\nvar fromCodePoint;\nif (String.fromCodePoint) {\n fromCodePoint = function (_) {\n try {\n return String.fromCodePoint(_);\n }\n catch (e) {\n if (e instanceof RangeError) {\n return String.fromCharCode(0xfffd);\n }\n throw e;\n }\n };\n}\nelse {\n var stringFromCharCode_1 = String.fromCharCode;\n var floor_1 = Math.floor;\n fromCodePoint = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var MAX_SIZE = 0x4000;\n var codeUnits = [];\n var highSurrogate;\n var lowSurrogate;\n var index = -1;\n var length = args.length;\n if (!length) {\n return '';\n }\n var result = '';\n while (++index < length) {\n var codePoint = Number(args[index]);\n if (!isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10ffff || // not a valid Unicode code point\n floor_1(codePoint) !== codePoint // not an integer\n ) {\n return String.fromCharCode(0xfffd);\n }\n if (codePoint <= 0xffff) {\n // BMP code point\n codeUnits.push(codePoint);\n }\n else {\n // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000;\n highSurrogate = (codePoint >> 10) + 0xd800;\n lowSurrogate = (codePoint % 0x400) + 0xdc00;\n codeUnits.push(highSurrogate, lowSurrogate);\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode_1.apply(void 0, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n}\nvar fromCodePoint$1 = fromCodePoint;\nvar DOMAIN = '(?:[w-]+.)*[A-Za-z0-9-]+.[A-Za-z0-9-]+';\nvar PATH = '[^<\\\\s]*[^<?!.,:*_?~\\\\s]';\nvar EMAIL = '[\\\\w.+-]+@(?:[\\\\w-]+\\\\.)+[\\\\w-]+';\nfunction trimUnmatchedTrailingParens(source) {\n var trailingParen = /\\)+$/.exec(source);\n if (trailingParen) {\n var count = 0;\n for (var _i = 0, source_1 = source; _i < source_1.length; _i++) {\n var ch = source_1[_i];\n if (ch === '(') {\n if (count < 0) {\n count = 1;\n }\n else {\n count += 1;\n }\n }\n else if (ch === ')') {\n count -= 1;\n }\n }\n if (count < 0) {\n var trimCount = Math.min(-count, trailingParen[0].length);\n return source.substring(0, source.length - trimCount);\n }\n }\n return source;\n}\nfunction trimTrailingEntity(source) {\n return source.replace(/&[A-Za-z0-9]+;$/, '');\n}\nfunction parseEmailLink(source) {\n var reEmailLink = new RegExp(EMAIL, 'g');\n var result = [];\n var m;\n while ((m = reEmailLink.exec(source))) {\n var text_1 = m[0];\n if (!/[_-]+$/.test(text_1)) {\n result.push({\n text: text_1,\n range: [m.index, m.index + text_1.length - 1],\n url: \"mailto:\" + text_1,\n });\n }\n }\n return result;\n}\nfunction parseUrlLink(source) {\n var reWwwAutolink = new RegExp(\"(www|https?://).\" + DOMAIN + PATH, 'g');\n var result = [];\n var m;\n while ((m = reWwwAutolink.exec(source))) {\n var text_2 = trimTrailingEntity(trimUnmatchedTrailingParens(m[0]));\n var scheme = m[1] === 'www' ? 'http://' : '';\n result.push({\n text: text_2,\n range: [m.index, m.index + text_2.length - 1],\n url: \"\" + scheme + text_2,\n });\n }\n return result;\n}\nfunction baseAutolinkParser(source) {\n return esm_spreadArray(esm_spreadArray([], parseUrlLink(source)), parseEmailLink(source)).sort(function (a, b) { return a.range[0] - b.range[0]; });\n}\nfunction convertExtAutoLinks(walker, autolinkParser) {\n if (typeof autolinkParser === 'boolean') {\n autolinkParser = baseAutolinkParser;\n }\n var event;\n var _loop_1 = function () {\n var entering = event.entering, node = event.node;\n if (entering && node.type === 'text' && node.parent.type !== 'link') {\n var literal = node.literal;\n var linkInfos = autolinkParser(literal);\n if (!linkInfos || !linkInfos.length) {\n return \"continue\";\n }\n var lastIdx = 0;\n var _a = node.sourcepos[0], lineNum_1 = _a[0], chPos_1 = _a[1];\n var sourcepos = function (startIdx, endIdx) {\n return [\n [lineNum_1, chPos_1 + startIdx],\n [lineNum_1, chPos_1 + endIdx],\n ];\n };\n var newNodes = [];\n for (var _i = 0, linkInfos_1 = linkInfos; _i < linkInfos_1.length; _i++) {\n var _b = linkInfos_1[_i], range = _b.range, url = _b.url, linkText = _b.text;\n if (range[0] > lastIdx) {\n newNodes.push(esm_text(literal.substring(lastIdx, range[0]), sourcepos(lastIdx, range[0] - 1)));\n }\n var linkNode = createNode('link', sourcepos.apply(void 0, range));\n linkNode.appendChild(esm_text(linkText, sourcepos.apply(void 0, range)));\n linkNode.destination = url;\n linkNode.extendedAutolink = true;\n newNodes.push(linkNode);\n lastIdx = range[1] + 1;\n }\n if (lastIdx < literal.length) {\n newNodes.push(esm_text(literal.substring(lastIdx), sourcepos(lastIdx, literal.length - 1)));\n }\n for (var _c = 0, newNodes_1 = newNodes; _c < newNodes_1.length; _c++) {\n var newNode = newNodes_1[_c];\n node.insertBefore(newNode);\n }\n node.unlink();\n }\n };\n while ((event = walker.next())) {\n _loop_1();\n }\n}\nfunction last(arr) {\n return arr[arr.length - 1];\n}\n// normalize a reference in reference link (remove []s, trim,\n// collapse internal space, unicode case fold.\n// See commonmark/commonmark.js#168.\nfunction normalizeReference(str) {\n return str\n .slice(1, str.length - 1)\n .trim()\n .replace(/[ \\t\\r\\n]+/, ' ')\n .toLowerCase()\n .toUpperCase();\n}\nfunction iterateObject(obj, iteratee) {\n Object.keys(obj).forEach(function (key) {\n iteratee(key, obj[key]);\n });\n}\nfunction omit(obj) {\n var propNames = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n propNames[_i - 1] = arguments[_i];\n }\n var resultMap = esm_assign({}, obj);\n propNames.forEach(function (key) {\n delete resultMap[key];\n });\n return resultMap;\n}\nfunction isEmptyObj(obj) {\n return !Object.keys(obj).length;\n}\nfunction clearObj(obj) {\n Object.keys(obj).forEach(function (key) {\n delete obj[key];\n });\n}\nvar C_NEWLINE = 10;\nvar C_ASTERISK = 42;\nvar C_UNDERSCORE = 95;\nvar C_BACKTICK = 96;\nvar C_OPEN_BRACKET$1 = 91;\nvar C_CLOSE_BRACKET = 93;\nvar C_TILDE = 126;\nvar C_LESSTHAN$1 = 60;\nvar C_BANG = 33;\nvar C_BACKSLASH = 92;\nvar C_AMPERSAND = 38;\nvar C_OPEN_PAREN = 40;\nvar C_CLOSE_PAREN = 41;\nvar C_COLON = 58;\nvar C_SINGLEQUOTE = 39;\nvar C_DOUBLEQUOTE = 34;\nvar C_DOLLAR = 36;\n// Some regexps used in inline parser:\nvar ESCAPED_CHAR = \"\\\\\\\\\" + ESCAPABLE;\nvar rePunctuation = new RegExp(/[!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0AF0\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E42\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC9\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDF3C-\\uDF3E]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]/);\nvar reLinkTitle = new RegExp(\"^(?:\\\"(\" + ESCAPED_CHAR + \"|[^\\\"\\\\x00])*\\\"\" +\n \"|\" +\n (\"'(\" + ESCAPED_CHAR + \"|[^'\\\\x00])*'\") +\n \"|\" +\n (\"\\\\((\" + ESCAPED_CHAR + \"|[^()\\\\x00])*\\\\))\"));\nvar reLinkDestinationBraces = /^(?:<(?:[^<>\\n\\\\\\x00]|\\\\.)*>)/;\nvar reEscapable = new RegExp(\"^\" + ESCAPABLE);\nvar reEntityHere = new RegExp(\"^\" + ENTITY, 'i');\nvar reTicks = /`+/;\nvar reTicksHere = /^`+/;\nvar reEllipses = /\\.\\.\\./g;\nvar reDash = /--+/g;\nvar reEmailAutolink = /^<([a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/;\nvar reAutolink = /^<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\\x00-\\x20]*>/i;\nvar reSpnl = /^ *(?:\\n *)?/;\nvar reWhitespaceChar = /^[ \\t\\n\\x0b\\x0c\\x0d]/;\nvar reUnicodeWhitespaceChar = /^\\s/;\nvar reFinalSpace = / *$/;\nvar reInitialSpace = /^ */;\nvar reSpaceAtEndOfLine = /^ *(?:\\n|$)/;\nvar reLinkLabel = /^\\[(?:[^\\\\\\[\\]]|\\\\.){0,1000}\\]/;\n// Matches a string of non-special characters.\nvar reMain = /^[^\\n`\\[\\]\\\\!<&*_'\"~$]+/m;\nvar InlineParser = /** @class */ (function () {\n function InlineParser(options) {\n // An InlineParser keeps track of a subject (a string to be parsed)\n // and a position in that subject.\n this.subject = '';\n this.delimiters = null; // used by handleDelim method\n this.brackets = null;\n this.pos = 0;\n this.lineStartNum = 0;\n this.lineIdx = 0;\n this.lineOffsets = [0];\n this.linePosOffset = 0;\n this.refMap = {};\n this.refLinkCandidateMap = {};\n this.refDefCandidateMap = {};\n this.options = options;\n }\n InlineParser.prototype.sourcepos = function (start, end) {\n var linePosOffset = this.linePosOffset + this.lineOffsets[this.lineIdx];\n var lineNum = this.lineStartNum + this.lineIdx;\n var startpos = [lineNum, start + linePosOffset];\n if (typeof end === 'number') {\n return [startpos, [lineNum, end + linePosOffset]];\n }\n return startpos;\n };\n InlineParser.prototype.nextLine = function () {\n this.lineIdx += 1;\n this.linePosOffset = -this.pos;\n };\n // If re matches at current position in the subject, advance\n // position in subject and return the match; otherwise return null.\n InlineParser.prototype.match = function (re) {\n var m = re.exec(this.subject.slice(this.pos));\n if (m === null) {\n return null;\n }\n this.pos += m.index + m[0].length;\n return m[0];\n };\n // Returns the code for the character at the current subject position, or -1\n // there are no more characters.\n InlineParser.prototype.peek = function () {\n if (this.pos < this.subject.length) {\n return this.subject.charCodeAt(this.pos);\n }\n return -1;\n };\n // Parse zero or more space characters, including at most one newline\n InlineParser.prototype.spnl = function () {\n this.match(reSpnl);\n return true;\n };\n // All of the parsers below try to match something at the current position\n // in the subject. If they succeed in matching anything, they\n // return the inline matched, advancing the subject.\n // Attempt to parse backticks, adding either a backtick code span or a\n // literal sequence of backticks.\n InlineParser.prototype.parseBackticks = function (block) {\n var startpos = this.pos + 1;\n var ticks = this.match(reTicksHere);\n if (ticks === null) {\n return false;\n }\n var afterOpenTicks = this.pos;\n var matched;\n while ((matched = this.match(reTicks)) !== null) {\n if (matched === ticks) {\n var contents = this.subject.slice(afterOpenTicks, this.pos - ticks.length);\n var sourcepos = this.sourcepos(startpos, this.pos);\n var lines = contents.split('\\n');\n if (lines.length > 1) {\n var lastLine = last(lines);\n this.lineIdx += lines.length - 1;\n this.linePosOffset = -(this.pos - lastLine.length - ticks.length);\n sourcepos[1] = this.sourcepos(this.pos);\n contents = lines.join(' ');\n }\n var node = createNode('code', sourcepos);\n if (contents.length > 0 &&\n contents.match(/[^ ]/) !== null &&\n contents[0] == ' ' &&\n contents[contents.length - 1] == ' ') {\n node.literal = contents.slice(1, contents.length - 1);\n }\n else {\n node.literal = contents;\n }\n node.tickCount = ticks.length;\n block.appendChild(node);\n return true;\n }\n }\n // If we got here, we didn't match a closing backtick sequence.\n this.pos = afterOpenTicks;\n block.appendChild(esm_text(ticks, this.sourcepos(startpos, this.pos - 1)));\n return true;\n };\n // Parse a backslash-escaped special character, adding either the escaped\n // character, a hard line break (if the backslash is followed by a newline),\n // or a literal backslash to the block's children. Assumes current character\n // is a backslash.\n InlineParser.prototype.parseBackslash = function (block) {\n var subj = this.subject;\n var node;\n this.pos += 1;\n var startpos = this.pos;\n if (this.peek() === C_NEWLINE) {\n this.pos += 1;\n node = createNode('linebreak', this.sourcepos(this.pos - 1, this.pos));\n block.appendChild(node);\n this.nextLine();\n }\n else if (reEscapable.test(subj.charAt(this.pos))) {\n block.appendChild(esm_text(subj.charAt(this.pos), this.sourcepos(startpos, this.pos)));\n this.pos += 1;\n }\n else {\n block.appendChild(esm_text('\\\\', this.sourcepos(startpos, startpos)));\n }\n return true;\n };\n // Attempt to parse an autolink (URL or email in pointy brackets).\n InlineParser.prototype.parseAutolink = function (block) {\n var m;\n var dest;\n var node;\n var startpos = this.pos + 1;\n if ((m = this.match(reEmailAutolink))) {\n dest = m.slice(1, m.length - 1);\n node = createNode('link', this.sourcepos(startpos, this.pos));\n node.destination = normalizeURI(\"mailto:\" + dest);\n node.title = '';\n node.appendChild(esm_text(dest, this.sourcepos(startpos + 1, this.pos - 1)));\n block.appendChild(node);\n return true;\n }\n if ((m = this.match(reAutolink))) {\n dest = m.slice(1, m.length - 1);\n node = createNode('link', this.sourcepos(startpos, this.pos));\n node.destination = normalizeURI(dest);\n node.title = '';\n node.appendChild(esm_text(dest, this.sourcepos(startpos + 1, this.pos - 1)));\n block.appendChild(node);\n return true;\n }\n return false;\n };\n // Attempt to parse a raw HTML tag.\n InlineParser.prototype.parseHtmlTag = function (block) {\n var startpos = this.pos + 1;\n var m = this.match(reHtmlTag);\n if (m === null) {\n return false;\n }\n var node = createNode('htmlInline', this.sourcepos(startpos, this.pos));\n node.literal = m;\n block.appendChild(node);\n return true;\n };\n // Scan a sequence of characters with code cc, and return information about\n // the number of delimiters and whether they are positioned such that\n // they can open and/or close emphasis or strong emphasis. A utility\n // function for strong/emph parsing.\n InlineParser.prototype.scanDelims = function (cc) {\n var numdelims = 0;\n var startpos = this.pos;\n if (cc === C_SINGLEQUOTE || cc === C_DOUBLEQUOTE) {\n numdelims++;\n this.pos++;\n }\n else {\n while (this.peek() === cc) {\n numdelims++;\n this.pos++;\n }\n }\n if (numdelims === 0 || (numdelims < 2 && (cc === C_TILDE || cc === C_DOLLAR))) {\n this.pos = startpos;\n return null;\n }\n var charBefore = startpos === 0 ? '\\n' : this.subject.charAt(startpos - 1);\n var ccAfter = this.peek();\n var charAfter;\n if (ccAfter === -1) {\n charAfter = '\\n';\n }\n else {\n charAfter = fromCodePoint$1(ccAfter);\n }\n var afterIsWhitespace = reUnicodeWhitespaceChar.test(charAfter);\n var afterIsPunctuation = rePunctuation.test(charAfter);\n var beforeIsWhitespace = reUnicodeWhitespaceChar.test(charBefore);\n var beforeIsPunctuation = rePunctuation.test(charBefore);\n var leftFlanking = !afterIsWhitespace && (!afterIsPunctuation || beforeIsWhitespace || beforeIsPunctuation);\n var rightFlanking = !beforeIsWhitespace && (!beforeIsPunctuation || afterIsWhitespace || afterIsPunctuation);\n var canOpen;\n var canClose;\n if (cc === C_UNDERSCORE) {\n canOpen = leftFlanking && (!rightFlanking || beforeIsPunctuation);\n canClose = rightFlanking && (!leftFlanking || afterIsPunctuation);\n }\n else if (cc === C_SINGLEQUOTE || cc === C_DOUBLEQUOTE) {\n canOpen = leftFlanking && !rightFlanking;\n canClose = rightFlanking;\n }\n else if (cc === C_DOLLAR) {\n canOpen = !afterIsWhitespace;\n canClose = !beforeIsWhitespace;\n }\n else {\n canOpen = leftFlanking;\n canClose = rightFlanking;\n }\n this.pos = startpos;\n return { numdelims: numdelims, canOpen: canOpen, canClose: canClose };\n };\n // Handle a delimiter marker for emphasis or a quote.\n InlineParser.prototype.handleDelim = function (cc, block) {\n var res = this.scanDelims(cc);\n if (!res) {\n return false;\n }\n var numdelims = res.numdelims;\n var startpos = this.pos + 1;\n var contents;\n this.pos += numdelims;\n if (cc === C_SINGLEQUOTE) {\n contents = '\\u2019';\n }\n else if (cc === C_DOUBLEQUOTE) {\n contents = '\\u201C';\n }\n else {\n contents = this.subject.slice(startpos - 1, this.pos);\n }\n var node = esm_text(contents, this.sourcepos(startpos, this.pos));\n block.appendChild(node);\n // Add entry to stack for this opener\n if ((res.canOpen || res.canClose) &&\n (this.options.smart || (cc !== C_SINGLEQUOTE && cc !== C_DOUBLEQUOTE))) {\n this.delimiters = {\n cc: cc,\n numdelims: numdelims,\n origdelims: numdelims,\n node: node,\n previous: this.delimiters,\n next: null,\n canOpen: res.canOpen,\n canClose: res.canClose,\n };\n if (this.delimiters.previous) {\n this.delimiters.previous.next = this.delimiters;\n }\n }\n return true;\n };\n InlineParser.prototype.removeDelimiter = function (delim) {\n if (delim.previous !== null) {\n delim.previous.next = delim.next;\n }\n if (delim.next === null) {\n // top of stack\n this.delimiters = delim.previous;\n }\n else {\n delim.next.previous = delim.previous;\n }\n };\n InlineParser.prototype.removeDelimitersBetween = function (bottom, top) {\n if (bottom.next !== top) {\n bottom.next = top;\n top.previous = bottom;\n }\n };\n /**\n * Process all delimiters - emphasis, strong emphasis, strikethrough(gfm)\n * If the smart punctuation options is true,\n * convert single/double quotes to corresponding unicode characters.\n **/\n InlineParser.prototype.processEmphasis = function (stackBottom) {\n var _a;\n var opener;\n var closer;\n var oldCloser;\n var openerInl, closerInl;\n var openerFound;\n var oddMatch = false;\n var openersBottom = (_a = {},\n _a[C_UNDERSCORE] = [stackBottom, stackBottom, stackBottom],\n _a[C_ASTERISK] = [stackBottom, stackBottom, stackBottom],\n _a[C_SINGLEQUOTE] = [stackBottom],\n _a[C_DOUBLEQUOTE] = [stackBottom],\n _a[C_TILDE] = [stackBottom],\n _a[C_DOLLAR] = [stackBottom],\n _a);\n // find first closer above stackBottom:\n closer = this.delimiters;\n while (closer !== null && closer.previous !== stackBottom) {\n closer = closer.previous;\n }\n // move forward, looking for closers, and handling each\n while (closer !== null) {\n var closercc = closer.cc;\n var closerEmph = closercc === C_UNDERSCORE || closercc === C_ASTERISK;\n if (!closer.canClose) {\n closer = closer.next;\n }\n else {\n // found emphasis closer. now look back for first matching opener:\n opener = closer.previous;\n openerFound = false;\n while (opener !== null &&\n opener !== stackBottom &&\n opener !== openersBottom[closercc][closerEmph ? closer.origdelims % 3 : 0]) {\n oddMatch =\n closerEmph &&\n (closer.canOpen || opener.canClose) &&\n closer.origdelims % 3 !== 0 &&\n (opener.origdelims + closer.origdelims) % 3 === 0;\n if (opener.cc === closer.cc && opener.canOpen && !oddMatch) {\n openerFound = true;\n break;\n }\n opener = opener.previous;\n }\n oldCloser = closer;\n if (closerEmph || closercc === C_TILDE || closercc === C_DOLLAR) {\n if (!openerFound) {\n closer = closer.next;\n }\n else if (opener) {\n // (null opener check for type narrowing)\n // calculate actual number of delimiters used from closer\n var useDelims = closer.numdelims >= 2 && opener.numdelims >= 2 ? 2 : 1;\n var emptyDelims = closerEmph ? 0 : 1;\n openerInl = opener.node;\n closerInl = closer.node;\n // build contents for new emph element\n var nodeType = closerEmph\n ? useDelims === 1\n ? 'emph'\n : 'strong'\n : 'strike';\n if (closercc === C_DOLLAR) {\n nodeType = 'customInline';\n }\n var newNode = createNode(nodeType);\n var openerEndPos = openerInl.sourcepos[1];\n var closerStartPos = closerInl.sourcepos[0];\n newNode.sourcepos = [\n [openerEndPos[0], openerEndPos[1] - useDelims + 1],\n [closerStartPos[0], closerStartPos[1] + useDelims - 1],\n ];\n openerInl.sourcepos[1][1] -= useDelims;\n closerInl.sourcepos[0][1] += useDelims;\n openerInl.literal = openerInl.literal.slice(useDelims);\n closerInl.literal = closerInl.literal.slice(useDelims);\n opener.numdelims -= useDelims;\n closer.numdelims -= useDelims;\n // remove used delimiters from stack elts and inlines\n var tmp = openerInl.next;\n var next = void 0;\n while (tmp && tmp !== closerInl) {\n next = tmp.next;\n tmp.unlink();\n newNode.appendChild(tmp);\n tmp = next;\n }\n // build custom inline node\n if (closercc === C_DOLLAR) {\n var textNode = newNode.firstChild;\n var literal = textNode.literal || '';\n var info = literal.split(/\\s/)[0];\n newNode.info = info;\n if (literal.length <= info.length) {\n textNode.unlink();\n }\n else {\n textNode.sourcepos[0][1] += info.length;\n textNode.literal = literal.replace(info + \" \", '');\n }\n }\n openerInl.insertAfter(newNode);\n // remove elts between opener and closer in delimiters stack\n this.removeDelimitersBetween(opener, closer);\n // if opener has 0 delims, remove it and the inline\n // if opener has 1 delims and character is tilde, remove delimiter only\n if (opener.numdelims <= emptyDelims) {\n if (opener.numdelims === 0) {\n openerInl.unlink();\n }\n this.removeDelimiter(opener);\n }\n // if closer has 0 delims, remove it and the inline\n // if closer has 1 delims and character is tilde, remove delimiter only\n if (closer.numdelims <= emptyDelims) {\n if (closer.numdelims === 0) {\n closerInl.unlink();\n }\n var tempstack = closer.next;\n this.removeDelimiter(closer);\n closer = tempstack;\n }\n }\n }\n else if (closercc === C_SINGLEQUOTE) {\n closer.node.literal = '\\u2019';\n if (openerFound) {\n opener.node.literal = '\\u2018';\n }\n closer = closer.next;\n }\n else if (closercc === C_DOUBLEQUOTE) {\n closer.node.literal = '\\u201D';\n if (openerFound) {\n opener.node.literal = '\\u201C';\n }\n closer = closer.next;\n }\n if (!openerFound) {\n // Set lower bound for future searches for openers:\n openersBottom[closercc][closerEmph ? oldCloser.origdelims % 3 : 0] = oldCloser.previous;\n if (!oldCloser.canOpen) {\n // We can remove a closer that can't be an opener,\n // once we've seen there's no matching opener:\n this.removeDelimiter(oldCloser);\n }\n }\n }\n }\n // remove all delimiters\n while (this.delimiters !== null && this.delimiters !== stackBottom) {\n this.removeDelimiter(this.delimiters);\n }\n };\n // Attempt to parse link title (sans quotes), returning the string\n // or null if no match.\n InlineParser.prototype.parseLinkTitle = function () {\n var title = this.match(reLinkTitle);\n if (title === null) {\n return null;\n }\n // chop off quotes from title and unescape:\n return unescapeString(title.substr(1, title.length - 2));\n };\n // Attempt to parse link destination, returning the string or null if no match.\n InlineParser.prototype.parseLinkDestination = function () {\n var res = this.match(reLinkDestinationBraces);\n if (res === null) {\n if (this.peek() === C_LESSTHAN$1) {\n return null;\n }\n // @TODO handrolled parser; res should be null or the string\n var savepos = this.pos;\n var openparens = 0;\n var c = void 0;\n while ((c = this.peek()) !== -1) {\n if (c === C_BACKSLASH && reEscapable.test(this.subject.charAt(this.pos + 1))) {\n this.pos += 1;\n if (this.peek() !== -1) {\n this.pos += 1;\n }\n }\n else if (c === C_OPEN_PAREN) {\n this.pos += 1;\n openparens += 1;\n }\n else if (c === C_CLOSE_PAREN) {\n if (openparens < 1) {\n break;\n }\n else {\n this.pos += 1;\n openparens -= 1;\n }\n }\n else if (reWhitespaceChar.exec(fromCodePoint$1(c)) !== null) {\n break;\n }\n else {\n this.pos += 1;\n }\n }\n if (this.pos === savepos && c !== C_CLOSE_PAREN) {\n return null;\n }\n if (openparens !== 0) {\n return null;\n }\n res = this.subject.substr(savepos, this.pos - savepos);\n return normalizeURI(unescapeString(res));\n } // chop off surrounding <..>:\n return normalizeURI(unescapeString(res.substr(1, res.length - 2)));\n };\n // Attempt to parse a link label, returning number of characters parsed.\n InlineParser.prototype.parseLinkLabel = function () {\n var m = this.match(reLinkLabel);\n if (m === null || m.length > 1001) {\n return 0;\n }\n return m.length;\n };\n // Add open bracket to delimiter stack and add a text node to block's children.\n InlineParser.prototype.parseOpenBracket = function (block) {\n var startpos = this.pos;\n this.pos += 1;\n var node = esm_text('[', this.sourcepos(this.pos, this.pos));\n block.appendChild(node);\n // Add entry to stack for this opener\n this.addBracket(node, startpos, false);\n return true;\n };\n // IF next character is [, and ! delimiter to delimiter stack and\n // add a text node to block's children. Otherwise just add a text node.\n InlineParser.prototype.parseBang = function (block) {\n var startpos = this.pos;\n this.pos += 1;\n if (this.peek() === C_OPEN_BRACKET$1) {\n this.pos += 1;\n var node = esm_text('![', this.sourcepos(this.pos - 1, this.pos));\n block.appendChild(node);\n // Add entry to stack for this opener\n this.addBracket(node, startpos + 1, true);\n }\n else {\n var node = esm_text('!', this.sourcepos(this.pos, this.pos));\n block.appendChild(node);\n }\n return true;\n };\n // Try to match close bracket against an opening in the delimiter\n // stack. Add either a link or image, or a plain [ character,\n // to block's children. If there is a matching delimiter,\n // remove it from the delimiter stack.\n InlineParser.prototype.parseCloseBracket = function (block) {\n var dest = null;\n var title = null;\n var matched = false;\n this.pos += 1;\n var startpos = this.pos;\n // get last [ or ![\n var opener = this.brackets;\n if (opener === null) {\n // no matched opener, just return a literal\n block.appendChild(esm_text(']', this.sourcepos(startpos, startpos)));\n return true;\n }\n if (!opener.active) {\n // no matched opener, just return a literal\n block.appendChild(esm_text(']', this.sourcepos(startpos, startpos)));\n // take opener off brackets stack\n this.removeBracket();\n return true;\n }\n // If we got here, open is a potential opener\n var isImage = opener.image;\n // Check to see if we have a link/image\n var savepos = this.pos;\n // Inline link?\n if (this.peek() === C_OPEN_PAREN) {\n this.pos++;\n if (this.spnl() &&\n (dest = this.parseLinkDestination()) !== null &&\n this.spnl() &&\n // make sure there's a space before the title:\n ((reWhitespaceChar.test(this.subject.charAt(this.pos - 1)) &&\n (title = this.parseLinkTitle())) ||\n true) &&\n this.spnl() &&\n this.peek() === C_CLOSE_PAREN) {\n this.pos += 1;\n matched = true;\n }\n else {\n this.pos = savepos;\n }\n }\n var refLabel = '';\n if (!matched) {\n // Next, see if there's a link label\n var beforelabel = this.pos;\n var n = this.parseLinkLabel();\n if (n > 2) {\n refLabel = this.subject.slice(beforelabel, beforelabel + n);\n }\n else if (!opener.bracketAfter) {\n // Empty or missing second label means to use the first label as the reference.\n // The reference must not contain a bracket. If we know there's a bracket, we don't even bother checking it.\n refLabel = this.subject.slice(opener.index, startpos);\n }\n if (n === 0) {\n // If shortcut reference link, rewind before spaces we skipped.\n this.pos = savepos;\n }\n if (refLabel) {\n refLabel = normalizeReference(refLabel);\n // lookup rawlabel in refMap\n var link = this.refMap[refLabel];\n if (link) {\n dest = link.destination;\n title = link.title;\n matched = true;\n }\n }\n }\n if (matched) {\n var node = createNode(isImage ? 'image' : 'link');\n node.destination = dest;\n node.title = title || '';\n node.sourcepos = [opener.startpos, this.sourcepos(this.pos)];\n var tmp = opener.node.next;\n var next = void 0;\n while (tmp) {\n next = tmp.next;\n tmp.unlink();\n node.appendChild(tmp);\n tmp = next;\n }\n block.appendChild(node);\n this.processEmphasis(opener.previousDelimiter);\n this.removeBracket();\n opener.node.unlink();\n // We remove this bracket and processEmphasis will remove later delimiters.\n // Now, for a link, we also deactivate earlier link openers.\n // (no links in links)\n if (!isImage) {\n opener = this.brackets;\n while (opener !== null) {\n if (!opener.image) {\n opener.active = false; // deactivate this opener\n }\n opener = opener.previous;\n }\n }\n if (this.options.referenceDefinition) {\n this.refLinkCandidateMap[block.id] = { node: block, refLabel: refLabel };\n }\n return true;\n } // no match\n this.removeBracket(); // remove this opener from stack\n this.pos = startpos;\n block.appendChild(esm_text(']', this.sourcepos(startpos, startpos)));\n if (this.options.referenceDefinition) {\n this.refLinkCandidateMap[block.id] = { node: block, refLabel: refLabel };\n }\n return true;\n };\n InlineParser.prototype.addBracket = function (node, index, image) {\n if (this.brackets !== null) {\n this.brackets.bracketAfter = true;\n }\n this.brackets = {\n node: node,\n startpos: this.sourcepos(index + (image ? 0 : 1)),\n previous: this.brackets,\n previousDelimiter: this.delimiters,\n index: index,\n image: image,\n active: true,\n };\n };\n InlineParser.prototype.removeBracket = function () {\n if (this.brackets) {\n this.brackets = this.brackets.previous;\n }\n };\n // Attempt to parse an entity.\n InlineParser.prototype.parseEntity = function (block) {\n var m;\n var startpos = this.pos + 1;\n if ((m = this.match(reEntityHere))) {\n block.appendChild(esm_text(lib.decodeHTML(m), this.sourcepos(startpos, this.pos)));\n return true;\n }\n return false;\n };\n // Parse a run of ordinary characters, or a single character with\n // a special meaning in markdown, as a plain string.\n InlineParser.prototype.parseString = function (block) {\n var m;\n var startpos = this.pos + 1;\n if ((m = this.match(reMain))) {\n if (this.options.smart) {\n var lit = m.replace(reEllipses, '\\u2026').replace(reDash, function (chars) {\n var enCount = 0;\n var emCount = 0;\n if (chars.length % 3 === 0) {\n // If divisible by 3, use all em dashes\n emCount = chars.length / 3;\n }\n else if (chars.length % 2 === 0) {\n // If divisible by 2, use all en dashes\n enCount = chars.length / 2;\n }\n else if (chars.length % 3 === 2) {\n // If 2 extra dashes, use en dash for last 2; em dashes for rest\n enCount = 1;\n emCount = (chars.length - 2) / 3;\n }\n else {\n // Use en dashes for last 4 hyphens; em dashes for rest\n enCount = 2;\n emCount = (chars.length - 4) / 3;\n }\n return repeat('\\u2014', emCount) + repeat('\\u2013', enCount);\n });\n block.appendChild(esm_text(lit, this.sourcepos(startpos, this.pos)));\n }\n else {\n var node = esm_text(m, this.sourcepos(startpos, this.pos));\n block.appendChild(node);\n }\n return true;\n }\n return false;\n };\n // Parse a newline. If it was preceded by two spaces, return a hard\n // line break; otherwise a soft line break.\n InlineParser.prototype.parseNewline = function (block) {\n this.pos += 1; // assume we're at a \\n\n // check previous node for trailing spaces\n var lastc = block.lastChild;\n if (lastc && lastc.type === 'text' && lastc.literal[lastc.literal.length - 1] === ' ') {\n var hardbreak = lastc.literal[lastc.literal.length - 2] === ' ';\n var litLen = lastc.literal.length;\n lastc.literal = lastc.literal.replace(reFinalSpace, '');\n var finalSpaceLen = litLen - lastc.literal.length;\n lastc.sourcepos[1][1] -= finalSpaceLen;\n block.appendChild(createNode(hardbreak ? 'linebreak' : 'softbreak', this.sourcepos(this.pos - finalSpaceLen, this.pos)));\n }\n else {\n block.appendChild(createNode('softbreak', this.sourcepos(this.pos, this.pos)));\n }\n this.nextLine();\n this.match(reInitialSpace); // gobble leading spaces in next line\n return true;\n };\n // Attempt to parse a link reference, modifying refmap.\n InlineParser.prototype.parseReference = function (block, refMap) {\n if (!this.options.referenceDefinition) {\n return 0;\n }\n this.subject = block.stringContent;\n this.pos = 0;\n var title = null;\n var startpos = this.pos;\n // label:\n var matchChars = this.parseLinkLabel();\n if (matchChars === 0) {\n return 0;\n }\n var rawlabel = this.subject.substr(0, matchChars);\n // colon:\n if (this.peek() === C_COLON) {\n this.pos++;\n }\n else {\n this.pos = startpos;\n return 0;\n }\n // link url\n this.spnl();\n var dest = this.parseLinkDestination();\n if (dest === null) {\n this.pos = startpos;\n return 0;\n }\n var beforetitle = this.pos;\n this.spnl();\n if (this.pos !== beforetitle) {\n title = this.parseLinkTitle();\n }\n if (title === null) {\n title = '';\n // rewind before spaces\n this.pos = beforetitle;\n }\n // make sure we're at line end:\n var atLineEnd = true;\n if (this.match(reSpaceAtEndOfLine) === null) {\n if (title === '') {\n atLineEnd = false;\n }\n else {\n // the potential title we found is not at the line end,\n // but it could still be a legal link reference if we\n // discard the title\n title = '';\n // rewind before spaces\n this.pos = beforetitle;\n // and instead check if the link URL is at the line end\n atLineEnd = this.match(reSpaceAtEndOfLine) !== null;\n }\n }\n if (!atLineEnd) {\n this.pos = startpos;\n return 0;\n }\n var normalLabel = normalizeReference(rawlabel);\n if (normalLabel === '') {\n // label must contain non-whitespace characters\n this.pos = startpos;\n return 0;\n }\n var sourcepos = this.getReferenceDefSourcepos(block);\n block.sourcepos[0][0] = sourcepos[1][0] + 1;\n var node = createNode('refDef', sourcepos);\n node.title = title;\n node.dest = dest;\n node.label = normalLabel;\n block.insertBefore(node);\n if (!refMap[normalLabel]) {\n refMap[normalLabel] = createRefDefState(node);\n }\n else {\n this.refDefCandidateMap[node.id] = node;\n }\n return this.pos - startpos;\n };\n InlineParser.prototype.mergeTextNodes = function (walker) {\n var event;\n var textNodes = [];\n while ((event = walker.next())) {\n var entering = event.entering, node = event.node;\n if (entering && node.type === 'text') {\n textNodes.push(node);\n }\n else if (textNodes.length === 1) {\n textNodes = [];\n }\n else if (textNodes.length > 1) {\n var firstNode = textNodes[0];\n var lastNode = textNodes[textNodes.length - 1];\n if (firstNode.sourcepos && lastNode.sourcepos) {\n firstNode.sourcepos[1] = lastNode.sourcepos[1];\n }\n firstNode.next = lastNode.next;\n if (firstNode.next) {\n firstNode.next.prev = firstNode;\n }\n for (var i = 1; i < textNodes.length; i += 1) {\n firstNode.literal += textNodes[i].literal;\n textNodes[i].unlink();\n }\n textNodes = [];\n }\n }\n };\n InlineParser.prototype.getReferenceDefSourcepos = function (block) {\n var lines = block.stringContent.split(/\\n|\\r\\n/);\n var passedUrlLine = false;\n var quotationCount = 0;\n var lastLineOffset = { line: 0, ch: 0 };\n for (var i = 0; i < lines.length; i += 1) {\n var line = lines[i];\n if (reWhitespaceChar.test(line)) {\n break;\n }\n if (/\\:/.test(line) && quotationCount === 0) {\n if (passedUrlLine) {\n break;\n }\n var lineOffset = line.indexOf(':') === line.length - 1 ? i + 1 : i;\n lastLineOffset = { line: lineOffset, ch: lines[lineOffset].length };\n passedUrlLine = true;\n }\n // should consider extendable title\n var matched = line.match(/'|\"/g);\n if (matched) {\n quotationCount += matched.length;\n }\n if (quotationCount === 2) {\n lastLineOffset = { line: i, ch: line.length };\n break;\n }\n }\n return [\n [block.sourcepos[0][0], block.sourcepos[0][1]],\n [block.sourcepos[0][0] + lastLineOffset.line, lastLineOffset.ch],\n ];\n };\n // Parse the next inline element in subject, advancing subject position.\n // On success, add the result to block's children and return true.\n // On failure, return false.\n InlineParser.prototype.parseInline = function (block) {\n var _a;\n var res = false;\n var c = this.peek();\n if (c === -1) {\n return false;\n }\n switch (c) {\n case C_NEWLINE:\n res = this.parseNewline(block);\n break;\n case C_BACKSLASH:\n res = this.parseBackslash(block);\n break;\n case C_BACKTICK:\n res = this.parseBackticks(block);\n break;\n case C_ASTERISK:\n case C_UNDERSCORE:\n case C_TILDE:\n case C_DOLLAR:\n res = this.handleDelim(c, block);\n break;\n case C_SINGLEQUOTE:\n case C_DOUBLEQUOTE:\n res = !!((_a = this.options) === null || _a === void 0 ? void 0 : _a.smart) && this.handleDelim(c, block);\n break;\n case C_OPEN_BRACKET$1:\n res = this.parseOpenBracket(block);\n break;\n case C_BANG:\n res = this.parseBang(block);\n break;\n case C_CLOSE_BRACKET:\n res = this.parseCloseBracket(block);\n break;\n case C_LESSTHAN$1:\n res = this.parseAutolink(block) || this.parseHtmlTag(block);\n break;\n case C_AMPERSAND:\n if (!block.disabledEntityParse) {\n res = this.parseEntity(block);\n }\n break;\n default:\n res = this.parseString(block);\n break;\n }\n if (!res) {\n this.pos += 1;\n block.appendChild(esm_text(fromCodePoint$1(c), this.sourcepos(this.pos, this.pos + 1)));\n }\n return true;\n };\n // Parse string content in block into inline children,\n // using refmap to resolve references.\n InlineParser.prototype.parse = function (block) {\n this.subject = block.stringContent.trim();\n this.pos = 0;\n this.delimiters = null;\n this.brackets = null;\n this.lineOffsets = block.lineOffsets || [0];\n this.lineIdx = 0;\n this.linePosOffset = 0;\n this.lineStartNum = block.sourcepos[0][0];\n if (isHeading(block)) {\n this.lineOffsets[0] += block.level + 1;\n }\n while (this.parseInline(block)) { }\n block.stringContent = null; // allow raw string to be garbage collected\n this.processEmphasis(null);\n this.mergeTextNodes(block.walker());\n var _a = this.options, extendedAutolinks = _a.extendedAutolinks, customParser = _a.customParser;\n if (extendedAutolinks) {\n convertExtAutoLinks(block.walker(), extendedAutolinks);\n }\n if (customParser && block.firstChild) {\n var event_1;\n var walker = block.firstChild.walker();\n while ((event_1 = walker.next())) {\n var node = event_1.node, entering = event_1.entering;\n if (customParser[node.type]) {\n customParser[node.type](node, { entering: entering, options: this.options });\n }\n }\n }\n };\n return InlineParser;\n}());\nvar reTaskListItemMarker = /^\\[([ \\txX])\\][ \\t]+/;\n// finalize for block handler\nfunction taskListItemFinalize(_, block) {\n if (block.firstChild && block.firstChild.type === 'paragraph') {\n var p = block.firstChild;\n var m = p.stringContent.match(reTaskListItemMarker);\n if (m) {\n var mLen = m[0].length;\n p.stringContent = p.stringContent.substring(mLen - 1);\n p.sourcepos[0][1] += mLen;\n p.lineOffsets[0] += mLen;\n block.listData.task = true;\n block.listData.checked = /[xX]/.test(m[1]);\n }\n }\n}\nvar table = {\n continue: function () {\n return 0 /* Go */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t === 'tableHead' || t === 'tableBody';\n },\n acceptsLines: false,\n};\nvar tableBody$1 = {\n continue: function () {\n return 0 /* Go */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t === 'tableRow';\n },\n acceptsLines: false,\n};\nvar tableHead$1 = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t === 'tableRow' || t === 'tableDelimRow';\n },\n acceptsLines: false,\n};\nvar tableDelimRow = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t === 'tableDelimCell';\n },\n acceptsLines: false,\n};\nvar tableDelimCell = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function () {\n return false;\n },\n acceptsLines: false,\n};\nvar tableRow = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t === 'tableCell';\n },\n acceptsLines: false,\n};\nvar tableCell = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function () {\n return false;\n },\n acceptsLines: false,\n};\nvar CODE_INDENT = 4;\nvar C_TAB = 9;\nvar C_GREATERTHAN = 62;\nvar C_LESSTHAN = 60;\nvar C_SPACE = 32;\nvar C_OPEN_BRACKET = 91;\nvar reNonSpace = /[^ \\t\\f\\v\\r\\n]/;\nvar reClosingCodeFence = /^(?:`{3,}|~{3,})(?= *$)/;\n// Returns true if block ends with a blank line, descending if needed\n// into lists and sublists.\nfunction endsWithBlankLine(block) {\n var curBlock = block;\n while (curBlock) {\n if (curBlock.lastLineBlank) {\n return true;\n }\n var t = curBlock.type;\n if (!curBlock.lastLineChecked && (t === 'list' || t === 'item')) {\n curBlock.lastLineChecked = true;\n curBlock = curBlock.lastChild;\n }\n else {\n curBlock.lastLineChecked = true;\n break;\n }\n }\n return false;\n}\nfunction peek(ln, pos) {\n if (pos < ln.length) {\n return ln.charCodeAt(pos);\n }\n return -1;\n}\n// Returns true if string contains only space characters.\nfunction isBlank(s) {\n return !reNonSpace.test(s);\n}\nfunction isSpaceOrTab(c) {\n return c === C_SPACE || c === C_TAB;\n}\nvar reClosingCustomBlock = /^\\$\\$$/;\nvar customBlock$1 = {\n continue: function (parser, container) {\n var line = parser.currentLine;\n var match = line.match(reClosingCustomBlock);\n if (match) {\n // closing custom block\n parser.lastLineLength = match[0].length;\n parser.finalize(container, parser.lineNumber);\n return 2 /* Finished */;\n }\n // skip optional spaces of custom block offset\n var i = container.offset;\n while (i > 0 && isSpaceOrTab(peek(line, parser.offset))) {\n parser.advanceOffset(1, true);\n i--;\n }\n return 0 /* Go */;\n },\n finalize: function (_, block) {\n if (block.stringContent === null) {\n return;\n }\n // first line becomes info string\n var content = block.stringContent;\n var newlinePos = content.indexOf('\\n');\n var firstLine = content.slice(0, newlinePos);\n var rest = content.slice(newlinePos + 1);\n var infoString = firstLine.match(/^(\\s*)(.*)/);\n block.info = unescapeString(infoString[2].trim());\n block.literal = rest;\n block.stringContent = null;\n },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\nvar noop = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\nvar document$1 = {\n continue: function () {\n return 0 /* Go */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t !== 'item';\n },\n acceptsLines: false,\n};\nvar list = {\n continue: function () {\n return 0 /* Go */;\n },\n finalize: function (_, block) {\n var item = block.firstChild;\n while (item) {\n // check for non-final list item ending with blank line:\n if (endsWithBlankLine(item) && item.next) {\n block.listData.tight = false;\n break;\n }\n // recurse into children of list item, to see if there are\n // spaces between any of them:\n var subitem = item.firstChild;\n while (subitem) {\n if (endsWithBlankLine(subitem) && (item.next || subitem.next)) {\n block.listData.tight = false;\n break;\n }\n subitem = subitem.next;\n }\n item = item.next;\n }\n },\n canContain: function (t) {\n return t === 'item';\n },\n acceptsLines: false,\n};\nvar blockQuote$1 = {\n continue: function (parser) {\n var ln = parser.currentLine;\n if (!parser.indented && peek(ln, parser.nextNonspace) === C_GREATERTHAN) {\n parser.advanceNextNonspace();\n parser.advanceOffset(1, false);\n if (isSpaceOrTab(peek(ln, parser.offset))) {\n parser.advanceOffset(1, true);\n }\n }\n else {\n return 1 /* Stop */;\n }\n return 0 /* Go */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t !== 'item';\n },\n acceptsLines: false,\n};\nvar item = {\n continue: function (parser, container) {\n if (parser.blank) {\n if (container.firstChild === null) {\n // Blank line after empty list item\n return 1 /* Stop */;\n }\n parser.advanceNextNonspace();\n }\n else if (parser.indent >= container.listData.markerOffset + container.listData.padding) {\n parser.advanceOffset(container.listData.markerOffset + container.listData.padding, true);\n }\n else {\n return 1 /* Stop */;\n }\n return 0 /* Go */;\n },\n finalize: taskListItemFinalize,\n canContain: function (t) {\n return t !== 'item';\n },\n acceptsLines: false,\n};\nvar heading = {\n continue: function () {\n // a heading can never container > 1 line, so fail to match:\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function () {\n return false;\n },\n acceptsLines: false,\n};\nvar thematicBreak$1 = {\n continue: function () {\n // a thematic break can never container > 1 line, so fail to match:\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function () {\n return false;\n },\n acceptsLines: false,\n};\nvar codeBlock = {\n continue: function (parser, container) {\n var ln = parser.currentLine;\n var indent = parser.indent;\n if (container.isFenced) {\n // fenced\n var match = indent <= 3 &&\n ln.charAt(parser.nextNonspace) === container.fenceChar &&\n ln.slice(parser.nextNonspace).match(reClosingCodeFence);\n if (match && match[0].length >= container.fenceLength) {\n // closing fence - we're at end of line, so we can return\n parser.lastLineLength = parser.offset + indent + match[0].length;\n parser.finalize(container, parser.lineNumber);\n return 2 /* Finished */;\n }\n // skip optional spaces of fence offset\n var i = container.fenceOffset;\n while (i > 0 && isSpaceOrTab(peek(ln, parser.offset))) {\n parser.advanceOffset(1, true);\n i--;\n }\n }\n else {\n // indented\n if (indent >= CODE_INDENT) {\n parser.advanceOffset(CODE_INDENT, true);\n }\n else if (parser.blank) {\n parser.advanceNextNonspace();\n }\n else {\n return 1 /* Stop */;\n }\n }\n return 0 /* Go */;\n },\n finalize: function (_, block) {\n var _a;\n if (block.stringContent === null) {\n return;\n }\n if (block.isFenced) {\n // fenced\n // first line becomes info string\n var content = block.stringContent;\n var newlinePos = content.indexOf('\\n');\n var firstLine = content.slice(0, newlinePos);\n var rest = content.slice(newlinePos + 1);\n var infoString = firstLine.match(/^(\\s*)(.*)/);\n block.infoPadding = infoString[1].length;\n block.info = unescapeString(infoString[2].trim());\n block.literal = rest;\n }\n else {\n // indented\n block.literal = (_a = block.stringContent) === null || _a === void 0 ? void 0 : _a.replace(/(\\n *)+$/, '\\n');\n }\n block.stringContent = null; // allow GC\n },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\nvar htmlBlock$1 = {\n continue: function (parser, container) {\n return parser.blank && (container.htmlBlockType === 6 || container.htmlBlockType === 7)\n ? 1 /* Stop */\n : 0 /* Go */;\n },\n finalize: function (_, block) {\n var _a;\n block.literal = ((_a = block.stringContent) === null || _a === void 0 ? void 0 : _a.replace(/(\\n *)+$/, '')) || null;\n block.stringContent = null; // allow GC\n },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\nvar paragraph = {\n continue: function (parser) {\n return parser.blank ? 1 /* Stop */ : 0 /* Go */;\n },\n finalize: function (parser, block) {\n if (block.stringContent === null) {\n return;\n }\n var pos;\n var hasReferenceDefs = false;\n // try parsing the beginning as link reference definitions:\n while (peek(block.stringContent, 0) === C_OPEN_BRACKET &&\n (pos = parser.inlineParser.parseReference(block, parser.refMap))) {\n block.stringContent = block.stringContent.slice(pos);\n hasReferenceDefs = true;\n }\n if (hasReferenceDefs && isBlank(block.stringContent)) {\n block.unlink();\n }\n },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\nvar refDef = noop;\nvar frontMatter$2 = noop;\nvar blockHandlers = {\n document: document$1,\n list: list,\n blockQuote: blockQuote$1,\n item: item,\n heading: heading,\n thematicBreak: thematicBreak$1,\n codeBlock: codeBlock,\n htmlBlock: htmlBlock$1,\n paragraph: paragraph,\n table: table,\n tableBody: tableBody$1,\n tableHead: tableHead$1,\n tableRow: tableRow,\n tableCell: tableCell,\n tableDelimRow: tableDelimRow,\n tableDelimCell: tableDelimCell,\n refDef: refDef,\n customBlock: customBlock$1,\n frontMatter: frontMatter$2,\n};\nfunction parseRowContent(content) {\n var startIdx = 0;\n var offset = 0;\n var cells = [];\n for (var i = 0; i < content.length; i += 1) {\n if (content[i] === '|' && content[i - 1] !== '\\\\') {\n var cell = content.substring(startIdx, i);\n if (startIdx === 0 && isEmpty(cell)) {\n offset = i + 1;\n }\n else {\n cells.push(cell);\n }\n startIdx = i + 1;\n }\n }\n if (startIdx < content.length) {\n var cell = content.substring(startIdx, content.length);\n if (!isEmpty(cell)) {\n cells.push(cell);\n }\n }\n return [offset, cells];\n}\nfunction generateTableCells(cellType, contents, lineNum, chPos) {\n var cells = [];\n for (var _i = 0, contents_1 = contents; _i < contents_1.length; _i++) {\n var content = contents_1[_i];\n var preSpaces = content.match(/^[ \\t]+/);\n var paddingLeft = preSpaces ? preSpaces[0].length : 0;\n var paddingRight = void 0, trimmed = void 0;\n if (paddingLeft === content.length) {\n paddingLeft = 0;\n paddingRight = 0;\n trimmed = '';\n }\n else {\n var postSpaces = content.match(/[ \\t]+$/);\n paddingRight = postSpaces ? postSpaces[0].length : 0;\n trimmed = content.slice(paddingLeft, content.length - paddingRight);\n }\n var chPosStart = chPos + paddingLeft;\n var tableCell = createNode(cellType, [\n [lineNum, chPos],\n [lineNum, chPos + content.length - 1],\n ]);\n tableCell.stringContent = trimmed.replace(/\\\\\\|/g, '|'); // replace esacped pipe(\\|)\n tableCell.startIdx = cells.length;\n tableCell.endIdx = cells.length;\n tableCell.lineOffsets = [chPosStart - 1];\n tableCell.paddingLeft = paddingLeft;\n tableCell.paddingRight = paddingRight;\n cells.push(tableCell);\n chPos += content.length + 1;\n }\n return cells;\n}\nfunction getColumnFromDelimCell(cellNode) {\n var align = null;\n var content = cellNode.stringContent;\n var firstCh = content[0];\n var lastCh = content[content.length - 1];\n if (lastCh === ':') {\n align = firstCh === ':' ? 'center' : 'right';\n }\n else if (firstCh === ':') {\n align = 'left';\n }\n return { align: align };\n}\nvar tableHead = function (parser, container) {\n var stringContent = container.stringContent;\n if (container.type === 'paragraph' && !parser.indented && !parser.blank) {\n var lastNewLineIdx = stringContent.length - 1;\n var lastLineStartIdx = stringContent.lastIndexOf('\\n', lastNewLineIdx - 1) + 1;\n var headerContent = stringContent.slice(lastLineStartIdx, lastNewLineIdx);\n var delimContent = parser.currentLine.slice(parser.nextNonspace);\n var _a = parseRowContent(headerContent), headerOffset = _a[0], headerCells = _a[1];\n var _b = parseRowContent(delimContent), delimOffset = _b[0], delimCells = _b[1];\n var reValidDelimCell_1 = /^[ \\t]*:?-+:?[ \\t]*$/;\n if (\n // not checking if the number of header cells and delimiter cells are the same\n // to consider the case of merged-column (via plugin)\n !headerCells.length ||\n !delimCells.length ||\n delimCells.some(function (cell) { return !reValidDelimCell_1.test(cell); }) ||\n // to prevent to regard setTextHeading as tabel delim cell with 'disallowDeepHeading' option\n (delimCells.length === 1 && delimContent.indexOf('|') !== 0)) {\n return 0 /* None */;\n }\n var lineOffsets = container.lineOffsets;\n var firstLineNum = parser.lineNumber - 1;\n var firstLineStart = last(lineOffsets) + 1;\n var table = createNode('table', [\n [firstLineNum, firstLineStart],\n [parser.lineNumber, parser.offset],\n ]);\n // eslint-disable-next-line arrow-body-style\n table.columns = delimCells.map(function () { return ({ align: null }); });\n container.insertAfter(table);\n if (lineOffsets.length === 1) {\n container.unlink();\n }\n else {\n container.stringContent = stringContent.slice(0, lastLineStartIdx);\n var paraLastLineStartIdx = stringContent.lastIndexOf('\\n', lastLineStartIdx - 2) + 1;\n var paraLastLineLen = lastLineStartIdx - paraLastLineStartIdx - 1;\n parser.lastLineLength = lineOffsets[lineOffsets.length - 2] + paraLastLineLen;\n parser.finalize(container, firstLineNum - 1);\n }\n parser.advanceOffset(parser.currentLine.length - parser.offset, false);\n var tableHead_1 = createNode('tableHead', [\n [firstLineNum, firstLineStart],\n [parser.lineNumber, parser.offset],\n ]);\n table.appendChild(tableHead_1);\n var tableHeadRow_1 = createNode('tableRow', [\n [firstLineNum, firstLineStart],\n [firstLineNum, firstLineStart + headerContent.length - 1],\n ]);\n var tableDelimRow_1 = createNode('tableDelimRow', [\n [parser.lineNumber, parser.nextNonspace + 1],\n [parser.lineNumber, parser.offset],\n ]);\n tableHead_1.appendChild(tableHeadRow_1);\n tableHead_1.appendChild(tableDelimRow_1);\n generateTableCells('tableCell', headerCells, firstLineNum, firstLineStart + headerOffset).forEach(function (cellNode) {\n tableHeadRow_1.appendChild(cellNode);\n });\n var delimCellNodes = generateTableCells('tableDelimCell', delimCells, parser.lineNumber, parser.nextNonspace + 1 + delimOffset);\n delimCellNodes.forEach(function (cellNode) {\n tableDelimRow_1.appendChild(cellNode);\n });\n table.columns = delimCellNodes.map(getColumnFromDelimCell);\n parser.tip = table;\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar tableBody = function (parser, container) {\n if ((container.type !== 'table' && container.type !== 'tableBody') ||\n (!parser.blank && parser.currentLine.indexOf('|') === -1)) {\n return 0 /* None */;\n }\n parser.advanceOffset(parser.currentLine.length - parser.offset, false);\n if (parser.blank) {\n var table_1 = container;\n if (container.type === 'tableBody') {\n table_1 = container.parent;\n parser.finalize(container, parser.lineNumber - 1);\n }\n parser.finalize(table_1, parser.lineNumber - 1);\n return 0 /* None */;\n }\n var tableBody = container;\n if (container.type === 'table') {\n tableBody = parser.addChild('tableBody', parser.nextNonspace);\n tableBody.stringContent = null;\n }\n var tableRow = createNode('tableRow', [\n [parser.lineNumber, parser.nextNonspace + 1],\n [parser.lineNumber, parser.currentLine.length],\n ]);\n tableBody.appendChild(tableRow);\n var table = tableBody.parent;\n var content = parser.currentLine.slice(parser.nextNonspace);\n var _a = parseRowContent(content), offset = _a[0], cellContents = _a[1];\n generateTableCells('tableCell', cellContents, parser.lineNumber, parser.nextNonspace + 1 + offset).forEach(function (cellNode, idx) {\n if (idx >= table.columns.length) {\n cellNode.ignored = true;\n }\n tableRow.appendChild(cellNode);\n });\n return 2 /* Leaf */;\n};\nvar reCustomBlock = /^(\\$\\$)(\\s*[a-zA-Z])+/;\nvar reCanBeCustomInline = /^(\\$\\$)(\\s*[a-zA-Z])+.*(\\$\\$)/;\nvar customBlock = function (parser) {\n var match;\n if (!parser.indented &&\n !reCanBeCustomInline.test(parser.currentLine) &&\n (match = parser.currentLine.match(reCustomBlock))) {\n var syntaxLength = match[1].length;\n parser.closeUnmatchedBlocks();\n var container = parser.addChild('customBlock', parser.nextNonspace);\n container.syntaxLength = syntaxLength;\n container.offset = parser.indent;\n parser.advanceNextNonspace();\n parser.advanceOffset(syntaxLength, false);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar reCodeFence = /^`{3,}(?!.*`)|^~{3,}/;\nvar reHtmlBlockOpen = [\n /./,\n /^<(?:script|pre|style)(?:\\s|>|$)/i,\n /^<!--/,\n /^<[?]/,\n /^<![A-Z]/,\n /^<!\\[CDATA\\[/,\n /^<[/]?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[123456]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\\s|[/]?[>]|$)/i,\n new RegExp(\"^(?:\" + OPENTAG + \"|\" + CLOSETAG + \")\\\\s*$\", 'i'),\n];\nvar reSetextHeadingLine = /^(?:=+|-+)[ \\t]*$/;\nvar reATXHeadingMarker = /^#{1,6}(?:[ \\t]+|$)/;\nvar reThematicBreak = /^(?:(?:\\*[ \\t]*){3,}|(?:_[ \\t]*){3,}|(?:-[ \\t]*){3,})[ \\t]*$/;\nvar reBulletListMarker = /^[*+-]/;\nvar reOrderedListMarker = /^(\\d{1,9})([.)])/;\n// Parse a list marker and return data on the marker (type,\n// start, delimiter, bullet character, padding) or null.\nfunction parseListMarker(parser, container) {\n var rest = parser.currentLine.slice(parser.nextNonspace);\n var match;\n var nextc;\n var data = {\n type: 'bullet',\n tight: true,\n bulletChar: '',\n start: 0,\n delimiter: '',\n padding: 0,\n markerOffset: parser.indent,\n // GFM: Task List Item\n task: false,\n checked: false,\n };\n if (parser.indent >= 4) {\n return null;\n }\n if ((match = rest.match(reBulletListMarker))) {\n data.type = 'bullet';\n data.bulletChar = match[0][0];\n }\n else if ((match = rest.match(reOrderedListMarker)) &&\n (container.type !== 'paragraph' || match[1] === '1')) {\n data.type = 'ordered';\n data.start = parseInt(match[1], 10);\n data.delimiter = match[2];\n }\n else {\n return null;\n }\n // make sure we have spaces after\n nextc = peek(parser.currentLine, parser.nextNonspace + match[0].length);\n if (!(nextc === -1 || nextc === C_TAB || nextc === C_SPACE)) {\n return null;\n }\n // if it interrupts paragraph, make sure first line isn't blank\n if (container.type === 'paragraph' &&\n !parser.currentLine.slice(parser.nextNonspace + match[0].length).match(reNonSpace)) {\n return null;\n }\n // we've got a match! advance offset and calculate padding\n parser.advanceNextNonspace(); // to start of marker\n parser.advanceOffset(match[0].length, true); // to end of marker\n var spacesStartCol = parser.column;\n var spacesStartOffset = parser.offset;\n do {\n parser.advanceOffset(1, true);\n nextc = peek(parser.currentLine, parser.offset);\n } while (parser.column - spacesStartCol < 5 && isSpaceOrTab(nextc));\n var blankItem = peek(parser.currentLine, parser.offset) === -1;\n var spacesAfterMarker = parser.column - spacesStartCol;\n if (spacesAfterMarker >= 5 || spacesAfterMarker < 1 || blankItem) {\n data.padding = match[0].length + 1;\n parser.column = spacesStartCol;\n parser.offset = spacesStartOffset;\n if (isSpaceOrTab(peek(parser.currentLine, parser.offset))) {\n parser.advanceOffset(1, true);\n }\n }\n else {\n data.padding = match[0].length + spacesAfterMarker;\n }\n return data;\n}\n// Returns true if the two list items are of the same type,\n// with the same delimiter and bullet character. This is used\n// in agglomerating list items into lists.\nfunction listsMatch(listData, itemData) {\n return (listData.type === itemData.type &&\n listData.delimiter === itemData.delimiter &&\n listData.bulletChar === itemData.bulletChar);\n}\nfunction isDisallowedDeepHeading(parser, node) {\n return parser.options.disallowDeepHeading && (node.type === 'blockQuote' || node.type === 'item');\n}\nvar blockQuote = function (parser) {\n if (!parser.indented && peek(parser.currentLine, parser.nextNonspace) === C_GREATERTHAN) {\n parser.advanceNextNonspace();\n parser.advanceOffset(1, false);\n // optional following space\n if (isSpaceOrTab(peek(parser.currentLine, parser.offset))) {\n parser.advanceOffset(1, true);\n }\n parser.closeUnmatchedBlocks();\n parser.addChild('blockQuote', parser.nextNonspace);\n return 1 /* Container */;\n }\n return 0 /* None */;\n};\nvar atxHeading = function (parser, container) {\n var match;\n if (!parser.indented &&\n // The nested Heading is disallowed in list and blockquote with 'disallowDeepHeading' option\n !isDisallowedDeepHeading(parser, container) &&\n (match = parser.currentLine.slice(parser.nextNonspace).match(reATXHeadingMarker))) {\n parser.advanceNextNonspace();\n parser.advanceOffset(match[0].length, false);\n parser.closeUnmatchedBlocks();\n var heading = parser.addChild('heading', parser.nextNonspace);\n heading.level = match[0].trim().length; // number of #s\n heading.headingType = 'atx';\n // remove trailing ###s:\n heading.stringContent = parser.currentLine\n .slice(parser.offset)\n .replace(/^[ \\t]*#+[ \\t]*$/, '')\n .replace(/[ \\t]+#+[ \\t]*$/, '');\n parser.advanceOffset(parser.currentLine.length - parser.offset);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar fencedCodeBlock = function (parser) {\n var match;\n if (!parser.indented &&\n (match = parser.currentLine.slice(parser.nextNonspace).match(reCodeFence))) {\n var fenceLength = match[0].length;\n parser.closeUnmatchedBlocks();\n var container = parser.addChild('codeBlock', parser.nextNonspace);\n container.isFenced = true;\n container.fenceLength = fenceLength;\n container.fenceChar = match[0][0];\n container.fenceOffset = parser.indent;\n parser.advanceNextNonspace();\n parser.advanceOffset(fenceLength, false);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar htmlBlock = function (parser, container) {\n if (!parser.indented && peek(parser.currentLine, parser.nextNonspace) === C_LESSTHAN) {\n var s = parser.currentLine.slice(parser.nextNonspace);\n var disallowedTags = parser.options.disallowedHtmlBlockTags;\n var blockType = void 0;\n for (blockType = 1; blockType <= 7; blockType++) {\n var matched = s.match(reHtmlBlockOpen[blockType]);\n if (matched) {\n if (blockType === 7) {\n if (container.type === 'paragraph') {\n return 0 /* None */;\n }\n if (disallowedTags.length > 0) {\n var reDisallowedTags = new RegExp(\"</?(?:\" + disallowedTags.join('|') + \")\", 'i');\n if (reDisallowedTags.test(matched[0])) {\n return 0 /* None */;\n }\n }\n }\n parser.closeUnmatchedBlocks();\n // We don't adjust parser.offset;\n // spaces are part of the HTML block:\n var b = parser.addChild('htmlBlock', parser.offset);\n b.htmlBlockType = blockType;\n return 2 /* Leaf */;\n }\n }\n }\n return 0 /* None */;\n};\nvar seTextHeading = function (parser, container) {\n var match;\n if (container.stringContent !== null &&\n !parser.indented &&\n container.type === 'paragraph' &&\n // The nested Heading is disallowed in list and blockquote with 'disallowDeepHeading' option\n !isDisallowedDeepHeading(parser, container.parent) &&\n (match = parser.currentLine.slice(parser.nextNonspace).match(reSetextHeadingLine))) {\n parser.closeUnmatchedBlocks();\n // resolve reference link definitions\n var pos = void 0;\n while (peek(container.stringContent, 0) === C_OPEN_BRACKET &&\n (pos = parser.inlineParser.parseReference(container, parser.refMap))) {\n container.stringContent = container.stringContent.slice(pos);\n }\n if (container.stringContent.length > 0) {\n var heading = createNode('heading', container.sourcepos);\n heading.level = match[0][0] === '=' ? 1 : 2;\n heading.headingType = 'setext';\n heading.stringContent = container.stringContent;\n container.insertAfter(heading);\n container.unlink();\n parser.tip = heading;\n parser.advanceOffset(parser.currentLine.length - parser.offset, false);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n }\n return 0 /* None */;\n};\nvar thematicBreak = function (parser) {\n if (!parser.indented && reThematicBreak.test(parser.currentLine.slice(parser.nextNonspace))) {\n parser.closeUnmatchedBlocks();\n parser.addChild('thematicBreak', parser.nextNonspace);\n parser.advanceOffset(parser.currentLine.length - parser.offset, false);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar listItem = function (parser, container) {\n var data;\n var currNode = container;\n if ((!parser.indented || container.type === 'list') &&\n (data = parseListMarker(parser, currNode))) {\n parser.closeUnmatchedBlocks();\n // add the list if needed\n if (parser.tip.type !== 'list' || !listsMatch(currNode.listData, data)) {\n currNode = parser.addChild('list', parser.nextNonspace);\n currNode.listData = data;\n }\n // add the list item\n currNode = parser.addChild('item', parser.nextNonspace);\n currNode.listData = data;\n return 1 /* Container */;\n }\n return 0 /* None */;\n};\n// indented code block\nvar indentedCodeBlock = function (parser) {\n if (parser.indented && parser.tip.type !== 'paragraph' && !parser.blank) {\n // indented code\n parser.advanceOffset(CODE_INDENT, true);\n parser.closeUnmatchedBlocks();\n parser.addChild('codeBlock', parser.offset);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar blockStarts = [\n blockQuote,\n atxHeading,\n fencedCodeBlock,\n htmlBlock,\n seTextHeading,\n thematicBreak,\n listItem,\n indentedCodeBlock,\n tableHead,\n tableBody,\n customBlock,\n];\n// `---` for YAML, `+++` for TOML, `;;;` for JSON\nvar reFrontMatter = /^(-{3}|\\+{3}|;{3})$/;\nvar frontMatter$1 = function (parser, container) {\n var currentLine = parser.currentLine, lineNumber = parser.lineNumber, indented = parser.indented;\n if (lineNumber === 1 &&\n !indented &&\n container.type === 'document' &&\n reFrontMatter.test(currentLine)) {\n parser.closeUnmatchedBlocks();\n var frontMatter_1 = parser.addChild('frontMatter', parser.nextNonspace);\n frontMatter_1.stringContent = currentLine;\n parser.advanceNextNonspace();\n parser.advanceOffset(currentLine.length, false);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar frontMatter = {\n continue: function (parser, container) {\n var line = parser.currentLine;\n var match = line.match(reFrontMatter);\n if (container.type === 'frontMatter' && match) {\n container.stringContent += line;\n parser.lastLineLength = match[0].length;\n parser.finalize(container, parser.lineNumber);\n return 2 /* Finished */;\n }\n return 0 /* Go */;\n },\n finalize: function (_, block) {\n if (block.stringContent === null) {\n return;\n }\n block.literal = block.stringContent;\n block.stringContent = null;\n },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\nvar reHtmlBlockClose = [\n /./,\n /<\\/(?:script|pre|style)>/i,\n /-->/,\n /\\?>/,\n />/,\n /\\]\\]>/,\n];\nvar reMaybeSpecial = /^[#`~*+_=<>0-9-;$]/;\nvar reLineEnding$1 = /\\r\\n|\\n|\\r/;\nfunction esm_document() {\n return createNode('document', [\n [1, 1],\n [0, 0],\n ]);\n}\nvar defaultOptions$1 = {\n smart: false,\n tagFilter: false,\n extendedAutolinks: false,\n disallowedHtmlBlockTags: [],\n referenceDefinition: false,\n disallowDeepHeading: false,\n customParser: null,\n frontMatter: false,\n};\nvar Parser = /** @class */ (function () {\n function Parser(options) {\n this.options = esm_assign(esm_assign({}, defaultOptions$1), options);\n this.doc = esm_document();\n this.tip = this.doc;\n this.oldtip = this.doc;\n this.lineNumber = 0;\n this.offset = 0;\n this.column = 0;\n this.nextNonspace = 0;\n this.nextNonspaceColumn = 0;\n this.indent = 0;\n this.currentLine = '';\n this.indented = false;\n this.blank = false;\n this.partiallyConsumedTab = false;\n this.allClosed = true;\n this.lastMatchedContainer = this.doc;\n this.refMap = {};\n this.refLinkCandidateMap = {};\n this.refDefCandidateMap = {};\n this.lastLineLength = 0;\n this.lines = [];\n if (this.options.frontMatter) {\n blockHandlers.frontMatter = frontMatter;\n blockStarts.unshift(frontMatter$1);\n }\n this.inlineParser = new InlineParser(this.options);\n }\n Parser.prototype.advanceOffset = function (count, columns) {\n if (columns === void 0) {\n columns = false;\n }\n var currentLine = this.currentLine;\n var charsToTab, charsToAdvance;\n var c;\n while (count > 0 && (c = currentLine[this.offset])) {\n if (c === '\\t') {\n charsToTab = 4 - (this.column % 4);\n if (columns) {\n this.partiallyConsumedTab = charsToTab > count;\n charsToAdvance = charsToTab > count ? count : charsToTab;\n this.column += charsToAdvance;\n this.offset += this.partiallyConsumedTab ? 0 : 1;\n count -= charsToAdvance;\n }\n else {\n this.partiallyConsumedTab = false;\n this.column += charsToTab;\n this.offset += 1;\n count -= 1;\n }\n }\n else {\n this.partiallyConsumedTab = false;\n this.offset += 1;\n this.column += 1; // assume ascii; block starts are ascii\n count -= 1;\n }\n }\n };\n Parser.prototype.advanceNextNonspace = function () {\n this.offset = this.nextNonspace;\n this.column = this.nextNonspaceColumn;\n this.partiallyConsumedTab = false;\n };\n Parser.prototype.findNextNonspace = function () {\n var currentLine = this.currentLine;\n var i = this.offset;\n var cols = this.column;\n var c;\n while ((c = currentLine.charAt(i)) !== '') {\n if (c === ' ') {\n i++;\n cols++;\n }\n else if (c === '\\t') {\n i++;\n cols += 4 - (cols % 4);\n }\n else {\n break;\n }\n }\n this.blank = c === '\\n' || c === '\\r' || c === '';\n this.nextNonspace = i;\n this.nextNonspaceColumn = cols;\n this.indent = this.nextNonspaceColumn - this.column;\n this.indented = this.indent >= CODE_INDENT;\n };\n // Add a line to the block at the tip. We assume the tip\n // can accept lines -- that check should be done before calling this.\n Parser.prototype.addLine = function () {\n if (this.partiallyConsumedTab) {\n this.offset += 1; // skip over tab\n // add space characters:\n var charsToTab = 4 - (this.column % 4);\n this.tip.stringContent += repeat(' ', charsToTab);\n }\n if (this.tip.lineOffsets) {\n this.tip.lineOffsets.push(this.offset);\n }\n else {\n this.tip.lineOffsets = [this.offset];\n }\n this.tip.stringContent += this.currentLine.slice(this.offset) + \"\\n\";\n };\n // Add block of type tag as a child of the tip. If the tip can't\n // accept children, close and finalize it and try its parent,\n // and so on til we find a block that can accept children.\n Parser.prototype.addChild = function (tag, offset) {\n while (!blockHandlers[this.tip.type].canContain(tag)) {\n this.finalize(this.tip, this.lineNumber - 1);\n }\n var columnNumber = offset + 1; // offset 0 = column 1\n var newBlock = createNode(tag, [\n [this.lineNumber, columnNumber],\n [0, 0],\n ]);\n newBlock.stringContent = '';\n this.tip.appendChild(newBlock);\n this.tip = newBlock;\n return newBlock;\n };\n // Finalize and close any unmatched blocks.\n Parser.prototype.closeUnmatchedBlocks = function () {\n if (!this.allClosed) {\n // finalize any blocks not matched\n while (this.oldtip !== this.lastMatchedContainer) {\n var parent_1 = this.oldtip.parent;\n this.finalize(this.oldtip, this.lineNumber - 1);\n this.oldtip = parent_1;\n }\n this.allClosed = true;\n }\n };\n // Finalize a block. Close it and do any necessary postprocessing,\n // e.g. creating stringContent from strings, setting the 'tight'\n // or 'loose' status of a list, and parsing the beginnings\n // of paragraphs for reference definitions. Reset the tip to the\n // parent of the closed block.\n Parser.prototype.finalize = function (block, lineNumber) {\n var above = block.parent;\n block.open = false;\n block.sourcepos[1] = [lineNumber, this.lastLineLength];\n blockHandlers[block.type].finalize(this, block);\n this.tip = above;\n };\n // Walk through a block & children recursively, parsing string content\n // into inline content where appropriate.\n Parser.prototype.processInlines = function (block) {\n var event;\n var customParser = this.options.customParser;\n var walker = block.walker();\n this.inlineParser.refMap = this.refMap;\n this.inlineParser.refLinkCandidateMap = this.refLinkCandidateMap;\n this.inlineParser.refDefCandidateMap = this.refDefCandidateMap;\n this.inlineParser.options = this.options;\n while ((event = walker.next())) {\n var node = event.node, entering = event.entering;\n var t = node.type;\n if (customParser && customParser[t]) {\n customParser[t](node, { entering: entering, options: this.options });\n }\n if (!entering &&\n (t === 'paragraph' ||\n t === 'heading' ||\n (t === 'tableCell' && !node.ignored))) {\n this.inlineParser.parse(node);\n }\n }\n };\n // Analyze a line of text and update the document appropriately.\n // We parse markdown text by calling this on each line of input,\n // then finalizing the document.\n Parser.prototype.incorporateLine = function (ln) {\n var container = this.doc;\n this.oldtip = this.tip;\n this.offset = 0;\n this.column = 0;\n this.blank = false;\n this.partiallyConsumedTab = false;\n this.lineNumber += 1;\n // replace NUL characters for security\n if (ln.indexOf('\\u0000') !== -1) {\n ln = ln.replace(/\\0/g, '\\uFFFD');\n }\n this.currentLine = ln;\n // For each containing block, try to parse the associated line start.\n // Bail out on failure: container will point to the last matching block.\n // Set allMatched to false if not all containers match.\n var allMatched = true;\n var lastChild;\n while ((lastChild = container.lastChild) && lastChild.open) {\n container = lastChild;\n this.findNextNonspace();\n switch (blockHandlers[container.type]['continue'](this, container)) {\n case 0 /* Go */: // we've matched, keep going\n break;\n case 1 /* Stop */: // we've failed to match a block\n allMatched = false;\n break;\n case 2 /* Finished */: // we've hit end of line for fenced code close and can return\n this.lastLineLength = ln.length;\n return;\n default:\n throw new Error('continue returned illegal value, must be 0, 1, or 2');\n }\n if (!allMatched) {\n container = container.parent; // back up to last matching block\n break;\n }\n }\n this.allClosed = container === this.oldtip;\n this.lastMatchedContainer = container;\n var matchedLeaf = container.type !== 'paragraph' && blockHandlers[container.type].acceptsLines;\n var blockStartsLen = blockStarts.length;\n // Unless last matched container is a code block, try new container starts,\n // adding children to the last matched container:\n while (!matchedLeaf) {\n this.findNextNonspace();\n // this is a little performance optimization:\n if (container.type !== 'table' &&\n container.type !== 'tableBody' &&\n container.type !== 'paragraph' &&\n !this.indented &&\n !reMaybeSpecial.test(ln.slice(this.nextNonspace))) {\n this.advanceNextNonspace();\n break;\n }\n var i = 0;\n while (i < blockStartsLen) {\n var res = blockStarts[i](this, container);\n if (res === 1 /* Container */) {\n container = this.tip;\n break;\n }\n else if (res === 2 /* Leaf */) {\n container = this.tip;\n matchedLeaf = true;\n break;\n }\n else {\n i++;\n }\n }\n if (i === blockStartsLen) {\n // nothing matched\n this.advanceNextNonspace();\n break;\n }\n }\n // What remains at the offset is a text line. Add the text to the\n // appropriate container.\n // First check for a lazy paragraph continuation:\n if (!this.allClosed && !this.blank && this.tip.type === 'paragraph') {\n // lazy paragraph continuation\n this.addLine();\n }\n else {\n // not a lazy continuation\n // finalize any blocks not matched\n this.closeUnmatchedBlocks();\n if (this.blank && container.lastChild) {\n container.lastChild.lastLineBlank = true;\n }\n var t = container.type;\n // Block quote lines are never blank as they start with >\n // and we don't count blanks in fenced code for purposes of tight/loose\n // lists or breaking out of lists. We also don't set _lastLineBlank\n // on an empty list item, or if we just closed a fenced block.\n var lastLineBlank = this.blank &&\n !(t === 'blockQuote' ||\n (isCodeBlock(container) && container.isFenced) ||\n (t === 'item' && !container.firstChild && container.sourcepos[0][0] === this.lineNumber));\n // propagate lastLineBlank up through parents:\n var cont = container;\n while (cont) {\n cont.lastLineBlank = lastLineBlank;\n cont = cont.parent;\n }\n if (blockHandlers[t].acceptsLines) {\n this.addLine();\n // if HtmlBlock, check for end condition\n if (isHtmlBlock(container) &&\n container.htmlBlockType >= 1 &&\n container.htmlBlockType <= 5 &&\n reHtmlBlockClose[container.htmlBlockType].test(this.currentLine.slice(this.offset))) {\n this.lastLineLength = ln.length;\n this.finalize(container, this.lineNumber);\n }\n }\n else if (this.offset < ln.length && !this.blank) {\n // create paragraph container for line\n container = this.addChild('paragraph', this.offset);\n this.advanceNextNonspace();\n this.addLine();\n }\n }\n this.lastLineLength = ln.length;\n };\n // The main parsing function. Returns a parsed document AST.\n Parser.prototype.parse = function (input, lineTexts) {\n this.doc = esm_document();\n this.tip = this.doc;\n this.lineNumber = 0;\n this.lastLineLength = 0;\n this.offset = 0;\n this.column = 0;\n this.lastMatchedContainer = this.doc;\n this.currentLine = '';\n var lines = input.split(reLineEnding$1);\n var len = lines.length;\n this.lines = lineTexts ? lineTexts : lines;\n if (this.options.referenceDefinition) {\n this.clearRefMaps();\n }\n if (input.charCodeAt(input.length - 1) === C_NEWLINE) {\n // ignore last blank line created by final newline\n len -= 1;\n }\n for (var i = 0; i < len; i++) {\n this.incorporateLine(lines[i]);\n }\n while (this.tip) {\n this.finalize(this.tip, len);\n }\n this.processInlines(this.doc);\n return this.doc;\n };\n Parser.prototype.partialParseStart = function (lineNumber, lines) {\n this.doc = esm_document();\n this.tip = this.doc;\n this.lineNumber = lineNumber - 1;\n this.lastLineLength = 0;\n this.offset = 0;\n this.column = 0;\n this.lastMatchedContainer = this.doc;\n this.currentLine = '';\n var len = lines.length;\n for (var i = 0; i < len; i++) {\n this.incorporateLine(lines[i]);\n }\n return this.doc;\n };\n Parser.prototype.partialParseExtends = function (lines) {\n for (var i = 0; i < lines.length; i++) {\n this.incorporateLine(lines[i]);\n }\n };\n Parser.prototype.partialParseFinish = function () {\n while (this.tip) {\n this.finalize(this.tip, this.lineNumber);\n }\n this.processInlines(this.doc);\n };\n Parser.prototype.setRefMaps = function (refMap, refLinkCandidateMap, refDefCandidateMap) {\n this.refMap = refMap;\n this.refLinkCandidateMap = refLinkCandidateMap;\n this.refDefCandidateMap = refDefCandidateMap;\n };\n Parser.prototype.clearRefMaps = function () {\n [this.refMap, this.refLinkCandidateMap, this.refDefCandidateMap].forEach(function (map) {\n clearObj(map);\n });\n };\n return Parser;\n}());\nfunction comparePos(p1, p2) {\n if (p1[0] < p2[0]) {\n return 1 /* LT */;\n }\n if (p1[0] > p2[0]) {\n return -1 /* GT */;\n }\n if (p1[1] < p2[1]) {\n return 1 /* LT */;\n }\n if (p1[1] > p2[1]) {\n return -1 /* GT */;\n }\n return 0 /* EQ */;\n}\nfunction compareRangeAndPos(_a, pos) {\n var startPos = _a[0], endPos = _a[1];\n if (comparePos(endPos, pos) === 1 /* LT */) {\n return 1 /* LT */;\n }\n if (comparePos(startPos, pos) === -1 /* GT */) {\n return -1 /* GT */;\n }\n return 0 /* EQ */;\n}\nfunction removeNextUntil(node, last) {\n if (node.parent !== last.parent || node === last) {\n return;\n }\n var next = node.next;\n while (next && next !== last) {\n var temp = next.next;\n for (var _i = 0, _a = ['parent', 'prev', 'next']; _i < _a.length; _i++) {\n var type = _a[_i];\n if (next[type]) {\n removeNodeById(next[type].id);\n next[type] = null;\n }\n }\n next = temp;\n }\n node.next = last.next;\n if (last.next) {\n last.next.prev = node;\n }\n else {\n node.parent.lastChild = node;\n }\n}\nfunction getChildNodes(parent) {\n var nodes = [];\n var curr = parent.firstChild;\n while (curr) {\n nodes.push(curr);\n curr = curr.next;\n }\n return nodes;\n}\nfunction insertNodesBefore(target, nodes) {\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var node = nodes_1[_i];\n target.insertBefore(node);\n }\n}\nfunction prependChildNodes(parent, nodes) {\n for (var i = nodes.length - 1; i >= 0; i -= 1) {\n parent.prependChild(nodes[i]);\n }\n}\nfunction updateNextLineNumbers(base, diff) {\n if (!base || !base.parent || diff === 0) {\n return;\n }\n var walker = base.parent.walker();\n walker.resumeAt(base, true);\n var event;\n while ((event = walker.next())) {\n var node = event.node, entering = event.entering;\n if (entering) {\n node.sourcepos[0][0] += diff;\n node.sourcepos[1][0] += diff;\n }\n }\n}\nfunction compareRangeAndLine(_a, line) {\n var startPos = _a[0], endPos = _a[1];\n if (endPos[0] < line) {\n return 1 /* LT */;\n }\n if (startPos[0] > line) {\n return -1 /* GT */;\n }\n return 0 /* EQ */;\n}\nfunction findChildNodeAtLine(parent, line) {\n var node = parent.firstChild;\n while (node) {\n var comp = compareRangeAndLine(node.sourcepos, line);\n if (comp === 0 /* EQ */) {\n return node;\n }\n if (comp === -1 /* GT */) {\n // To consider that top line is blank line\n return node.prev || node;\n }\n node = node.next;\n }\n return parent.lastChild;\n}\nfunction lastLeafNode(node) {\n while (node.lastChild) {\n node = node.lastChild;\n }\n return node;\n}\nfunction sameLineTopAncestor(node) {\n while (node.parent &&\n node.parent.type !== 'document' &&\n node.parent.sourcepos[0][0] === node.sourcepos[0][0]) {\n node = node.parent;\n }\n return node;\n}\nfunction findFirstNodeAtLine(parent, line) {\n var node = parent.firstChild;\n var prev = null;\n while (node) {\n var comp = compareRangeAndLine(node.sourcepos, line);\n if (comp === 0 /* EQ */) {\n if (node.sourcepos[0][0] === line || !node.firstChild) {\n return node;\n }\n prev = node;\n node = node.firstChild;\n }\n else if (comp === -1 /* GT */) {\n break;\n }\n else {\n prev = node;\n node = node.next;\n }\n }\n if (prev) {\n return sameLineTopAncestor(lastLeafNode(prev));\n }\n return null;\n}\nfunction findNodeAtPosition(parent, pos) {\n var node = parent;\n var prev = null;\n while (node) {\n var comp = compareRangeAndPos(node.sourcepos, pos);\n if (comp === 0 /* EQ */) {\n if (node.firstChild) {\n prev = node;\n node = node.firstChild;\n }\n else {\n return node;\n }\n }\n else if (comp === -1 /* GT */) {\n return prev;\n }\n else if (node.next) {\n node = node.next;\n }\n else {\n return prev;\n }\n }\n return node;\n}\nfunction findNodeById(id) {\n return getNodeById(id) || null;\n}\nfunction invokeNextUntil(callback, start, end) {\n if (end === void 0) {\n end = null;\n }\n if (start) {\n var walker = start.walker();\n while (start && start !== end) {\n callback(start);\n var next = walker.next();\n if (next) {\n start = next.node;\n }\n else {\n break;\n }\n }\n }\n}\nfunction isUnlinked(id) {\n var node = findNodeById(id);\n if (!node) {\n return true;\n }\n while (node && node.type !== 'document') {\n // eslint-disable-next-line no-loop-func\n if (!node.parent && !node.prev && !node.next) {\n return true;\n }\n node = node.parent;\n }\n return false;\n}\nvar reLineEnding = /\\r\\n|\\n|\\r/;\nfunction canBeContinuedListItem(lineText) {\n var spaceMatch = lineText.match(/^[ \\t]+/);\n if (spaceMatch && (spaceMatch[0].length >= 2 || /\\t/.test(spaceMatch[0]))) {\n return true;\n }\n var leftTrimmed = spaceMatch ? lineText.slice(spaceMatch.length) : lineText;\n return reBulletListMarker.test(leftTrimmed) || reOrderedListMarker.test(leftTrimmed);\n}\nfunction canBeContinuedTableBody(lineText) {\n return !isBlank(lineText) && lineText.indexOf('|') !== -1;\n}\nfunction createRefDefState(node) {\n var id = node.id, title = node.title, sourcepos = node.sourcepos, dest = node.dest;\n return {\n id: id,\n title: title,\n sourcepos: sourcepos,\n unlinked: false,\n destination: dest,\n };\n}\nvar ToastMark = /** @class */ (function () {\n function ToastMark(contents, options) {\n this.refMap = {};\n this.refLinkCandidateMap = {};\n this.refDefCandidateMap = {};\n this.referenceDefinition = !!(options === null || options === void 0 ? void 0 : options.referenceDefinition);\n this.parser = new Parser(options);\n this.parser.setRefMaps(this.refMap, this.refLinkCandidateMap, this.refDefCandidateMap);\n this.eventHandlerMap = { change: [] };\n contents = contents || '';\n this.lineTexts = contents.split(reLineEnding);\n this.root = this.parser.parse(contents, this.lineTexts);\n }\n ToastMark.prototype.updateLineTexts = function (startPos, endPos, newText) {\n var _a;\n var startLine = startPos[0], startCol = startPos[1];\n var endLine = endPos[0], endCol = endPos[1];\n var newLines = newText.split(reLineEnding);\n var newLineLen = newLines.length;\n var startLineText = this.lineTexts[startLine - 1];\n var endLineText = this.lineTexts[endLine - 1];\n newLines[0] = startLineText.slice(0, startCol - 1) + newLines[0];\n newLines[newLineLen - 1] = newLines[newLineLen - 1] + endLineText.slice(endCol - 1);\n var removedLineLen = endLine - startLine + 1;\n (_a = this.lineTexts).splice.apply(_a, esm_spreadArray([startLine - 1, removedLineLen], newLines));\n return newLineLen - removedLineLen;\n };\n ToastMark.prototype.updateRootNodeState = function () {\n if (this.lineTexts.length === 1 && this.lineTexts[0] === '') {\n this.root.lastLineBlank = true;\n this.root.sourcepos = [\n [1, 1],\n [1, 0],\n ];\n return;\n }\n if (this.root.lastChild) {\n this.root.lastLineBlank = this.root.lastChild.lastLineBlank;\n }\n var lineTexts = this.lineTexts;\n var idx = lineTexts.length - 1;\n while (lineTexts[idx] === '') {\n idx -= 1;\n }\n if (lineTexts.length - 2 > idx) {\n idx += 1;\n }\n this.root.sourcepos[1] = [idx + 1, lineTexts[idx].length];\n };\n ToastMark.prototype.replaceRangeNodes = function (startNode, endNode, newNodes) {\n if (!startNode) {\n if (endNode) {\n insertNodesBefore(endNode, newNodes);\n removeNodeById(endNode.id);\n endNode.unlink();\n }\n else {\n prependChildNodes(this.root, newNodes);\n }\n }\n else {\n insertNodesBefore(startNode, newNodes);\n removeNextUntil(startNode, endNode);\n [startNode.id, endNode.id].forEach(function (id) { return removeNodeById(id); });\n startNode.unlink();\n }\n };\n ToastMark.prototype.getNodeRange = function (startPos, endPos) {\n var startNode = findChildNodeAtLine(this.root, startPos[0]);\n var endNode = findChildNodeAtLine(this.root, endPos[0]);\n // extend node range to include a following block which doesn't have preceding blank line\n if (endNode && endNode.next && endPos[0] + 1 === endNode.next.sourcepos[0][0]) {\n endNode = endNode.next;\n }\n return [startNode, endNode];\n };\n ToastMark.prototype.trigger = function (eventName, param) {\n this.eventHandlerMap[eventName].forEach(function (handler) {\n handler(param);\n });\n };\n ToastMark.prototype.extendEndLine = function (line) {\n while (this.lineTexts[line] === '') {\n line += 1;\n }\n return line;\n };\n ToastMark.prototype.parseRange = function (startNode, endNode, startLine, endLine) {\n // extends starting range if the first node can be a continued list item\n if (startNode &&\n startNode.prev &&\n ((isList(startNode.prev) && canBeContinuedListItem(this.lineTexts[startLine - 1])) ||\n (isTable(startNode.prev) && canBeContinuedTableBody(this.lineTexts[startLine - 1])))) {\n startNode = startNode.prev;\n startLine = startNode.sourcepos[0][0];\n }\n var editedLines = this.lineTexts.slice(startLine - 1, endLine);\n var root = this.parser.partialParseStart(startLine, editedLines);\n // extends ending range if the following node can be a fenced code block or a continued list item\n var nextNode = endNode ? endNode.next : this.root.firstChild;\n var lastChild = root.lastChild;\n var isOpenedLastChildCodeBlock = lastChild && isCodeBlock(lastChild) && lastChild.open;\n var isOpenedLastChildCustomBlock = lastChild && isCustomBlock(lastChild) && lastChild.open;\n var isLastChildList = lastChild && isList(lastChild);\n while (((isOpenedLastChildCodeBlock || isOpenedLastChildCustomBlock) && nextNode) ||\n (isLastChildList && nextNode && (nextNode.type === 'list' || nextNode.sourcepos[0][1] >= 2))) {\n var newEndLine = this.extendEndLine(nextNode.sourcepos[1][0]);\n this.parser.partialParseExtends(this.lineTexts.slice(endLine, newEndLine));\n if (!startNode) {\n startNode = endNode;\n }\n endNode = nextNode;\n endLine = newEndLine;\n nextNode = nextNode.next;\n }\n this.parser.partialParseFinish();\n var newNodes = getChildNodes(root);\n return { newNodes: newNodes, extStartNode: startNode, extEndNode: endNode };\n };\n ToastMark.prototype.getRemovedNodeRange = function (extStartNode, extEndNode) {\n if (!extStartNode ||\n (extStartNode && isRefDef(extStartNode)) ||\n (extEndNode && isRefDef(extEndNode))) {\n return null;\n }\n return {\n id: [extStartNode.id, extEndNode.id],\n line: [extStartNode.sourcepos[0][0] - 1, extEndNode.sourcepos[1][0] - 1],\n };\n };\n ToastMark.prototype.markDeletedRefMap = function (extStartNode, extEndNode) {\n var _this = this;\n if (!isEmptyObj(this.refMap)) {\n var markDeleted = function (node) {\n if (isRefDef(node)) {\n var refDefState = _this.refMap[node.label];\n if (refDefState && node.id === refDefState.id) {\n refDefState.unlinked = true;\n }\n }\n };\n if (extStartNode) {\n invokeNextUntil(markDeleted, extStartNode.parent, extEndNode);\n }\n if (extEndNode) {\n invokeNextUntil(markDeleted, extEndNode);\n }\n }\n };\n ToastMark.prototype.replaceWithNewRefDefState = function (nodes) {\n var _this = this;\n if (!isEmptyObj(this.refMap)) {\n var replaceWith_1 = function (node) {\n if (isRefDef(node)) {\n var label = node.label;\n var refDefState = _this.refMap[label];\n if (!refDefState || refDefState.unlinked) {\n _this.refMap[label] = createRefDefState(node);\n }\n }\n };\n nodes.forEach(function (node) {\n invokeNextUntil(replaceWith_1, node);\n });\n }\n };\n ToastMark.prototype.replaceWithRefDefCandidate = function () {\n var _this = this;\n if (!isEmptyObj(this.refDefCandidateMap)) {\n iterateObject(this.refDefCandidateMap, function (_, candidate) {\n var label = candidate.label, sourcepos = candidate.sourcepos;\n var refDefState = _this.refMap[label];\n if (!refDefState ||\n refDefState.unlinked ||\n refDefState.sourcepos[0][0] > sourcepos[0][0]) {\n _this.refMap[label] = createRefDefState(candidate);\n }\n });\n }\n };\n ToastMark.prototype.getRangeWithRefDef = function (startLine, endLine, startNode, endNode, lineDiff) {\n if (this.referenceDefinition && !isEmptyObj(this.refMap)) {\n var prevNode = findChildNodeAtLine(this.root, startLine - 1);\n var nextNode = findChildNodeAtLine(this.root, endLine + 1);\n if (prevNode && isRefDef(prevNode) && prevNode !== startNode && prevNode !== endNode) {\n startNode = prevNode;\n startLine = startNode.sourcepos[0][0];\n }\n if (nextNode && isRefDef(nextNode) && nextNode !== startNode && nextNode !== endNode) {\n endNode = nextNode;\n endLine = this.extendEndLine(endNode.sourcepos[1][0] + lineDiff);\n }\n }\n return [startNode, endNode, startLine, endLine];\n };\n ToastMark.prototype.parse = function (startPos, endPos, lineDiff) {\n if (lineDiff === void 0) {\n lineDiff = 0;\n }\n var range = this.getNodeRange(startPos, endPos);\n var startNode = range[0], endNode = range[1];\n var startLine = startNode ? Math.min(startNode.sourcepos[0][0], startPos[0]) : startPos[0];\n var endLine = this.extendEndLine((endNode ? Math.max(endNode.sourcepos[1][0], endPos[0]) : endPos[0]) + lineDiff);\n var parseResult = this.parseRange.apply(this, this.getRangeWithRefDef(startLine, endLine, startNode, endNode, lineDiff));\n var newNodes = parseResult.newNodes, extStartNode = parseResult.extStartNode, extEndNode = parseResult.extEndNode;\n var removedNodeRange = this.getRemovedNodeRange(extStartNode, extEndNode);\n var nextNode = extEndNode ? extEndNode.next : this.root.firstChild;\n if (this.referenceDefinition) {\n this.markDeletedRefMap(extStartNode, extEndNode);\n this.replaceRangeNodes(extStartNode, extEndNode, newNodes);\n this.replaceWithNewRefDefState(newNodes);\n }\n else {\n this.replaceRangeNodes(extStartNode, extEndNode, newNodes);\n }\n return { nodes: newNodes, removedNodeRange: removedNodeRange, nextNode: nextNode };\n };\n ToastMark.prototype.parseRefLink = function () {\n var _this = this;\n var result = [];\n if (!isEmptyObj(this.refMap)) {\n iterateObject(this.refMap, function (label, value) {\n if (value.unlinked) {\n delete _this.refMap[label];\n }\n iterateObject(_this.refLinkCandidateMap, function (_, candidate) {\n var node = candidate.node, refLabel = candidate.refLabel;\n if (refLabel === label) {\n result.push(_this.parse(node.sourcepos[0], node.sourcepos[1]));\n }\n });\n });\n }\n return result;\n };\n ToastMark.prototype.removeUnlinkedCandidate = function () {\n if (!isEmptyObj(this.refDefCandidateMap)) {\n [this.refLinkCandidateMap, this.refDefCandidateMap].forEach(function (candidateMap) {\n iterateObject(candidateMap, function (id) {\n if (isUnlinked(id)) {\n delete candidateMap[id];\n }\n });\n });\n }\n };\n ToastMark.prototype.editMarkdown = function (startPos, endPos, newText) {\n var lineDiff = this.updateLineTexts(startPos, endPos, newText);\n var parseResult = this.parse(startPos, endPos, lineDiff);\n var editResult = omit(parseResult, 'nextNode');\n updateNextLineNumbers(parseResult.nextNode, lineDiff);\n this.updateRootNodeState();\n var result = [editResult];\n if (this.referenceDefinition) {\n this.removeUnlinkedCandidate();\n this.replaceWithRefDefCandidate();\n result = result.concat(this.parseRefLink());\n }\n this.trigger('change', result);\n return result;\n };\n ToastMark.prototype.getLineTexts = function () {\n return this.lineTexts;\n };\n ToastMark.prototype.getRootNode = function () {\n return this.root;\n };\n ToastMark.prototype.findNodeAtPosition = function (pos) {\n var node = findNodeAtPosition(this.root, pos);\n if (!node || node === this.root) {\n return null;\n }\n return node;\n };\n ToastMark.prototype.findFirstNodeAtLine = function (line) {\n return findFirstNodeAtLine(this.root, line);\n };\n ToastMark.prototype.on = function (eventName, callback) {\n this.eventHandlerMap[eventName].push(callback);\n };\n ToastMark.prototype.off = function (eventName, callback) {\n var handlers = this.eventHandlerMap[eventName];\n var idx = handlers.indexOf(callback);\n handlers.splice(idx, 1);\n };\n ToastMark.prototype.findNodeById = function (id) {\n return findNodeById(id);\n };\n ToastMark.prototype.removeAllNode = function () {\n removeAllNode();\n };\n return ToastMark;\n}());\nvar disallowedTags = [\n 'title',\n 'textarea',\n 'style',\n 'xmp',\n 'iframe',\n 'noembed',\n 'noframes',\n 'script',\n 'plaintext',\n];\nvar reDisallowedTag = new RegExp(\"<(/?(?:\" + disallowedTags.join('|') + \")[^>]*>)\", 'ig');\nfunction filterDisallowedTags(str) {\n if (reDisallowedTag.test(str)) {\n return str.replace(reDisallowedTag, function (_, group) { return \"&lt;\" + group; });\n }\n return str;\n}\nvar baseConvertors = {\n heading: function (node, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: \"h\" + node.level,\n outerNewLine: true,\n };\n },\n text: function (node) {\n return {\n type: 'text',\n content: node.literal,\n };\n },\n softbreak: function (_, _a) {\n var options = _a.options;\n return {\n type: 'html',\n content: options.softbreak,\n };\n },\n linebreak: function () {\n return {\n type: 'html',\n content: '<br />\\n',\n };\n },\n emph: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'em',\n };\n },\n strong: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'strong',\n };\n },\n paragraph: function (node, _a) {\n var _b;\n var entering = _a.entering;\n var grandparent = (_b = node.parent) === null || _b === void 0 ? void 0 : _b.parent;\n if (grandparent && grandparent.type === 'list') {\n if (grandparent.listData.tight) {\n return null;\n }\n }\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'p',\n outerNewLine: true,\n };\n },\n thematicBreak: function () {\n return {\n type: 'openTag',\n tagName: 'hr',\n outerNewLine: true,\n selfClose: true,\n };\n },\n blockQuote: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'blockquote',\n outerNewLine: true,\n innerNewLine: true,\n };\n },\n list: function (node, _a) {\n var entering = _a.entering;\n var _b = node.listData, type = _b.type, start = _b.start;\n var tagName = type === 'bullet' ? 'ul' : 'ol';\n var attributes = {};\n if (tagName === 'ol' && start !== null && start !== 1) {\n attributes.start = start.toString();\n }\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: tagName,\n attributes: attributes,\n outerNewLine: true,\n };\n },\n item: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'li',\n outerNewLine: true,\n };\n },\n htmlInline: function (node, _a) {\n var options = _a.options;\n var content = options.tagFilter ? filterDisallowedTags(node.literal) : node.literal;\n return { type: 'html', content: content };\n },\n htmlBlock: function (node, _a) {\n var options = _a.options;\n var content = options.tagFilter ? filterDisallowedTags(node.literal) : node.literal;\n if (options.nodeId) {\n return [\n { type: 'openTag', tagName: 'div', outerNewLine: true },\n { type: 'html', content: content },\n { type: 'closeTag', tagName: 'div', outerNewLine: true },\n ];\n }\n return { type: 'html', content: content, outerNewLine: true };\n },\n code: function (node) {\n return [\n { type: 'openTag', tagName: 'code' },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'code' },\n ];\n },\n codeBlock: function (node) {\n var infoStr = node.info;\n var infoWords = infoStr ? infoStr.split(/\\s+/) : [];\n var codeClassNames = [];\n if (infoWords.length > 0 && infoWords[0].length > 0) {\n codeClassNames.push(\"language-\" + escapeXml(infoWords[0]));\n }\n return [\n { type: 'openTag', tagName: 'pre', outerNewLine: true },\n { type: 'openTag', tagName: 'code', classNames: codeClassNames },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'code' },\n { type: 'closeTag', tagName: 'pre', outerNewLine: true },\n ];\n },\n link: function (node, _a) {\n var entering = _a.entering;\n if (entering) {\n var _b = node, title = _b.title, destination = _b.destination;\n return {\n type: 'openTag',\n tagName: 'a',\n attributes: esm_assign({ href: escapeXml(destination) }, (title && { title: escapeXml(title) })),\n };\n }\n return { type: 'closeTag', tagName: 'a' };\n },\n image: function (node, _a) {\n var getChildrenText = _a.getChildrenText, skipChildren = _a.skipChildren;\n var _b = node, title = _b.title, destination = _b.destination;\n skipChildren();\n return {\n type: 'openTag',\n tagName: 'img',\n selfClose: true,\n attributes: esm_assign({ src: escapeXml(destination), alt: getChildrenText(node) }, (title && { title: escapeXml(title) })),\n };\n },\n customBlock: function (node, context, convertors) {\n var info = node.info.trim().toLowerCase();\n var customConvertor = convertors[info];\n if (customConvertor) {\n try {\n return customConvertor(node, context);\n }\n catch (e) {\n console.warn(\"[@toast-ui/editor] - The error occurred when \" + info + \" block node was parsed in markdown renderer: \" + e);\n }\n }\n return [\n { type: 'openTag', tagName: 'div', outerNewLine: true },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'div', outerNewLine: true },\n ];\n },\n frontMatter: function (node) {\n return [\n {\n type: 'openTag',\n tagName: 'div',\n outerNewLine: true,\n // Because front matter is metadata, it should not be render.\n attributes: { style: 'white-space: pre; display: none;' },\n },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'div', outerNewLine: true },\n ];\n },\n customInline: function (node, context, convertors) {\n var _a = node, info = _a.info, firstChild = _a.firstChild;\n var nomalizedInfo = info.trim().toLowerCase();\n var customConvertor = convertors[nomalizedInfo];\n var entering = context.entering;\n if (customConvertor) {\n try {\n return customConvertor(node, context);\n }\n catch (e) {\n console.warn(\"[@toast-ui/editor] - The error occurred when \" + nomalizedInfo + \" inline node was parsed in markdown renderer: \" + e);\n }\n }\n return entering\n ? [\n { type: 'openTag', tagName: 'span' },\n { type: 'text', content: \"$$\" + info + (firstChild ? ' ' : '') },\n ]\n : [\n { type: 'text', content: '$$' },\n { type: 'closeTag', tagName: 'span' },\n ];\n },\n};\nvar gfmConvertors = {\n strike: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'del',\n };\n },\n item: function (node, _a) {\n var entering = _a.entering;\n var _b = node.listData, checked = _b.checked, task = _b.task;\n if (entering) {\n var itemTag = {\n type: 'openTag',\n tagName: 'li',\n outerNewLine: true,\n };\n if (task) {\n return [\n itemTag,\n {\n type: 'openTag',\n tagName: 'input',\n selfClose: true,\n attributes: esm_assign(esm_assign({}, (checked && { checked: '' })), { disabled: '', type: 'checkbox' }),\n },\n {\n type: 'text',\n content: ' ',\n },\n ];\n }\n return itemTag;\n }\n return {\n type: 'closeTag',\n tagName: 'li',\n outerNewLine: true,\n };\n },\n table: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'table',\n outerNewLine: true,\n };\n },\n tableHead: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'thead',\n outerNewLine: true,\n };\n },\n tableBody: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'tbody',\n outerNewLine: true,\n };\n },\n tableRow: function (node, _a) {\n var entering = _a.entering;\n if (entering) {\n return {\n type: 'openTag',\n tagName: 'tr',\n outerNewLine: true,\n };\n }\n var result = [];\n if (node.lastChild) {\n var columnLen = node.parent.parent.columns.length;\n var lastColIdx = node.lastChild.endIdx;\n for (var i = lastColIdx + 1; i < columnLen; i += 1) {\n result.push({\n type: 'openTag',\n tagName: 'td',\n outerNewLine: true,\n }, {\n type: 'closeTag',\n tagName: 'td',\n outerNewLine: true,\n });\n }\n }\n result.push({\n type: 'closeTag',\n tagName: 'tr',\n outerNewLine: true,\n });\n return result;\n },\n tableCell: function (node, _a) {\n var entering = _a.entering;\n if (node.ignored) {\n return {\n type: 'text',\n content: '',\n };\n }\n var tablePart = node.parent.parent;\n var tagName = tablePart.type === 'tableHead' ? 'th' : 'td';\n var table = tablePart.parent;\n var columnInfo = table.columns[node.startIdx];\n var attributes = (columnInfo === null || columnInfo === void 0 ? void 0 : columnInfo.align) ? { align: columnInfo.align } : null;\n if (entering) {\n return esm_assign({ type: 'openTag', tagName: tagName, outerNewLine: true }, (attributes && { attributes: attributes }));\n }\n return {\n type: 'closeTag',\n tagName: tagName,\n outerNewLine: true,\n };\n },\n};\nvar defaultOptions = {\n softbreak: '\\n',\n gfm: false,\n tagFilter: false,\n nodeId: false,\n};\nfunction getChildrenText(node) {\n var buffer = [];\n var walker = node.walker();\n var event = null;\n while ((event = walker.next())) {\n var node_1 = event.node;\n if (node_1.type === 'text') {\n buffer.push(node_1.literal);\n }\n }\n return buffer.join('');\n}\nvar Renderer = /** @class */ (function () {\n function Renderer(customOptions) {\n this.buffer = [];\n this.options = esm_assign(esm_assign({}, defaultOptions), customOptions);\n this.convertors = this.createConvertors();\n delete this.options.convertors;\n }\n Renderer.prototype.createConvertors = function () {\n var convertors = esm_assign({}, baseConvertors);\n if (this.options.gfm) {\n convertors = esm_assign(esm_assign({}, convertors), gfmConvertors);\n }\n if (this.options.convertors) {\n var customConvertors_1 = this.options.convertors;\n var nodeTypes = Object.keys(customConvertors_1);\n var defaultConvertors_1 = esm_assign(esm_assign({}, baseConvertors), gfmConvertors);\n nodeTypes.forEach(function (nodeType) {\n var orgConvertor = convertors[nodeType];\n var convertor = customConvertors_1[nodeType];\n var convertorType = Object.keys(defaultConvertors_1).indexOf(nodeType) === -1\n ? nodeType.toLowerCase()\n : nodeType;\n if (orgConvertor) {\n convertors[convertorType] = function (node, context, convertors) {\n context.origin = function () { return orgConvertor(node, context, convertors); };\n return convertor(node, context);\n };\n }\n else {\n convertors[convertorType] = convertor;\n }\n });\n }\n return convertors;\n };\n Renderer.prototype.getConvertors = function () {\n return this.convertors;\n };\n Renderer.prototype.getOptions = function () {\n return this.options;\n };\n Renderer.prototype.render = function (rootNode) {\n var _this = this;\n this.buffer = [];\n var walker = rootNode.walker();\n var event = null;\n var _loop_1 = function () {\n var node = event.node, entering = event.entering;\n var convertor = this_1.convertors[node.type];\n if (!convertor) {\n return \"continue\";\n }\n var skipped = false;\n var context = {\n entering: entering,\n leaf: !isContainer(node),\n options: this_1.options,\n getChildrenText: getChildrenText,\n skipChildren: function () {\n skipped = true;\n },\n };\n var converted = isCustomBlock(node) || isCustomInline(node)\n ? convertor(node, context, this_1.convertors)\n : convertor(node, context);\n if (converted) {\n var htmlNodes = Array.isArray(converted) ? converted : [converted];\n htmlNodes.forEach(function (htmlNode, index) {\n if (htmlNode.type === 'openTag' && _this.options.nodeId && index === 0) {\n if (!htmlNode.attributes) {\n htmlNode.attributes = {};\n }\n htmlNode.attributes['data-nodeid'] = String(node.id);\n }\n _this.renderHTMLNode(htmlNode);\n });\n if (skipped) {\n walker.resumeAt(node, false);\n walker.next();\n }\n }\n };\n var this_1 = this;\n while ((event = walker.next())) {\n _loop_1();\n }\n this.addNewLine();\n return this.buffer.join('');\n };\n Renderer.prototype.renderHTMLNode = function (node) {\n switch (node.type) {\n case 'openTag':\n case 'closeTag':\n this.renderElementNode(node);\n break;\n case 'text':\n this.renderTextNode(node);\n break;\n case 'html':\n this.renderRawHtmlNode(node);\n break;\n // no-default-case\n }\n };\n Renderer.prototype.generateOpenTagString = function (node) {\n var _this = this;\n var tagName = node.tagName, classNames = node.classNames, attributes = node.attributes;\n this.buffer.push(\"<\" + tagName);\n if (classNames && classNames.length > 0) {\n this.buffer.push(\" class=\\\"\" + classNames.join(' ') + \"\\\"\");\n }\n if (attributes) {\n Object.keys(attributes).forEach(function (attrName) {\n var attrValue = attributes[attrName];\n _this.buffer.push(\" \" + attrName + \"=\\\"\" + attrValue + \"\\\"\");\n });\n }\n if (node.selfClose) {\n this.buffer.push(' /');\n }\n this.buffer.push('>');\n };\n Renderer.prototype.generateCloseTagString = function (_a) {\n var tagName = _a.tagName;\n this.buffer.push(\"</\" + tagName + \">\");\n };\n Renderer.prototype.addNewLine = function () {\n if (this.buffer.length && last(last(this.buffer)) !== '\\n') {\n this.buffer.push('\\n');\n }\n };\n Renderer.prototype.addOuterNewLine = function (node) {\n if (node.outerNewLine) {\n this.addNewLine();\n }\n };\n Renderer.prototype.addInnerNewLine = function (node) {\n if (node.innerNewLine) {\n this.addNewLine();\n }\n };\n Renderer.prototype.renderTextNode = function (node) {\n this.buffer.push(escapeXml(node.content));\n };\n Renderer.prototype.renderRawHtmlNode = function (node) {\n this.addOuterNewLine(node);\n this.buffer.push(node.content);\n this.addOuterNewLine(node);\n };\n Renderer.prototype.renderElementNode = function (node) {\n if (node.type === 'openTag') {\n this.addOuterNewLine(node);\n this.generateOpenTagString(node);\n if (node.selfClose) {\n this.addOuterNewLine(node);\n }\n else {\n this.addInnerNewLine(node);\n }\n }\n else {\n this.addInnerNewLine(node);\n this.generateCloseTagString(node);\n this.addOuterNewLine(node);\n }\n };\n return Renderer;\n}());\n\n\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/collection/forEachOwnProperties.js\nvar collection_forEachOwnProperties = __webpack_require__(956);\nvar forEachOwnProperties_default = /*#__PURE__*/__webpack_require__.n(collection_forEachOwnProperties);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/object/extend.js\nvar extend = __webpack_require__(969);\nvar extend_default = /*#__PURE__*/__webpack_require__.n(extend);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/domEvent/on.js\nvar on = __webpack_require__(348);\nvar on_default = /*#__PURE__*/__webpack_require__.n(on);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/domEvent/off.js\nvar off = __webpack_require__(349);\nvar off_default = /*#__PURE__*/__webpack_require__.n(off);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/domUtil/addClass.js\nvar addClass = __webpack_require__(204);\nvar addClass_default = /*#__PURE__*/__webpack_require__.n(addClass);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/domUtil/removeClass.js\nvar removeClass = __webpack_require__(462);\nvar removeClass_default = /*#__PURE__*/__webpack_require__.n(removeClass);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/domUtil/css.js\nvar css = __webpack_require__(522);\nvar css_default = /*#__PURE__*/__webpack_require__.n(css);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/collection/toArray.js\nvar collection_toArray = __webpack_require__(990);\nvar toArray_default = /*#__PURE__*/__webpack_require__.n(collection_toArray);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/type/isArray.js\nvar type_isArray = __webpack_require__(322);\nvar isArray_default = /*#__PURE__*/__webpack_require__.n(type_isArray);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/type/isString.js\nvar type_isString = __webpack_require__(758);\nvar isString_default = /*#__PURE__*/__webpack_require__.n(type_isString);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/type/isUndefined.js\nvar type_isUndefined = __webpack_require__(929);\nvar isUndefined_default = /*#__PURE__*/__webpack_require__.n(type_isUndefined);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/domUtil/hasClass.js\nvar hasClass = __webpack_require__(714);\nvar hasClass_default = /*#__PURE__*/__webpack_require__.n(hasClass);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/domUtil/matches.js\nvar domUtil_matches = __webpack_require__(471);\n;// CONCATENATED MODULE: ./src/utils/constants.ts\nvar TAG_NAME = '[A-Za-z][A-Za-z0-9-]*';\nvar ATTRIBUTE_NAME = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\nvar UNQUOTED_VALUE = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\nvar SINGLE_QUOTED_VALUE = \"'[^']*'\";\nvar DOUBLE_QUOTED_VALUE = '\"[^\"]*\"';\nvar ATTRIBUTE_VALUE = \"(?:\" + UNQUOTED_VALUE + \"|\" + SINGLE_QUOTED_VALUE + \"|\" + DOUBLE_QUOTED_VALUE + \")\";\nvar ATTRIBUTE_VALUE_SPEC = \"\" + '(?:\\\\s*=\\\\s*' + ATTRIBUTE_VALUE + \")\";\nvar constants_ATTRIBUTE = \"\" + '(?:\\\\s+' + ATTRIBUTE_NAME + ATTRIBUTE_VALUE_SPEC + \"?)\";\nvar constants_OPEN_TAG = \"<(\" + TAG_NAME + \")(\" + constants_ATTRIBUTE + \")*\\\\s*/?>\";\nvar CLOSE_TAG = \"</(\" + TAG_NAME + \")\\\\s*[>]\";\nvar constants_HTML_TAG = \"(?:\" + constants_OPEN_TAG + \"|\" + CLOSE_TAG + \")\";\nvar reHTMLTag = new RegExp(\"^\" + constants_HTML_TAG, 'i');\nvar constants_reBR = /<br\\s*\\/*>/i;\nvar reHTMLComment = /<! ---->|<!--(?:-?[^>-])(?:-?[^-])*-->/;\nvar constants_ALTERNATIVE_TAG_FOR_BR = '</p><p>';\n\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/type/isNull.js\nvar type_isNull = __webpack_require__(934);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/request/sendHostname.js\nvar request_sendHostname = __webpack_require__(391);\n;// CONCATENATED MODULE: ./src/utils/common.ts\n\n\n\n\n\nvar isMac = /Mac/.test(navigator.platform);\nvar reSpaceMoreThanOne = /[\\u0020]+/g;\nvar common_reEscapeChars = /[>(){}[\\]+-.!#|]/g;\nvar reEscapeHTML = /<([a-zA-Z_][a-zA-Z0-9\\-._]*)(\\s|[^\\\\>])*\\/?>|<(\\/)([a-zA-Z_][a-zA-Z0-9\\-._]*)\\s*\\/?>|<!--[^-]+-->|<([a-zA-Z_][a-zA-Z0-9\\-.:/]*)>/g;\nvar reEscapeBackSlash = /\\\\[!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\\\\]/g;\nvar reEscapePairedChars = /[*_~`]/g;\nvar reMdImageSyntax = /!\\[.*\\]\\(.*\\)/g;\nvar reEscapedCharInLinkSyntax = /[[\\]]/g;\nvar reEscapeBackSlashInSentence = /(?:^|[^\\\\])\\\\(?!\\\\)/g;\nvar common_XMLSPECIAL = '[&<>\"]';\nvar common_reXmlSpecial = new RegExp(common_XMLSPECIAL, 'g');\nfunction common_replaceUnsafeChar(char) {\n switch (char) {\n case '&':\n return '&amp;';\n case '<':\n return '&lt;';\n case '>':\n return '&gt;';\n case '\"':\n return '&quot;';\n default:\n return char;\n }\n}\nfunction common_escapeXml(text) {\n if (common_reXmlSpecial.test(text)) {\n return text.replace(common_reXmlSpecial, common_replaceUnsafeChar);\n }\n return text;\n}\nfunction sendHostName() {\n sendHostname('editor', 'UA-129966929-1');\n}\nfunction common_includes(arr, targetItem) {\n return arr.indexOf(targetItem) !== -1;\n}\nvar availableLinkAttributes = ['rel', 'target', 'hreflang', 'type'];\nvar reMarkdownTextToEscapeMap = {\n codeblock: /(^ {4}[^\\n]+\\n*)+/,\n thematicBreak: /^ *((\\* *){3,}|(- *){3,} *|(_ *){3,}) */,\n atxHeading: /^(#{1,6}) +[\\s\\S]+/,\n seTextheading: /^([^\\n]+)\\n *(=|-){2,} */,\n blockquote: /^( *>[^\\n]+.*)+/,\n list: /^ *(\\*+|-+|\\d+\\.) [\\s\\S]+/,\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +[\"(]([^\\n]+)[\")])? */,\n link: /!?\\[.*\\]\\(.*\\)/,\n reflink: /!?\\[.*\\]\\s*\\[([^\\]]*)\\]/,\n verticalBar: /\\u007C/,\n fencedCodeblock: /^((`|~){3,})/,\n};\nfunction sanitizeLinkAttribute(attribute) {\n if (!attribute) {\n return null;\n }\n var linkAttributes = {};\n availableLinkAttributes.forEach(function (key) {\n if (!isUndefined_default()(attribute[key])) {\n linkAttributes[key] = attribute[key];\n }\n });\n return linkAttributes;\n}\nfunction common_repeat(text, count) {\n var result = '';\n for (var i = 0; i < count; i += 1) {\n result += text;\n }\n return result;\n}\nfunction isNeedEscapeText(text) {\n var needEscape = false;\n forEachOwnProperties(reMarkdownTextToEscapeMap, function (reMarkdownTextToEscape) {\n if (reMarkdownTextToEscape.test(text)) {\n needEscape = true;\n }\n return !needEscape;\n });\n return needEscape;\n}\nfunction escapeTextForLink(text) {\n var imageSyntaxRanges = [];\n var result = reMdImageSyntax.exec(text);\n while (result) {\n imageSyntaxRanges.push([result.index, result.index + result[0].length]);\n result = reMdImageSyntax.exec(text);\n }\n return text.replace(reEscapedCharInLinkSyntax, function (matched, offset) {\n var isDelimiter = imageSyntaxRanges.some(function (range) { return offset > range[0] && offset < range[1]; });\n return isDelimiter ? matched : \"\\\\\" + matched;\n });\n}\nfunction common_escape(text) {\n var aheadReplacer = function (matched) { return \"\\\\\" + matched; };\n var behindReplacer = function (matched) { return matched + \"\\\\\"; };\n var escapedText = text.replace(reSpaceMoreThanOne, ' ');\n if (reEscapeBackSlash.test(escapedText)) {\n escapedText = escapedText.replace(reEscapeBackSlash, aheadReplacer);\n }\n if (reEscapeBackSlashInSentence.test(escapedText)) {\n escapedText = escapedText.replace(reEscapeBackSlashInSentence, behindReplacer);\n }\n escapedText = escapedText.replace(reEscapePairedChars, aheadReplacer);\n if (reEscapeHTML.test(escapedText)) {\n escapedText = escapedText.replace(reEscapeHTML, aheadReplacer);\n }\n if (isNeedEscapeText(escapedText)) {\n escapedText = escapedText.replace(common_reEscapeChars, aheadReplacer);\n }\n return escapedText;\n}\nfunction quote(text) {\n var result;\n if (text.indexOf('\"') === -1) {\n result = '\"\"';\n }\n else {\n result = text.indexOf(\"'\") === -1 ? \"''\" : '()';\n }\n return result[0] + text + result[1];\n}\nfunction common_isNil(value) {\n return isNull(value) || isUndefined(value);\n}\nfunction shallowEqual(o1, o2) {\n if (o1 === null && o1 === o2) {\n return true;\n }\n if (typeof o1 !== 'object' || typeof o2 !== 'object' || common_isNil(o1) || common_isNil(o2)) {\n return o1 === o2;\n }\n for (var key in o1) {\n if (o1[key] !== o2[key]) {\n return false;\n }\n }\n for (var key in o2) {\n if (!(key in o1)) {\n return false;\n }\n }\n return true;\n}\nfunction common_last(arr) {\n return arr[arr.length - 1];\n}\nfunction common_between(value, min, max) {\n return value >= min && value <= max;\n}\nfunction isObject(obj) {\n return typeof obj === 'object' && obj !== null;\n}\nfunction deepMergedCopy(targetObj, obj) {\n var resultObj = tslib_es6_assign({}, targetObj);\n if (targetObj && obj) {\n Object.keys(obj).forEach(function (prop) {\n if (isObject(resultObj[prop])) {\n if (Array.isArray(obj[prop])) {\n resultObj[prop] = deepCopyArray(obj[prop]);\n }\n else if (resultObj.hasOwnProperty(prop)) {\n resultObj[prop] = deepMergedCopy(resultObj[prop], obj[prop]);\n }\n else {\n resultObj[prop] = deepCopy(obj[prop]);\n }\n }\n else {\n resultObj[prop] = obj[prop];\n }\n });\n }\n return resultObj;\n}\nfunction deepCopyArray(items) {\n return items.map(function (item) {\n if (isObject(item)) {\n return Array.isArray(item) ? deepCopyArray(item) : deepCopy(item);\n }\n return item;\n });\n}\nfunction deepCopy(obj) {\n var keys = Object.keys(obj);\n if (!keys.length) {\n return obj;\n }\n return keys.reduce(function (acc, prop) {\n if (isObject(obj[prop])) {\n acc[prop] = Array.isArray(obj[prop]) ? deepCopyArray(obj[prop]) : deepCopy(obj[prop]);\n }\n else {\n acc[prop] = obj[prop];\n }\n return acc;\n }, {});\n}\nfunction common_assign(targetObj, obj) {\n if (obj === void 0) { obj = {}; }\n Object.keys(obj).forEach(function (prop) {\n if (targetObj.hasOwnProperty(prop) && typeof targetObj[prop] === 'object') {\n if (Array.isArray(obj[prop])) {\n targetObj[prop] = obj[prop];\n }\n else {\n common_assign(targetObj[prop], obj[prop]);\n }\n }\n else {\n targetObj[prop] = obj[prop];\n }\n });\n return targetObj;\n}\nfunction getSortedNumPair(valueA, valueB) {\n return valueA > valueB ? [valueB, valueA] : [valueA, valueB];\n}\n\n;// CONCATENATED MODULE: ./src/utils/dom.ts\n\n\n\n\n\n\n\n\n\n\nfunction isPositionInBox(style, offsetX, offsetY) {\n var left = parseInt(style.left, 10);\n var top = parseInt(style.top, 10);\n var width = parseInt(style.width, 10) + parseInt(style.paddingLeft, 10) + parseInt(style.paddingRight, 10);\n var height = parseInt(style.height, 10) + parseInt(style.paddingTop, 10) + parseInt(style.paddingBottom, 10);\n return offsetX >= left && offsetX <= left + width && offsetY >= top && offsetY <= top + height;\n}\nvar CLS_PREFIX = 'toastui-editor-';\nfunction cls() {\n var names = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n names[_i] = arguments[_i];\n }\n var result = [];\n for (var _a = 0, names_1 = names; _a < names_1.length; _a++) {\n var name = names_1[_a];\n var className = void 0;\n if (Array.isArray(name)) {\n className = name[0] ? name[1] : null;\n }\n else {\n className = name;\n }\n if (className) {\n result.push(\"\" + CLS_PREFIX + className);\n }\n }\n return result.join(' ');\n}\nfunction clsWithMdPrefix() {\n var names = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n names[_i] = arguments[_i];\n }\n return names.map(function (className) { return CLS_PREFIX + \"md-\" + className; }).join(' ');\n}\nfunction isTextNode(node) {\n return (node === null || node === void 0 ? void 0 : node.nodeType) === Node.TEXT_NODE;\n}\nfunction isElemNode(node) {\n return node && node.nodeType === Node.ELEMENT_NODE;\n}\nfunction findNodes(element, selector) {\n var nodeList = toArray(element.querySelectorAll(selector));\n if (nodeList.length) {\n return nodeList;\n }\n return [];\n}\nfunction appendNodes(node, nodesToAppend) {\n nodesToAppend = isArray(nodesToAppend) ? toArray(nodesToAppend) : [nodesToAppend];\n nodesToAppend.forEach(function (nodeToAppend) {\n node.appendChild(nodeToAppend);\n });\n}\nfunction insertBeforeNode(insertedNode, node) {\n if (node.parentNode) {\n node.parentNode.insertBefore(insertedNode, node);\n }\n}\nfunction removeNode(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction unwrapNode(node) {\n var result = [];\n while (node.firstChild) {\n result.push(node.firstChild);\n if (node.parentNode) {\n node.parentNode.insertBefore(node.firstChild, node);\n }\n }\n removeNode(node);\n return result;\n}\nfunction toggleClass(element, className, state) {\n if (isUndefined_default()(state)) {\n state = !hasClass_default()(element, className);\n }\n var toggleFn = state ? (addClass_default()) : (removeClass_default());\n toggleFn(element, className);\n}\nfunction createElementWith(contents, target) {\n var container = document.createElement('div');\n if (isString_default()(contents)) {\n container.innerHTML = contents;\n }\n else {\n container.appendChild(contents);\n }\n var firstChild = container.firstChild;\n if (target) {\n target.appendChild(firstChild);\n }\n return firstChild;\n}\nfunction getOuterWidth(el) {\n var computed = window.getComputedStyle(el);\n return (['margin-left', 'margin-right'].reduce(function (acc, type) { return acc + parseInt(computed.getPropertyValue(type), 10); }, 0) + el.offsetWidth);\n}\nfunction closest(node, found) {\n var condition;\n if (isString(found)) {\n condition = function (target) { return matches(target, found); };\n }\n else {\n condition = function (target) { return target === found; };\n }\n while (node && node !== document) {\n if (isElemNode(node) && condition(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n}\nfunction getTotalOffset(el, root) {\n var offsetTop = 0;\n var offsetLeft = 0;\n while (el && el !== root) {\n var top = el.offsetTop, left = el.offsetLeft, offsetParent = el.offsetParent;\n offsetTop += top;\n offsetLeft += left;\n if (offsetParent === root.offsetParent) {\n break;\n }\n el = el.offsetParent;\n }\n return { offsetTop: offsetTop, offsetLeft: offsetLeft };\n}\nfunction finalizeHtml(html, needHtmlText) {\n var result;\n if (needHtmlText) {\n result = html.innerHTML;\n }\n else {\n var frag = document.createDocumentFragment();\n var childNodes = toArray(html.childNodes);\n var length = childNodes.length;\n for (var i = 0; i < length; i += 1) {\n frag.appendChild(childNodes[i]);\n }\n result = frag;\n }\n return result;\n}\nfunction dom_empty(node) {\n while (node.firstChild) {\n node.removeChild(node.firstChild);\n }\n}\nfunction appendNode(node, appended) {\n if (isString(appended)) {\n node.insertAdjacentHTML('beforeend', appended);\n }\n else {\n var nodes = appended.length\n ? toArray(appended)\n : [appended];\n for (var i = 0, len = nodes.length; i < len; i += 1) {\n node.appendChild(nodes[i]);\n }\n }\n}\nfunction prependNode(node, appended) {\n if (isString(appended)) {\n node.insertAdjacentHTML('afterbegin', appended);\n }\n else {\n var nodes = appended.length\n ? toArray(appended)\n : [appended];\n for (var i = nodes.length - 1, len = 0; i >= len; i -= 1) {\n node.insertBefore(nodes[i], node.firstChild);\n }\n }\n}\nfunction setAttributes(attributes, element) {\n Object.keys(attributes).forEach(function (attrName) {\n if (isNil(attributes[attrName])) {\n element.removeAttribute(attrName);\n }\n else {\n element.setAttribute(attrName, attributes[attrName]);\n }\n });\n}\nfunction replaceBRWithEmptyBlock(html) {\n // remove br in paragraph to compatible with markdown\n var replacedHTML = html.replace(/<p><br\\s*\\/*><\\/p>/gi, '<p></p>');\n var reHTMLTag = new RegExp(HTML_TAG, 'ig');\n var htmlTagMatched = replacedHTML.match(reHTMLTag);\n htmlTagMatched === null || htmlTagMatched === void 0 ? void 0 : htmlTagMatched.forEach(function (htmlTag, index) {\n if (reBR.test(htmlTag)) {\n var alternativeTag = ALTERNATIVE_TAG_FOR_BR;\n if (index) {\n var prevTag = htmlTagMatched[index - 1];\n var openTagMatched = prevTag.match(OPEN_TAG);\n if (openTagMatched && !/br/i.test(openTagMatched[1])) {\n var tagName = openTagMatched[1];\n alternativeTag = \"</\" + tagName + \"><\" + tagName + \">\";\n }\n }\n replacedHTML = replacedHTML.replace(reBR, alternativeTag);\n }\n });\n return replacedHTML;\n}\nfunction removeProseMirrorHackNodes(html) {\n var reProseMirrorImage = /<img class=\"ProseMirror-separator\" alt=\"\">/g;\n var reProseMirrorTrailingBreak = / class=\"ProseMirror-trailingBreak\"/g;\n var resultHTML = html;\n resultHTML = resultHTML.replace(reProseMirrorImage, '');\n resultHTML = resultHTML.replace(reProseMirrorTrailingBreak, '');\n return resultHTML;\n}\n\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/type/isFunction.js\nvar isFunction = __webpack_require__(294);\nvar isFunction_default = /*#__PURE__*/__webpack_require__.n(isFunction);\n;// CONCATENATED MODULE: ./src/utils/markdown.ts\n\nfunction hasSpecificTypeAncestor(mdNode) {\n var types = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n types[_i - 1] = arguments[_i];\n }\n while (mdNode && mdNode.parent && mdNode.parent.type !== 'document') {\n if (includes(types, mdNode.parent.type)) {\n return true;\n }\n mdNode = mdNode.parent;\n }\n return false;\n}\nfunction markdown_getMdStartLine(mdNode) {\n return mdNode.sourcepos[0][0];\n}\nfunction markdown_getMdEndLine(mdNode) {\n return mdNode.sourcepos[1][0];\n}\nfunction getMdStartCh(mdNode) {\n return mdNode.sourcepos[0][1];\n}\nfunction getMdEndCh(mdNode) {\n return mdNode.sourcepos[1][1];\n}\nfunction isMultiLineNode(mdNode) {\n var type = mdNode.type;\n return type === 'codeBlock' || type === 'paragraph';\n}\nfunction isHTMLNode(mdNode) {\n var type = mdNode.type;\n return type === 'htmlBlock' || type === 'htmlInline';\n}\nfunction markdown_isStyledInlineNode(mdNode) {\n var type = mdNode.type;\n return (type === 'strike' ||\n type === 'strong' ||\n type === 'emph' ||\n type === 'code' ||\n type === 'link' ||\n type === 'image');\n}\nfunction isCodeBlockNode(mdNode) {\n return mdNode && mdNode.type === 'codeBlock';\n}\nfunction isCustomBlockNode(mdNode) {\n return mdNode && mdNode.type === 'customBlock';\n}\nfunction isListNode(mdNode) {\n return mdNode && (mdNode.type === 'item' || mdNode.type === 'list');\n}\nfunction isOrderedListNode(mdNode) {\n return isListNode(mdNode) && mdNode.listData.type === 'ordered';\n}\nfunction isBulletListNode(mdNode) {\n return isListNode(mdNode) && mdNode.listData.type !== 'ordered';\n}\nfunction isTableCellNode(mdNode) {\n return mdNode && (mdNode.type === 'tableCell' || mdNode.type === 'tableDelimCell');\n}\nfunction isInlineNode(mdNode) {\n switch (mdNode.type) {\n case 'code':\n case 'text':\n case 'emph':\n case 'strong':\n case 'strike':\n case 'link':\n case 'image':\n case 'htmlInline':\n case 'linebreak':\n case 'softbreak':\n case 'customInline':\n return true;\n default:\n return false;\n }\n}\nfunction findClosestNode(mdNode, condition, includeSelf) {\n if (includeSelf === void 0) { includeSelf = true; }\n mdNode = includeSelf ? mdNode : mdNode.parent;\n while (mdNode && mdNode.type !== 'document') {\n if (condition(mdNode)) {\n return mdNode;\n }\n mdNode = mdNode.parent;\n }\n return null;\n}\nfunction traverseParentNodes(mdNode, iteratee, includeSelf) {\n if (includeSelf === void 0) { includeSelf = true; }\n mdNode = includeSelf ? mdNode : mdNode.parent;\n while (mdNode && mdNode.type !== 'document') {\n iteratee(mdNode);\n mdNode = mdNode.parent;\n }\n}\nfunction addOffsetPos(originPos, offset) {\n return [originPos[0], originPos[1] + offset];\n}\nfunction setOffsetPos(originPos, newOffset) {\n return [originPos[0], newOffset];\n}\nfunction getInlineMarkdownText(mdNode) {\n var text = mdNode.firstChild.literal;\n switch (mdNode.type) {\n case 'emph':\n return \"*\" + text + \"*\";\n case 'strong':\n return \"**\" + text + \"**\";\n case 'strike':\n return \"~~\" + text + \"~~\";\n case 'code':\n return \"`\" + text + \"`\";\n case 'link':\n case 'image':\n /* eslint-disable no-case-declarations */\n var _a = mdNode, destination = _a.destination, title = _a.title;\n var delim = mdNode.type === 'link' ? '' : '!';\n return delim + \"[\" + text + \"](\" + destination + (title ? \" \\\"\" + title + \"\\\"\" : '') + \")\";\n default:\n return null;\n }\n}\nfunction markdown_isContainer(node) {\n switch (node.type) {\n case 'document':\n case 'blockQuote':\n case 'list':\n case 'item':\n case 'paragraph':\n case 'heading':\n case 'emph':\n case 'strong':\n case 'strike':\n case 'link':\n case 'image':\n case 'table':\n case 'tableHead':\n case 'tableBody':\n case 'tableRow':\n case 'tableCell':\n case 'tableDelimRow':\n case 'customInline':\n return true;\n default:\n return false;\n }\n}\nfunction markdown_getChildrenText(node) {\n var buffer = [];\n var walker = node.walker();\n var event = null;\n while ((event = walker.next())) {\n var childNode = event.node;\n if (childNode.type === 'text') {\n buffer.push(childNode.literal);\n }\n }\n return buffer.join('');\n}\n\n;// CONCATENATED MODULE: ./src/widget/rules.ts\n\nvar widgetRules = (/* unused pure expression or super */ null && (false));\nvar widgetRuleMap = {};\nvar reWidgetPrefix = /\\$\\$widget\\d+\\s/;\nfunction unwrapWidgetSyntax(text) {\n var index = text.search(reWidgetPrefix);\n if (index !== -1) {\n var rest = text.substring(index);\n var replaced = rest.replace(reWidgetPrefix, '').replace('$$', '');\n text = text.substring(0, index);\n text += unwrapWidgetSyntax(replaced);\n }\n return text;\n}\nfunction createWidgetContent(info, text) {\n return \"$$\" + info + \" \" + text + \"$$\";\n}\nfunction widgetToDOM(info, text) {\n var _a = widgetRuleMap[info], rule = _a.rule, toDOM = _a.toDOM;\n var matches = unwrapWidgetSyntax(text).match(rule);\n if (matches) {\n text = matches[0];\n }\n return toDOM(text);\n}\nfunction getWidgetRules() {\n return widgetRules;\n}\nfunction setWidgetRules(rules) {\n widgetRules = rules;\n widgetRules.forEach(function (rule, index) {\n widgetRuleMap[\"widget\" + index] = rule;\n });\n}\nfunction mergeNodes(nodes, text, schema, ruleIndex) {\n return nodes.concat(createNodesWithWidget(text, schema, ruleIndex));\n}\n/**\n * create nodes with plain text and replace text matched to the widget rules with the widget node\n * For example, in case the text and widget rules as below\n *\n * text: $test plain text #test\n * widget rules: [{ rule: /$.+/ }, { rule: /#.+/ }]\n *\n * The creating node process is recursive and is as follows.\n *\n * in first widget rule(/$.+/)\n * $test -> widget node\n * plain text -> match with next widget rule\n * #test -> match with next widget rule\n *\n * in second widget rule(/#.+/)\n * plain text -> text node(no rule for matching)\n * #test -> widget node\n */\nfunction createNodesWithWidget(text, schema, ruleIndex) {\n if (ruleIndex === void 0) { ruleIndex = 0; }\n var nodes = [];\n var rule = (widgetRules[ruleIndex] || {}).rule;\n var nextRuleIndex = ruleIndex + 1;\n text = unwrapWidgetSyntax(text);\n if (rule && rule.test(text)) {\n var index = void 0;\n while ((index = text.search(rule)) !== -1) {\n var prev = text.substring(0, index);\n // get widget node on first splitted text using next widget rule\n if (prev) {\n nodes = mergeNodes(nodes, prev, schema, nextRuleIndex);\n }\n // build widget node using current widget rule\n text = text.substring(index);\n var literal = text.match(rule)[0];\n var info = \"widget\" + ruleIndex;\n nodes.push(schema.nodes.widget.create({ info: info }, schema.text(createWidgetContent(info, literal))));\n text = text.substring(literal.length);\n }\n // get widget node on last splitted text using next widget rule\n if (text) {\n nodes = mergeNodes(nodes, text, schema, nextRuleIndex);\n }\n }\n else if (text) {\n nodes =\n ruleIndex < widgetRules.length - 1\n ? mergeNodes(nodes, text, schema, nextRuleIndex)\n : [schema.text(text)];\n }\n return nodes;\n}\nfunction getWidgetContent(widgetNode) {\n var event;\n var text = '';\n var walker = widgetNode.walker();\n while ((event = walker.next())) {\n var node = event.node, entering = event.entering;\n if (entering) {\n if (node !== widgetNode && node.type !== 'text') {\n text += getInlineMarkdownText(node);\n // skip the children\n walker.resumeAt(widgetNode, false);\n walker.next();\n }\n else if (node.type === 'text') {\n text += node.literal;\n }\n }\n }\n return text;\n}\n\n// EXTERNAL MODULE: ../../node_modules/dompurify/dist/purify.js\nvar purify = __webpack_require__(368);\nvar purify_default = /*#__PURE__*/__webpack_require__.n(purify);\n;// CONCATENATED MODULE: ./src/sanitizer/htmlSanitizer.ts\n\n\n\nvar CAN_BE_WHITE_TAG_LIST = ['iframe', 'embed'];\nvar whiteTagList = [];\nfunction htmlSanitizer_registerTagWhitelistIfPossible(tagName) {\n if (common_includes(CAN_BE_WHITE_TAG_LIST, tagName)) {\n whiteTagList.push(tagName.toLowerCase());\n }\n}\nfunction sanitizeHTML(html, options) {\n return purify_default().sanitize(html, tslib_es6_assign({ ADD_TAGS: whiteTagList, ADD_ATTR: ['rel', 'target', 'hreflang', 'type'], FORBID_TAGS: [\n 'input',\n 'script',\n 'textarea',\n 'form',\n 'button',\n 'select',\n 'meta',\n 'style',\n 'link',\n 'title',\n 'object',\n 'base',\n ] }, options));\n}\n\n;// CONCATENATED MODULE: ./src/wysiwyg/nodes/html.ts\n\n\n\n\nfunction getChildrenHTML(node, typeName) {\n return node\n .literal.replace(new RegExp(\"(<\\\\s*\" + typeName + \"[^>]*>)|(</\" + typeName + \"\\\\s*[>])\", 'ig'), '')\n .trim();\n}\nfunction getHTMLAttrsByHTMLString(html) {\n html = html.match(reHTMLTag)[0];\n var attrs = html.match(new RegExp(constants_ATTRIBUTE, 'g'));\n return attrs\n ? attrs.reduce(function (acc, attr) {\n var _a = attr.trim().split('='), name = _a[0], values = _a.slice(1);\n if (values.length) {\n acc[name] = values.join('=').replace(/'|\"/g, '').trim();\n }\n return acc;\n }, {})\n : {};\n}\nfunction getHTMLAttrs(dom) {\n return toArray_default()(dom.attributes).reduce(function (acc, attr) {\n acc[attr.nodeName] = attr.nodeValue;\n return acc;\n }, {});\n}\nfunction sanitizeDOM(node, typeName, sanitizer, wwToDOMAdaptor) {\n var dom = wwToDOMAdaptor.getToDOMNode(typeName)(node);\n var html = sanitizer(dom.outerHTML);\n var container = document.createElement('div');\n container.innerHTML = html;\n dom = container.firstChild;\n var htmlAttrs = getHTMLAttrs(dom);\n return { dom: dom, htmlAttrs: htmlAttrs };\n}\nvar schemaFactory = {\n htmlBlock: function (typeName, sanitizeHTML, wwToDOMAdaptor) {\n return {\n atom: true,\n content: 'block+',\n group: 'block',\n attrs: {\n htmlAttrs: { default: {} },\n childrenHTML: { default: '' },\n htmlBlock: { default: true },\n },\n parseDOM: [\n {\n tag: typeName,\n getAttrs: function (dom) {\n return {\n htmlAttrs: getHTMLAttrs(dom),\n childrenHTML: dom.innerHTML,\n };\n },\n },\n ],\n toDOM: function (node) {\n var _a = sanitizeDOM(node, typeName, sanitizeHTML, wwToDOMAdaptor), dom = _a.dom, htmlAttrs = _a.htmlAttrs;\n htmlAttrs.class = htmlAttrs.class ? htmlAttrs.class + \" html-block\" : 'html-block';\n return __spreadArray([typeName, htmlAttrs], toArray_default()(dom.childNodes));\n },\n };\n },\n htmlInline: function (typeName, sanitizeHTML, wwToDOMAdaptor) {\n return {\n attrs: {\n htmlAttrs: { default: {} },\n htmlInline: { default: true },\n },\n parseDOM: [\n {\n tag: typeName,\n getAttrs: function (dom) {\n return {\n htmlAttrs: getHTMLAttrs(dom),\n };\n },\n },\n ],\n toDOM: function (node) {\n var htmlAttrs = sanitizeDOM(node, typeName, sanitizeHTML, wwToDOMAdaptor).htmlAttrs;\n return [typeName, htmlAttrs, 0];\n },\n };\n },\n};\nfunction createHTMLSchemaMap(convertorMap, sanitizeHTML, wwToDOMAdaptor) {\n var htmlSchemaMap = { nodes: {}, marks: {} };\n ['htmlBlock', 'htmlInline'].forEach(function (htmlType) {\n if (convertorMap[htmlType]) {\n Object.keys(convertorMap[htmlType]).forEach(function (type) {\n var targetType = htmlType === 'htmlBlock' ? 'nodes' : 'marks';\n // register tag white list for preventing to remove the html in sanitizer\n registerTagWhitelistIfPossible(type);\n htmlSchemaMap[targetType][type] = schemaFactory[htmlType](type, sanitizeHTML, wwToDOMAdaptor);\n });\n }\n });\n return htmlSchemaMap;\n}\n\n;// CONCATENATED MODULE: ./src/markdown/htmlRenderConvertors.ts\n\n\n\n\n\n\nvar reCloseTag = /^\\s*<\\s*\\//;\nvar htmlRenderConvertors_baseConvertors = {\n paragraph: function (_, _a) {\n var entering = _a.entering, origin = _a.origin, options = _a.options;\n if (options.nodeId) {\n return {\n type: entering ? 'openTag' : 'closeTag',\n outerNewLine: true,\n tagName: 'p',\n };\n }\n return origin();\n },\n softbreak: function (node) {\n var isPrevNodeHTML = node.prev && node.prev.type === 'htmlInline';\n var isPrevBR = isPrevNodeHTML && /<br ?\\/?>/.test(node.prev.literal);\n var content = isPrevBR ? '\\n' : '<br>\\n';\n return { type: 'html', content: content };\n },\n item: function (node, _a) {\n var entering = _a.entering;\n if (entering) {\n var attributes = {};\n var classNames = [];\n if (node.listData.task) {\n attributes['data-task'] = '';\n classNames.push('task-list-item');\n if (node.listData.checked) {\n classNames.push('checked');\n attributes['data-task-checked'] = '';\n }\n }\n return {\n type: 'openTag',\n tagName: 'li',\n classNames: classNames,\n attributes: attributes,\n outerNewLine: true,\n };\n }\n return {\n type: 'closeTag',\n tagName: 'li',\n outerNewLine: true,\n };\n },\n code: function (node) {\n var attributes = { 'data-backticks': String(node.tickCount) };\n return [\n { type: 'openTag', tagName: 'code', attributes: attributes },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'code' },\n ];\n },\n codeBlock: function (node) {\n var _a = node, fenceLength = _a.fenceLength, info = _a.info;\n var infoWords = info ? info.split(/\\s+/) : [];\n var preClasses = [];\n var codeAttrs = {};\n if (fenceLength > 3) {\n codeAttrs['data-backticks'] = fenceLength;\n }\n if (infoWords.length > 0 && infoWords[0].length > 0) {\n var lang = infoWords[0];\n preClasses.push(\"lang-\" + lang);\n codeAttrs['data-language'] = lang;\n }\n return [\n { type: 'openTag', tagName: 'pre', classNames: preClasses },\n { type: 'openTag', tagName: 'code', attributes: codeAttrs },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'code' },\n { type: 'closeTag', tagName: 'pre' },\n ];\n },\n customInline: function (node, _a) {\n var origin = _a.origin, entering = _a.entering, skipChildren = _a.skipChildren;\n var info = node.info;\n if (info.indexOf('widget') !== -1 && entering) {\n skipChildren();\n var content = getWidgetContent(node);\n var htmlInline = widgetToDOM(info, content).outerHTML;\n return [\n { type: 'openTag', tagName: 'span', classNames: ['tui-widget'] },\n { type: 'html', content: htmlInline },\n { type: 'closeTag', tagName: 'span' },\n ];\n }\n return origin();\n },\n};\nfunction getHTMLRenderConvertors(linkAttributes, customConvertors) {\n var convertors = tslib_es6_assign({}, htmlRenderConvertors_baseConvertors);\n if (linkAttributes) {\n convertors.link = function (_, _a) {\n var entering = _a.entering, origin = _a.origin;\n var result = origin();\n if (entering) {\n result.attributes = tslib_es6_assign(tslib_es6_assign({}, result.attributes), linkAttributes);\n }\n return result;\n };\n }\n if (customConvertors) {\n Object.keys(customConvertors).forEach(function (nodeType) {\n var orgConvertor = convertors[nodeType];\n var customConvertor = customConvertors[nodeType];\n if (orgConvertor && isFunction_default()(customConvertor)) {\n convertors[nodeType] = function (node, context) {\n var newContext = tslib_es6_assign({}, context);\n newContext.origin = function () { return orgConvertor(node, context); };\n return customConvertor(node, newContext);\n };\n }\n else if (common_includes(['htmlBlock', 'htmlInline'], nodeType) && !isFunction_default()(customConvertor)) {\n convertors[nodeType] = function (node, context) {\n var matched = node.literal.match(reHTMLTag);\n if (matched) {\n var rootHTML = matched[0], openTagName = matched[1], closeTagName = matched[3];\n var typeName = (openTagName || closeTagName).toLowerCase();\n var htmlConvertor = customConvertor[typeName];\n var childrenHTML = getChildrenHTML(node, typeName);\n if (htmlConvertor) {\n // copy for preventing to overwrite the originial property\n var newNode = tslib_es6_assign({}, node);\n newNode.attrs = getHTMLAttrsByHTMLString(rootHTML);\n newNode.childrenHTML = childrenHTML;\n newNode.type = typeName;\n context.entering = !reCloseTag.test(node.literal);\n return htmlConvertor(newNode, context);\n }\n }\n return context.origin();\n };\n }\n else {\n convertors[nodeType] = customConvertor;\n }\n });\n }\n return convertors;\n}\n\n;// CONCATENATED MODULE: ./src/markdown/scroll/dom.ts\n\n\nvar nestableTypes = (/* unused pure expression or super */ null && (false));\nvar nestableTagNames = ['UL', 'OL', 'BLOCKQUOTE'];\nfunction isBlankLine(doc, index) {\n var _a;\n var pmNode = doc.child(index);\n return !pmNode.childCount || (pmNode.childCount === 1 && !((_a = pmNode.firstChild.text) === null || _a === void 0 ? void 0 : _a.trim()));\n}\nfunction getEditorRangeHeightInfo(doc, mdNode, children) {\n var start = getMdStartLine(mdNode) - 1;\n var end = getMdEndLine(mdNode) - 1;\n var rect = children[start].getBoundingClientRect();\n var height = children[end].offsetTop -\n children[start].offsetTop +\n children[end].clientHeight;\n return {\n height: height <= 0\n ? children[start].clientHeight\n : height + getBlankLinesHeight(doc, children, Math.min(end + 1, doc.childCount - 1)),\n rect: rect,\n };\n}\nfunction getBlankLinesHeight(doc, children, start) {\n var end = doc.childCount - 1;\n var height = 0;\n while (start <= end && isBlankLine(doc, start)) {\n height += children[start].clientHeight;\n start += 1;\n }\n return height;\n}\nfunction findAncestorHavingId(el, root) {\n while (!el.getAttribute('data-nodeid') && el.parentElement !== root) {\n el = el.parentElement;\n }\n return el;\n}\nfunction dom_getTotalOffsetTop(el, root) {\n var offsetTop = 0;\n while (el && el !== root) {\n if (!common_includes(nestableTagNames, el.tagName)) {\n offsetTop += el.offsetTop;\n }\n if (el.offsetParent === root.offsetParent) {\n break;\n }\n el = el.parentElement;\n }\n return offsetTop;\n}\nfunction findAdjacentElementToScrollTop(scrollTop, root) {\n var el = root;\n var prev = null;\n while (el) {\n var firstElementChild = el.firstElementChild;\n if (!firstElementChild) {\n break;\n }\n var lastSibling = findLastSiblingElementToScrollTop(firstElementChild, scrollTop, dom_getTotalOffsetTop(el, root));\n prev = el;\n el = lastSibling;\n }\n var adjacentEl = el || prev;\n return adjacentEl === root ? null : adjacentEl;\n}\nfunction findLastSiblingElementToScrollTop(el, scrollTop, offsetTop) {\n if (el && scrollTop > offsetTop + el.offsetTop) {\n return (findLastSiblingElementToScrollTop(el.nextElementSibling, scrollTop, offsetTop) || el);\n }\n return null;\n}\nfunction getAdditionalPos(scrollTop, offsetTop, height, targetNodeHeight) {\n var ratio = Math.min((scrollTop - offsetTop) / height, 1);\n return ratio * targetNodeHeight;\n}\nfunction getParentNodeObj(previewContent, mdNode) {\n var el = previewContent.querySelector(\"[data-nodeid=\\\"\" + mdNode.id + \"\\\"]\");\n while (!el || isStyledInlineNode(mdNode)) {\n mdNode = mdNode.parent;\n el = previewContent.querySelector(\"[data-nodeid=\\\"\" + mdNode.id + \"\\\"]\");\n }\n return getNonNestableNodeObj({ mdNode: mdNode, el: el });\n}\nfunction getNonNestableNodeObj(_a) {\n var mdNode = _a.mdNode, el = _a.el;\n while ((includes(nestableTypes, mdNode.type) || mdNode.type === 'table') && mdNode.firstChild) {\n mdNode = mdNode.firstChild;\n el = el.firstElementChild;\n }\n return { mdNode: mdNode, el: el };\n}\n\n;// CONCATENATED MODULE: ./src/markdown/scroll/offset.ts\n\n\nvar offsetInfoMap = {};\nfunction setHeight(id, height) {\n offsetInfoMap[id] = offsetInfoMap[id] || {};\n offsetInfoMap[id].height = height;\n}\nfunction setOffsetTop(id, offsetTop) {\n offsetInfoMap[id] = offsetInfoMap[id] || {};\n offsetInfoMap[id].offsetTop = offsetTop;\n}\nfunction getHeight(id) {\n return offsetInfoMap[id] && offsetInfoMap[id].height;\n}\nfunction getOffsetTop(id) {\n return offsetInfoMap[id] && offsetInfoMap[id].offsetTop;\n}\nfunction removeOffsetInfoByNode(node) {\n if (node) {\n delete offsetInfoMap[Number(node.getAttribute('data-nodeid'))];\n toArray_default()(node.children).forEach(function (child) {\n removeOffsetInfoByNode(child);\n });\n }\n}\nfunction getAndSaveOffsetInfo(node, root, mdNodeId) {\n var cachedHeight = getHeight(mdNodeId);\n var cachedTop = getOffsetTop(mdNodeId);\n var nodeHeight = cachedHeight || node.clientHeight;\n var offsetTop = cachedTop || getTotalOffsetTop(node, root) || node.offsetTop;\n if (!cachedHeight) {\n setHeight(mdNodeId, nodeHeight);\n }\n if (!cachedTop) {\n setOffsetTop(mdNodeId, offsetTop);\n }\n return { nodeHeight: nodeHeight, offsetTop: offsetTop };\n}\n\n;// CONCATENATED MODULE: ./src/markdown/mdPreview.ts\n\n\n\n\n\n\n\n\n\n\n\nvar CLASS_HIGHLIGHT = cls('md-preview-highlight');\nfunction findTableCell(tableRow, chOffset) {\n var cell = tableRow.firstChild;\n while (cell && cell.next) {\n if (getMdStartCh(cell.next) > chOffset + 1) {\n break;\n }\n cell = cell.next;\n }\n return cell;\n}\n/**\n * Class Markdown Preview\n * @param {HTMLElement} el - base element\n * @param {eventEmitter} eventEmitter - event manager\n * @param {object} options\n * @param {boolean} options.isViewer - true for view-only mode\n * @param {boolean} options.highlight - true for using live-highlight feature\n * @param {object} opitons.linkAttributes - attributes for link element\n * @param {object} opitons.customHTMLRenderer - map of custom HTML render functions\n *\n * @ignore\n */\nvar MarkdownPreview = /** @class */ (function () {\n function MarkdownPreview(eventEmitter, options) {\n var el = document.createElement('div');\n this.el = el;\n this.eventEmitter = eventEmitter;\n this.isViewer = !!options.isViewer;\n this.el.className = cls('md-preview');\n var linkAttributes = options.linkAttributes, customHTMLRenderer = options.customHTMLRenderer, sanitizer = options.sanitizer, _a = options.highlight, highlight = _a === void 0 ? false : _a;\n this.renderer = new Renderer({\n gfm: true,\n nodeId: true,\n convertors: getHTMLRenderConvertors(linkAttributes, customHTMLRenderer),\n });\n this.cursorNodeId = null;\n this.sanitizer = sanitizer;\n this.initEvent(highlight);\n this.initContentSection();\n // To prevent overflowing contents in the viewer\n if (this.isViewer) {\n this.previewContent.style.overflowWrap = 'break-word';\n }\n }\n MarkdownPreview.prototype.initContentSection = function () {\n this.previewContent = createElementWith(\"<div class=\\\"\" + cls('contents') + \"\\\"></div>\");\n if (!this.isViewer) {\n this.el.appendChild(this.previewContent);\n }\n };\n MarkdownPreview.prototype.toggleActive = function (active) {\n toggleClass(this.el, 'active', active);\n };\n MarkdownPreview.prototype.initEvent = function (highlight) {\n var _this = this;\n this.eventEmitter.listen('updatePreview', this.update.bind(this));\n if (this.isViewer) {\n return;\n }\n if (highlight) {\n this.eventEmitter.listen('changeToolbarState', function (_a) {\n var mdNode = _a.mdNode, cursorPos = _a.cursorPos;\n _this.updateCursorNode(mdNode, cursorPos);\n });\n this.eventEmitter.listen('blur', function () {\n _this.removeHighlight();\n });\n }\n on_default()(this.el, 'scroll', function (event) {\n _this.eventEmitter.emit('scroll', 'preview', findAdjacentElementToScrollTop(event.target.scrollTop, _this.previewContent));\n });\n this.eventEmitter.listen('changePreviewTabPreview', function () { return _this.toggleActive(true); });\n this.eventEmitter.listen('changePreviewTabWrite', function () { return _this.toggleActive(false); });\n };\n MarkdownPreview.prototype.removeHighlight = function () {\n if (this.cursorNodeId) {\n var currentEl = this.getElementByNodeId(this.cursorNodeId);\n if (currentEl) {\n removeClass_default()(currentEl, CLASS_HIGHLIGHT);\n }\n }\n };\n MarkdownPreview.prototype.updateCursorNode = function (cursorNode, cursorPos) {\n if (cursorNode) {\n cursorNode = findClosestNode(cursorNode, function (mdNode) { return !isInlineNode(mdNode); });\n if (cursorNode.type === 'tableRow') {\n cursorNode = findTableCell(cursorNode, cursorPos[1]);\n }\n else if (cursorNode.type === 'tableBody') {\n // empty line next to table\n cursorNode = null;\n }\n }\n var cursorNodeId = cursorNode ? cursorNode.id : null;\n if (this.cursorNodeId === cursorNodeId) {\n return;\n }\n var oldEL = this.getElementByNodeId(this.cursorNodeId);\n var newEL = this.getElementByNodeId(cursorNodeId);\n if (oldEL) {\n removeClass_default()(oldEL, CLASS_HIGHLIGHT);\n }\n if (newEL) {\n addClass_default()(newEL, CLASS_HIGHLIGHT);\n }\n this.cursorNodeId = cursorNodeId;\n };\n MarkdownPreview.prototype.getElementByNodeId = function (nodeId) {\n return nodeId\n ? this.previewContent.querySelector(\"[data-nodeid=\\\"\" + nodeId + \"\\\"]\")\n : null;\n };\n MarkdownPreview.prototype.update = function (changed) {\n var _this = this;\n changed.forEach(function (editResult) { return _this.replaceRangeNodes(editResult); });\n this.eventEmitter.emit('afterPreviewRender', this);\n };\n MarkdownPreview.prototype.replaceRangeNodes = function (editResult) {\n var _this = this;\n var nodes = editResult.nodes, removedNodeRange = editResult.removedNodeRange;\n var contentEl = this.previewContent;\n var newHtml = this.eventEmitter.emitReduce('beforePreviewRender', this.sanitizer(nodes.map(function (node) { return _this.renderer.render(node); }).join('')));\n if (!removedNodeRange) {\n contentEl.insertAdjacentHTML('afterbegin', newHtml);\n }\n else {\n var _a = removedNodeRange.id, startNodeId = _a[0], endNodeId = _a[1];\n var startEl = this.getElementByNodeId(startNodeId);\n var endEl = this.getElementByNodeId(endNodeId);\n if (startEl) {\n startEl.insertAdjacentHTML('beforebegin', newHtml);\n var el = startEl;\n while (el && el !== endEl) {\n var nextEl = el.nextElementSibling;\n removeNode(el);\n removeOffsetInfoByNode(el);\n el = nextEl;\n }\n if (el === null || el === void 0 ? void 0 : el.parentNode) {\n removeNode(el);\n removeOffsetInfoByNode(el);\n }\n }\n }\n };\n MarkdownPreview.prototype.getRenderer = function () {\n return this.renderer;\n };\n MarkdownPreview.prototype.destroy = function () {\n off_default()(this.el, 'scroll');\n this.el = null;\n };\n MarkdownPreview.prototype.getElement = function () {\n return this.el;\n };\n MarkdownPreview.prototype.getHTML = function () {\n return removeProseMirrorHackNodes(this.previewContent.innerHTML);\n };\n MarkdownPreview.prototype.setHTML = function (html) {\n this.previewContent.innerHTML = html;\n };\n MarkdownPreview.prototype.setHeight = function (height) {\n css_default()(this.el, { height: height + \"px\" });\n };\n MarkdownPreview.prototype.setMinHeight = function (minHeight) {\n css_default()(this.el, { minHeight: minHeight + \"px\" });\n };\n return MarkdownPreview;\n}());\n/* harmony default export */ var mdPreview = (MarkdownPreview);\n\n// EXTERNAL MODULE: external {\"commonjs\":\"prosemirror-state\",\"commonjs2\":\"prosemirror-state\",\"amd\":\"prosemirror-state\"}\nvar external_commonjs_prosemirror_state_commonjs2_prosemirror_state_amd_prosemirror_state_ = __webpack_require__(814);\n// EXTERNAL MODULE: external {\"commonjs\":\"prosemirror-inputrules\",\"commonjs2\":\"prosemirror-inputrules\",\"amd\":\"prosemirror-inputrules\"}\nvar external_commonjs_prosemirror_inputrules_commonjs2_prosemirror_inputrules_amd_prosemirror_inputrules_ = __webpack_require__(479);\n// EXTERNAL MODULE: external {\"commonjs\":\"prosemirror-view\",\"commonjs2\":\"prosemirror-view\",\"amd\":\"prosemirror-view\"}\nvar external_commonjs_prosemirror_view_commonjs2_prosemirror_view_amd_prosemirror_view_ = __webpack_require__(311);\n// EXTERNAL MODULE: external {\"commonjs\":\"prosemirror-keymap\",\"commonjs2\":\"prosemirror-keymap\",\"amd\":\"prosemirror-keymap\"}\nvar external_commonjs_prosemirror_keymap_commonjs2_prosemirror_keymap_amd_prosemirror_keymap_ = __webpack_require__(481);\n// EXTERNAL MODULE: external {\"commonjs\":\"prosemirror-model\",\"commonjs2\":\"prosemirror-model\",\"amd\":\"prosemirror-model\"}\nvar external_commonjs_prosemirror_model_commonjs2_prosemirror_model_amd_prosemirror_model_ = __webpack_require__(43);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/array/inArray.js\nvar inArray = __webpack_require__(928);\nvar inArray_default = /*#__PURE__*/__webpack_require__.n(inArray);\n;// CONCATENATED MODULE: ./src/utils/map.ts\n\n/**\n * @class\n * @ignore\n * @classdesc ES6 Map\n */\nvar map_Map = /** @class */ (function () {\n function Map() {\n this.keys = [];\n this.values = [];\n }\n Map.prototype.getKeyIndex = function (key) {\n return inArray_default()(key, this.keys);\n };\n Map.prototype.get = function (key) {\n return this.values[this.getKeyIndex(key)];\n };\n Map.prototype.set = function (key, value) {\n var keyIndex = this.getKeyIndex(key);\n if (keyIndex > -1) {\n this.values[keyIndex] = value;\n }\n else {\n this.keys.push(key);\n this.values.push(value);\n }\n return this;\n };\n Map.prototype.has = function (key) {\n return this.getKeyIndex(key) > -1;\n };\n Map.prototype.delete = function (key) {\n var keyIndex = this.getKeyIndex(key);\n if (keyIndex > -1) {\n this.keys.splice(keyIndex, 1);\n this.values.splice(keyIndex, 1);\n return true;\n }\n return false;\n };\n Map.prototype.forEach = function (callback, thisArg) {\n var _this = this;\n if (thisArg === void 0) { thisArg = this; }\n this.values.forEach(function (value, index) {\n if (value && _this.keys[index]) {\n callback.call(thisArg, value, _this.keys[index], _this);\n }\n });\n };\n Map.prototype.clear = function () {\n this.keys = [];\n this.values = [];\n };\n return Map;\n}());\n/* harmony default export */ var utils_map = (map_Map);\n\n;// CONCATENATED MODULE: ./src/i18n/i18n.ts\n/**\n * @fileoverview Implements i18n\n * @author NHN Cloud FE Development Lab <dl_javascript@nhn.com>\n */\n\n\nvar DEFAULT_CODE = 'en-US';\n/**\n * Class I18n\n * @ignore\n */\nvar I18n = /** @class */ (function () {\n function I18n() {\n this.code = DEFAULT_CODE;\n this.langs = new utils_map();\n }\n I18n.prototype.setCode = function (code) {\n this.code = code || DEFAULT_CODE;\n };\n /**\n * Set language set\n * @param {string|string[]} codes locale code\n * @param {object} data language set\n */\n I18n.prototype.setLanguage = function (codes, data) {\n var _this = this;\n codes = [].concat(codes);\n codes.forEach(function (code) {\n if (!_this.langs.has(code)) {\n _this.langs.set(code, data);\n }\n else {\n var langData = _this.langs.get(code);\n _this.langs.set(code, extend_default()(langData, data));\n }\n });\n };\n I18n.prototype.get = function (key, code) {\n if (!code) {\n code = this.code;\n }\n var langSet = this.langs.get(code);\n if (!langSet) {\n langSet = this.langs.get(DEFAULT_CODE);\n }\n var text = langSet[key];\n if (!text) {\n throw new Error(\"There is no text key \\\"\" + key + \"\\\" in \" + code);\n }\n return text;\n };\n return I18n;\n}());\n\n/* harmony default export */ var i18n = (new I18n());\n\n;// CONCATENATED MODULE: ./src/wysiwyg/helper/node.ts\n\n\nfunction findNodeBy(pos, condition) {\n var depth = pos.depth;\n while (depth) {\n var node = pos.node(depth);\n if (condition(node, depth)) {\n return {\n node: node,\n depth: depth,\n offset: depth > 0 ? pos.before(depth) : 0,\n };\n }\n depth -= 1;\n }\n return null;\n}\nfunction node_isListNode(_a) {\n var type = _a.type;\n return type.name === 'bulletList' || type.name === 'orderedList';\n}\nfunction isInListNode(pos) {\n return !!findNodeBy(pos, function (_a) {\n var type = _a.type;\n return type.name === 'listItem' || type.name === 'bulletList' || type.name === 'orderedList';\n });\n}\nfunction isInTableNode(pos) {\n return !!findNodeBy(pos, function (_a) {\n var type = _a.type;\n return type.name === 'tableHeadCell' || type.name === 'tableBodyCell';\n });\n}\nfunction findListItem(pos) {\n return findNodeBy(pos, function (_a) {\n var type = _a.type;\n return type.name === 'listItem';\n });\n}\nfunction createDOMInfoParsedRawHTML(tag) {\n return {\n tag: tag,\n getAttrs: function (dom) {\n var rawHTML = dom.getAttribute('data-raw-html');\n return __assign({}, (rawHTML && { rawHTML: rawHTML }));\n },\n };\n}\nfunction createCellAttrs(attrs) {\n return Object.keys(attrs).reduce(function (acc, attrName) {\n if (attrName !== 'rawHTML' && attrs[attrName]) {\n attrName = attrName === 'className' ? 'class' : attrName;\n acc[attrName] = attrs[attrName];\n }\n return acc;\n }, {});\n}\nfunction createParsedCellDOM(tag) {\n return {\n tag: tag,\n getAttrs: function (dom) {\n return ['rawHTML', 'colspan', 'rowspan', 'extended'].reduce(function (acc, attrName) {\n var attrNameInDOM = attrName === 'rawHTML' ? 'data-raw-html' : attrName;\n var attrValue = dom.getAttribute(attrNameInDOM);\n if (attrValue) {\n acc[attrName] = includes(['rawHTML', 'extended'], attrName)\n ? attrValue\n : Number(attrValue);\n }\n return acc;\n }, {});\n },\n };\n}\nfunction getDefaultCustomAttrs() {\n return {\n htmlAttrs: { default: null },\n classNames: { default: null },\n };\n}\nfunction getCustomAttrs(attrs) {\n var htmlAttrs = attrs.htmlAttrs, classNames = attrs.classNames;\n return __assign(__assign({}, htmlAttrs), { class: classNames ? classNames.join(' ') : null });\n}\n\n;// CONCATENATED MODULE: ./src/wysiwyg/helper/tableOffsetMap.ts\n\n\nvar cache = new Map();\n/* eslint-disable @typescript-eslint/no-unused-vars */\nvar TableOffsetMap = /** @class */ (function () {\n function TableOffsetMap(table, tableRows, tableStartPos, rowInfo) {\n this.table = table;\n this.tableRows = tableRows;\n this.tableStartPos = tableStartPos;\n this.rowInfo = rowInfo;\n }\n TableOffsetMap.create = function (cellPos) {\n var table = findNodeBy(cellPos, function (_a) {\n var type = _a.type;\n return type.name === 'table';\n });\n if (table) {\n var node = table.node, depth = table.depth, offset = table.offset;\n var cached = cache.get(node);\n if ((cached === null || cached === void 0 ? void 0 : cached.tableStartPos) === offset + 1) {\n return cached;\n }\n var rows_1 = [];\n var tablePos = cellPos.start(depth);\n var thead = node.child(0);\n var tbody = node.child(1);\n var theadCellInfo = createOffsetMap(thead, tablePos);\n var tbodyCellInfo = createOffsetMap(tbody, tablePos + thead.nodeSize);\n thead.forEach(function (row) { return rows_1.push(row); });\n tbody.forEach(function (row) { return rows_1.push(row); });\n var map = new TableOffsetMap(node, rows_1, tablePos, theadCellInfo.concat(tbodyCellInfo));\n cache.set(node, map);\n return map;\n }\n return null;\n };\n Object.defineProperty(TableOffsetMap.prototype, \"totalRowCount\", {\n get: function () {\n return this.rowInfo.length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TableOffsetMap.prototype, \"totalColumnCount\", {\n get: function () {\n return this.rowInfo[0].length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TableOffsetMap.prototype, \"tableStartOffset\", {\n get: function () {\n return this.tableStartPos;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TableOffsetMap.prototype, \"tableEndOffset\", {\n get: function () {\n return this.tableStartPos + this.table.nodeSize - 1;\n },\n enumerable: false,\n configurable: true\n });\n TableOffsetMap.prototype.getCellInfo = function (rowIdx, colIdx) {\n return this.rowInfo[rowIdx][colIdx];\n };\n TableOffsetMap.prototype.posAt = function (rowIdx, colIdx) {\n for (var i = 0, rowStart = this.tableStartPos;; i += 1) {\n var rowEnd = rowStart + this.tableRows[i].nodeSize;\n if (i === rowIdx) {\n var index = colIdx;\n // Skip the cells from previous row(via rowspan)\n while (index < this.totalColumnCount && this.rowInfo[i][index].offset < rowStart) {\n index += 1;\n }\n return index === this.totalColumnCount ? rowEnd : this.rowInfo[i][index].offset;\n }\n rowStart = rowEnd;\n }\n };\n TableOffsetMap.prototype.getNodeAndPos = function (rowIdx, colIdx) {\n var cellInfo = this.rowInfo[rowIdx][colIdx];\n return {\n node: this.table.nodeAt(cellInfo.offset - this.tableStartOffset),\n pos: cellInfo.offset,\n };\n };\n TableOffsetMap.prototype.extendedRowspan = function (rowIdx, colIdx) {\n return false;\n };\n TableOffsetMap.prototype.extendedColspan = function (rowIdx, colIdx) {\n return false;\n };\n TableOffsetMap.prototype.getRowspanCount = function (rowIdx, colIdx) {\n return 0;\n };\n TableOffsetMap.prototype.getColspanCount = function (rowIdx, colIdx) {\n return 0;\n };\n TableOffsetMap.prototype.decreaseColspanCount = function (rowIdx, colIdx) {\n return 0;\n };\n TableOffsetMap.prototype.decreaseRowspanCount = function (rowIdx, colIdx) {\n return 0;\n };\n TableOffsetMap.prototype.getColspanStartInfo = function (rowIdx, colIdx) {\n return null;\n };\n TableOffsetMap.prototype.getRowspanStartInfo = function (rowIdx, colIdx) {\n return null;\n };\n TableOffsetMap.prototype.getCellStartOffset = function (rowIdx, colIdx) {\n var offset = this.rowInfo[rowIdx][colIdx].offset;\n return this.extendedRowspan(rowIdx, colIdx) ? this.posAt(rowIdx, colIdx) : offset;\n };\n TableOffsetMap.prototype.getCellEndOffset = function (rowIdx, colIdx) {\n var _a = this.rowInfo[rowIdx][colIdx], offset = _a.offset, nodeSize = _a.nodeSize;\n return this.extendedRowspan(rowIdx, colIdx) ? this.posAt(rowIdx, colIdx) : offset + nodeSize;\n };\n TableOffsetMap.prototype.getCellIndex = function (cellPos) {\n for (var rowIdx = 0; rowIdx < this.totalRowCount; rowIdx += 1) {\n var rowInfo = this.rowInfo[rowIdx];\n for (var colIdx = 0; colIdx < this.totalColumnCount; colIdx += 1) {\n if (rowInfo[colIdx].offset + 1 > cellPos.pos) {\n return [rowIdx, colIdx];\n }\n }\n }\n return [0, 0];\n };\n TableOffsetMap.prototype.getRectOffsets = function (startCellPos, endCellPos) {\n var _a, _b, _c;\n if (endCellPos === void 0) { endCellPos = startCellPos; }\n if (startCellPos.pos > endCellPos.pos) {\n _a = [endCellPos, startCellPos], startCellPos = _a[0], endCellPos = _a[1];\n }\n var _d = this.getCellIndex(startCellPos), startRowIdx = _d[0], startColIdx = _d[1];\n var _e = this.getCellIndex(endCellPos), endRowIdx = _e[0], endColIdx = _e[1];\n _b = getSortedNumPair(startRowIdx, endRowIdx), startRowIdx = _b[0], endRowIdx = _b[1];\n _c = getSortedNumPair(startColIdx, endColIdx), startColIdx = _c[0], endColIdx = _c[1];\n return this.getSpannedOffsets({ startRowIdx: startRowIdx, startColIdx: startColIdx, endRowIdx: endRowIdx, endColIdx: endColIdx });\n };\n TableOffsetMap.prototype.getSpannedOffsets = function (selectionInfo) {\n return selectionInfo;\n };\n return TableOffsetMap;\n}());\n\n/* eslint-enable @typescript-eslint/no-unused-vars */\nvar createOffsetMap = function (headOrBody, startOffset) {\n var cellInfoMatrix = [];\n headOrBody.forEach(function (row, rowOffset) {\n // get row index based on table(not table head or table body)\n var rowInfo = { rowspanMap: {}, colspanMap: {}, length: 0 };\n row.forEach(function (_a, cellOffset) {\n var nodeSize = _a.nodeSize;\n var colIdx = 0;\n while (rowInfo[colIdx]) {\n colIdx += 1;\n }\n rowInfo[colIdx] = {\n // 2 is the sum of the front and back positions of the tag\n offset: startOffset + rowOffset + cellOffset + 2,\n nodeSize: nodeSize,\n };\n rowInfo.length += 1;\n });\n cellInfoMatrix.push(rowInfo);\n });\n return cellInfoMatrix;\n};\nfunction mixinTableOffsetMapPrototype(offsetMapMixin, createOffsetMapMixin) {\n common_assign(TableOffsetMap.prototype, offsetMapMixin);\n createOffsetMap = createOffsetMapMixin;\n return TableOffsetMap;\n}\n\n;// CONCATENATED MODULE: ./src/helper/plugin.ts\n\n\n\n\n\n\n\n\n\n\nfunction execPlugin(pluginInfo) {\n var plugin = pluginInfo.plugin, eventEmitter = pluginInfo.eventEmitter, usageStatistics = pluginInfo.usageStatistics, instance = pluginInfo.instance;\n var pmState = { Plugin: external_commonjs_prosemirror_state_commonjs2_prosemirror_state_amd_prosemirror_state_.Plugin, PluginKey: external_commonjs_prosemirror_state_commonjs2_prosemirror_state_amd_prosemirror_state_.PluginKey, Selection: external_commonjs_prosemirror_state_commonjs2_prosemirror_state_amd_prosemirror_state_.Selection, TextSelection: external_commonjs_prosemirror_state_commonjs2_prosemirror_state_amd_prosemirror_state_.TextSelection };\n var pmView = { Decoration: external_commonjs_prosemirror_view_commonjs2_prosemirror_view_amd_prosemirror_view_.Decoration, DecorationSet: external_commonjs_prosemirror_view_commonjs2_prosemirror_view_amd_prosemirror_view_.DecorationSet };\n var pmModel = { Fragment: external_commonjs_prosemirror_model_commonjs2_prosemirror_model_amd_prosemirror_model_.Fragment };\n var pmRules = { InputRule: external_commonjs_prosemirror_inputrules_commonjs2_prosemirror_inputrules_amd_prosemirror_inputrules_.InputRule, inputRules: external_commonjs_prosemirror_inputrules_commonjs2_prosemirror_inputrules_amd_prosemirror_inputrules_.inputRules, undoInputRule: external_commonjs_prosemirror_inputrules_commonjs2_prosemirror_inputrules_amd_prosemirror_inputrules_.undoInputRule };\n var pmKeymap = { keymap: external_commonjs_prosemirror_keymap_commonjs2_prosemirror_keymap_amd_prosemirror_keymap_.keymap };\n var context = {\n eventEmitter: eventEmitter,\n usageStatistics: usageStatistics,\n instance: instance,\n pmState: pmState,\n pmView: pmView,\n pmModel: pmModel,\n pmRules: pmRules,\n pmKeymap: pmKeymap,\n i18n: i18n,\n };\n if (isArray_default()(plugin)) {\n var pluginFn = plugin[0], _a = plugin[1], options = _a === void 0 ? {} : _a;\n return pluginFn(context, options);\n }\n return plugin(context);\n}\nfunction getPluginInfo(pluginsInfo) {\n var plugins = pluginsInfo.plugins, eventEmitter = pluginsInfo.eventEmitter, usageStatistics = pluginsInfo.usageStatistics, instance = pluginsInfo.instance;\n eventEmitter.listen('mixinTableOffsetMapPrototype', mixinTableOffsetMapPrototype);\n return (plugins !== null && plugins !== void 0 ? plugins : []).reduce(function (acc, plugin) {\n var pluginInfoResult = execPlugin({\n plugin: plugin,\n eventEmitter: eventEmitter,\n usageStatistics: usageStatistics,\n instance: instance,\n });\n if (!pluginInfoResult) {\n throw new Error('The return value of the executed plugin is empty.');\n }\n var markdownParsers = pluginInfoResult.markdownParsers, toHTMLRenderers = pluginInfoResult.toHTMLRenderers, toMarkdownRenderers = pluginInfoResult.toMarkdownRenderers, markdownPlugins = pluginInfoResult.markdownPlugins, wysiwygPlugins = pluginInfoResult.wysiwygPlugins, wysiwygNodeViews = pluginInfoResult.wysiwygNodeViews, markdownCommands = pluginInfoResult.markdownCommands, wysiwygCommands = pluginInfoResult.wysiwygCommands, toolbarItems = pluginInfoResult.toolbarItems;\n if (toHTMLRenderers) {\n acc.toHTMLRenderers = deepMergedCopy(acc.toHTMLRenderers, toHTMLRenderers);\n }\n if (toMarkdownRenderers) {\n acc.toMarkdownRenderers = deepMergedCopy(acc.toMarkdownRenderers, toMarkdownRenderers);\n }\n if (markdownPlugins) {\n acc.mdPlugins = acc.mdPlugins.concat(markdownPlugins);\n }\n if (wysiwygPlugins) {\n acc.wwPlugins = acc.wwPlugins.concat(wysiwygPlugins);\n }\n if (wysiwygNodeViews) {\n acc.wwNodeViews = tslib_es6_assign(tslib_es6_assign({}, acc.wwNodeViews), wysiwygNodeViews);\n }\n if (markdownCommands) {\n acc.mdCommands = tslib_es6_assign(tslib_es6_assign({}, acc.mdCommands), markdownCommands);\n }\n if (wysiwygCommands) {\n acc.wwCommands = tslib_es6_assign(tslib_es6_assign({}, acc.wwCommands), wysiwygCommands);\n }\n if (toolbarItems) {\n acc.toolbarItems = acc.toolbarItems.concat(toolbarItems);\n }\n if (markdownParsers) {\n acc.markdownParsers = tslib_es6_assign(tslib_es6_assign({}, acc.markdownParsers), markdownParsers);\n }\n return acc;\n }, {\n toHTMLRenderers: {},\n toMarkdownRenderers: {},\n mdPlugins: [],\n wwPlugins: [],\n wwNodeViews: {},\n mdCommands: {},\n wwCommands: {},\n toolbarItems: [],\n markdownParsers: {},\n });\n}\n\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/type/isFalsy.js\nvar isFalsy = __webpack_require__(404);\nvar isFalsy_default = /*#__PURE__*/__webpack_require__.n(isFalsy);\n;// CONCATENATED MODULE: ./src/event/eventEmitter.ts\n\n\n\n\nvar eventTypeList = [\n 'afterPreviewRender',\n 'updatePreview',\n 'changeMode',\n 'needChangeMode',\n 'command',\n 'changePreviewStyle',\n 'changePreviewTabPreview',\n 'changePreviewTabWrite',\n 'scroll',\n 'contextmenu',\n 'show',\n 'hide',\n 'changeLanguage',\n 'changeToolbarState',\n 'toggleScrollSync',\n 'mixinTableOffsetMapPrototype',\n 'setFocusedNode',\n 'removePopupWidget',\n 'query',\n // provide event for user\n 'openPopup',\n 'closePopup',\n 'addImageBlobHook',\n 'beforePreviewRender',\n 'beforeConvertWysiwygToMarkdown',\n 'load',\n 'loadUI',\n 'change',\n 'caretChange',\n 'destroy',\n 'focus',\n 'blur',\n 'keydown',\n 'keyup',\n];\n/**\n * Class EventEmitter\n * @ignore\n */\nvar EventEmitter = /** @class */ (function () {\n function EventEmitter() {\n var _this = this;\n this.events = new utils_map();\n this.eventTypes = eventTypeList.reduce(function (types, type) {\n return tslib_es6_assign(tslib_es6_assign({}, types), { type: type });\n }, {});\n this.hold = false;\n eventTypeList.forEach(function (eventType) {\n _this.addEventType(eventType);\n });\n }\n /**\n * Listen event and bind event handler\n * @param {string} type Event type string\n * @param {function} handler Event handler\n */\n EventEmitter.prototype.listen = function (type, handler) {\n var typeInfo = this.getTypeInfo(type);\n var eventHandlers = this.events.get(typeInfo.type) || [];\n if (!this.hasEventType(typeInfo.type)) {\n throw new Error(\"There is no event type \" + typeInfo.type);\n }\n if (typeInfo.namespace) {\n handler.namespace = typeInfo.namespace;\n }\n eventHandlers.push(handler);\n this.events.set(typeInfo.type, eventHandlers);\n };\n /**\n * Emit event\n * @param {string} eventName Event name to emit\n * @returns {Array}\n */\n EventEmitter.prototype.emit = function (type) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var typeInfo = this.getTypeInfo(type);\n var eventHandlers = this.events.get(typeInfo.type);\n var results = [];\n if (!this.hold && eventHandlers) {\n eventHandlers.forEach(function (handler) {\n var result = handler.apply(void 0, args);\n if (!isUndefined_default()(result)) {\n results.push(result);\n }\n });\n }\n return results;\n };\n /**\n * Emit given event and return result\n * @param {string} eventName Event name to emit\n * @param {any} source Source to change\n * @returns {string}\n */\n EventEmitter.prototype.emitReduce = function (type, source) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var eventHandlers = this.events.get(type);\n if (!this.hold && eventHandlers) {\n eventHandlers.forEach(function (handler) {\n var result = handler.apply(void 0, __spreadArray([source], args));\n if (!isFalsy_default()(result)) {\n source = result;\n }\n });\n }\n return source;\n };\n /**\n * Get event type and namespace\n * @param {string} type Event type name\n * @returns {{type: string, namespace: string}}\n * @private\n */\n EventEmitter.prototype.getTypeInfo = function (type) {\n var splited = type.split('.');\n return {\n type: splited[0],\n namespace: splited[1],\n };\n };\n /**\n * Check whether event type exists or not\n * @param {string} type Event type name\n * @returns {boolean}\n * @private\n */\n EventEmitter.prototype.hasEventType = function (type) {\n return !isUndefined_default()(this.eventTypes[this.getTypeInfo(type).type]);\n };\n /**\n * Add event type when given event not exists\n * @param {string} type Event type name\n */\n EventEmitter.prototype.addEventType = function (type) {\n if (this.hasEventType(type)) {\n throw new Error(\"There is already have event type \" + type);\n }\n this.eventTypes[type] = type;\n };\n /**\n * Remove event handler from given event type\n * @param {string} eventType Event type name\n * @param {function} [handler] - registered event handler\n */\n EventEmitter.prototype.removeEventHandler = function (eventType, handler) {\n var _this = this;\n var _a = this.getTypeInfo(eventType), type = _a.type, namespace = _a.namespace;\n if (type && handler) {\n this.removeEventHandlerWithHandler(type, handler);\n }\n else if (type && !namespace) {\n this.events.delete(type);\n }\n else if (!type && namespace) {\n this.events.forEach(function (_, evtType) {\n _this.removeEventHandlerWithTypeInfo(evtType, namespace);\n });\n }\n else if (type && namespace) {\n this.removeEventHandlerWithTypeInfo(type, namespace);\n }\n };\n /**\n * Remove event handler with event handler\n * @param {string} type - event type name\n * @param {function} handler - event handler\n * @private\n */\n EventEmitter.prototype.removeEventHandlerWithHandler = function (type, handler) {\n var eventHandlers = this.events.get(type);\n if (eventHandlers) {\n var handlerIndex = eventHandlers.indexOf(handler);\n if (eventHandlers.indexOf(handler) >= 0) {\n eventHandlers.splice(handlerIndex, 1);\n }\n }\n };\n /**\n * Remove event handler with event type information\n * @param {string} type Event type name\n * @param {string} namespace Event namespace\n * @private\n */\n EventEmitter.prototype.removeEventHandlerWithTypeInfo = function (type, namespace) {\n var handlersToSurvive = [];\n var eventHandlers = this.events.get(type);\n if (!eventHandlers) {\n return;\n }\n eventHandlers.map(function (handler) {\n if (handler.namespace !== namespace) {\n handlersToSurvive.push(handler);\n }\n return null;\n });\n this.events.set(type, handlersToSurvive);\n };\n EventEmitter.prototype.getEvents = function () {\n return this.events;\n };\n EventEmitter.prototype.holdEventInvoke = function (fn) {\n this.hold = true;\n fn();\n this.hold = false;\n };\n return EventEmitter;\n}());\n/* harmony default export */ var eventEmitter = (EventEmitter);\n\n;// CONCATENATED MODULE: ./src/viewer.ts\n\n\n\n\n\n\n\n\n\n\n\n\nvar TASK_ATTR_NAME = 'data-task';\nvar DISABLED_TASK_ATTR_NAME = 'data-task-disabled';\nvar TASK_CHECKED_CLASS_NAME = 'checked';\nfunction registerHTMLTagToWhitelist(convertorMap) {\n ['htmlBlock', 'htmlInline'].forEach(function (htmlType) {\n if (convertorMap[htmlType]) {\n // register tag white list for preventing to remove the html in sanitizer\n Object.keys(convertorMap[htmlType]).forEach(function (type) { return htmlSanitizer_registerTagWhitelistIfPossible(type); });\n }\n });\n}\n/**\n * Class ToastUIEditorViewer\n * @param {object} options Option object\n * @param {HTMLElement} options.el - container element\n * @param {string} [options.initialValue] Editor's initial value\n * @param {Object} [options.events] - Events\n * @param {function} [options.events.load] - It would be emitted when editor fully load\n * @param {function} [options.events.change] - It would be emitted when content changed\n * @param {function} [options.events.caretChange] - It would be emitted when format change by cursor position\n * @param {function} [options.events.focus] - It would be emitted when editor get focus\n * @param {function} [options.events.blur] - It would be emitted when editor loose focus\n * @param {Array.<function|Array>} [options.plugins] - Array of plugins. A plugin can be either a function or an array in the form of [function, options].\n * @param {Object} [options.extendedAutolinks] - Using extended Autolinks specified in GFM spec\n * @param {Object} [options.linkAttributes] - Attributes of anchor element that should be rel, target, hreflang, type\n * @param {Object} [options.customHTMLRenderer=null] - Object containing custom renderer functions correspond to change markdown node to preview HTML or wysiwyg node\n * @param {boolean} [options.referenceDefinition=false] - whether use the specification of link reference definition\n * @param {function} [options.customHTMLSanitizer=null] - custom HTML sanitizer\n * @param {boolean} [options.frontMatter=false] - whether use the front matter\n * @param {string} [options.theme] - The theme to style the viewer with. The default is included in toastui-editor.css.\n */\nvar ToastUIEditorViewer = /** @class */ (function () {\n function ToastUIEditorViewer(options) {\n var _this = this;\n this.options = extend_default()({\n linkAttributes: null,\n extendedAutolinks: false,\n customHTMLRenderer: null,\n referenceDefinition: false,\n customHTMLSanitizer: null,\n frontMatter: false,\n usageStatistics: true,\n theme: 'light',\n }, options);\n this.eventEmitter = new eventEmitter();\n var linkAttributes = sanitizeLinkAttribute(this.options.linkAttributes);\n var _a = getPluginInfo({\n plugins: this.options.plugins,\n eventEmitter: this.eventEmitter,\n usageStatistics: this.options.usageStatistics,\n instance: this,\n }) || {}, toHTMLRenderers = _a.toHTMLRenderers, markdownParsers = _a.markdownParsers;\n var _b = this.options, customHTMLRenderer = _b.customHTMLRenderer, extendedAutolinks = _b.extendedAutolinks, referenceDefinition = _b.referenceDefinition, frontMatter = _b.frontMatter, customHTMLSanitizer = _b.customHTMLSanitizer;\n var rendererOptions = {\n linkAttributes: linkAttributes,\n customHTMLRenderer: tslib_es6_assign(tslib_es6_assign({}, toHTMLRenderers), customHTMLRenderer),\n extendedAutolinks: extendedAutolinks,\n referenceDefinition: referenceDefinition,\n frontMatter: frontMatter,\n sanitizer: customHTMLSanitizer || sanitizeHTML,\n };\n registerHTMLTagToWhitelist(rendererOptions.customHTMLRenderer);\n if (this.options.events) {\n forEachOwnProperties_default()(this.options.events, function (fn, key) {\n _this.on(key, fn);\n });\n }\n var _c = this.options, el = _c.el, initialValue = _c.initialValue, theme = _c.theme;\n var existingHTML = el.innerHTML;\n if (theme !== 'light') {\n el.classList.add(cls(theme));\n }\n el.innerHTML = '';\n this.toastMark = new ToastMark('', {\n disallowedHtmlBlockTags: ['br', 'img'],\n extendedAutolinks: extendedAutolinks,\n referenceDefinition: referenceDefinition,\n disallowDeepHeading: true,\n frontMatter: frontMatter,\n customParser: markdownParsers,\n });\n this.preview = new mdPreview(this.eventEmitter, tslib_es6_assign(tslib_es6_assign({}, rendererOptions), { isViewer: true }));\n on_default()(this.preview.previewContent, 'mousedown', this.toggleTask.bind(this));\n if (initialValue) {\n this.setMarkdown(initialValue);\n }\n else if (existingHTML) {\n this.preview.setHTML(existingHTML);\n }\n el.appendChild(this.preview.previewContent);\n this.eventEmitter.emit('load', this);\n }\n /**\n * Toggle task by detecting mousedown event.\n * @param {MouseEvent} ev - event\n * @private\n */\n ToastUIEditorViewer.prototype.toggleTask = function (ev) {\n var element = ev.target;\n var style = getComputedStyle(element, ':before');\n if (!element.hasAttribute(DISABLED_TASK_ATTR_NAME) &&\n element.hasAttribute(TASK_ATTR_NAME) &&\n isPositionInBox(style, ev.offsetX, ev.offsetY)) {\n toggleClass(element, TASK_CHECKED_CLASS_NAME);\n this.eventEmitter.emit('change', {\n source: 'viewer',\n date: ev,\n });\n }\n };\n /**\n * Set content for preview\n * @param {string} markdown Markdown text\n */\n ToastUIEditorViewer.prototype.setMarkdown = function (markdown) {\n var lineTexts = this.toastMark.getLineTexts();\n var length = lineTexts.length;\n var lastLine = common_last(lineTexts);\n var endSourcepos = [length, lastLine.length + 1];\n var editResult = this.toastMark.editMarkdown([1, 1], endSourcepos, markdown || '');\n this.eventEmitter.emit('updatePreview', editResult);\n };\n /**\n * Bind eventHandler to event type\n * @param {string} type Event type\n * @param {function} handler Event handler\n */\n ToastUIEditorViewer.prototype.on = function (type, handler) {\n this.eventEmitter.listen(type, handler);\n };\n /**\n * Unbind eventHandler from event type\n * @param {string} type Event type\n */\n ToastUIEditorViewer.prototype.off = function (type) {\n this.eventEmitter.removeEventHandler(type);\n };\n /**\n * Add hook to TUIEditor event\n * @param {string} type Event type\n * @param {function} handler Event handler\n */\n ToastUIEditorViewer.prototype.addHook = function (type, handler) {\n this.eventEmitter.removeEventHandler(type);\n this.eventEmitter.listen(type, handler);\n };\n /**\n * Remove Viewer preview from document\n */\n ToastUIEditorViewer.prototype.destroy = function () {\n off_default()(this.preview.el, 'mousedown', this.toggleTask.bind(this));\n this.preview.destroy();\n this.eventEmitter.emit('destroy');\n };\n /**\n * Return true\n * @returns {boolean}\n */\n ToastUIEditorViewer.prototype.isViewer = function () {\n return true;\n };\n /**\n * Return false\n * @returns {boolean}\n */\n ToastUIEditorViewer.prototype.isMarkdownMode = function () {\n return false;\n };\n /**\n * Return false\n * @returns {boolean}\n */\n ToastUIEditorViewer.prototype.isWysiwygMode = function () {\n return false;\n };\n return ToastUIEditorViewer;\n}());\n/* harmony default export */ var viewer = (ToastUIEditorViewer);\n\n;// CONCATENATED MODULE: ./src/indexViewer.ts\n\n\n/* harmony default export */ var indexViewer = (viewer);\n\n}();\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n\n//# sourceURL=webpack:///./node_modules/@toast-ui/editor/dist/toastui-editor-viewer.js?");
/***/ }),
/***/ "./node_modules/@toast-ui/editor/dist/toastui-editor.css":
/*!***************************************************************!*\
!*** ./node_modules/@toast-ui/editor/dist/toastui-editor.css ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../css-loader/dist/cjs.js??ref--7-oneOf-3-1!../../../postcss-loader/src??ref--7-oneOf-3-2!./toastui-editor.css */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/@toast-ui/editor/dist/toastui-editor.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2eadb77a\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./node_modules/@toast-ui/editor/dist/toastui-editor.css?");
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=script&setup=true&lang=tsx":
/*!*****************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=script&setup=true&lang=tsx ***!
\*****************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var _Sidebar_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Sidebar.vue */ \"./src/pages/Edit/components/Sidebar.vue\");\n/* harmony import */ var _hooks_useComposition__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/hooks/useComposition */ \"./src/hooks/useComposition.tsx\");\n/* harmony import */ var _hooks_useKMindHistory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/hooks/useKMindHistory */ \"./src/hooks/useKMindHistory.tsx\");\n/* harmony import */ var simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! simple-mind-map/src/utils */ \"../simple-mind-map/src/utils/index.js\");\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"defineComponent\"])({\n __name: 'KMindHistory',\n props: {\n mindMap: {\n type: Object,\n required: true\n }\n },\n setup(__props) {\n const props = __props;\n const isDark = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => store.state.localConfig.isDark);\n const injectConfig = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => store.state.injectConfig);\n const store = Object(_hooks_useComposition__WEBPACK_IMPORTED_MODULE_2__[\"useStore\"])();\n const sidebar = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(null);\n const bus = Object(_hooks_useComposition__WEBPACK_IMPORTED_MODULE_2__[\"useBus\"])();\n bus.$on('data_change_detail', dataArr => {\n // console.log('dataArr:', dataArr)\n const {\n action,\n oldData,\n data\n } = dataArr[dataArr.length - 1];\n // console.log('action:', action)\n // console.log('oldData:', oldData)\n // console.log('data:', data)\n // 截断5个字\n const text = Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_4__[\"getTextFromHtml\"])(data.data.text).slice(0, 5);\n // console.log('text:', text)\n });\n Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"onBeforeUnmount\"])(() => {\n bus.$off('data_change_detail');\n });\n Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"watch\"])(() => store.state.activeSidebar, val => {\n if (val === 'kmindHistory') {\n sidebar.value.show = true;\n } else {\n sidebar.value.show = false;\n }\n });\n const {\n putHistoryFile\n } = Object(_hooks_useKMindHistory__WEBPACK_IMPORTED_MODULE_3__[\"useKMindHistory\"])(injectConfig);\n const handlePutHistoryFile = () => {\n putHistoryFile({\n injectConfig: injectConfig.value,\n kmindData: {}\n });\n };\n const handleConsole = () => {\n console.log('mindMap:', props.mindMap);\n };\n return {\n __sfc: true,\n isDark,\n injectConfig,\n props,\n store,\n sidebar,\n bus,\n putHistoryFile,\n handlePutHistoryFile,\n handleConsole,\n Sidebar: _Sidebar_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n };\n }\n}));\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindHistory/KMindHistory.vue?./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=script&setup=true&lang=tsx":
/*!***************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=script&setup=true&lang=tsx ***!
\***************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var _hooks_useComposition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/hooks/useComposition */ \"./src/hooks/useComposition.tsx\");\n/* harmony import */ var _hooks_useKMindHistory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/hooks/useKMindHistory */ \"./src/hooks/useKMindHistory.tsx\");\n/* harmony import */ var _pages_Edit_components_KmindPreview_KmindPreview_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/pages/Edit/components/KmindPreview/KmindPreview.vue */ \"./src/pages/Edit/components/KmindPreview/KmindPreview.vue\");\n/* harmony import */ var _hooks_useKMindMessage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/hooks/useKMindMessage */ \"./src/hooks/useKMindMessage.tsx\");\n/* harmony import */ var _hooks_useData__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/hooks/useData */ \"./src/hooks/useData.tsx\");\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"defineComponent\"])({\n __name: 'KmindHistoryModal',\n props: {\n mindMap: {\n type: Object,\n required: true\n }\n },\n setup(__props) {\n const props = __props;\n const bus = Object(_hooks_useComposition__WEBPACK_IMPORTED_MODULE_1__[\"useBus\"])();\n const dialogVisible = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n bus.$on('showKmindHistory', () => {\n dialogVisible.value = true;\n });\n const store = Object(_hooks_useComposition__WEBPACK_IMPORTED_MODULE_1__[\"useStore\"])();\n\n // DOM mode related computed properties\n const isDomMode = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => {\n var _store$state$injectCo, _store$state$injectCo2;\n return ((_store$state$injectCo = store.state.injectConfig) === null || _store$state$injectCo === void 0 ? void 0 : _store$state$injectCo.type) === 'sy-doctree-doc-dom' || ((_store$state$injectCo2 = store.state.injectConfig) === null || _store$state$injectCo2 === void 0 ? void 0 : _store$state$injectCo2.type) === 'sy-doctree-moc-dom';\n });\n const modalAppendToBody = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => {\n // 强行设置为ture,避免dom模式,其他导图遮挡dialog\n return true;\n });\n const {\n getHistoryList,\n autoSaveHistoryList,\n pinHistoryList,\n bestHistoryList,\n saveHistory,\n clearHistory,\n refreshHistoryList,\n applyHistory,\n deleteHistory\n } = Object(_hooks_useKMindHistory__WEBPACK_IMPORTED_MODULE_2__[\"useKMindHistory\"])(store.state.injectConfig);\n\n // 初始化获取历史记录列表,添加错误处理\n try {\n getHistoryList(store.state.injectConfig).catch(err => {\n console.error('KmindHistoryModal - 获取历史记录失败:', err);\n });\n } catch (error) {\n console.error('KmindHistoryModal - useKMindHistory 初始化错误:', error);\n }\n const activeTab = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])('autoSave');\n const activePath = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])('');\n const handlePreview = path => {\n activePath.value = path;\n };\n\n // 应用历史记录\n const applyLoading = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n const {\n compatibleSmmVersion\n } = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_5__[\"useData\"])();\n const handleApply = path => {\n applyLoading.value = true;\n activePath.value = path;\n applyHistory(path).then(res => {\n console.log('res:', res);\n const data = compatibleSmmVersion(res);\n props.mindMap.setFullData(data);\n // 应用历史记录后,关闭对话框\n dialogVisible.value = false;\n Object(_hooks_useKMindMessage__WEBPACK_IMPORTED_MODULE_4__[\"km\"])('应用历史记录成功!', 'success');\n }).finally(() => {\n applyLoading.value = false;\n });\n };\n\n // 删除历史记录\n const deleteLoading = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n const handleDelete = path => {\n deleteLoading.value = true;\n activePath.value = path;\n deleteHistory(path).finally(() => {\n deleteLoading.value = false;\n });\n };\n const timeLineRef = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(null);\n const kmindPreviewContainerRef = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(null);\n const saveHistoryLoading = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n const handleSaveHistory = () => {\n saveHistoryLoading.value = true;\n saveHistory({\n injectConfig: store.state.injectConfig,\n kmindData: store.getters.mindMapFullDataWithConfig,\n isDebugger: true\n }).finally(() => {\n saveHistoryLoading.value = false;\n });\n };\n const clearHistoryLoading = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n const handleClearHistory = () => {\n clearHistoryLoading.value = true;\n clearHistory(store.state.injectConfig).finally(() => {\n clearHistoryLoading.value = false;\n });\n };\n const refreshHistoryListLoading = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n const handleRefreshHistoryList = () => {\n refreshHistoryListLoading.value = true;\n refreshHistoryList(store.state.injectConfig).finally(() => {\n refreshHistoryListLoading.value = false;\n });\n };\n return {\n __sfc: true,\n props,\n bus,\n dialogVisible,\n store,\n isDomMode,\n modalAppendToBody,\n getHistoryList,\n autoSaveHistoryList,\n pinHistoryList,\n bestHistoryList,\n saveHistory,\n clearHistory,\n refreshHistoryList,\n applyHistory,\n deleteHistory,\n activeTab,\n activePath,\n handlePreview,\n applyLoading,\n compatibleSmmVersion,\n handleApply,\n deleteLoading,\n handleDelete,\n timeLineRef,\n kmindPreviewContainerRef,\n saveHistoryLoading,\n handleSaveHistory,\n clearHistoryLoading,\n handleClearHistory,\n refreshHistoryListLoading,\n handleRefreshHistoryList,\n KmindPreview: _pages_Edit_components_KmindPreview_KmindPreview_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n };\n }\n}));\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=script&setup=true&lang=tsx":
/*!*****************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=script&setup=true&lang=tsx ***!
\*****************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var simple_mind_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! simple-mind-map */ \"../simple-mind-map/index.js\");\n/* harmony import */ var simple_mind_map_plugin_themes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! simple-mind-map-plugin-themes */ \"./node_modules/simple-mind-map-plugin-themes/index.js\");\n/* harmony import */ var _hooks_useKmindPreview__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/hooks/useKmindPreview */ \"./src/hooks/useKmindPreview.tsx\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"defineComponent\"])({\n __name: 'KmindPreview',\n props: {\n // 预览类型,默认为空\n type: {\n type: String,\n default: ''\n },\n path: {\n type: String,\n default: ''\n },\n watcher: {\n type: Boolean,\n default: false\n }\n },\n setup(__props) {\n const props = __props;\n\n // 根据入参渲染一个导览图\n const kmindPreviewContainer = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(null);\n const previewMap = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(null);\n // 注册主题\n simple_mind_map_plugin_themes__WEBPACK_IMPORTED_MODULE_2__[\"default\"].init(simple_mind_map__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"watch\"])(() => props.path, newVal => {\n if (newVal) {\n // console.log('newVal:', newVal)\n Object(_hooks_useKmindPreview__WEBPACK_IMPORTED_MODULE_3__[\"useKmindPreview\"])({\n type: props.type,\n path: newVal\n }).then(res => {\n // console.log('res:', res)\n previewMap.value.setFullData(res);\n // kmindPreviewContainer.value.style.height = '100%'\n previewMap.value.resize();\n });\n }\n });\n Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"onMounted\"])(async () => {\n previewMap.value = new simple_mind_map__WEBPACK_IMPORTED_MODULE_1__[\"default\"]({\n el: kmindPreviewContainer.value,\n data: {},\n readonly: true,\n isShowCreateChildBtnIcon: false\n });\n\n // kmindPreviewContainer设置为100%高度\n // kmindPreviewContainer.value.style.height = '100%'\n });\n\n // watch(\n // () => props.watcher,\n // newVal => {\n // console.log('newVal:', newVal)\n // console.log(\"kmindPreviewContainer.value:\", kmindPreviewContainer.value);\n // }\n // )\n\n return {\n __sfc: true,\n kmindPreviewContainer,\n previewMap,\n props\n };\n }\n}));\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindPreview/KmindPreview.vue?./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=script&lang=ts&setup=true":
/*!************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=script&lang=ts&setup=true ***!
\************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var _hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/hooks/useCrossFrameAPI */ \"./src/hooks/useCrossFrameAPI.ts\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"defineComponent\"])({\n __name: 'index',\n props: {\n mindMap: {\n type: Object,\n required: true\n },\n injectConfig: {\n type: Object,\n default: () => ({})\n }\n },\n setup(__props) {\n const props = __props;\n const isVisible = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n const position = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])({\n x: 0,\n y: 0\n });\n let hideTimer = null;\n let currentNode = null;\n const showFloat = (node, e) => {\n clearHideTimer();\n currentNode = node;\n const rect = e.fromElement.getBoundingClientRect();\n // 位置仍然不完美,待改进\n position.value = {\n x: rect.left + rect.width,\n // 减去图标高度的一半,使浮动窗口的底部与图标对齐\n y: rect.top - props.mindMap.themeConfig.iconSize / 2\n };\n setTimeout(() => {\n isVisible.value = true;\n }, 100);\n };\n const hideFloat = () => {\n isVisible.value = false;\n currentNode = null;\n };\n const startHideTimer = () => {\n hideTimer = setTimeout(hideFloat, 200);\n };\n const clearHideTimer = () => {\n if (hideTimer) {\n clearTimeout(hideTimer);\n hideTimer = null;\n }\n };\n const {\n openDoc\n } = Object(_hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_1__[\"useCrossFrameAPI\"])(props.injectConfig);\n const openLink = position => {\n if (currentNode) {\n const siyuanHyperlink = currentNode.getData().siyuanHyperlink;\n props.mindMap.emit('siyuan_link_click', siyuanHyperlink, position);\n const id = siyuanHyperlink.split('/').pop();\n openDoc(id, {\n position\n });\n }\n hideFloat();\n };\n const {\n proxy\n } = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"getCurrentInstance\"])();\n const isDark = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => proxy.$store.state.localConfig.isDark);\n Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"onMounted\"])(() => {\n props.mindMap.on('node_siyuanHyperlinkMouseenter', (node, e) => {\n const siyuanHyperlink = node.getData().siyuanHyperlink;\n if (siyuanHyperlink && siyuanHyperlink.startsWith('siyuan://')) {\n showFloat(node, e);\n }\n });\n props.mindMap.on('node_siyuanHyperlinkMouseleave', startHideTimer);\n\n // 添加新的事件监听器\n props.mindMap.on('scale', hideFloat);\n props.mindMap.on('translate', hideFloat);\n props.mindMap.on('svg_mousedown', hideFloat);\n props.mindMap.on('expand_btn_click', hideFloat);\n });\n Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"onBeforeUnmount\"])(() => {\n props.mindMap.off('node_siyuanHyperlinkMouseenter');\n props.mindMap.off('node_siyuanHyperlinkMouseleave');\n\n // 移除新添加的事件监听器\n props.mindMap.off('scale', hideFloat);\n props.mindMap.off('translate', hideFloat);\n props.mindMap.off('svg_mousedown', hideFloat);\n props.mindMap.off('expand_btn_click', hideFloat);\n });\n return {\n __sfc: true,\n props,\n isVisible,\n position,\n hideTimer,\n currentNode,\n showFloat,\n hideFloat,\n startHideTimer,\n clearHideTimer,\n openDoc,\n openLink,\n proxy,\n isDark\n };\n }\n}));\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OpenSiyuanFloat/index.vue?./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/RichEditor/index.vue?vue&type=script&setup=true&lang=ts":
/*!*******************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/RichEditor/index.vue?vue&type=script&setup=true&lang=ts ***!
\*******************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! simple-mind-map/src/utils/index */ \"../simple-mind-map/src/utils/index.js\");\n/* harmony import */ var _hooks_useCompositionBus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/hooks/useCompositionBus */ \"./src/hooks/useCompositionBus.tsx\");\n/* harmony import */ var _hooks_useComposition__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/hooks/useComposition */ \"./src/hooks/useComposition.tsx\");\n/* harmony import */ var quill_dist_quill_snow_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! quill/dist/quill.snow.css */ \"./node_modules/quill/dist/quill.snow.css\");\n/* harmony import */ var quill_dist_quill_snow_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(quill_dist_quill_snow_css__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var vue_quill_editor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vue-quill-editor */ \"./node_modules/vue-quill-editor/dist/vue-quill-editor.js\");\n/* harmony import */ var vue_quill_editor__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(vue_quill_editor__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var quill__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! quill */ \"./node_modules/quill/dist/quill.js\");\n/* harmony import */ var quill__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(quill__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var quill_blot_formatter_dist_BlotFormatter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! quill-blot-formatter/dist/BlotFormatter */ \"./node_modules/quill-blot-formatter/dist/BlotFormatter.js\");\n/* harmony import */ var quill_blot_formatter_dist_BlotFormatter__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(quill_blot_formatter_dist_BlotFormatter__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var quill_markdown_shortcuts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! quill-markdown-shortcuts */ \"./node_modules/quill-markdown-shortcuts/dist/markdownShortcuts.js\");\n/* harmony import */ var quill_markdown_shortcuts__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(quill_markdown_shortcuts__WEBPACK_IMPORTED_MODULE_8__);\n\n\n\n\n\n\n// @ts-ignore\n\n// @ts-ignore\n\n\n// @ts-ignore\n\n\n/**\n * 重写quill的link模块,支持自定义协议\n * @see https://github.com/quilljs/quill/issues/262#issuecomment-948890432\n * @see https://github.com/quilljs/quill/issues/1268#issuecomment-390462861\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (/*#__PURE__*/Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"defineComponent\"])({\n __name: 'index',\n setup(__props) {\n Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"useCssVars\"])((_vm, _setup) => ({\n \"10cbee78-backgroundColor\": _setup.backgroundColor\n }));\n\n // import hljs from 'highlight.js'\n // @ts-ignore\n const Link = quill__WEBPACK_IMPORTED_MODULE_6___default.a.import('formats/link');\n // Override the existing property on the Quill global object and add custom protocols\n Link.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel', 'radar', 'rdar', 'smb', 'sms', 'siyuan'];\n class CustomLinkSanitizer extends Link {\n static sanitize(url) {\n // Run default sanitize method from Quill\n const sanitizedUrl = super.sanitize(url);\n\n // Not whitelisted URL based on protocol so, let's return `blank`\n if (!sanitizedUrl || sanitizedUrl === 'about:blank') return sanitizedUrl;\n\n // Verify if the URL already have a whitelisted protocol\n // @ts-ignore\n const hasWhitelistedProtocol = this.PROTOCOL_WHITELIST.some(function (protocol) {\n return sanitizedUrl.startsWith(protocol);\n });\n if (hasWhitelistedProtocol) return sanitizedUrl;\n\n // if not, then append only 'http' to not to be a relative URL\n return `http://${sanitizedUrl}`;\n }\n }\n\n // 扩展quill的字体列表\n let fontFamilyList = ['宋体, SimSun, Songti SC', '微软雅黑, Microsoft YaHei', '楷体, 楷体_GB2312, SimKai, STKaiti', '黑体, SimHei, Heiti SC', '隶书, SimLi', 'andale mono', 'arial, helvetica, sans-serif', 'arial black, avant garde', 'comic sans ms', 'impact, chicago', 'times new roman', 'sans-serif', 'serif'];\n\n // 扩展quill的字号列表\n let fontSizeList = new Array(100).fill(0).map((_, index) => {\n return index + 'px';\n });\n\n // 扩展quill的字体列表\n const FontAttributor = quill__WEBPACK_IMPORTED_MODULE_6___default.a.import('attributors/class/font');\n FontAttributor.whitelist = fontFamilyList;\n quill__WEBPACK_IMPORTED_MODULE_6___default.a.register(FontAttributor, true);\n const FontStyle = quill__WEBPACK_IMPORTED_MODULE_6___default.a.import('attributors/style/font');\n FontStyle.whitelist = fontFamilyList;\n quill__WEBPACK_IMPORTED_MODULE_6___default.a.register(FontStyle, true);\n\n // 扩展quill的字号列表\n const SizeAttributor = quill__WEBPACK_IMPORTED_MODULE_6___default.a.import('attributors/class/size');\n SizeAttributor.whitelist = fontSizeList;\n quill__WEBPACK_IMPORTED_MODULE_6___default.a.register(SizeAttributor, true);\n const SizeStyle = quill__WEBPACK_IMPORTED_MODULE_6___default.a.import('attributors/style/size');\n SizeStyle.whitelist = fontSizeList;\n quill__WEBPACK_IMPORTED_MODULE_6___default.a.register(SizeStyle, true);\n quill__WEBPACK_IMPORTED_MODULE_6___default.a.register(CustomLinkSanitizer, true);\n // Quill.register(BlotFormatter, true)\n // Quill.register(MarkdownShortcuts, true)\n quill__WEBPACK_IMPORTED_MODULE_6___default.a.register('modules/BlotFormatter', quill_blot_formatter_dist_BlotFormatter__WEBPACK_IMPORTED_MODULE_7___default.a, true);\n quill__WEBPACK_IMPORTED_MODULE_6___default.a.register('modules/MarkdownShortcuts', quill_markdown_shortcuts__WEBPACK_IMPORTED_MODULE_8___default.a, true);\n const quillOptions = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])({\n modules: {\n toolbar: [['bold', 'italic', 'underline', 'strike'],\n // toggled buttons\n ['blockquote', 'code-block'], [{\n header: 1\n }, {\n header: 2\n }],\n // custom button values\n [{\n list: 'ordered'\n }, {\n list: 'bullet'\n }], [{\n script: 'sub'\n }, {\n script: 'super'\n }],\n // superscript/subscript\n // [{ indent: '-1' }, { indent: '+1' }], // outdent/indent\n // [{ direction: 'rtl' }], // text direction\n\n // [{ size: ['small', false, 'large', 'huge'] }], // custom dropdown\n [{\n header: [1, 2, 3, 4, 5, 6, false]\n }], [{\n color: []\n }, {\n background: []\n }],\n // dropdown with defaults from theme\n [{\n font: fontFamilyList\n }], [{\n align: []\n }], ['clean'], ['formula'], ['image'], ['video'], ['link']],\n BlotFormatter: {},\n MarkdownShortcuts: {}\n // syntax: { hljs }\n }\n });\n const bus = Object(_hooks_useCompositionBus__WEBPACK_IMPORTED_MODULE_2__[\"useCompositionBus\"])();\n const store = Object(_hooks_useComposition__WEBPACK_IMPORTED_MODULE_3__[\"useStore\"])();\n\n // DOM mode related computed properties\n const isDomMode = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => {\n var _store$state$injectCo, _store$state$injectCo2;\n return ((_store$state$injectCo = store.state.injectConfig) === null || _store$state$injectCo === void 0 ? void 0 : _store$state$injectCo.type) === 'sy-doctree-doc-dom' || ((_store$state$injectCo2 = store.state.injectConfig) === null || _store$state$injectCo2 === void 0 ? void 0 : _store$state$injectCo2.type) === 'sy-doctree-moc-dom';\n });\n const modalAppendToBody = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => {\n return !isDomMode.value;\n });\n const handleNodeActive = (...args) => {\n activeNode.value = [...args[1]][0];\n };\n const content = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])('');\n const dialogVisible = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n const editorType = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])('node');\n const fillColor = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])('');\n const backgroundColor = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => {\n if (fillColor.value) {\n const colorStr = fillColor.value.replace('rgb(', '').replace(')', '');\n return `rgba(${colorStr},0.5)`;\n } else {\n return 'rgba(115, 115, 115, 0.1)';\n }\n });\n const handleShowRichEditor = e => {\n // node note\n console.log();\n console.log(e, activeNode.value);\n editorType.value = e;\n bus.$emit('startTextEdit');\n dialogVisible.value = true;\n switch (e) {\n case 'node':\n content.value = activeNode.value.getData('text') || '';\n console.log(activeNode.value.getData('text'));\n // quill.clipboard.dangerouslyPasteHTML(activeNode.value.getData('text'))\n fillColor.value = activeNode.value.getStyle('fillColor');\n break;\n case 'note':\n content.value = activeNode.value.getData('note') || '';\n break;\n }\n\n // 自动光标放到最后\n if (isQuillReady.value) {\n setTimeout(() => {\n // quill会在初始化时自动插入一个p标签,所以length需要-1\n quill.setSelection(quill.getLength() - 1, 0);\n });\n }\n };\n const handleCloseRichEditor = () => {\n switch (editorType.value) {\n case 'node':\n activeNode.value.setText(content.value, true);\n break;\n case 'note':\n // 即使编辑器为空,editorContent.value也会有一个p标签,所以需要判断一下\n if (content.value !== '<p><br></p>') {\n activeNode.value.setNote(content.value);\n } else {\n activeNode.value.setNote('');\n }\n break;\n }\n };\n let quill;\n const isQuillReady = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n const handleEditorReady = e => {\n // // 这个其实可以不用加了,因为smm实例化的时候我已经把这个给注释了:enableAutoEnterTextEditWhenKeydown: true,\n // e.root.addEventListener('keyup', e => {\n // e.stopPropagation()\n // })\n // e.root.addEventListener('keydown', e => {\n // e.stopPropagation()\n // })\n isQuillReady.value = true;\n quill = e;\n quill.root.id = 'kmind-rich-editor-modal';\n quill.root.setAttribute('data-placeholder', '请输入内容...');\n setTimeout(() => {\n // quill会在初始化时自动插入一个p标签,所以length需要-1\n quill.setSelection(quill.getLength() - 1, 0);\n });\n };\n Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"watch\"])(dialogVisible, (val, oldVal) => {\n if (!val && oldVal) {\n bus.$emit('endTextEdit');\n console.log(quill);\n handleCloseRichEditor();\n content.value = '';\n\n // quill.root.removeEventListener('keyup', e => {\n // e.stopPropagation()\n // })\n // quill.root.removeEventListener('keydown', e => {\n // e.stopPropagation()\n // })\n }\n });\n bus.$on('showRichEditor', handleShowRichEditor);\n bus.$on('node_active', handleNodeActive);\n const activeNode = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(null);\n const quillEditorRef = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(null);\n Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"onBeforeUnmount\"])(() => {\n bus.$off('showRichEditor', handleShowRichEditor);\n bus.$off('node_active', handleNodeActive);\n });\n return {\n __sfc: true,\n Link,\n CustomLinkSanitizer,\n fontFamilyList,\n fontSizeList,\n FontAttributor,\n FontStyle,\n SizeAttributor,\n SizeStyle,\n quillOptions,\n bus,\n store,\n isDomMode,\n modalAppendToBody,\n handleNodeActive,\n content,\n dialogVisible,\n editorType,\n fillColor,\n backgroundColor,\n handleShowRichEditor,\n handleCloseRichEditor,\n quill,\n isQuillReady,\n handleEditorReady,\n activeNode,\n quillEditorRef,\n isMobile: simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_1__[\"isMobile\"],\n quillEditor: vue_quill_editor__WEBPACK_IMPORTED_MODULE_5__[\"quillEditor\"]\n };\n }\n}));\n\n//# sourceURL=webpack:///./src/pages/Edit/components/RichEditor/index.vue?./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/ImgUpload/index.vue?vue&type=script&lang=js":
/*!***********************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ImgUpload/index.vue?vue&type=script&lang=js ***!
\***********************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'ImgUpload',\n model: {\n prop: 'value',\n event: 'change'\n },\n props: {\n value: {\n type: String,\n default: ''\n }\n },\n data() {\n return {\n file: null\n };\n },\n methods: {\n /**\n * @Author: 王林\n * @Date: 2019-12-22 19:47:19\n * @Desc: 图片选择事件\n */\n onImgUploadInputChange(e) {\n let file = e.target.files[0];\n this.selectImg(file);\n },\n /**\n * @Author: 王林\n * @Date: 2019-12-22 20:32:31\n * @Desc: 拖动上传图片\n */\n onDrop(e) {\n let dt = e.dataTransfer;\n let file = dt.files && dt.files[0];\n this.selectImg(file);\n },\n /**\n * @Author: 王林\n * @Date: 2021-06-06 16:56:14\n * @Desc: 选择图片\n */\n selectImg(file) {\n this.file = file;\n let fr = new FileReader();\n fr.readAsDataURL(file);\n fr.onload = e => {\n this.$emit('change', e.target.result);\n };\n },\n /**\n * @Author: 王林\n * @Date: 2021-06-22 23:03:46\n * @Desc: 获取图片大小\n */\n getSize() {\n return new Promise(resolve => {\n let img = new Image();\n img.src = this.value;\n img.onload = () => {\n resolve({\n width: img.width,\n height: img.height\n });\n };\n img.onerror = () => {\n resolve({\n width: 0,\n height: 0\n });\n };\n });\n },\n /**\n * @Author: 王林\n * @Date: 2021-06-06 21:59:57\n * @Desc: 删除图片\n */\n deleteImg() {\n this.$emit('change', '');\n this.file = null;\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/ImgUpload/index.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/Index.vue?vue&type=script&lang=js":
/*!*************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/Index.vue?vue&type=script&lang=js ***!
\*************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _components_Toolbar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components/Toolbar */ \"./src/pages/Edit/components/Toolbar.vue\");\n/* harmony import */ var _components_Edit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/Edit */ \"./src/pages/Edit/components/Edit.vue\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/api */ \"./src/api/index.js\");\n/* harmony import */ var _utils_kmindUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/kmindUtils */ \"./src/utils/kmindUtils.tsx\");\n/* harmony import */ var _pages_Edit_components_Export_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/pages/Edit/components/Export.vue */ \"./src/pages/Edit/components/Export.vue\");\n/* harmony import */ var _hooks_useQueryFunction__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/hooks/useQueryFunction */ \"./src/hooks/useQueryFunction.tsx\");\n/* harmony import */ var _hooks_useData__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/hooks/useData */ \"./src/hooks/useData.tsx\");\n/* harmony import */ var _icons_ic_outline_lock__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ~icons/ic/outline-lock */ \"./_virtual_~icons%2Fic%2Foutline-lock\");\n/* harmony import */ var _icons_hugeicons_book_edit__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ~icons/hugeicons/book-edit */ \"./_virtual_~icons%2Fhugeicons%2Fbook-edit\");\n/* harmony import */ var _pages_Edit_components_Style_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/pages/Edit/components/Style.vue */ \"./src/pages/Edit/components/Style.vue\");\n/* harmony import */ var _hooks_useGlobalConfig__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/hooks/useGlobalConfig */ \"./src/hooks/useGlobalConfig.tsx\");\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/i18n */ \"./src/i18n.js\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var _hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/hooks/useCrossFrameAPI */ \"./src/hooks/useCrossFrameAPI.ts\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Index',\n components: {\n Style: _pages_Edit_components_Style_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n Export: _pages_Edit_components_Export_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n Toolbar: _components_Toolbar__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n Edit: _components_Edit__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n IcOutlineLock: _icons_ic_outline_lock__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n HugeiconsBookEdit: _icons_hugeicons_book_edit__WEBPACK_IMPORTED_MODULE_9__[\"default\"]\n },\n inject: {\n $bus: {\n from: '$bus',\n default() {\n // 降级方案:如果没有注入,使用全局的 $bus\n return this.$root.$bus || vue__WEBPACK_IMPORTED_MODULE_13__[\"default\"].prototype.$bus;\n }\n }\n },\n provide() {\n return {\n $bus: this.$bus\n };\n },\n data() {\n return {\n show: false,\n isOverlayActive: true\n };\n },\n computed: {\n isDebugger() {\n const {\n isDebugger\n } = Object(_hooks_useQueryFunction__WEBPACK_IMPORTED_MODULE_6__[\"useQueryFunction\"])();\n return isDebugger.value;\n },\n isDomMode() {\n var _this$injectConfig, _this$injectConfig2;\n return ((_this$injectConfig = this.injectConfig) === null || _this$injectConfig === void 0 ? void 0 : _this$injectConfig.type) === 'sy-doctree-doc-dom' || ((_this$injectConfig2 = this.injectConfig) === null || _this$injectConfig2 === void 0 ? void 0 : _this$injectConfig2.type) === 'sy-doctree-moc-dom';\n },\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_2__[\"mapState\"])({\n isZenMode: state => state.localConfig.isZenMode,\n isDark: state => state.localConfig.isDark,\n activeSidebar: state => state.activeSidebar,\n injectConfig: state => state.injectConfig\n })\n },\n watch: {\n isDark() {\n this.setBodyDark();\n }\n },\n async created() {\n // 只在 created 中处理不依赖 DOM 的初始化\n // 当前的思源插件场景,无需在这里初始化config,而是在edit.vue中获取数据的时候统一初始化\n // this.initLocalConfig(this.injectConfig)\n this.setBodyDark();\n this.autoSetDark();\n this.handleAutoChangeLang();\n },\n async mounted() {\n const {\n initGlobalConfig\n } = Object(_hooks_useGlobalConfig__WEBPACK_IMPORTED_MODULE_11__[\"useGlobalConfig\"])();\n initGlobalConfig(this.injectConfig);\n\n // 现在在 mounted 中处理依赖 DOM 的逻辑\n this.handleDataStorageConfig();\n\n // 在 mounted 中创建 loading,确保 DOM 已经存在\n const loading = this.$loading({\n lock: true,\n text: this.$t('other.loading'),\n target: this.isDomMode ? this.$el : document.body\n });\n try {\n await this.getUserMindMapData();\n this.show = true;\n this.setOverlay();\n } finally {\n loading.close();\n }\n },\n beforeDestroy() {\n // removeEventListener('click')\n },\n methods: {\n handleAutoChangeLang() {\n var _globalThis$parent, _langMap$siyuanLang;\n const siyuanLang = globalThis === null || globalThis === void 0 || (_globalThis$parent = globalThis.parent) === null || _globalThis$parent === void 0 || (_globalThis$parent = _globalThis$parent.document) === null || _globalThis$parent === void 0 || (_globalThis$parent = _globalThis$parent.documentElement) === null || _globalThis$parent === void 0 ? void 0 : _globalThis$parent.getAttribute('lang');\n const langMap = {\n zh_CN: 'zh',\n zh_CHT: 'zhtw',\n en_US: 'en'\n };\n const lang = (_langMap$siyuanLang = langMap === null || langMap === void 0 ? void 0 : langMap[siyuanLang]) !== null && _langMap$siyuanLang !== void 0 ? _langMap$siyuanLang : 'en';\n _i18n__WEBPACK_IMPORTED_MODULE_12__[\"default\"].locale = lang;\n },\n getMirrorSourceFileName() {\n const {\n getMirrorType\n } = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_7__[\"useData\"])();\n const type = getMirrorType(this.injectConfig.mirrorPath);\n switch (type) {\n case 'sy-doctree-doc':\n // 说明是文档树的导图\n // todo 使用sql查询文档树导图的文件名\n // 或者直接获取根节点\n return '';\n case 'sy-plugin':\n // 说明是dock栏的导图\n // 获取镜像源文件名 xxx-时间戳-id.kmind\n const path = this.injectConfig.mirrorPath.split('/').pop();\n const pathArr = path.split('-');\n pathArr.pop();\n pathArr.pop();\n return pathArr.join('-');\n }\n },\n handleOpenMirrorEdit() {\n var _globalThis$parent2;\n const {\n getMirrorType\n } = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_7__[\"useData\"])();\n const type = getMirrorType(this.injectConfig.mirrorPath);\n let fileName = '';\n switch (type) {\n case 'sy-doctree-doc':\n // 说明是文档树的导图\n // assets/kmind-doctree-doc-20241005115035-g4frb4w.kmind\n // 从路径中提取文档块id\n const id = this.injectConfig.mirrorPath.match(/kmind-doctree-doc-(.+?)\\.kmind/)[1];\n // 打开对应的文档\n const {\n openDoc\n } = Object(_hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_14__[\"useCrossFrameAPI\"])(this.injectConfig);\n openDoc(id);\n return;\n case 'sy-plugin':\n // 说明是dock栏的导图\n fileName = this.injectConfig.mirrorPath.split('/').pop();\n globalThis === null || globalThis === void 0 || (_globalThis$parent2 = globalThis.parent) === null || _globalThis$parent2 === void 0 || (_globalThis$parent2 = _globalThis$parent2.kmindApi) === null || _globalThis$parent2 === void 0 || (_globalThis$parent2 = _globalThis$parent2.plugin) === null || _globalThis$parent2 === void 0 || _globalThis$parent2.open(fileName);\n return;\n }\n },\n setOverlay() {\n if (this.injectConfig.type !== 'sy-plugin' && this.injectConfig.type !== 'sy-doctree-doc' && this.injectConfig.type !== 'sy-plugin-doc2kmind' && this.injectConfig.type !== 'sy-doctree-doc-dom' && this.injectConfig.type !== 'sy-doctree-moc-dom' && !this.isDebugger) {\n const overlay = document.getElementById('kmind-overlay');\n\n // 点击蒙版时移除蒙版\n overlay.addEventListener('click', e => {\n overlay.classList.add('kmind-overlay-hidden');\n this.isOverlayActive = false;\n // 关闭禅模式\n this.setLocalConfig({\n isZenMode: false\n });\n if (e.ctrlKey) {\n // 如果按住ctrl键点击,则多点击一下鼠标左键,用于快速穿透蒙版点击,激活鼠标处的节点\n // TODO 更多的交互构思:比如按着空格键单击,可以直接进入编辑模式\n const x = e.clientX;\n const y = e.clientY;\n const clickEvent = new MouseEvent('click', {\n view: window,\n bubbles: true,\n cancelable: true,\n clientX: x,\n clientY: y\n });\n const element = document.elementFromPoint(x, y);\n element.dispatchEvent(clickEvent);\n }\n }, true);\n\n // 监听鼠标移出事件\n document.addEventListener('mouseleave', () => {\n if (!this.isOverlayActive) {\n overlay.classList.remove('kmind-overlay-hidden');\n this.isOverlayActive = true;\n }\n // 开启禅模式\n this.setLocalConfig({\n isZenMode: true\n });\n });\n\n // 可选:如果需要在特定条件下重新激活蒙版\n function reactivateOverlay() {\n if (!this.isOverlayActive) {\n overlay.classList.remove('overlay-hidden');\n this.isOverlayActive = true;\n }\n }\n\n // 示例:每60秒重新激活蒙版\n // setInterval(reactivateOverlay, 60000);\n }\n },\n autoSetDark() {\n const themeMode = globalThis.parent.document.documentElement.getAttribute('data-theme-mode');\n switch (themeMode) {\n case 'light':\n // this.setLocalConfig({\n // isDark: false\n // })\n this.$store.state.localConfig.isDark = false;\n break;\n case 'dark':\n // this.setLocalConfig({\n // isDark: true\n // })\n this.$store.state.localConfig.isDark = true;\n }\n },\n handleDocumentClick() {\n // 拦截全局点击事件,如果点击到了a标签,就阻止默认事件,为跳转多tab页做准备\n addEventListener('click', e => {\n var _e$target;\n // console.log(e)\n const {\n isLink,\n linkUrl\n } = Object(_utils_kmindUtils__WEBPACK_IMPORTED_MODULE_4__[\"isClickLinkIcon\"])(e);\n // 如果按住alt键点击到了siyuan开头的超链接icon\n if (isLink && e.altKey && linkUrl !== null && linkUrl !== void 0 && linkUrl.startsWith('siyuan://blocks/')) {\n e.preventDefault();\n const {\n addFloatLayer\n } = Object(_hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_14__[\"useCrossFrameAPI\"])(this.injectConfig);\n addFloatLayer({\n // 获取最后一个斜杠后的id\n ids: [linkUrl === null || linkUrl === void 0 ? void 0 : linkUrl.substr(linkUrl.lastIndexOf('/') + 1)],\n x: e.screenX,\n y: e.screenY\n });\n }\n\n // 如果按住alt键点击到了siyuan开头的超链接,适配处于节点中的思源超链接\n if (e.altKey && e !== null && e !== void 0 && (_e$target = e.target) !== null && _e$target !== void 0 && _e$target.href.startsWith('siyuan://blocks/')) {\n var _e$target2;\n const href = e === null || e === void 0 || (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.href;\n e.preventDefault();\n const {\n addFloatLayer\n } = Object(_hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_14__[\"useCrossFrameAPI\"])();\n addFloatLayer({\n // 获取最后一个斜杠后的id\n ids: [href.substr(href.lastIndexOf('/') + 1)],\n x: e.screenX,\n y: e.screenY\n });\n }\n }, true);\n },\n handleDataStorageConfig() {\n var _this$$el, _container$dataset, _container$dataset2;\n // 从url链接获取数据\n // console.log('this.$route:', this.$route)\n // console.log('location:', window.location)\n // 此组件的使用形式:思源插件,思源挂件,思源中其它方式渲染的数据。以后可能会部署在线版,那就从url链接获取数据\n\n // 首先检查是否是 DOM 直接挂载模式\n // 查找最近的带有 kmind 数据属性的容器\n // console.log('this.$el:', this.$el)\n const container = (_this$$el = this.$el) === null || _this$$el === void 0 ? void 0 : _this$$el.closest('[data-kmind-type]');\n if ((container === null || container === void 0 || (_container$dataset = container.dataset) === null || _container$dataset === void 0 ? void 0 : _container$dataset.kmindType) === 'sy-doctree-doc-dom' || (container === null || container === void 0 || (_container$dataset2 = container.dataset) === null || _container$dataset2 === void 0 ? void 0 : _container$dataset2.kmindType) === 'sy-doctree-moc-dom') {\n // 从 DOM 属性构建 injectConfig\n const domInjectConfig = {\n type: container.dataset.kmindType,\n name: container.dataset.kmindDocId,\n syDocId: container.dataset.kmindDocId,\n doctreeDocInitTitle: container.dataset.kmindTitle,\n doctreeDocPath: container.dataset.kmindDocPath\n };\n this.$store.commit('setInjectConfig', domInjectConfig);\n // console.log('setInjectConfig from DOM attributes', domInjectConfig)\n return; // 如果是 DOM 模式,不需要继续检查其他模式\n }\n\n // 检测是否为挂件的形式,挂件有两种,一种是普通挂件模式,一种是镜像模式\n const {\n getWidgetBlockInfo\n } = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_7__[\"useData\"])();\n const {\n isWidget,\n injectConfigType,\n isMirror,\n mirrorPath,\n dataAssets\n } = getWidgetBlockInfo();\n if (isWidget) {\n // 设置url\n const injectConfig = {\n type: injectConfigType,\n name: injectConfigType,\n widgetDataAssets: dataAssets\n };\n\n // 如果是镜像模式\n if (isMirror) {\n injectConfig.mirrorPath = mirrorPath;\n }\n this.$store.commit('setInjectConfig', injectConfig);\n }\n if (this.$route.query.injectConfig) {\n const injectConfig = JSON.parse(this.$route.query.injectConfig);\n this.$store.commit('setInjectConfig', injectConfig);\n console.log('setInjectConfig', injectConfig);\n }\n },\n handleFullDataInit() {\n // 根据injectConfig初始化数据,初始化配置\n },\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_2__[\"mapActions\"])(['getUserMindMapData']),\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_2__[\"mapMutations\"])(['setLocalConfig', 'setKmindConfig']),\n /**\n * @Author: 王林25\n * @Date: 2022-11-14 19:07:03\n * @Desc: 初始化本地配置\n */\n async initLocalConfig(injectConfig) {\n if ((injectConfig === null || injectConfig === void 0 ? void 0 : injectConfig.type) === 'sy-plugin' || (injectConfig === null || injectConfig === void 0 ? void 0 : injectConfig.type) === 'sy-widget') {\n let {\n kmind: kmindConfig,\n config: smmConfig\n } = await Object(_api__WEBPACK_IMPORTED_MODULE_3__[\"getLocalConfig\"])(this.injectConfig);\n this.setKmindConfig({\n kmindConfig,\n smmConfig\n });\n } else {\n let config = Object(_api__WEBPACK_IMPORTED_MODULE_3__[\"getLocalConfig\"])();\n if (config) {\n this.setLocalConfig({\n ...this.$store.state.localConfig,\n ...config\n });\n }\n }\n },\n setBodyDark() {\n this.isDark ? document.body.classList.add('isDark') : document.body.classList.remove('isDark');\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/Index.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=script&lang=js":
/*!***************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=script&lang=js ***!
\***************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Sidebar */ \"./src/pages/Edit/components/Sidebar.vue\");\n/* harmony import */ var _Color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Color */ \"./src/pages/Edit/components/Color.vue\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/config */ \"./src/config/index.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n\n\n\n\nconst defaultStyle = {\n associativeLineColor: '',\n associativeLineWidth: 0,\n associativeLineActiveWidth: 0,\n associativeLineDasharray: '',\n associativeLineActiveColor: '',\n associativeLineTextFontSize: 0,\n associativeLineTextColor: '',\n associativeLineTextFontFamily: ''\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'BaseStyle',\n components: {\n Sidebar: _Sidebar__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n Color: _Color__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n lineWidthList: _config__WEBPACK_IMPORTED_MODULE_2__[\"lineWidthList\"],\n fontSizeList: _config__WEBPACK_IMPORTED_MODULE_2__[\"fontSizeList\"],\n activeLineNode: null,\n activeLineToNode: null,\n style: {\n ...defaultStyle\n }\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_3__[\"mapState\"])({\n activeSidebar: state => state.activeSidebar,\n isDark: state => state.localConfig.isDark\n }),\n fontFamilyList() {\n return _config__WEBPACK_IMPORTED_MODULE_2__[\"fontFamilyList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_2__[\"fontFamilyList\"].zh;\n },\n borderDasharrayList() {\n return _config__WEBPACK_IMPORTED_MODULE_2__[\"borderDasharrayList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_2__[\"borderDasharrayList\"].zh;\n }\n },\n watch: {\n activeSidebar(val) {\n if (val === 'associativeLineStyle') {\n this.$refs.sidebar.show = true;\n } else {\n this.$refs.sidebar.show = false;\n }\n }\n },\n created() {\n this.mindMap.on('associative_line_click', this.onAssociativeLineClick);\n this.mindMap.on('associative_line_deactivate', this.associativeLineDeactivate);\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_3__[\"mapMutations\"])(['setActiveSidebar']),\n onAssociativeLineClick(a, b, node, toNode) {\n this.activeLineNode = node;\n this.activeLineToNode = toNode;\n const styleConfig = this.mindMap.associativeLine.getStyleConfig(node, toNode);\n Object.keys(this.style).forEach(item => {\n this.style[item] = styleConfig[item];\n });\n this.setActiveSidebar('associativeLineStyle');\n },\n associativeLineDeactivate() {\n this.setActiveSidebar('');\n this.activeLineNode = null;\n this.activeLineToNode = null;\n this.style = {\n ...defaultStyle\n };\n },\n update(prop, value) {\n this.style[prop] = value;\n const associativeLineStyle = this.activeLineNode.getData('associativeLineStyle') || {};\n const toNodeUid = this.activeLineToNode.getData('uid');\n const lineStyle = associativeLineStyle[toNodeUid] || {};\n this.activeLineNode.setData({\n associativeLineStyle: {\n ...associativeLineStyle,\n [toNodeUid]: {\n ...lineStyle,\n ...this.style\n }\n }\n });\n this.mindMap.associativeLine.updateActiveLineStyle();\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/AssociativeLineStyle.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/BaseStyle.vue?vue&type=script&lang=js":
/*!****************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/BaseStyle.vue?vue&type=script&lang=js ***!
\****************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Sidebar */ \"./src/pages/Edit/components/Sidebar.vue\");\n/* harmony import */ var _Color__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Color */ \"./src/pages/Edit/components/Color.vue\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/config */ \"./src/config/index.js\");\n/* harmony import */ var _components_ImgUpload__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ImgUpload */ \"./src/components/ImgUpload/index.vue\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/api */ \"./src/api/index.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _config_constant__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/config/constant */ \"./src/config/constant.js\");\n/* harmony import */ var _hooks_useQueryFunction__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/hooks/useQueryFunction */ \"./src/hooks/useQueryFunction.tsx\");\n\n\n\n\n\n\n\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:52:56\n * @Desc: 基础样式\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'BaseStyle',\n inject: ['$bus'],\n components: {\n Sidebar: _Sidebar__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n Color: _Color__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ImgUpload: _components_ImgUpload__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n },\n props: {\n data: {\n type: [Object, null],\n default: null\n },\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n rainbowLinesOptions: _config_constant__WEBPACK_IMPORTED_MODULE_7__[\"rainbowLinesOptions\"],\n lineWidthList: _config__WEBPACK_IMPORTED_MODULE_3__[\"lineWidthList\"],\n fontSizeList: _config__WEBPACK_IMPORTED_MODULE_3__[\"fontSizeList\"],\n activeTab: 'color',\n marginActiveTab: 'second',\n style: {\n backgroundColor: '',\n lineColor: '',\n lineWidth: '',\n lineStyle: '',\n showLineMarker: '',\n rootLineKeepSameInCurve: '',\n rootLineStartPositionKeepSameInCurve: '',\n lineRadius: 0,\n lineFlow: false,\n lineFlowForward: true,\n lineFlowDuration: 1,\n generalizationLineWidth: '',\n generalizationLineColor: '',\n associativeLineColor: '',\n associativeLineWidth: 0,\n associativeLineActiveWidth: 0,\n associativeLineDasharray: '',\n associativeLineActiveColor: '',\n associativeLineTextFontSize: 0,\n associativeLineTextColor: '',\n associativeLineTextFontFamily: '',\n paddingX: 0,\n paddingY: 0,\n imgMaxWidth: 0,\n imgMaxHeight: 0,\n iconSize: 0,\n backgroundImage: '',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: '',\n backgroundSize: '',\n marginX: 0,\n marginY: 0,\n nodeUseLineStyle: false\n },\n rainbowLinesPopoverVisible: false,\n curRainbowLineColorList: null,\n currentLayout: '',\n // 当前结构\n outerFramePadding: {\n outerFramePaddingX: 0,\n outerFramePaddingY: 0\n }\n };\n },\n computed: {\n isDebugger() {\n const {\n isDebugger\n } = Object(_hooks_useQueryFunction__WEBPACK_IMPORTED_MODULE_8__[\"useQueryFunction\"])();\n return isDebugger.value;\n },\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_6__[\"mapState\"])({\n activeSidebar: state => state.activeSidebar,\n localConfig: state => state.localConfig,\n isDark: state => state.localConfig.isDark,\n injectConfig: state => state.injectConfig,\n supportLineFlow: state => state.supportLineFlow\n }),\n lineStyleList() {\n return _config__WEBPACK_IMPORTED_MODULE_3__[\"lineStyleList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_3__[\"lineStyleList\"].zh;\n },\n rootLineKeepSameInCurveList() {\n return _config__WEBPACK_IMPORTED_MODULE_3__[\"rootLineKeepSameInCurveList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_3__[\"rootLineKeepSameInCurveList\"].zh;\n },\n backgroundRepeatList() {\n return _config__WEBPACK_IMPORTED_MODULE_3__[\"backgroundRepeatList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_3__[\"backgroundRepeatList\"].zh;\n },\n backgroundPositionList() {\n return _config__WEBPACK_IMPORTED_MODULE_3__[\"backgroundPositionList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_3__[\"backgroundPositionList\"].zh;\n },\n backgroundSizeList() {\n return _config__WEBPACK_IMPORTED_MODULE_3__[\"backgroundSizeList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_3__[\"backgroundSizeList\"].zh;\n },\n fontFamilyList() {\n return _config__WEBPACK_IMPORTED_MODULE_3__[\"fontFamilyList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_3__[\"fontFamilyList\"].zh;\n },\n lineStyleMap() {\n return _config__WEBPACK_IMPORTED_MODULE_3__[\"lineStyleMap\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_3__[\"lineStyleMap\"].zh;\n },\n showNodeUseLineStyle() {\n return _config_constant__WEBPACK_IMPORTED_MODULE_7__[\"supportNodeUseLineStyleLayouts\"].includes(this.currentLayout);\n },\n showLineRadius() {\n return this.style.lineStyle === 'straight' && _config_constant__WEBPACK_IMPORTED_MODULE_7__[\"supportLineRadiusLayouts\"].includes(this.currentLayout);\n },\n lineStyleListShow() {\n const res = [];\n this.lineStyleList.forEach(item => {\n const list = _config_constant__WEBPACK_IMPORTED_MODULE_7__[\"supportLineStyleLayoutsMap\"][item.value];\n if (list) {\n if (list.includes(this.currentLayout)) {\n res.push(item);\n }\n } else {\n res.push(item);\n }\n });\n return res;\n },\n showRootLineKeepSameInCurveLayouts() {\n return _config_constant__WEBPACK_IMPORTED_MODULE_7__[\"supportRootLineKeepSameInCurveLayouts\"].includes(this.currentLayout);\n },\n borderDasharrayList() {\n return _config__WEBPACK_IMPORTED_MODULE_3__[\"borderDasharrayList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_3__[\"borderDasharrayList\"].zh;\n }\n },\n watch: {\n activeSidebar(val) {\n if (val === 'baseStyle') {\n this.$refs.sidebar.show = true;\n this.initStyle();\n this.initRainbowLines();\n this.initOuterFramePadding();\n this.currentLayout = this.mindMap.getLayout();\n } else {\n this.$refs.sidebar.show = false;\n }\n },\n lineStyleListShow: {\n deep: true,\n handler() {\n const has = this.lineStyleListShow.find(item => {\n return item.value === this.style.lineStyle;\n });\n if (!has) {\n this.style.lineStyle = this.lineStyleListShow[0].value;\n }\n }\n }\n },\n created() {\n this.$bus.$on('setData', this.onSetData);\n },\n beforeDestroy() {\n this.$bus.$off('setData', this.onSetData);\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_6__[\"mapMutations\"])(['setLocalConfig']),\n onSetData() {\n if (this.activeSidebar !== 'baseStyle') return;\n setTimeout(() => {\n this.initStyle();\n }, 0);\n },\n // 初始样式\n initStyle() {\n Object.keys(this.style).forEach(key => {\n this.style[key] = this.mindMap.getThemeConfig(key);\n if (key === 'backgroundImage' && this.style[key] === 'none') {\n this.style[key] = '';\n }\n });\n this.initMarginStyle();\n },\n // 初始化彩虹线条配置\n initRainbowLines() {\n const config = this.mindMap.getConfig('rainbowLinesConfig') || {};\n this.curRainbowLineColorList = config.open ? this.mindMap.rainbowLines ? this.mindMap.rainbowLines.getColorsList() : null : null;\n },\n // 外框\n initOuterFramePadding() {\n this.outerFramePadding.outerFramePaddingX = this.mindMap.getConfig('outerFramePaddingX');\n this.outerFramePadding.outerFramePaddingY = this.mindMap.getConfig('outerFramePaddingX');\n },\n // margin初始值\n initMarginStyle() {\n ;\n ['marginX', 'marginY'].forEach(key => {\n this.style[key] = this.mindMap.getThemeConfig()[this.marginActiveTab][key];\n });\n },\n // 更新配置\n update(key, value) {\n if (key === 'backgroundImage' && value === 'none') {\n this.style[key] = '';\n } else {\n this.style[key] = value;\n }\n this.data.theme.config[key] = value;\n this.$bus.$emit('showLoading');\n this.mindMap.setThemeConfig(this.data.theme.config);\n Object(_api__WEBPACK_IMPORTED_MODULE_5__[\"storeConfig\"])({\n theme: {\n template: this.mindMap.getTheme(),\n config: this.data.theme.config\n }\n }, {\n ...this.injectConfig,\n app: this.mindMap\n });\n },\n // 更新彩虹线条配置\n updateRainbowLinesConfig(item) {\n this.rainbowLinesPopoverVisible = false;\n this.curRainbowLineColorList = item.list || null;\n this.data.config = this.data.config || {};\n let newConfig = null;\n if (item.list) {\n newConfig = {\n open: true,\n colorsList: item.list\n };\n } else {\n newConfig = {\n open: false\n };\n }\n this.data.config.rainbowLinesConfig = newConfig;\n this.mindMap.rainbowLines.updateRainLinesConfig(newConfig);\n Object(_api__WEBPACK_IMPORTED_MODULE_5__[\"storeConfig\"])({\n config: this.data.config\n }, {\n ...this.injectConfig,\n app: this.mindMap\n });\n },\n // 更新外框\n updateOuterFramePadding(prop, value) {\n this.outerFramePadding[prop] = value;\n this.data.config = this.data.config || {};\n this.data.config[prop] = value;\n this.mindMap.updateConfig({\n [prop]: value\n });\n Object(_api__WEBPACK_IMPORTED_MODULE_5__[\"storeConfig\"])({\n config: this.data.config\n });\n this.mindMap.render();\n },\n // 设置margin\n updateMargin(type, value) {\n this.style[type] = value;\n if (!this.data.theme.config[this.marginActiveTab]) {\n this.data.theme.config[this.marginActiveTab] = {};\n }\n this.data.theme.config[this.marginActiveTab][type] = value;\n this.mindMap.setThemeConfig(this.data.theme.config);\n Object(_api__WEBPACK_IMPORTED_MODULE_5__[\"storeConfig\"])({\n theme: {\n template: this.mindMap.getTheme(),\n config: this.data.theme.config\n }\n }, {\n ...this.injectConfig,\n app: this.mindMap\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/BaseStyle.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Color.vue?vue&type=script&lang=js":
/*!************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Color.vue?vue&type=script&lang=js ***!
\************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/config */ \"./src/config/index.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:53:10\n * @Desc: 颜色选择器\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Color',\n props: {\n color: {\n type: String,\n default: ''\n }\n },\n data() {\n return {\n colorList: _config__WEBPACK_IMPORTED_MODULE_0__[\"colorList\"],\n selectColor: ''\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapState\"])({\n isDark: state => state.localConfig.isDark\n })\n },\n watch: {\n color() {\n this.selectColor = this.color;\n }\n },\n created() {\n this.selectColor = this.color;\n },\n methods: {\n /**\n * @Author: 王林\n * @Date: 2021-05-05 09:38:06\n * @Desc: 点击预设颜色\n */\n clickColorItem(color) {\n this.$emit('change', color);\n },\n /**\n * @Author: 王林\n * @Date: 2021-05-05 10:17:26\n * @Desc: 修改颜色\n */\n changeColor() {\n this.$emit('change', this.selectColor);\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Color.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Contextmenu.vue?vue&type=script&lang=js":
/*!******************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Contextmenu.vue?vue&type=script&lang=js ***!
\******************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! simple-mind-map/src/utils */ \"../simple-mind-map/src/utils/index.js\");\n/* harmony import */ var simple_mind_map_src_parse_toMarkdown__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! simple-mind-map/src/parse/toMarkdown */ \"../simple-mind-map/src/parse/toMarkdown.js\");\n/* harmony import */ var simple_mind_map_src_parse_toTxt__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! simple-mind-map/src/parse/toTxt */ \"../simple-mind-map/src/parse/toTxt.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/utils */ \"./src/utils/index.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/config */ \"./src/config/index.js\");\n/* harmony import */ var _hooks_useQueryFunction__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/hooks/useQueryFunction */ \"./src/hooks/useQueryFunction.tsx\");\n/* harmony import */ var _hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/hooks/useCrossFrameAPI */ \"./src/hooks/useCrossFrameAPI.ts\");\n/* harmony import */ var _pages_Edit_components_Export_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/pages/Edit/components/Export.vue */ \"./src/pages/Edit/components/Export.vue\");\n/* harmony import */ var _hooks_useData__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/hooks/useData */ \"./src/hooks/useData.tsx\");\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:53:10\n * @Desc: 右键菜单\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Contextmenu',\n inject: ['$bus'],\n components: {\n Export: _pages_Edit_components_Export_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"]\n },\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n isShow: false,\n left: 0,\n top: 0,\n node: null,\n type: '',\n isMousedown: false,\n mosuedownX: 0,\n mosuedownY: 0,\n enableCopyToClipboardApi: navigator.clipboard,\n numberType: '',\n numberLevel: '',\n subItemsShowLeft: false\n };\n },\n computed: {\n isMocMode() {\n var _this$injectConfig;\n return ((_this$injectConfig = this.injectConfig) === null || _this$injectConfig === void 0 ? void 0 : _this$injectConfig.type) === 'sy-doctree-moc-dom';\n },\n isDebugger() {\n const {\n isDebugger\n } = Object(_hooks_useQueryFunction__WEBPACK_IMPORTED_MODULE_7__[\"useQueryFunction\"])();\n return isDebugger.value;\n },\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapState\"])({\n injectConfig: state => state.injectConfig,\n isZenMode: state => state.localConfig.isZenMode,\n isDark: state => state.localConfig.isDark,\n supportNumbers: state => state.supportNumbers,\n supportCheckbox: state => state.supportCheckbox\n }),\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapGetters\"])(['mindMapFullDataWithConfig']),\n expandList() {\n return [this.$t('contextmenu.level1'), this.$t('contextmenu.level2'), this.$t('contextmenu.level3'), this.$t('contextmenu.level4'), this.$t('contextmenu.level5'), this.$t('contextmenu.level6')];\n },\n copyList() {\n const list = [\n // {\n // name: this.$t('contextmenu.copyToSmm'),\n // value: 'smm'\n // },\n {\n name: this.$t('contextmenu.copyToKMind'),\n value: 'kmind'\n }, {\n name: this.$t('contextmenu.copyToJson'),\n value: 'json'\n }, {\n name: this.$t('contextmenu.copyToMarkdown'),\n value: 'md'\n }, {\n name: this.$t('contextmenu.copyToTxt'),\n value: 'txt'\n }\n // {\n // name: '复制为html',\n // value: 'html'\n // }\n ];\n if (this.enableCopyToClipboardApi) {\n list.push({\n name: this.$t('contextmenu.copyToPng'),\n value: 'png'\n });\n }\n return list;\n },\n insertNodeBtnDisabled() {\n return !this.node || this.node.isRoot || this.node.isGeneralization;\n },\n upNodeBtnDisabled() {\n if (!this.node || this.node.isRoot || this.node.isGeneralization) {\n return true;\n }\n let isFirst = this.node.parent.children.findIndex(item => {\n return item === this.node;\n }) === 0;\n return isFirst;\n },\n downNodeBtnDisabled() {\n if (!this.node || this.node.isRoot || this.node.isGeneralization) {\n return true;\n }\n let children = this.node.parent.children;\n let isLast = children.findIndex(item => {\n return item === this.node;\n }) === children.length - 1;\n return isLast;\n },\n isGeneralization() {\n return this.node.isGeneralization;\n },\n hasHyperlink() {\n return !!this.node.getData('hyperlink');\n },\n hasSiyuanHyperlink() {\n return !!this.node.getData('siyuanHyperlink');\n },\n hasSiyuanPDFLink() {\n return !!this.node.getData('siyuanPDFLinkData');\n },\n hasNote() {\n return !!this.node.getData('note');\n },\n numberTypeList() {\n return _config__WEBPACK_IMPORTED_MODULE_6__[\"numberTypeList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_6__[\"numberTypeList\"].zh;\n },\n numberLevelList() {\n return _config__WEBPACK_IMPORTED_MODULE_6__[\"numberLevelList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_6__[\"numberLevelList\"].zh;\n },\n hasCheckbox() {\n return !!this.node.getData('checkbox');\n }\n },\n created() {\n this.$bus.$on('node_contextmenu', this.show);\n this.$bus.$on('node_click', this.hide);\n this.$bus.$on('draw_click', this.hide);\n this.$bus.$on('expand_btn_click', this.hide);\n this.$bus.$on('svg_mousedown', this.onMousedown);\n this.$bus.$on('mouseup', this.onMouseup);\n this.$bus.$on('translate', this.hide);\n },\n beforeDestroy() {\n this.$bus.$off('node_contextmenu', this.show);\n this.$bus.$off('node_click', this.hide);\n this.$bus.$off('draw_click', this.hide);\n this.$bus.$off('expand_btn_click', this.hide);\n this.$bus.$off('svg_mousedown', this.onMousedown);\n this.$bus.$off('mouseup', this.onMouseup);\n this.$bus.$off('translate', this.hide);\n },\n methods: {\n async refreshMocData() {\n try {\n var _this$injectConfig2;\n const {\n getMocDataFromSY\n } = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_10__[\"useData\"])();\n const docId = (_this$injectConfig2 = this.injectConfig) === null || _this$injectConfig2 === void 0 ? void 0 : _this$injectConfig2.name;\n if (!docId) {\n this.$message.warning(this.$t('moc.cannotGetDocId'));\n return;\n }\n this.$message.info(this.$t('moc.refreshing'));\n const res = await getMocDataFromSY(docId);\n if (res && res.mindMapData && res.mindMapData.root) {\n this.$bus.$emit('setData', res.mindMapData);\n this.$message.success(this.$t('moc.refreshSuccess'));\n } else {\n this.$message.error(this.$t('moc.refreshFailedNoData'));\n }\n } catch (e) {\n console.error('刷新 MOC 导图数据失败:', e);\n this.$message.error(this.$t('moc.refreshFailed'));\n } finally {\n this.hide();\n }\n },\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapMutations\"])(['setLocalConfig']),\n // 复制节点超链接\n copyKmindNodeHyperlink() {\n try {\n const node = this.node;\n const nodeUid = node.getData('uid');\n\n // 根据不同类型确定name字段的值\n let name = this.injectConfig.name;\n switch (this.injectConfig.type) {\n case 'sy-plugin':\n // 插件导图使用文件名\n name = this.injectConfig.name;\n break;\n case 'sy-doctree-doc':\n case 'sy-doctree-doc-dom':\n // 文档树导图使用文档ID\n // 从injectConfig获取文档ID,或者从当前环境获取\n name = this.injectConfig.name;\n break;\n case 'sy-widget':\n {\n // widget导图使用块ID\n // fixme 这里可能之后要适配用户会手动更改路径的问题,到时候就需要取具体的assets路径了\n const {\n getWidgetBlockInfo\n } = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_10__[\"useData\"])();\n const {\n id\n } = getWidgetBlockInfo();\n name = id;\n break;\n }\n }\n const data = {\n type: this.injectConfig.type,\n name: name,\n targetNodeId: nodeUid\n };\n\n // 使用encodeURIComponent确保特殊字符正确编码\n const dataStr = encodeURIComponent(JSON.stringify(data));\n const href = `siyuan://plugins/kmind-plugin?data=${dataStr}`;\n Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"copy\"])(href);\n this.$message.success(this.$t('contextmenu.copyNodeHyperlink'));\n this.hide(); // 隐藏菜单\n } catch (error) {\n console.error('复制节点超链接失败:', error);\n this.$message.error(this.$t('contextmenu.copyFail'));\n }\n },\n // 计算右键菜单元素的显示位置\n getShowPosition(x, y) {\n const rect = this.$refs.contextmenuRef.getBoundingClientRect();\n if (x + rect.width > window.innerWidth) {\n x = x - rect.width - 20;\n }\n this.subItemsShowLeft = x + rect.width + 150 > window.innerWidth;\n if (y + rect.height > window.innerHeight) {\n y = window.innerHeight - rect.height - 10;\n }\n return {\n x,\n y\n };\n },\n // 节点右键显示\n show(e, node) {\n this.type = 'node';\n this.isShow = true;\n this.node = node;\n const number = this.node.getData('number');\n if (number) {\n this.numberType = number.type || 1;\n this.numberLevel = number.level === '' ? 1 : number.level;\n }\n this.$nextTick(() => {\n const {\n x,\n y\n } = this.getShowPosition(e.clientX + 10, e.clientY + 10);\n this.left = x;\n this.top = y;\n // 触发右键菜单显示事件\n this.$bus.$emit('smm_contextmenu_show');\n });\n },\n // 鼠标按下事件\n onMousedown(e) {\n if (e.which !== 3) {\n return;\n }\n this.mosuedownX = e.clientX;\n this.mosuedownY = e.clientY;\n this.isMousedown = true;\n },\n // 鼠标松开事件\n onMouseup(e) {\n if (!this.isMousedown) {\n return;\n }\n this.isMousedown = false;\n if (Math.abs(this.mosuedownX - e.clientX) > 3 || Math.abs(this.mosuedownY - e.clientY) > 3) {\n this.hide();\n return;\n }\n this.show2(e);\n },\n // 画布右键显示\n show2(e) {\n this.type = 'svg';\n this.isShow = true;\n this.$nextTick(() => {\n const {\n x,\n y\n } = this.getShowPosition(e.clientX + 10, e.clientY + 10);\n this.left = x;\n this.top = y;\n // 触发右键菜单显示事件\n this.$bus.$emit('smm_contextmenu_show');\n });\n },\n // 隐藏\n hide() {\n this.isShow = false;\n this.left = -9999;\n this.top = -9999;\n this.type = '';\n this.node = '';\n this.numberType = '';\n this.numberLevel = '';\n // 触发右键菜单隐藏事件\n this.$bus.$emit('smm_contextmenu_hide');\n },\n // 执行命令\n async exec(key, disabled, ...args) {\n var _node$getData;\n if (disabled) {\n return;\n }\n switch (key) {\n case 'COPY_NODE':\n this.mindMap.renderer.copy();\n break;\n case 'CUT_NODE':\n this.mindMap.renderer.cut();\n break;\n case 'PASTE_NODE':\n this.mindMap.renderer.paste();\n break;\n case 'RETURN_CENTER':\n this.mindMap.renderer.setRootNodeCenter();\n break;\n case 'TOGGLE_ZEN_MODE':\n this.setLocalConfig({\n isZenMode: !this.isZenMode\n });\n break;\n case 'FIT_CANVAS':\n this.mindMap.view.fit();\n break;\n case 'REMOVE_HYPERLINK':\n this.node.setHyperlink('', '');\n break;\n case 'REMOVE_SIYUAN_HYPERLINK':\n this.node.setSiyuanHyperlink('', '');\n break;\n case 'REMOVE_SIYUAN_PDF_HYPERLINK':\n this.node.setSiyuanPDFHyperlink('', '');\n break;\n case 'REMOVE_NOTE':\n this.node.setNote('');\n break;\n case 'EXPORT_CUR_NODE_TO_PNG':\n this.mindMap.export('png', true, Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_2__[\"getTextFromHtml\"])(this.node.getData('text')), false, this.node);\n break;\n case 'KMIND_COPY_CUR_NODE_TO_PNG':\n const png = await this.mindMap.export('png', false, Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_2__[\"getTextFromHtml\"])(this.node.getData('text')), false, this.node);\n const blob = await Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_2__[\"imgToDataUrl\"])(png, true);\n Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"setImgToClipboard\"])(blob);\n this.$message.success(this.$t('contextmenu.copySuccess'));\n break;\n case 'KMIND_COPY_NODE_MIRROR_BLOCK':\n // todo 这里先适配文档树导图,后续的目标是适配dock导图\n const mirrorTargetNodeId = this.node.getData('uid');\n const randomId = globalThis.parent.Lute.NewNodeID();\n const path = this.injectConfig.doctreeDocPath;\n const content = `<iframe src=\"/plugins/kmind-plugin/app/#/\" data-src=\"/widgets/Kmind/\" data-subtype=\"widget\" border=\"0\" frameborder=\"no\" framespacing=\"0\" allowfullscreen=\"true\"></iframe>\n{: id=\"${randomId}\" custom-data-assets=\"assets/kmind-${randomId}.kmind\" custom-kmind-widget-mirror=\"${path}\" custom-kmind-widget-mirror-target-node-id=\"${mirrorTargetNodeId}\"}`;\n navigator.clipboard.writeText(content);\n this.$message.success(this.$t('contextmenu.kmindCopySuccessAnywhere'));\n break;\n case 'UNEXPAND_ALL':\n const uid = this.node ? this.node.uid : '';\n this.$bus.$emit('execCommand', key, !uid, uid);\n break;\n case 'EXPAND_ALL':\n this.$bus.$emit('execCommand', key, this.node ? this.node.uid : '');\n break;\n case 'ADD_SIYUAN_PAGE':\n const node = this.node;\n // fix 修复底层库问题,新建的概要节点没有uid\n if (!node.getData('uid')) {\n const timestamp = new Date().toISOString().replace(/[-:TZ]/g, '').replace('.', '');\n const randomChars = Math.random().toString(36).substring(2, 10);\n const newUid = `kmind-node-${timestamp}-${randomChars}`;\n node.setData({\n uid: newUid\n });\n }\n const isExist = (_node$getData = node.getData('siyuanHyperlink')) === null || _node$getData === void 0 ? void 0 : _node$getData.startsWith('siyuan://blocks/');\n if (isExist) {\n // 如果当前节点已经存在思源文档,则打开思源文档\n const docId = node.getData('siyuanHyperlink').split('/').pop();\n const {\n openDocRight\n } = Object(_hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_8__[\"useCrossFrameAPI\"])(this.injectConfig);\n openDocRight(docId);\n this.hide();\n return;\n }\n const text = Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_2__[\"getTextFromHtml\"])(node.getData('text'));\n const nodeId = node.getData('uid');\n const title = text.slice(0, 20).replace(/[^\\w\\s\\u4e00-\\u9fa5]/g, '');\n const sourceId = this.injectConfig.syDocId;\n const customDocAttrs = {\n 'custom-kmind-node-id': nodeId,\n 'custom-kmind-source-id': sourceId\n };\n // 是否是概要节点\n // console.log('node:', node)\n // console.log('node.isGeneralization:', node.isGeneralization)\n const isGeneralization = node.isGeneralization;\n if (isGeneralization) {\n // 思源坑预警,如果自定义属性值为boolean类型,那么整个属性设置会设置失败,所以这里需要转换为字符串\n customDocAttrs['custom-kmind-is-generalization'] = 'true';\n }\n globalThis.parent.kmindApi.createSYDoc(this.injectConfig.syDocId, {\n isAutoOpen: true,\n title,\n customDocAttrs,\n openPosition: 'right'\n }).then(newDocId => {\n // 给当前节点添加一个超链接,超链接的地址为思源文档的地址\n const syLink = `siyuan://blocks/${newDocId}`;\n node.setSiyuanHyperlink(syLink, 'Alt+左键单击悬浮预览');\n });\n break;\n default:\n this.$bus.$emit('execCommand', key, ...args);\n break;\n }\n this.hide();\n },\n // 设置节点编号\n setNodeNumber(prop, value) {\n if (prop === 'type') {\n this.numberType = value;\n if (value === '') {\n // 无编号\n this.numberLevel = '';\n this.mindMap.execCommand('SET_NUMBER', [], null);\n return;\n } else {\n // 有编号\n if (this.numberLevel === '') {\n this.numberLevel = 1;\n }\n }\n }\n if (prop === 'level') {\n this.numberLevel = value;\n }\n this.mindMap.execCommand('SET_NUMBER', [], {\n [prop]: value\n });\n this.hide();\n },\n // 设置待办\n setCheckbox() {\n this.mindMap.execCommand('SET_CHECKBOX', [], this.hasCheckbox ? null : {\n done: false\n });\n this.hide();\n },\n // 复制到剪贴板\n async copyToClipboard(type) {\n var _this$mindMap$getData;\n try {\n this.hide();\n let data;\n let str;\n switch (type) {\n case 'kmind':\n data = this.mindMapFullDataWithConfig;\n str = JSON.stringify(data);\n break;\n case 'smm':\n case 'json':\n data = this.mindMap.getData(true);\n str = JSON.stringify(data);\n break;\n case 'md':\n data = this.mindMap.getData();\n str = Object(simple_mind_map_src_parse_toMarkdown__WEBPACK_IMPORTED_MODULE_3__[\"transformToMarkdown\"])(data);\n break;\n case 'txt':\n data = this.mindMap.getData();\n str = Object(simple_mind_map_src_parse_toTxt__WEBPACK_IMPORTED_MODULE_4__[\"transformToTxt\"])(data);\n break;\n case 'png':\n const png = await this.mindMap.export('png', false);\n const blob = await Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_2__[\"imgToDataUrl\"])(png, true);\n Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"setImgToClipboard\"])(blob);\n break;\n case 'html':\n const html = this.renderTreeToHtml((_this$mindMap$getData = this.mindMap.getData(true)) === null || _this$mindMap$getData === void 0 ? void 0 : _this$mindMap$getData.root);\n str = html;\n break;\n default:\n break;\n }\n if (str) {\n if (this.enableCopyToClipboardApi) {\n Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"setDataToClipboard\"])(str);\n } else {\n Object(_utils__WEBPACK_IMPORTED_MODULE_5__[\"copy\"])(str);\n }\n }\n this.$message.success(this.$t('contextmenu.copySuccess'));\n } catch (error) {\n console.log(error);\n this.$message.error(this.$t('contextmenu.copyFail'));\n }\n },\n // 导出为html\n renderTreeToHtml(node) {\n let html = '<ul>';\n\n // 处理当前节点\n const text = this.extractTextFromHtml(node.data.text);\n const href = `siyuan://kmind/${node.data.uid}`;\n html += `<li><a href=\"${href}\">${text}</a>`;\n\n // 处理子节点\n if (node.children && node.children.length > 0) {\n html += node.children.map(this.renderTreeToHtml).join('');\n }\n html += '</li></ul>';\n return html;\n },\n // 提取文本\n extractTextFromHtml(html) {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, 'text/html');\n return doc.documentElement.textContent;\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Contextmenu.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Count.vue?vue&type=script&lang=js":
/*!************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Count.vue?vue&type=script&lang=js ***!
\************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _hooks_useData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/hooks/useData */ \"./src/hooks/useData.tsx\");\n/* harmony import */ var _mixins_domMode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/mixins/domMode */ \"./src/mixins/domMode.js\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n\n\n\nconst {\n wordsCount,\n nodeCount\n} = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_1__[\"useData\"])();\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:53:10\n * @Desc: 字数及节点数量统计\n */\n\nlet countEl = document.createElement('div');\nconst __default__ = {\n name: 'Count',\n inject: ['$bus'],\n mixins: [_mixins_domMode__WEBPACK_IMPORTED_MODULE_2__[\"default\"]],\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n textStr: '',\n words: 0,\n num: 0\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapState\"])({\n isDark: state => state.localConfig.isDark\n })\n },\n created() {\n this.$bus.$on('data_change', this.onDataChange);\n if (this.mindMap) {\n this.onDataChange(this.mindMap.getData());\n }\n },\n beforeDestroy() {\n this.$bus.$off('data_change', this.onDataChange);\n },\n methods: {\n /**\n * @Author: 王林25\n * @Date: 2022-11-14 19:20:20\n * @Desc: 监听数据变化\n */\n onDataChange(data) {\n this.textStr = '';\n this.words = 0;\n this.num = 0;\n this.walk(data);\n countEl.innerHTML = this.textStr;\n this.words = countEl.textContent.length;\n wordsCount.value = this.words;\n nodeCount.value = this.num;\n },\n /**\n * @Author: 王林\n * @Date: 2021-06-30 22:13:07\n * @Desc: 遍历\n */\n walk(data) {\n if (!data) return;\n this.num++;\n this.textStr += String(data.data.text) || '';\n if (data.children && data.children.length > 0) {\n data.children.forEach(item => {\n this.walk(item);\n });\n }\n }\n }\n};\n\nconst __injectCSSVars__ = () => {\n Object(vue__WEBPACK_IMPORTED_MODULE_3__[\"useCssVars\"])((_vm, _setup) => ({\n \"930436b2-positionMode\": _vm.positionMode\n }));\n};\nconst __setup__ = __default__.setup;\n__default__.setup = __setup__ ? (props, ctx) => {\n __injectCSSVars__();\n return __setup__(props, ctx);\n} : __injectCSSVars__;\n/* harmony default export */ __webpack_exports__[\"default\"] = (__default__);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Count.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Demonstrate.vue?vue&type=script&lang=js":
/*!******************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Demonstrate.vue?vue&type=script&lang=js ***!
\******************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n inject: ['$bus'],\n props: {\n mindMap: {\n type: Object\n },\n isDark: {\n type: Boolean\n }\n },\n data() {\n return {\n isEnterDemonstrate: false,\n curStepIndex: 0,\n totalStep: 0,\n inputStep: ''\n };\n },\n created() {\n this.$bus.$on('demonstrate_jump', this.onJump);\n this.$bus.$on('exit_demonstrate', this.onExit);\n },\n methods: {\n enterDemoMode() {\n this.isEnterDemonstrate = true;\n this.$nextTick(() => {\n const el = document.querySelector('#mindMapContainer');\n el.appendChild(this.$refs.exitDemonstrateBtnRef);\n el.appendChild(this.$refs.stepBoxRef);\n });\n this.mindMap.demonstrate.enter();\n },\n exit() {\n this.mindMap.demonstrate.exit();\n },\n onExit() {\n this.isEnterDemonstrate = false;\n this.curStepIndex = 0;\n this.totalStep = 0;\n },\n onJump(index, total) {\n this.curStepIndex = index;\n this.totalStep = total;\n },\n prev() {\n this.mindMap.demonstrate.prev();\n },\n next() {\n this.mindMap.demonstrate.next();\n },\n onEnter() {\n const num = Number(this.inputStep);\n if (Number.isNaN(num)) {\n this.inputStep = '';\n } else if (num >= 1 && num <= this.totalStep) {\n this.mindMap.demonstrate.jump(num - 1);\n }\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Demonstrate.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Edit.vue?vue&type=script&lang=js":
/*!***********************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Edit.vue?vue&type=script&lang=js ***!
\***********************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _api_siyuan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/api/siyuan */ \"./src/api/siyuan.tsx\");\n/* harmony import */ var _hooks_useKMindMirrorBlock__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/hooks/useKMindMirrorBlock */ \"./src/hooks/useKMindMirrorBlock.tsx\");\n/* harmony import */ var _utils_logger_vue_plugin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/logger/vue-plugin */ \"./src/utils/logger/vue-plugin.ts\");\n/* harmony import */ var simple_mind_map_src_parse_toTxt__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! simple-mind-map/src/parse/toTxt */ \"../simple-mind-map/src/parse/toTxt.js\");\n/* harmony import */ var _siyuan_plugin_src_src_hooks_useMessageCenter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../siyuan-plugin-src/src/hooks/useMessageCenter */ \"./siyuan-plugin-src/src/hooks/useMessageCenter.ts\");\n/* harmony import */ var simple_mind_map__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! simple-mind-map */ \"../simple-mind-map/index.js\");\n/* harmony import */ var _simple_mind_map_plugin_themes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/../../simple-mind-map-plugin-themes */ \"../simple-mind-map-plugin-themes/index.js\");\n/* harmony import */ var simple_mind_map_src_plugins_AssociativeLine_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! simple-mind-map/src/plugins/AssociativeLine.js */ \"../simple-mind-map/src/plugins/AssociativeLine.js\");\n/* harmony import */ var simple_mind_map_src_plugins_Demonstrate_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! simple-mind-map/src/plugins/Demonstrate.js */ \"../simple-mind-map/src/plugins/Demonstrate.js\");\n/* harmony import */ var simple_mind_map_src_plugins_Drag_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! simple-mind-map/src/plugins/Drag.js */ \"../simple-mind-map/src/plugins/Drag.js\");\n/* harmony import */ var simple_mind_map_src_plugins_Export_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! simple-mind-map/src/plugins/Export.js */ \"../simple-mind-map/src/plugins/Export.js\");\n/* harmony import */ var simple_mind_map_src_plugins_ExportPDF_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! simple-mind-map/src/plugins/ExportPDF.js */ \"../simple-mind-map/src/plugins/ExportPDF.js\");\n/* harmony import */ var simple_mind_map_src_plugins_ExportXMind_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! simple-mind-map/src/plugins/ExportXMind.js */ \"../simple-mind-map/src/plugins/ExportXMind.js\");\n/* harmony import */ var simple_mind_map_src_plugins_Formula_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! simple-mind-map/src/plugins/Formula.js */ \"../simple-mind-map/src/plugins/Formula.js\");\n/* harmony import */ var simple_mind_map_src_plugins_KeyboardNavigation_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! simple-mind-map/src/plugins/KeyboardNavigation.js */ \"../simple-mind-map/src/plugins/KeyboardNavigation.js\");\n/* harmony import */ var simple_mind_map_src_plugins_MindMapLayoutPro_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! simple-mind-map/src/plugins/MindMapLayoutPro.js */ \"../simple-mind-map/src/plugins/MindMapLayoutPro.js\");\n/* harmony import */ var simple_mind_map_src_plugins_MiniMap_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! simple-mind-map/src/plugins/MiniMap.js */ \"../simple-mind-map/src/plugins/MiniMap.js\");\n/* harmony import */ var simple_mind_map_src_plugins_NodeImgAdjust_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! simple-mind-map/src/plugins/NodeImgAdjust.js */ \"../simple-mind-map/src/plugins/NodeImgAdjust.js\");\n/* harmony import */ var simple_mind_map_src_plugins_OuterFrame_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! simple-mind-map/src/plugins/OuterFrame.js */ \"../simple-mind-map/src/plugins/OuterFrame.js\");\n/* harmony import */ var simple_mind_map_src_plugins_Painter_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! simple-mind-map/src/plugins/Painter.js */ \"../simple-mind-map/src/plugins/Painter.js\");\n/* harmony import */ var simple_mind_map_src_plugins_RainbowLines_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! simple-mind-map/src/plugins/RainbowLines.js */ \"../simple-mind-map/src/plugins/RainbowLines.js\");\n/* harmony import */ var simple_mind_map_src_plugins_RichText_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! simple-mind-map/src/plugins/RichText.js */ \"../simple-mind-map/src/plugins/RichText.js\");\n/* harmony import */ var simple_mind_map_src_plugins_Scrollbar_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! simple-mind-map/src/plugins/Scrollbar.js */ \"../simple-mind-map/src/plugins/Scrollbar.js\");\n/* harmony import */ var simple_mind_map_src_plugins_Search_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! simple-mind-map/src/plugins/Search.js */ \"../simple-mind-map/src/plugins/Search.js\");\n/* harmony import */ var simple_mind_map_src_plugins_Select_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! simple-mind-map/src/plugins/Select.js */ \"../simple-mind-map/src/plugins/Select.js\");\n/* harmony import */ var simple_mind_map_src_plugins_TouchEvent_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! simple-mind-map/src/plugins/TouchEvent.js */ \"../simple-mind-map/src/plugins/TouchEvent.js\");\n/* harmony import */ var simple_mind_map_src_plugins_Watermark_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! simple-mind-map/src/plugins/Watermark.js */ \"../simple-mind-map/src/plugins/Watermark.js\");\n/* harmony import */ var simple_mind_map_src_plugins_SYMoc_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! simple-mind-map/src/plugins/SYMoc.js */ \"../simple-mind-map/src/plugins/SYMoc.js\");\n/* harmony import */ var simple_mind_map_plugin_freemind__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! simple-mind-map-plugin-freemind */ \"../simple-mind-map-plugin-freemind/index.js\");\n/* harmony import */ var simple_mind_map_plugin_checkbox__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! simple-mind-map-plugin-checkbox */ \"../simple-mind-map-plugin-checkbox/index.js\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! @/api */ \"./src/api/index.js\");\n/* harmony import */ var _config_icon__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! @/config/icon */ \"./src/config/icon.js\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _BaseStyle__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./BaseStyle */ \"./src/pages/Edit/components/BaseStyle.vue\");\n/* harmony import */ var _Contextmenu__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./Contextmenu */ \"./src/pages/Edit/components/Contextmenu.vue\");\n/* harmony import */ var _Count__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./Count */ \"./src/pages/Edit/components/Count.vue\");\n/* harmony import */ var _Navigator_vue__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./Navigator.vue */ \"./src/pages/Edit/components/Navigator.vue\");\n/* harmony import */ var _NavigatorToolbar__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./NavigatorToolbar */ \"./src/pages/Edit/components/NavigatorToolbar.vue\");\n/* harmony import */ var _NodeImgPreview_vue__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./NodeImgPreview.vue */ \"./src/pages/Edit/components/NodeImgPreview.vue\");\n/* harmony import */ var _NodeNoteContentShow_vue__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./NodeNoteContentShow.vue */ \"./src/pages/Edit/components/NodeNoteContentShow.vue\");\n/* harmony import */ var _OutlineSidebar__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./OutlineSidebar */ \"./src/pages/Edit/components/OutlineSidebar.vue\");\n/* harmony import */ var _RichTextToolbar__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./RichTextToolbar */ \"./src/pages/Edit/components/RichTextToolbar.vue\");\n/* harmony import */ var _ShortcutKey__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./ShortcutKey */ \"./src/pages/Edit/components/ShortcutKey.vue\");\n/* harmony import */ var _SidebarTrigger_vue__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./SidebarTrigger.vue */ \"./src/pages/Edit/components/SidebarTrigger.vue\");\n/* harmony import */ var _Structure__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./Structure */ \"./src/pages/Edit/components/Structure.vue\");\n/* harmony import */ var _Style__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./Style */ \"./src/pages/Edit/components/Style.vue\");\n/* harmony import */ var _Theme__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./Theme */ \"./src/pages/Edit/components/Theme.vue\");\n/* harmony import */ var _config_constant__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! @/config/constant */ \"./src/config/constant.js\");\n/* harmony import */ var _hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! @/hooks/useCrossFrameAPI */ \"./src/hooks/useCrossFrameAPI.ts\");\n/* harmony import */ var _hooks_useData__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! @/hooks/useData */ \"./src/hooks/useData.tsx\");\n/* harmony import */ var _hooks_useGlobalConfig__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! @/hooks/useGlobalConfig */ \"./src/hooks/useGlobalConfig.tsx\");\n/* harmony import */ var _hooks_useKMindHistory__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! @/hooks/useKMindHistory */ \"./src/hooks/useKMindHistory.tsx\");\n/* harmony import */ var _hooks_useQueryFunction__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! @/hooks/useQueryFunction */ \"./src/hooks/useQueryFunction.tsx\");\n/* harmony import */ var _hooks_useSiYuanAddFloatLayer__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! @/hooks/useSiYuanAddFloatLayer */ \"./src/hooks/useSiYuanAddFloatLayer.tsx\");\n/* harmony import */ var _hooks_useVisibilityDetection__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! @/hooks/useVisibilityDetection */ \"./src/hooks/useVisibilityDetection.js\");\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! @/i18n */ \"./src/i18n.js\");\n/* harmony import */ var _mixins_domMode__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! @/mixins/domMode */ \"./src/mixins/domMode.js\");\n/* harmony import */ var _utils_handleClipboardText__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! @/utils/handleClipboardText */ \"./src/utils/handleClipboardText.js\");\n/* harmony import */ var _utils_kmindInitLoading__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! @/utils/kmindInitLoading */ \"./src/utils/kmindInitLoading.tsx\");\n/* harmony import */ var _utils_loading__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! @/utils/loading */ \"./src/utils/loading.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_62___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_62__);\n/* harmony import */ var simple_mind_map_example_exampleData__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! simple-mind-map/example/exampleData */ \"../simple-mind-map/example/exampleData.js\");\n/* harmony import */ var _AssociativeLineStyle_vue__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./AssociativeLineStyle.vue */ \"./src/pages/Edit/components/AssociativeLineStyle.vue\");\n/* harmony import */ var _FormulaSidebar_vue__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./FormulaSidebar.vue */ \"./src/pages/Edit/components/FormulaSidebar.vue\");\n/* harmony import */ var _KmindFloatToolbar_KmindFloatToolbar_vue__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./KmindFloatToolbar/KmindFloatToolbar.vue */ \"./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue\");\n/* harmony import */ var _KmindHistory_KMindHistory_vue__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./KmindHistory/KMindHistory.vue */ \"./src/pages/Edit/components/KmindHistory/KMindHistory.vue\");\n/* harmony import */ var _KmindHistoryModal_KmindHistoryModal_vue__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./KmindHistoryModal/KmindHistoryModal.vue */ \"./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue\");\n/* harmony import */ var _NodeAttachment_vue__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./NodeAttachment.vue */ \"./src/pages/Edit/components/NodeAttachment.vue\");\n/* harmony import */ var _NodeIconSidebar_vue__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./NodeIconSidebar.vue */ \"./src/pages/Edit/components/NodeIconSidebar.vue\");\n/* harmony import */ var _NodeIconToolbar_vue__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./NodeIconToolbar.vue */ \"./src/pages/Edit/components/NodeIconToolbar.vue\");\n/* harmony import */ var _NodeImgPlacementToolbar_vue__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./NodeImgPlacementToolbar.vue */ \"./src/pages/Edit/components/NodeImgPlacementToolbar.vue\");\n/* harmony import */ var _NodeOuterFrame_vue__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./NodeOuterFrame.vue */ \"./src/pages/Edit/components/NodeOuterFrame.vue\");\n/* harmony import */ var _NodeTagStyle_vue__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./NodeTagStyle.vue */ \"./src/pages/Edit/components/NodeTagStyle.vue\");\n/* harmony import */ var simple_mind_map_src_svg_icons__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! simple-mind-map/src/svg/icons */ \"../simple-mind-map/src/svg/icons.js\");\n/* harmony import */ var _OpenSiyuanFloat_index_vue__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./OpenSiyuanFloat/index.vue */ \"./src/pages/Edit/components/OpenSiyuanFloat/index.vue\");\n/* harmony import */ var _OutlineEdit_vue__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./OutlineEdit.vue */ \"./src/pages/Edit/components/OutlineEdit.vue\");\n/* harmony import */ var _Scrollbar_vue__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./Scrollbar.vue */ \"./src/pages/Edit/components/Scrollbar.vue\");\n/* harmony import */ var _Search_vue__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./Search.vue */ \"./src/pages/Edit/components/Search.vue\");\n/* harmony import */ var _Setting_vue__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./Setting.vue */ \"./src/pages/Edit/components/Setting.vue\");\n/* harmony import */ var _SourceCodeEdit_vue__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./SourceCodeEdit.vue */ \"./src/pages/Edit/components/SourceCodeEdit.vue\");\n\n\n\n\n\n\n// import SiyuanPDFLink from 'simple-mind-map-plugin-kmind-siyuan-pdf-link'\n\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 Cooperate from 'simple-mind-map/src/plugins/Cooperate.js'\n// 以下插件为付费插件,详情请查看开发文档。依次为:手绘风格插件、标记插件、编号插件、Freemind软件格式导入导出插件、Excel软件格式导入导出插件、待办插件、节点连线流动效果插件、动量效果插件\n// import HandDrawnLikeStyle from 'simple-mind-map-plugin-handdrawnlikestyle'\n// import Notation from 'simple-mind-map-plugin-notation'\n// import Numbers from 'simple-mind-map-plugin-numbers'\n\n// import Excel from 'simple-mind-map-plugin-excel'\n\n// import LineFlow from 'simple-mind-map-plugin-lineflow'\n// import Momentum from 'simple-mind-map-plugin-momentum'\n// npm link simple-mind-map-plugin-excel simple-mind-map-plugin-freemind simple-mind-map-plugin-numbers simple-mind-map-plugin-notation simple-mind-map-plugin-handdrawnlikestyle simple-mind-map-plugin-checkbox simple-mind-map simple-mind-map-plugin-themes simple-mind-map-plugin-lineflow simple-mind-map-plugin-momentum\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// import i18n from '../../../i18n'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst {\n setIsMirrorBlock,\n setMirrorTargetNodeId,\n setMindMapInstance,\n setMirrorRootNodeCenter\n} = Object(_hooks_useKMindMirrorBlock__WEBPACK_IMPORTED_MODULE_2__[\"useKMindMirrorBlock\"])();\n// 注册插件\nsimple_mind_map__WEBPACK_IMPORTED_MODULE_6__[\"default\"].usePlugin(simple_mind_map_src_plugins_MiniMap_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"])\n// .usePlugin(SiyuanPDFLink)\n.usePlugin(simple_mind_map_src_plugins_Watermark_js__WEBPACK_IMPORTED_MODULE_27__[\"default\"]).usePlugin(simple_mind_map_src_plugins_Drag_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]).usePlugin(simple_mind_map_src_plugins_KeyboardNavigation_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"]).usePlugin(simple_mind_map_src_plugins_ExportPDF_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"]).usePlugin(simple_mind_map_src_plugins_ExportXMind_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]).usePlugin(simple_mind_map_src_plugins_Export_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"]).usePlugin(simple_mind_map_src_plugins_Select_js__WEBPACK_IMPORTED_MODULE_25__[\"default\"]).usePlugin(simple_mind_map_src_plugins_AssociativeLine_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]).usePlugin(simple_mind_map_src_plugins_NodeImgAdjust_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"]).usePlugin(simple_mind_map_src_plugins_TouchEvent_js__WEBPACK_IMPORTED_MODULE_26__[\"default\"]).usePlugin(simple_mind_map_src_plugins_Search_js__WEBPACK_IMPORTED_MODULE_24__[\"default\"]).usePlugin(simple_mind_map_src_plugins_Painter_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"]).usePlugin(simple_mind_map_src_plugins_Formula_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"]).usePlugin(simple_mind_map_src_plugins_RainbowLines_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"]).usePlugin(simple_mind_map_src_plugins_Demonstrate_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]).usePlugin(simple_mind_map_src_plugins_OuterFrame_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"]).usePlugin(simple_mind_map_src_plugins_MindMapLayoutPro_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"]).usePlugin(simple_mind_map_src_plugins_SYMoc_js__WEBPACK_IMPORTED_MODULE_28__[\"default\"]);\n// .usePlugin(Cooperate) // 协同插件\n\n// 注册主题\n_simple_mind_map_plugin_themes__WEBPACK_IMPORTED_MODULE_7__[\"default\"].init(simple_mind_map__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n\n// 注册自定义主题的 Promise\n// TODO 优化:可以在插件加载的时候,就加载自定义主题,挂载到全局对象在,然后在这里可以从全局对象读取\nconst customThemesLoadedPromise = async function loadCustomThemes() {\n try {\n const {\n listFileForPlugin,\n getFileForPlugin\n } = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(null, /*! @/api/siyuan */ \"./src/api/siyuan.tsx\"));\n const themeDir = '/data/storage/petal/kmind/theme';\n const files = await listFileForPlugin({\n path: themeDir\n }).catch(() => []);\n for (const file of files) {\n if (!file.isDir && file.name.endsWith('.json')) {\n const themeName = file.name.replace('.json', '');\n const filePath = `${themeDir}/${file.name}`;\n const content = await getFileForPlugin({\n path: filePath\n });\n if (content && content.meta) {\n const themeValue = `custom_${themeName}`;\n // 移除meta信息,只使用主题配置\n const themeConfig = {\n ...content\n };\n delete themeConfig.meta;\n simple_mind_map__WEBPACK_IMPORTED_MODULE_6__[\"default\"].defineTheme(themeValue, themeConfig);\n console.log('已注册自定义主题:', themeValue);\n }\n }\n }\n console.log('自定义主题加载完成');\n } catch (error) {\n console.error('加载自定义主题失败:', error);\n }\n}();\nconst __default__ = {\n name: 'Edit',\n mixins: [_mixins_domMode__WEBPACK_IMPORTED_MODULE_58__[\"default\"]],\n inject: ['$bus'],\n setup() {\n // 使用日志系统,为编辑器组件设置默认类型\n const logger = Object(_utils_logger_vue_plugin__WEBPACK_IMPORTED_MODULE_3__[\"useLogger\"])('editor');\n return {\n ...logger,\n // 添加特定类型的日志方法\n logRender: logger.withType('render'),\n logMirror: logger.withType('mirror-block'),\n logData: logger.withType('data'),\n logHistory: logger.withType('history')\n };\n },\n components: {\n KmindHistory: _KmindHistory_KMindHistory_vue__WEBPACK_IMPORTED_MODULE_67__[\"default\"],\n KmindHistoryModal: _KmindHistoryModal_KmindHistoryModal_vue__WEBPACK_IMPORTED_MODULE_68__[\"default\"],\n OutlineSidebar: _OutlineSidebar__WEBPACK_IMPORTED_MODULE_42__[\"default\"],\n Style: _Style__WEBPACK_IMPORTED_MODULE_47__[\"default\"],\n BaseStyle: _BaseStyle__WEBPACK_IMPORTED_MODULE_35__[\"default\"],\n Theme: _Theme__WEBPACK_IMPORTED_MODULE_48__[\"default\"],\n Structure: _Structure__WEBPACK_IMPORTED_MODULE_46__[\"default\"],\n Count: _Count__WEBPACK_IMPORTED_MODULE_37__[\"default\"],\n NavigatorToolbar: _NavigatorToolbar__WEBPACK_IMPORTED_MODULE_39__[\"default\"],\n ShortcutKey: _ShortcutKey__WEBPACK_IMPORTED_MODULE_44__[\"default\"],\n Contextmenu: _Contextmenu__WEBPACK_IMPORTED_MODULE_36__[\"default\"],\n RichTextToolbar: _RichTextToolbar__WEBPACK_IMPORTED_MODULE_43__[\"default\"],\n KmindFloatToolbar: _KmindFloatToolbar_KmindFloatToolbar_vue__WEBPACK_IMPORTED_MODULE_66__[\"default\"],\n NodeNoteContentShow: _NodeNoteContentShow_vue__WEBPACK_IMPORTED_MODULE_41__[\"default\"],\n Navigator: _Navigator_vue__WEBPACK_IMPORTED_MODULE_38__[\"default\"],\n NodeImgPreview: _NodeImgPreview_vue__WEBPACK_IMPORTED_MODULE_40__[\"default\"],\n SidebarTrigger: _SidebarTrigger_vue__WEBPACK_IMPORTED_MODULE_45__[\"default\"],\n Search: _Search_vue__WEBPACK_IMPORTED_MODULE_79__[\"default\"],\n NodeIconSidebar: _NodeIconSidebar_vue__WEBPACK_IMPORTED_MODULE_70__[\"default\"],\n NodeIconToolbar: _NodeIconToolbar_vue__WEBPACK_IMPORTED_MODULE_71__[\"default\"],\n OutlineEdit: _OutlineEdit_vue__WEBPACK_IMPORTED_MODULE_77__[\"default\"],\n Scrollbar: _Scrollbar_vue__WEBPACK_IMPORTED_MODULE_78__[\"default\"],\n FormulaSidebar: _FormulaSidebar_vue__WEBPACK_IMPORTED_MODULE_65__[\"default\"],\n SourceCodeEdit: _SourceCodeEdit_vue__WEBPACK_IMPORTED_MODULE_81__[\"default\"],\n NodeAttachment: _NodeAttachment_vue__WEBPACK_IMPORTED_MODULE_69__[\"default\"],\n NodeOuterFrame: _NodeOuterFrame_vue__WEBPACK_IMPORTED_MODULE_73__[\"default\"],\n NodeTagStyle: _NodeTagStyle_vue__WEBPACK_IMPORTED_MODULE_74__[\"default\"],\n OpenSiyuanFloat: _OpenSiyuanFloat_index_vue__WEBPACK_IMPORTED_MODULE_76__[\"default\"],\n Setting: _Setting_vue__WEBPACK_IMPORTED_MODULE_80__[\"default\"],\n AssociativeLineStyle: _AssociativeLineStyle_vue__WEBPACK_IMPORTED_MODULE_64__[\"default\"],\n NodeImgPlacementToolbar: _NodeImgPlacementToolbar_vue__WEBPACK_IMPORTED_MODULE_72__[\"default\"]\n },\n data() {\n return {\n autoSaveHistoryTimer: null,\n enableShowLoading: true,\n mindMap: null,\n mindMapData: null,\n prevImg: '',\n storeConfigTimer: null,\n showDragMask: false,\n isNewKMind: false,\n // 每次从外部获取数据后,数据变化次数\n dataChangeNum: 0,\n senderId: '',\n subscriberId: '',\n messageCenter: null,\n // 新的消息中心\n visibilityCleanup: null,\n // 保存可见性检测的清理函数\n unsubscribe: null,\n pendingNodeLocate: null,\n // 待定位的节点信息\n hiddenRefreshData: '',\n isHidden: false,\n resizeObserver: null\n };\n },\n computed: {\n globalConfig() {\n const {\n globalConfig\n } = Object(_hooks_useGlobalConfig__WEBPACK_IMPORTED_MODULE_52__[\"useGlobalConfig\"])();\n return globalConfig.value;\n },\n isDebugger() {\n const {\n isDebugger\n } = Object(_hooks_useQueryFunction__WEBPACK_IMPORTED_MODULE_54__[\"useQueryFunction\"])();\n return isDebugger.value;\n },\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_34__[\"mapState\"])({\n isDark: state => state.localConfig.isDark,\n isZenMode: state => state.localConfig.isZenMode,\n openNodeRichText: state => state.localConfig.openNodeRichText,\n isShowScrollbar: state => state.localConfig.isShowScrollbar,\n enableDragImport: state => state.localConfig.enableDragImport,\n useLeftKeySelectionRightKeyDrag: state => state.localConfig.useLeftKeySelectionRightKeyDrag,\n isUseHandDrawnLikeStyle: state => state.localConfig.isUseHandDrawnLikeStyle,\n isUseMomentum: state => state.localConfig.isUseMomentum,\n extraTextOnExport: state => state.extraTextOnExport,\n injectConfig: state => state.injectConfig,\n isDragOutlineTreeNode: state => state.isDragOutlineTreeNode\n }),\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_34__[\"mapGetters\"])(['mindMapFullDataWithConfig']),\n isDomMode() {\n var _this$injectConfig, _this$injectConfig2;\n return ((_this$injectConfig = this.injectConfig) === null || _this$injectConfig === void 0 ? void 0 : _this$injectConfig.type) === 'sy-doctree-doc-dom' || ((_this$injectConfig2 = this.injectConfig) === null || _this$injectConfig2 === void 0 ? void 0 : _this$injectConfig2.type) === 'sy-doctree-moc-dom';\n },\n loadingTarget() {\n // 在插件模式下,使用父组件的容器作为 target\n return this.isDomMode ? this.$parent.$el : document.body;\n },\n storeDataString() {\n // 获取整个 store 状态,确保响应式\n const storeState = {\n mindMapDataJson: this.$store.state.mindMapDataJson,\n localConfig: this.$store.state.localConfig,\n injectConfig: this.$store.state.injectConfig,\n extraTextOnExport: this.$store.state.extraTextOnExport,\n isDragOutlineTreeNode: this.$store.state.isDragOutlineTreeNode,\n // 添加其他你想监控的状态\n supportHandDrawnLikeStyle: this.$store.state.supportHandDrawnLikeStyle,\n supportMomentum: this.$store.state.supportMomentum,\n supportMark: this.$store.state.supportMark,\n supportNumbers: this.$store.state.supportNumbers,\n supportFreemind: this.$store.state.supportFreemind,\n supportExcel: this.$store.state.supportExcel,\n supportCheckbox: this.$store.state.supportCheckbox,\n supportLineFlow: this.$store.state.supportLineFlow,\n isSourceCodeEdit: this.$store.state.isSourceCodeEdit,\n isFullDataFile: this.$store.state.isFullDataFile,\n openSettings: this.$store.state.openSettings,\n isShowCount: this.$store.state.isShowCount,\n isReadonly: this.$store.state.isReadonly,\n activeSidebar: this.$store.state.activeSidebar,\n isDark: this.$store.state.isDark,\n outerFrameActiveNodeKey: this.$store.state.outerFrameActiveNodeKey\n // kmindConfig: this.$store.state.kmindConfig\n };\n // 返回格式化的 JSON 字符串\n return this.safeStringify(storeState);\n }\n },\n watch: {\n openNodeRichText() {\n if (this.openNodeRichText) {\n this.addRichTextPlugin();\n } else {\n this.removeRichTextPlugin();\n }\n },\n isShowScrollbar() {\n if (this.isShowScrollbar) {\n this.addScrollbarPlugin();\n } else {\n this.removeScrollbarPlugin();\n }\n },\n isUseHandDrawnLikeStyle() {\n if (this.isUseHandDrawnLikeStyle) {\n this.addHandDrawnLikeStylePlugin();\n } else {\n this.removeHandDrawnLikeStylePlugin();\n }\n },\n isUseMomentum() {\n if (this.isUseMomentum) {\n this.addMomentumPlugin();\n } else {\n this.removeMomentumPlugin();\n }\n }\n },\n async mounted() {\n var _this$injectConfig3, _this$injectConfig4, _this$injectConfig5, _this$injectConfig6, _this$injectConfig7, _this$injectConfig8, _this$injectConfig9, _this$injectConfig10;\n this.info('编辑器开始初始化', {\n type: (_this$injectConfig3 = this.injectConfig) === null || _this$injectConfig3 === void 0 ? void 0 : _this$injectConfig3.type,\n name: (_this$injectConfig4 = this.injectConfig) === null || _this$injectConfig4 === void 0 ? void 0 : _this$injectConfig4.name\n });\n\n // showLoading()\n Object(_utils_kmindInitLoading__WEBPACK_IMPORTED_MODULE_60__[\"showKMindInitLoading\"])(this, this.loadingTarget);\n // this.showNewFeatureInfo()\n // 初始化全局配置\n const {\n initGlobalConfig\n } = Object(_hooks_useGlobalConfig__WEBPACK_IMPORTED_MODULE_52__[\"useGlobalConfig\"])();\n initGlobalConfig(this.injectConfig);\n this.debug('全局配置初始化完成');\n\n // 等待自定义主题加载完成\n await customThemesLoadedPromise;\n this.debug('自定义主题注册完成');\n await this.getData();\n this.init();\n this.$bus.$on('execCommand', this.execCommand);\n this.$bus.$on('paddingChange', this.onPaddingChange);\n this.$bus.$on('export', this.export);\n this.$bus.$on('getMindMapData', this.getMindMapData);\n this.$bus.$on('kmindUpdateConfig', this.kmindUpdateConfig);\n this.$bus.$on('setData', this.setData);\n this.$bus.$on('startTextEdit', this.handleStartTextEdit);\n this.$bus.$on('endTextEdit', this.handleEndTextEdit);\n this.$bus.$on('createAssociativeLine', this.handleCreateLineFromActiveNode);\n this.$bus.$on('startPainter', this.handleStartPainter);\n this.$bus.$on('node_tree_render_end', this.handleHideLoading);\n this.$bus.$on('showLoading', this.handleShowLoading);\n // 根据是否在容器内运行决定监听方式\n // 包括 iframe 插件模式、widget 模式、文档树模式等\n const isContainerMode = ((_this$injectConfig5 = this.injectConfig) === null || _this$injectConfig5 === void 0 || (_this$injectConfig5 = _this$injectConfig5.type) === null || _this$injectConfig5 === void 0 ? void 0 : _this$injectConfig5.includes('plugin')) || ((_this$injectConfig6 = this.injectConfig) === null || _this$injectConfig6 === void 0 || (_this$injectConfig6 = _this$injectConfig6.type) === null || _this$injectConfig6 === void 0 ? void 0 : _this$injectConfig6.includes('widget')) || ((_this$injectConfig7 = this.injectConfig) === null || _this$injectConfig7 === void 0 ? void 0 : _this$injectConfig7.type) === 'sy-doctree-doc' || ((_this$injectConfig8 = this.injectConfig) === null || _this$injectConfig8 === void 0 ? void 0 : _this$injectConfig8.type) === 'sy-doctree-doc-dom' || ((_this$injectConfig9 = this.injectConfig) === null || _this$injectConfig9 === void 0 ? void 0 : _this$injectConfig9.type) === 'sy-doctree-moc-dom' ||\n // DOM 直接挂载模式\n ((_this$injectConfig10 = this.injectConfig) === null || _this$injectConfig10 === void 0 ? void 0 : _this$injectConfig10.type) === 'sy-doctree-moc-dom'; // MOC 模式\n\n if (isContainerMode) {\n // 容器模式下使用 ResizeObserver 监听容器大小变化\n this.resizeObserver = new ResizeObserver(() => {\n this.handleResize();\n });\n this.resizeObserver.observe(this.$refs.mindMapContainer);\n } else {\n // 独立运行模式使用 window resize\n window.addEventListener('resize', this.handleResize);\n }\n this.initMirrorPubSub();\n // 检测当前iframe是否为隐藏状态\n this.handleIsHidden();\n\n // 导图加载完成后,发送ready事件并处理待定位的节点\n this.$nextTick(() => {\n this.sendMindMapReadyEvent();\n this.processPendingNodeLocate();\n });\n },\n beforeDestroy() {\n var _this$injectConfig11, _this$injectConfig12;\n this.info('编辑器开始销毁', {\n type: (_this$injectConfig11 = this.injectConfig) === null || _this$injectConfig11 === void 0 ? void 0 : _this$injectConfig11.type,\n name: (_this$injectConfig12 = this.injectConfig) === null || _this$injectConfig12 === void 0 ? void 0 : _this$injectConfig12.name\n });\n this.$bus.$off('execCommand', this.execCommand);\n this.$bus.$off('paddingChange', this.onPaddingChange);\n this.$bus.$off('export', this.export);\n this.$bus.$off('getMindMapData', this.getMindMapData);\n this.$bus.$off('setData', this.setData);\n this.$bus.$off('startTextEdit', this.handleStartTextEdit);\n this.$bus.$off('endTextEdit', this.handleEndTextEdit);\n this.$bus.$off('createAssociativeLine', this.handleCreateLineFromActiveNode);\n this.$bus.$off('startPainter', this.handleStartPainter);\n this.$bus.$off('node_tree_render_end', this.handleHideLoading);\n this.$bus.$off('showLoading', this.handleShowLoading);\n // 清理 resize 监听\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n } else {\n window.removeEventListener('resize', this.handleResize);\n }\n this.unsubscribe && this.unsubscribe();\n window.removeEventListener('message', this.handleSubscribe);\n\n // 清理消息中心\n if (this.messageCenter) {\n this.messageCenter.destroy();\n this.messageCenter = null;\n }\n this.mindMap.destroy();\n clearInterval(this.autoSaveHistoryTimer);\n // 清理可见性检测\n if (this.visibilityCleanup) {\n this.visibilityCleanup();\n }\n this.info('编辑器销毁完成');\n },\n methods: {\n /**\n * 刷新前端文件树(优先使用思源前端模型 Files.selectItem,失败时回退到 listDocsByPath\n * @param {string} notebook 笔记本ID\n * @param {string} path 需要刷新的目录或文档路径(通常为父文档 path,含 .sy\n * @param {Function} listDocsByPath 可选,后备 API\n */\n async refreshSiyuanFiletree(notebook, path, listDocsByPath) {\n // 优先通过 kmindApi 暴露的思源前端模型刷新\n try {\n const kmApi = globalThis && (globalThis.kmindApi || globalThis.parent && globalThis.parent.kmindApi) || null;\n if (kmApi && typeof kmApi.getAllModels === 'function') {\n const models = kmApi.getAllModels();\n const filesModels = models && Array.isArray(models.files) ? models.files : [];\n if (filesModels.length > 0) {\n // 方案一:精准刷新父目录,优先使用 Files.getLeaf 强制拉取并重绘该目录\n for (const fm of filesModels) {\n try {\n const container = fm && fm.element;\n if (!container) continue;\n const ul = container.querySelector(`ul[data-url=\"${notebook}\"]`);\n const li = (ul || container).querySelector(`li[data-path=\"${path}\"]`);\n if (li && typeof fm.getLeaf === 'function') {\n // getLeaf(li, notebookId[, focusUpdate])\n try {\n fm.getLeaf(li, notebook, true);\n } catch (_) {\n fm.getLeaf(li, notebook);\n }\n this.info('前端文件树刷新已触发(getLeaf)', {\n notebook,\n path\n });\n return;\n }\n } catch (_) {}\n }\n\n // 方案二:使用子项路径触发 selectItem(此处无子项上下文,降级为父路径 selectItem\n let ok = false;\n for (const fm of filesModels) {\n try {\n if (fm && typeof fm.selectItem === 'function') {\n fm.selectItem(notebook, path);\n ok = true;\n }\n } catch (_) {}\n }\n if (ok) {\n this.info('前端文件树刷新已触发(selectItem)', {\n notebook,\n path\n });\n return;\n }\n }\n }\n } catch (err) {\n this.warn('调用前端文件树模型刷新失败,将回退使用listDocsByPath', err);\n }\n\n // 回退方案:调用 listDocsByPath 强制拉取(注意:不保证 UI 自动重排)\n if (typeof listDocsByPath === 'function') {\n try {\n const refreshResult = await listDocsByPath(notebook, path);\n if (refreshResult && refreshResult.code === 0) {\n this.info('通过 listDocsByPath 刷新文档树成功');\n } else {\n this.warn('通过 listDocsByPath 刷新文档树失败', refreshResult);\n }\n } catch (e) {\n this.error('通过 listDocsByPath 刷新文档树异常', e);\n }\n }\n },\n /**\n * 初始化 MOC 模式\n */\n initMocMode() {\n this.info('开始初始化 MOC 模式');\n\n // 启用 SYMoc 插件\n this.mindMap.syMoc.enable({\n onCreate: this.handleMocNodeCreate.bind(this),\n onUpdate: this.handleMocNodeUpdate.bind(this),\n onDelete: this.handleMocNodeDelete.bind(this),\n onMove: this.handleMocNodeMove.bind(this)\n });\n\n // 监听被禁用的操作,给出提示\n this.mindMap.on('moc_operation_blocked', commandName => {\n const tipMap = {\n INSERT_PARENT_NODE: this.$t('moc.insertParentNotSupported'),\n INSERT_MULTI_NODE: this.$t('moc.insertMultiNotSupported'),\n PASTE_NODE: this.$t('moc.pasteNotSupported'),\n BACK: this.$t('moc.undoNotSupported'),\n FORWARD: this.$t('moc.redoNotSupported')\n };\n const msg = tipMap[commandName] || this.$t('moc.operationNotSupported');\n this.$message.warning(msg);\n });\n this.info('MOC 模式初始化完成');\n },\n /**\n * 处理 MOC 节点创建\n */\n async handleMocNodeCreate(params) {\n this.info('MOC 创建节点', params);\n try {\n var _parentNode$nodeData, _this$injectConfig13, _window$Lute;\n const {\n node,\n parentNode\n } = params;\n\n // 获取父节点的文档 ID\n const parentDocId = (parentNode === null || parentNode === void 0 || (_parentNode$nodeData = parentNode.nodeData) === null || _parentNode$nodeData === void 0 || (_parentNode$nodeData = _parentNode$nodeData.data) === null || _parentNode$nodeData === void 0 ? void 0 : _parentNode$nodeData.docId) || ((_this$injectConfig13 = this.injectConfig) === null || _this$injectConfig13 === void 0 ? void 0 : _this$injectConfig13.name);\n if (!parentDocId) {\n this.error('MOC 创建节点失败: 无法获取父节点文档 ID');\n return {\n success: false\n };\n }\n\n // 获取节点标题(去除 HTML 标签)\n let title = node.nodeData.data.text || '新建文档';\n\n // 去除 HTML 标签,只保留纯文本\n if (title) {\n // 创建临时 DOM 元素来解析 HTML\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = title;\n title = tempDiv.textContent || tempDiv.innerText || '新建文档';\n // 去除首尾空格\n title = title.trim();\n }\n\n // 如果处理后为空,使用默认标题\n if (!title) {\n title = '新建文档';\n }\n this.info('准备创建思源文档', {\n parentDocId,\n title\n });\n\n // 导入思源 API\n const {\n createDoc,\n sql,\n getBlockInfo\n } = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(null, /*! @/api/siyuan */ \"./src/api/siyuan.tsx\"));\n\n // 1. 查询父文档信息\n const result = await sql(`\n SELECT B.box, B.path FROM blocks AS B\n WHERE B.id = '${parentDocId}'\n AND B.type = 'd'\n LIMIT 1\n `);\n if (!result || result.data.length === 0) {\n this.error('MOC 创建节点失败: 父文档不存在');\n return {\n success: false\n };\n }\n const {\n box: notebook,\n path: docPath\n } = result.data[0];\n\n // 2. 生成新文档 ID\n const newDocId = ((_window$Lute = window.Lute) === null || _window$Lute === void 0 ? void 0 : _window$Lute.NewNodeID()) || this.generateUid();\n\n // 3. 构建新文档路径(作为父文档的子文档)\n const newPath = docPath === null || docPath === void 0 ? void 0 : docPath.replace('.sy', `/${newDocId}.sy`);\n this.info('创建思源文档参数', {\n notebook,\n newPath,\n title,\n newDocId\n });\n\n // 4. 计算兄弟顺序,构建 sorts 以在创建时一次性完成排序\n // 获取父节点的所有兄弟节点(包含当前新建节点),顺序以导图为准\n const siblings = (parentNode === null || parentNode === void 0 ? void 0 : parentNode.children) || [];\n\n // 兄弟节点对应的文档ID,当前新建节点使用 newDocId,其它节点从 nodeData.data.docId 获取\n const docIds = siblings.map(sibling => {\n var _sibling$nodeData;\n return sibling === node ? newDocId : sibling === null || sibling === void 0 || (_sibling$nodeData = sibling.nodeData) === null || _sibling$nodeData === void 0 || (_sibling$nodeData = _sibling$nodeData.data) === null || _sibling$nodeData === void 0 ? void 0 : _sibling$nodeData.docId;\n }).filter(id => id);\n\n // 构建 id -> path 的映射,预先填入新建文档的本地路径,避免等待索引\n const idToPath = {};\n if (newDocId && newPath) {\n idToPath[newDocId] = newPath;\n }\n\n // 查询已有兄弟文档的 path\n const existingDocIds = docIds.filter(id => id !== newDocId);\n if (existingDocIds.length > 0) {\n const docIdsStr = existingDocIds.map(id => `'${id}'`).join(',');\n const queryResult = await sql(`\n SELECT id, path FROM blocks\n WHERE type = 'd' AND id IN (${docIdsStr})\n LIMIT 99999\n `);\n if (queryResult && queryResult.code === 0 && queryResult.data) {\n queryResult.data.forEach(doc => {\n idToPath[doc.id] = doc.path;\n });\n } else {\n this.warn('查询兄弟文档路径失败', queryResult);\n }\n }\n\n // 根据兄弟顺序构建 sorts 路径数组(只保留能解析出的路径)\n const sorts = docIds.map(id => idToPath[id]).filter(p => p);\n\n // 5. 创建文档:携带 sorts(若完整)完成排序;设置 listDocTree: true 触发前端文件树自动重拉\n const hasCompleteSorts = sorts.length === ((siblings === null || siblings === void 0 ? void 0 : siblings.length) || 0);\n const createPayload = {\n notebook,\n path: newPath,\n title,\n md: '',\n listDocTree: true\n };\n if (hasCompleteSorts) {\n createPayload.sorts = sorts;\n }\n const createResult = await createDoc(createPayload);\n if (!createResult || createResult.code !== 0) {\n this.error('MOC 创建节点失败: 创建文档失败', createResult);\n\n // 显示错误信息给用户\n const errorMsg = (createResult === null || createResult === void 0 ? void 0 : createResult.msg) || this.$t('moc.createDocFailed');\n this.$message.error(errorMsg);\n return {\n success: false,\n error: errorMsg,\n silentDelete: true // 标记为静默删除,不显示删除确认\n };\n }\n this.info('MOC 创建节点成功', {\n docId: newDocId,\n title\n });\n\n // 6. 返回成功,并更新节点数据\n return {\n success: true,\n data: {\n docId: newDocId\n }\n };\n } catch (error) {\n this.error('MOC 创建节点异常', error);\n\n // 显示错误信息给用户\n const errorMsg = error.message || this.$t('moc.createNodeFailed');\n this.$message.error(errorMsg);\n return {\n success: false,\n error: errorMsg,\n silentDelete: true // 标记为静默删除,不显示删除确认\n };\n }\n },\n /**\n * 生成唯一 ID(备用方法)\n */\n generateUid() {\n return Date.now().toString(36) + Math.random().toString(36).substr(2);\n },\n /**\n * 调整文档顺序,使其与节点顺序一致\n * @param {Object} currentNode - 当前创建的节点\n * @param {Object} parentNode - 父节点\n * @param {String} notebook - 笔记本 ID\n * @param {String} currentDocId - 当前创建的文档 ID\n * @param {String} currentDocPath - 当前创建的文档路径\n */\n async adjustDocumentOrder(currentNode, parentNode, notebook, currentDocId, currentDocPath) {\n try {\n // 导入必要的 API\n const {\n sql,\n changeSort,\n listDocsByPath\n } = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(null, /*! @/api/siyuan */ \"./src/api/siyuan.tsx\"));\n\n // 1. 获取当前节点的所有兄弟节点(包括自己)\n const siblings = (parentNode === null || parentNode === void 0 ? void 0 : parentNode.children) || [];\n if (siblings.length <= 1) {\n // 只有一个节点,无需调整顺序\n return;\n }\n\n // 2. 收集所有兄弟节点的文档 ID\n // 特别处理:如果节点是新创建的(没有 docId),使用传入的 currentDocId\n const docIds = siblings.map(sibling => {\n var _sibling$nodeData2;\n // 如果是当前节点,使用传入的 currentDocId\n if (sibling === currentNode) {\n return currentDocId;\n }\n // 否则从节点数据中获取 docId\n return (_sibling$nodeData2 = sibling.nodeData) === null || _sibling$nodeData2 === void 0 || (_sibling$nodeData2 = _sibling$nodeData2.data) === null || _sibling$nodeData2 === void 0 ? void 0 : _sibling$nodeData2.docId;\n }).filter(id => id); // 过滤掉没有 docId 的节点\n\n if (docIds.length <= 1) {\n // 只有一个有效文档,无需调整顺序\n return;\n }\n this.info('准备调整文档顺序', {\n docIds\n });\n\n // 3. 构建 id -> path 的映射\n // 首先添加新创建文档的映射(使用传入的 path,避免 SQLite 查询延迟问题)\n const idToPath = {};\n if (currentDocId && currentDocPath) {\n idToPath[currentDocId] = currentDocPath;\n }\n\n // 4. 查询其他已存在文档的 path\n // 过滤掉新创建的文档 ID,只查询已存在的文档\n const existingDocIds = docIds.filter(id => id !== currentDocId);\n if (existingDocIds.length > 0) {\n const docIdsStr = existingDocIds.map(id => `'${id}'`).join(',');\n const queryResult = await sql(`\n SELECT id, path FROM blocks\n WHERE type = 'd' AND id IN (${docIdsStr})\n LIMIT 99999\n `);\n if (queryResult && queryResult.code === 0 && queryResult.data) {\n queryResult.data.forEach(doc => {\n idToPath[doc.id] = doc.path;\n });\n } else {\n this.warn('查询文档路径失败', queryResult);\n }\n }\n\n // 5. 按照节点顺序构建 paths 数组\n const paths = docIds.map(id => idToPath[id]).filter(path => path); // 过滤掉找不到 path 的文档\n\n if (paths.length <= 1) {\n // 只有一个有效路径,无需调整顺序\n return;\n }\n this.info('调整文档顺序参数', {\n notebook,\n paths\n });\n\n // 6. 调用 changeSort API 调整顺序\n const sortResult = await changeSort({\n notebook,\n paths\n });\n if (sortResult && sortResult.code === 0) {\n var _parentNode$nodeData2, _this$injectConfig14;\n this.info('文档顺序调整成功');\n\n // 7. 刷新思源文档树\n // 获取父节点的 path\n const parentDocId = (parentNode === null || parentNode === void 0 || (_parentNode$nodeData2 = parentNode.nodeData) === null || _parentNode$nodeData2 === void 0 || (_parentNode$nodeData2 = _parentNode$nodeData2.data) === null || _parentNode$nodeData2 === void 0 ? void 0 : _parentNode$nodeData2.docId) || ((_this$injectConfig14 = this.injectConfig) === null || _this$injectConfig14 === void 0 ? void 0 : _this$injectConfig14.name);\n if (parentDocId) {\n // 查询父节点的 path\n const parentQueryResult = await sql(`\n SELECT path FROM blocks\n WHERE type = 'd' AND id = '${parentDocId}'\n LIMIT 1\n `);\n if (parentQueryResult && parentQueryResult.code === 0 && parentQueryResult.data && parentQueryResult.data[0]) {\n const parentPath = parentQueryResult.data[0].path;\n this.info('刷新文档树', {\n notebook,\n parentPath\n });\n try {\n if (this.refreshSiyuanFiletree) {\n await this.refreshSiyuanFiletree(notebook, parentPath, listDocsByPath);\n } else {\n // 直接尝试通过思源前端模型刷新\n const kmApi = globalThis && (globalThis.kmindApi || globalThis.parent && globalThis.parent.kmindApi) || null;\n if (kmApi && typeof kmApi.getAllModels === 'function') {\n const models = kmApi.getAllModels();\n const filesModels = models && Array.isArray(models.files) ? models.files : [];\n if (filesModels.length > 0) {\n filesModels.forEach(fm => {\n try {\n fm && typeof fm.selectItem === 'function' && fm.selectItem(notebook, parentPath);\n } catch (_) {}\n });\n }\n } else if (typeof listDocsByPath === 'function') {\n await listDocsByPath(notebook, parentPath);\n }\n }\n } catch (e) {\n this.warn('刷新文档树调用失败', e);\n if (typeof listDocsByPath === 'function') await listDocsByPath(notebook, parentPath);\n }\n }\n }\n } else {\n this.warn('文档顺序调整失败', sortResult);\n }\n } catch (error) {\n this.error('调整文档顺序异常', error);\n // 顺序调整失败不影响创建流程,只记录错误\n }\n },\n /**\n * 处理 MOC 节点更新(重命名)\n */\n async handleMocNodeUpdate(params) {\n try {\n var _node$nodeData;\n const {\n node\n } = params;\n const docId = (_node$nodeData = node.nodeData) === null || _node$nodeData === void 0 || (_node$nodeData = _node$nodeData.data) === null || _node$nodeData === void 0 ? void 0 : _node$nodeData.docId;\n if (!docId) {\n this.warn('MOC 更新节点失败: 节点没有关联的文档 ID');\n return {\n success: false,\n error: '节点没有关联的文档 ID'\n };\n }\n\n // 获取新的标题并处理 HTML 标签\n let newTitle = node.nodeData.data.text || '';\n if (newTitle) {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newTitle;\n newTitle = tempDiv.textContent || tempDiv.innerText || '';\n newTitle = newTitle.trim();\n }\n if (!newTitle) {\n this.warn('MOC 更新节点失败: 标题为空');\n return {\n success: false,\n error: this.$t('moc.titleCannotBeEmpty')\n };\n }\n this.info('MOC 更新节点标题', {\n docId,\n newTitle\n });\n\n // 导入 API\n const {\n renameDocByID\n } = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(null, /*! @/api/siyuan */ \"./src/api/siyuan.tsx\"));\n\n // 调用重命名 API\n const result = await renameDocByID({\n id: docId,\n title: newTitle\n });\n if (!result || result.code !== 0) {\n const errorMsg = (result === null || result === void 0 ? void 0 : result.msg) || this.$t('moc.renameDocFailed');\n this.error('MOC 更新节点失败', errorMsg);\n this.$message.error(errorMsg);\n return {\n success: false,\n error: errorMsg\n };\n }\n this.info('MOC 更新节点成功', {\n docId,\n newTitle\n });\n return {\n success: true\n };\n } catch (error) {\n const errorMsg = error.message || this.$t('moc.renameDocFailed');\n this.error('MOC 更新节点异常', error);\n this.$message.error(errorMsg);\n return {\n success: false,\n error: errorMsg\n };\n }\n },\n /**\n * 处理 MOC 节点删除\n */\n async handleMocNodeDelete(params) {\n this.info('MOC 删除节点', params);\n const {\n nodes = []\n } = params;\n if (nodes.length === 0) {\n this.warn('MOC 删除节点失败: 没有要删除的节点');\n return {\n confirmed: false\n };\n }\n\n // 构建确认消息\n const message = nodes.length === 1 ? this.$t('moc.deleteNodeConfirmSingle') : this.$t('moc.deleteNodeConfirmMultiple', {\n count: nodes.length\n });\n\n // 弹出确认对话框\n return new Promise(async resolve => {\n try {\n await this.$confirm(message, this.$t('moc.deleteConfirmTitle'), {\n confirmButtonText: this.$t('moc.confirmButton'),\n cancelButtonText: this.$t('moc.cancelButton'),\n type: 'warning'\n });\n\n // 用户确认删除,执行删除操作\n const deletePromise = this.performMocNodeDelete(params);\n resolve({\n confirmed: true,\n deletePromise\n });\n } catch (error) {\n // 用户取消删除\n this.info('MOC 用户取消删除', params);\n resolve({\n confirmed: false\n });\n }\n });\n },\n /**\n * 执行 MOC 节点删除(实际删除文档)\n * 支持批量删除多个节点\n */\n async performMocNodeDelete(params) {\n try {\n const {\n nodes = []\n } = params;\n if (nodes.length === 0) {\n this.warn('MOC 删除节点失败: 没有要删除的节点');\n return {\n success: false,\n error: this.$t('moc.noNodesToDelete')\n };\n }\n\n // 导入 API\n const {\n removeDocByID\n } = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(null, /*! @/api/siyuan */ \"./src/api/siyuan.tsx\"));\n\n // 收集所有需要删除的文档 ID\n const docIds = nodes.map(node => {\n var _node$nodeData2;\n return (_node$nodeData2 = node.nodeData) === null || _node$nodeData2 === void 0 || (_node$nodeData2 = _node$nodeData2.data) === null || _node$nodeData2 === void 0 ? void 0 : _node$nodeData2.docId;\n }).filter(id => id);\n if (docIds.length === 0) {\n this.warn('MOC 删除节点失败: 节点没有关联的文档 ID');\n return {\n success: false,\n error: this.$t('moc.noDocIdToDelete')\n };\n }\n this.info('MOC 删除文档', {\n count: docIds.length,\n docIds\n });\n\n // 批量删除文档\n const results = [];\n for (const docId of docIds) {\n try {\n const result = await removeDocByID({\n id: docId\n });\n results.push({\n docId,\n success: result && result.code === 0,\n result\n });\n } catch (error) {\n results.push({\n docId,\n success: false,\n error\n });\n }\n }\n\n // 检查是否有失败的删除\n const failedResults = results.filter(r => !r.success);\n if (failedResults.length > 0) {\n const errorMsg = this.$t('moc.deletePartialFailed', {\n failed: failedResults.length,\n total: docIds.length\n });\n this.error('MOC 删除节点部分失败', failedResults);\n this.$message.error(errorMsg);\n return {\n success: false,\n error: errorMsg\n };\n }\n this.info('MOC 删除节点成功', {\n count: docIds.length\n });\n this.$message.success(this.$t('moc.deleteSuccess', {\n count: docIds.length\n }));\n return {\n success: true\n };\n } catch (error) {\n const errorMsg = error.message || this.$t('moc.deleteFailed');\n this.error('MOC 删除节点异常', error);\n this.$message.error(errorMsg);\n return {\n success: false,\n error: errorMsg\n };\n }\n },\n /**\n * 处理 MOC 节点移动\n */\n async handleMocNodeMove(params) {\n try {\n var _targetNode$nodeData;\n const {\n nodes,\n targetNode\n } = params;\n if (!nodes || nodes.length === 0) {\n this.warn('MOC 移动节点失败: 没有待移动的节点');\n return {\n success: false,\n error: this.$t('moc.noNodesToMove')\n };\n }\n if (!targetNode) {\n this.warn('MOC 移动节点失败: 没有目标节点');\n return {\n success: false,\n error: this.$t('moc.noTargetNode')\n };\n }\n\n // 获取目标节点的文档ID\n const targetDocId = (_targetNode$nodeData = targetNode.nodeData) === null || _targetNode$nodeData === void 0 || (_targetNode$nodeData = _targetNode$nodeData.data) === null || _targetNode$nodeData === void 0 ? void 0 : _targetNode$nodeData.docId;\n if (!targetDocId) {\n this.warn('MOC 移动节点失败: 目标节点没有关联的文档 ID');\n return {\n success: false,\n error: this.$t('moc.targetNodeNoDocId')\n };\n }\n\n // 收集所有要移动的节点的文档ID\n const fromDocIds = nodes.map(node => {\n var _node$nodeData3;\n return (_node$nodeData3 = node.nodeData) === null || _node$nodeData3 === void 0 || (_node$nodeData3 = _node$nodeData3.data) === null || _node$nodeData3 === void 0 ? void 0 : _node$nodeData3.docId;\n }).filter(id => id);\n if (fromDocIds.length === 0) {\n this.warn('MOC 移动节点失败: 待移动节点没有关联的文档 ID');\n return {\n success: false,\n error: this.$t('moc.nodeNoDocId')\n };\n }\n this.info('MOC 移动节点', {\n fromDocIds,\n targetDocId,\n nodeCount: nodes.length\n });\n\n // 调用移动文档API\n const {\n moveDocsByID,\n sql,\n changeSort,\n listDocsByPath\n } = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(null, /*! @/api/siyuan */ \"./src/api/siyuan.tsx\"));\n const result = await moveDocsByID({\n fromIDs: fromDocIds,\n toID: targetDocId\n });\n if (!result || result.code !== 0) {\n const errorMsg = (result === null || result === void 0 ? void 0 : result.msg) || this.$t('moc.moveDocFailed');\n this.error('MOC 移动节点失败', errorMsg);\n this.$message.error(errorMsg);\n return {\n success: false,\n error: errorMsg\n };\n }\n this.info('MOC 移动节点成功', {\n fromDocIds,\n targetDocId\n });\n\n // 移动成功后,同步文档顺序\n await this.syncDocumentOrderAfterMove(targetNode, sql, changeSort, listDocsByPath);\n this.$message.success(this.$t('moc.moveSuccess', {\n count: fromDocIds.length\n }));\n return {\n success: true\n };\n } catch (error) {\n const errorMsg = error.message || this.$t('moc.moveNodeFailed');\n this.error('MOC 移动节点异常', error);\n this.$message.error(errorMsg);\n return {\n success: false,\n error: errorMsg\n };\n }\n },\n /**\n * 移动节点后同步文档顺序\n * @param {Object} targetNode - 目标父节点\n * @param {Function} sql - SQL 查询函数\n * @param {Function} changeSort - 更改排序函数\n * @param {Function} listDocsByPath - 刷新文档树函数\n */\n async syncDocumentOrderAfterMove(targetNode, sql, changeSort, listDocsByPath) {\n try {\n // 1. 获取目标节点的所有子节点\n const children = (targetNode === null || targetNode === void 0 ? void 0 : targetNode.children) || [];\n if (children.length <= 1) {\n // 只有一个或没有子节点,无需调整顺序\n return;\n }\n\n // 2. 收集所有子节点的文档 ID(按照节点顺序)\n const docIds = children.map(child => {\n var _child$nodeData;\n return (_child$nodeData = child.nodeData) === null || _child$nodeData === void 0 || (_child$nodeData = _child$nodeData.data) === null || _child$nodeData === void 0 ? void 0 : _child$nodeData.docId;\n }).filter(id => id);\n if (docIds.length <= 1) {\n // 只有一个有效文档,无需调整顺序\n return;\n }\n this.info('准备同步移动后的文档顺序', {\n docIds\n });\n\n // 3. 查询所有文档的 path 和 notebook\n const docIdsStr = docIds.map(id => `'${id}'`).join(',');\n const queryResult = await sql(`\n SELECT id, path, box FROM blocks\n WHERE type = 'd' AND id IN (${docIdsStr})\n LIMIT 99999\n `);\n if (!queryResult || queryResult.code !== 0 || !queryResult.data) {\n this.warn('查询文档路径失败', queryResult);\n return;\n }\n\n // 4. 构建 id -> path 的映射,并获取 notebook\n const idToPath = {};\n let notebook = null;\n queryResult.data.forEach(doc => {\n idToPath[doc.id] = doc.path;\n if (!notebook && doc.box) {\n notebook = doc.box;\n }\n });\n if (!notebook) {\n this.warn('无法获取笔记本 ID');\n return;\n }\n\n // 5. 按照节点顺序构建 paths 数组\n const paths = docIds.map(id => idToPath[id]).filter(path => path);\n if (paths.length <= 1) {\n // 只有一个有效路径,无需调整顺序\n return;\n }\n this.info('调整移动后的文档顺序参数', {\n notebook,\n paths\n });\n\n // 6. 调用 changeSort API 调整顺序\n const sortResult = await changeSort({\n notebook,\n paths\n });\n if (sortResult && sortResult.code === 0) {\n var _targetNode$nodeData2;\n this.info('移动后文档顺序调整成功');\n\n // 7. 刷新思源文档树\n const targetDocId = targetNode === null || targetNode === void 0 || (_targetNode$nodeData2 = targetNode.nodeData) === null || _targetNode$nodeData2 === void 0 || (_targetNode$nodeData2 = _targetNode$nodeData2.data) === null || _targetNode$nodeData2 === void 0 ? void 0 : _targetNode$nodeData2.docId;\n if (targetDocId) {\n // 查询目标节点的 path\n const targetQueryResult = await sql(`\n SELECT path FROM blocks\n WHERE type = 'd' AND id = '${targetDocId}'\n LIMIT 1\n `);\n if (targetQueryResult && targetQueryResult.code === 0 && targetQueryResult.data && targetQueryResult.data[0]) {\n const targetPath = targetQueryResult.data[0].path;\n this.info('刷新文档树', {\n notebook,\n targetPath\n });\n try {\n if (this.refreshSiyuanFiletree) {\n await this.refreshSiyuanFiletree(notebook, targetPath, listDocsByPath);\n } else {\n const kmApi = globalThis && (globalThis.kmindApi || globalThis.parent && globalThis.parent.kmindApi) || null;\n if (kmApi && typeof kmApi.getAllModels === 'function') {\n const models = kmApi.getAllModels();\n const filesModels = models && Array.isArray(models.files) ? models.files : [];\n if (filesModels.length > 0) {\n filesModels.forEach(fm => {\n try {\n fm && typeof fm.selectItem === 'function' && fm.selectItem(notebook, targetPath);\n } catch (_) {}\n });\n }\n } else if (typeof listDocsByPath === 'function') {\n await listDocsByPath(notebook, targetPath);\n }\n }\n } catch (e) {\n this.warn('刷新文档树调用失败', e);\n if (typeof listDocsByPath === 'function') await listDocsByPath(notebook, targetPath);\n }\n }\n }\n } else {\n this.warn('移动后文档顺序调整失败', sortResult);\n }\n } catch (error) {\n this.error('同步移动后文档顺序异常', error);\n // 顺序调整失败不影响移动流程,只记录错误\n }\n },\n // 安全的 JSON 序列化,处理循环引用\n safeStringify(obj) {\n return JSON.stringify(obj);\n const seen = new WeakSet();\n return JSON.stringify(obj, (key, value) => {\n // 忽略函数和 undefined\n if (typeof value === 'function' || value === undefined) {\n return undefined;\n }\n // 处理循环引用\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular Reference]';\n }\n seen.add(value);\n }\n return value;\n }, 2);\n },\n // 更新配置,用于导入的时候手动更新配置\n kmindUpdateConfig(config) {\n // this.setKmindConfig({ smmConfig: config })\n this.setConfig(config);\n this.mindMap.updateConfig(config);\n },\n // 更新搜索块,文档树导图更新txt到寄生的思源文档的第一个html块中\n async handleUpdateDocTreeKMindSearchBlock(injectConfig) {\n var _res$data;\n const {\n type,\n name\n } = injectConfig;\n // 非文档树导图不处理\n if (type !== 'sy-doctree-doc') {\n return;\n }\n // 获取数据\n const data = this.mindMap.getData();\n // 转换成txt\n const txt = Object(simple_mind_map_src_parse_toTxt__WEBPACK_IMPORTED_MODULE_4__[\"transformToTxt\"])(data);\n // 根据id寻找该思源文档的第一个属性为'kmind-doctree-doc-search'html块,找到了就更新,没找到就append\n // select * from attributes where root_id = 'xxxx' and name = 'custom-kmind-doctree-doc-search' and value = 'true' and type = 'b'\n const res = await Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_1__[\"sql\"])(`select * from attributes where root_id = '${name}' and name = 'custom-kmind-doctree-doc-search' and value = 'true' and type = 'b'`);\n if ((res === null || res === void 0 || (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.length) > 0) {\n // 先删除多余的块\n if (res.data.length > 1) {\n for (const block of res.data.slice(1)) {\n await Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_1__[\"deleteBlock\"])(block.block_id);\n }\n }\n\n // 找到了,更新\n const blockId = res.data[0].block_id;\n await Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_1__[\"updateBlock\"])({\n id: blockId,\n data: `<div>${txt}</div>`,\n dataType: 'dom'\n });\n // 坑爹啊,updateBlock后会把attrs清空\n await Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_1__[\"setBlockAttrs\"])({\n id: blockId,\n attrs: {\n 'custom-kmind-doctree-doc-search': 'true'\n }\n });\n } else {\n var _block$data;\n // 没找到,append\n const block = await Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_1__[\"insertBlock\"])({\n data: `<div>${txt}</div>`,\n dataType: 'dom',\n parentID: name\n });\n const blockId = block === null || block === void 0 || (_block$data = block.data) === null || _block$data === void 0 || (_block$data = _block$data[0]) === null || _block$data === void 0 || (_block$data = _block$data.doOperations) === null || _block$data === void 0 || (_block$data = _block$data[0]) === null || _block$data === void 0 ? void 0 : _block$data.id;\n await Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_1__[\"setBlockAttrs\"])({\n id: blockId,\n attrs: {\n 'custom-kmind-doctree-doc-search': 'true'\n }\n });\n }\n },\n // 保存历史记录\n handleSaveHistory() {\n const {\n saveHistory,\n isFirstSave\n } = Object(_hooks_useKMindHistory__WEBPACK_IMPORTED_MODULE_53__[\"useKMindHistory\"])(this.injectConfig);\n // 如果是第一次保存,则跳过\n if (isFirstSave.value) {\n // this.$message.warning('KMind: 第一次保存历史记录爷爷我直接跳过')\n isFirstSave.value = false;\n return;\n }\n saveHistory({\n injectConfig: this.injectConfig,\n kmindData: this.mindMapFullDataWithConfig\n });\n },\n customHyperlinkJump(hyperlink, mindMap) {\n // console.log('customHyperlinkJump', hyperlink, mindMap)\n // const linkUrl = hyperlink\n // if (e?.altKey && linkUrl?.startsWith('siyuan://blocks/')) {\n // e.preventDefault()\n // // @ts-ignore kmind插件把api挂载到了window上\n // window.parent.kmindApi.plugin.addFloatLayer({\n // // 获取最后一个斜杠后的id\n // ids: [linkUrl?.substr(linkUrl.lastIndexOf('/') + 1)],\n // x: e.screenX,\n // y: e.screenY\n // })\n // }\n // // 直接点击,也应该分移动端和pc端处理\n // if (linkUrl?.startsWith('siyuan://blocks/')) {\n // e.preventDefault()\n // const { openDoc } = useCrossFrameAPI(this.injectConfig)\n // openDoc(linkUrl?.substr(linkUrl.lastIndexOf('/') + 1))\n // }\n },\n handleSYLinkClick() {},\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_34__[\"mapMutations\"])(['setLocalConfig', 'setIsReadonly', 'setIsSourceCodeEdit', 'setKmindConfig', 'setConfig']),\n // 检测当前iframe是否为隐藏状态\n handleIsHidden() {\n var _this$injectConfig19, _this$injectConfig20;\n const {\n isHidden,\n startObserver,\n cleanup\n } = Object(_hooks_useVisibilityDetection__WEBPACK_IMPORTED_MODULE_56__[\"useVisibilityDetection\"])(this.injectConfig);\n\n // 保存清理函数\n this.visibilityCleanup = cleanup;\n\n // 监听可见性变化\n this.$watch(() => isHidden.value, newValue => {\n var _this$injectConfig15, _this$injectConfig18;\n const oldValue = this.isHidden;\n this.isHidden = newValue;\n\n // 只在镜像块类型时输出日志\n if (((_this$injectConfig15 = this.injectConfig) === null || _this$injectConfig15 === void 0 ? void 0 : _this$injectConfig15.type) === 'sy-widget-mirror') {\n this.logMirror.info('可见性变化', {\n '从': oldValue ? '隐藏' : '可见',\n '到': newValue ? '隐藏' : '可见',\n '是否有缓存数据': !!this.hiddenRefreshData,\n '缓存数据长度': this.hiddenRefreshData ? this.hiddenRefreshData.length : 0\n });\n }\n\n // 从隐藏变为可见\n if (!newValue && oldValue) {\n // 处理缓存的数据更新\n if (this.hiddenRefreshData) {\n this.logMirror.info('从隐藏变为可见,开始应用缓存的数据...');\n try {\n const cachedData = JSON.parse(this.hiddenRefreshData);\n this.logMirror.debug('解析缓存数据成功,准备更新导图');\n\n // 使用缓存数据刷新,必须要 setTimeout,否则导图可能渲染错误\n setTimeout(() => {\n var _this$injectConfig16;\n if (((_this$injectConfig16 = this.injectConfig) === null || _this$injectConfig16 === void 0 ? void 0 : _this$injectConfig16.type) === 'sy-doctree-moc-dom') {\n // MOC 模式:使用 updateData 以避免全量重置\n const rootData = (cachedData === null || cachedData === void 0 ? void 0 : cachedData.root) || cachedData;\n this.mindMap.updateData(rootData);\n } else {\n var _this$injectConfig17;\n // 其他模式沿用原逻辑\n this.mindMap.setData(cachedData);\n // 镜像块需要设置居中,避免显示空白\n if (((_this$injectConfig17 = this.injectConfig) === null || _this$injectConfig17 === void 0 ? void 0 : _this$injectConfig17.type) === 'sy-widget-mirror') {\n setMirrorRootNodeCenter();\n }\n }\n this.logMirror.info('缓存数据已应用,导图更新完成');\n }, 100);\n\n // 清空缓存\n this.hiddenRefreshData = '';\n this.logMirror.debug('缓存已清空');\n } catch (error) {\n this.logMirror.error('应用缓存数据失败', {\n error: error.message\n });\n }\n }\n\n // 处理待定位的节点\n if (this.pendingNodeLocate) {\n this.logMirror.info('从隐藏变为可见,处理待定位节点', {\n nodeId: this.pendingNodeLocate.nodeId\n });\n setTimeout(() => {\n if (this.pendingNodeLocate) {\n this.executeNodeLocate(this.pendingNodeLocate.nodeId);\n this.pendingNodeLocate = null;\n }\n }, 200); // 给导图一些时间完成渲染\n }\n } else if (!newValue && !this.hiddenRefreshData && ((_this$injectConfig18 = this.injectConfig) === null || _this$injectConfig18 === void 0 ? void 0 : _this$injectConfig18.type) === 'sy-widget-mirror') {\n this.logMirror.debug('从隐藏变为可见,但没有缓存数据');\n }\n });\n\n // DOM模式下需要传入要观察的元素\n if (((_this$injectConfig19 = this.injectConfig) === null || _this$injectConfig19 === void 0 ? void 0 : _this$injectConfig19.type) === 'sy-doctree-doc-dom' || ((_this$injectConfig20 = this.injectConfig) === null || _this$injectConfig20 === void 0 ? void 0 : _this$injectConfig20.type) === 'sy-doctree-moc-dom') {\n // 等待DOM就绪后开始观察\n this.$nextTick(() => {\n const container = this.$el.parentElement;\n if (container) {\n startObserver(container);\n }\n });\n } else {\n // iframe模式直接开始观察\n startObserver();\n }\n },\n // 根据不同类型获取文档ID\n getDocumentId() {\n var _this$injectConfig21, _this$injectConfig22;\n const type = (_this$injectConfig21 = this.injectConfig) === null || _this$injectConfig21 === void 0 ? void 0 : _this$injectConfig21.type;\n const name = (_this$injectConfig22 = this.injectConfig) === null || _this$injectConfig22 === void 0 ? void 0 : _this$injectConfig22.name;\n switch (type) {\n case 'sy-plugin':\n // Dock栏导图\n return `data/storage/petal/kmind/${name}.kmind`;\n case 'sy-doctree-doc-dom':\n case 'sy-doctree-moc-dom':\n case 'sy-doctree-doc':\n // 文档树导图\n return `assets/kmind-doctree-doc-${name}.kmind`;\n case 'sy-widget':\n {\n // 挂件导图\n const {\n getWidgetBlockInfo\n } = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_51__[\"useData\"])();\n const {\n id,\n dataAssets\n } = getWidgetBlockInfo();\n return dataAssets || `assets/kmind-${id}.kmind`;\n }\n case 'sy-widget-mirror':\n {\n // 镜像块(返回自己的块ID)\n const {\n getWidgetBlockInfo\n } = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_51__[\"useData\"])();\n const {\n id\n } = getWidgetBlockInfo();\n return id;\n }\n default:\n console.warn('未知的类型,使用默认ID');\n return `kmind-${Date.now()}`;\n }\n },\n // 初始化消息中心\n initMirrorPubSub() {\n var _this$injectConfig23, _this$injectConfig24, _this$injectConfig25, _this$injectConfig26;\n this.logMirror.debug('初始化消息中心', {\n type: (_this$injectConfig23 = this.injectConfig) === null || _this$injectConfig23 === void 0 ? void 0 : _this$injectConfig23.type,\n name: (_this$injectConfig24 = this.injectConfig) === null || _this$injectConfig24 === void 0 ? void 0 : _this$injectConfig24.name\n });\n\n // 获取文档ID\n const documentId = this.getDocumentId();\n\n // 创建独立的消息中心实例\n const {\n createInstance\n } = Object(_siyuan_plugin_src_src_hooks_useMessageCenter__WEBPACK_IMPORTED_MODULE_5__[\"useMessageCenter\"])();\n this.messageCenter = createInstance(documentId);\n\n // 根据类型处理不同逻辑\n switch ((_this$injectConfig25 = this.injectConfig) === null || _this$injectConfig25 === void 0 ? void 0 : _this$injectConfig25.type) {\n case 'sy-plugin':\n case 'sy-doctree-doc':\n case 'sy-doctree-doc-dom':\n case 'sy-doctree-moc-dom':\n case 'sy-widget':\n // 主导图模式:设置senderId用于兼容旧逻辑\n this.senderId = documentId;\n this.logMirror.info('主导图初始化完成', {\n documentId\n });\n\n // 监听命令消息(如果需要)\n this.messageCenter.on('command', payload => {\n this.handleCommand(payload);\n });\n break;\n case 'sy-widget-mirror':\n {\n // 镜像块模式\n const {\n getWidgetBlockInfo\n } = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_51__[\"useData\"])();\n const {\n id,\n mirrorPath\n } = getWidgetBlockInfo();\n this.subscriberId = id;\n\n // 监听源文档\n this.messageCenter.watch(mirrorPath);\n\n // 处理更新消息\n this.messageCenter.on('message', message => {\n if (message.action === 'update' && message.targetId === mirrorPath) {\n this.handleMirrorUpdate(message.payload);\n }\n });\n\n // 保留旧的监听器用于兼容\n // window.addEventListener('message', this.handleSubscribe, false)\n\n this.logMirror.info('镜像块初始化完成', {\n subscriberId: id,\n mirrorPath: mirrorPath,\n documentId: documentId\n });\n\n // 发送订阅通知(用于调试)\n this.messageCenter.send({\n type: 'control',\n action: 'subscribe',\n payload: {\n subscriberId: id,\n sourcePath: mirrorPath\n }\n });\n break;\n }\n default:\n this.logMirror.warn('未知的类型', {\n type: (_this$injectConfig26 = this.injectConfig) === null || _this$injectConfig26 === void 0 ? void 0 : _this$injectConfig26.type\n });\n }\n },\n handlePublish(message) {\n this.logMirror.debug('准备发布数据更新', {\n senderId: this.senderId,\n messageLength: message ? message.length : 0,\n hasMessageCenter: !!this.messageCenter\n });\n\n // 使用新的消息中心发布数据\n if (this.messageCenter && this.senderId) {\n try {\n this.messageCenter.send({\n type: 'data',\n action: 'update',\n targetId: this.senderId,\n payload: message\n });\n this.logMirror.info('数据发布成功', {\n targetId: this.senderId,\n dataLength: message ? message.length : 0\n });\n } catch (error) {\n this.logMirror.error('数据发布失败', {\n error: error.message\n });\n }\n } else {\n this.logMirror.warn('无法发布数据,消息中心未初始化或senderId为空');\n }\n },\n // 处理镜像块更新\n handleMirrorUpdate(payload) {\n this.logMirror.debug('处理镜像块更新', {\n hasPayload: !!payload,\n payloadLength: payload ? JSON.stringify(payload).length : 0\n });\n try {\n // 解析数据\n const data = typeof payload === 'string' ? JSON.parse(payload) : payload;\n\n // 获取镜像配置\n const {\n getWidgetBlockInfo\n } = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_51__[\"useData\"])();\n const {\n mirrorTargetNodeId\n } = getWidgetBlockInfo();\n\n // 处理部分镜像\n let updateData = data;\n if (mirrorTargetNodeId) {\n updateData = this.handleFindNodeById(data, mirrorTargetNodeId);\n if (!updateData) {\n this.logMirror.warn('未找到目标节点', {\n mirrorTargetNodeId\n });\n return;\n }\n }\n\n // 如果当前是隐藏状态,缓存处理后的数据\n if (this.isHidden) {\n this.hiddenRefreshData = this.safeStringify(updateData);\n this.logMirror.debug('隐藏状态 - 数据已缓存', {\n isPartial: !!mirrorTargetNodeId,\n targetNodeId: mirrorTargetNodeId\n });\n return;\n }\n\n // 可见状态,直接更新\n if (mirrorTargetNodeId) {\n this.mindMap.updateData(updateData);\n this.logMirror.info('部分节点数据更新完成');\n setMirrorRootNodeCenter();\n } else {\n // 全量更新\n this.mindMap.setData(updateData);\n this.logMirror.info('全量数据更新完成');\n setMirrorRootNodeCenter();\n }\n } catch (error) {\n this.logMirror.error('处理镜像块更新失败', {\n error: error.message\n });\n }\n },\n // 处理命令\n handleCommand(payload) {\n var _this$injectConfig27;\n this.logMirror.debug('处理命令', payload);\n if (!payload || !payload.cmd) {\n return;\n }\n switch (payload.cmd) {\n case 'focusNode':\n if (payload.nodeId) {\n this.mindMap.focusNode(payload.nodeId);\n }\n break;\n case 'GO_TARGET_NODE':\n // 定位到指定节点\n if (payload.nodeId) {\n // 如果导图处于隐藏状态,缓存定位信息\n if (this.isHidden) {\n this.pendingNodeLocate = payload;\n this.logMirror.info('导图隐藏中,缓存节点定位信息', {\n nodeId: payload.nodeId\n });\n } else {\n // 导图可见,直接定位\n this.executeNodeLocate(payload.nodeId);\n }\n }\n break;\n case 'refresh':\n // MOC 模式需要重新拉取文档树并设置导图数据\n if (((_this$injectConfig27 = this.injectConfig) === null || _this$injectConfig27 === void 0 ? void 0 : _this$injectConfig27.type) === 'sy-doctree-moc-dom') {\n this.refreshMocData();\n } else {\n // 其他模式走原有刷新\n this.mindMap.refresh && this.mindMap.refresh();\n }\n break;\n case 'zoomReset':\n this.mindMap.view.reset();\n break;\n default:\n this.logMirror.warn('未知命令', {\n cmd: payload.cmd\n });\n }\n },\n // 仅用于 MOC:重新获取文档树并刷新导图\n async refreshMocData() {\n try {\n var _this$injectConfig28;\n const {\n getMocDataFromSY\n } = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_51__[\"useData\"])();\n const docId = (_this$injectConfig28 = this.injectConfig) === null || _this$injectConfig28 === void 0 ? void 0 : _this$injectConfig28.name;\n if (!docId) return;\n // 重新获取最新 MOC 数据\n const {\n mindMapData\n } = await getMocDataFromSY(docId);\n if (mindMapData && this.mindMap) {\n if (this.isHidden) {\n // 隐藏状态:缓存数据,等显示时再应用,避免渲染错误\n this.hiddenRefreshData = this.safeStringify(mindMapData);\n this.info('MOC 隐藏中,已缓存刷新数据');\n } else {\n // 可见状态:增量更新节点树\n this.mindMap.updateData(mindMapData.root);\n this.info('MOC 导图已刷新');\n }\n }\n } catch (e) {\n this.warn('MOC 导图刷新失败', e);\n }\n },\n handleFindNodeById(data, targetNodeId) {\n // 检查当前节点\n if (data.data && data.data.uid === targetNodeId) {\n return data;\n }\n\n // 递归检查子节点\n if (data.children && data.children.length > 0) {\n for (const child of data.children) {\n const result = this.handleFindNodeById(child, targetNodeId);\n if (result) {\n return result;\n }\n }\n }\n return null;\n },\n handleSubscribe(event) {\n var _event$data, _event$data2, _event$data3, _event$data4;\n this.logMirror.debug('接收到来自父页面的消息', {\n type: (_event$data = event.data) === null || _event$data === void 0 ? void 0 : _event$data.type,\n senderId: (_event$data2 = event.data) === null || _event$data2 === void 0 ? void 0 : _event$data2.senderId,\n hasMessage: !!((_event$data3 = event.data) !== null && _event$data3 !== void 0 && _event$data3.message),\n messageLength: (_event$data4 = event.data) === null || _event$data4 === void 0 || (_event$data4 = _event$data4.message) === null || _event$data4 === void 0 ? void 0 : _event$data4.length,\n origin: event.origin,\n timestamp: new Date().toISOString()\n });\n if (event.data.type === 'refresh') {\n // 处理 refresh 类型消息时添加日志\n this.logMirror.debug('处理数据更新消息', {\n isDestroyed: event.data.message === 'destroyed',\n isHidden: this.isHidden,\n hasData: !!event.data.message && event.data.message !== 'destroyed'\n });\n if (event.data.message === 'destroyed') {\n this.logMirror.info('发送者已被销毁', {\n senderId: event.data.senderId\n });\n // 可以在这里执行一些清理操作\n } else if (this.isHidden) {\n const {\n getWidgetBlockInfo\n } = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_51__[\"useData\"])();\n const {\n mirrorTargetNodeId\n } = getWidgetBlockInfo();\n // console.log('mirrorTargetNodeId:', mirrorTargetNodeId)\n let data = JSON.parse(event.data.message);\n this.logMirror.debug('隐藏状态 - 解析数据成功', {\n mirrorTargetNodeId\n });\n if (mirrorTargetNodeId) {\n data = this.handleFindNodeById(data, mirrorTargetNodeId);\n // 设置节点居中,避免有些用户看到镜像块是空白的\n setMirrorRootNodeCenter();\n }\n this.hiddenRefreshData = this.safeStringify(data);\n this.logMirror.debug('隐藏状态 - 数据已缓存,等待可见时更新');\n } else {\n // 执行刷新操作\n // todo 使用协作插件干掉页面闪一下的效果,发现使用updateData后,可以解决这个问题\n // todo 使用updateData提升性能\n // https://wanglin2.github.io/mind-map-docs/api/constructor/constructor-methods.html#updatedata-data\n const {\n getWidgetBlockInfo\n } = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_51__[\"useData\"])();\n const {\n mirrorTargetNodeId\n } = getWidgetBlockInfo();\n // console.log('mirrorTargetNodeId:', mirrorTargetNodeId)\n let data = JSON.parse(event.data.message);\n this.logMirror.debug('可见状态 - 解析数据成功', {\n mirrorTargetNodeId\n });\n if (mirrorTargetNodeId) {\n // 从data中查找mirrorTargetNodeId\n this.logMirror.debug('可见状态 - 准备更新部分节点数据');\n data = this.handleFindNodeById(data, mirrorTargetNodeId);\n this.mindMap.updateData(data);\n this.logMirror.info('可见状态 - 部分节点数据更新完成');\n // 设置节点居中,避免有些用户看到镜像块是空白的\n setMirrorRootNodeCenter();\n } else {\n this.logMirror.debug('可见状态 - 准备更新全部数据');\n this.mindMap.updateData(data);\n this.logMirror.info('可见状态 - 全部数据更新完成');\n }\n }\n }\n },\n handleStartTextEdit() {\n this.mindMap.renderer.startTextEdit();\n },\n handleEndTextEdit() {\n this.mindMap.renderer.endTextEdit();\n },\n handleCreateLineFromActiveNode() {\n this.mindMap.associativeLine.createLineFromActiveNode();\n },\n handleStartPainter() {\n this.mindMap.painter.startPainter();\n },\n handleResize() {\n this.mindMap.resize();\n },\n // 显示loading\n handleShowLoading() {\n this.enableShowLoading = true;\n Object(_utils_loading__WEBPACK_IMPORTED_MODULE_61__[\"showLoading\"])(this.loadingTarget);\n },\n // 渲染结束后关闭loading\n handleHideLoading() {\n if (this.enableShowLoading) {\n this.enableShowLoading = false;\n Object(_utils_loading__WEBPACK_IMPORTED_MODULE_61__[\"hideLoading\"])();\n Object(_utils_kmindInitLoading__WEBPACK_IMPORTED_MODULE_60__[\"hideKMindInitLoading\"])();\n }\n // todo 每次数据更新都会触发,之后可以通过修改镜像块的导图位置数据来解决\n setMirrorRootNodeCenter();\n },\n // 获取思维导图数据,实际应该调接口获取\n async getData() {\n var _this$injectConfig29, _this$injectConfig30, _this$injectConfig31, _this$injectConfig32, _this$injectConfig33, _this$injectConfig34, _this$injectConfig35, _this$injectConfig37, _this$injectConfig38;\n this.logData.info('开始获取思维导图数据', {\n type: (_this$injectConfig29 = this.injectConfig) === null || _this$injectConfig29 === void 0 ? void 0 : _this$injectConfig29.type,\n name: (_this$injectConfig30 = this.injectConfig) === null || _this$injectConfig30 === void 0 ? void 0 : _this$injectConfig30.name\n });\n if (((_this$injectConfig31 = this.injectConfig) === null || _this$injectConfig31 === void 0 ? void 0 : _this$injectConfig31.type) === 'sy-plugin' || ((_this$injectConfig32 = this.injectConfig) === null || _this$injectConfig32 === void 0 ? void 0 : _this$injectConfig32.type) === 'sy-widget' || ((_this$injectConfig33 = this.injectConfig) === null || _this$injectConfig33 === void 0 ? void 0 : _this$injectConfig33.type) === 'sy-doctree-doc' || ((_this$injectConfig34 = this.injectConfig) === null || _this$injectConfig34 === void 0 ? void 0 : _this$injectConfig34.type) === 'sy-doctree-doc-dom' || ((_this$injectConfig35 = this.injectConfig) === null || _this$injectConfig35 === void 0 ? void 0 : _this$injectConfig35.type) === 'sy-doctree-moc-dom') {\n let {\n mindMapData\n } = await Object(_api__WEBPACK_IMPORTED_MODULE_31__[\"getData\"])(this.injectConfig.type, this.injectConfig);\n this.logData.debug('获取到原始数据', {\n hasData: !!mindMapData,\n hasRoot: !!(mindMapData !== null && mindMapData !== void 0 && mindMapData.root),\n dataSize: JSON.stringify(mindMapData || {}).length\n });\n\n // 如果为空对象,说明是新建的空文件,则数据从初始数据中获取\n // 目前发现有root为null的情况,所以这里判断root是否存在\n if (Object(lodash__WEBPACK_IMPORTED_MODULE_62__[\"isEmpty\"])(mindMapData) || !mindMapData.root) {\n var _this$globalConfig$ne, _this$globalConfig, _this$globalConfig$ne2, _this$globalConfig2, _this$injectConfig36;\n this.isNewKMind = true;\n this.logData.info('新建空文件,使用默认数据初始化');\n // 从全局配置中获取初始数据\n const theme = (_this$globalConfig$ne = (_this$globalConfig = this.globalConfig) === null || _this$globalConfig === void 0 ? void 0 : _this$globalConfig.newKmindAutoSelectTheme) !== null && _this$globalConfig$ne !== void 0 ? _this$globalConfig$ne : 'classic7';\n const layout = (_this$globalConfig$ne2 = (_this$globalConfig2 = this.globalConfig) === null || _this$globalConfig2 === void 0 ? void 0 : _this$globalConfig2.newKmindAutoSelectStructure) !== null && _this$globalConfig$ne2 !== void 0 ? _this$globalConfig$ne2 : 'logicalStructure';\n _config_constant__WEBPACK_IMPORTED_MODULE_49__[\"kmindInitDataForGlobalConfigI18N\"][_i18n__WEBPACK_IMPORTED_MODULE_57__[\"default\"].locale].theme.template = theme;\n _config_constant__WEBPACK_IMPORTED_MODULE_49__[\"kmindInitDataForGlobalConfigI18N\"][_i18n__WEBPACK_IMPORTED_MODULE_57__[\"default\"].locale].layout = layout;\n const data = _config_constant__WEBPACK_IMPORTED_MODULE_49__[\"kmindInitDataForGlobalConfigI18N\"][_i18n__WEBPACK_IMPORTED_MODULE_57__[\"default\"].locale];\n if ((_this$injectConfig36 = this.injectConfig) !== null && _this$injectConfig36 !== void 0 && _this$injectConfig36.doctreeDocInitTitle) {\n data.root.data.text = this.injectConfig.doctreeDocInitTitle;\n // todo 使用完毕后清理这个属性\n }\n this.mindMapData = data;\n this.$store.commit('setMindMapDataJson', this.safeStringify(data));\n // this.mindMapData = kmindInitData\n } else {\n var _this$mindMapData, _this$mindMapData2;\n // 兼容处理smm0.13.0之前的数据\n const {\n compatibleSmmVersion\n } = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_51__[\"useData\"])();\n this.mindMapData = compatibleSmmVersion(mindMapData);\n this.logData.debug('数据兼容处理完成', {\n hasData: !!this.mindMapData,\n dataSize: JSON.stringify(this.mindMapData || {}).length\n });\n // 更新仓库数据用于保存\n this.$store.commit('setMindMapDataJson', this.safeStringify(this.mindMapData));\n // 如果有的话,更新config和localConfig字段到state中\n if ((_this$mindMapData = this.mindMapData) !== null && _this$mindMapData !== void 0 && _this$mindMapData.config) {\n this.$store.commit('setConfig', this.mindMapData.config);\n }\n if ((_this$mindMapData2 = this.mindMapData) !== null && _this$mindMapData2 !== void 0 && _this$mindMapData2.localConfig) {\n this.$store.commit('setLocalConfig', this.mindMapData.localConfig);\n }\n }\n } else if (((_this$injectConfig37 = this.injectConfig) === null || _this$injectConfig37 === void 0 ? void 0 : _this$injectConfig37.type) === 'sy-plugin-doc2kmind') {\n var _this$globalConfig$si, _this$globalConfig3, _this$globalConfig$si2, _this$globalConfig4;\n const res = await Object(_api__WEBPACK_IMPORTED_MODULE_31__[\"getData\"])(this.injectConfig.type, this.injectConfig);\n // const themeMode = globalThis.parent.document.documentElement.getAttribute(\n // 'data-theme-mode'\n // )\n // switch (themeMode) {\n // case 'light':\n // this.mindMapData = kmindInitData2\n // break\n // case 'dark':\n // this.mindMapData = kmindInitDataDark\n // }\n const theme = (_this$globalConfig$si = (_this$globalConfig3 = this.globalConfig) === null || _this$globalConfig3 === void 0 ? void 0 : _this$globalConfig3.siYuanToKMindAutoSelectTheme) !== null && _this$globalConfig$si !== void 0 ? _this$globalConfig$si : 'classic7';\n const layout = (_this$globalConfig$si2 = (_this$globalConfig4 = this.globalConfig) === null || _this$globalConfig4 === void 0 ? void 0 : _this$globalConfig4.siYuanToKMindAutoSelectStructure) !== null && _this$globalConfig$si2 !== void 0 ? _this$globalConfig$si2 : 'logicalStructure';\n this.mindMapData = _config_constant__WEBPACK_IMPORTED_MODULE_49__[\"kmindInitDataForGlobalConfig\"];\n this.mindMapData.root = Object(lodash__WEBPACK_IMPORTED_MODULE_62__[\"cloneDeep\"])(this.handleSYToKMind5(res));\n this.mindMapData.theme.template = theme;\n this.mindMapData.layout = layout;\n // console.log('this.mindMapData:', this.mindMapData)\n } else if (((_this$injectConfig38 = this.injectConfig) === null || _this$injectConfig38 === void 0 ? void 0 : _this$injectConfig38.type) === 'sy-widget-mirror') {\n setIsMirrorBlock(true);\n let {\n mindMapData\n } = await Object(_api__WEBPACK_IMPORTED_MODULE_31__[\"getData\"])(this.injectConfig.type, this.injectConfig);\n const {\n getWidgetBlockInfo\n } = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_51__[\"useData\"])();\n const {\n mirrorTargetNodeId\n } = getWidgetBlockInfo();\n // console.log('mirrorTargetNodeId:', mirrorTargetNodeId)\n if (mirrorTargetNodeId) {\n setMirrorTargetNodeId(mirrorTargetNodeId);\n // 从data中查找mirrorTargetNodeId\n const rootData = this.handleFindNodeById(mindMapData.root, mirrorTargetNodeId);\n this.mindMapData = {\n ...mindMapData,\n root: rootData\n };\n } else {\n this.mindMapData = mindMapData;\n }\n } else {\n let storeData = Object(_api__WEBPACK_IMPORTED_MODULE_31__[\"getData\"])();\n this.mindMapData = storeData;\n // console.log('默认storeData:', JSON.stringify(storeData))\n // console.log('默认storeData:', storeData)\n }\n\n // if (Object.keys(this.injectConfig).length > 0) {\n // let { mindMapData } = await getData(\n // this.injectConfig.type,\n // this.injectConfig\n // )\n // console.log('getData:', mindMapData)\n // // 如果为空对象,说明是新建的空文件,则数据从初始数据中获取\n // if (isEmpty(mindMapData)) {\n // this.isNewKMind = true\n // this.mindMapData = kmindInitData\n // } else {\n // this.mindMapData = mindMapData\n // }\n // } else {\n // let storeData = getData()\n // this.mindMapData = storeData\n // }\n },\n // 存储数据当数据有变时\n bindSaveEvent() {\n this.$bus.$on('data_change', data => {\n this.logData.debug('===== 导图数据变化事件 =====');\n this.logData.debug('数据变化状态', {\n isNewKMind: this.isNewKMind,\n dataChangeNum: this.dataChangeNum\n });\n\n // 老导图第一次dataChange直接返回\n if (!this.isNewKMind && this.dataChangeNum === 0) {\n this.dataChangeNum++;\n this.logData.debug('旧导图首次加载,忽略此次变化');\n return;\n }\n this.dataChangeNum++;\n this.logData.info(`正在处理第 ${this.dataChangeNum} 次数据变化`);\n this.logData.debug('变化的节点数据', data);\n this.logData.debug('导图数据信息', {\n dataSize: this.safeStringify(this.mindMap.getData(true)).length\n });\n this.$store.commit('setMindMapDataJson', this.safeStringify(this.mindMap.getData(true)));\n // console.log(\n // 'this.$store.state.mindMapData',\n // this.$store.state.mindMapDataJson\n // )\n // console.log('data_change:', this.senderId)\n // storeData内部会从store获取数据保存,这里传入的data实际上在思源插件里没有用上,只是为了兼容webapp的存储到localstorage的方式\n Object(_api__WEBPACK_IMPORTED_MODULE_31__[\"storeData\"])(data, {\n ...this.injectConfig,\n app: this.mindMap\n });\n this.handleSaveHistory();\n // this.senderId &&\n // this.handlePublish(JSON.stringify(this.mindMap.getData(true)))\n // 添加详细的日志信息\n this.logMirror.debug('准备发布数据更新', {\n senderId: this.senderId\n });\n if (this.senderId) {\n const publishData = this.safeStringify(data);\n this.logMirror.info('正在发布数据', {\n dataLength: publishData.length\n });\n this.handlePublish(publishData);\n this.logMirror.debug('数据发布完成');\n } else {\n this.logData.debug('没有senderId,不需要发布数据');\n }\n this.logData.debug('===== 数据变化处理完成 =====');\n this.handleUpdateDocTreeKMindSearchBlock(this.injectConfig);\n });\n this.$bus.$on('view_data_change', data => {\n if (this.dataChangeNum === 1) {\n // this.dataChangeNum === 1意味着导图数据没有真正的变化过,所以不保存视图数据\n return;\n }\n clearTimeout(this.storeConfigTimer);\n this.storeConfigTimer = setTimeout(() => {\n // 防抖更新store中的完整数据\n this.$store.commit('setMindMapDataJson', this.safeStringify(this.mindMap.getData(true)));\n // console.log('this.dataChangeNum:', this.dataChangeNum)\n // 由于思源插件的数据存储是整体存储,所以这里只存储完整数据\n if (this.injectConfig.type === 'sy-plugin' || this.injectConfig.type === 'sy-widget') {\n Object(_api__WEBPACK_IMPORTED_MODULE_31__[\"storeData\"])(data, {\n ...this.injectConfig,\n app: this.mindMap\n });\n } else {\n // 存储到localStorage的话,配置和视图数据分开存储\n // fix: 好像不能保存视图数据\n Object(_api__WEBPACK_IMPORTED_MODULE_31__[\"storeConfig\"])({\n view: data\n }, {\n ...this.injectConfig,\n app: this.mindMap\n });\n }\n }, 300);\n });\n },\n handleAutoSaveHistory() {\n // 每6分钟自动保存一次,先写死6分钟,后期外部读取\n this.autoSaveHistoryTimer = setInterval(() => {\n this.handleSaveHistory();\n }, 6 * 60 * 1000);\n },\n // 手动保存\n manualSave() {\n let data = this.mindMap.getData(true);\n Object(_api__WEBPACK_IMPORTED_MODULE_31__[\"storeConfig\"])(data, {\n ...this.injectConfig,\n app: this.mindMap\n });\n },\n // 初始化\n init() {\n var _this$injectConfig39, _theme, _root, _theme$template, _theme2, _theme$config, _theme3, _this$injectConfig40, _this$injectConfig42, _this$injectConfig43, _this$injectConfig44, _this$injectConfig45, _this$injectConfig46, _getGlobalConfig, _this$injectConfig47, _this$globalConfig10, _this$globalConfig11, _window, _this$injectConfig48, _this$injectConfig49;\n this.info('开始初始化思维导图实例');\n let hasFileURL = this.hasFileURL();\n let {\n root,\n layout,\n theme,\n view,\n config,\n localConfig\n } = this.mindMapData;\n // 如果url中存在要打开的文件,那么思维导图数据、主题、布局都使用默认的\n if (hasFileURL) {\n root = {\n data: {\n text: this.$t('edit.root')\n },\n children: []\n };\n layout = simple_mind_map_example_exampleData__WEBPACK_IMPORTED_MODULE_63__[\"default\"].layout;\n theme = simple_mind_map_example_exampleData__WEBPACK_IMPORTED_MODULE_63__[\"default\"].theme;\n view = null;\n this.debug('使用默认数据初始化(URL文件模式)');\n }\n\n // MOC 模式:根据全局配置覆盖默认主题与布局\n if (((_this$injectConfig39 = this.injectConfig) === null || _this$injectConfig39 === void 0 ? void 0 : _this$injectConfig39.type) === 'sy-doctree-moc-dom') {\n try {\n var _this$globalConfig5, _this$globalConfig6;\n const mocTheme = (_this$globalConfig5 = this.globalConfig) === null || _this$globalConfig5 === void 0 ? void 0 : _this$globalConfig5.mocDefaultTheme;\n const mocLayout = (_this$globalConfig6 = this.globalConfig) === null || _this$globalConfig6 === void 0 ? void 0 : _this$globalConfig6.mocDefaultLayout;\n if (mocTheme) {\n theme = theme || {};\n theme.template = mocTheme;\n }\n if (mocLayout) {\n layout = mocLayout;\n }\n } catch (_) {}\n }\n this.debug('创建MindMap实例', {\n layout,\n theme: (_theme = theme) === null || _theme === void 0 ? void 0 : _theme.template,\n hasRoot: !!root,\n nodeCount: ((_root = root) === null || _root === void 0 || (_root = _root.children) === null || _root === void 0 ? void 0 : _root.length) || 0\n });\n\n // 预先获取跨框架 API(供 MOC 内联图标使用)\n const crossFrameAPI = Object(_hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_50__[\"useCrossFrameAPI\"])(this.injectConfig);\n this.mindMap = new simple_mind_map__WEBPACK_IMPORTED_MODULE_6__[\"default\"]({\n isShowCreateChildBtnIcon: false,\n defaultAssociativeLineText: this.$t('kmindDefaultText.defaultAssociativeLineText'),\n defaultGeneralizationText: this.$t('kmindDefaultText.defaultGeneralizationText'),\n defaultInsertSecondLevelNodeText: this.$t('kmindDefaultText.defaultInsertSecondLevelNodeText'),\n defaultInsertBelowSecondLevelNodeText: this.$t('kmindDefaultText.defaultInsertBelowSecondLevelNodeText'),\n el: this.$refs.mindMapContainer,\n data: root,\n fit: false,\n layout: layout,\n theme: (_theme$template = (_theme2 = theme) === null || _theme2 === void 0 ? void 0 : _theme2.template) !== null && _theme$template !== void 0 ? _theme$template : '',\n themeConfig: (_theme$config = (_theme3 = theme) === null || _theme3 === void 0 ? void 0 : _theme3.config) !== null && _theme$config !== void 0 ? _theme$config : {},\n viewData: view,\n nodeTextEditZIndex: 1000,\n nodeNoteTooltipZIndex: 1000,\n customNoteContentShow: {\n show: (content, left, top, node) => {\n this.$bus.$emit('showNoteContent', content, left, top, node);\n },\n hide: () => {\n // this.$bus.$emit('hideNoteContent')\n }\n },\n openRealtimeRenderOnNodeTextEdit: true,\n // kmind中先禁用掉这个,因为如果是挂件中开启了,那么挂件取消激活的时候,会导致还是能输入\n // enableAutoEnterTextEditWhenKeydown: true,\n ...(config || {}),\n // MOC 模式下禁用画布级剪贴板读取/写入,防止节点树的复制/粘贴\n disabledClipboard: ((_this$injectConfig40 = this.injectConfig) === null || _this$injectConfig40 === void 0 ? void 0 : _this$injectConfig40.type) === 'sy-doctree-moc-dom',\n iconList: [..._config_icon__WEBPACK_IMPORTED_MODULE_32__[\"default\"]],\n useLeftKeySelectionRightKeyDrag: this.useLeftKeySelectionRightKeyDrag,\n customInnerElsAppendTo: null,\n customHyperlinkJump: this.customHyperlinkJump,\n customHandleClipboardText: _utils_handleClipboardText__WEBPACK_IMPORTED_MODULE_59__[\"default\"],\n defaultNodeImage: __webpack_require__(/*! ../../../assets/img/图片加载失败.svg */ \"./src/assets/img/图片加载失败.svg\"),\n initRootNodePosition: ['center', 'center'],\n // MOC: 节点后置“打开文档”小图标(低亮,hover 高亮;点击打开;hover N 秒弹出思源悬浮窗)\n createNodePostfixContent: node => {\n try {\n var _this$injectConfig41, _node$nodeData4, _node$mindMap, _this$globalConfig7, _node$style, _this$globalConfig8;\n // 仅在 MOC 模式且节点存在 docId 时显示\n if (((_this$injectConfig41 = this.injectConfig) === null || _this$injectConfig41 === void 0 ? void 0 : _this$injectConfig41.type) !== 'sy-doctree-moc-dom') return null;\n const docId = node === null || node === void 0 || (_node$nodeData4 = node.nodeData) === null || _node$nodeData4 === void 0 || (_node$nodeData4 = _node$nodeData4.data) === null || _node$nodeData4 === void 0 ? void 0 : _node$nodeData4.docId;\n if (!docId) return null;\n // 根节点不渲染内联图标\n if (node !== null && node !== void 0 && node.isRoot) return null;\n // 移动端不显示\n if (crossFrameAPI.isMobile && crossFrameAPI.isMobile()) return null;\n // 全局配置:可关闭\n if (this.globalConfig && this.globalConfig.enableMocInlineDocIcon === false) return null;\n const size = (node === null || node === void 0 || (_node$mindMap = node.mindMap) === null || _node$mindMap === void 0 || (_node$mindMap = _node$mindMap.themeConfig) === null || _node$mindMap === void 0 ? void 0 : _node$mindMap.iconSize) || 16;\n const wrapper = document.createElement('div');\n wrapper.setAttribute('data-kmind-moc-link', 'true');\n // Title 根据打开位置切换\n const pos = ((_this$globalConfig7 = this.globalConfig) === null || _this$globalConfig7 === void 0 ? void 0 : _this$globalConfig7.mocInlineOpenPosition) || 'right';\n const titleMap = {\n right: this.$t('openSiyuanFloat.openRight') || '在右侧打开',\n bottom: this.$t('openSiyuanFloat.openBottom') || '在下方打开',\n current: this.$t('openSiyuanFloat.open') || '打开文档'\n };\n wrapper.setAttribute('title', titleMap[pos] || titleMap.right);\n wrapper.style.cssText = ['display:inline-flex', 'align-items:center', 'justify-content:center', 'width:' + size + 'px', 'height:' + size + 'px', 'cursor:pointer', 'opacity:0.45', 'transition:opacity 150ms ease', 'user-select:none'].join(';');\n\n // 使用内置超链接 SVG 图标,改为填充 currentColor,颜色跟随节点文字色\n const color = (node === null || node === void 0 || (_node$style = node.style) === null || _node$style === void 0 ? void 0 : _node$style.merge('color')) || '#666';\n wrapper.style.color = color;\n wrapper.innerHTML = simple_mind_map_src_svg_icons__WEBPACK_IMPORTED_MODULE_75__[\"default\"].hyperlink;\n const svg = wrapper.querySelector('svg');\n if (svg) {\n svg.setAttribute('width', '100%');\n svg.setAttribute('height', '100%');\n // 强制使用 currentColor 作为填充色\n const paths = svg.querySelectorAll('path');\n paths.forEach(p => {\n p.setAttribute('fill', 'currentColor');\n p.setAttribute('style', 'fill: currentColor');\n });\n }\n\n // 事件:hover 高亮 + 2s 弹出思源悬浮窗 + 鼠标处环形进度\n let hoverTimer = null;\n let ringEl = null;\n let rafId = 0;\n const duration = (_this$globalConfig8 = this.globalConfig) !== null && _this$globalConfig8 !== void 0 && _this$globalConfig8.mocInlineHoverDuration && Number(this.globalConfig.mocInlineHoverDuration) > 0 ? Number(this.globalConfig.mocInlineHoverDuration) : 2000;\n const sizePx = 22;\n const r = 9;\n const circumference = Math.PI * 2 * r;\n const clearTimer = () => {\n if (hoverTimer) {\n clearTimeout(hoverTimer);\n hoverTimer = null;\n }\n };\n const removeProgressRing = () => {\n if (rafId) {\n cancelAnimationFrame(rafId);\n rafId = 0;\n }\n if (ringEl && ringEl.parentNode) {\n ringEl.parentNode.removeChild(ringEl);\n }\n ringEl = null;\n };\n const createProgressRing = e => {\n removeProgressRing();\n const el = document.createElement('div');\n el.className = 'kmind-moc-progress-ring';\n el.style.cssText = ['position:fixed', `left:${e.clientX}px`, `top:${e.clientY}px`, `width:${sizePx}px`, `height:${sizePx}px`, 'pointer-events:none', 'z-index:3001', 'transform:translate(-50%,-50%)'].join(';');\n // 颜色跟随节点文字色\n const ringColor = color;\n el.innerHTML = `\n <svg width=\"${sizePx}\" height=\"${sizePx}\" viewBox=\"0 0 ${sizePx} ${sizePx}\">\n <circle cx=\"11\" cy=\"11\" r=\"${r}\" stroke=\"rgba(0,0,0,0.18)\" stroke-width=\"2\" fill=\"none\" />\n <circle class=\"km-ring-progress\" cx=\"11\" cy=\"11\" r=\"${r}\" stroke=\"${ringColor}\" stroke-width=\"2\" fill=\"none\"\n stroke-linecap=\"round\" stroke-dasharray=\"${circumference}\" stroke-dashoffset=\"${circumference}\" />\n </svg>\n `;\n document.body.appendChild(el);\n ringEl = el;\n // raf 动画\n const progressCircle = el.querySelector('.km-ring-progress');\n const start = performance.now();\n const step = now => {\n const t = Math.min((now - start) / duration, 1);\n if (progressCircle) {\n const offset = circumference * (1 - t);\n progressCircle.setAttribute('stroke-dashoffset', String(offset));\n }\n if (t < 1 && ringEl) {\n rafId = requestAnimationFrame(step);\n }\n };\n rafId = requestAnimationFrame(step);\n };\n const moveProgressRing = e => {\n if (!ringEl) return;\n ringEl.style.left = e.clientX + 'px';\n ringEl.style.top = e.clientY + 'px';\n };\n wrapper.addEventListener('mouseenter', e => {\n e.stopPropagation();\n wrapper.style.opacity = '1';\n clearTimer();\n createProgressRing(e);\n hoverTimer = setTimeout(() => {\n try {\n Object(_hooks_useSiYuanAddFloatLayer__WEBPACK_IMPORTED_MODULE_55__[\"addSiYuanFloatLayer\"])({\n ids: [docId],\n targetElement: wrapper,\n injectConfig: this.injectConfig\n });\n } catch (_) {}\n removeProgressRing();\n }, duration);\n });\n wrapper.addEventListener('mousemove', e => {\n e.stopPropagation();\n moveProgressRing(e);\n });\n wrapper.addEventListener('mouseleave', e => {\n e.stopPropagation();\n wrapper.style.opacity = '0.45';\n clearTimer();\n removeProgressRing();\n });\n\n // 事件:点击右侧打开,不影响节点选中/编辑\n wrapper.addEventListener('click', e => {\n e.stopPropagation();\n e.preventDefault();\n try {\n var _this$globalConfig9;\n const pos = ((_this$globalConfig9 = this.globalConfig) === null || _this$globalConfig9 === void 0 ? void 0 : _this$globalConfig9.mocInlineOpenPosition) || 'right';\n if (pos === 'bottom' && crossFrameAPI !== null && crossFrameAPI !== void 0 && crossFrameAPI.openDocBottom) {\n crossFrameAPI.openDocBottom(docId);\n } else if (pos === 'current' && crossFrameAPI !== null && crossFrameAPI !== void 0 && crossFrameAPI.openDocInCurrentTab) {\n crossFrameAPI.openDocInCurrentTab(docId);\n } else if (crossFrameAPI !== null && crossFrameAPI !== void 0 && crossFrameAPI.openDocRight) {\n crossFrameAPI.openDocRight(docId);\n }\n } catch (_) {}\n clearTimer();\n removeProgressRing();\n });\n return {\n el: wrapper,\n width: size,\n height: size\n };\n } catch (e) {\n return null;\n }\n },\n handleIsSplitByWrapOnPasteCreateNewNode: ((_this$injectConfig42 = this.injectConfig) === null || _this$injectConfig42 === void 0 ? void 0 : _this$injectConfig42.type) === 'sy-doctree-moc-dom' ? null // MOC 模式暂不支持“按换行拆分为多个节点”\n : () => {\n return this.$confirm(this.$t('edit.splitByWrap'), this.$t('edit.tip'), {\n confirmButtonText: this.$t('edit.yes'),\n cancelButtonText: this.$t('edit.no'),\n type: 'warning'\n });\n },\n errorHandler: (code, err) => {\n console.error(err);\n switch (code) {\n case 'export_error':\n this.$message.error(this.$t('edit.exportError'));\n break;\n default:\n break;\n }\n },\n addContentToFooter: () => {\n const text = this.extraTextOnExport.trim();\n if (!text) return null;\n const el = document.createElement('div');\n el.className = 'footer';\n el.innerHTML = text;\n const cssText = `\n .footer {\n width: 100%;\n height: 30px;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 12px;\n color: #979797;\n }\n `;\n return {\n el,\n cssText,\n height: 30\n };\n },\n expandBtnNumHandler: num => {\n return num >= 100 ? '…' : num;\n },\n beforeDeleteNodeImg: node => {\n return new Promise(resolve => {\n this.$confirm(this.$t('edit.deleteNodeImgTip'), this.$t('edit.tip'), {\n confirmButtonText: this.$t('edit.yes'),\n cancelButtonText: this.$t('edit.no'),\n type: 'warning'\n }).then(() => {\n resolve(false);\n }).catch(() => {\n resolve(true);\n });\n });\n }\n // createNodePrefixContent: node => {\n // const el = document.createElement('div')\n // el.style.width = '50px'\n // el.style.height = '50px'\n // el.style.background = 'red'\n // return {\n // el,\n // width: 50,\n // height: 50\n // }\n // },\n // createNodePostfixContent: node => {\n // const domparser = new DOMParser()\n // const doc = domparser.parseFromString(\n // '<b style=\"background-color: rgb(214, 239, 214);\">白日依山尽</b>',\n // 'text/html'\n // )\n // const el = doc.querySelector('b')\n // return {\n // el,\n // width: 50,\n // height: 50\n // }\n // },\n // addContentToHeader: () => {\n // const el = document.createElement('div')\n // el.className = 'footer'\n // el.innerHTML = '理想青年实验室'\n // const cssText = `\n // .header {\n // width: 100%;\n // height: 50px;\n // background: #f5f5f5;\n // display: flex;\n // justify-content: center;\n // align-items: center\n // }\n // `\n // return {\n // el,\n // cssText,\n // height: 50\n // }\n // },\n // beforeShortcutRun: (key, activeNodeList) => {\n // console.log(key, activeNodeList)\n // // 阻止删除快捷键行为\n // if (key === 'Backspace') {\n // return true\n // }\n // }\n // handleNodePasteImg: img => {\n // console.log(img)\n // return new Promise(resolve => {\n // setTimeout(() => {\n // resolve({\n // url: require('../../../assets/img/themes/autumn.jpg'),\n // size: {\n // width: 100,\n // height: 100\n // }\n // })\n // }, 200)\n // })\n // }\n // isUseCustomNodeContent: true,\n // 示例1:组件里用到了router、store、i18n等实例化vue组件时需要用到的东西\n // customCreateNodeContent: (node) => {\n // let el = document.createElement('div')\n // let Comp = Vue.extend(Color)\n // let comp = new Comp({\n // router,\n // store,\n // i18n\n // })\n // comp.$mount(el)\n // return comp.$el\n // },\n // 示例2:组件里没有用到示例1的东西\n // customCreateNodeContent: (node) => {\n // let el = document.createElement('div')\n // let Comp = Vue.extend(CustomNodeContent)\n // let comp = new Comp({\n // propsData: {\n // html: node.nodeData.data.text\n // }\n // })\n // comp.$mount(el)\n // return comp.$el\n // },\n // 示例3:普通元素\n // customCreateNodeContent: node => {\n // let el = document.createElement('div')\n // el.style.cssText = `\n // width: 203px;\n // height: 78px;\n // opacity: 0.8;\n // background-image: linear-gradient(0deg, rgba(53,130,172,0.06) 0%, rgba(24,75,116,0.06) 100%);\n // box-shadow: inset 0 1px 15px 0 rgba(119,196,255,0.40);\n // border-radius: 2px;\n // display: flex;\n // justify-content: center;\n // align-items: center;\n // `\n // el.innerHTML = `\n // ${node.nodeData.data.text}\n // <img crossOrigin=\"anonymous\" src=\"/img/cactus.jpg\" />\n // `\n // return el\n // }\n });\n // console.log(this.mindMap)\n this.loadPlugins();\n\n // 如果是 MOC 模式,启用 SYMoc 插件\n if (((_this$injectConfig43 = this.injectConfig) === null || _this$injectConfig43 === void 0 ? void 0 : _this$injectConfig43.type) === 'sy-doctree-moc-dom') {\n this.initMocMode();\n }\n this.mindMap.keyCommand.addShortcut('Control+s', () => {\n this.manualSave();\n });\n\n // 空格直接开启编辑节点\n this.mindMap.keyCommand.addShortcut('Spacebar', () => {\n // kmind.keyCommand.getShortcutFn('F2') 返回的是方法数组\n this.mindMap.keyCommand.getShortcutFn('F2')[0]();\n this.mindMap.richText.selectAll();\n });\n\n // 处理超链接的单击\n this.mindMap.on('node_kmind_hyperlinkClick', (node, e) => {\n // console.log('node_kmind_hyperlinkClick', node, e)\n const linkUrl = node === null || node === void 0 ? void 0 : node.getData('hyperlink');\n if (e !== null && e !== void 0 && e.altKey && linkUrl !== null && linkUrl !== void 0 && linkUrl.startsWith('siyuan://blocks/')) {\n e.preventDefault();\n // @ts-ignore kmind插件把api挂载到了window上\n // window.parent.kmindApi.plugin.addFloatLayer({\n // // 获取最后一个斜杠后的id\n // ids: [linkUrl?.substr(linkUrl.lastIndexOf('/') + 1)],\n // x: e.screenX,\n // y: e.screenY\n // })\n\n const ids = [linkUrl === null || linkUrl === void 0 ? void 0 : linkUrl.substr(linkUrl.lastIndexOf('/') + 1)];\n Object(_hooks_useSiYuanAddFloatLayer__WEBPACK_IMPORTED_MODULE_55__[\"addSiYuanFloatLayer\"])({\n ids,\n x: e.screenX,\n y: e.screenY,\n injectConfig: this.injectConfig\n });\n return false;\n }\n\n // 直接点击,也应该分移动端和pc端处理\n if (linkUrl !== null && linkUrl !== void 0 && linkUrl.startsWith('siyuan://blocks/')) {\n e.preventDefault();\n const {\n openDocWithFocus\n } = Object(_hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_50__[\"useCrossFrameAPI\"])(this.injectConfig);\n openDocWithFocus(linkUrl === null || linkUrl === void 0 ? void 0 : linkUrl.substr(linkUrl.lastIndexOf('/') + 1));\n return false;\n }\n\n // 由于底层库中node_kmind_hyperlinkClick阻止了默认事件e.preventDefault()\n // 这里手动处理非思源的超链接\n window.open(linkUrl);\n });\n\n // 处理思源超链接的单击\n this.mindMap.on('node_siyuanHyperlinkClick', (node, e) => {\n // console.log('node_siyuanHyperlinkClick', node, e)\n const linkUrl = node === null || node === void 0 ? void 0 : node.getData('siyuanHyperlink');\n if (e !== null && e !== void 0 && e.altKey && linkUrl !== null && linkUrl !== void 0 && linkUrl.startsWith('siyuan://blocks/')) {\n e.preventDefault();\n // @ts-ignore kmind插件把api挂载到了window上\n // window.parent.kmindApi.plugin.addFloatLayer({\n // // 获取最后一个斜杠后的id\n // ids: [linkUrl?.substr(linkUrl.lastIndexOf('/') + 1)],\n // x: e.screenX,\n // y: e.screenY\n // })\n const ids = [linkUrl === null || linkUrl === void 0 ? void 0 : linkUrl.substr(linkUrl.lastIndexOf('/') + 1)];\n Object(_hooks_useSiYuanAddFloatLayer__WEBPACK_IMPORTED_MODULE_55__[\"addSiYuanFloatLayer\"])({\n ids,\n x: e.screenX,\n y: e.screenY,\n injectConfig: this.injectConfig\n });\n return false;\n }\n\n // 直接点击,也应该分移动端和pc端处理\n if (linkUrl !== null && linkUrl !== void 0 && linkUrl.startsWith('siyuan://blocks/')) {\n e.preventDefault();\n const {\n openDocWithFocus\n } = Object(_hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_50__[\"useCrossFrameAPI\"])(this.injectConfig);\n openDocWithFocus(linkUrl === null || linkUrl === void 0 ? void 0 : linkUrl.substr(linkUrl.lastIndexOf('/') + 1));\n }\n });\n\n // 移动端的sy-doctree-doc,禁止编辑,并开启禅模式\n const {\n isMobile,\n getGlobalConfig\n } = Object(_hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_50__[\"useCrossFrameAPI\"])(this.injectConfig);\n if (isMobile() && (((_this$injectConfig44 = this.injectConfig) === null || _this$injectConfig44 === void 0 ? void 0 : _this$injectConfig44.type) === 'sy-doctree-doc' || ((_this$injectConfig45 = this.injectConfig) === null || _this$injectConfig45 === void 0 ? void 0 : _this$injectConfig45.type) === 'sy-doctree-doc-dom' || ((_this$injectConfig46 = this.injectConfig) === null || _this$injectConfig46 === void 0 ? void 0 : _this$injectConfig46.type) === 'sy-doctree-moc-dom') && ((_getGlobalConfig = getGlobalConfig()) === null || _getGlobalConfig === void 0 ? void 0 : _getGlobalConfig.mobileDocTreeKmindEdit) === false) {\n this.$message.warning('为避免多端冲突,移动端当前仅支持查看导图,如果需要编辑,请去全局配置中开启');\n this.mindMap.setMode('readonly');\n this.setLocalConfig({\n isZenMode: true\n });\n }\n\n // sy-widget手动设置一下zenMode\n\n if (((_this$injectConfig47 = this.injectConfig) === null || _this$injectConfig47 === void 0 ? void 0 : _this$injectConfig47.type) === 'sy-widget') {\n this.setLocalConfig({\n isZenMode: true\n });\n }\n\n // region 全局配置\n if ((_this$globalConfig10 = this.globalConfig) !== null && _this$globalConfig10 !== void 0 && _this$globalConfig10.openKmindAutoZenMode) {\n this.setLocalConfig({\n isZenMode: true\n });\n }\n\n // 打开KMind时自动进入只读模式\n if ((_this$globalConfig11 = this.globalConfig) !== null && _this$globalConfig11 !== void 0 && _this$globalConfig11.openKmindAutoReadOnlyMode) {\n this.setIsReadonly(true);\n this.mindMap.setMode('readonly');\n }\n\n // 移动端强制为false\n if ((_window = window) !== null && _window !== void 0 && (_window = _window.parent) !== null && _window !== void 0 && (_window = _window.kmindApi) !== null && _window !== void 0 && (_window = _window.plugin) !== null && _window !== void 0 && _window.isMobile) {\n this.mindMap.updateConfig({\n useLeftKeySelectionRightKeyDrag: false\n });\n } else {\n var _this$globalConfig12;\n this.mindMap.updateConfig({\n useLeftKeySelectionRightKeyDrag: (_this$globalConfig12 = this.globalConfig) === null || _this$globalConfig12 === void 0 ? void 0 : _this$globalConfig12.leftKeySelectionRightKeyDrag\n });\n }\n // endregion\n\n // region 读取出来的smmConfig手动保存到kmind.config中,避免下次data_change的时候,store中没有,导致数据丢失\n // 目前是彩虹条配置\n // this.setKmindConfig({ smmConfig: config })\n this.setConfig(config);\n // endregion\n\n // region 镜像块自动居中\n setMindMapInstance(this.mindMap)\n // endregion\n // 转发事件\n ;\n ['node_active', 'data_change', 'data_change_detail', 'view_data_change', 'back_forward', 'node_contextmenu', 'node_click', 'draw_click', 'expand_btn_click', 'svg_mousedown', 'mouseup', 'mode_change', 'node_tree_render_end', 'rich_text_selection_change', 'transforming-dom-to-images', 'generalization_node_contextmenu', 'painter_start', 'painter_end', 'scrollbar_change', 'scale', 'translate', 'node_attachmentClick', 'node_attachmentContextmenu', 'demonstrate_jump', 'exit_demonstrate', 'node_note_dblclick'].forEach(event => {\n this.mindMap.on(event, (...args) => {\n if (event === 'node_click') {\n window.focus();\n }\n this.$bus.$emit(event, ...args);\n });\n });\n this.bindSaveEvent();\n this.testDynamicCreateNodes();\n\n // 如果是镜像模式,那么设置为只读模式\n if (((_this$injectConfig48 = this.injectConfig) === null || _this$injectConfig48 === void 0 ? void 0 : _this$injectConfig48.type) === 'sy-widget-mirror') {\n this.mindMap.setMode('readonly');\n }\n // 如果应用被接管,那么抛出事件传递思维导图实例\n if (window.takeOverApp) {\n this.$bus.$emit('app_inited', this.mindMap);\n }\n // 解析url中的文件\n if (hasFileURL) {\n this.$bus.$emit('handle_file_url');\n }\n // api/index.js文件使用\n // 当正在编辑本地文件时通过该方法获取最新数据\n vue__WEBPACK_IMPORTED_MODULE_33__[\"default\"].prototype.getCurrentData = () => {\n const fullData = this.mindMap.getData(true);\n return {\n ...fullData,\n config: this.mindMapData.config\n };\n };\n // 协同测试\n this.cooperateTest();\n\n // 记录初始化完成\n this.info('思维导图初始化完成', {\n mode: ((_this$injectConfig49 = this.injectConfig) === null || _this$injectConfig49 === void 0 ? void 0 : _this$injectConfig49.type) === 'sy-widget-mirror' ? 'readonly' : 'normal',\n hasURL: hasFileURL\n });\n },\n // 转换比较完美了,但是列表的容器块还是有点问题,会额外创建一个NodeListItem节点\n handleSYToKMind2(syData) {\n function convertSyDataToKmData(syData) {\n function createNode(block) {\n const node = {\n data: {\n text: getBlockText(block),\n uid: block.ID\n },\n children: []\n };\n if (block.Children && block.Children.some(child => child.ID)) {\n node.children = processChildren(block.Children);\n }\n return node;\n }\n function getBlockText(block) {\n if (block.Properties && block.Properties.title) {\n return block.Properties.title;\n }\n if (block.Children && !block.Children.some(child => child.ID)) {\n return block.Children.map(child => {\n if (child.Type === 'NodeText') return child.Data;\n if (child.Type === 'NodeTextMark') return child.TextMarkTextContent;\n return '';\n }).join('');\n }\n return block.Type.replace('Node', '容器块啊啊');\n }\n function processChildren(children) {\n const result = [];\n let currentHeading = null;\n let currentHeadingLevel = 0;\n children.forEach(child => {\n if (child.Type === 'NodeHeading') {\n if (child.HeadingLevel <= currentHeadingLevel) {\n currentHeading = null;\n }\n currentHeadingLevel = child.HeadingLevel;\n const node = createNode(child);\n if (currentHeading) {\n currentHeading.children.push(node);\n } else {\n result.push(node);\n }\n currentHeading = node;\n } else if (isContainerBlock(child)) {\n const containerChildren = processContainerBlock(child);\n if (currentHeading) {\n currentHeading.children.push(...containerChildren);\n } else {\n result.push(...containerChildren);\n }\n } else {\n const node = createNode(child);\n if (currentHeading) {\n currentHeading.children.push(node);\n } else {\n result.push(node);\n }\n }\n });\n return result;\n }\n function isContainerBlock(block) {\n return ['NodeList', 'NodeBlockquote', 'NodeSuperBlock'].includes(block.Type);\n }\n function processContainerBlock(block) {\n if (block.Type === 'NodeList') {\n return processListBlock(block);\n } else if (block.Type === 'NodeBlockquote' || block.Type === 'NodeSuperBlock') {\n return processChildren(block.Children.filter(child => child.ID));\n }\n return [];\n }\n function processListBlock(listBlock) {\n return listBlock.Children.map(listItem => {\n const node = createNode(listItem);\n if (listItem.Children) {\n node.children = processChildren(listItem.Children.filter(child => child.ID));\n }\n return node;\n });\n }\n const rootNode = {\n data: {\n text: syData.Properties.title,\n uid: syData.ID\n },\n children: processChildren(syData.Children)\n };\n return rootNode;\n }\n return convertSyDataToKmData(syData);\n },\n // 加上了给容器块添加外框的逻辑,同级的标题的处理有问题\n handleSYToKMind4(syData) {\n function convertSyDataToKmData(syData) {\n function createNode(block, outerFrame = null) {\n const node = {\n data: {\n text: getBlockText(block),\n uid: block.ID,\n syData: {\n type: block.Type,\n id: block.ID,\n properties: block.Properties || {},\n listData: block.ListData || {}\n }\n },\n children: []\n };\n if (outerFrame) {\n node.data.outerFrame = outerFrame;\n }\n if (block.Type === 'NodeHeading') {\n node.data.syData.headingLevel = block.HeadingLevel;\n }\n if (block.Children && block.Children.some(child => child.ID)) {\n node.children = processChildren(block.Children, outerFrame);\n }\n return node;\n }\n function getBlockText(block) {\n if (block.Properties && block.Properties.title) {\n return block.Properties.title;\n }\n if (block.Children && !block.Children.some(child => child.ID)) {\n return block.Children.map(child => {\n if (child.Type === 'NodeText') return child.Data;\n if (child.Type === 'NodeTextMark') return child.TextMarkTextContent;\n return '';\n }).join('');\n }\n return block.Type.replace('Node', '');\n }\n function processChildren(children, outerFrame = null) {\n const result = [];\n let currentHeading = null;\n let currentHeadingLevel = 0;\n children.forEach(child => {\n if (child.Type === 'NodeHeading') {\n if (child.HeadingLevel <= currentHeadingLevel) {\n currentHeading = null;\n }\n currentHeadingLevel = child.HeadingLevel;\n const node = createNode(child, outerFrame);\n if (currentHeading) {\n currentHeading.children.push(node);\n } else {\n result.push(node);\n }\n currentHeading = node;\n } else if (isContainerBlock(child)) {\n const containerChildren = processContainerBlock(child, outerFrame);\n if (currentHeading) {\n currentHeading.children.push(...containerChildren);\n } else {\n result.push(...containerChildren);\n }\n } else {\n const node = createNode(child, outerFrame);\n if (currentHeading) {\n currentHeading.children.push(node);\n } else {\n result.push(node);\n }\n }\n });\n return result;\n }\n function isContainerBlock(block) {\n return ['NodeList', 'NodeBlockquote', 'NodeSuperBlock'].includes(block.Type);\n }\n function processContainerBlock(block, outerFrame = null) {\n if (block.Type === 'NodeList') {\n return processListBlock(block, outerFrame);\n } else if (block.Type === 'NodeBlockquote') {\n const blockquoteOuterFrame = {\n groupId: block.ID,\n strokeWidth: 4,\n strokeColor: '#A4DD00'\n };\n return processChildren(block.Children.filter(child => child.ID), blockquoteOuterFrame);\n } else if (block.Type === 'NodeSuperBlock') {\n return processChildren(block.Children.filter(child => child.ID), outerFrame);\n }\n return [];\n }\n function processListBlock(listBlock, outerFrame = null) {\n return listBlock.Children.map(listItem => {\n if (listItem.Type === 'NodeListItem') {\n const itemChildren = listItem.Children.filter(child => child.ID);\n if (itemChildren.length > 0) {\n const firstChild = createNode(itemChildren[0], outerFrame);\n firstChild.data.syData.listItemData = {\n listData: listItem.ListData,\n properties: listItem.Properties\n };\n if (itemChildren.length > 1) {\n firstChild.children = processChildren(itemChildren.slice(1), outerFrame);\n }\n return firstChild;\n }\n }\n return createNode(listItem, outerFrame);\n }).flat();\n }\n const rootNode = {\n data: {\n text: syData.Properties.title,\n uid: syData.ID,\n syData: {\n type: syData.Type,\n id: syData.ID,\n properties: syData.Properties || {},\n spec: syData.Spec\n }\n },\n children: processChildren(syData.Children)\n };\n return rootNode;\n }\n return convertSyDataToKmData(syData);\n },\n // mark:转换基本完美,列表的容器块也处理了,同级标题也处理了\n handleSYToKMind5(syData) {\n const host = globalThis.location.host;\n function convertSyDataToKmData(syData) {\n function createNode(block) {\n let text = getBlockText(block).replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\n const node = {\n data: {\n // text: getBlockText(block),\n uid: block.ID,\n syData: {\n type: block.Type,\n id: block.ID,\n properties: block.Properties || {},\n listData: block.ListData || {}\n }\n },\n children: []\n };\n // 见了鬼了,明明是NodeImage,但是startsWith不行\n // 我知道了,零宽空格\n // if (text?.startsWith('kmind-NodeImage')) {\n if (text !== null && text !== void 0 && text.includes('kmind-NodeImageStart')) {\n // node.data.image = `http://127.0.0.1:6806/${text.replace(\n // 'kmind-NodeImage',\n // ''\n // )}`\n // node.data.imageSize = { width: 100, height: 100, custom: true }\n // node.data.imageTitle = '图片节点'\n const richText = text.split('kmind-NodeSplit').map(item => {\n if (item.startsWith('kmind-NodeImageStart')) {\n const url = item.replace('kmind-NodeImageStart', '').replace('kmind-NodeImageEnd', '');\n const src = `http://${host}/${url}`;\n // const img = new Image()\n // let originWidth = 0\n // let originHeight = 0\n // img.src = src\n // img.onload = () => {\n // originWidth = img.width\n // originHeight = img.height\n // }\n return `<p><img src=\"${src}\" style=\"width: 100px; height: 100px\" /></p>`;\n } else {\n return `${item}`;\n }\n }).join('');\n node.data.text = `<p>${richText}</p>`;\n // console.log('图片节点的文本:', richText)\n } else {\n node.data.text = text.split('kmind-NodeSplit').join('');\n }\n if (block.Type === 'NodeHeading') {\n node.data.syData.headingLevel = block.HeadingLevel;\n }\n if (block.Children && block.Children.some(child => child.ID)) {\n node.children = processChildren(block.Children);\n }\n return node;\n }\n function getBlockText(block) {\n if (block.Properties && block.Properties.title) {\n return block.Properties.title;\n }\n if (block.Children && !block.Children.some(child => child.ID)) {\n return block.Children.map(child => {\n if (child.Type === 'NodeText') return child.Data;\n if (child.Type === 'NodeImage') {\n // 找到图片的url\n const url = child.Children.find(node => node.Type === 'NodeLinkDest').Data;\n // console.log('url:', `NodeImage${url}`)\n return `kmind-NodeImageStart${url}kmind-NodeImageEnd`;\n // return child.Type\n // return 'NodeImage'\n }\n // if (child.Type === 'NodeTextMark') {\n // switch (child.TextMarkType) {\n // case 'block-ref':\n // return `<a href=\"siyuan://blocks/${child.TextMarkBlockRefID}\">${child.TextMarkTextContent}</a>`\n // case 'a':\n // return `<a href=\"${child.TextMarkAHref}\">${child.TextMarkTextContent}</a>`\n // }\n // return child.TextMarkTextContent\n // }\n if (child.Type === 'NodeTextMark') {\n return child.TextMarkTextContent;\n }\n return '';\n }).join('kmind-NodeSplit');\n }\n // return block.Type.replace('Node', '')\n return block.Type;\n }\n function processChildren(children) {\n const result = [];\n const headingStack = [{\n level: 0,\n node: {\n children: result\n }\n }];\n children.forEach(child => {\n const node = createNode(child);\n if (child.Type === 'NodeHeading') {\n while (headingStack.length > 1 && headingStack[headingStack.length - 1].level >= child.HeadingLevel) {\n headingStack.pop();\n }\n headingStack[headingStack.length - 1].node.children.push(node);\n headingStack.push({\n level: child.HeadingLevel,\n node: node\n });\n } else if (isContainerBlock(child)) {\n const containerChildren = processContainerBlock(child);\n headingStack[headingStack.length - 1].node.children.push(...containerChildren);\n } else {\n headingStack[headingStack.length - 1].node.children.push(node);\n }\n });\n return result;\n }\n function isContainerBlock(block) {\n return ['NodeList', 'NodeBlockquote', 'NodeSuperBlock'].includes(block.Type);\n }\n function processContainerBlock(block) {\n if (block.Type === 'NodeList') {\n return processListBlock(block);\n } else if (block.Type === 'NodeBlockquote' || block.Type === 'NodeSuperBlock') {\n return processChildren(block.Children.filter(child => child.ID));\n }\n return [];\n }\n function processListBlock(listBlock) {\n return listBlock.Children.map(listItem => {\n if (listItem.Type === 'NodeListItem') {\n const itemChildren = listItem.Children.filter(child => child.ID);\n if (itemChildren.length > 0) {\n const firstChild = createNode(itemChildren[0]);\n firstChild.data.syData.listItemData = {\n listData: listItem.ListData,\n properties: listItem.Properties\n };\n if (itemChildren.length > 1) {\n firstChild.children = processChildren(itemChildren.slice(1));\n }\n return firstChild;\n }\n }\n return createNode(listItem);\n }).flat();\n }\n const rootNode = {\n data: {\n text: syData.Properties.title,\n uid: syData.ID,\n syData: {\n type: syData.Type,\n id: syData.ID,\n properties: syData.Properties || {},\n spec: syData.Spec\n }\n },\n children: processChildren(syData.Children)\n };\n return rootNode;\n }\n return convertSyDataToKmData(syData);\n },\n // 加载相关插件\n loadPlugins() {\n if (this.openNodeRichText) this.addRichTextPlugin();\n if (this.isShowScrollbar) this.addScrollbarPlugin();\n if (typeof HandDrawnLikeStyle !== 'undefined') {\n this.$store.commit('setSupportHandDrawnLikeStyle', true);\n if (this.isUseHandDrawnLikeStyle) this.addHandDrawnLikeStylePlugin();\n }\n if (typeof Momentum !== 'undefined') {\n this.$store.commit('setSupportMomentum', true);\n if (this.isUseMomentum) this.addMomentumPlugin();\n }\n if (typeof Notation !== 'undefined') {\n this.mindMap.addPlugin(Notation);\n this.$store.commit('setSupportMark', true);\n }\n if (typeof Numbers !== 'undefined') {\n this.mindMap.addPlugin(Numbers);\n this.$store.commit('setSupportNumbers', true);\n }\n if (typeof simple_mind_map_plugin_freemind__WEBPACK_IMPORTED_MODULE_29__[\"default\"] !== 'undefined') {\n this.mindMap.addPlugin(simple_mind_map_plugin_freemind__WEBPACK_IMPORTED_MODULE_29__[\"default\"]);\n this.$store.commit('setSupportFreemind', true);\n vue__WEBPACK_IMPORTED_MODULE_33__[\"default\"].prototype.Freemind = simple_mind_map_plugin_freemind__WEBPACK_IMPORTED_MODULE_29__[\"default\"];\n }\n if (typeof Excel !== 'undefined') {\n this.mindMap.addPlugin(Excel);\n this.$store.commit('setSupportExcel', true);\n vue__WEBPACK_IMPORTED_MODULE_33__[\"default\"].prototype.Excel = Excel;\n }\n if (typeof simple_mind_map_plugin_checkbox__WEBPACK_IMPORTED_MODULE_30__[\"default\"] !== 'undefined') {\n this.mindMap.addPlugin(simple_mind_map_plugin_checkbox__WEBPACK_IMPORTED_MODULE_30__[\"default\"]);\n this.$store.commit('setSupportCheckbox', true);\n }\n if (typeof LineFlow !== 'undefined') {\n this.mindMap.addPlugin(LineFlow);\n this.$store.commit('setSupportLineFlow', true);\n }\n },\n // url中是否存在要打开的文件\n hasFileURL() {\n const fileURL = this.$route.query.fileURL;\n if (!fileURL) return false;\n return /\\.(smm|json|xmind|md|xlsx)$/.test(fileURL);\n },\n // 动态设置思维导图数据\n setData(data) {\n this.handleShowLoading();\n let rootNodeData = null;\n if (data.root) {\n this.mindMap.setFullData(data);\n rootNodeData = data.root;\n } else {\n this.mindMap.setData(data);\n rootNodeData = data;\n }\n this.mindMap.view.reset();\n this.manualSave();\n // 如果导入的是富文本内容,那么自动开启富文本模式\n if (rootNodeData.data.richText && !this.openNodeRichText) {\n this.$bus.$emit('toggleOpenNodeRichText', true);\n this.$notify.info({\n title: this.$t('edit.tip'),\n message: this.$t('edit.autoOpenNodeRichTextTip')\n });\n }\n },\n // 重新渲染\n reRender() {\n this.mindMap.reRender();\n },\n // 执行命令\n execCommand(...args) {\n this.mindMap.execCommand(...args);\n },\n // 导出\n async export(...args) {\n try {\n Object(_utils_loading__WEBPACK_IMPORTED_MODULE_61__[\"showLoading\"])(this.loadingTarget);\n await this.mindMap.export(...args);\n Object(_utils_loading__WEBPACK_IMPORTED_MODULE_61__[\"hideLoading\"])();\n } catch (error) {\n console.log(error);\n Object(_utils_loading__WEBPACK_IMPORTED_MODULE_61__[\"hideLoading\"])();\n }\n },\n // 获取思维导图数据\n getMindMapData(callback) {\n callback(this.mindMap.getData(true));\n },\n // 修改导出内边距\n onPaddingChange(data) {\n this.mindMap.updateConfig(data);\n },\n // 显示新特性提示\n showNewFeatureInfo() {\n let showed = localStorage.getItem('SIMPLE_MIND_MAP_NEW_FEATURE_TIP_1');\n if (!showed) {\n this.$notify.info({\n title: this.$t('edit.newFeatureNoticeTitle'),\n message: this.$t('edit.newFeatureNoticeMessage'),\n duration: 0,\n onClose: () => {\n localStorage.setItem('SIMPLE_MIND_MAP_NEW_FEATURE_TIP_1', true);\n }\n });\n }\n },\n // 加载节点富文本编辑插件\n addRichTextPlugin() {\n if (!this.mindMap) return;\n this.mindMap.addPlugin(simple_mind_map_src_plugins_RichText_js__WEBPACK_IMPORTED_MODULE_22__[\"default\"]);\n },\n // 移除节点富文本编辑插件\n removeRichTextPlugin() {\n this.mindMap.removePlugin(simple_mind_map_src_plugins_RichText_js__WEBPACK_IMPORTED_MODULE_22__[\"default\"]);\n },\n // 加载滚动条插件\n addScrollbarPlugin() {\n if (!this.mindMap) return;\n this.mindMap.addPlugin(simple_mind_map_src_plugins_Scrollbar_js__WEBPACK_IMPORTED_MODULE_23__[\"default\"]);\n },\n // 移除滚动条插件\n removeScrollbarPlugin() {\n this.mindMap.removePlugin(simple_mind_map_src_plugins_Scrollbar_js__WEBPACK_IMPORTED_MODULE_23__[\"default\"]);\n },\n // 加载手绘风格插件\n addHandDrawnLikeStylePlugin() {\n try {\n if (!this.mindMap) return;\n this.mindMap.addPlugin(HandDrawnLikeStyle);\n this.mindMap.reRender();\n } catch (error) {\n console.log('手绘风格插件不存在');\n }\n },\n // 移除手绘风格插件\n removeHandDrawnLikeStylePlugin() {\n try {\n this.mindMap.removePlugin(HandDrawnLikeStyle);\n this.mindMap.reRender();\n } catch (error) {\n console.log('手绘风格插件不存在');\n }\n },\n // 加载动量效果插件\n addMomentumPlugin() {\n try {\n if (!this.mindMap) return;\n this.mindMap.addPlugin(Momentum);\n } catch (error) {\n console.log('动量效果插件不存在');\n }\n },\n // 移除动量效果插件\n removeMomentumPlugin() {\n try {\n this.mindMap.removePlugin(Momentum);\n } catch (error) {\n console.log('动量效果插件不存在');\n }\n },\n // 测试动态插入节点\n testDynamicCreateNodes() {\n // return\n setTimeout(() => {\n // 动态给指定节点添加子节点\n // this.mindMap.execCommand(\n // 'INSERT_CHILD_NODE',\n // false,\n // null,\n // {\n // text: '自定义内容'\n // },\n // [\n // {\n // data: {\n // text: '自定义子节点'\n // }\n // }\n // ]\n // )\n // 动态给指定节点添加同级节点\n // this.mindMap.execCommand(\n // 'INSERT_NODE',\n // false,\n // null,\n // {\n // text: '自定义内容'\n // },\n // [\n // {\n // data: {\n // text: '自定义同级节点'\n // },\n // children: [\n // {\n // data: {\n // text: '自定义同级节点2'\n // },\n // children: []\n // }\n // ]\n // }\n // ]\n // )\n // 动态插入多个子节点\n // this.mindMap.execCommand('INSERT_MULTI_CHILD_NODE', null, [\n // {\n // data: {\n // text: '自定义节点1'\n // },\n // children: [\n // {\n // data: {\n // text: '自定义节点1-1'\n // },\n // children: []\n // }\n // ]\n // },\n // {\n // data: {\n // text: '自定义节点2'\n // },\n // children: [\n // {\n // data: {\n // text: '自定义节点2-1'\n // },\n // children: []\n // }\n // ]\n // }\n // ])\n // 动态插入多个同级节点\n // this.mindMap.execCommand('INSERT_MULTI_NODE', null, [\n // {\n // data: {\n // text: '自定义节点1'\n // },\n // children: [\n // {\n // data: {\n // text: '自定义节点1-1'\n // },\n // children: []\n // }\n // ]\n // },\n // {\n // data: {\n // text: '自定义节点2'\n // },\n // children: [\n // {\n // data: {\n // text: '自定义节点2-1'\n // },\n // children: []\n // }\n // ]\n // }\n // ])\n // 动态删除指定节点\n // this.mindMap.execCommand('REMOVE_NODE', this.mindMap.renderer.root.children[0])\n }, 5000);\n },\n // 协同测试\n cooperateTest() {\n if (this.mindMap.cooperate && this.$route.query.userName) {\n this.mindMap.cooperate.setProvider(null, {\n roomName: 'demo-room',\n signalingList: ['ws://localhost:4444']\n });\n this.mindMap.cooperate.setUserInfo({\n id: Math.random(),\n name: this.$route.query.userName,\n color: ['#409EFF', '#67C23A', '#E6A23C', '#F56C6C', '#909399'][Math.floor(Math.random() * 5)],\n avatar: Math.random() > 0.5 ? 'https://img0.baidu.com/it/u=4270674549,2416627993&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1696006800&t=4d32871d14a7224a4591d0c3c7a97311' : ''\n });\n }\n },\n // 拖拽文件到页面导入\n onDragenter(e) {\n return;\n if (!this.enableDragImport || this.isDragOutlineTreeNode) return;\n this.showDragMask = true;\n },\n onDragleave() {\n this.showDragMask = false;\n },\n onDrop(e) {\n console.log('drag;', e);\n if (!this.enableDragImport) return;\n this.showDragMask = false;\n const dt = e.dataTransfer;\n const file = dt.files && dt.files[0];\n if (!file) return;\n this.$bus.$emit('importFile', file);\n },\n // 执行节点定位\n executeNodeLocate(nodeId) {\n if (!this.mindMap || !nodeId) return;\n try {\n this.mindMap.execCommand('GO_TARGET_NODE', nodeId);\n this.logMirror.info('成功定位到节点', {\n nodeId\n });\n } catch (error) {\n this.logMirror.error('节点定位失败', {\n nodeId,\n error: error.message\n });\n }\n },\n // 发送导图ready事件\n sendMindMapReadyEvent() {\n var _this$injectConfig50, _this$injectConfig51;\n if (!this.messageCenter || !this.mindMap) return;\n const documentId = this.getDocumentId();\n this.messageCenter.send({\n type: 'control',\n action: 'mindmap-ready',\n targetId: 'plugin-control',\n // 发送给插件\n payload: {\n documentId,\n type: (_this$injectConfig50 = this.injectConfig) === null || _this$injectConfig50 === void 0 ? void 0 : _this$injectConfig50.type,\n name: (_this$injectConfig51 = this.injectConfig) === null || _this$injectConfig51 === void 0 ? void 0 : _this$injectConfig51.name,\n isHidden: this.isHidden\n }\n });\n this.logMirror.info('发送导图ready事件', {\n documentId,\n isHidden: this.isHidden\n });\n },\n // 处理待定位的节点\n processPendingNodeLocate() {\n if (this.pendingNodeLocate && !this.isHidden) {\n const nodeId = this.pendingNodeLocate.nodeId;\n this.pendingNodeLocate = null;\n\n // 延迟一下确保导图完全渲染\n setTimeout(() => {\n this.executeNodeLocate(nodeId);\n }, 100);\n }\n }\n }\n};\n\nconst __injectCSSVars__ = () => {\n Object(vue__WEBPACK_IMPORTED_MODULE_33__[\"useCssVars\"])((_vm, _setup) => ({\n \"84e609bc-positionMode\": _vm.positionMode\n }));\n};\nconst __setup__ = __default__.setup;\n__default__.setup = __setup__ ? (props, ctx) => {\n __injectCSSVars__();\n return __setup__(props, ctx);\n} : __injectCSSVars__;\n/* harmony default export */ __webpack_exports__[\"default\"] = (__default__);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Edit.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Export.vue?vue&type=script&lang=js":
/*!*************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Export.vue?vue&type=script&lang=js ***!
\*************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_web_url_search_params_delete_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.url-search-params.delete.js */ \"./node_modules/core-js/modules/web.url-search-params.delete.js\");\n/* harmony import */ var core_js_modules_web_url_search_params_delete_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_url_search_params_delete_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_web_url_search_params_has_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/web.url-search-params.has.js */ \"./node_modules/core-js/modules/web.url-search-params.has.js\");\n/* harmony import */ var core_js_modules_web_url_search_params_has_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_url_search_params_has_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_web_url_search_params_size_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/web.url-search-params.size.js */ \"./node_modules/core-js/modules/web.url-search-params.size.js\");\n/* harmony import */ var core_js_modules_web_url_search_params_size_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_url_search_params_size_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/config */ \"./src/config/index.js\");\n/* harmony import */ var simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! simple-mind-map/src/utils/index */ \"../simple-mind-map/src/utils/index.js\");\n/* harmony import */ var _hooks_useQueryFunction__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/hooks/useQueryFunction */ \"./src/hooks/useQueryFunction.tsx\");\n/* harmony import */ var _hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/hooks/useCrossFrameAPI */ \"./src/hooks/useCrossFrameAPI.ts\");\n/* harmony import */ var markdown_it__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! markdown-it */ \"./node_modules/markdown-it/index.js\");\n/* harmony import */ var markdown_it__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(markdown_it__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _assets_kmind_assets_icon__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/assets/kmind-assets/icon */ \"./src/assets/kmind-assets/icon.ts\");\n/* harmony import */ var _api_siyuan__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/api/siyuan */ \"./src/api/siyuan.tsx\");\n/* harmony import */ var _mixins_domMode__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/mixins/domMode */ \"./src/mixins/domMode.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:53:54\n * @Desc: 导出\n */\nlet md = null;\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Export',\n inject: ['$bus'],\n mixins: [_mixins_domMode__WEBPACK_IMPORTED_MODULE_11__[\"default\"]],\n data() {\n return {\n dialogVisible: false,\n exportType: 'kmind',\n fileName: this.$t('export.defaultFileName'),\n widthConfig: true,\n isTransparent: false,\n loading: false,\n loadingText: '',\n paddingX: 10,\n paddingY: 10,\n extraText: '- FROM KMIND -',\n isMobile: Object(simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_5__[\"isMobile\"])(),\n siyuanIcon: _assets_kmind_assets_icon__WEBPACK_IMPORTED_MODULE_9__[\"siyuanIcon\"]\n };\n },\n computed: {\n isDebugger() {\n const {\n isDebugger\n } = Object(_hooks_useQueryFunction__WEBPACK_IMPORTED_MODULE_6__[\"useQueryFunction\"])();\n return isDebugger.value;\n },\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_3__[\"mapState\"])({\n injectConfig: state => state.injectConfig,\n openNodeRichText: state => state.localConfig.openNodeRichText,\n isDark: state => state.localConfig.isDark,\n supportFreemind: state => state.supportFreemind,\n supportExcel: state => state.supportExcel\n }),\n downTypeList() {\n const list = _config__WEBPACK_IMPORTED_MODULE_4__[\"downTypeList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_4__[\"downTypeList\"].zh;\n return list.filter(item => {\n if (item.type === 'subKMind') {\n return this.injectConfig.type === 'sy-plugin-doc2kmind';\n }\n if (item.type === 'mm') {\n return this.supportFreemind;\n }\n if (item.type === 'xlsx') {\n return this.supportExcel;\n } else {\n return true;\n }\n });\n },\n currentTypeData() {\n const cur = this.downTypeList.find(item => {\n return item.type === this.exportType;\n });\n return cur;\n }\n },\n created() {\n this.$bus.$on('showExport', this.handleShowExport);\n },\n beforeDestroy() {\n this.$bus.$off('showExport', this.handleShowExport);\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_3__[\"mapMutations\"])(['setExtraTextOnExport']),\n handleShowExport() {\n this.dialogVisible = true;\n },\n onPaddingChange() {\n this.$bus.$emit('paddingChange', {\n exportPaddingX: Number(this.paddingX),\n exportPaddingY: Number(this.paddingY)\n });\n },\n /**\n * @Author: 王林\n * @Date: 2021-06-22 22:08:11\n * @Desc: 取消\n */\n cancel() {\n this.dialogVisible = false;\n },\n /**\n * @Author: 王林\n * @Date: 2021-06-06 22:28:20\n * @Desc: 确定\n */\n async confirm() {\n this.setExtraTextOnExport(this.extraText);\n if (this.exportType === 'svg') {\n this.$bus.$emit('export', this.exportType, true, this.fileName, `* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }`);\n } else if (['smm', 'json'].includes(this.exportType)) {\n this.$bus.$emit('export', this.exportType, true, this.fileName, this.widthConfig);\n } else if (this.exportType === 'kmind') {\n this.downloadKmind();\n } else if (this.exportType === 'png') {\n this.$bus.$emit('export', this.exportType, true, this.fileName, this.isTransparent);\n } else if (this.exportType === 'pdf') {\n this.$bus.$emit('export', this.exportType, true, this.fileName, this.isTransparent);\n } else if (this.exportType === 'mm') {\n this.$bus.$emit('export', this.exportType, true, this.fileName, {\n transformNote: note => {\n if (!md) {\n md = new markdown_it__WEBPACK_IMPORTED_MODULE_8___default.a();\n }\n return md.render(note);\n },\n transformImage: img => {\n if (/^https?:\\/\\//.test(img)) {\n return img;\n } else {\n return '';\n }\n }\n });\n } else if (this.exportType === 'subKMind') {\n this.$bus.$emit('getMindMapData', async fullData => {\n const targetDocId = this.injectConfig.name;\n // console.log('targetDocId', targetDocId)\n // 先根据targetDocId创建文档,获取新文档id\n const {\n id: newDocId\n } = await globalThis.parent.kmindApi.createKmindDoc(targetDocId, {\n // 必须设为false,否则后面插入的kmind文档不会读取到\n isAutoOpen: false,\n // todo root节点名称自动设为fileName\n title: this.fileName,\n isPreCreate: true\n });\n // 根据新文档id,存储文档\n const path = `/data/assets/kmind-doctree-doc-${newDocId}.kmind`;\n const json = JSON.stringify(fullData);\n const blob = new Blob([json], {\n type: 'application/json'\n });\n const file = new File([blob], `${path}`, {\n type: 'application/json',\n lastModified: Date.now()\n });\n await Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_10__[\"putFile\"])({\n path,\n file\n }).then(res => {\n // console.log(\"res:\", res);\n }).catch(e => {\n console.log('e:', e);\n });\n\n // 确认创建完毕了文档后,再打开\n const {\n openDoc\n } = Object(_hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_7__[\"useCrossFrameAPI\"])(this.injectConfig);\n openDoc(newDocId);\n });\n } else {\n this.$bus.$emit('export', this.exportType, true, this.fileName);\n }\n\n // 导出到文档树就不提示了\n this.exportType !== 'subKMind' && this.$notify.info({\n title: this.$t('export.notifyTitle'),\n message: this.$t('export.notifyMessage')\n });\n this.cancel();\n },\n downloadKmind() {\n // 打开一个文件,直接导出,会导致没有数据\n this.$bus.$emit('getMindMapData', async fullData => {\n const json = JSON.stringify({\n ...this.$store.getters.mindMapFullDataWithConfig,\n ...fullData\n });\n const blob = new Blob([json], {\n type: 'application/json'\n });\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = this.fileName + '.kmind';\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n URL.revokeObjectURL(url);\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Export.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/FormulaSidebar.vue?vue&type=script&lang=js":
/*!*********************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/FormulaSidebar.vue?vue&type=script&lang=js ***!
\*********************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Sidebar */ \"./src/pages/Edit/components/Sidebar.vue\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _config_constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/config/constant */ \"./src/config/constant.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'FormulaSidebar',\n inject: ['$bus'],\n components: {\n Sidebar: _Sidebar__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n },\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n formulaText: '',\n list: []\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapState\"])({\n activeSidebar: state => state.activeSidebar,\n isDark: state => state.localConfig.isDark,\n localConfig: state => state.localConfig\n })\n },\n watch: {\n activeSidebar(val) {\n if (val === 'formulaSidebar') {\n this.$refs.sidebar.show = true;\n } else {\n this.$refs.sidebar.show = false;\n }\n }\n },\n created() {\n this.$bus.$on('node_active', this.handleNodeActive);\n },\n beforeDestroy() {\n this.$bus.$off('node_active', this.handleNodeActive);\n },\n mounted() {\n this.init();\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapMutations\"])(['setActiveSidebar']),\n init() {\n if (!window.katex) return;\n this.list = _config_constant__WEBPACK_IMPORTED_MODULE_2__[\"formulaList\"].map(item => {\n return {\n overview: window.katex.renderToString(item, this.mindMap.formula.getKatexConfig()),\n text: item\n };\n });\n },\n handleNodeActive(...args) {\n this.activeNodes = [...args[1]];\n if (this.activeNodes.length <= 0 && this.activeSidebar === 'formulaSidebar') {\n this.setActiveSidebar(null);\n }\n },\n confirm() {\n if (!this.localConfig.openNodeRichText) {\n return this.$message.warning(this.$t('formulaSidebar.tip'));\n }\n let str = this.formulaText.trim();\n if (!str) return;\n this.mindMap.execCommand('INSERT_FORMULA', str);\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/FormulaSidebar.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Fullscreen.vue?vue&type=script&lang=js":
/*!*****************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Fullscreen.vue?vue&type=script&lang=js ***!
\*****************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/utils */ \"./src/utils/index.js\");\n/* harmony import */ var _icons_fluent_mdl2_full_width_edit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~icons/fluent-mdl2/full-width-edit */ \"./_virtual_~icons%2Ffluent-mdl2%2Ffull-width-edit\");\n/* harmony import */ var _icons_icon_park_outline_full_screen_one__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~icons/icon-park-outline/full-screen-one */ \"./_virtual_~icons%2Ficon-park-outline%2Ffull-screen-one\");\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:53:10\n * @Desc: 全屏\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Fullscreen',\n components: {\n FluentMdl2FullWidthEdit: _icons_fluent_mdl2_full_width_edit__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n IconParkOutlineFullScreenOne: _icons_icon_park_outline_full_screen_one__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n },\n props: {\n mindMap: {\n type: Object\n },\n isDark: {\n type: Boolean\n }\n },\n data() {\n return {};\n },\n created() {\n document[_utils__WEBPACK_IMPORTED_MODULE_0__[\"fullscrrenEvent\"]] = () => {\n setTimeout(() => {\n this.mindMap.resize();\n }, 1000);\n };\n },\n methods: {\n // 全屏查看\n toFullscreenShow() {\n Object(_utils__WEBPACK_IMPORTED_MODULE_0__[\"fullScreen\"])(this.mindMap.el);\n },\n // 全屏编辑\n toFullscreenEdit() {\n Object(_utils__WEBPACK_IMPORTED_MODULE_0__[\"fullScreen\"])(document.body);\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Fullscreen.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Import.vue?vue&type=script&lang=js":
/*!*************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Import.vue?vue&type=script&lang=js ***!
\*************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var simple_mind_map_src_parse_xmind_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! simple-mind-map/src/parse/xmind.js */ \"../simple-mind-map/src/parse/xmind.js\");\n/* harmony import */ var simple_mind_map_src_parse_markdown_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! simple-mind-map/src/parse/markdown.js */ \"../simple-mind-map/src/parse/markdown.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var _hooks_useData__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/hooks/useData */ \"./src/hooks/useData.tsx\");\n/* harmony import */ var _mixins_domMode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/mixins/domMode */ \"./src/mixins/domMode.js\");\n\n\n\n\n\n\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:53:54\n * @Desc: 导入\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Import',\n inject: ['$bus'],\n mixins: [_mixins_domMode__WEBPACK_IMPORTED_MODULE_7__[\"default\"]],\n data() {\n return {\n dialogVisible: false,\n fileList: [],\n selectPromiseResolve: null,\n xmindCanvasSelectDialogVisible: false,\n selectCanvas: '',\n canvasList: []\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_4__[\"mapState\"])({\n supportFreemind: state => state.supportFreemind,\n supportExcel: state => state.supportExcel\n }),\n supportFileStr() {\n let res = '.kmind,.json,.xmind,.md';\n if (this.supportFreemind) {\n res += ',.mm';\n }\n if (this.supportExcel) {\n res += ',.xlsx';\n }\n return res;\n }\n },\n watch: {\n dialogVisible(val, oldVal) {\n if (!val && oldVal) {\n this.fileList = [];\n }\n }\n },\n created() {\n this.$bus.$on('showImport', this.handleShowImport);\n this.$bus.$on('handle_file_url', this.handleFileURL);\n this.$bus.$on('importFile', this.handleImportFile);\n },\n beforeDestroy() {\n this.$bus.$off('showImport', this.handleShowImport);\n this.$bus.$off('handle_file_url', this.handleFileURL);\n this.$bus.$off('importFile', this.handleImportFile);\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_4__[\"mapMutations\"])(['setActiveSidebar', 'setKmindConfig']),\n handleShowImport() {\n this.dialogVisible = true;\n },\n getRegexp() {\n return new RegExp(`\\.(kmind|json|xmind|md${this.supportFreemind ? '|mm' : ''}${this.supportExcel ? '|xlsx' : ''})$`);\n },\n // 检查url中是否操作需要打开的文件\n async handleFileURL() {\n try {\n const fileURL = this.$route.query.fileURL;\n if (!fileURL) return;\n const macth = this.getRegexp().exec(fileURL);\n if (!macth) {\n return;\n }\n const type = macth[1];\n const res = await fetch(fileURL);\n const file = await res.blob();\n const data = {\n raw: file\n };\n if (type === 'json' || type === 'kmind') {\n this.handleSmm(data);\n } else if (type === 'xmind') {\n this.handleXmind(data);\n } else if (type === 'xlsx') {\n this.handleExcel(data);\n } else if (type === 'md') {\n this.handleMd(data);\n } else if (type === 'mm') {\n this.handleMm(data);\n }\n } catch (error) {\n console.log(error);\n }\n },\n // 文件选择\n onChange(file) {\n if (!this.getRegexp().test(file.name)) {\n this.$message.error(this.$t('import.pleaseSelect') + this.supportFileStr + this.$t('import.file'));\n this.fileList = [];\n } else {\n this.fileList.push(file);\n }\n },\n // 移除文件\n onRemove(file, fileList) {\n this.fileList = fileList;\n },\n // 数量超出限制\n onExceed() {\n this.$message.error(this.$t('import.maxFileNum'));\n },\n // 取消\n cancel() {\n this.dialogVisible = false;\n },\n // 确定\n confirm() {\n if (this.fileList.length <= 0) {\n return this.$message.error(this.$t('import.notSelectTip'));\n }\n this.$store.commit('setIsHandleLocalFile', false);\n let file = this.fileList[0];\n if (/\\.(kmind|json)$/.test(file.name)) {\n this.handleSmm(file);\n } else if (/\\.xmind$/.test(file.name)) {\n this.handleXmind(file);\n } else if (/\\.xlsx$/.test(file.name)) {\n this.handleExcel(file);\n } else if (/\\.md$/.test(file.name)) {\n this.handleMd(file);\n } else if (/\\.mm$/.test(file.name)) {\n this.handleMm(file);\n }\n this.cancel();\n this.setActiveSidebar(null);\n },\n // 处理.smm文件\n /**\n * todo 应该再载入一下存储的导图配置,然后更改url为injectConfig\n */\n handleSmm(file) {\n let fileReader = new FileReader();\n fileReader.readAsText(file.raw);\n fileReader.onload = evt => {\n try {\n var _data;\n let data = JSON.parse(evt.target.result);\n if (typeof data !== 'object') {\n throw new Error(this.$t('import.fileContentError'));\n }\n const {\n compatibleSmmVersion\n } = Object(_hooks_useData__WEBPACK_IMPORTED_MODULE_6__[\"useData\"])();\n data = compatibleSmmVersion(data);\n this.$bus.$emit('setData', data);\n // fixme: 虽然数据存入了,但是彩虹线条没有即时生效\n if ((_data = data) !== null && _data !== void 0 && (_data = _data.kmind) !== null && _data !== void 0 && _data.config) {\n this.$bus.$emit('kmindUpdateConfig', data.kmind.config);\n }\n this.$message.success(this.$t('import.importSuccess'));\n } catch (error) {\n console.log(error);\n this.$message.error(this.$t('import.fileParsingFailed'));\n }\n };\n },\n // 处理.xmind文件\n async handleXmind(file) {\n try {\n let data = await simple_mind_map_src_parse_xmind_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].parseXmindFile(file.raw, content => {\n this.showSelectXmindCanvasDialog(content);\n return new Promise(resolve => {\n this.selectPromiseResolve = resolve;\n });\n });\n this.$bus.$emit('setData', data);\n this.$message.success(this.$t('import.importSuccess'));\n } catch (error) {\n console.log(error);\n this.$message.error(this.$t('import.fileParsingFailed'));\n }\n },\n // 处理Freemind格式\n handleMm(file) {\n const fileReader = new FileReader();\n fileReader.readAsText(file.raw);\n fileReader.onload = async evt => {\n try {\n const data = await vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"].prototype.Freemind.freemindToSmm(evt.target.result, {\n // withStyle: true,\n transformImg: image => {\n return new Promise(resolve => {\n if (/^https?:\\/\\//.test(image)) {\n resolve({\n url: image\n });\n } else {\n resolve(null);\n }\n });\n }\n });\n this.$bus.$emit('setData', data);\n this.$message.success(this.$t('import.importSuccess'));\n } catch (error) {\n console.log(error);\n this.$message.error(this.$t('import.fileParsingFailed'));\n }\n };\n },\n // 显示xmind文件的多个画布选择弹窗\n showSelectXmindCanvasDialog(content) {\n this.canvasList = content;\n this.selectCanvas = 0;\n this.xmindCanvasSelectDialogVisible = true;\n },\n // 确认导入指定的画布\n confirmSelect() {\n this.selectPromiseResolve(this.canvasList[this.selectCanvas]);\n this.xmindCanvasSelectDialogVisible = false;\n this.canvasList = [];\n this.selectCanvas = 0;\n },\n // 处理.xlsx文件\n async handleExcel(file) {\n try {\n const res = await vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"].prototype.Excel.excelTo(file.raw);\n this.$bus.$emit('setData', res);\n this.$message.success(this.$t('import.importSuccess'));\n } catch (error) {\n console.log(error);\n this.$message.error(this.$t('import.fileParsingFailed'));\n }\n },\n // 处理markdown文件\n async handleMd(file) {\n let fileReader = new FileReader();\n fileReader.readAsText(file.raw);\n fileReader.onload = async evt => {\n try {\n let data = simple_mind_map_src_parse_markdown_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].transformMarkdownTo(evt.target.result);\n this.$bus.$emit('setData', data);\n this.$message.success(this.$t('import.importSuccess'));\n } catch (error) {\n console.log(error);\n this.$message.error(this.$t('import.fileParsingFailed'));\n }\n };\n },\n // 导入指定文件\n handleImportFile(file) {\n this.onChange({\n raw: file,\n name: file.name\n });\n if (this.fileList.length <= 0) return;\n this.confirm();\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Import.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=script&setup=true&lang=js":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=script&setup=true&lang=js ***!
\*****************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var _hooks_useCompositionBus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/hooks/useCompositionBus */ \"./src/hooks/useCompositionBus.tsx\");\n/* harmony import */ var _hooks_useComposition__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/hooks/useComposition */ \"./src/hooks/useComposition.tsx\");\n/* harmony import */ var _hooks_useGlobalConfig__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/hooks/useGlobalConfig */ \"./src/hooks/useGlobalConfig.tsx\");\n/* harmony import */ var _hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/hooks/useCrossFrameAPI */ \"./src/hooks/useCrossFrameAPI.ts\");\n/* harmony import */ var _icons_hugeicons_node_edit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~icons/hugeicons/node-edit */ \"./_virtual_~icons%2Fhugeicons%2Fnode-edit\");\n/* harmony import */ var _icons_hugeicons_subnode_delete__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ~icons/hugeicons/subnode-delete */ \"./_virtual_~icons%2Fhugeicons%2Fsubnode-delete\");\n/* harmony import */ var _icons_fluent_comment_add_16_regular__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ~icons/fluent/comment-add-16-regular */ \"./_virtual_~icons%2Ffluent%2Fcomment-add-16-regular\");\n/* harmony import */ var _icons_material_symbols_add_link__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ~icons/material-symbols/add-link */ \"./_virtual_~icons%2Fmaterial-symbols%2Fadd-link\");\n/* harmony import */ var _icons_mdi_tag_add__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ~icons/mdi/tag-add */ \"./_virtual_~icons%2Fmdi%2Ftag-add\");\n/* harmony import */ var _icons_lucide_image_plus__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ~icons/lucide/image-plus */ \"./_virtual_~icons%2Flucide%2Fimage-plus\");\n/* harmony import */ var _icons_mdi_emoticon_plus_outline__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ~icons/mdi/emoticon-plus-outline */ \"./_virtual_~icons%2Fmdi%2Femoticon-plus-outline\");\n/* harmony import */ var _icons_ant_design_node_index_outlined__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ~icons/ant-design/node-index-outlined */ \"./_virtual_~icons%2Fant-design%2Fnode-index-outlined\");\n/* harmony import */ var _icons_mdi_bracket__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ~icons/mdi/bracket */ \"./_virtual_~icons%2Fmdi%2Fbracket\");\n/* harmony import */ var _icons_hugeicons_summation_01__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ~icons/hugeicons/summation-01 */ \"./_virtual_~icons%2Fhugeicons%2Fsummation-01\");\n/* harmony import */ var _icons_mdi_code_block_brackets__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ~icons/mdi/code-block-brackets */ \"./_virtual_~icons%2Fmdi%2Fcode-block-brackets\");\n/* harmony import */ var _icons_material_symbols_undo__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ~icons/material-symbols/undo */ \"./_virtual_~icons%2Fmaterial-symbols%2Fundo\");\n/* harmony import */ var _icons_material_symbols_redo__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ~icons/material-symbols/redo */ \"./_virtual_~icons%2Fmaterial-symbols%2Fredo\");\n/* harmony import */ var _icons_ic_outline_format_paint__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ~icons/ic/outline-format-paint */ \"./_virtual_~icons%2Fic%2Foutline-format-paint\");\n/* harmony import */ var _icons_material_symbols_visibility_outline__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ~icons/material-symbols/visibility-outline */ \"./_virtual_~icons%2Fmaterial-symbols%2Fvisibility-outline\");\n/* harmony import */ var _icons_material_symbols_dock_to_right__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ~icons/material-symbols/dock-to-right */ \"./_virtual_~icons%2Fmaterial-symbols%2Fdock-to-right\");\n/* harmony import */ var _icons_material_symbols_dock_to_bottom__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ~icons/material-symbols/dock-to-bottom */ \"./_virtual_~icons%2Fmaterial-symbols%2Fdock-to-bottom\");\n/* harmony import */ var _components_AddNodeButton_vue__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./components/AddNodeButton.vue */ \"./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue\");\n\n\n\n\n\n\n// 导入图标组件\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'KmindFloatToolbar',\n props: {\n mindMap: {\n type: Object,\n required: true\n },\n // 可以从外部传入按钮\n customButtonList: {\n type: Array,\n default: () => []\n },\n // 是否显示添加节点按钮组\n showAddNodeBtn: {\n type: Boolean,\n default: true\n },\n // 是否为暗黑模式\n isDark: {\n type: Boolean,\n default: false\n }\n },\n setup(__props) {\n const props = __props;\n Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"useCssVars\"])((_vm, _setup) => ({\n \"035dc43e-positionMode\": _setup.positionMode\n }));\n\n // 获取全局配置和移动端状态\n const {\n globalConfig,\n isMobile\n } = Object(_hooks_useGlobalConfig__WEBPACK_IMPORTED_MODULE_3__[\"useGlobalConfig\"])();\n\n // 获取 store 来判断是否为 DOM 模式\n const store = Object(_hooks_useComposition__WEBPACK_IMPORTED_MODULE_2__[\"useStore\"])();\n const isDomMode = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => {\n var _store$state$injectCo, _store$state$injectCo2;\n return ((_store$state$injectCo = store.state.injectConfig) === null || _store$state$injectCo === void 0 ? void 0 : _store$state$injectCo.type) === 'sy-doctree-doc-dom' || ((_store$state$injectCo2 = store.state.injectConfig) === null || _store$state$injectCo2 === void 0 ? void 0 : _store$state$injectCo2.type) === 'sy-doctree-moc-dom';\n });\n const isMocMode = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => {\n var _store$state$injectCo3;\n return ((_store$state$injectCo3 = store.state.injectConfig) === null || _store$state$injectCo3 === void 0 ? void 0 : _store$state$injectCo3.type) === 'sy-doctree-moc-dom';\n });\n const positionMode = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => isDomMode.value ? 'absolute' : 'fixed');\n\n // 获取当前编辑容器\n const getCurrentEditContainer = () => {\n if (isDomMode.value) {\n var _store$state$injectCo4, _store$state$injectCo5;\n const docId = (_store$state$injectCo4 = store.state.injectConfig) === null || _store$state$injectCo4 === void 0 ? void 0 : _store$state$injectCo4.name;\n const type = (_store$state$injectCo5 = store.state.injectConfig) === null || _store$state$injectCo5 === void 0 ? void 0 : _store$state$injectCo5.type;\n if (docId) {\n // 根据类型使用不同的前缀\n const prefix = type === 'sy-doctree-moc-dom' ? 'kmind-doctree-moc-root' : 'kmind-doctree-doc-root';\n const container = document.querySelector(`#${prefix}-${docId}`);\n if (container) {\n return container.querySelector('.kmind-container') || container;\n }\n }\n }\n return document.body;\n };\n\n // 默认按钮列表\n const defaultButtonList = ['back', 'forward',\n // 'editNode',\n 'note', 'link', 'tag', 'image', 'icon', 'associativeLine', 'summary', 'formula',\n // 'outerFrame',\n 'painter', 'deleteNode'];\n\n // 节点状态相关变量\n const activeNodes = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])([]);\n const backEnd = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(true);\n const forwardEnd = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(true);\n const readonly = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n const isInPainter = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n\n // 计算属性:判断是否有根节点\n const hasRoot = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => {\n return activeNodes.value.findIndex(node => node.isRoot) !== -1;\n });\n\n // 计算属性:判断是否有概要节点\n const hasGeneralization = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => {\n return activeNodes.value.findIndex(node => node.isGeneralization) !== -1;\n });\n\n // 最终使用的按钮列表,优先使用自定义列表\n const buttonList = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(() => {\n const list = props.customButtonList.length > 0 ? props.customButtonList : defaultButtonList;\n // MOC 模式仅保留删除节点按钮(节点操作按钮另有独立组件)\n if (isMocMode.value) return ['deleteNode'];\n return list;\n });\n const kmindFloatToolbar = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(null);\n const showToolbar = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n const style = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])({\n left: '0px',\n top: '0px'\n });\n\n // 处理节点激活事件\n const onNodeActive = (node, activeNodeList) => {\n // 保存激活节点列表,用于按钮可用性判断\n activeNodes.value = [...activeNodeList];\n if (activeNodeList.length > 0 && node) {\n updateToolbarPosition(node);\n showToolbar.value = true;\n } else {\n showToolbar.value = false;\n }\n };\n\n // 新增更新工具栏位置的函数\n const updateToolbarPosition = node => {\n if (!node) return;\n const rect = node.getRect();\n\n // 在 DOM 模式下,需要计算相对于容器的位置\n if (isDomMode.value) {\n const container = getCurrentEditContainer();\n if (container && container !== document.body) {\n const containerRect = container.getBoundingClientRect();\n const scrollLeft = container.scrollLeft || 0;\n const scrollTop = container.scrollTop || 0;\n\n // 计算相对于容器的位置\n style.value.left = rect.x - containerRect.left + scrollLeft + rect.width + 5 + 'px';\n style.value.top = rect.y - containerRect.top + scrollTop + 'px';\n } else {\n // 如果找不到容器,使用原始位置\n style.value.left = rect.x + rect.width + 5 + 'px';\n style.value.top = rect.y + 'px';\n }\n } else {\n // 非 DOM 模式,使用原始位置\n style.value.left = rect.x + rect.width + 5 + 'px';\n style.value.top = rect.y + 'px';\n }\n };\n\n // 处理节点树渲染结束事件\n const onNodeTreeRenderEnd = () => {\n // 如果有激活节点,更新工具栏位置\n if (activeNodes.value.length > 0) {\n updateToolbarPosition(activeNodes.value[0]);\n }\n };\n\n // 右键菜单显示时隐藏悬浮工具栏\n const onContextmenuShow = () => {\n showToolbar.value = false;\n };\n\n // 右键菜单隐藏时,如果有激活节点则显示悬浮工具栏\n const onContextmenuHide = () => {\n if (activeNodes.value.length > 0) {\n showToolbar.value = true;\n }\n };\n\n // 隐藏悬浮工具栏\n const hideToolbar = () => {\n showToolbar.value = false;\n };\n\n // 处理鼠标滚轮滑动事件 - 使用draw_click事件\n const onMouseWheel = () => {\n hideToolbar();\n };\n\n // 处理编辑器事件\n const onShowRichEditor = () => {\n hideToolbar();\n };\n\n // 处理节点文本编辑开始事件\n const onBeforeShowTextEdit = () => {\n hideToolbar();\n };\n\n // 事件总线\n const bus = Object(_hooks_useCompositionBus__WEBPACK_IMPORTED_MODULE_1__[\"useCompositionBus\"])();\n\n // 所有按钮的处理函数\n // 处理添加节点\n const handleAddNode = direction => {\n // console.log('添加节点:', direction)\n switch (direction) {\n case 'right':\n bus.$emit('execCommand', 'INSERT_CHILD_NODE');\n break;\n case 'bottom':\n bus.$emit('execCommand', 'INSERT_NODE');\n break;\n case 'left':\n // 确保left方向正确执行\n console.log('执行向左添加父节点');\n bus.$emit('execCommand', 'INSERT_PARENT_NODE');\n break;\n // 注释掉top方向处理\n // case 'top':\n // // 暂时没有对应的top方向命令\n // break\n default:\n console.log('无效的方向:', direction);\n break;\n }\n };\n\n // 打开思源文档(基于 useCrossFrameAPI\n const {\n openDoc\n } = Object(_hooks_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_4__[\"useCrossFrameAPI\"])(store.state.injectConfig);\n const {\n proxy\n } = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"getCurrentInstance\"])();\n const handleOpenDoc = position => {\n try {\n var _node$nodeData;\n const node = activeNodes.value[0];\n const docId = node === null || node === void 0 || (_node$nodeData = node.nodeData) === null || _node$nodeData === void 0 || (_node$nodeData = _node$nodeData.data) === null || _node$nodeData === void 0 ? void 0 : _node$nodeData.docId;\n if (!docId) {\n var _proxy$$message, _proxy$$message$warni;\n proxy === null || proxy === void 0 || (_proxy$$message = proxy.$message) === null || _proxy$$message === void 0 || (_proxy$$message$warni = _proxy$$message.warning) === null || _proxy$$message$warni === void 0 || _proxy$$message$warni.call(_proxy$$message, '当前节点缺少 docId,无法打开文档');\n return;\n }\n // 手动拼接超链接(可用于日志/兼容需求)\n const link = `siyuan://blocks/${docId}`;\n // 调用跨框架 API 打开文档\n if (position === 'right' || position === 'bottom') {\n openDoc(docId, {\n position\n });\n } else {\n openDoc(docId);\n }\n } catch (e) {\n var _proxy$$message2, _proxy$$message2$erro;\n proxy === null || proxy === void 0 || (_proxy$$message2 = proxy.$message) === null || _proxy$$message2 === void 0 || (_proxy$$message2$erro = _proxy$$message2.error) === null || _proxy$$message2$erro === void 0 || _proxy$$message2$erro.call(_proxy$$message2, '打开思源文档失败');\n // console.error(e)\n }\n };\n\n // 编辑节点\n const handleEditNode = () => {\n bus.$emit('showRichEditor', 'node');\n };\n\n // 删除节点\n const handleDeleteNode = () => {\n bus.$emit('execCommand', 'REMOVE_NODE');\n };\n\n // 添加备注\n const handleAddNote = () => {\n bus.$emit('showRichEditor', 'note');\n };\n\n // 添加链接\n const handleAddLink = () => {\n bus.$emit('showNodeLink');\n };\n\n // 添加标签\n const handleAddTag = () => {\n bus.$emit('showNodeTag');\n };\n\n // 添加图片\n const handleAddImage = () => {\n bus.$emit('showNodeImage');\n };\n\n // 添加图标\n const handleAddIcon = () => {\n bus.$emit('showNodeIcon');\n };\n\n // 添加关联线\n const handleCreateAssociativeLine = () => {\n bus.$emit('createAssociativeLine');\n hideToolbar();\n };\n\n // 添加概要\n const handleAddSummary = () => {\n bus.$emit('execCommand', 'ADD_GENERALIZATION');\n };\n\n // 添加公式\n const handleShowFormula = () => {\n // bus.$emit('showFormula')\n store.commit('setActiveSidebar', 'formulaSidebar');\n showToolbar.value = false;\n };\n\n // 添加外框\n const handleAddOuterFrame = () => {\n bus.$emit('execCommand', 'ADD_OUTER_FRAME');\n };\n\n // 撤销\n const handleBack = () => {\n bus.$emit('execCommand', 'BACK');\n };\n\n // 重做\n const handleForward = () => {\n bus.$emit('execCommand', 'FORWARD');\n };\n\n // 格式刷\n const handleStartPainter = () => {\n bus.$emit('startPainter');\n hideToolbar();\n };\n\n // 监听模式切换\n const onModeChange = mode => {\n readonly.value = mode === 'readonly';\n };\n\n // 监听前进后退状态\n const onBackForward = (index, len) => {\n backEnd.value = index <= 0;\n forwardEnd.value = index >= len - 1;\n };\n\n // 开始格式刷\n const onPainterStart = () => {\n isInPainter.value = true;\n };\n\n // 结束格式刷\n const onPainterEnd = () => {\n isInPainter.value = false;\n };\n const showAddDirections = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n\n // 处理容器滚动事件\n const onContainerScroll = () => {\n // 如果有激活节点,更新工具栏位置\n if (activeNodes.value.length > 0) {\n updateToolbarPosition(activeNodes.value[0]);\n }\n };\n\n // 存储滚动监听器引用\n let scrollContainer = null;\n Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"onMounted\"])(() => {\n // 根据模式将工具栏添加到合适的容器中\n const container = getCurrentEditContainer();\n container.appendChild(kmindFloatToolbar.value);\n\n // 在 DOM 模式下,监听容器滚动事件\n if (isDomMode.value && container !== document.body) {\n scrollContainer = container;\n scrollContainer.addEventListener('scroll', onContainerScroll);\n }\n\n // 监听节点激活事件\n props.mindMap.on('node_active', onNodeActive);\n\n // 添加额外的事件监听\n bus.$on('mode_change', onModeChange);\n bus.$on('back_forward', onBackForward);\n bus.$on('painter_start', onPainterStart);\n bus.$on('painter_end', onPainterEnd);\n\n // 监听右键菜单事件\n bus.$on('smm_contextmenu_show', onContextmenuShow);\n bus.$on('smm_contextmenu_hide', onContextmenuHide);\n\n // 添加更多事件监听,使工具栏在各种操作下隐藏\n props.mindMap.on('mousewheel', onMouseWheel);\n // props.mindMap.on('before_show_text_edit', onBeforeShowTextEdit)\n\n // 添加节点树渲染结束事件监听\n props.mindMap.on('node_tree_render_end', onNodeTreeRenderEnd);\n\n // 使用bus监听一些额外事件\n bus.$on('showRichEditor', onShowRichEditor);\n });\n Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"onBeforeUnmount\"])(() => {\n // 移除事件监听\n props.mindMap.off('node_active', onNodeActive);\n\n // 移除滚动监听\n if (scrollContainer) {\n scrollContainer.removeEventListener('scroll', onContainerScroll);\n scrollContainer = null;\n }\n\n // 移除额外的事件监听\n bus.$off('mode_change', onModeChange);\n bus.$off('back_forward', onBackForward);\n bus.$off('painter_start', onPainterStart);\n bus.$off('painter_end', onPainterEnd);\n\n // 移除右键菜单事件监听\n bus.$off('smm_contextmenu_show', onContextmenuShow);\n bus.$off('smm_contextmenu_hide', onContextmenuHide);\n\n // 移除其他事件监听\n props.mindMap.off('mousewheel', onMouseWheel);\n // props.mindMap.off('before_show_text_edit', onBeforeShowTextEdit)\n props.mindMap.off('node_tree_render_end', onNodeTreeRenderEnd);\n\n // 移除bus事件\n bus.$off('showRichEditor', onShowRichEditor);\n });\n return {\n __sfc: true,\n props,\n globalConfig,\n isMobile,\n store,\n isDomMode,\n isMocMode,\n positionMode,\n getCurrentEditContainer,\n defaultButtonList,\n activeNodes,\n backEnd,\n forwardEnd,\n readonly,\n isInPainter,\n hasRoot,\n hasGeneralization,\n buttonList,\n kmindFloatToolbar,\n showToolbar,\n style,\n onNodeActive,\n updateToolbarPosition,\n onNodeTreeRenderEnd,\n onContextmenuShow,\n onContextmenuHide,\n hideToolbar,\n onMouseWheel,\n onShowRichEditor,\n onBeforeShowTextEdit,\n bus,\n handleAddNode,\n openDoc,\n proxy,\n handleOpenDoc,\n handleEditNode,\n handleDeleteNode,\n handleAddNote,\n handleAddLink,\n handleAddTag,\n handleAddImage,\n handleAddIcon,\n handleCreateAssociativeLine,\n handleAddSummary,\n handleShowFormula,\n handleAddOuterFrame,\n handleBack,\n handleForward,\n handleStartPainter,\n onModeChange,\n onBackForward,\n onPainterStart,\n onPainterEnd,\n showAddDirections,\n onContainerScroll,\n scrollContainer,\n HugeiconsNodeEdit: _icons_hugeicons_node_edit__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n HugeiconsSubnodeDelete: _icons_hugeicons_subnode_delete__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n FluentCommentAdd16Regular: _icons_fluent_comment_add_16_regular__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n MaterialSymbolsAddLink: _icons_material_symbols_add_link__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n MdiTagAdd: _icons_mdi_tag_add__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n LucideImagePlus: _icons_lucide_image_plus__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n MdiEmoticonPlusOutline: _icons_mdi_emoticon_plus_outline__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n AntDesignNodeIndexOutlined: _icons_ant_design_node_index_outlined__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n MdiBracket: _icons_mdi_bracket__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n HugeiconsSummation01: _icons_hugeicons_summation_01__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n MdiCodeBlockBrackets: _icons_mdi_code_block_brackets__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n MaterialSymbolsUndo: _icons_material_symbols_undo__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n MaterialSymbolsRedo: _icons_material_symbols_redo__WEBPACK_IMPORTED_MODULE_17__[\"default\"],\n IcOutlineFormatPaint: _icons_ic_outline_format_paint__WEBPACK_IMPORTED_MODULE_18__[\"default\"],\n MaterialSymbolsVisibilityOutline: _icons_material_symbols_visibility_outline__WEBPACK_IMPORTED_MODULE_19__[\"default\"],\n MaterialSymbolsDockToRight: _icons_material_symbols_dock_to_right__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n MaterialSymbolsDockToBottom: _icons_material_symbols_dock_to_bottom__WEBPACK_IMPORTED_MODULE_21__[\"default\"],\n AddNodeButton: _components_AddNodeButton_vue__WEBPACK_IMPORTED_MODULE_22__[\"default\"]\n };\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=script&setup=true&lang=js":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=script&setup=true&lang=js ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var _icons_material_symbols_add__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~icons/material-symbols/add */ \"./_virtual_~icons%2Fmaterial-symbols%2Fadd\");\n/* harmony import */ var _icons_material_symbols_keyboard_arrow_down__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~icons/material-symbols/keyboard-arrow-down */ \"./_virtual_~icons%2Fmaterial-symbols%2Fkeyboard-arrow-down\");\n/* harmony import */ var _icons_material_symbols_keyboard_arrow_left__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~icons/material-symbols/keyboard-arrow-left */ \"./_virtual_~icons%2Fmaterial-symbols%2Fkeyboard-arrow-left\");\n/* harmony import */ var _icons_material_symbols_keyboard_arrow_right__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~icons/material-symbols/keyboard-arrow-right */ \"./_virtual_~icons%2Fmaterial-symbols%2Fkeyboard-arrow-right\");\n\n\n// 导入图标组件\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n __name: 'AddNodeButton',\n props: {\n isDark: {\n type: Boolean,\n default: false\n }\n },\n emits: ['addNode'],\n setup(__props, {\n emit\n }) {\n const props = __props;\n\n // 拖拽相关变量\n const addNodeBtn = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(null);\n const isDragging = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n const startPos = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])({\n x: 0,\n y: 0\n });\n const currentPos = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])({\n x: 0,\n y: 0\n });\n\n // 变量来追踪是否发生了实际的拖拽\n const hasDragged = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n // 当前拖动方向\n const currentDirection = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])('');\n // 控制拖动提示箭头的显示\n const showDragHints = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n\n // 处理点击事件\n const handleClick = e => {\n // 如果发生了拖拽,则不触发点击事件\n if (hasDragged.value) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n emit('addNode', 'right');\n };\n\n // 处理拖拽开始\n const handleDragStart = e => {\n e.preventDefault(); // 防止触发点击事件\n e.stopPropagation(); // 阻止事件冒泡\n\n isDragging.value = true;\n hasDragged.value = false;\n currentDirection.value = '';\n const pos = e.touches ? e.touches[0] : e;\n startPos.value = {\n x: pos.clientX,\n y: pos.clientY\n };\n\n // 使用捕获模式(true)添加事件监听,确保优先捕获到事件\n document.addEventListener('mousemove', handleDragMove, true);\n document.addEventListener('touchmove', handleDragMove, true);\n document.addEventListener('mouseup', handleDragEnd, true);\n document.addEventListener('touchend', handleDragEnd, true);\n\n // 防止拖拽过程中选中文本\n document.body.style.userSelect = 'none';\n };\n\n // 处理拖拽移动\n const handleDragMove = e => {\n if (!isDragging.value) return;\n e.preventDefault(); // 防止默认行为\n e.stopPropagation(); // 阻止事件冒泡\n\n const pos = e.touches ? e.touches[0] : e;\n const deltaX = pos.clientX - startPos.value.x;\n const deltaY = pos.clientY - startPos.value.y;\n\n // 如果移动距离超过阈值,标记为已拖拽\n if (Math.abs(deltaX) > 5 || Math.abs(deltaY) > 5) {\n hasDragged.value = true;\n }\n\n // 限制拖动范围\n const maxDistance = 40;\n const distance = Math.min(Math.sqrt(deltaX * deltaX + deltaY * deltaY), maxDistance);\n const angle = Math.atan2(deltaY, deltaX);\n currentPos.value = {\n x: Math.cos(angle) * distance,\n y: Math.sin(angle) * distance\n };\n\n // 确定当前拖动方向\n if (distance > 15) {\n // 必须达到一定距离才激活方向\n const angleDegrees = angle * 180 / Math.PI;\n if (angleDegrees > -45 && angleDegrees <= 45) {\n currentDirection.value = 'right';\n } else if (angleDegrees > 45 && angleDegrees <= 135) {\n currentDirection.value = 'bottom';\n } else if (angleDegrees > 135 || angleDegrees <= -135) {\n currentDirection.value = 'left';\n } else {\n // 不再使用top方向\n currentDirection.value = ''; // 不处理上方向\n }\n } else {\n currentDirection.value = '';\n }\n\n // 更新拖动指示器的位置\n if (addNodeBtn.value) {\n addNodeBtn.value.style.transform = `translate(${currentPos.value.x / 3}px, ${currentPos.value.y / 3}px)`;\n }\n };\n\n // 处理拖拽结束\n const handleDragEnd = e => {\n if (!isDragging.value) return;\n\n // 确保事件不会被其他元素捕获\n if (e) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n // 立即重置拖拽状态,使方向指示器消失\n isDragging.value = false;\n\n // 只有在实际发生拖拽时才触发添加节点\n if (hasDragged.value && currentDirection.value) {\n // 先获取当前方向,因为后面会重置\n const direction = currentDirection.value;\n console.log('拖拽结束,方向:', direction);\n\n // 添加动画效果,表示操作成功\n const originColor = addNodeBtn.value.style.backgroundColor;\n addNodeBtn.value.style.backgroundColor = '#52c41a'; // 成功绿色\n addNodeBtn.value.style.transition = 'all 0.3s ease';\n\n // 延迟执行添加节点命令,让用户先看到成功的视觉反馈\n setTimeout(() => {\n // 执行添加节点\n emit('addNode', direction);\n\n // 恢复按钮颜色\n addNodeBtn.value.style.backgroundColor = originColor;\n addNodeBtn.value.style.transition = '';\n }, 100);\n }\n\n // 重置位置(带动画)\n if (addNodeBtn.value) {\n addNodeBtn.value.style.transition = 'transform 0.3s ease';\n addNodeBtn.value.style.transform = 'translate(0, 0)';\n setTimeout(() => {\n addNodeBtn.value.style.transition = '';\n }, 300);\n }\n\n // 重置方向\n currentDirection.value = '';\n // 重置拖拽标记\n hasDragged.value = false;\n\n // 使用捕获模式(true)移除事件监听器\n document.removeEventListener('mousemove', handleDragMove, true);\n document.removeEventListener('touchmove', handleDragMove, true);\n document.removeEventListener('mouseup', handleDragEnd, true);\n document.removeEventListener('touchend', handleDragEnd, true);\n\n // 恢复文本选择\n document.body.style.userSelect = '';\n };\n\n // 处理工具栏鼠标移入\n const toolbarMouseEnter = () => {\n showDragHints.value = true;\n };\n\n // 处理工具栏鼠标移出\n const toolbarMouseLeave = () => {\n showDragHints.value = false;\n };\n return {\n __sfc: true,\n props,\n emit,\n addNodeBtn,\n isDragging,\n startPos,\n currentPos,\n hasDragged,\n currentDirection,\n showDragHints,\n handleClick,\n handleDragStart,\n handleDragMove,\n handleDragEnd,\n toolbarMouseEnter,\n toolbarMouseLeave,\n MaterialSymbolsAdd: _icons_material_symbols_add__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n MaterialSymbolsKeyboardArrowDown: _icons_material_symbols_keyboard_arrow_down__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n MaterialSymbolsKeyboardArrowLeft: _icons_material_symbols_keyboard_arrow_left__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n MaterialSymbolsKeyboardArrowRight: _icons_material_symbols_keyboard_arrow_right__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n };\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/MouseAction.vue?vue&type=script&lang=js":
/*!******************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/MouseAction.vue?vue&type=script&lang=js ***!
\******************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:53:10\n * @Desc: 鼠标操作设置\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'MouseAction',\n props: {\n mindMap: {\n type: Object\n },\n isDark: {\n type: Boolean\n }\n },\n data() {\n return {};\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapState\"])({\n useLeftKeySelectionRightKeyDrag: state => state.localConfig.useLeftKeySelectionRightKeyDrag\n })\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapMutations\"])(['setLocalConfig']),\n toggleAction() {\n let val = !this.useLeftKeySelectionRightKeyDrag;\n this.mindMap.updateConfig({\n useLeftKeySelectionRightKeyDrag: val\n });\n this.setLocalConfig({\n useLeftKeySelectionRightKeyDrag: val\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/MouseAction.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Navigator.vue?vue&type=script&lang=js":
/*!****************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Navigator.vue?vue&type=script&lang=js ***!
\****************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Navigator',\n inject: ['$bus'],\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n showMiniMap: false,\n timer: null,\n boxWidth: 0,\n boxHeight: 0,\n svgBoxScale: 1,\n svgBoxLeft: 0,\n svgBoxTop: 0,\n viewBoxStyle: {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0\n },\n mindMapImg: '',\n width: 0,\n setSizeTimer: null,\n withTransition: true\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapState\"])({\n isDark: state => state.localConfig.isDark\n })\n },\n mounted() {\n this.setSize();\n window.addEventListener('resize', this.setSize);\n this.$bus.$on('toggle_mini_map', this.toggle_mini_map);\n this.$bus.$on('data_change', this.data_change);\n this.$bus.$on('view_data_change', this.data_change);\n this.$bus.$on('node_tree_render_end', this.data_change);\n window.addEventListener('mouseup', this.onMouseup);\n this.mindMap.on('mini_map_view_box_position_change', this.onViewBoxPositionChange);\n },\n destroyed() {\n window.removeEventListener('resize', this.setSize);\n this.$bus.$off('toggle_mini_map', this.toggle_mini_map);\n this.$bus.$off('data_change', this.data_change);\n this.$bus.$off('view_data_change', this.data_change);\n this.$bus.$off('node_tree_render_end', this.data_change);\n window.removeEventListener('mouseup', this.onMouseup);\n this.mindMap.off('mini_map_view_box_position_change', this.onViewBoxPositionChange);\n },\n methods: {\n // 切换显示小地图\n toggle_mini_map(show) {\n this.showMiniMap = show;\n this.$nextTick(() => {\n if (this.$refs.navigatorBox) {\n this.init();\n }\n if (this.$refs.svgBox) {\n this.drawMiniMap();\n }\n });\n },\n // 思维导图数据改变,更新小地图\n data_change() {\n if (!this.showMiniMap) {\n return;\n }\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.drawMiniMap();\n }, 500);\n },\n // 计算容器宽度\n setSize() {\n clearTimeout(this.setSizeTimer);\n this.setSizeTimer = setTimeout(() => {\n this.width = Math.min(window.innerWidth - 80, 370);\n this.$nextTick(() => {\n if (this.showMiniMap) {\n this.init();\n this.drawMiniMap();\n }\n });\n }, 300);\n },\n // 获取宽高\n init() {\n let {\n width,\n height\n } = this.$refs.navigatorBox.getBoundingClientRect();\n this.boxWidth = width;\n this.boxHeight = height;\n },\n // 渲染小地图\n drawMiniMap() {\n let {\n getImgUrl,\n viewBoxStyle,\n miniMapBoxScale,\n miniMapBoxLeft,\n miniMapBoxTop\n } = this.mindMap.miniMap.calculationMiniMap(this.boxWidth, this.boxHeight);\n // 渲染到小地图\n getImgUrl(img => {\n this.mindMapImg = img;\n });\n this.viewBoxStyle = viewBoxStyle;\n this.svgBoxScale = miniMapBoxScale;\n this.svgBoxLeft = miniMapBoxLeft;\n this.svgBoxTop = miniMapBoxTop;\n },\n // 小地图鼠标按下事件\n onMousedown(e) {\n this.mindMap.miniMap.onMousedown(e);\n },\n // 小地图鼠标移动事件\n onMousemove(e) {\n this.mindMap.miniMap.onMousemove(e);\n },\n // 鼠标松开事件,最好绑定要window\n onMouseup(e) {\n if (!this.withTransition) {\n this.withTransition = true;\n }\n if (this.mindMap.miniMap) this.mindMap.miniMap.onMouseup(e);\n },\n // 视口框的鼠标按下事件\n onViewBoxMousedown(e) {\n this.mindMap.miniMap.onViewBoxMousedown(e);\n },\n // 视口框的鼠标移动事件\n onViewBoxMousemove(e) {\n this.mindMap.miniMap.onViewBoxMousemove(e);\n },\n // 视口框的位置大小改变了,需要更新\n onViewBoxPositionChange({\n left,\n right,\n top,\n bottom\n }) {\n this.withTransition = false;\n this.viewBoxStyle.left = left;\n this.viewBoxStyle.right = right;\n this.viewBoxStyle.top = top;\n this.viewBoxStyle.bottom = bottom;\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Navigator.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=script&lang=js":
/*!***********************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=script&lang=js ***!
\***********************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Scale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Scale */ \"./src/pages/Edit/components/Scale.vue\");\n/* harmony import */ var _Fullscreen__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Fullscreen */ \"./src/pages/Edit/components/Fullscreen.vue\");\n/* harmony import */ var _MouseAction_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MouseAction.vue */ \"./src/pages/Edit/components/MouseAction.vue\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/config */ \"./src/config/index.js\");\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/i18n */ \"./src/i18n.js\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/api */ \"./src/api/index.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var simple_mind_map_package_json__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! simple-mind-map/package.json */ \"../simple-mind-map/package.json\");\nvar simple_mind_map_package_json__WEBPACK_IMPORTED_MODULE_7___namespace = /*#__PURE__*/__webpack_require__.t(/*! simple-mind-map/package.json */ \"../simple-mind-map/package.json\", 1);\n/* harmony import */ var _Demonstrate_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Demonstrate.vue */ \"./src/pages/Edit/components/Demonstrate.vue\");\n/* harmony import */ var _hooks_useQueryFunction__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/hooks/useQueryFunction */ \"./src/hooks/useQueryFunction.tsx\");\n/* harmony import */ var _mixins_domMode__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/mixins/domMode */ \"./src/mixins/domMode.js\");\n/* harmony import */ var _icons_icon_park_solid_dark_mode__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ~icons/icon-park-solid/dark-mode */ \"./_virtual_~icons%2Ficon-park-solid%2Fdark-mode\");\n/* harmony import */ var _icons_icon_park_outline_dark_mode__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ~icons/icon-park-outline/dark-mode */ \"./_virtual_~icons%2Ficon-park-outline%2Fdark-mode\");\n/* harmony import */ var _icons_streamline_target_3__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ~icons/streamline/target-3 */ \"./_virtual_~icons%2Fstreamline%2Ftarget-3\");\n/* harmony import */ var _icons_ri_menu_search_line__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ~icons/ri/menu-search-line */ \"./_virtual_~icons%2Fri%2Fmenu-search-line\");\n/* harmony import */ var _icons_ic_twotone_map__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ~icons/ic/twotone-map */ \"./_virtual_~icons%2Fic%2Ftwotone-map\");\n/* harmony import */ var _icons_iconoir_edit__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ~icons/iconoir/edit */ \"./_virtual_~icons%2Ficonoir%2Fedit\");\n/* harmony import */ var _icons_mdi_eye_outline__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ~icons/mdi/eye-outline */ \"./_virtual_~icons%2Fmdi%2Feye-outline\");\n/* harmony import */ var _icons_icon_park_twotone_full_screen_play__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ~icons/icon-park-twotone/full-screen-play */ \"./_virtual_~icons%2Ficon-park-twotone%2Ffull-screen-play\");\n/* harmony import */ var _icons_mdi_brain_freeze_outline__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ~icons/mdi/brain-freeze-outline */ \"./_virtual_~icons%2Fmdi%2Fbrain-freeze-outline\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:53:10\n * @Desc: 导航器工具栏\n */\nconst __default__ = {\n name: 'NavigatorToolbar',\n inject: ['$bus'],\n mixins: [_mixins_domMode__WEBPACK_IMPORTED_MODULE_10__[\"default\"]],\n components: {\n Scale: _Scale__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n Fullscreen: _Fullscreen__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n MouseAction: _MouseAction_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n Demonstrate: _Demonstrate_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n IconParkSolidDarkMode: _icons_icon_park_solid_dark_mode__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n IconParkOutlineDarkMode: _icons_icon_park_outline_dark_mode__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n StreamlineTarget3: _icons_streamline_target_3__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n RiMenuSearchLine: _icons_ri_menu_search_line__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n IcTwotoneMap: _icons_ic_twotone_map__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n IconoirEdit: _icons_iconoir_edit__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n MdiEyeOutline: _icons_mdi_eye_outline__WEBPACK_IMPORTED_MODULE_17__[\"default\"],\n IconParkTwotoneFullScreenPlay: _icons_icon_park_twotone_full_screen_play__WEBPACK_IMPORTED_MODULE_18__[\"default\"],\n MdiBrainFreezeOutline: _icons_mdi_brain_freeze_outline__WEBPACK_IMPORTED_MODULE_19__[\"default\"]\n },\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n version: simple_mind_map_package_json__WEBPACK_IMPORTED_MODULE_7__.version,\n langList: _config__WEBPACK_IMPORTED_MODULE_3__[\"langList\"],\n lang: '',\n openMiniMap: false\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_6__[\"mapState\"])({\n isReadonly: state => state.isReadonly,\n isDark: state => state.localConfig.isDark,\n // 当 activeSidebar 为 '', null 或 undefined 时均视为未激活\n isSidebarActive: state => !!state.activeSidebar,\n injectConfig: state => state.injectConfig\n }),\n isDebugger() {\n const {\n isDebugger\n } = Object(_hooks_useQueryFunction__WEBPACK_IMPORTED_MODULE_9__[\"useQueryFunction\"])();\n return isDebugger.value;\n }\n },\n created() {\n this.lang = Object(_api__WEBPACK_IMPORTED_MODULE_5__[\"getLang\"])(this.injectConfig);\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_6__[\"mapMutations\"])(['setLocalConfig', 'setIsReadonly', 'setIsSourceCodeEdit']),\n toggleZenMode() {\n this.setLocalConfig({\n isZenMode: !this.isZenMode\n });\n },\n readonlyChange() {\n this.setIsReadonly(!this.isReadonly);\n this.mindMap.setMode(this.isReadonly ? 'readonly' : 'edit');\n },\n toggleMiniMap() {\n this.openMiniMap = !this.openMiniMap;\n this.$bus.$emit('toggle_mini_map', this.openMiniMap);\n },\n onLangChange(lang) {\n _i18n__WEBPACK_IMPORTED_MODULE_4__[\"default\"].locale = lang;\n Object(_api__WEBPACK_IMPORTED_MODULE_5__[\"storeLang\"])(lang);\n this.$bus.$emit('lang_change');\n },\n showSearch() {\n this.$bus.$emit('show_search');\n },\n toggleDark() {\n this.setLocalConfig({\n isDark: !this.isDark\n });\n },\n handleCommand(command) {\n let url = '';\n switch (command) {\n case 'github':\n url = 'https://github.com/wanglin2/mind-map';\n break;\n case 'helpDoc':\n url = 'https://wanglin2.github.io/mind-map-docs/help/help1.html';\n break;\n case 'devDoc':\n url = 'https://wanglin2.github.io/mind-map-docs/start/introduction.html';\n break;\n case 'site':\n url = 'https://wanglin2.github.io/mind-map-docs/';\n break;\n case 'issue':\n url = 'https://github.com/wanglin2/mind-map/issues/new';\n break;\n default:\n break;\n }\n const a = document.createElement('a');\n a.href = url;\n a.target = '_blank';\n a.click();\n },\n backToRoot() {\n this.mindMap.renderer.setRootNodeCenter();\n },\n openSourceCodeEdit() {\n this.setIsSourceCodeEdit(true);\n }\n }\n};\n\nconst __injectCSSVars__ = () => {\n Object(vue__WEBPACK_IMPORTED_MODULE_20__[\"useCssVars\"])((_vm, _setup) => ({\n \"92e9ad88-positionMode\": _vm.positionMode\n }));\n};\nconst __setup__ = __default__.setup;\n__default__.setup = __setup__ ? (props, ctx) => {\n __injectCSSVars__();\n return __setup__(props, ctx);\n} : __injectCSSVars__;\n/* harmony default export */ __webpack_exports__[\"default\"] = (__default__);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NavigatorToolbar.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=script&lang=js":
/*!************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=script&lang=js ***!
\************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/config */ \"./src/config/index.js\");\n/* harmony import */ var _Color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Color */ \"./src/pages/Edit/components/Color.vue\");\n\n\nconst defaultConfig = {\n type: 'circle',\n color: '',\n strokeWidth: 1,\n animate: true,\n padding: 20\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n inject: ['$bus'],\n components: {\n Color: _Color__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n props: {\n isDark: {\n type: Boolean,\n default: false\n },\n dir: {\n type: String,\n default: ''\n }\n },\n data() {\n return {\n lineWidthList: _config__WEBPACK_IMPORTED_MODULE_0__[\"lineWidthList\"].slice(1),\n activeNodes: [],\n show: false,\n annotationConfig: {\n ...defaultConfig\n },\n annotationTypeList: [{\n label: '圆',\n value: 'circle'\n }, {\n label: '边框',\n value: 'box'\n }, {\n label: '高亮',\n value: 'highlight'\n }, {\n label: '下划线',\n value: 'underline'\n }, {\n label: '删除线',\n value: 'strike-through'\n }, {\n label: '叉',\n value: 'crossed-off'\n }]\n };\n },\n computed: {\n hasGeneralization() {\n return this.activeNodes.findIndex(node => {\n return node.isGeneralization;\n }) !== -1;\n }\n },\n mounted() {\n this.$bus.$on('node_active', this.onNodeActive);\n },\n beforeDestroy() {\n this.$bus.$off('node_active', this.onNodeActive);\n },\n methods: {\n onNodeActive(...args) {\n this.activeNodes = [...args[1]];\n const node = this.activeNodes[0];\n if (node) {\n const notationData = node.getData('notation');\n if (notationData) {\n const {\n show,\n config\n } = notationData;\n this.show = show;\n this.annotationConfig = {\n ...defaultConfig,\n ...config\n };\n } else {\n this.reset();\n }\n } else {\n this.reset();\n }\n },\n reset() {\n this.show = false;\n this.annotationConfig = {\n ...defaultConfig\n };\n },\n onChange() {\n this.$emit('setAnnotation', this.show, {\n ...this.annotationConfig\n });\n },\n onColorChange(color) {\n this.annotationConfig.color = color;\n this.onChange();\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeAnnotationBtn.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeAttachment.vue?vue&type=script&lang=js":
/*!*********************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeAttachment.vue?vue&type=script&lang=js ***!
\*********************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n inject: ['$bus'],\n props: {\n mindMap: {\n type: Object,\n default() {\n return null;\n }\n }\n },\n data() {\n return {\n show: false,\n left: 0,\n top: 0,\n node: null,\n icon: null\n };\n },\n created() {\n this.$bus.$on('node_attachmentClick', this.onNodeAttachmentClick);\n this.$bus.$on('selectAttachment', this.onSelectAttachment);\n this.$bus.$on('node_attachmentContextmenu', this.onNodeAttachmentContextmenu);\n this.$bus.$on('hide', this.hide);\n document.body.addEventListener('click', this.hide);\n this.$bus.$on('node_active', this.hide);\n this.$bus.$on('scale', this.onScale);\n this.$bus.$on('translate', this.onScale);\n this.$bus.$on('svg_mousedown', this.hide);\n },\n beforeDestroy() {\n this.$bus.$off('node_attachmentClick', this.onNodeAttachmentClick);\n this.$bus.$off('selectAttachment', this.onSelectAttachment);\n this.$bus.$off('node_attachmentContextmenu', this.onNodeAttachmentContextmenu);\n this.$bus.$off('hide', this.hide);\n document.body.removeEventListener('click', this.hide);\n this.$bus.$off('node_active', this.hide);\n this.$bus.$off('scale', this.onScale);\n this.$bus.$off('translate', this.onScale);\n this.$bus.$off('svg_mousedown', this.hide);\n },\n methods: {\n // 选择附件\n onSelectAttachment(activeNodes) {\n // activeNodes.forEach(node => {\n // node.setAttachment('/test.md', '我去')\n // })\n },\n // 点击附件图标,一般用来打开或下载附件\n onNodeAttachmentClick(node, e, icon) {\n // console.log(node.getData('attachmentUrl'))\n this.$message.info(this.$t('attachment.tip'));\n },\n // 显示删除浮层\n onNodeAttachmentContextmenu(node, e, icon) {\n e.stopPropagation();\n e.preventDefault();\n this.node = node;\n this.icon = icon;\n this.updatePosition();\n this.show = true;\n },\n // 更新位置\n updatePosition() {\n const iconSize = this.mindMap.themeConfig.iconSize;\n const {\n x,\n y\n } = this.icon.rbox();\n this.left = x + iconSize;\n this.top = y;\n },\n // 画布缩放事件\n onScale() {\n if (!this.node || !this.show) return;\n this.updatePosition();\n },\n // 删除附件\n deleteAttachment() {\n if (!this.node || !this.show) return;\n this.node.setAttachment('', '');\n this.hide();\n },\n // 隐藏浮层\n hide() {\n this.show = false;\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeAttachment.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeHyperlink.vue?vue&type=script&lang=js":
/*!********************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeHyperlink.vue?vue&type=script&lang=js ***!
\********************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! simple-mind-map/src/utils/index */ \"../simple-mind-map/src/utils/index.js\");\n/* harmony import */ var _mixins_domMode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/mixins/domMode */ \"./src/mixins/domMode.js\");\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:53:17\n * @Desc: 节点超链接内容设置\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'NodeHyperlink',\n inject: ['$bus'],\n mixins: [_mixins_domMode__WEBPACK_IMPORTED_MODULE_1__[\"default\"]],\n data() {\n return {\n dialogVisible: false,\n link: '',\n linkTitle: '',\n activeNodes: [],\n protocol: 'none',\n isMobile: Object(simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_0__[\"isMobile\"])()\n };\n },\n computed: {\n dynamicPlaceholder() {\n return this.protocol === 'none' ? 'siyuan://xxxxxxx' : 'https://xxxxxx';\n }\n },\n created() {\n this.$bus.$on('node_active', this.handleNodeActive);\n this.$bus.$on('showNodeLink', this.handleShowNodeLink);\n },\n beforeDestroy() {\n this.$bus.$off('node_active', this.handleNodeActive);\n this.$bus.$off('showNodeLink', this.handleShowNodeLink);\n },\n methods: {\n handleNodeActive(...args) {\n this.activeNodes = [...args[1]];\n if (this.activeNodes.length > 0) {\n let firstNode = this.activeNodes[0];\n this.link = firstNode.getData('hyperlink') || '';\n this.handleUrl(true);\n this.linkTitle = firstNode.getData('hyperlinkTitle') || '';\n } else {\n this.link = '';\n this.linkTitle = '';\n }\n },\n removeProtocol(url) {\n return url.replace(/^https?:\\/\\//, '');\n },\n handleUrl(setProtocolNoneIfNotExist) {\n if (!this.link) {\n return;\n }\n const res = this.link.match(/^(https?):\\/\\//);\n if (res && res[1]) {\n this.protocol = res[1];\n } else if (!this.link) {\n this.protocol = 'https';\n } else if (setProtocolNoneIfNotExist) {\n this.protocol = 'none';\n }\n this.link = this.removeProtocol(this.link);\n },\n handleShowNodeLink() {\n this.dialogVisible = true;\n },\n /**\n * @Author: 王林\n * @Date: 2021-06-22 22:08:11\n * @Desc: 取消\n */\n cancel() {\n this.dialogVisible = false;\n },\n /**\n * @Author: 王林\n * @Date: 2021-06-06 22:28:20\n * @Desc: 确定\n */\n confirm() {\n this.activeNodes.forEach(node => {\n node.setHyperlink((this.protocol === 'none' ? '' : this.protocol + '://') + this.link, this.linkTitle);\n this.cancel();\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeHyperlink.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIcon.vue?vue&type=script&lang=js":
/*!***************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeIcon.vue?vue&type=script&lang=js ***!
\***************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var simple_mind_map_src_svg_icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! simple-mind-map/src/svg/icons */ \"../simple-mind-map/src/svg/icons.js\");\n/* harmony import */ var _config_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/config/icon */ \"./src/config/icon.js\");\n/* harmony import */ var _mixins_domMode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/mixins/domMode */ \"./src/mixins/domMode.js\");\n\n\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:53:33\n * @Desc: 节点图标内容设置\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'NodeIcon',\n inject: ['$bus'],\n mixins: [_mixins_domMode__WEBPACK_IMPORTED_MODULE_3__[\"default\"]],\n data() {\n return {\n nodeIconList: [...simple_mind_map_src_svg_icons__WEBPACK_IMPORTED_MODULE_1__[\"nodeIconList\"], ..._config_icon__WEBPACK_IMPORTED_MODULE_2__[\"default\"]],\n dialogVisible: false,\n iconList: [],\n activeNodes: []\n };\n },\n created() {\n this.$bus.$on('node_active', this.handleNodeActive);\n this.$bus.$on('showNodeIcon', this.handleShowNodeIcon);\n },\n beforeDestroy() {\n this.$bus.$off('node_active', this.handleNodeActive);\n this.$bus.$off('showNodeIcon', this.handleShowNodeIcon);\n },\n methods: {\n handleNodeActive(...args) {\n this.activeNodes = [...args[1]];\n if (this.activeNodes.length > 0) {\n let firstNode = this.activeNodes[0];\n this.iconList = firstNode.getData('icon') || [];\n } else {\n this.iconList = [];\n }\n },\n handleShowNodeIcon() {\n this.dialogVisible = true;\n },\n getHtml(icon) {\n return /^<svg/.test(icon) ? icon : `<img src=\"${icon}\" />`;\n },\n /**\n * @Author: 王林\n * @Date: 2021-06-23 23:16:56\n * @Desc: 设置icon\n */\n setIcon(type, name) {\n let key = type + '_' + name;\n let index = this.iconList.findIndex(item => {\n return item === key;\n });\n // 删除icon\n if (index !== -1) {\n this.iconList.splice(index, 1);\n } else {\n let typeIndex = this.iconList.findIndex(item => {\n return item.split('_')[0] === type;\n });\n // 替换icon\n if (typeIndex !== -1) {\n this.iconList.splice(typeIndex, 1, key);\n } else {\n // 增加icon\n this.iconList.push(key);\n }\n }\n this.activeNodes.forEach(node => {\n node.setIcon([...this.iconList]);\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIcon.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=script&lang=js":
/*!**********************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=script&lang=js ***!
\**********************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Sidebar */ \"./src/pages/Edit/components/Sidebar.vue\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var simple_mind_map_src_svg_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! simple-mind-map/src/svg/icons */ \"../simple-mind-map/src/svg/icons.js\");\n/* harmony import */ var simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! simple-mind-map/src/utils/index */ \"../simple-mind-map/src/utils/index.js\");\n/* harmony import */ var _config_icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/config/icon */ \"./src/config/icon.js\");\n/* harmony import */ var _config_image__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/config/image */ \"./src/config/image.js\");\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'NodeIconSidebar',\n inject: ['$bus'],\n components: {\n Sidebar: _Sidebar__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n data() {\n return {\n activeName: 'icon',\n nodeIconList: Object(simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_4__[\"mergerIconList\"])([...simple_mind_map_src_svg_icons__WEBPACK_IMPORTED_MODULE_3__[\"nodeIconList\"], ..._config_icon__WEBPACK_IMPORTED_MODULE_5__[\"default\"]]),\n nodeImageList: [..._config_image__WEBPACK_IMPORTED_MODULE_6__[\"default\"]],\n iconList: [],\n nodeImage: '',\n activeNodes: []\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_2__[\"mapState\"])({\n activeSidebar: state => state.activeSidebar,\n isDark: state => state.localConfig.isDark\n })\n },\n watch: {\n activeSidebar(val) {\n if (val === 'nodeIconSidebar') {\n this.$refs.sidebar.show = true;\n } else {\n this.$refs.sidebar.show = false;\n }\n }\n },\n created() {\n this.$bus.$on('node_active', this.handleNodeActive);\n this.$bus.$on('showNodeIcon', this.handleShowNodeIcon);\n },\n beforeDestroy() {\n this.$bus.$off('node_active', this.handleNodeActive);\n this.$bus.$off('showNodeIcon', this.handleShowNodeIcon);\n },\n methods: {\n handleNodeActive(...args) {\n this.activeNodes = [...args[1]];\n if (this.activeNodes.length > 0) {\n if (this.activeNodes.length === 1) {\n let firstNode = this.activeNodes[0];\n this.nodeImage = firstNode.getData('image') || '';\n this.iconList = firstNode.getData('icon') || []; // 回显图标\n } else {\n this.nodeImage = [];\n this.iconList = [];\n }\n } else {\n this.iconList = [];\n this.nodeImage = '';\n }\n },\n handleShowNodeIcon() {\n this.dialogVisible = true;\n },\n // 获取图标渲染方式\n getHtml(icon) {\n return /^<svg/.test(icon) ? icon : `<img src=\"${icon}\" />`;\n },\n // 设置icon\n setIcon(type, name) {\n this.activeNodes.forEach(node => {\n const iconList = [...(node.getData('icon') || [])];\n let key = type + '_' + name;\n let index = iconList.findIndex(item => {\n return item === key;\n });\n // 删除icon\n if (index !== -1) {\n iconList.splice(index, 1);\n } else {\n let typeIndex = iconList.findIndex(item => {\n return item.split('_')[0] === type;\n });\n // 替换icon\n if (typeIndex !== -1) {\n iconList.splice(typeIndex, 1, key);\n } else {\n // 增加icon\n iconList.push(key);\n }\n }\n node.setIcon(iconList);\n if (this.activeNodes.length === 1) {\n this.iconList = iconList;\n }\n });\n },\n // 设置贴纸\n setImage(image) {\n this.activeNodes.forEach(node => {\n this.nodeImage = image.url;\n node.setImage({\n ...image\n });\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIconSidebar.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=script&lang=js":
/*!**********************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=script&lang=js ***!
\**********************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var simple_mind_map_src_svg_icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! simple-mind-map/src/svg/icons */ \"../simple-mind-map/src/svg/icons.js\");\n/* harmony import */ var _config_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/config/icon */ \"./src/config/icon.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n\n\n\n\nconst allIconList = [...simple_mind_map_src_svg_icons__WEBPACK_IMPORTED_MODULE_1__[\"nodeIconList\"], ..._config_icon__WEBPACK_IMPORTED_MODULE_2__[\"default\"]];\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'NodeIconToolbar',\n inject: ['$bus'],\n components: {},\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n showNodeIconToolbar: false,\n style: {\n left: 0,\n top: 0\n },\n node: null,\n iconType: '',\n iconName: '',\n nodeIconList: [],\n iconList: []\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_3__[\"mapState\"])(['activeSidebar'])\n },\n created() {\n this.mindMap.on('node_icon_click', this.show);\n this.mindMap.on('draw_click', this.close);\n this.mindMap.on('svg_mousedown', this.close);\n this.mindMap.on('node_dblclick', this.close);\n this.mindMap.on('node_active', this.onNodeActive);\n this.mindMap.on('scale', this.onScale);\n this.$bus.$on('close_node_icon_toolbar', this.close);\n },\n mounted() {\n document.body.append(this.$refs.nodeIconToolbar);\n },\n beforeDestroy() {\n this.mindMap.off('node_icon_click', this.show);\n this.mindMap.off('draw_click', this.close);\n this.mindMap.off('svg_mousedown', this.close);\n this.mindMap.off('node_dblclick', this.close);\n this.mindMap.off('node_active', this.onNodeActive);\n this.mindMap.off('scale', this.onScale);\n this.$bus.$off('close_node_icon_toolbar', this.close);\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_3__[\"mapMutations\"])(['setActiveSidebar']),\n show(node, icon) {\n this.node = node;\n this.iconType = icon.split('_')[0];\n this.iconName = icon.split('_')[1];\n this.nodeIconList = node.getData('icon') || [];\n this.iconList = [...allIconList.find(item => {\n return item.type === this.iconType;\n }).list];\n this.updatePos();\n this.showNodeIconToolbar = true;\n if (this.activeSidebar === 'nodeIconSidebar') {\n this.setActiveSidebar('');\n }\n },\n close() {\n this.showNodeIconToolbar = false;\n this.node = null;\n this.iconType = '';\n this.iconName = '';\n this.nodeIconList = [];\n this.iconList = [];\n this.style.left = 0;\n this.style.top = 0;\n },\n updatePos() {\n if (!this.node) return;\n const rect = this.node.getRect();\n this.style.left = rect.x + 'px';\n this.style.top = rect.y + rect.height + 'px';\n },\n onScale() {\n this.updatePos();\n },\n onNodeActive(node) {\n if (node === this.node) {\n return;\n }\n this.close();\n },\n deleteIcon() {\n this.setIcon(this.iconName);\n this.close();\n },\n // 获取图标渲染方式\n getHtml(icon) {\n return /^<svg/.test(icon) ? icon : `<img src=\"${icon}\" />`;\n },\n // 设置icon\n setIcon(name) {\n let key = this.iconType + '_' + name;\n let index = this.nodeIconList.findIndex(item => {\n return item === key;\n });\n // 删除icon\n if (index !== -1) {\n this.nodeIconList.splice(index, 1);\n } else {\n let typeIndex = this.nodeIconList.findIndex(item => {\n return item.split('_')[0] === this.iconType;\n });\n // 替换icon\n if (typeIndex !== -1) {\n this.nodeIconList.splice(typeIndex, 1, key);\n this.iconName = name;\n } else {\n // 增加icon\n this.nodeIconList.push(key);\n }\n }\n this.node.setIcon([...this.nodeIconList]);\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIconToolbar.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImage.vue?vue&type=script&lang=js":
/*!****************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeImage.vue?vue&type=script&lang=js ***!
\****************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _components_ImgUpload__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/components/ImgUpload */ \"./src/components/ImgUpload/index.vue\");\n/* harmony import */ var simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! simple-mind-map/src/utils/index */ \"../simple-mind-map/src/utils/index.js\");\n/* harmony import */ var _mixins_domMode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/mixins/domMode */ \"./src/mixins/domMode.js\");\n\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:53:45\n * @Desc: 节点图片内容设置\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'NodeImage',\n inject: ['$bus'],\n components: {\n ImgUpload: _components_ImgUpload__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n },\n mixins: [_mixins_domMode__WEBPACK_IMPORTED_MODULE_2__[\"default\"]],\n data() {\n return {\n dialogVisible: false,\n img: '',\n imgUrl: '',\n imgTitle: '',\n activeNodes: null,\n isMobile: Object(simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_1__[\"isMobile\"])()\n };\n },\n created() {\n this.$bus.$on('node_active', this.handleNodeActive);\n this.$bus.$on('showNodeImage', this.handleShowNodeImage);\n },\n beforeDestroy() {\n this.$bus.$off('node_active', this.handleNodeActive);\n this.$bus.$off('showNodeImage', this.handleShowNodeImage);\n },\n methods: {\n handleNodeActive(...args) {\n this.activeNodes = [...args[1]];\n },\n handleShowNodeImage() {\n this.reset();\n if (this.activeNodes.length > 0) {\n let firstNode = this.activeNodes[0];\n let img = firstNode.getData('image') || '';\n if (img) {\n if (/^https?:\\/\\//.test(img)) {\n this.imgUrl = img;\n } else {\n this.img = img;\n }\n }\n this.imgTitle = firstNode.getData('imageTitle') || '';\n }\n this.dialogVisible = true;\n },\n cancel() {\n this.dialogVisible = false;\n this.reset();\n },\n reset() {\n this.img = '';\n this.imgTitle = '';\n this.imgUrl = '';\n },\n async confirm() {\n try {\n // 删除图片\n if (!this.img && !this.imgUrl) {\n this.cancel();\n this.activeNodes.forEach(node => {\n node.setImage(null);\n });\n return;\n }\n let res = null;\n let img = '';\n if (this.img) {\n img = this.img;\n res = await this.$refs.ImgUpload.getSize();\n } else if (this.imgUrl) {\n img = this.imgUrl;\n res = await Object(simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_1__[\"getImageSize\"])(img);\n }\n this.activeNodes.forEach(node => {\n node.setImage({\n url: img || 'none',\n title: this.imgTitle,\n width: res.width || 100,\n height: res.height || 100\n });\n });\n this.cancel();\n } catch (error) {\n console.log(error);\n }\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImage.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=script&lang=js":
/*!******************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=script&lang=js ***!
\******************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'NodeImgPlacementToolbar',\n components: {},\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n showImgPlacementToolbar: false,\n style: {\n left: 0,\n top: 0\n },\n imgPlacementList: ['top', 'bottom', 'left', 'right'],\n node: null,\n imgNode: null,\n imgPlacement: ''\n };\n },\n computed: {},\n created() {\n this.mindMap.on('node_img_click', this.show);\n this.mindMap.on('draw_click', this.close);\n this.mindMap.on('svg_mousedown', this.close);\n this.mindMap.on('node_dblclick', this.close);\n this.mindMap.on('node_active', this.onNodeActive);\n this.mindMap.on('scale', this.onScale);\n },\n mounted() {\n document.body.append(this.$refs.nodeImgPlacementToolbar);\n },\n beforeDestroy() {\n this.mindMap.off('node_img_click', this.show);\n this.mindMap.off('draw_click', this.close);\n this.mindMap.off('svg_mousedown', this.close);\n this.mindMap.off('node_dblclick', this.close);\n this.mindMap.off('node_active', this.onNodeActive);\n this.mindMap.off('scale', this.onScale);\n },\n methods: {\n show(node, imgNode) {\n this.node = node;\n this.imgPlacement = node.getStyle('imgPlacement');\n this.imgNode = imgNode;\n this.showImgPlacementToolbar = true;\n this.$nextTick(() => {\n this.updatePos();\n });\n },\n close() {\n this.showImgPlacementToolbar = false;\n this.node = null;\n this.imgPlacement = '';\n this.imgNode = null;\n this.style.left = 0;\n this.style.top = 0;\n },\n updatePos() {\n if (!this.imgNode) return;\n const {\n width,\n height\n } = this.$refs.nodeImgPlacementToolbar.getBoundingClientRect();\n const {\n width: imgWidth,\n x,\n y\n } = this.imgNode.rbox();\n this.style.left = x + imgWidth / 2 - width / 2 + 'px';\n this.style.top = y - height - 5 + 'px';\n },\n onScale() {\n this.updatePos();\n },\n onNodeActive(node) {\n if (node === this.node) {\n return;\n }\n this.close();\n },\n updateImgPlacement(item) {\n this.imgPlacement = item;\n this.node.setStyle('imgPlacement', item);\n this.close();\n },\n async handleCopyImage() {\n try {\n const url = this.node && this.node.nodeData && this.node.nodeData.data && this.node.nodeData.data.image || this.node && this.node.getData && this.node.getData('image') || '';\n if (!url) {\n this.$message.error(this.$t('contextmenu.copyFail'));\n return;\n }\n\n // 优先尝试复制为图片(ClipboardItem\n try {\n const res = await fetch(url);\n const blob = await res.blob();\n const ClipboardItemCtor = window.ClipboardItem || window['ClipboardItem'];\n if (!ClipboardItemCtor || !navigator.clipboard || !navigator.clipboard.write) {\n throw new Error('Clipboard image API not supported');\n }\n await navigator.clipboard.write([new ClipboardItemCtor({\n [blob.type]: blob\n })]);\n this.$message.success(this.$t('contextmenu.copySuccess'));\n return;\n } catch (_) {}\n\n // 回退:复制图片链接\n try {\n await navigator.clipboard.writeText(url);\n this.$message.success(this.$t('contextmenu.copySuccess'));\n } catch (e) {\n this.$message.error(this.$t('contextmenu.copyFail'));\n }\n } catch (error) {\n console.error('[KMind] Copy image failed:', error);\n this.$message.error(this.$t('contextmenu.copyFail'));\n }\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImgPlacementToolbar.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImgPreview.vue?vue&type=script&lang=js":
/*!*********************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeImgPreview.vue?vue&type=script&lang=js ***!
\*********************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n props: {\n mindMap: {\n type: Object,\n default() {\n return null;\n }\n }\n },\n data() {\n return {\n images: [],\n copyBtnEl: null\n };\n },\n mounted() {\n this.mindMap.on('node_img_dblclick', this.onNodeTmgDblclick);\n },\n beforeDestroy() {\n this.mindMap.off('node_img_dblclick', this.onNodeTmgDblclick);\n this.removeCopyButton();\n },\n methods: {\n onNodeTmgDblclick(node, e) {\n var _node$nodeData;\n e.stopPropagation();\n e.preventDefault();\n this.images = [node.nodeData.data.image];\n const url = node === null || node === void 0 || (_node$nodeData = node.nodeData) === null || _node$nodeData === void 0 || (_node$nodeData = _node$nodeData.data) === null || _node$nodeData === void 0 ? void 0 : _node$nodeData.image;\n const options = {\n // 在图片显示后注入复制按钮\n shown: () => {\n this.$nextTick(() => {\n this.injectCopyButton(url);\n });\n },\n // 切换图片时更新按钮行为(虽然当前仅一张,做兼容)\n viewed: e => {\n const cur = e && e.detail && e.detail.image && e.detail.image.src || url;\n this.injectCopyButton(cur);\n },\n hidden: () => {\n this.removeCopyButton();\n }\n };\n try {\n this.$viewerApi({\n images: this.images,\n options\n });\n // 兜底:若 options 未生效,延迟注入\n setTimeout(() => this.injectCopyButton(url), 50);\n } catch (err) {\n // 兜底:直接调用原始 API 并延迟注入\n this.$viewerApi({\n images: this.images\n });\n setTimeout(() => this.injectCopyButton(url), 50);\n }\n },\n async copyImageToClipboard(url) {\n if (!url) return;\n try {\n const res = await fetch(url);\n const blob = await res.blob();\n const ClipboardItemCtor = window.ClipboardItem || window['ClipboardItem'];\n if (!ClipboardItemCtor || !navigator.clipboard || !navigator.clipboard.write) {\n throw new Error('Clipboard image API not supported');\n }\n await navigator.clipboard.write([new ClipboardItemCtor({\n [blob.type]: blob\n })]);\n this.$message.success(this.$t('contextmenu.copySuccess'));\n } catch (error) {\n // 回退:复制图片链接\n try {\n await navigator.clipboard.writeText(url);\n this.$message.success(this.$t('contextmenu.copySuccess'));\n } catch (e) {\n this.$message.error(this.$t('contextmenu.copyFail'));\n }\n }\n },\n injectCopyButton(currentUrl) {\n // 查找viewer工具栏\n const toolbars = document.querySelectorAll('.viewer-toolbar');\n if (!toolbars || toolbars.length === 0) return;\n const toolbar = toolbars[toolbars.length - 1];\n // 已存在则仅更新事件\n if (this.copyBtnEl && toolbar.contains(this.copyBtnEl)) {\n this.copyBtnEl.onclick = () => this.copyImageToClipboard(currentUrl);\n return;\n }\n // 创建按钮\n const li = document.createElement('li');\n li.className = 'km-copy-image-btn';\n li.setAttribute('role', 'button');\n li.setAttribute('title', this.$t('nodeImage.copyImage'));\n // 使用文字作为按钮内容,避免引入额外样式/图标\n li.textContent = this.$t('nodeImage.copyImage');\n li.style.cursor = 'pointer';\n li.style.padding = '6px 10px';\n li.style.margin = '0 5px';\n li.style.borderRadius = '4px';\n li.style.background = 'rgba(0,0,0,0.35)';\n li.style.color = '#fff';\n li.style.fontSize = '12px';\n li.onclick = () => this.copyImageToClipboard(currentUrl);\n // 先移除旧按钮(若存在于其他viewer实例)\n this.removeCopyButton();\n toolbar.appendChild(li);\n this.copyBtnEl = li;\n },\n removeCopyButton() {\n if (this.copyBtnEl && this.copyBtnEl.parentNode) {\n try {\n this.copyBtnEl.parentNode.removeChild(this.copyBtnEl);\n } catch (e) {}\n }\n this.copyBtnEl = null;\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImgPreview.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeNote.vue?vue&type=script&lang=js":
/*!***************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeNote.vue?vue&type=script&lang=js ***!
\***************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _toast_ui_editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @toast-ui/editor */ \"./node_modules/@toast-ui/editor/dist/esm/index.js\");\n/* harmony import */ var _toast_ui_editor_dist_toastui_editor_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @toast-ui/editor/dist/toastui-editor.css */ \"./node_modules/@toast-ui/editor/dist/toastui-editor.css\");\n/* harmony import */ var _toast_ui_editor_dist_toastui_editor_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_toast_ui_editor_dist_toastui_editor_css__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! simple-mind-map/src/utils/index */ \"../simple-mind-map/src/utils/index.js\");\n/* harmony import */ var _mixins_domMode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/mixins/domMode */ \"./src/mixins/domMode.js\");\n\n // Editor's Style\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:53:54\n * @Desc: 节点备注内容设置\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'NodeNote',\n inject: ['$bus'],\n mixins: [_mixins_domMode__WEBPACK_IMPORTED_MODULE_3__[\"default\"]],\n data() {\n return {\n dialogVisible: false,\n note: '',\n activeNodes: [],\n editor: null,\n isMobile: Object(simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_2__[\"isMobile\"])(),\n appointNode: null\n };\n },\n watch: {\n dialogVisible(val, oldVal) {\n if (!val && oldVal) {\n this.$bus.$emit('endTextEdit');\n }\n }\n },\n created() {\n this.$bus.$on('node_active', this.handleNodeActive);\n this.$bus.$on('showNodeNote', this.handleShowNodeNote);\n },\n beforeDestroy() {\n this.$bus.$off('node_active', this.handleNodeActive);\n this.$bus.$off('showNodeNote', this.handleShowNodeNote);\n },\n methods: {\n handleNodeActive(...args) {\n this.activeNodes = [...args[1]];\n this.updateNoteInfo();\n },\n updateNoteInfo() {\n if (this.activeNodes.length > 0) {\n let firstNode = this.activeNodes[0];\n this.note = firstNode.getData('note') || '';\n } else {\n this.note = '';\n }\n },\n handleShowNodeNote(node) {\n this.$bus.$emit('startTextEdit');\n if (node) {\n this.appointNode = node;\n this.note = node.getData('note') || '';\n }\n this.dialogVisible = true;\n this.$nextTick(() => {\n this.initEditor();\n });\n },\n initEditor() {\n if (!this.editor) {\n this.editor = new _toast_ui_editor__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n el: this.$refs.noteEditor,\n height: '500px',\n initialEditType: 'markdown',\n previewStyle: 'vertical'\n });\n }\n this.editor.setMarkdown(this.note);\n },\n cancel() {\n this.dialogVisible = false;\n if (this.appointNode) {\n this.appointNode = null;\n this.updateNoteInfo();\n }\n },\n confirm() {\n this.note = this.editor.getMarkdown();\n if (this.appointNode) {\n this.appointNode.setNote(this.note);\n } else {\n this.activeNodes.forEach(node => {\n node.setNote(this.note);\n });\n }\n this.cancel();\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeNote.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=script&lang=js":
/*!**************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=script&lang=js ***!
\**************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _toast_ui_editor_dist_toastui_editor_viewer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @toast-ui/editor/dist/toastui-editor-viewer */ \"./node_modules/@toast-ui/editor/dist/toastui-editor-viewer.js\");\n/* harmony import */ var _toast_ui_editor_dist_toastui_editor_viewer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_toast_ui_editor_dist_toastui_editor_viewer__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _toast_ui_editor_dist_toastui_editor_viewer_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @toast-ui/editor/dist/toastui-editor-viewer.css */ \"./node_modules/@toast-ui/editor/dist/toastui-editor-viewer.css\");\n/* harmony import */ var _toast_ui_editor_dist_toastui_editor_viewer_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_toast_ui_editor_dist_toastui_editor_viewer_css__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:53:54\n * @Desc: 节点备注内容显示\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'NodeNoteContentShow',\n inject: ['$bus'],\n props: {\n mindMap: {\n type: Object,\n default() {\n return null;\n }\n }\n },\n data() {\n return {\n editor: null,\n show: false,\n left: 0,\n top: 0,\n node: null\n };\n },\n created() {\n this.$bus.$on('showNoteContent', this.onShowNoteContent);\n this.$bus.$on('hideNoteContent', this.hideNoteContent);\n document.body.addEventListener('click', this.hideNoteContent);\n this.$bus.$on('node_active', this.hideNoteContent);\n this.$bus.$on('scale', this.onScale);\n this.$bus.$on('translate', this.onScale);\n this.$bus.$on('svg_mousedown', this.hideNoteContent);\n this.$bus.$on('expand_btn_click', this.hideNoteContent);\n },\n mounted() {\n this.mindMap.el.appendChild(this.$refs.noteContentViewer);\n this.initEditor();\n },\n beforeDestroy() {\n this.$bus.$off('showNoteContent', this.onShowNoteContent);\n this.$bus.$off('hideNoteContent', this.hideNoteContent);\n document.body.removeEventListener('click', this.hideNoteContent);\n this.$bus.$off('node_active', this.hideNoteContent);\n this.$bus.$off('scale', this.onScale);\n this.$bus.$off('translate', this.onScale);\n this.$bus.$off('svg_mousedown', this.hideNoteContent);\n this.$bus.$off('expand_btn_click', this.hideNoteContent);\n },\n methods: {\n // 显示备注浮层\n onShowNoteContent(content, left, top, node) {\n this.node = node;\n this.editor.setMarkdown(content);\n this.handleALink();\n this.updateNoteContentPosition(left, top);\n this.show = true;\n },\n // 超链接新窗口打开\n handleALink() {\n const list = this.$refs.noteContentViewer.querySelectorAll('a');\n Array.from(list).forEach(a => {\n a.setAttribute('target', '_blank');\n });\n },\n // 更新位置\n updateNoteContentPosition(left, top) {\n this.left = left;\n this.top = top;\n },\n // 画布缩放事件\n onScale() {\n if (!this.node || !this.show) return;\n const {\n left,\n top\n } = this.node.getNoteContentPosition();\n this.updateNoteContentPosition(left, top);\n },\n // 隐藏备注浮层\n hideNoteContent() {\n this.show = false;\n },\n // 初始化编辑器\n initEditor() {\n if (!this.editor) {\n this.editor = new _toast_ui_editor_dist_toastui_editor_viewer__WEBPACK_IMPORTED_MODULE_0___default.a({\n el: this.$refs.noteContentViewer\n });\n }\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeNoteContentShow.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=script&lang=js":
/*!*********************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=script&lang=js ***!
\*********************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Color */ \"./src/pages/Edit/components/Color.vue\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/config */ \"./src/config/index.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n Color: _Color__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n },\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n lineWidthList: _config__WEBPACK_IMPORTED_MODULE_2__[\"lineWidthList\"],\n show: false,\n showPanel: false,\n position: {\n left: 0,\n top: 0\n },\n styleConfig: {\n radius: 5,\n strokeWidth: 2,\n strokeColor: '#0984e3',\n strokeDasharray: '5,5',\n fill: 'rgba(9,132,227,0.05)'\n }\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapState\"])({\n isDark: state => state.localConfig.isDark,\n borderDasharrayList() {\n return _config__WEBPACK_IMPORTED_MODULE_2__[\"borderDasharrayList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_2__[\"borderDasharrayList\"].zh;\n }\n })\n },\n created() {\n this.mindMap.on('outer_frame_active', this.onOuterFrameActive);\n this.mindMap.on('scale', this.hide);\n this.mindMap.on('translate', this.hide);\n this.mindMap.on('svg_mousedown', this.hide);\n this.mindMap.on('expand_btn_click', this.hide);\n this.mindMap.on('outer_frame_delete', this.hide);\n },\n beforeDestroy() {\n this.mindMap.off('outer_frame_active', this.onOuterFrameActive);\n this.mindMap.off('scale', this.hide);\n this.mindMap.off('translate', this.hide);\n this.mindMap.off('svg_mousedown', this.hide);\n this.mindMap.off('expand_btn_click', this.hide);\n this.mindMap.off('outer_frame_delete', this.hide);\n },\n mounted() {\n document.body.appendChild(this.$refs.elRef);\n },\n methods: {\n onOuterFrameActive(el, parentNode, range) {\n // 取范围内第一个节点的外框样式\n const firstNode = parentNode.children[range[0]];\n const firstNodeOuterFrame = firstNode.getData('outerFrame');\n Object.keys(firstNodeOuterFrame).forEach(key => {\n this.styleConfig[key] = firstNodeOuterFrame[key];\n });\n // 获取外框的位置大小信息\n const {\n x,\n y,\n width\n } = el.rbox();\n this.position.left = x + width + 'px';\n this.position.top = y + 'px';\n this.show = true;\n },\n updateOuterFrame(key, val) {\n this.styleConfig[key] = val;\n this.mindMap.outerFrame.updateActiveOuterFrame({\n [key]: val\n });\n this.hide();\n },\n deleteOuterFrame() {\n this.mindMap.outerFrame.removeActiveOuterFrame();\n },\n hide() {\n this.show = false;\n this.showPanel = false;\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeOuterFrame.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeTag.vue?vue&type=script&lang=js":
/*!**************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeTag.vue?vue&type=script&lang=js ***!
\**************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! simple-mind-map/src/utils/index */ \"../simple-mind-map/src/utils/index.js\");\n/* harmony import */ var _mixins_domMode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/mixins/domMode */ \"./src/mixins/domMode.js\");\n\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:54:03\n * @Desc: 节点标签内容设置\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'NodeTag',\n inject: ['$bus'],\n mixins: [_mixins_domMode__WEBPACK_IMPORTED_MODULE_2__[\"default\"]],\n data() {\n return {\n dialogVisible: false,\n tagArr: [],\n tag: '',\n activeNodes: [],\n max: 5,\n isMobile: Object(simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_1__[\"isMobile\"])()\n };\n },\n watch: {\n dialogVisible(val, oldVal) {\n if (!val && oldVal) {\n this.$bus.$emit('endTextEdit');\n }\n }\n },\n created() {\n this.$bus.$on('node_active', this.handleNodeActive);\n this.$bus.$on('showNodeTag', this.handleShowNodeTag);\n },\n beforeDestroy() {\n this.$bus.$off('node_active', this.handleNodeActive);\n this.$bus.$off('showNodeTag', this.handleShowNodeTag);\n },\n methods: {\n generateColorByContent: simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_1__[\"generateColorByContent\"],\n handleNodeActive(...args) {\n this.activeNodes = [...args[1]];\n if (this.activeNodes.length > 0) {\n let firstNode = this.activeNodes[0];\n this.tagArr = firstNode.getData('tag') || [];\n } else {\n this.tagArr = [];\n this.tag = '';\n }\n },\n handleShowNodeTag() {\n this.$bus.$emit('startTextEdit');\n this.dialogVisible = true;\n },\n /**\n * @Author: 王林\n * @Date: 2021-06-24 21:48:14\n * @Desc: 添加\n */\n add() {\n const text = this.tag.trim();\n if (!text) return;\n this.tagArr.push(text);\n this.tag = '';\n },\n /**\n * @Author: 王林\n * @Date: 2021-06-24 21:57:53\n * @Desc: 删除\n */\n del(index) {\n this.tagArr.splice(index, 1);\n },\n /**\n * @Author: 王林\n * @Date: 2021-06-22 22:08:11\n * @Desc: 取消\n */\n cancel() {\n this.dialogVisible = false;\n },\n /**\n * @Author: 王林\n * @Date: 2021-06-06 22:28:20\n * @Desc: 确定\n */\n confirm() {\n this.activeNodes.forEach(node => {\n node.setTag(this.tagArr);\n });\n this.cancel();\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeTag.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeTagStyle.vue?vue&type=script&lang=js":
/*!*******************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeTagStyle.vue?vue&type=script&lang=js ***!
\*******************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Color */ \"./src/pages/Edit/components/Color.vue\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n Color: _Color__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n },\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n show: false,\n position: {\n left: 0,\n top: 0\n },\n node: null,\n index: 0,\n text: '',\n fill: ''\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapState\"])({\n isDark: state => state.localConfig.isDark\n })\n },\n created() {\n this.mindMap.on('node_tag_click', this.onNodeTagClick);\n this.mindMap.on('scale', this.hide);\n this.mindMap.on('translate', this.hide);\n this.mindMap.on('svg_mousedown', this.hide);\n this.mindMap.on('expand_btn_click', this.hide);\n },\n beforeDestroy() {\n this.mindMap.off('node_tag_click', this.onNodeTagClick);\n this.mindMap.off('scale', this.hide);\n this.mindMap.off('translate', this.hide);\n this.mindMap.off('svg_mousedown', this.hide);\n this.mindMap.off('expand_btn_click', this.hide);\n },\n mounted() {\n document.body.appendChild(this.$refs.elRef);\n },\n methods: {\n onNodeTagClick(node, tag, index, el) {\n this.node = node;\n this.index = index;\n if (typeof tag === 'string') {\n this.text = tag;\n } else {\n // v0.10.3+版本支持对象类型\n this.text = tag.text;\n this.fill = tag.style && tag.style.fill ? tag.style.fill : '';\n }\n // 获取外框的位置大小信息\n const {\n x,\n y,\n width,\n height\n } = el.rbox();\n const boxWidth = 260;\n const boxHeight = 152;\n let left = x + width / 2 - boxWidth / 2;\n if (left < 0) {\n left = 0;\n }\n if (left + boxWidth > window.innerWidth) {\n left = window.innerWidth - boxWidth;\n }\n this.position.left = left + 'px';\n let top = y + height + 5;\n if (top + boxHeight > window.innerHeight) {\n top = window.innerHeight - boxHeight;\n }\n this.position.top = top + 'px';\n this.show = true;\n },\n updateTagText() {\n const text = this.text.trim();\n if (!text) {\n return;\n }\n this.updateTagInfo({\n text\n });\n },\n updateTagFill(color) {\n this.updateTagInfo({\n style: {\n fill: color\n }\n });\n this.fill = color;\n },\n updateTagInfo({\n text,\n style\n }) {\n if (!this.node) return;\n const tagData = [...this.node.getData('tag')];\n let item = null;\n if (typeof tagData[this.index] === 'string') {\n item = {\n text: tagData[this.index],\n style: {}\n };\n } else {\n item = tagData[this.index];\n if (!item.style) {\n item.style = {};\n }\n }\n if (text) {\n item.text = text;\n }\n if (style) {\n Object.keys(style).forEach(key => {\n item.style[key] = style[key];\n });\n }\n tagData[this.index] = item;\n this.mindMap.execCommand('SET_NODE_TAG', this.node, tagData);\n },\n deleteTag() {\n if (!this.node) return;\n const tagData = [...this.node.getData('tag')];\n tagData.splice(this.index, 1);\n this.mindMap.execCommand('SET_NODE_TAG', this.node, tagData);\n this.hide();\n },\n hide() {\n this.show = false;\n this.node = null;\n this.index = 0;\n this.text = '';\n this.fill = '';\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeTagStyle.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Outline.vue?vue&type=script&lang=js":
/*!**************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Outline.vue?vue&type=script&lang=js ***!
\**************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! simple-mind-map/src/utils */ \"../simple-mind-map/src/utils/index.js\");\n\n\n\n// 大纲树\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Outline',\n inject: ['$bus'],\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n data: [],\n defaultProps: {\n label: 'label'\n },\n currentData: null,\n notHandleDataChange: false,\n isHandleNodeTreeRenderEnd: false,\n beInsertNodeUid: '',\n insertType: '',\n isInTreArea: false,\n isAfterCreateNewNode: false\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapState\"])({\n isReadonly: state => state.isReadonly,\n isDark: state => state.localConfig.isDark\n })\n },\n created() {\n window.addEventListener('keydown', this.onKeyDown);\n this.$bus.$on('data_change', this.handleDataChange);\n this.$bus.$on('node_tree_render_end', this.handleNodeTreeRenderEnd);\n this.$bus.$on('hide_text_edit', this.handleHideTextEdit);\n },\n mounted() {\n this.refresh();\n },\n beforeDestroy() {\n window.removeEventListener('keydown', this.onKeyDown);\n this.$bus.$off('data_change', this.handleDataChange);\n this.$bus.$off('node_tree_render_end', this.handleNodeTreeRenderEnd);\n this.$bus.$off('hide_text_edit', this.handleHideTextEdit);\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapMutations\"])(['setIsDragOutlineTreeNode']),\n handleHideTextEdit() {\n if (this.notHandleDataChange) {\n this.notHandleDataChange = false;\n this.refresh();\n }\n },\n handleDataChange() {\n // 在大纲里操作节点时不要响应该事件,否则会重新刷新树\n if (this.notHandleDataChange) {\n this.notHandleDataChange = false;\n this.isAfterCreateNewNode = false;\n return;\n }\n if (this.isAfterCreateNewNode) {\n this.isAfterCreateNewNode = false;\n return;\n }\n this.refresh();\n },\n handleNodeTreeRenderEnd() {\n // 当前存在未完成的节点插入操作\n if (this.insertType) {\n this[this.insertType]();\n this.insertType = '';\n return;\n }\n // 插入了新节点后需要做一些操作\n if (this.isHandleNodeTreeRenderEnd) {\n this.isHandleNodeTreeRenderEnd = false;\n this.refresh();\n this.$nextTick(() => {\n this.afterCreateNewNode();\n });\n }\n },\n // 刷新树数据\n refresh() {\n let data = this.mindMap.getData();\n data.root = true; // 标记根节点\n let walk = root => {\n let text = root.data.richText ? Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_1__[\"nodeRichTextToTextWithWrap\"])(root.data.text) : root.data.text;\n text = Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_1__[\"htmlEscape\"])(text);\n text = text.replace(/\\n/g, '<br>');\n root.textCache = text; // 保存一份修改前的数据,用于对比是否修改了\n root.label = text;\n root.uid = root.data.uid;\n if (root.children && root.children.length > 0) {\n root.children.forEach(item => {\n walk(item);\n });\n }\n };\n walk(data);\n this.data = [data];\n },\n // 插入了新节点之后\n afterCreateNewNode() {\n // 如果是新插入节点,那么需要手动高亮该节点、定位该节点及聚焦\n let id = this.beInsertNodeUid;\n if (id && this.$refs.tree) {\n try {\n this.isAfterCreateNewNode = true;\n // 高亮树节点\n this.$refs.tree.setCurrentKey(id);\n let node = this.$refs.tree.getNode(id);\n this.onCurrentChange(node.data);\n // 定位该节点\n this.onClick(node.data);\n // 聚焦该树节点的编辑框\n const el = document.querySelector(`.customNode[data-id=\"${id}\"] .nodeEdit`);\n if (el) {\n let selection = window.getSelection();\n let range = document.createRange();\n range.selectNodeContents(el);\n selection.removeAllRanges();\n selection.addRange(range);\n let offsetTop = el.offsetTop;\n this.$emit('scrollTo', offsetTop);\n }\n } catch (error) {\n console.log(error);\n }\n }\n this.beInsertNodeUid = '';\n },\n // 根节点不允许拖拽\n checkAllowDrag(node) {\n return !node.data.root;\n },\n // 失去焦点更新节点文本\n onBlur(e, node) {\n // 节点数据没有修改\n if (node.data.textCache === e.target.innerHTML) {\n // 如果存在未执行的插入新节点操作,那么直接执行\n if (this.insertType) {\n this[this.insertType]();\n this.insertType = '';\n }\n return;\n }\n // 否则插入新节点操作需要等待当前修改事件渲染完成后再执行\n const richText = node.data.data.richText;\n const text = richText ? e.target.innerHTML : e.target.innerText;\n const targetNode = this.mindMap.renderer.findNodeByUid(node.data.uid);\n if (!targetNode) return;\n this.notHandleDataChange = true;\n if (richText) {\n targetNode.setText(Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_1__[\"textToNodeRichTextWithWrap\"])(text), true);\n } else {\n targetNode.setText(text);\n }\n },\n // 拦截粘贴事件\n onPaste(e) {\n Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_1__[\"handleInputPasteText\"])(e);\n },\n // 生成唯一的key\n getKey() {\n return Math.random();\n },\n // 节点输入区域按键事件\n onNodeInputKeydown(e) {\n if (e.keyCode === 13 && !e.shiftKey) {\n // 插入兄弟节点\n e.preventDefault();\n this.insertType = 'insertNode';\n e.target.blur();\n }\n if (e.keyCode === 9) {\n e.preventDefault();\n if (e.shiftKey) {\n // 节点上升一级\n this.insertType = 'moveUp';\n e.target.blur();\n } else {\n // 插入子节点\n this.insertType = 'insertChildNode';\n e.target.blur();\n }\n }\n },\n // 节点上移一个层级\n moveUp() {\n this.mindMap.execCommand('MOVE_UP_ONE_LEVEL');\n },\n // 插入兄弟节点\n insertNode() {\n this.notHandleDataChange = true;\n this.isHandleNodeTreeRenderEnd = true;\n this.beInsertNodeUid = Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_1__[\"createUid\"])();\n this.mindMap.execCommand('INSERT_NODE', false, [], {\n uid: this.beInsertNodeUid\n });\n },\n // 插入下级节点\n insertChildNode() {\n this.notHandleDataChange = true;\n this.isHandleNodeTreeRenderEnd = true;\n this.beInsertNodeUid = Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_1__[\"createUid\"])();\n this.mindMap.execCommand('INSERT_CHILD_NODE', false, [], {\n uid: this.beInsertNodeUid\n });\n },\n // 激活当前节点且移动当前节点到画布中间\n onClick(data) {\n this.notHandleDataChange = true;\n const targetNode = this.mindMap.renderer.findNodeByUid(data.uid);\n if (targetNode && targetNode.nodeData.data.isActive) return;\n this.mindMap.execCommand('GO_TARGET_NODE', data.uid, () => {\n this.notHandleDataChange = false;\n });\n },\n onNodeDragStart() {\n this.setIsDragOutlineTreeNode(true);\n },\n onNodeDragEnd() {\n this.setIsDragOutlineTreeNode(false);\n },\n // 拖拽结束事件\n onNodeDrop(data, target, postion) {\n this.notHandleDataChange = true;\n const node = this.mindMap.renderer.findNodeByUid(data.data.uid);\n const targetNode = this.mindMap.renderer.findNodeByUid(target.data.uid);\n if (!node || !targetNode) {\n return;\n }\n switch (postion) {\n case 'before':\n this.mindMap.execCommand('INSERT_BEFORE', node, targetNode);\n break;\n case 'after':\n this.mindMap.execCommand('INSERT_AFTER', node, targetNode);\n break;\n case 'inner':\n this.mindMap.execCommand('MOVE_NODE_TO', node, targetNode);\n break;\n default:\n break;\n }\n },\n // 当前选中的树节点变化事件\n onCurrentChange(data) {\n this.currentData = data;\n },\n // 删除节点\n onKeyDown(e) {\n if (!this.isInTreArea) return;\n if ([46, 8].includes(e.keyCode) && this.currentData) {\n e.stopPropagation();\n this.mindMap.renderer.textEdit.hideEditTextBox();\n const node = this.mindMap.renderer.findNodeByUid(this.currentData.uid);\n if (node && !node.isRoot) {\n this.notHandleDataChange = true;\n this.$refs.tree.remove(this.currentData);\n this.mindMap.execCommand('REMOVE_NODE', [node]);\n }\n }\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Outline.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OutlineEdit.vue?vue&type=script&lang=js":
/*!******************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/OutlineEdit.vue?vue&type=script&lang=js ***!
\******************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! simple-mind-map/src/utils */ \"../simple-mind-map/src/utils/index.js\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/api */ \"./src/api/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils */ \"./src/utils/index.js\");\n\n\n\n\n\n\n// 大纲侧边栏\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'OutlineEdit',\n inject: ['$bus'],\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n data: [],\n defaultProps: {\n label: 'label'\n },\n currentData: null\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapState\"])({\n isReadonly: state => state.isReadonly,\n isDark: state => state.localConfig.isDark,\n isOutlineEdit: state => state.isOutlineEdit\n })\n },\n watch: {\n isOutlineEdit(val) {\n if (val) {\n this.refresh();\n this.$nextTick(() => {\n document.body.appendChild(this.$refs.outlineEditContainer);\n });\n }\n }\n },\n created() {\n window.addEventListener('keydown', this.onKeyDown);\n },\n beforeDestroy() {\n window.removeEventListener('keydown', this.onKeyDown);\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapMutations\"])(['setIsOutlineEdit']),\n // 刷新树数据\n refresh() {\n let data = this.mindMap.getData();\n data.root = true; // 标记根节点\n let walk = root => {\n let text = root.data.richText ? Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_2__[\"nodeRichTextToTextWithWrap\"])(root.data.text) : root.data.text;\n text = Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_2__[\"htmlEscape\"])(text);\n text = text.replace(/\\n/g, '<br>');\n root.textCache = text; // 保存一份修改前的数据,用于对比是否修改了\n root.label = text;\n root.uid = root.data.uid;\n if (root.children && root.children.length > 0) {\n root.children.forEach(item => {\n walk(item);\n });\n }\n };\n walk(data);\n this.data = [data];\n },\n // 根节点不允许拖拽\n checkAllowDrag(node) {\n return !node.data.root;\n },\n // 拖拽结束事件\n onNodeDrop() {\n this.save();\n },\n // 当前选中的树节点变化事件\n onCurrentChange(data) {\n this.currentData = data;\n },\n // 失去焦点更新节点文本\n onBlur(e, node) {\n // 节点数据没有修改\n if (node.data.textCache === e.target.innerHTML) {\n return;\n }\n const richText = node.data.data.richText;\n const text = richText ? e.target.innerHTML : e.target.innerText;\n node.data.data.text = richText ? Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_2__[\"textToNodeRichTextWithWrap\"])(text) : text;\n node.data.textCache = e.target.innerHTML;\n this.save();\n },\n // 节点输入区域按键事件\n onNodeInputKeydown(e, node) {\n const richText = !!node.data.data.richText;\n const uid = Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_2__[\"createUid\"])();\n const text = this.$t('outline.nodeDefaultText');\n const data = {\n textCache: text,\n uid,\n label: text,\n data: {\n text: richText ? Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_2__[\"textToNodeRichTextWithWrap\"])(text) : text,\n uid,\n richText\n },\n children: []\n };\n if (e.keyCode === 13 && !e.shiftKey) {\n e.preventDefault();\n if (node.data.root) {\n return;\n }\n this.$refs.tree.insertAfter(data, node);\n }\n if (e.keyCode === 9) {\n e.preventDefault();\n if (e.shiftKey) {\n // 上移一个层级\n this.$refs.tree.insertAfter(node.data, node.parent);\n this.$refs.tree.remove(node);\n } else {\n this.$refs.tree.append(data, node);\n }\n }\n this.save();\n this.$nextTick(() => {\n this.$refs.tree.setCurrentKey(uid);\n const el = document.querySelector(`.customNode[data-id=\"${uid}\"] .nodeEdit`);\n if (el) {\n let selection = window.getSelection();\n let range = document.createRange();\n range.selectNodeContents(el);\n selection.removeAllRanges();\n selection.addRange(range);\n let offsetTop = el.offsetTop;\n this.scrollTo(offsetTop);\n }\n });\n },\n // 删除节点\n onKeyDown(e) {\n if (!this.isOutlineEdit) return;\n if ([46, 8].includes(e.keyCode) && this.currentData) {\n e.stopPropagation();\n this.$refs.tree.remove(this.currentData);\n this.currentData = null;\n this.save();\n }\n },\n // 拦截粘贴事件\n onPaste(e) {\n Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_2__[\"handleInputPasteText\"])(e);\n },\n // 生成唯一的key\n getKey() {\n return Math.random();\n },\n // 打印\n onPrint() {\n Object(_utils__WEBPACK_IMPORTED_MODULE_4__[\"printOutline\"])(this.$refs.outlineEditBox);\n },\n // 关闭\n onClose() {\n this.setIsOutlineEdit(false);\n this.$bus.$emit('setData', this.getData());\n },\n // 滚动\n scrollTo(y) {\n let container = this.$refs.outlineEditBox;\n let height = container.offsetHeight;\n let top = container.scrollTop;\n y += 50;\n if (y > top + height) {\n container.scrollTo(0, y - height / 2);\n }\n },\n // 获取思维导图数据\n getData() {\n let newNode = {};\n let node = this.data[0];\n let walk = (root, newRoot) => {\n newRoot.data = root.data;\n newRoot.children = [];\n (root.children || []).forEach(child => {\n const newChild = {};\n newRoot.children.push(newChild);\n walk(child, newChild);\n });\n };\n walk(node, newNode);\n return Object(simple_mind_map_src_utils__WEBPACK_IMPORTED_MODULE_2__[\"simpleDeepClone\"])(newNode);\n },\n // 保存\n save() {\n Object(_api__WEBPACK_IMPORTED_MODULE_3__[\"storeData\"])(this.getData());\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OutlineEdit.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OutlineSidebar.vue?vue&type=script&lang=js":
/*!*********************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/OutlineSidebar.vue?vue&type=script&lang=js ***!
\*********************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Sidebar */ \"./src/pages/Edit/components/Sidebar.vue\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _Outline_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Outline.vue */ \"./src/pages/Edit/components/Outline.vue\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils */ \"./src/utils/index.js\");\n\n\n\n\n\n// 大纲侧边栏\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'OutlineSidebar',\n inject: ['$bus'],\n components: {\n Sidebar: _Sidebar__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n Outline: _Outline_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n },\n props: {\n mindMap: {\n type: Object\n }\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapState\"])({\n isDark: state => state.localConfig.isDark,\n activeSidebar: state => state.activeSidebar\n })\n },\n watch: {\n activeSidebar(val) {\n if (val === 'outline') {\n this.$refs.sidebar.show = true;\n } else {\n this.$refs.sidebar.show = false;\n }\n }\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapMutations\"])(['setIsOutlineEdit', 'setActiveSidebar']),\n onChangeToOutlineEdit() {\n this.setActiveSidebar('');\n this.setIsOutlineEdit(true);\n },\n onScrollTo(y) {\n let container = this.$refs.sidebar.getEl();\n let height = container.offsetHeight;\n let top = container.scrollTop;\n if (y > top + height) {\n container.scrollTo(0, y - height / 2);\n }\n },\n // 打印\n onPrint() {\n Object(_utils__WEBPACK_IMPORTED_MODULE_3__[\"printOutline\"])(this.$refs.outlineRef.$el);\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OutlineSidebar.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/RichTextToolbar.vue?vue&type=script&lang=js":
/*!**********************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/RichTextToolbar.vue?vue&type=script&lang=js ***!
\**********************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/config */ \"./src/config/index.js\");\n/* harmony import */ var _Color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Color */ \"./src/pages/Edit/components/Color.vue\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _mixins_domMode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/mixins/domMode */ \"./src/mixins/domMode.js\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n\n\n\n\nconst __default__ = {\n name: 'RichTextToolbar',\n inject: ['$bus'],\n mixins: [_mixins_domMode__WEBPACK_IMPORTED_MODULE_3__[\"default\"]],\n components: {\n Color: _Color__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n fontSizeList: _config__WEBPACK_IMPORTED_MODULE_0__[\"fontSizeList\"],\n showRichTextToolbar: false,\n style: {\n left: 0,\n top: 0\n },\n fontColor: '',\n fontBackgroundColor: '',\n formatInfo: {}\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_2__[\"mapState\"])({\n isDark: state => state.localConfig.isDark,\n injectConfig: state => state.injectConfig\n }),\n fontFamilyList() {\n return _config__WEBPACK_IMPORTED_MODULE_0__[\"fontFamilyList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_0__[\"fontFamilyList\"].zh;\n },\n alignList() {\n return _config__WEBPACK_IMPORTED_MODULE_0__[\"alignList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_0__[\"alignList\"].zh;\n },\n // MOC 模式下禁用富文本工具条\n isMocMode() {\n var _this$injectConfig;\n return ((_this$injectConfig = this.injectConfig) === null || _this$injectConfig === void 0 ? void 0 : _this$injectConfig.type) === 'sy-doctree-moc-dom';\n }\n },\n created() {\n this.$bus.$on('rich_text_selection_change', this.onRichTextSelectionChange);\n },\n mounted() {\n if (this.isDomMode) {\n // In dom mode, append to the container instead of body\n const container = this.$el.closest('.kmind-container');\n if (container) {\n container.appendChild(this.$refs.richTextToolbar);\n }\n } else {\n document.body.append(this.$refs.richTextToolbar);\n }\n },\n beforeDestroy() {\n this.$bus.$off('rich_text_selection_change', this.onRichTextSelectionChange);\n },\n methods: {\n onRichTextSelectionChange(hasRange, rect, formatInfo) {\n // MOC 模式不显示富文本工具条\n if (this.isMocMode) {\n this.showRichTextToolbar = false;\n return;\n }\n if (hasRange) {\n // 在 DOM 模式下,需要将视口坐标转换为相对于容器的坐标\n if (this.isDomMode) {\n const container = this.$el.closest('.kmind-container');\n if (container) {\n const containerRect = container.getBoundingClientRect();\n // 计算相对于容器的位置\n this.style.left = rect.left - containerRect.left + rect.width / 2 + 'px';\n this.style.top = rect.top - containerRect.top - 60 + 'px';\n } else {\n // 如果找不到容器,使用原始位置\n this.style.left = rect.left + rect.width / 2 + 'px';\n this.style.top = rect.top - 60 + 'px';\n }\n } else {\n // 在 iframe 模式下,使用 fixed 定位,直接使用视口坐标\n this.style.left = rect.left + rect.width / 2 + 'px';\n this.style.top = rect.top - 60 + 'px';\n }\n this.formatInfo = {\n ...(formatInfo || {})\n };\n }\n this.showRichTextToolbar = hasRange;\n },\n toggleBold() {\n this.formatInfo.bold = !this.formatInfo.bold;\n this.mindMap.richText.formatText({\n bold: this.formatInfo.bold\n });\n },\n toggleItalic() {\n this.formatInfo.italic = !this.formatInfo.italic;\n this.mindMap.richText.formatText({\n italic: this.formatInfo.italic\n });\n },\n toggleUnderline() {\n this.formatInfo.underline = !this.formatInfo.underline;\n this.mindMap.richText.formatText({\n underline: this.formatInfo.underline\n });\n },\n toggleStrike() {\n this.formatInfo.strike = !this.formatInfo.strike;\n this.mindMap.richText.formatText({\n strike: this.formatInfo.strike\n });\n },\n changeFontFamily(font) {\n this.formatInfo.font = font;\n this.mindMap.richText.formatText({\n font\n });\n },\n changeFontSize(size) {\n this.formatInfo.size = size;\n this.mindMap.richText.formatText({\n size: size + 'px'\n });\n },\n changeFontColor(color) {\n this.formatInfo.color = color;\n this.mindMap.richText.formatText({\n color\n });\n },\n changeFontBackgroundColor(background) {\n this.formatInfo.background = background;\n this.mindMap.richText.formatText({\n background\n });\n },\n changeTextAlign(align) {\n this.formatInfo.align = align;\n this.mindMap.richText.formatText({\n align\n });\n },\n removeFormat() {\n this.mindMap.richText.removeFormat();\n }\n }\n};\n\nconst __injectCSSVars__ = () => {\n Object(vue__WEBPACK_IMPORTED_MODULE_4__[\"useCssVars\"])((_vm, _setup) => ({\n \"06888dac-positionMode\": _vm.positionMode\n }));\n};\nconst __setup__ = __default__.setup;\n__default__.setup = __setup__ ? (props, ctx) => {\n __injectCSSVars__();\n return __setup__(props, ctx);\n} : __injectCSSVars__;\n/* harmony default export */ __webpack_exports__[\"default\"] = (__default__);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/RichTextToolbar.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Scale.vue?vue&type=script&lang=js":
/*!************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Scale.vue?vue&type=script&lang=js ***!
\************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:53:10\n * @Desc: 放大缩小\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Scale',\n props: {\n mindMap: {\n type: Object\n },\n isDark: {\n type: Boolean\n }\n },\n data() {\n return {\n scaleNum: 100,\n cacheScaleNum: 0\n };\n },\n watch: {\n mindMap(val, oldVal) {\n if (val && !oldVal) {\n this.mindMap.on('scale', this.onScale);\n this.mindMap.on('draw_click', this.onDrawClick);\n this.scaleNum = this.toPer(this.mindMap.view.scale);\n }\n }\n },\n beforeDestroy() {\n var _this$mindMap, _this$mindMap2;\n (_this$mindMap = this.mindMap) === null || _this$mindMap === void 0 || _this$mindMap.off('scale', this.onScale);\n (_this$mindMap2 = this.mindMap) === null || _this$mindMap2 === void 0 || _this$mindMap2.off('draw_click', this.onDrawClick);\n },\n methods: {\n // 转换成百分数\n toPer(scale) {\n return (scale * 100).toFixed(0);\n },\n // 缩小\n narrow() {\n this.mindMap.view.narrow();\n },\n // 放大\n enlarge() {\n this.mindMap.view.enlarge();\n },\n // 聚焦时缓存当前缩放倍数\n onScaleNumInputFocus() {\n this.cacheScaleNum = this.scaleNum;\n },\n // 禁止输入非数字\n onScaleNumInput() {\n this.scaleNum = this.scaleNum.replace(/[^0-9]+/g, '');\n },\n // 手动输入缩放倍数\n onScaleNumChange() {\n const scaleNum = Number(this.scaleNum);\n if (Number.isNaN(scaleNum) || scaleNum <= 0) {\n this.scaleNum = this.cacheScaleNum;\n } else {\n const cx = this.mindMap.width / 2;\n const cy = this.mindMap.height / 2;\n this.mindMap.view.setScale(this.scaleNum / 100, cx, cy);\n }\n },\n onScale(scale) {\n this.scaleNum = this.toPer(scale);\n },\n onDrawClick() {\n if (this.$refs.inputRef) this.$refs.inputRef.blur();\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Scale.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Scrollbar.vue?vue&type=script&lang=js":
/*!****************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Scrollbar.vue?vue&type=script&lang=js ***!
\****************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n inject: ['$bus'],\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n timer: null,\n resizeTimer: null,\n verticalScrollbarStyle: {},\n horizontalScrollbarStyle: {}\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapState\"])({\n isDark: state => state.localConfig.isDark\n })\n },\n mounted() {\n this.setScrollBarWrapSize();\n this.$bus.$on('scrollbar_change', this.updateScrollbar);\n window.addEventListener('resize', this.onResize);\n },\n beforeDestroy() {\n this.$bus.$off('scrollbar_change', this.updateScrollbar);\n window.removeEventListener('resize', this.onResize);\n },\n methods: {\n // 向插件传递滚动条宽高数据\n setScrollBarWrapSize() {\n if (!this.mindMap.scrollbar) return;\n const {\n width\n } = this.$refs.horizontalScrollbarRef.getBoundingClientRect();\n const {\n height\n } = this.$refs.verticalScrollbarRef.getBoundingClientRect();\n this.mindMap.scrollbar.setScrollBarWrapSize(width, height);\n },\n // 窗口尺寸变化\n onResize() {\n clearTimeout(this.resizeTimer);\n this.resizeTimer = setTimeout(() => {\n this.setScrollBarWrapSize();\n }, 300);\n },\n // 调用插件方法更新滚动条位置和大小\n updateScrollbar({\n vertical,\n horizontal\n }) {\n this.verticalScrollbarStyle = {\n top: vertical.top + '%',\n height: vertical.height + '%'\n };\n this.horizontalScrollbarStyle = {\n left: horizontal.left + '%',\n width: horizontal.width + '%'\n };\n },\n // 垂直滚动条按下事件调用插件方法\n onVerticalScrollbarMousedown(e) {\n this.mindMap.scrollbar.onMousedown(e, 'vertical');\n },\n // 垂直滚动条点击事件调用插件方法\n onVerticalScrollbarClick(e) {\n this.mindMap.scrollbar.onClick(e, 'vertical');\n },\n // 水平滚动条按下事件调用插件方法\n onHorizontalScrollbarMousedown(e) {\n this.mindMap.scrollbar.onMousedown(e, 'horizontal');\n },\n // 水平滚动条点击事件调用插件方法\n onHorizontalScrollbarClick(e) {\n this.mindMap.scrollbar.onClick(e, 'horizontal');\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Scrollbar.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Search.vue?vue&type=script&lang=js":
/*!*************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Search.vue?vue&type=script&lang=js ***!
\*************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_string_replace_all_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.string.replace-all.js */ \"./node_modules/core-js/modules/es.string.replace-all.js\");\n/* harmony import */ var core_js_modules_es_string_replace_all_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_all_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! simple-mind-map/src/utils/index */ \"../simple-mind-map/src/utils/index.js\");\n/* harmony import */ var _mixins_domMode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/mixins/domMode */ \"./src/mixins/domMode.js\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n\n\n\n\n\n// 搜索替换\nconst __default__ = {\n mixins: [_mixins_domMode__WEBPACK_IMPORTED_MODULE_3__[\"default\"]],\n name: 'Search',\n inject: ['$bus'],\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n show: false,\n searchText: '',\n replaceText: '',\n showReplaceInput: false,\n currentIndex: 0,\n total: 0,\n showSearchInfo: false,\n searchResultListHeight: 0,\n searchResultList: [],\n showSearchResultList: false\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapState\"])({\n isReadonly: state => state.isReadonly,\n isDark: state => state.localConfig.isDark\n }),\n initialRightPosition() {\n // 在插件模式下,确保搜索框完全隐藏在容器外\n return this.isDomMode ? '-400px' : '-296px';\n }\n },\n watch: {\n searchText() {\n if (Object(simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_2__[\"isUndef\"])(this.searchText)) {\n this.currentIndex = 0;\n this.total = 0;\n this.showSearchInfo = false;\n }\n }\n },\n created() {\n this.$bus.$on('show_search', this.showSearch);\n this.mindMap.on('search_info_change', this.handleSearchInfoChange);\n this.mindMap.on('node_click', this.blur);\n this.mindMap.on('draw_click', this.blur);\n this.mindMap.on('expand_btn_click', this.blur);\n this.mindMap.on('search_match_node_list_change', this.onSearchMatchNodeListChange);\n this.mindMap.keyCommand.addShortcut('Control+f', this.showSearch);\n window.addEventListener('resize', this.setSearchResultListHeight);\n this.$bus.$on('setData', this.close);\n },\n mounted() {\n this.setSearchResultListHeight();\n },\n beforeDestroy() {\n this.$bus.$off('show_search', this.showSearch);\n this.mindMap.off('search_info_change', this.handleSearchInfoChange);\n this.mindMap.off('node_click', this.blur);\n this.mindMap.off('draw_click', this.blur);\n this.mindMap.off('expand_btn_click', this.blur);\n this.mindMap.off('search_match_node_list_change', this.onSearchMatchNodeListChange);\n this.mindMap.keyCommand.removeShortcut('Control+f', this.showSearch);\n window.removeEventListener('resize', this.setSearchResultListHeight);\n this.$bus.$off('setData', this.close);\n },\n methods: {\n isUndef: simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_2__[\"isUndef\"],\n handleSearchInfoChange(data) {\n this.currentIndex = data.currentIndex + 1;\n this.total = data.total;\n this.showSearchInfo = true;\n },\n showSearch() {\n this.$bus.$emit('closeSideBar');\n this.show = true;\n // 等待 DOM 更新和动画完成后自动聚焦到搜索输入框\n this.$nextTick(() => {\n // 使用 setTimeout 确保动画完成后再聚焦\n setTimeout(() => {\n if (this.$refs.searchInputRef) {\n this.$refs.searchInputRef.focus();\n }\n }, 100);\n });\n },\n hideReplaceInput() {\n this.showReplaceInput = false;\n this.replaceText = '';\n },\n // 输入框聚焦时,禁止思维导图节点响应按键事件自动进入文本编辑\n onFocus() {\n this.mindMap.updateConfig({\n enableAutoEnterTextEditWhenKeydown: false\n });\n },\n // 输入框失焦时恢复\n onBlur() {\n this.mindMap.updateConfig({\n enableAutoEnterTextEditWhenKeydown: true\n });\n },\n // 画布,节点点击时让输入框失焦\n blur() {\n if (this.$refs.searchInputRef) {\n this.$refs.searchInputRef.blur();\n }\n if (this.$refs.replaceInputRef) {\n this.$refs.replaceInputRef.blur();\n }\n },\n onSearchNext() {\n this.showSearchResultList = true;\n this.mindMap.search.search(this.searchText);\n },\n replace() {\n this.mindMap.search.replace(this.replaceText, true);\n },\n replaceAll() {\n this.mindMap.search.replaceAll(this.replaceText);\n },\n close() {\n this.show = false;\n this.showSearchResultList = false;\n this.showSearchInfo = false;\n this.total = 0;\n this.currentIndex = 0;\n this.searchText = '';\n this.hideReplaceInput();\n this.mindMap.search.endSearch();\n },\n onSearchMatchNodeListChange(list) {\n this.searchResultList = list.map(item => {\n const data = item.data || item.nodeData.data;\n let name = data.text;\n const id = data.uid;\n if (data.richText) {\n name = Object(simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_2__[\"getTextFromHtml\"])(name);\n }\n const reg = new RegExp(`${this.searchText.trim()}`, 'g');\n const text = name.replace(reg, a => {\n return `<span class=\"match\">${a}</span>`;\n });\n return {\n data: item,\n id,\n text,\n name\n };\n });\n },\n setSearchResultListHeight() {\n this.searchResultListHeight = window.innerHeight - 267 - 24;\n },\n onSearchResultItemClick(index) {\n this.mindMap.search.jump(index);\n }\n }\n};\n\nconst __injectCSSVars__ = () => {\n Object(vue__WEBPACK_IMPORTED_MODULE_4__[\"useCssVars\"])((_vm, _setup) => ({\n \"2f3913c0-positionMode\": _vm.positionMode,\n \"2f3913c0-initialRightPosition\": _vm.initialRightPosition\n }));\n};\nconst __setup__ = __default__.setup;\n__default__.setup = __setup__ ? (props, ctx) => {\n __injectCSSVars__();\n return __setup__(props, ctx);\n} : __injectCSSVars__;\n/* harmony default export */ __webpack_exports__[\"default\"] = (__default__);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Search.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Setting.vue?vue&type=script&lang=js":
/*!**************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Setting.vue?vue&type=script&lang=js ***!
\**************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Sidebar */ \"./src/pages/Edit/components/Sidebar.vue\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/api */ \"./src/api/index.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _Color__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Color */ \"./src/pages/Edit/components/Color.vue\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n inject: ['$bus'],\n components: {\n Sidebar: _Sidebar__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n Color: _Color__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n props: {\n data: {\n type: [Object, null],\n default: null\n },\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n config: {\n openPerformance: false,\n enableFreeDrag: false,\n mousewheelAction: 'zoom',\n mousewheelZoomActionReverse: false,\n createNewNodeBehavior: 'default',\n openRealtimeRenderOnNodeTextEdit: true,\n alwaysShowExpandBtn: false,\n enableAutoEnterTextEditWhenKeydown: true,\n imgTextMargin: 0,\n textContentMargin: 0,\n enableInheritAncestorLineStyle: false\n },\n watermarkConfig: {\n show: false,\n onlyExport: false,\n text: '',\n lineSpacing: 100,\n textSpacing: 100,\n angle: 30,\n textStyle: {\n color: '',\n opacity: 0,\n fontSize: 1\n }\n },\n updateWatermarkTimer: null,\n enableNodeRichText: true,\n localConfigs: {\n isShowScrollbar: false,\n isUseHandDrawnLikeStyle: false,\n isUseMomentum: false,\n enableDragImport: false\n }\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_2__[\"mapState\"])({\n activeSidebar: state => state.activeSidebar,\n localConfig: state => state.localConfig,\n isDark: state => state.localConfig.isDark,\n supportHandDrawnLikeStyle: state => state.supportHandDrawnLikeStyle,\n supportMomentum: state => state.supportMomentum\n })\n },\n watch: {\n activeSidebar(val) {\n if (val === 'setting') {\n this.$refs.sidebar.show = true;\n this.initConfig();\n this.initWatermark();\n } else {\n this.$refs.sidebar.show = false;\n }\n }\n },\n created() {\n this.initLoacalConfig();\n this.$bus.$on('toggleOpenNodeRichText', this.onToggleOpenNodeRichText);\n },\n beforeDestroy() {\n this.$bus.$off('toggleOpenNodeRichText', this.onToggleOpenNodeRichText);\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_2__[\"mapMutations\"])(['setLocalConfig']),\n // 初始化其他配置\n initConfig() {\n Object.keys(this.config).forEach(key => {\n this.config[key] = this.mindMap.getConfig(key);\n });\n },\n // 初始化本地配置\n initLoacalConfig() {\n this.enableNodeRichText = this.localConfig.openNodeRichText;\n this.mousewheelAction = this.localConfig.mousewheelAction;\n this.mousewheelZoomActionReverse = this.localConfig.mousewheelZoomActionReverse;\n Object.keys(this.localConfigs).forEach(key => {\n this.localConfigs[key] = this.localConfig[key];\n });\n },\n // 初始化水印配置\n initWatermark() {\n const config = this.mindMap.getConfig('watermarkConfig');\n ['text', 'lineSpacing', 'textSpacing', 'angle', 'onlyExport'].forEach(key => {\n this.watermarkConfig[key] = config[key];\n });\n this.watermarkConfig.show = !!config.text;\n this.watermarkConfig.textStyle = {\n ...config.textStyle\n };\n },\n // 更新其他配置\n updateOtherConfig(key, value) {\n this.mindMap.updateConfig({\n [key]: value\n });\n this.data.config = this.data.config || {};\n this.data.config[key] = value;\n Object(_api__WEBPACK_IMPORTED_MODULE_1__[\"storeConfig\"])({\n config: this.data.config\n });\n if (['alwaysShowExpandBtn', 'imgTextMargin', 'textContentMargin', 'enableInheritAncestorLineStyle'].includes(key)) {\n this.mindMap.reRender();\n }\n },\n // 更新水印配置\n updateWatermarkConfig() {\n clearTimeout(this.updateWatermarkTimer);\n this.updateWatermarkTimer = setTimeout(() => {\n let {\n show,\n ...config\n } = this.watermarkConfig;\n this.mindMap.watermark.updateWatermark({\n ...config\n });\n this.data.config = this.data.config || {};\n this.data.config.watermarkConfig = this.mindMap.getConfig('watermarkConfig');\n Object(_api__WEBPACK_IMPORTED_MODULE_1__[\"storeConfig\"])({\n config: this.data.config\n });\n }, 300);\n },\n // 切换显示水印与否\n watermarkShowChange(value) {\n if (value) {\n let text = this.watermarkConfig.text || this.$t('setting.watermarkDefaultText');\n this.watermarkConfig.text = text;\n } else {\n this.watermarkConfig.text = '';\n }\n this.updateWatermarkConfig();\n },\n // 切换是否开启节点富文本编辑\n enableNodeRichTextChange(e) {\n this.$confirm(this.$t('setting.changeRichTextTip'), e ? this.$t('setting.changeRichTextTip2') : this.$t('setting.changeRichTextTip3'), {\n confirmButtonText: this.$t('setting.confirm'),\n cancelButtonText: this.$t('setting.cancel'),\n type: 'warning'\n }).then(() => {\n this.mindMap.renderer.textEdit.hideEditTextBox();\n this.setLocalConfig({\n openNodeRichText: e\n });\n }).catch(() => {\n this.enableNodeRichText = !this.enableNodeRichText;\n });\n },\n onToggleOpenNodeRichText(val) {\n this.setLocalConfig({\n openNodeRichText: val\n });\n this.enableNodeRichText = val;\n },\n // 本地配置\n updateLocalConfig(key, value) {\n this.setLocalConfig({\n [key]: value\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Setting.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/ShortcutKey.vue?vue&type=script&lang=js":
/*!******************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/ShortcutKey.vue?vue&type=script&lang=js ***!
\******************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Sidebar */ \"./src/pages/Edit/components/Sidebar.vue\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/config */ \"./src/config/index.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:54:14\n * @Desc: 快捷键\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'ShortcutKey',\n components: {\n Sidebar: _Sidebar__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n },\n data() {\n return {};\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_2__[\"mapState\"])({\n isDark: state => state.localConfig.isDark,\n activeSidebar: state => state.activeSidebar\n }),\n shortcutKeyList() {\n return _config__WEBPACK_IMPORTED_MODULE_1__[\"shortcutKeyList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_1__[\"shortcutKeyList\"].zh;\n }\n },\n watch: {\n activeSidebar(val) {\n if (val === 'shortcutKey') {\n this.$refs.sidebar.show = true;\n } else {\n this.$refs.sidebar.show = false;\n }\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/ShortcutKey.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Sidebar.vue?vue&type=script&lang=js":
/*!**************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Sidebar.vue?vue&type=script&lang=js ***!
\**************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/config */ \"./src/config/index.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _mixins_domMode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/mixins/domMode */ \"./src/mixins/domMode.js\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:54:25\n * @Desc: 侧边栏容器\n */\nconst __default__ = {\n name: 'Sidebar',\n mixins: [_mixins_domMode__WEBPACK_IMPORTED_MODULE_2__[\"default\"]],\n inject: ['$bus'],\n props: {\n title: {\n type: String,\n default: ''\n }\n },\n data() {\n return {\n show: false,\n zIndex: 0\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapState\"])({\n isDark: state => state.localConfig.isDark\n })\n },\n watch: {\n show(val, oldVal) {\n if (val && !oldVal) {\n this.zIndex = _config__WEBPACK_IMPORTED_MODULE_0__[\"store\"].sidebarZIndex++;\n }\n }\n },\n created() {\n this.$bus.$on('closeSideBar', this.handleCloseSidebar);\n },\n beforeDestroy() {\n this.$bus.$off('closeSideBar', this.handleCloseSidebar);\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_1__[\"mapMutations\"])(['setActiveSidebar']),\n handleCloseSidebar() {\n this.close();\n },\n close() {\n this.show = false;\n this.setActiveSidebar('');\n },\n getEl() {\n return this.$refs.sidebarContent;\n }\n }\n};\n\nconst __injectCSSVars__ = () => {\n Object(vue__WEBPACK_IMPORTED_MODULE_3__[\"useCssVars\"])((_vm, _setup) => ({\n \"7b9adf18-positionMode\": _vm.positionMode\n }));\n};\nconst __setup__ = __default__.setup;\n__default__.setup = __setup__ ? (props, ctx) => {\n __injectCSSVars__();\n return __setup__(props, ctx);\n} : __injectCSSVars__;\n/* harmony default export */ __webpack_exports__[\"default\"] = (__default__);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Sidebar.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/SidebarTrigger.vue?vue&type=script&lang=js":
/*!*********************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/SidebarTrigger.vue?vue&type=script&lang=js ***!
\*********************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/config */ \"./src/config/index.js\");\n/* harmony import */ var _mixins_domMode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/mixins/domMode */ \"./src/mixins/domMode.js\");\n/* harmony import */ var _icons_ant_design_highlight_outlined__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~icons/ant-design/highlight-outlined */ \"./_virtual_~icons%2Fant-design%2Fhighlight-outlined\");\n/* harmony import */ var _icons_fluent_mdl2_highlight_mapped_shapes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~icons/fluent-mdl2/highlight-mapped-shapes */ \"./_virtual_~icons%2Ffluent-mdl2%2Fhighlight-mapped-shapes\");\n/* harmony import */ var _icons_uil_game_structure__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~icons/uil/game-structure */ \"./_virtual_~icons%2Fuil%2Fgame-structure\");\n/* harmony import */ var _icons_ph_tree_structure_light__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ~icons/ph/tree-structure-light */ \"./_virtual_~icons%2Fph%2Ftree-structure-light\");\n/* harmony import */ var _icons_clarity_tree_view_line__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ~icons/clarity/tree-view-line */ \"./_virtual_~icons%2Fclarity%2Ftree-view-line\");\n/* harmony import */ var _icons_mdi_keyboard_variant__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ~icons/mdi/keyboard-variant */ \"./_virtual_~icons%2Fmdi%2Fkeyboard-variant\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n\n\n\n\n\n\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:54:25\n * @Desc: 侧边栏触发器\n */\nconst __default__ = {\n name: 'SidebarTrigger',\n mixins: [_mixins_domMode__WEBPACK_IMPORTED_MODULE_2__[\"default\"]],\n components: {\n AntDesignHighlightOutlined: _icons_ant_design_highlight_outlined__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n FluentMdl2HighlightMappedShapes: _icons_fluent_mdl2_highlight_mapped_shapes__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n UilGameStructure: _icons_uil_game_structure__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n PhTreeStructureLight: _icons_ph_tree_structure_light__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n ClarityTreeViewLine: _icons_clarity_tree_view_line__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n MdiKeyboardVariant: _icons_mdi_keyboard_variant__WEBPACK_IMPORTED_MODULE_8__[\"default\"]\n },\n data() {\n return {\n show: true\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapState\"])({\n isDark: state => state.localConfig.isDark,\n activeSidebar: state => state.activeSidebar,\n isReadonly: state => state.isReadonly\n }),\n triggerList() {\n let list = _config__WEBPACK_IMPORTED_MODULE_1__[\"sidebarTriggerList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_1__[\"sidebarTriggerList\"].zh;\n if (this.isReadonly) {\n list = list.filter(item => {\n return ['outline', 'shortcutKey'].includes(item.value);\n });\n }\n return list;\n }\n },\n watch: {\n isReadonly(val) {\n if (val) {\n this.setActiveSidebar(null);\n }\n }\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapMutations\"])(['setActiveSidebar']),\n trigger(item) {\n this.setActiveSidebar(item.value);\n }\n }\n};\n\nconst __injectCSSVars__ = () => {\n Object(vue__WEBPACK_IMPORTED_MODULE_9__[\"useCssVars\"])((_vm, _setup) => ({\n \"c4f3b258-positionMode\": _vm.positionMode\n }));\n};\nconst __setup__ = __default__.setup;\n__default__.setup = __setup__ ? (props, ctx) => {\n __injectCSSVars__();\n return __setup__(props, ctx);\n} : __injectCSSVars__;\n/* harmony default export */ __webpack_exports__[\"default\"] = (__default__);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/SidebarTrigger.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=script&lang=js":
/*!*********************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=script&lang=js ***!
\*********************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var codemirror__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! codemirror */ \"./node_modules/codemirror/lib/codemirror.js\");\n/* harmony import */ var codemirror__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(codemirror__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var codemirror_mode_javascript_javascript__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! codemirror/mode/javascript/javascript */ \"./node_modules/codemirror/mode/javascript/javascript.js\");\n/* harmony import */ var codemirror_mode_javascript_javascript__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_javascript_javascript__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var codemirror_lib_codemirror_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! codemirror/lib/codemirror.css */ \"./node_modules/codemirror/lib/codemirror.css\");\n/* harmony import */ var codemirror_lib_codemirror_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(codemirror_lib_codemirror_css__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _utils_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/index */ \"./src/utils/index.js\");\n\n\n\n\n\nlet editor = null;\n\n// 源码编辑\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'SourceCodeEdit',\n inject: ['$bus'],\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {};\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapState\"])({\n isReadonly: state => state.isReadonly,\n isDark: state => state.localConfig.isDark,\n isSourceCodeEdit: state => state.isSourceCodeEdit\n })\n },\n watch: {\n isSourceCodeEdit(val) {\n if (val) {\n this.$nextTick(() => {\n document.body.appendChild(this.$refs.sourceCodeEditContainer);\n this.initEditor();\n this.initData();\n });\n }\n }\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapMutations\"])(['setIsSourceCodeEdit']),\n // 初始化编辑器\n initEditor() {\n editor = codemirror__WEBPACK_IMPORTED_MODULE_1___default()(this.$refs.outlineEditRef, {\n mode: {\n name: 'javascript',\n json: true\n },\n lineWrapping: true,\n lineNumbers: true\n });\n },\n // 初始化数据\n initData() {\n editor.setValue(JSON.stringify(this.mindMap.getData(), null, 2));\n },\n // 完成\n onConfirm() {\n try {\n const content = editor.getValue();\n const data = JSON.parse(content);\n this.setIsSourceCodeEdit(false);\n this.$bus.$emit('setData', data);\n } catch (error) {\n console.log(error);\n this.$message.error(this.$t('sourceCodeEdit.formatErrorTip'));\n }\n },\n // 关闭\n onClose() {\n this.setIsSourceCodeEdit(false);\n },\n // 复制\n copy() {\n const content = editor.getValue();\n Object(_utils_index__WEBPACK_IMPORTED_MODULE_4__[\"copy\"])(content);\n this.$message.success(this.$t('sourceCodeEdit.copyTip'));\n },\n // 格式化\n format() {\n try {\n const content = editor.getValue();\n const data = JSON.parse(content);\n editor.setValue(JSON.stringify(data, null, 2));\n this.$message.success(this.$t('sourceCodeEdit.formatTip'));\n } catch (error) {\n console.log(error);\n this.$message.error(this.$t('sourceCodeEdit.formatErrorTip'));\n }\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/SourceCodeEdit.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Structure.vue?vue&type=script&lang=js":
/*!****************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Structure.vue?vue&type=script&lang=js ***!
\****************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Sidebar */ \"./src/pages/Edit/components/Sidebar.vue\");\n/* harmony import */ var simple_mind_map_src_constants_constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! simple-mind-map/src/constants/constant */ \"../simple-mind-map/src/constants/constant.js\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/api */ \"./src/api/index.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _config_constant_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/config/constant.js */ \"./src/config/constant.js\");\n\n\n\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:54:14\n * @Desc: 结构\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Structure',\n components: {\n Sidebar: _Sidebar__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n },\n props: {\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n // 过滤掉径向布局(暂时隐藏)\n layoutList: simple_mind_map_src_constants_constant__WEBPACK_IMPORTED_MODULE_1__[\"layoutList\"].filter(item => item.value !== 'radial'),\n layoutImgMap: _config_constant_js__WEBPACK_IMPORTED_MODULE_4__[\"layoutImgMap\"],\n layout: ''\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_3__[\"mapState\"])({\n isDark: state => state.localConfig.isDark,\n activeSidebar: state => state.activeSidebar,\n injectConfig: state => state.injectConfig\n })\n },\n watch: {\n activeSidebar(val) {\n if (val === 'structure') {\n this.layout = this.mindMap.getLayout();\n this.$refs.sidebar.show = true;\n } else {\n this.$refs.sidebar.show = false;\n }\n }\n },\n methods: {\n /**\n * @Author: 王林\n * @Date: 2021-06-24 23:04:38\n * @Desc: 使用主题\n */\n useLayout(layout) {\n this.layout = layout.value;\n this.mindMap.setLayout(layout.value);\n Object(_api__WEBPACK_IMPORTED_MODULE_2__[\"storeConfig\"])({\n layout: layout.value\n }, {\n ...this.injectConfig,\n app: this.mindMap\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Structure.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Style.vue?vue&type=script&lang=js":
/*!************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Style.vue?vue&type=script&lang=js ***!
\************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Sidebar */ \"./src/pages/Edit/components/Sidebar.vue\");\n/* harmony import */ var _Color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Color */ \"./src/pages/Edit/components/Color.vue\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/config */ \"./src/config/index.js\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n\n\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:54:47\n * @Desc: 节点样式设置\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Style',\n inject: ['$bus'],\n components: {\n Sidebar: _Sidebar__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n Color: _Color__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n data() {\n return {\n fontSizeList: _config__WEBPACK_IMPORTED_MODULE_2__[\"fontSizeList\"],\n borderWidthList: _config__WEBPACK_IMPORTED_MODULE_2__[\"borderWidthList\"],\n borderRadiusList: _config__WEBPACK_IMPORTED_MODULE_2__[\"borderRadiusList\"],\n activeNodes: [],\n style: {\n shape: '',\n paddingX: 0,\n paddingY: 0,\n color: '',\n fontFamily: '',\n fontSize: '',\n textDecoration: '',\n fontWeight: '',\n fontStyle: '',\n borderWidth: '',\n borderColor: '',\n fillColor: '',\n borderDasharray: '',\n borderRadius: '',\n lineColor: '',\n lineDasharray: '',\n lineWidth: '',\n lineMarkerDir: '',\n gradientStyle: false,\n startColor: '',\n endColor: '',\n linearGradientDir: '',\n lineFlow: false,\n lineFlowForward: true,\n lineFlowDuration: 1,\n textAlign: '',\n imgPlacement: '',\n tagPlacement: ''\n }\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_3__[\"mapState\"])({\n isDark: state => state.localConfig.isDark,\n activeSidebar: state => state.activeSidebar,\n supportLineFlow: state => state.supportLineFlow\n }),\n fontFamilyList() {\n return _config__WEBPACK_IMPORTED_MODULE_2__[\"fontFamilyList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_2__[\"fontFamilyList\"].zh;\n },\n borderDasharrayList() {\n return _config__WEBPACK_IMPORTED_MODULE_2__[\"borderDasharrayList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_2__[\"borderDasharrayList\"].zh;\n },\n shapeList() {\n return _config__WEBPACK_IMPORTED_MODULE_2__[\"shapeList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_2__[\"shapeList\"].zh;\n },\n shapeListMap() {\n return _config__WEBPACK_IMPORTED_MODULE_2__[\"shapeListMap\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_2__[\"shapeListMap\"].zh;\n },\n linearGradientDirList() {\n return _config__WEBPACK_IMPORTED_MODULE_2__[\"linearGradientDirList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_2__[\"linearGradientDirList\"].zh;\n },\n alignList() {\n return _config__WEBPACK_IMPORTED_MODULE_2__[\"alignList\"][this.$i18n.locale] || _config__WEBPACK_IMPORTED_MODULE_2__[\"alignList\"].zh;\n }\n },\n watch: {\n activeSidebar(val) {\n if (val === 'nodeStyle') {\n this.$refs.sidebar.show = true;\n } else {\n this.$refs.sidebar.show = false;\n }\n }\n },\n created() {\n this.$bus.$on('node_active', this.onNodeActive);\n },\n beforeDestroy() {\n this.$bus.$off('node_active', this.onNodeActive);\n },\n methods: {\n /**\n * @Author: 王林25\n * @Date: 2022-11-14 19:16:21\n * @Desc: 监听节点激活事件\n */\n onNodeActive(...args) {\n this.$nextTick(() => {\n this.activeNodes = [...args[1]];\n this.initNodeStyle();\n });\n },\n /**\n * @Author: 王林\n * @Date: 2021-05-05 09:48:52\n * @Desc: 初始节点样式\n */\n initNodeStyle() {\n if (this.activeNodes.length <= 0) {\n return;\n }\n Object.keys(this.style).forEach(item => {\n this.style[item] = this.activeNodes[0].getStyle(item, false);\n });\n this.initLinearGradientDir();\n },\n // 初始化渐变方向样式\n initLinearGradientDir() {\n const startDir = this.activeNodes[0].getStyle('startDir', false);\n const endDir = this.activeNodes[0].getStyle('endDir', false);\n const target = this.linearGradientDirList.find(item => {\n return item.start[0] === startDir[0] && item.start[1] === startDir[1] && item.end[0] === endDir[0] && item.end[1] === endDir[1];\n });\n if (target) {\n this.style.linearGradientDir = target.value;\n }\n },\n /**\n * @Author: 王林\n * @Date: 2021-05-04 22:08:16\n * @Desc: 修改样式\n */\n update(prop) {\n if (prop === 'linearGradientDir') {\n const target = this.linearGradientDirList.find(item => {\n return item.value === this.style.linearGradientDir;\n });\n this.activeNodes.forEach(node => {\n node.setStyles({\n startDir: [...target.start],\n endDir: [...target.end]\n });\n });\n } else {\n this.activeNodes.forEach(node => {\n node.setStyle(prop, this.style[prop]);\n });\n }\n },\n /**\n * @Author: 王林\n * @Date: 2021-05-05 09:41:34\n * @Desc: 切换加粗样式\n */\n toggleFontWeight() {\n if (this.style.fontWeight === 'bold') {\n this.style.fontWeight = 'normal';\n } else {\n this.style.fontWeight = 'bold';\n }\n this.update('fontWeight');\n },\n /**\n * @Author: 王林\n * @Date: 2021-05-05 09:46:39\n * @Desc: 切换字体样式\n */\n toggleFontStyle() {\n if (this.style.fontStyle === 'italic') {\n this.style.fontStyle = 'normal';\n } else {\n this.style.fontStyle = 'italic';\n }\n this.update('fontStyle');\n },\n /**\n * @Author: 王林\n * @Date: 2021-05-05 10:18:59\n * @Desc: 修改字体颜色\n */\n changeFontColor(color) {\n this.style.color = color;\n this.update('color');\n },\n /**\n * @Author: 王林\n * @Date: 2021-05-05 10:18:59\n * @Desc: 修改边框颜色\n */\n changeBorderColor(color) {\n this.style.borderColor = color;\n this.update('borderColor');\n },\n /**\n * @Author: flydreame\n * @Date: 2022-09-17 10:18:15\n * @Desc: 修改线条颜色\n */\n changeLineColor(color) {\n this.style.lineColor = color;\n this.update('lineColor');\n },\n /**\n * @Author: 王林\n * @Date: 2021-05-05 10:18:59\n * @Desc: 修改背景颜色\n */\n changeFillColor(color) {\n this.style.fillColor = color;\n this.update('fillColor');\n },\n /**\n * @Author: lxr_cel\n * @Date: 2024-01-02 11:09:27\n * @Desc: 切换渐变开始颜色\n */\n changeStartColor(color) {\n this.style.startColor = color;\n this.update('startColor');\n },\n /**\n * @Author: lxr_cel\n * @Date: 2024-01-02 10:10:34\n * @Desc: 切换渐变结束颜色\n */\n changeEndColor(color) {\n this.style.endColor = color;\n this.update('endColor');\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Style.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Theme.vue?vue&type=script&lang=js":
/*!************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Theme.vue?vue&type=script&lang=js ***!
\************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_buffer_detached_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array-buffer.detached.js */ \"./node_modules/core-js/modules/es.array-buffer.detached.js\");\n/* harmony import */ var core_js_modules_es_array_buffer_detached_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_buffer_detached_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_array_buffer_transfer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array-buffer.transfer.js */ \"./node_modules/core-js/modules/es.array-buffer.transfer.js\");\n/* harmony import */ var core_js_modules_es_array_buffer_transfer_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_buffer_transfer_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_array_buffer_transfer_to_fixed_length_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array-buffer.transfer-to-fixed-length.js */ \"./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js\");\n/* harmony import */ var core_js_modules_es_array_buffer_transfer_to_fixed_length_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_buffer_transfer_to_fixed_length_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_typed_array_at_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.typed-array.at.js */ \"./node_modules/core-js/modules/es.typed-array.at.js\");\n/* harmony import */ var core_js_modules_es_typed_array_at_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_at_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_typed_array_find_last_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.typed-array.find-last.js */ \"./node_modules/core-js/modules/es.typed-array.find-last.js\");\n/* harmony import */ var core_js_modules_es_typed_array_find_last_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_find_last_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_typed_array_find_last_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.typed-array.find-last-index.js */ \"./node_modules/core-js/modules/es.typed-array.find-last-index.js\");\n/* harmony import */ var core_js_modules_es_typed_array_find_last_index_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_find_last_index_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_es_typed_array_set_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.typed-array.set.js */ \"./node_modules/core-js/modules/es.typed-array.set.js\");\n/* harmony import */ var core_js_modules_es_typed_array_set_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_set_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var core_js_modules_es_typed_array_to_reversed_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.typed-array.to-reversed.js */ \"./node_modules/core-js/modules/es.typed-array.to-reversed.js\");\n/* harmony import */ var core_js_modules_es_typed_array_to_reversed_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_to_reversed_js__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var core_js_modules_es_typed_array_to_sorted_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/es.typed-array.to-sorted.js */ \"./node_modules/core-js/modules/es.typed-array.to-sorted.js\");\n/* harmony import */ var core_js_modules_es_typed_array_to_sorted_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_to_sorted_js__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var core_js_modules_es_typed_array_with_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/es.typed-array.with.js */ \"./node_modules/core-js/modules/es.typed-array.with.js\");\n/* harmony import */ var core_js_modules_es_typed_array_with_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_typed_array_with_js__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var core_js_modules_web_url_search_params_delete_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! core-js/modules/web.url-search-params.delete.js */ \"./node_modules/core-js/modules/web.url-search-params.delete.js\");\n/* harmony import */ var core_js_modules_web_url_search_params_delete_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_url_search_params_delete_js__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var core_js_modules_web_url_search_params_has_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! core-js/modules/web.url-search-params.has.js */ \"./node_modules/core-js/modules/web.url-search-params.has.js\");\n/* harmony import */ var core_js_modules_web_url_search_params_has_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_url_search_params_has_js__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var core_js_modules_web_url_search_params_size_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! core-js/modules/web.url-search-params.size.js */ \"./node_modules/core-js/modules/web.url-search-params.size.js\");\n/* harmony import */ var core_js_modules_web_url_search_params_size_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_url_search_params_size_js__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Sidebar */ \"./src/pages/Edit/components/Sidebar.vue\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/api */ \"./src/api/index.js\");\n/* harmony import */ var _api_siyuan__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/api/siyuan */ \"./src/api/siyuan.tsx\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _simple_mind_map_plugin_themes_themeImgMap__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @/../../simple-mind-map-plugin-themes/themeImgMap */ \"../simple-mind-map-plugin-themes/themeImgMap.js\");\n/* harmony import */ var _simple_mind_map_plugin_themes_themeList__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @/../../simple-mind-map-plugin-themes/themeList */ \"../simple-mind-map-plugin-themes/themeList.js\");\n/* harmony import */ var simple_mind_map__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! simple-mind-map */ \"../simple-mind-map/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:53:04\n * @Desc: 主题\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Theme',\n inject: ['$bus'],\n components: {\n Sidebar: _Sidebar__WEBPACK_IMPORTED_MODULE_14__[\"default\"]\n },\n mounted() {\n this.loadUserThemes();\n },\n props: {\n data: {\n type: [Object, null],\n default: null\n },\n mindMap: {\n type: Object\n }\n },\n data() {\n return {\n themeList: [{\n name: 'Default',\n value: 'default',\n dark: false\n }, ..._simple_mind_map_plugin_themes_themeList__WEBPACK_IMPORTED_MODULE_19__[\"default\"]].reverse(),\n themeImgMap: _simple_mind_map_plugin_themes_themeImgMap__WEBPACK_IMPORTED_MODULE_18__[\"default\"],\n theme: '',\n activeName: '',\n groupList: [],\n userThemes: [],\n themeSvgPreviews: {},\n // 存储自定义主题的SVG预览图\n themeWebpPreviews: {} // 存储自定义主题的WebP预览图\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_17__[\"mapState\"])({\n isDark: state => state.localConfig.isDark,\n activeSidebar: state => state.activeSidebar,\n injectConfig: state => state.injectConfig\n }),\n currentList() {\n return this.groupList.find(item => {\n return item.name === this.activeName;\n }).list;\n }\n },\n watch: {\n activeSidebar(val) {\n if (val === 'theme') {\n this.theme = this.mindMap.getTheme();\n this.$refs.sidebar.show = true;\n } else {\n this.$refs.sidebar.show = false;\n }\n }\n },\n created() {\n this.initGroup();\n this.theme = this.mindMap.getTheme();\n this.mindMap.on('view_theme_change', this.handleViewThemeChange);\n },\n beforeDestroy() {\n this.mindMap.off('view_theme_change', this.handleViewThemeChange);\n // 清理Blob URLs\n this.cleanupPreviews();\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_17__[\"mapMutations\"])(['setLocalConfig']),\n async loadUserThemes() {\n try {\n // 尝试获取用户自定义主题\n const themeDir = '/data/storage/petal/kmind/theme';\n const files = await Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_16__[\"listFileForPlugin\"])({\n path: themeDir\n }).catch(() => []);\n const themes = [];\n for (const file of files) {\n if (!file.isDir && file.name.endsWith('.json')) {\n const themeName = file.name.replace('.json', '');\n const filePath = `${themeDir}/${file.name}`;\n const content = await Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_16__[\"getFileForPlugin\"])({\n path: filePath\n });\n if (content) {\n try {\n // 直接解析 JSON 内容\n const theme = content;\n if (theme && theme.meta) {\n const themeValue = `custom_${themeName}`;\n const themeItem = {\n name: theme.meta.name || themeName,\n value: themeValue,\n customTheme: theme,\n dark: false // 添加 dark 属性,默认为 false\n };\n\n // 优先尝试加载WebP预览图,如果没有则尝试SVG\n const webpPath = `${themeDir}/${themeName}.webp`;\n const svgPath = `${themeDir}/${themeName}.svg`;\n try {\n // 先尝试WebP\n const webpContent = await Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_16__[\"getFileForPlugin\"])({\n path: webpPath\n });\n if (webpContent) {\n // WebP内容需要转换为Blob URL\n let blob;\n if (webpContent instanceof Uint8Array) {\n // 如果是Uint8Array(二进制数据)\n blob = new Blob([webpContent], {\n type: 'image/webp'\n });\n } else {\n // 如果是其他格式(不应该发生)\n console.warn('Unexpected webp content type:', typeof webpContent);\n blob = new Blob([webpContent], {\n type: 'image/webp'\n });\n }\n const url = URL.createObjectURL(blob);\n this.themeWebpPreviews[themeValue] = url;\n }\n } catch {\n // WebP不存在,尝试SVG\n try {\n const svgContent = await Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_16__[\"getFileForPlugin\"])({\n path: svgPath\n });\n if (svgContent) {\n // 将SVG内容转换为data URL\n const blob = new Blob([svgContent], {\n type: 'image/svg+xml'\n });\n const url = URL.createObjectURL(blob);\n this.themeSvgPreviews[themeValue] = url;\n }\n } catch {\n // 两种格式都不存在,忽略\n }\n }\n themes.push(themeItem);\n // 主题已经在 Edit.vue 中预先注册,这里不需要重复注册\n }\n } catch (e) {\n console.error('解析主题失败:', file.name, e);\n }\n }\n }\n }\n this.userThemes = themes;\n // 重新初始化分组以包含用户主题\n this.initGroup();\n } catch (error) {\n console.error('加载用户主题失败:', error);\n }\n },\n handleViewThemeChange() {\n this.theme = this.mindMap.getTheme();\n this.handleDark();\n },\n getThemeName(theme) {\n // 自定义主题:不走全局 i18n 键,优先读取主题自身的 i18n 名称\n if (theme !== null && theme !== void 0 && theme.value && String(theme.value).startsWith('custom_')) {\n const lang = this.$i18n && this.$i18n.locale || 'zh';\n const customTheme = theme.customTheme;\n const byMeta = customTheme && customTheme.meta && customTheme.meta.i18n && customTheme.meta.i18n.name && customTheme.meta.i18n.name[lang] || customTheme && customTheme.meta && customTheme.meta.name;\n // 回退:使用主题条目自带的显示名或去掉 custom_ 的值\n return byMeta || theme.name || String(theme.value).replace(/^custom_/, '');\n }\n\n // 内置主题:尝试使用全局 i18n 键\n const themeKey = `theme.theme_${theme.value}`;\n const translatedName = this.$t(themeKey);\n return translatedName !== themeKey ? translatedName : theme.name;\n },\n getThemeImage(theme) {\n // 如果是自定义主题\n if (theme.value && theme.value.startsWith('custom_')) {\n // 优先使用WebP预览图\n if (this.themeWebpPreviews[theme.value]) {\n return this.themeWebpPreviews[theme.value];\n }\n // 其次使用SVG预览图\n if (this.themeSvgPreviews[theme.value]) {\n return this.themeSvgPreviews[theme.value];\n }\n // 否则返回默认的自定义主题图片\n return __webpack_require__(/*! @/assets/img/custom-theme.svg */ \"./src/assets/img/custom-theme.svg\");\n }\n // 否则返回主题映射中的图片\n return this.themeImgMap[theme.value];\n },\n initGroup() {\n let baiduThemes = ['default', 'skyGreen', 'classic2', 'classic3', 'classicGreen', 'classicBlue', 'blueSky', 'brainImpairedPink', 'earthYellow', 'freshGreen', 'freshRed', 'romanticPurple', 'pinkGrape', 'mint'];\n let baiduList = [];\n let classicsList = [];\n this.themeList.forEach(item => {\n if (baiduThemes.includes(item.value)) {\n baiduList.push(item);\n } else if (!item.dark) {\n classicsList.push(item);\n }\n });\n const groups = [{\n name: this.$t('theme.classics'),\n list: classicsList\n }, {\n name: this.$t('theme.dark'),\n list: this.themeList.filter(item => {\n return item.dark;\n })\n }, {\n name: this.$t('theme.simple'),\n list: baiduList\n }];\n\n // 如果有用户自定义主题,添加到分组中\n if (this.userThemes && this.userThemes.length > 0) {\n groups.unshift({\n name: this.$t('theme.myThemes'),\n list: this.userThemes\n });\n }\n this.groupList = groups;\n this.activeName = this.groupList[0].name;\n },\n useTheme(theme) {\n if (theme.value === this.theme) return;\n this.theme = theme.value;\n\n // 如果是用户自定义主题\n if (theme.value.startsWith('custom_')) {\n if (theme.customTheme) {\n // 移除meta信息,只使用主题配置\n const themeConfig = {\n ...theme.customTheme\n };\n delete themeConfig.meta;\n\n // 注册自定义主题\n simple_mind_map__WEBPACK_IMPORTED_MODULE_20__[\"default\"].defineTheme(theme.value, themeConfig);\n\n // 设置主题\n this.mindMap.setTheme(theme.value);\n\n // 设置背景色(如果主题中定义了的话)\n if (themeConfig.backgroundColor) {\n this.setLocalConfig({\n isDark: false // 自定义主题默认不是深色模式\n });\n }\n\n // 保存配置\n Object(_api__WEBPACK_IMPORTED_MODULE_15__[\"storeConfig\"])({\n theme: {\n template: theme.value,\n config: {} // 自定义主题不需要额外的配置\n }\n }, {\n ...this.injectConfig,\n app: this.mindMap\n });\n }\n return;\n }\n\n // 内置主题处理\n this.handleDark();\n const customThemeConfig = this.mindMap.getCustomThemeConfig();\n const hasCustomThemeConfig = Object.keys(customThemeConfig).length > 0;\n if (hasCustomThemeConfig) {\n this.$confirm(this.$t('theme.coverTip'), this.$t('theme.tip'), {\n confirmButtonText: this.$t('theme.cover'),\n cancelButtonText: this.$t('theme.reserve'),\n type: 'warning',\n distinguishCancelAndClose: true,\n callback: action => {\n if (action === 'confirm') {\n this.mindMap.setThemeConfig({}, true);\n this.data.theme.config = {};\n this.changeTheme(theme, {});\n } else if (action === 'cancel') {\n this.changeTheme(theme, customThemeConfig);\n }\n }\n });\n } else {\n this.changeTheme(theme, customThemeConfig);\n }\n },\n changeTheme(theme, config) {\n this.$bus.$emit('showLoading');\n this.mindMap.setTheme(theme.value);\n Object(_api__WEBPACK_IMPORTED_MODULE_15__[\"storeConfig\"])({\n theme: {\n template: theme.value,\n config\n }\n }, {\n ...this.injectConfig,\n app: this.mindMap\n });\n },\n handleDark() {\n let target = this.themeList.find(item => {\n return item.value === this.theme;\n });\n // 如果在内置主题中找不到,可能是自定义主题\n if (!target) {\n target = this.userThemes.find(item => {\n return item.value === this.theme;\n });\n }\n // 如果找到了主题,设置深色模式\n if (target) {\n this.setLocalConfig({\n isDark: target.dark || false\n });\n }\n },\n // 清理预览图的Blob URLs\n cleanupPreviews() {\n // 清理WebP预览图\n Object.values(this.themeWebpPreviews).forEach(url => {\n if (url && url.startsWith('blob:')) {\n URL.revokeObjectURL(url);\n }\n });\n this.themeWebpPreviews = {};\n\n // 清理SVG预览图\n Object.values(this.themeSvgPreviews).forEach(url => {\n if (url && url.startsWith('blob:')) {\n URL.revokeObjectURL(url);\n }\n });\n this.themeSvgPreviews = {};\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Theme.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Toolbar.vue?vue&type=script&lang=js":
/*!**************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Toolbar.vue?vue&type=script&lang=js ***!
\**************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _NodeImage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NodeImage */ \"./src/pages/Edit/components/NodeImage.vue\");\n/* harmony import */ var _NodeHyperlink__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./NodeHyperlink */ \"./src/pages/Edit/components/NodeHyperlink.vue\");\n/* harmony import */ var _NodeIcon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./NodeIcon */ \"./src/pages/Edit/components/NodeIcon.vue\");\n/* harmony import */ var _NodeNote__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./NodeNote */ \"./src/pages/Edit/components/NodeNote.vue\");\n/* harmony import */ var _NodeTag__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./NodeTag */ \"./src/pages/Edit/components/NodeTag.vue\");\n/* harmony import */ var _RichEditor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./RichEditor */ \"./src/pages/Edit/components/RichEditor/index.vue\");\n/* harmony import */ var _Export__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Export */ \"./src/pages/Edit/components/Export.vue\");\n/* harmony import */ var _Import__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Import */ \"./src/pages/Edit/components/Import.vue\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var element_ui__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! element-ui */ \"./node_modules/element-ui/lib/element-ui.common.js\");\n/* harmony import */ var element_ui__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(element_ui__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var simple_mind_map_example_exampleData__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! simple-mind-map/example/exampleData */ \"../simple-mind-map/example/exampleData.js\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../../api */ \"./src/api/index.js\");\n/* harmony import */ var _ToolbarNodeBtnList_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ToolbarNodeBtnList.vue */ \"./src/pages/Edit/components/ToolbarNodeBtnList.vue\");\n/* harmony import */ var simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! simple-mind-map/src/utils/index */ \"../simple-mind-map/src/utils/index.js\");\n/* harmony import */ var _mixins_domMode__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/mixins/domMode */ \"./src/mixins/domMode.js\");\n/* harmony import */ var _icons_material_symbols_light_arrows_more_down_outline_rounded__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ~icons/material-symbols-light/arrows-more-down-outline-rounded */ \"./_virtual_~icons%2Fmaterial-symbols-light%2Farrows-more-down-outline-rounded\");\n/* harmony import */ var _icons_clarity_directory_line__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ~icons/clarity/directory-line */ \"./_virtual_~icons%2Fclarity%2Fdirectory-line\");\n/* harmony import */ var _icons_mingcute_file_new_line__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ~icons/mingcute/file-new-line */ \"./_virtual_~icons%2Fmingcute%2Ffile-new-line\");\n/* harmony import */ var _icons_material_symbols_light_file_open_outline__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ~icons/material-symbols-light/file-open-outline */ \"./_virtual_~icons%2Fmaterial-symbols-light%2Ffile-open-outline\");\n/* harmony import */ var _icons_mdi_content_save_move_outline__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ~icons/mdi/content-save-move-outline */ \"./_virtual_~icons%2Fmdi%2Fcontent-save-move-outline\");\n/* harmony import */ var _icons_ant_design_import_outlined__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ~icons/ant-design/import-outlined */ \"./_virtual_~icons%2Fant-design%2Fimport-outlined\");\n/* harmony import */ var _icons_ant_design_export_outlined__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ~icons/ant-design/export-outlined */ \"./_virtual_~icons%2Fant-design%2Fexport-outlined\");\n/* harmony import */ var _icons_ant_design_history_outlined__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ~icons/ant-design/history-outlined */ \"./_virtual_~icons%2Fant-design%2Fhistory-outlined\");\n\n\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 KmindHistoryModal from './KmindHistoryModal/KmindHistoryModal.vue'\n/**\n * @Author: 王林\n * @Date: 2021-06-24 22:54:58\n * @Desc: 工具栏\n */\nlet fileHandle = null;\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'Toolbar',\n mixins: [_mixins_domMode__WEBPACK_IMPORTED_MODULE_16__[\"default\"]],\n inject: ['$bus'],\n components: {\n NodeImage: _NodeImage__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n NodeHyperlink: _NodeHyperlink__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n NodeIcon: _NodeIcon__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n NodeNote: _NodeNote__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n NodeTag: _NodeTag__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n RichEditor: _RichEditor__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n Export: _Export__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n Import: _Import__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n ToolbarNodeBtnList: _ToolbarNodeBtnList_vue__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n MaterialSymbolsLightArrowsMoreDownOutlineRounded: _icons_material_symbols_light_arrows_more_down_outline_rounded__WEBPACK_IMPORTED_MODULE_17__[\"default\"],\n ClarityDirectoryLine: _icons_clarity_directory_line__WEBPACK_IMPORTED_MODULE_18__[\"default\"],\n MingcuteFileNewLine: _icons_mingcute_file_new_line__WEBPACK_IMPORTED_MODULE_19__[\"default\"],\n MaterialSymbolsLightFileOpenOutline: _icons_material_symbols_light_file_open_outline__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n MdiContentSaveMoveOutline: _icons_mdi_content_save_move_outline__WEBPACK_IMPORTED_MODULE_21__[\"default\"],\n AntDesignImportOutlined: _icons_ant_design_import_outlined__WEBPACK_IMPORTED_MODULE_22__[\"default\"],\n AntDesignExportOutlined: _icons_ant_design_export_outlined__WEBPACK_IMPORTED_MODULE_23__[\"default\"],\n AntDesignHistoryOutlined: _icons_ant_design_history_outlined__WEBPACK_IMPORTED_MODULE_24__[\"default\"]\n // KmindHistoryModal\n },\n data() {\n return {\n isMobile: Object(simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_15__[\"isMobile\"])(),\n list: ['back', 'forward', 'editNode', 'siblingNode', 'deleteNode', 'childNode', 'tag', 'link', 'note', 'image', 'icon', 'summary', 'associativeLine',\n // 'formula',\n // 'attachment',\n // 'outerFrame',\n // 'annotation',\n 'painter'],\n horizontalList: [],\n verticalList: [],\n showMoreBtn: true,\n popoverShow: false,\n fileTreeProps: {\n label: 'name',\n children: 'children',\n isLeaf: 'leaf'\n },\n fileTreeVisible: false,\n rootDirName: '',\n fileTreeExpand: true,\n waitingWriteToLocalFile: false,\n resizeObserver: null\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_10__[\"mapState\"])({\n isDark: state => state.localConfig.isDark,\n isHandleLocalFile: state => state.isHandleLocalFile,\n injectConfig: state => state.injectConfig,\n isZenMode: state => state.localConfig.isZenMode,\n openNodeRichText: state => state.localConfig.openNodeRichText\n })\n },\n watch: {\n isHandleLocalFile(val) {\n if (!val) {\n element_ui__WEBPACK_IMPORTED_MODULE_11__[\"Notification\"].closeAll();\n }\n },\n openNodeRichText: {\n immediate: true,\n handler(val) {\n const index = this.list.findIndex(item => {\n return item === 'formula';\n });\n if (val) {\n if (index === -1) {\n this.list.splice(13, 0, 'formula');\n }\n } else {\n if (index !== -1) {\n this.list.splice(index, 1);\n }\n }\n this.computeToolbarShow();\n }\n }\n },\n created() {\n this.$bus.$on('write_local_file', this.onWriteLocalFile);\n },\n mounted() {\n this.computeToolbarShow();\n this.computeToolbarShowThrottle = Object(simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_15__[\"throttle\"])(this.computeToolbarShow, 300);\n\n // 在 DOM 模式下,监听容器的大小变化而不是 window 的 resize\n if (this.isDomMode) {\n // 使用 ResizeObserver 监听容器大小变化\n this.resizeObserver = new ResizeObserver(() => {\n this.computeToolbarShowThrottle();\n });\n // 查找并监听容器\n const container = this.currentEditContainer;\n // console.log('container:', container)\n if (container && container !== document.body) {\n this.resizeObserver.observe(container);\n }\n } else {\n // 非 DOM 模式下,继续监听 window resize\n window.addEventListener('resize', this.computeToolbarShowThrottle);\n }\n this.$bus.$on('lang_change', this.computeToolbarShowThrottle);\n window.addEventListener('beforeunload', this.onUnload);\n this.$bus.$on('node_note_dblclick', this.onNodeNoteDblclick);\n },\n beforeDestroy() {\n this.$bus.$off('write_local_file', this.onWriteLocalFile);\n\n // 清理 resize 监听\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n } else {\n window.removeEventListener('resize', this.computeToolbarShowThrottle);\n }\n this.$bus.$off('lang_change', this.computeToolbarShowThrottle);\n window.removeEventListener('beforeunload', this.onUnload);\n this.$bus.$off('node_note_dblclick', this.onNodeNoteDblclick);\n },\n methods: {\n // 计算工具按钮如何显示\n computeToolbarShow() {\n if (!this.$refs.toolbarRef) return;\n // 在 DOM 模式下,使用容器宽度;否则使用 window 宽度\n let availableWidth;\n if (this.isDomMode) {\n const container = this.currentEditContainer;\n if (container && container !== document.body) {\n availableWidth = container.clientWidth - 40;\n } else {\n availableWidth = window.innerWidth - 40;\n }\n } else {\n availableWidth = window.innerWidth - 40;\n }\n\n // console.log('availableWidth:', availableWidth)\n\n const all = [...this.list];\n let index = 1;\n const loopCheck = () => {\n if (index > all.length) return done();\n this.horizontalList = all.slice(0, index);\n this.$nextTick(() => {\n const width = this.$refs.toolbarRef.getBoundingClientRect().width;\n if (width < availableWidth) {\n index++;\n loopCheck();\n } else if (index > 0 && width > availableWidth) {\n index--;\n this.horizontalList = all.slice(0, index);\n done();\n }\n });\n };\n const done = () => {\n this.verticalList = all.slice(index);\n this.showMoreBtn = this.verticalList.length > 0;\n };\n loopCheck();\n },\n // 监听本地文件读写\n onWriteLocalFile(content) {\n clearTimeout(this.timer);\n if (fileHandle && this.isHandleLocalFile) {\n this.waitingWriteToLocalFile = true;\n }\n this.timer = setTimeout(() => {\n this.writeLocalFile(content);\n }, 1000);\n },\n onUnload(e) {\n if (this.waitingWriteToLocalFile) {\n const msg = '存在未保存的数据';\n e.returnValue = msg;\n return msg;\n }\n },\n // 加载本地文件树\n async loadFileTreeNode(node, resolve) {\n try {\n let dirHandle;\n if (node.level === 0) {\n dirHandle = await window.showDirectoryPicker();\n this.rootDirName = dirHandle.name;\n } else {\n dirHandle = node.data.handle;\n }\n const dirList = [];\n const fileList = [];\n for await (const [key, value] of dirHandle.entries()) {\n const isFile = value.kind === 'file';\n if (isFile && !/\\.(smm|xmind|md|json)$/.test(value.name)) {\n continue;\n }\n const enableEdit = isFile && /\\.smm$/.test(value.name);\n const data = {\n id: key,\n name: value.name,\n type: value.kind,\n handle: value,\n leaf: isFile,\n enableEdit\n };\n if (isFile) {\n fileList.push(data);\n } else {\n dirList.push(data);\n }\n }\n resolve([...dirList, ...fileList]);\n } catch (error) {\n console.log(error);\n this.fileTreeVisible = false;\n resolve([]);\n if (error.toString().includes('aborted')) {\n return;\n }\n this.$message.warning(this.$t('toolbar.notSupportTip'));\n }\n },\n // 扫描本地文件夹\n openDirectory() {\n this.fileTreeVisible = false;\n this.fileTreeExpand = true;\n this.rootDirName = '';\n this.$nextTick(() => {\n this.fileTreeVisible = true;\n });\n },\n // 编辑指定文件\n editLocalFile(data) {\n if (data.handle) {\n fileHandle = data.handle;\n this.readFile();\n }\n },\n // 导入指定文件\n async importLocalFile(data) {\n try {\n const file = await data.handle.getFile();\n this.$refs.ImportRef.onChange({\n raw: file,\n name: file.name\n });\n this.$refs.ImportRef.confirm();\n } catch (error) {\n console.log(error);\n }\n },\n // 打开本地文件\n async openLocalFile() {\n try {\n let [_fileHandle] = await window.showOpenFilePicker({\n types: [{\n description: '',\n accept: {\n 'application/json': ['.smm']\n }\n }],\n excludeAcceptAllOption: true,\n multiple: false\n });\n if (!_fileHandle) {\n return;\n }\n fileHandle = _fileHandle;\n if (fileHandle.kind === 'directory') {\n this.$message.warning(this.$t('toolbar.selectFileTip'));\n return;\n }\n this.readFile();\n } catch (error) {\n console.log(error);\n if (error.toString().includes('aborted')) {\n return;\n }\n this.$message.warning(this.$t('toolbar.notSupportTip'));\n }\n },\n // 读取本地文件\n async readFile() {\n let file = await fileHandle.getFile();\n let fileReader = new FileReader();\n fileReader.onload = async () => {\n this.$store.commit('setIsHandleLocalFile', true);\n this.setData(fileReader.result);\n element_ui__WEBPACK_IMPORTED_MODULE_11__[\"Notification\"].closeAll();\n Object(element_ui__WEBPACK_IMPORTED_MODULE_11__[\"Notification\"])({\n title: this.$t('toolbar.tip'),\n message: `${this.$t('toolbar.editingLocalFileTipFront')}${file.name}${this.$t('toolbar.editingLocalFileTipEnd')}`,\n duration: 0,\n showClose: true\n });\n };\n fileReader.readAsText(file);\n },\n // 渲染读取的数据\n setData(str) {\n try {\n let data = JSON.parse(str);\n if (typeof data !== 'object') {\n throw new Error(this.$t('toolbar.fileContentError'));\n }\n if (data.root) {\n this.isFullDataFile = true;\n } else {\n this.isFullDataFile = false;\n data = {\n ...simple_mind_map_example_exampleData__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n root: data\n };\n }\n this.$bus.$emit('setData', data);\n } catch (error) {\n console.log(error);\n this.$message.error(this.$t('toolbar.fileOpenFailed'));\n }\n },\n // 写入本地文件\n async writeLocalFile(content) {\n if (!fileHandle || !this.isHandleLocalFile) {\n this.waitingWriteToLocalFile = false;\n return;\n }\n if (!this.isFullDataFile) {\n content = content.root;\n }\n let string = JSON.stringify(content);\n const writable = await fileHandle.createWritable();\n await writable.write(string);\n await writable.close();\n this.waitingWriteToLocalFile = false;\n },\n // 创建本地文件\n async createNewLocalFile() {\n await this.createLocalFile(simple_mind_map_example_exampleData__WEBPACK_IMPORTED_MODULE_12__[\"default\"]);\n },\n // 另存为\n async saveLocalFile() {\n let data = Object(_api__WEBPACK_IMPORTED_MODULE_13__[\"getData\"])();\n await this.createLocalFile(data);\n },\n // 创建本地文件\n async createLocalFile(content) {\n try {\n let _fileHandle = await window.showSaveFilePicker({\n types: [{\n description: '',\n accept: {\n 'application/json': ['.smm']\n }\n }],\n suggestedName: this.$t('toolbar.defaultFileName')\n });\n if (!_fileHandle) {\n return;\n }\n const loading = this.$loading({\n lock: true,\n text: this.$t('toolbar.creatingTip'),\n spinner: 'el-icon-loading',\n background: 'rgba(0, 0, 0, 0.7)'\n });\n fileHandle = _fileHandle;\n this.$store.commit('setIsHandleLocalFile', true);\n this.isFullDataFile = true;\n await this.writeLocalFile(content);\n await this.readFile();\n loading.close();\n } catch (error) {\n console.log(error);\n if (error.toString().includes('aborted')) {\n return;\n }\n this.$message.warning(this.$t('toolbar.notSupportTip'));\n }\n },\n onNodeNoteDblclick(node, e) {\n e.stopPropagation();\n // this.$bus.$emit('showNodeNote', node)\n this.$bus.$emit('showRichEditor', 'note');\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Toolbar.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=script&lang=js":
/*!*************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=script&lang=js ***!
\*************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n/* harmony import */ var _NodeAnnotationBtn_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NodeAnnotationBtn.vue */ \"./src/pages/Edit/components/NodeAnnotationBtn.vue\");\n/* harmony import */ var _icons_mdi_alarm_off__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~icons/mdi/alarm-off */ \"./_virtual_~icons%2Fmdi%2Falarm-off\");\n/* harmony import */ var _icons_material_symbols_undo__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~icons/material-symbols/undo */ \"./_virtual_~icons%2Fmaterial-symbols%2Fundo\");\n/* harmony import */ var _icons_material_symbols_redo__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~icons/material-symbols/redo */ \"./_virtual_~icons%2Fmaterial-symbols%2Fredo\");\n/* harmony import */ var _icons_ic_outline_format_paint__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~icons/ic/outline-format-paint */ \"./_virtual_~icons%2Fic%2Foutline-format-paint\");\n/* harmony import */ var _icons_ri_mind_map__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ~icons/ri/mind-map */ \"./_virtual_~icons%2Fri%2Fmind-map\");\n/* harmony import */ var _icons_hugeicons_subnode_add__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ~icons/hugeicons/subnode-add */ \"./_virtual_~icons%2Fhugeicons%2Fsubnode-add\");\n/* harmony import */ var _icons_ic_twotone_delete_outline__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ~icons/ic/twotone-delete-outline */ \"./_virtual_~icons%2Fic%2Ftwotone-delete-outline\");\n/* harmony import */ var _icons_lucide_image_plus__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ~icons/lucide/image-plus */ \"./_virtual_~icons%2Flucide%2Fimage-plus\");\n/* harmony import */ var _icons_mdi_emoticon_plus_outline__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ~icons/mdi/emoticon-plus-outline */ \"./_virtual_~icons%2Fmdi%2Femoticon-plus-outline\");\n/* harmony import */ var _icons_material_symbols_add_link__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ~icons/material-symbols/add-link */ \"./_virtual_~icons%2Fmaterial-symbols%2Fadd-link\");\n/* harmony import */ var _icons_fluent_comment_add_16_regular__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ~icons/fluent/comment-add-16-regular */ \"./_virtual_~icons%2Ffluent%2Fcomment-add-16-regular\");\n/* harmony import */ var _icons_mdi_tag_add__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ~icons/mdi/tag-add */ \"./_virtual_~icons%2Fmdi%2Ftag-add\");\n/* harmony import */ var _icons_mdi_bracket__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ~icons/mdi/bracket */ \"./_virtual_~icons%2Fmdi%2Fbracket\");\n/* harmony import */ var _icons_simple_icons_relay__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ~icons/simple-icons/relay */ \"./_virtual_~icons%2Fsimple-icons%2Frelay\");\n/* harmony import */ var _icons_hugeicons_summation_01__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ~icons/hugeicons/summation-01 */ \"./_virtual_~icons%2Fhugeicons%2Fsummation-01\");\n/* harmony import */ var _icons_mdi_code_block_brackets__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ~icons/mdi/code-block-brackets */ \"./_virtual_~icons%2Fmdi%2Fcode-block-brackets\");\n/* harmony import */ var _icons_ant_design_node_index_outlined__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ~icons/ant-design/node-index-outlined */ \"./_virtual_~icons%2Fant-design%2Fnode-index-outlined\");\n/* harmony import */ var _icons_hugeicons_subnode_delete__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ~icons/hugeicons/subnode-delete */ \"./_virtual_~icons%2Fhugeicons%2Fsubnode-delete\");\n/* harmony import */ var _icons_hugeicons_node_edit__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ~icons/hugeicons/node-edit */ \"./_virtual_~icons%2Fhugeicons%2Fnode-edit\");\n/* harmony import */ var _icons_clarity_add_text_line__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ~icons/clarity/add-text-line */ \"./_virtual_~icons%2Fclarity%2Fadd-text-line\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n inject: ['$bus'],\n components: {\n NodeAnnotationBtn: _NodeAnnotationBtn_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n MdiAlarmOff: _icons_mdi_alarm_off__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n MaterialSymbolsUndo: _icons_material_symbols_undo__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n MaterialSymbolsRedo: _icons_material_symbols_redo__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n IcOutlineFormatPaint: _icons_ic_outline_format_paint__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n RiMindMap: _icons_ri_mind_map__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n HugeiconsSubnodeAdd: _icons_hugeicons_subnode_add__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n IcTwotoneDeleteOutline: _icons_ic_twotone_delete_outline__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n LucideImagePlus: _icons_lucide_image_plus__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n MdiEmoticonPlusOutline: _icons_mdi_emoticon_plus_outline__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n MaterialSymbolsAddLink: _icons_material_symbols_add_link__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n FluentCommentAdd16Regular: _icons_fluent_comment_add_16_regular__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n MdiTagAdd: _icons_mdi_tag_add__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n MdiBracket: _icons_mdi_bracket__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n SimpleIconsRelay: _icons_simple_icons_relay__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n HugeiconsSummation01: _icons_hugeicons_summation_01__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n MdiCodeBlockBrackets: _icons_mdi_code_block_brackets__WEBPACK_IMPORTED_MODULE_17__[\"default\"],\n AntDesignNodeIndexOutlined: _icons_ant_design_node_index_outlined__WEBPACK_IMPORTED_MODULE_18__[\"default\"],\n HugeiconsSubnodeDelete: _icons_hugeicons_subnode_delete__WEBPACK_IMPORTED_MODULE_19__[\"default\"],\n HugeiconsNodeEdit: _icons_hugeicons_node_edit__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n ClarityAddTextLine: _icons_clarity_add_text_line__WEBPACK_IMPORTED_MODULE_21__[\"default\"]\n },\n props: {\n dir: {\n type: String,\n default: 'h' // h(水平排列)、v(垂直排列)\n },\n list: {\n type: Array,\n default() {\n return [];\n }\n }\n },\n data() {\n return {\n activeNodes: [],\n backEnd: true,\n forwardEnd: true,\n readonly: false,\n isFullDataFile: false,\n timer: null,\n isInPainter: false\n };\n },\n computed: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapState\"])({\n isDark: state => state.localConfig.isDark,\n supportMark: state => state.supportMark\n }),\n hasRoot() {\n return this.activeNodes.findIndex(node => {\n return node.isRoot;\n }) !== -1;\n },\n hasGeneralization() {\n return this.activeNodes.findIndex(node => {\n return node.isGeneralization;\n }) !== -1;\n }\n },\n created() {\n this.$bus.$on('mode_change', this.onModeChange);\n this.$bus.$on('node_active', this.onNodeActive);\n this.$bus.$on('back_forward', this.onBackForward);\n this.$bus.$on('painter_start', this.onPainterStart);\n this.$bus.$on('painter_end', this.onPainterEnd);\n },\n beforeDestroy() {\n this.$bus.$off('mode_change', this.onModeChange);\n this.$bus.$off('node_active', this.onNodeActive);\n this.$bus.$off('back_forward', this.onBackForward);\n this.$bus.$off('painter_start', this.onPainterStart);\n this.$bus.$off('painter_end', this.onPainterEnd);\n },\n methods: {\n ...Object(vuex__WEBPACK_IMPORTED_MODULE_0__[\"mapMutations\"])(['setActiveSidebar']),\n // 监听模式切换\n onModeChange(mode) {\n this.readonly = mode === 'readonly';\n },\n // 监听节点激活\n onNodeActive(...args) {\n this.activeNodes = [...args[1]];\n },\n // 监听前进后退\n onBackForward(index, len) {\n this.backEnd = index <= 0;\n this.forwardEnd = index >= len - 1;\n },\n // 开始格式刷\n onPainterStart() {\n this.isInPainter = true;\n },\n // 格式刷结束\n onPainterEnd() {\n this.isInPainter = false;\n },\n // 显示节点图标侧边栏\n showNodeIcon() {\n this.$bus.$emit('close_node_icon_toolbar');\n this.setActiveSidebar('nodeIconSidebar');\n },\n // 打开公式侧边栏\n showFormula() {\n this.setActiveSidebar('formulaSidebar');\n },\n // 选择附件\n selectAttachmentFile() {\n this.$bus.$emit('selectAttachment', this.activeNodes);\n },\n // 设置标记\n onSetAnnotation(...args) {\n this.$bus.$emit('execCommand', 'SET_NOTATION', this.activeNodes, ...args);\n }\n }\n});\n\n//# sourceURL=webpack:///./src/pages/Edit/components/ToolbarNodeBtnList.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/ImgUpload/index.vue?vue&type=template&id=1ee0b527&scoped=true":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ImgUpload/index.vue?vue&type=template&id=1ee0b527&scoped=true ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"imgUploadContainer\"\n }, [_c(\"div\", {\n staticClass: \"imgUploadPanel\"\n }, [!_vm.value ? _c(\"div\", {\n staticClass: \"upBtn\"\n }, [_c(\"label\", {\n staticClass: \"imgUploadInputArea\",\n attrs: {\n for: \"imgUploadInput\"\n },\n on: {\n dragenter: function ($event) {\n $event.stopPropagation();\n $event.preventDefault();\n },\n dragover: function ($event) {\n $event.stopPropagation();\n $event.preventDefault();\n },\n drop: function ($event) {\n $event.stopPropagation();\n $event.preventDefault();\n return _vm.onDrop.apply(null, arguments);\n }\n }\n }, [_vm._v(\"点击此处选择图片、或拖动图片到此\")]), _c(\"input\", {\n attrs: {\n type: \"file\",\n accept: \"image/*\",\n id: \"imgUploadInput\"\n },\n on: {\n change: _vm.onImgUploadInputChange\n }\n })]) : _vm._e(), _vm.value ? _c(\"div\", {\n staticClass: \"uploadInfoBox\"\n }, [_c(\"div\", {\n staticClass: \"previewBox\",\n style: {\n backgroundImage: `url('${_vm.value}')`\n }\n }), _c(\"span\", {\n staticClass: \"delBtn el-icon-close\",\n on: {\n click: _vm.deleteImg\n }\n })]) : _vm._e()])]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/components/ImgUpload/index.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/Index.vue?vue&type=template&id=4c868391&scoped=true":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/Index.vue?vue&type=template&id=4c868391&scoped=true ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"container kmind-container\",\n class: {\n isDark: _vm.isDark,\n activeSidebar: _vm.activeSidebar,\n \"kmind-doctree-doc-dom-mode\": _vm.isDomMode\n }\n }, [_vm.show ? [_c(\"Toolbar\"), _c(\"Edit\")] : _vm._e(), _vm.injectConfig.type !== \"sy-plugin\" && _vm.injectConfig.type !== \"sy-plugin-doc2kmind\" && _vm.injectConfig.type !== \"sy-doctree-doc\" && _vm.injectConfig.type !== \"sy-doctree-doc-dom\" && _vm.injectConfig.type !== \"sy-doctree-moc-dom\" && !_vm.isDebugger ? _c(\"div\", {\n staticClass: \"kmind-overlay\",\n attrs: {\n id: \"kmind-overlay\"\n }\n }, [_c(\"IcOutlineLock\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.isOverlayActive,\n expression: \"isOverlayActive\"\n }],\n staticClass: \"kmind-lockStatus\",\n attrs: {\n id: \"kmind-lockStatus\"\n }\n })], 1) : _vm._e(), _vm.injectConfig.type === \"sy-widget-mirror\" ? _c(\"div\", {\n staticClass: \"kmind-mirror-edit-link\",\n on: {\n click: _vm.handleOpenMirrorEdit\n }\n }, [_c(\"HugeiconsBookEdit\", {\n staticStyle: {\n \"margin-right\": \"5px\"\n }\n }), _vm._v(\" \" + _vm._s(_vm.$t(\"kmind.jumpToEditSourceDoc\")) + \" \" + _vm._s(_vm.getMirrorSourceFileName()) + \" \")], 1) : _vm._e()], 2);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/Index.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=template&id=127c4038&scoped=true":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=template&id=127c4038&scoped=true ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"Sidebar\", {\n ref: \"sidebar\",\n attrs: {\n title: \"关联线样式\"\n }\n }, [_c(\"div\", {\n staticClass: \"sidebarContent\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.associativeLine\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.associativeLineColor\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover4\",\n arg: \"popover4\"\n }],\n staticClass: \"block\",\n style: {\n backgroundColor: _vm.style.associativeLineColor\n }\n }), _c(\"el-popover\", {\n ref: \"popover4\",\n attrs: {\n placement: \"bottom\",\n trigger: \"click\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.style.associativeLineColor\n },\n on: {\n change: color => {\n _vm.update(\"associativeLineColor\", color);\n }\n }\n })], 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.associativeLineWidth\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.update(\"associativeLineWidth\", value);\n }\n },\n model: {\n value: _vm.style.associativeLineWidth,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"associativeLineWidth\", $$v);\n },\n expression: \"style.associativeLineWidth\"\n }\n }, _vm._l(_vm.lineWidthList, function (item) {\n return _c(\"el-option\", {\n key: item,\n attrs: {\n label: item,\n value: item\n }\n }, [item > 0 ? _c(\"span\", {\n staticClass: \"borderLine\",\n class: {\n isDark: _vm.isDark\n },\n style: {\n height: item + \"px\"\n }\n }) : _vm._e()]);\n }), 1)], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.associativeLineActiveColor\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover5\",\n arg: \"popover5\"\n }],\n staticClass: \"block\",\n style: {\n backgroundColor: _vm.style.associativeLineActiveColor\n }\n }), _c(\"el-popover\", {\n ref: \"popover5\",\n attrs: {\n placement: \"bottom\",\n trigger: \"click\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.style.associativeLineActiveColor\n },\n on: {\n change: color => {\n _vm.update(\"associativeLineActiveColor\", color);\n }\n }\n })], 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.associativeLineActiveWidth\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.update(\"associativeLineActiveWidth\", value);\n }\n },\n model: {\n value: _vm.style.associativeLineActiveWidth,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"associativeLineActiveWidth\", $$v);\n },\n expression: \"style.associativeLineActiveWidth\"\n }\n }, _vm._l(_vm.lineWidthList, function (item) {\n return _c(\"el-option\", {\n key: item,\n attrs: {\n label: item,\n value: item\n }\n }, [item > 0 ? _c(\"span\", {\n staticClass: \"borderLine\",\n class: {\n isDark: _vm.isDark\n },\n style: {\n height: item + \"px\"\n }\n }) : _vm._e()]);\n }), 1)], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.style\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.update(\"associativeLineDasharray\", value);\n }\n },\n model: {\n value: _vm.style.associativeLineDasharray,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"associativeLineDasharray\", $$v);\n },\n expression: \"style.associativeLineDasharray\"\n }\n }, _vm._l(_vm.borderDasharrayList, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n attrs: {\n label: item.name,\n value: item.value\n }\n }, [_c(\"svg\", {\n attrs: {\n width: \"120\",\n height: \"34\"\n }\n }, [_c(\"line\", {\n attrs: {\n x1: \"10\",\n y1: \"17\",\n x2: \"110\",\n y2: \"17\",\n \"stroke-width\": \"2\",\n stroke: _vm.style.associativeLineDasharray === item.value ? \"#409eff\" : _vm.isDark ? \"#fff\" : \"#000\",\n \"stroke-dasharray\": item.value\n }\n })])]);\n }), 1)], 1)]), _c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.associativeLineText\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.fontFamily\")))]), _c(\"el-select\", {\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"associativeLineTextFontFamily\", $event);\n }\n },\n model: {\n value: _vm.style.associativeLineTextFontFamily,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"associativeLineTextFontFamily\", $$v);\n },\n expression: \"style.associativeLineTextFontFamily\"\n }\n }, _vm._l(_vm.fontFamilyList, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n style: {\n fontFamily: item.value\n },\n attrs: {\n label: item.name,\n value: item.value\n }\n });\n }), 1)], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.color\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover6\",\n arg: \"popover6\"\n }],\n staticClass: \"block\",\n style: {\n backgroundColor: _vm.style.associativeLineTextColor\n }\n }), _c(\"el-popover\", {\n ref: \"popover6\",\n attrs: {\n placement: \"bottom\",\n trigger: \"click\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.style.associativeLineTextColor\n },\n on: {\n change: color => {\n _vm.update(\"associativeLineTextColor\", color);\n }\n }\n })], 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.fontSize\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"associativeLineTextFontSize\", $event);\n }\n },\n model: {\n value: _vm.style.associativeLineTextFontSize,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"associativeLineTextFontSize\", $$v);\n },\n expression: \"style.associativeLineTextFontSize\"\n }\n }, _vm._l(_vm.fontSizeList, function (item) {\n return _c(\"el-option\", {\n key: item,\n style: {\n fontSize: item + \"px\"\n },\n attrs: {\n label: item,\n value: item\n }\n });\n }), 1)], 1)])])]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/AssociativeLineStyle.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/BaseStyle.vue?vue&type=template&id=f49af710&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/BaseStyle.vue?vue&type=template&id=f49af710&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"Sidebar\", {\n ref: \"sidebar\",\n attrs: {\n title: _vm.$t(\"baseStyle.kmindTitle\")\n }\n }, [_vm.data ? _c(\"div\", {\n staticClass: \"sidebarContent customScrollbar\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.background\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"el-tabs\", {\n staticClass: \"tab\",\n model: {\n value: _vm.activeTab,\n callback: function ($$v) {\n _vm.activeTab = $$v;\n },\n expression: \"activeTab\"\n }\n }, [_c(\"el-tab-pane\", {\n attrs: {\n label: _vm.$t(\"baseStyle.color\"),\n name: \"color\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.style.backgroundColor\n },\n on: {\n change: color => {\n _vm.update(\"backgroundColor\", color);\n }\n }\n })], 1), _vm.isDebugger ? _c(\"el-tab-pane\", {\n attrs: {\n label: _vm.$t(\"baseStyle.image\"),\n name: \"image\"\n }\n }, [_c(\"ImgUpload\", {\n staticClass: \"imgUpload\",\n on: {\n change: img => {\n _vm.update(\"backgroundImage\", img);\n }\n },\n model: {\n value: _vm.style.backgroundImage,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"backgroundImage\", $$v);\n },\n expression: \"style.backgroundImage\"\n }\n }), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.imageRepeat\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"120px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.update(\"backgroundRepeat\", value);\n }\n },\n model: {\n value: _vm.style.backgroundRepeat,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"backgroundRepeat\", $$v);\n },\n expression: \"style.backgroundRepeat\"\n }\n }, _vm._l(_vm.backgroundRepeatList, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n attrs: {\n label: item.name,\n value: item.value\n }\n });\n }), 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.imagePosition\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"120px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.update(\"backgroundPosition\", value);\n }\n },\n model: {\n value: _vm.style.backgroundPosition,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"backgroundPosition\", $$v);\n },\n expression: \"style.backgroundPosition\"\n }\n }, _vm._l(_vm.backgroundPositionList, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n attrs: {\n label: item.name,\n value: item.value\n }\n });\n }), 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.imageSize\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"120px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.update(\"backgroundSize\", value);\n }\n },\n model: {\n value: _vm.style.backgroundSize,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"backgroundSize\", $$v);\n },\n expression: \"style.backgroundSize\"\n }\n }, _vm._l(_vm.backgroundSizeList, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n attrs: {\n label: item.name,\n value: item.value\n }\n });\n }), 1)], 1)], 1) : _vm._e()], 1)], 1), _c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.line\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.color\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover\",\n arg: \"popover\"\n }],\n staticClass: \"block\",\n style: {\n backgroundColor: _vm.style.lineColor\n }\n }), _c(\"el-popover\", {\n ref: \"popover\",\n attrs: {\n placement: \"bottom\",\n trigger: \"click\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.style.lineColor\n },\n on: {\n change: color => {\n _vm.update(\"lineColor\", color);\n }\n }\n })], 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.width\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.update(\"lineWidth\", value);\n }\n },\n model: {\n value: _vm.style.lineWidth,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"lineWidth\", $$v);\n },\n expression: \"style.lineWidth\"\n }\n }, _vm._l(_vm.lineWidthList, function (item) {\n return _c(\"el-option\", {\n key: item,\n attrs: {\n label: item,\n value: item\n }\n }, [item > 0 ? _c(\"span\", {\n staticClass: \"borderLine\",\n class: {\n isDark: _vm.isDark\n },\n style: {\n height: item + \"px\"\n }\n }) : _vm._e()]);\n }), 1)], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_vm.lineStyleListShow.length > 1 ? _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.style\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.update(\"lineStyle\", value);\n }\n },\n model: {\n value: _vm.style.lineStyle,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"lineStyle\", $$v);\n },\n expression: \"style.lineStyle\"\n }\n }, _vm._l(_vm.lineStyleListShow, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n staticClass: \"lineStyleOption\",\n class: {\n isDark: _vm.isDark,\n isSelected: _vm.style.lineStyle === item.value\n },\n attrs: {\n label: item.name,\n value: item.value\n },\n domProps: {\n innerHTML: _vm._s(_vm.lineStyleMap[item.value])\n }\n });\n }), 1)], 1) : _vm._e(), _vm.style.lineStyle === \"curve\" && _vm.showRootLineKeepSameInCurveLayouts ? _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.rootStyle\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.update(\"rootLineKeepSameInCurve\", value);\n }\n },\n model: {\n value: _vm.style.rootLineKeepSameInCurve,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"rootLineKeepSameInCurve\", $$v);\n },\n expression: \"style.rootLineKeepSameInCurve\"\n }\n }, _vm._l(_vm.rootLineKeepSameInCurveList, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n attrs: {\n label: item.name,\n value: item.value\n }\n });\n }), 1)], 1) : _vm._e(), _vm.showLineRadius ? _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.lineRadius\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.update(\"lineRadius\", value);\n }\n },\n model: {\n value: _vm.style.lineRadius,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"lineRadius\", $$v);\n },\n expression: \"style.lineRadius\"\n }\n }, _vm._l([0, 2, 5, 7, 10, 12, 15], function (item) {\n return _c(\"el-option\", {\n key: item,\n attrs: {\n label: item,\n value: item\n }\n });\n }), 1)], 1) : _vm._e()]), _c(\"div\", {\n staticClass: \"row\"\n }, [_vm.style.lineStyle === \"curve\" && _vm.showRootLineKeepSameInCurveLayouts ? _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.rootLineStartPos\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.update(\"rootLineStartPositionKeepSameInCurve\", value);\n }\n },\n model: {\n value: _vm.style.rootLineStartPositionKeepSameInCurve,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"rootLineStartPositionKeepSameInCurve\", $$v);\n },\n expression: \"style.rootLineStartPositionKeepSameInCurve\"\n }\n }, [_c(\"el-option\", {\n key: \"center\",\n attrs: {\n label: _vm.$t(\"baseStyle.center\"),\n value: false\n }\n }), _c(\"el-option\", {\n key: \"right\",\n attrs: {\n label: _vm.$t(\"baseStyle.edge\"),\n value: true\n }\n })], 1)], 1) : _vm._e()]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-checkbox\", {\n on: {\n change: value => {\n _vm.update(\"showLineMarker\", value);\n }\n },\n model: {\n value: _vm.style.showLineMarker,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"showLineMarker\", $$v);\n },\n expression: \"style.showLineMarker\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.showArrow\")))])], 1)]), _vm.supportLineFlow ? _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.openLineFlow\")))]), _c(\"el-checkbox\", {\n on: {\n change: value => {\n _vm.update(\"lineFlow\", value);\n }\n },\n model: {\n value: _vm.style.lineFlow,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"lineFlow\", $$v);\n },\n expression: \"style.lineFlow\"\n }\n })], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.direction\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.update(\"lineFlowForward\", value);\n }\n },\n model: {\n value: _vm.style.lineFlowForward,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"lineFlowForward\", $$v);\n },\n expression: \"style.lineFlowForward\"\n }\n }, [_c(\"el-option\", {\n key: \"1\",\n attrs: {\n label: _vm.$t(\"style.forward\"),\n value: true\n }\n }), _c(\"el-option\", {\n key: \"2\",\n attrs: {\n label: _vm.$t(\"style.reverse\"),\n value: false\n }\n })], 1)], 1)]) : _vm._e(), _vm.supportLineFlow ? _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.lineFlowDuration\")))]), _c(\"el-input-number\", {\n attrs: {\n min: 0.1,\n size: \"mini\",\n step: 0.5\n },\n on: {\n change: value => {\n _vm.update(\"lineFlowDuration\", value);\n }\n },\n model: {\n value: _vm.style.lineFlowDuration,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"lineFlowDuration\", $$v);\n },\n expression: \"style.lineFlowDuration\"\n }\n })], 1)]) : _vm._e(), _c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.rainbowLines\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-popover\", {\n attrs: {\n placement: \"right\",\n trigger: \"click\"\n },\n model: {\n value: _vm.rainbowLinesPopoverVisible,\n callback: function ($$v) {\n _vm.rainbowLinesPopoverVisible = $$v;\n },\n expression: \"rainbowLinesPopoverVisible\"\n }\n }, [_c(\"div\", {\n staticClass: \"rainbowLinesOptionsBox\",\n class: {\n isDark: _vm.isDark\n }\n }, _vm._l(_vm.rainbowLinesOptions, function (item) {\n return _c(\"div\", {\n key: item.value,\n staticClass: \"optionItem\"\n }, [item.list ? _c(\"div\", {\n staticClass: \"colorsBar\",\n on: {\n click: function ($event) {\n return _vm.updateRainbowLinesConfig(item);\n }\n }\n }, _vm._l(item.list, function (color) {\n return _c(\"span\", {\n staticClass: \"colorItem\",\n style: {\n backgroundColor: color\n }\n });\n }), 0) : _c(\"span\", {\n on: {\n click: function ($event) {\n return _vm.updateRainbowLinesConfig(item);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.notUseRainbowLines\")))])]);\n }), 0), _c(\"div\", {\n staticClass: \"curRainbowLine\",\n attrs: {\n slot: \"reference\"\n },\n slot: \"reference\"\n }, [_vm.curRainbowLineColorList ? _c(\"div\", {\n staticClass: \"colorsBar\"\n }, _vm._l(_vm.curRainbowLineColorList, function (color) {\n return _c(\"span\", {\n staticClass: \"colorItem\",\n style: {\n backgroundColor: color\n }\n });\n }), 0) : _c(\"span\", [_vm._v(_vm._s(_vm.$t(\"baseStyle.notUseRainbowLines\")))])])])], 1)]), _c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.lineOfOutline\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.color\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover2\",\n arg: \"popover2\"\n }],\n staticClass: \"block\",\n style: {\n backgroundColor: _vm.style.generalizationLineColor\n }\n }), _c(\"el-popover\", {\n ref: \"popover2\",\n attrs: {\n placement: \"bottom\",\n trigger: \"click\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.style.generalizationLineColor\n },\n on: {\n change: color => {\n _vm.update(\"generalizationLineColor\", color);\n }\n }\n })], 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.width\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.update(\"generalizationLineWidth\", value);\n }\n },\n model: {\n value: _vm.style.generalizationLineWidth,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"generalizationLineWidth\", $$v);\n },\n expression: \"style.generalizationLineWidth\"\n }\n }, _vm._l(_vm.lineWidthList, function (item) {\n return _c(\"el-option\", {\n key: item,\n attrs: {\n label: item,\n value: item\n }\n }, [item > 0 ? _c(\"span\", {\n staticClass: \"borderLine\",\n class: {\n isDark: _vm.isDark\n },\n style: {\n height: item + \"px\"\n }\n }) : _vm._e()]);\n }), 1)], 1)]), _c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.associativeLine\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.associativeLineColor\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover4\",\n arg: \"popover4\"\n }],\n staticClass: \"block\",\n style: {\n backgroundColor: _vm.style.associativeLineColor\n }\n }), _c(\"el-popover\", {\n ref: \"popover4\",\n attrs: {\n placement: \"bottom\",\n trigger: \"click\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.style.associativeLineColor\n },\n on: {\n change: color => {\n _vm.update(\"associativeLineColor\", color);\n }\n }\n })], 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.associativeLineWidth\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.update(\"associativeLineWidth\", value);\n }\n },\n model: {\n value: _vm.style.associativeLineWidth,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"associativeLineWidth\", $$v);\n },\n expression: \"style.associativeLineWidth\"\n }\n }, _vm._l(_vm.lineWidthList, function (item) {\n return _c(\"el-option\", {\n key: item,\n attrs: {\n label: item,\n value: item\n }\n }, [item > 0 ? _c(\"span\", {\n staticClass: \"borderLine\",\n class: {\n isDark: _vm.isDark\n },\n style: {\n height: item + \"px\"\n }\n }) : _vm._e()]);\n }), 1)], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.associativeLineActiveColor\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover5\",\n arg: \"popover5\"\n }],\n staticClass: \"block\",\n style: {\n backgroundColor: _vm.style.associativeLineActiveColor\n }\n }), _c(\"el-popover\", {\n ref: \"popover5\",\n attrs: {\n placement: \"bottom\",\n trigger: \"click\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.style.associativeLineActiveColor\n },\n on: {\n change: color => {\n _vm.update(\"associativeLineActiveColor\", color);\n }\n }\n })], 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.associativeLineActiveWidth\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.update(\"associativeLineActiveWidth\", value);\n }\n },\n model: {\n value: _vm.style.associativeLineActiveWidth,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"associativeLineActiveWidth\", $$v);\n },\n expression: \"style.associativeLineActiveWidth\"\n }\n }, _vm._l(_vm.lineWidthList, function (item) {\n return _c(\"el-option\", {\n key: item,\n attrs: {\n label: item,\n value: item\n }\n }, [item > 0 ? _c(\"span\", {\n staticClass: \"borderLine\",\n class: {\n isDark: _vm.isDark\n },\n style: {\n height: item + \"px\"\n }\n }) : _vm._e()]);\n }), 1)], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.style\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.update(\"associativeLineDasharray\", value);\n }\n },\n model: {\n value: _vm.style.associativeLineDasharray,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"associativeLineDasharray\", $$v);\n },\n expression: \"style.associativeLineDasharray\"\n }\n }, _vm._l(_vm.borderDasharrayList, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n attrs: {\n label: item.name,\n value: item.value\n }\n }, [_c(\"svg\", {\n attrs: {\n width: \"120\",\n height: \"34\"\n }\n }, [_c(\"line\", {\n attrs: {\n x1: \"10\",\n y1: \"17\",\n x2: \"110\",\n y2: \"17\",\n \"stroke-width\": \"2\",\n stroke: _vm.style.associativeLineDasharray === item.value ? \"#409eff\" : _vm.isDark ? \"#fff\" : \"#000\",\n \"stroke-dasharray\": item.value\n }\n })])]);\n }), 1)], 1)]), _c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.associativeLineText\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.fontFamily\")))]), _c(\"el-select\", {\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"associativeLineTextFontFamily\", $event);\n }\n },\n model: {\n value: _vm.style.associativeLineTextFontFamily,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"associativeLineTextFontFamily\", $$v);\n },\n expression: \"style.associativeLineTextFontFamily\"\n }\n }, _vm._l(_vm.fontFamilyList, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n style: {\n fontFamily: item.value\n },\n attrs: {\n label: item.name,\n value: item.value\n }\n });\n }), 1)], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.color\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover6\",\n arg: \"popover6\"\n }],\n staticClass: \"block\",\n style: {\n backgroundColor: _vm.style.associativeLineTextColor\n }\n }), _c(\"el-popover\", {\n ref: \"popover6\",\n attrs: {\n placement: \"bottom\",\n trigger: \"click\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.style.associativeLineTextColor\n },\n on: {\n change: color => {\n _vm.update(\"associativeLineTextColor\", color);\n }\n }\n })], 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.fontSize\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"associativeLineTextFontSize\", $event);\n }\n },\n model: {\n value: _vm.style.associativeLineTextFontSize,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"associativeLineTextFontSize\", $$v);\n },\n expression: \"style.associativeLineTextFontSize\"\n }\n }, _vm._l(_vm.fontSizeList, function (item) {\n return _c(\"el-option\", {\n key: item,\n style: {\n fontSize: item + \"px\"\n },\n attrs: {\n label: item,\n value: item\n }\n });\n }), 1)], 1)]), _vm.showNodeUseLineStyle && _vm.isDebugger ? [_c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.nodeBorderType\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-checkbox\", {\n on: {\n change: value => {\n _vm.update(\"nodeUseLineStyle\", value);\n }\n },\n model: {\n value: _vm.style.nodeUseLineStyle,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"nodeUseLineStyle\", $$v);\n },\n expression: \"style.nodeUseLineStyle\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.nodeUseLineStyle\")))])], 1)])] : _vm._e(), _c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.nodePadding\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.horizontal\")))]), _c(\"el-slider\", {\n staticStyle: {\n width: \"200px\"\n },\n on: {\n change: value => {\n _vm.update(\"paddingX\", value);\n }\n },\n model: {\n value: _vm.style.paddingX,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"paddingX\", $$v);\n },\n expression: \"style.paddingX\"\n }\n })], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.vertical\")))]), _c(\"el-slider\", {\n staticStyle: {\n width: \"200px\"\n },\n on: {\n change: value => {\n _vm.update(\"paddingY\", value);\n }\n },\n model: {\n value: _vm.style.paddingY,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"paddingY\", $$v);\n },\n expression: \"style.paddingY\"\n }\n })], 1)]), _c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.image\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.maximumWidth\")))]), _c(\"el-slider\", {\n staticStyle: {\n width: \"140px\"\n },\n attrs: {\n min: 10,\n max: 500\n },\n on: {\n change: value => {\n _vm.update(\"imgMaxWidth\", value);\n }\n },\n model: {\n value: _vm.style.imgMaxWidth,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"imgMaxWidth\", $$v);\n },\n expression: \"style.imgMaxWidth\"\n }\n })], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.maximumHeight\")))]), _c(\"el-slider\", {\n staticStyle: {\n width: \"140px\"\n },\n attrs: {\n min: 10,\n max: 500\n },\n on: {\n change: value => {\n _vm.update(\"imgMaxHeight\", value);\n }\n },\n model: {\n value: _vm.style.imgMaxHeight,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"imgMaxHeight\", $$v);\n },\n expression: \"style.imgMaxHeight\"\n }\n })], 1)]), _c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.icon\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.size\")))]), _c(\"el-slider\", {\n staticStyle: {\n width: \"200px\"\n },\n attrs: {\n min: 12,\n max: 50\n },\n on: {\n change: value => {\n _vm.update(\"iconSize\", value);\n }\n },\n model: {\n value: _vm.style.iconSize,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"iconSize\", $$v);\n },\n expression: \"style.iconSize\"\n }\n })], 1)]), _c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.nodeMargin\")))]), _c(\"div\", {\n staticClass: \"row column\"\n }, [_c(\"el-tabs\", {\n staticClass: \"tab\",\n on: {\n \"tab-click\": _vm.initMarginStyle\n },\n model: {\n value: _vm.marginActiveTab,\n callback: function ($$v) {\n _vm.marginActiveTab = $$v;\n },\n expression: \"marginActiveTab\"\n }\n }, [_c(\"el-tab-pane\", {\n attrs: {\n label: _vm.$t(\"baseStyle.level2Node\"),\n name: \"second\"\n }\n }), _c(\"el-tab-pane\", {\n attrs: {\n label: _vm.$t(\"baseStyle.belowLevel2Node\"),\n name: \"node\"\n }\n })], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.horizontal\")))]), _c(\"el-slider\", {\n staticStyle: {\n width: \"200px\"\n },\n attrs: {\n max: 200\n },\n on: {\n change: value => {\n _vm.updateMargin(\"marginX\", value);\n }\n },\n model: {\n value: _vm.style.marginX,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"marginX\", $$v);\n },\n expression: \"style.marginX\"\n }\n })], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.vertical\")))]), _c(\"el-slider\", {\n staticStyle: {\n width: \"200px\"\n },\n attrs: {\n max: 200\n },\n on: {\n change: value => {\n _vm.updateMargin(\"marginY\", value);\n }\n },\n model: {\n value: _vm.style.marginY,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"marginY\", $$v);\n },\n expression: \"style.marginY\"\n }\n })], 1)], 1), _vm.isDebugger ? _c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(\" \" + _vm._s(_vm.$t(\"baseStyle.outerFramePadding\")) + \" \")]) : _vm._e(), _vm.isDebugger ? _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.horizontal\")))]), _c(\"el-slider\", {\n staticStyle: {\n width: \"200px\"\n },\n on: {\n change: value => {\n _vm.updateOuterFramePadding(\"outerFramePaddingX\", value);\n }\n },\n model: {\n value: _vm.outerFramePadding.outerFramePaddingX,\n callback: function ($$v) {\n _vm.$set(_vm.outerFramePadding, \"outerFramePaddingX\", $$v);\n },\n expression: \"outerFramePadding.outerFramePaddingX\"\n }\n })], 1)]) : _vm._e(), _vm.isDebugger ? _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"baseStyle.vertical\")))]), _c(\"el-slider\", {\n staticStyle: {\n width: \"200px\"\n },\n on: {\n change: value => {\n _vm.updateOuterFramePadding(\"outerFramePaddingY\", value);\n }\n },\n model: {\n value: _vm.outerFramePadding.outerFramePaddingY,\n callback: function ($$v) {\n _vm.$set(_vm.outerFramePadding, \"outerFramePaddingY\", $$v);\n },\n expression: \"outerFramePadding.outerFramePaddingY\"\n }\n })], 1)]) : _vm._e()], 2) : _vm._e()]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/BaseStyle.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Color.vue?vue&type=template&id=48030e0a&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Color.vue?vue&type=template&id=48030e0a&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"colorContainer\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"div\", {\n staticClass: \"colorList\"\n }, _vm._l(_vm.colorList, function (item) {\n return _c(\"span\", {\n key: item,\n staticClass: \"colorItem iconfont\",\n class: {\n icontouming: item === \"transparent\"\n },\n style: {\n backgroundColor: item\n },\n on: {\n click: function ($event) {\n return _vm.clickColorItem(item);\n }\n }\n });\n }), 0), _c(\"div\", {\n staticClass: \"moreColor\"\n }, [_c(\"span\", [_vm._v(_vm._s(_vm.$t(\"color.moreColor\")))]), _c(\"el-color-picker\", {\n attrs: {\n size: \"mini\",\n \"show-alpha\": \"\"\n },\n on: {\n change: _vm.changeColor\n },\n model: {\n value: _vm.selectColor,\n callback: function ($$v) {\n _vm.selectColor = $$v;\n },\n expression: \"selectColor\"\n }\n })], 1)]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Color.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Contextmenu.vue?vue&type=template&id=ca7290b4&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Contextmenu.vue?vue&type=template&id=ca7290b4&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _vm.isShow ? _c(\"div\", {\n ref: \"contextmenuRef\",\n staticClass: \"contextmenuContainer listBox\",\n class: {\n isDark: _vm.isDark\n },\n style: {\n left: _vm.left + \"px\",\n top: _vm.top + \"px\"\n }\n }, [_vm.type === \"node\" ? [_c(\"div\", {\n staticClass: \"item\",\n class: {\n disabled: _vm.insertNodeBtnDisabled\n },\n on: {\n click: function ($event) {\n return _vm.exec(\"INSERT_NODE\", _vm.insertNodeBtnDisabled);\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.insertSiblingNode\")))]), _c(\"span\", {\n staticClass: \"desc\"\n }, [_vm._v(\"Enter\")])]), _c(\"div\", {\n staticClass: \"item\",\n class: {\n disabled: _vm.isGeneralization\n },\n on: {\n click: function ($event) {\n return _vm.exec(\"INSERT_CHILD_NODE\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.insertChildNode\")))]), _c(\"span\", {\n staticClass: \"desc\"\n }, [_vm._v(\"Tab\")])]), !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item\",\n class: {\n disabled: _vm.insertNodeBtnDisabled\n },\n on: {\n click: function ($event) {\n return _vm.exec(\"INSERT_PARENT_NODE\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.insertParentNode\")))]), _c(\"span\", {\n staticClass: \"desc\"\n }, [_vm._v(\"Shift + Tab\")])]) : _vm._e(), !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item\",\n class: {\n disabled: _vm.insertNodeBtnDisabled\n },\n on: {\n click: function ($event) {\n return _vm.exec(\"ADD_GENERALIZATION\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.insertSummary\")))]), _c(\"span\", {\n staticClass: \"desc\"\n }, [_vm._v(\"Ctrl + G\")])]) : _vm._e(), !_vm.isMocMode && (_vm.injectConfig.type === \"sy-doctree-doc\" || _vm.injectConfig.type === \"sy-doctree-doc-dom\" || _vm.isDebugger) ? _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"ADD_SIYUAN_PAGE\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.addSiyuanPage\")))]), _c(\"span\", {\n staticClass: \"desc\"\n }, [_c(\"svg\", {\n attrs: {\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 1024 1024\"\n }\n }, [_c(\"title\"), _c(\"g\", {\n attrs: {\n id: \"icomoon-ignore\"\n }\n }), _c(\"path\", {\n attrs: {\n fill: \"#d23f31\",\n d: \"M37.052 371.676l269.857-269.857v550.507l-269.857 269.857z\"\n }\n }), _c(\"path\", {\n attrs: {\n fill: \"#3b3e43\",\n d: \"M306.909 101.818l205.091 205.091v550.507l-205.091-205.091z\"\n }\n }), _c(\"path\", {\n attrs: {\n fill: \"#d23f31\",\n d: \"M512 306.909l205.091-205.091v550.507l-205.091 205.091z\"\n }\n }), _c(\"path\", {\n attrs: {\n fill: \"#3b3e43\",\n d: \"M717.091 101.818l269.857 269.857v550.507l-269.857-269.857z\"\n }\n })])])]) : _vm._e(), _c(\"div\", {\n staticClass: \"splitLine\"\n }), !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item\",\n class: {\n disabled: _vm.upNodeBtnDisabled\n },\n on: {\n click: function ($event) {\n return _vm.exec(\"UP_NODE\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.moveUpNode\")))]), _c(\"span\", {\n staticClass: \"desc\"\n }, [_vm._v(\"Ctrl + ↑\")])]) : _vm._e(), !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item\",\n class: {\n disabled: _vm.downNodeBtnDisabled\n },\n on: {\n click: function ($event) {\n return _vm.exec(\"DOWN_NODE\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.moveDownNode\")))]), _c(\"span\", {\n staticClass: \"desc\"\n }, [_vm._v(\"Ctrl + ↓\")])]) : _vm._e(), _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"UNEXPAND_ALL\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.unExpandNodeChild\")))])]), _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"EXPAND_ALL\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.expandNodeChild\")))])]), _vm.supportNumbers && !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.number\")))]), _c(\"span\", {\n staticClass: \"el-icon-arrow-right\"\n }), _c(\"div\", {\n staticClass: \"subItems listBox\",\n class: {\n isDark: _vm.isDark,\n showLeft: _vm.subItemsShowLeft\n },\n staticStyle: {\n top: \"-170px\"\n }\n }, [_vm._l(_vm.numberTypeList, function (item) {\n return _c(\"div\", {\n key: \"type\" + item.value,\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.setNodeNumber(\"type\", item.value);\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(item.name))]), _vm._v(\" \" + _vm._s(_vm.numberType === item.value ? \"√\" : \"\") + \" \")]);\n }), _c(\"div\", {\n staticClass: \"splitLine\"\n }), _vm._l(_vm.numberLevelList, function (item) {\n return _c(\"div\", {\n key: \"level\" + item.value,\n staticClass: \"item\",\n class: {\n disabled: _vm.numberType === \"\"\n },\n on: {\n click: function ($event) {\n return _vm.setNodeNumber(\"level\", item.value);\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(item.name))]), _vm._v(\" \" + _vm._s(_vm.numberLevel === item.value ? \"√\" : \"\") + \" \")]);\n })], 2)]) : _vm._e(), _vm.supportCheckbox && !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: _vm.setCheckbox\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.hasCheckbox ? _vm.$t(\"contextmenu.removeToDo\") : _vm.$t(\"contextmenu.addToDo\")))])]) : _vm._e(), _c(\"div\", {\n staticClass: \"splitLine\"\n }), _c(\"div\", {\n staticClass: \"item danger\",\n on: {\n click: function ($event) {\n return _vm.exec(\"REMOVE_NODE\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.deleteNode\")))]), _c(\"span\", {\n staticClass: \"desc\"\n }, [_vm._v(\"Delete\")])]), !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item danger\",\n on: {\n click: function ($event) {\n return _vm.exec(\"REMOVE_CURRENT_NODE\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.deleteCurrentNode\")))]), _c(\"span\", {\n staticClass: \"desc\"\n }, [_vm._v(\"Shift + Backspace\")])]) : _vm._e(), _c(\"div\", {\n staticClass: \"splitLine\"\n }), !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item\",\n class: {\n disabled: _vm.isGeneralization\n },\n on: {\n click: function ($event) {\n return _vm.exec(\"COPY_NODE\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.copyNode\")))]), _c(\"span\", {\n staticClass: \"desc\"\n }, [_vm._v(\"Ctrl + C\")])]) : _vm._e(), !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: _vm.copyKmindNodeHyperlink\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.copyNodeHyperlink\")))]), _c(\"span\", {\n staticClass: \"desc\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.copyNodeHyperlinkDesc\")))])]) : _vm._e(), !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item\",\n class: {\n disabled: _vm.isGeneralization\n },\n on: {\n click: function ($event) {\n return _vm.exec(\"CUT_NODE\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.cutNode\")))]), _c(\"span\", {\n staticClass: \"desc\"\n }, [_vm._v(\"Ctrl + X\")])]) : _vm._e(), !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"PASTE_NODE\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.pasteNode\")))]), _c(\"span\", {\n staticClass: \"desc\"\n }, [_vm._v(\"Ctrl + V\")])]) : _vm._e(), _c(\"div\", {\n staticClass: \"splitLine\"\n }), _vm.hasHyperlink && !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item danger\",\n on: {\n click: function ($event) {\n return _vm.exec(\"REMOVE_HYPERLINK\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.removeHyperlink\")))])]) : _vm._e(), _vm.hasSiyuanHyperlink && !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item danger\",\n on: {\n click: function ($event) {\n return _vm.exec(\"REMOVE_SIYUAN_HYPERLINK\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.removeSiyuanHyperlink\")))])]) : _vm._e(), _vm.hasSiyuanPDFLink && !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item danger\",\n on: {\n click: function ($event) {\n return _vm.exec(\"REMOVE_SIYUAN_PDF_HYPERLINK\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.removeSiyuanPDFHyperlink\")))])]) : _vm._e(), _vm.hasNote && !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"REMOVE_NOTE\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.removeNote\")))])]) : _vm._e(), !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"REMOVE_CUSTOM_STYLES\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.removeCustomStyles\")))])]) : _vm._e(), _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"EXPORT_CUR_NODE_TO_PNG\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.exportNodeToPng\")))])]), _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"KMIND_COPY_CUR_NODE_TO_PNG\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.kmindCopyNodeToPng\")))])]), _vm.injectConfig.type === \"sy-doctree-doc\" || _vm.injectConfig.type === \"sy-doctree-doc-dom\" || _vm.isDebugger ? _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"KMIND_COPY_NODE_MIRROR_BLOCK\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.copyNodeMirrorBlock\")))])]) : _vm._e()] : _vm._e(), _vm.type === \"svg\" ? [_vm.injectConfig.type === \"sy-plugin-doc2kmind\" || _vm.isDebugger ? _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n _vm.$bus.$emit(\"showExport\");\n _vm.hide();\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.export\")))])]) : _vm._e(), _vm.injectConfig.type === \"sy-plugin-doc2kmind\" || _vm.isDebugger ? _c(\"div\", {\n staticClass: \"splitLine\"\n }) : _vm._e(), _vm.isMocMode ? _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: _vm.refreshMocData\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"moc.refreshMocData\")))])]) : _vm._e(), _vm.isMocMode ? _c(\"div\", {\n staticClass: \"splitLine\"\n }) : _vm._e(), _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"RETURN_CENTER\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.backCenter\")))]), _c(\"span\", {\n staticClass: \"desc\"\n }, [_vm._v(\"Ctrl + Enter\")])]), _c(\"div\", {\n staticClass: \"splitLine\"\n }), _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"EXPAND_ALL\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.expandAll\")))])]), _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"UNEXPAND_ALL\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.unExpandAll\")))])]), _c(\"div\", {\n staticClass: \"item\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.expandTo\")))]), _c(\"span\", {\n staticClass: \"el-icon-arrow-right\"\n }), _c(\"div\", {\n staticClass: \"subItems listBox\",\n class: {\n isDark: _vm.isDark,\n showLeft: _vm.subItemsShowLeft\n },\n staticStyle: {\n top: \"-10px\"\n }\n }, _vm._l(_vm.expandList, function (item, index) {\n return _c(\"div\", {\n key: item,\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"UNEXPAND_TO_LEVEL\", false, index + 1);\n }\n }\n }, [_vm._v(\" \" + _vm._s(item) + \" \")]);\n }), 0)]), _c(\"div\", {\n staticClass: \"splitLine\"\n }), _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"RESET_LAYOUT\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.arrangeLayout\")))]), _c(\"span\", {\n staticClass: \"desc\"\n }, [_vm._v(\"Ctrl + L\")])]), _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"FIT_CANVAS\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.fitCanvas\")))]), _c(\"span\", {\n staticClass: \"desc\"\n }, [_vm._v(\"Ctrl + i\")])]), !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"TOGGLE_ZEN_MODE\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.zenMode\")))]), _vm._v(\" \" + _vm._s(_vm.isZenMode ? \"√\" : \"\") + \" \")]) : _vm._e(), _c(\"div\", {\n staticClass: \"splitLine\"\n }), !_vm.isMocMode ? _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.exec(\"REMOVE_ALL_NODE_CUSTOM_STYLES\");\n }\n }\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.removeAllNodeCustomStyles\")))])]) : _vm._e(), _c(\"div\", {\n staticClass: \"item\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"contextmenu.copyToClipboard\")))]), _c(\"span\", {\n staticClass: \"el-icon-arrow-right\"\n }), _c(\"div\", {\n staticClass: \"subItems listBox\",\n class: {\n isDark: _vm.isDark,\n showLeft: _vm.subItemsShowLeft\n },\n staticStyle: {\n top: \"-130px\"\n }\n }, _vm._l(_vm.copyList, function (item) {\n return _c(\"div\", {\n key: item.value,\n staticClass: \"item\",\n on: {\n click: function ($event) {\n return _vm.copyToClipboard(item.value);\n }\n }\n }, [_vm._v(\" \" + _vm._s(item.name) + \" \")]);\n }), 0)])] : _vm._e()], 2) : _vm._e();\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Contextmenu.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Count.vue?vue&type=template&id=930436b2&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Count.vue?vue&type=template&id=930436b2&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"countContainer\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"div\", {\n staticClass: \"item\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"count.words\")))]), _c(\"span\", {\n staticClass: \"value\"\n }, [_vm._v(_vm._s(_vm.words))])]), _c(\"div\", {\n staticClass: \"item\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"count.nodes\")))]), _c(\"span\", {\n staticClass: \"value\"\n }, [_vm._v(_vm._s(_vm.num))])])]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Count.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Demonstrate.vue?vue&type=template&id=7e7ebaf8&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Demonstrate.vue?vue&type=template&id=7e7ebaf8&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"demonstrateContainer\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"el-tooltip\", {\n staticClass: \"item\",\n attrs: {\n effect: \"dark\",\n content: _vm.$t(\"demonstrate.demonstrate\"),\n placement: \"top\"\n }\n }, [_c(\"div\", {\n staticClass: \"btn iconfont iconyanshibofang\",\n on: {\n click: _vm.enterDemoMode\n }\n })]), _vm.isEnterDemonstrate ? _c(\"div\", {\n ref: \"exitDemonstrateBtnRef\",\n staticClass: \"exitDemonstrateBtn\",\n on: {\n click: _vm.exit,\n mousedown: function ($event) {\n $event.stopPropagation();\n },\n mousemove: function ($event) {\n $event.stopPropagation();\n },\n mouseup: function ($event) {\n $event.stopPropagation();\n }\n }\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconguanbi\"\n })]) : _vm._e(), _vm.isEnterDemonstrate ? _c(\"div\", {\n ref: \"stepBoxRef\",\n staticClass: \"stepBox\",\n on: {\n mousedown: function ($event) {\n $event.stopPropagation();\n },\n mousemove: function ($event) {\n $event.stopPropagation();\n },\n mouseup: function ($event) {\n $event.stopPropagation();\n }\n }\n }, [_c(\"div\", {\n staticClass: \"jump\",\n class: {\n disabled: _vm.curStepIndex <= 0\n },\n on: {\n click: _vm.prev\n }\n }, [_c(\"span\", {\n staticClass: \"icon el-icon-back\"\n })]), _c(\"div\", {\n staticClass: \"step\"\n }, [_vm._v(_vm._s(_vm.curStepIndex + 1) + \" / \" + _vm._s(_vm.totalStep))]), _c(\"div\", {\n staticClass: \"jump\",\n class: {\n disabled: _vm.curStepIndex >= _vm.totalStep - 1\n },\n on: {\n click: _vm.next\n }\n }, [_c(\"span\", {\n staticClass: \"icon el-icon-right\"\n })]), _c(\"div\", {\n staticClass: \"input\"\n }, [_c(\"input\", {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.inputStep,\n expression: \"inputStep\"\n }],\n attrs: {\n type: \"text\"\n },\n domProps: {\n value: _vm.inputStep\n },\n on: {\n keyup: function ($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n $event.stopPropagation();\n return _vm.onEnter.apply(null, arguments);\n },\n keydown: function ($event) {\n $event.stopPropagation();\n },\n input: function ($event) {\n if ($event.target.composing) return;\n _vm.inputStep = $event.target.value;\n }\n }\n })])]) : _vm._e()], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Demonstrate.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Edit.vue?vue&type=template&id=84e609bc&scoped=true":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Edit.vue?vue&type=template&id=84e609bc&scoped=true ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"editContainer\",\n class: {\n \"position-absolute\": _vm.isDomMode\n },\n on: {\n dragenter: function ($event) {\n $event.stopPropagation();\n $event.preventDefault();\n return _vm.onDragenter.apply(null, arguments);\n },\n dragleave: function ($event) {\n $event.stopPropagation();\n $event.preventDefault();\n },\n dragover: function ($event) {\n $event.stopPropagation();\n $event.preventDefault();\n },\n drop: function ($event) {\n $event.stopPropagation();\n $event.preventDefault();\n }\n }\n }, [_c(\"div\", {\n ref: \"mindMapContainer\",\n staticClass: \"mindMapContainer\",\n attrs: {\n id: \"mindMapContainer\"\n }\n }), !_vm.isZenMode && _vm.injectConfig.type !== \"sy-plugin-doc2kmind\" && _vm.injectConfig.type !== \"sy-widget-mirror\" ? _c(\"Count\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"Navigator\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), !_vm.isZenMode && _vm.injectConfig.type !== \"sy-plugin-doc2kmind\" && _vm.injectConfig.type !== \"sy-widget-mirror\" ? _c(\"NavigatorToolbar\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _c(\"OutlineSidebar\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }), !_vm.isZenMode ? _c(\"Style\") : _vm._e(), _c(\"BaseStyle\", {\n attrs: {\n data: _vm.mindMapData,\n mindMap: _vm.mindMap\n }\n }), _vm.mindMap ? _c(\"AssociativeLineStyle\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"Theme\", {\n attrs: {\n data: _vm.mindMapData,\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _c(\"Structure\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }), _c(\"ShortcutKey\"), _vm.mindMap && _vm.injectConfig.type !== \"sy-widget-mirror\" ? _c(\"Contextmenu\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"RichTextToolbar\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"KmindFloatToolbar\", {\n attrs: {\n mindMap: _vm.mindMap,\n isDark: _vm.isDark\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"NodeNoteContentShow\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"NodeAttachment\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"NodeImgPreview\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), !_vm.isZenMode && _vm.injectConfig.type !== \"sy-plugin-doc2kmind\" && _vm.injectConfig.type !== \"sy-widget-mirror\" ? _c(\"SidebarTrigger\") : _vm._e(), _vm.mindMap ? _c(\"Search\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"NodeIconSidebar\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"NodeIconToolbar\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"OutlineEdit\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.isShowScrollbar && _vm.mindMap ? _c(\"Scrollbar\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"FormulaSidebar\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"SourceCodeEdit\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"NodeOuterFrame\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"NodeTagStyle\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"OpenSiyuanFloat\", {\n attrs: {\n mindMap: _vm.mindMap,\n injectConfig: _vm.injectConfig\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"KmindHistory\", {\n attrs: {\n data: _vm.mindMapData,\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"KmindHistoryModal\", {\n attrs: {\n data: _vm.mindMapData,\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.mindMap ? _c(\"NodeImgPlacementToolbar\", {\n attrs: {\n mindMap: _vm.mindMap\n }\n }) : _vm._e(), _vm.showDragMask ? _c(\"div\", {\n staticClass: \"dragMask\",\n on: {\n dragleave: function ($event) {\n $event.stopPropagation();\n $event.preventDefault();\n return _vm.onDragleave.apply(null, arguments);\n },\n dragover: function ($event) {\n $event.stopPropagation();\n $event.preventDefault();\n },\n drop: function ($event) {\n $event.stopPropagation();\n $event.preventDefault();\n return _vm.onDrop.apply(null, arguments);\n }\n }\n }, [_c(\"div\", {\n staticClass: \"dragTip\"\n }, [_vm._v(_vm._s(_vm.$t(\"edit.dragTip\")))])]) : _vm._e()], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Edit.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Export.vue?vue&type=template&id=6609dbcc&scoped=true":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Export.vue?vue&type=template&id=6609dbcc&scoped=true ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"el-dialog\", {\n directives: [{\n name: \"loading\",\n rawName: \"v-loading.fullscreen.lock\",\n value: _vm.loading,\n expression: \"loading\",\n modifiers: {\n fullscreen: true,\n lock: true\n }\n }],\n staticClass: \"nodeExportDialog\",\n class: {\n isMobile: _vm.isMobile,\n isDark: _vm.isDark\n },\n attrs: {\n title: _vm.$t(\"export.title\"),\n visible: _vm.dialogVisible,\n \"element-loading-text\": _vm.loadingText,\n \"element-loading-spinner\": \"el-icon-loading\",\n \"element-loading-background\": \"rgba(0, 0, 0, 0.8)\",\n width: _vm.isMobile ? \"90%\" : \"800px\",\n top: _vm.isMobile ? \"20px\" : \"15vh\",\n \"modal-append-to-body\": _vm.modalAppendToBody,\n \"append-to-body\": _vm.appendToBody,\n \"lock-scroll\": false\n },\n on: {\n \"update:visible\": function ($event) {\n _vm.dialogVisible = $event;\n }\n }\n }, [_c(\"div\", {\n staticClass: \"exportContainer\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"div\", {\n staticClass: \"nameInputBox\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"export.filename\")))]), _c(\"el-input\", {\n staticStyle: {\n \"max-width\": \"300px\"\n },\n attrs: {\n size: \"mini\"\n },\n nativeOn: {\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.fileName,\n callback: function ($$v) {\n _vm.fileName = $$v;\n },\n expression: \"fileName\"\n }\n })], 1), _c(\"div\", {\n staticClass: \"downloadTypeSelectBox\"\n }, [_c(\"div\", {\n staticClass: \"downloadTypeList customScrollbar\"\n }, _vm._l(_vm.downTypeList, function (item) {\n return _c(\"div\", {\n key: item.type,\n staticClass: \"downloadTypeItem\",\n class: {\n active: _vm.exportType === item.type\n },\n on: {\n click: function ($event) {\n _vm.exportType = item.type;\n }\n }\n }, [item.type === \"subKMind\" ? _c(\"div\", {\n staticClass: \"export-kmind-siyuanIcon\",\n domProps: {\n innerHTML: _vm._s(_vm.siyuanIcon)\n }\n }) : _c(\"div\", {\n staticClass: \"icon iconfont\",\n class: [item.icon, item.type]\n }), _c(\"div\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(item.name))]), _c(\"div\", {\n staticClass: \"icon checked el-icon-check\"\n })]);\n }), 0), _c(\"div\", {\n staticClass: \"downloadTypeContent customScrollbar\"\n }, [_c(\"div\", {\n staticClass: \"contentRow\"\n }, [_c(\"div\", {\n staticClass: \"contentName\"\n }, [_vm._v(_vm._s(_vm.$t(\"export.desc\")))]), _c(\"div\", {\n staticClass: \"contentValue\"\n }, [_vm._v(\" \" + _vm._s(_vm.currentTypeData ? _vm.currentTypeData.desc : \"\") + \" \")])]), _c(\"div\", {\n staticClass: \"contentRow\"\n }, [_c(\"div\", {\n staticClass: \"contentName\"\n }, [_vm._v(_vm._s(_vm.$t(\"export.options\")))]), _c(\"div\", {\n staticClass: \"contentValue\"\n }, [_c(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: [\"smm\", \"json\", \"kmind\"].includes(_vm.exportType),\n expression: \"['smm', 'json', 'kmind'].includes(exportType)\"\n }],\n staticClass: \"valueItem\"\n }, [_c(\"el-checkbox\", {\n model: {\n value: _vm.widthConfig,\n callback: function ($$v) {\n _vm.widthConfig = $$v;\n },\n expression: \"widthConfig\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"export.include\")))])], 1), _c(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: [\"svg\", \"png\", \"pdf\"].includes(_vm.exportType),\n expression: \"['svg', 'png', 'pdf'].includes(exportType)\"\n }],\n staticClass: \"valueItem\"\n }, [_c(\"div\", {\n staticClass: \"valueSubItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"export.paddingX\")))]), _c(\"el-input\", {\n staticStyle: {\n width: \"200px\"\n },\n attrs: {\n size: \"mini\"\n },\n on: {\n change: _vm.onPaddingChange\n },\n nativeOn: {\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.paddingX,\n callback: function ($$v) {\n _vm.paddingX = $$v;\n },\n expression: \"paddingX\"\n }\n })], 1), _c(\"div\", {\n staticClass: \"valueSubItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"export.paddingY\")))]), _c(\"el-input\", {\n staticStyle: {\n width: \"200px\"\n },\n attrs: {\n size: \"mini\"\n },\n on: {\n change: _vm.onPaddingChange\n },\n nativeOn: {\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.paddingY,\n callback: function ($$v) {\n _vm.paddingY = $$v;\n },\n expression: \"paddingY\"\n }\n })], 1), _c(\"div\", {\n staticClass: \"valueSubItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(this.$t(\"export.addFooterText\")))]), _c(\"el-input\", {\n staticStyle: {\n width: \"200px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: _vm.$t(\"export.addFooterTextPlaceholder\")\n },\n nativeOn: {\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.extraText,\n callback: function ($$v) {\n _vm.extraText = $$v;\n },\n expression: \"extraText\"\n }\n })], 1), _c(\"div\", {\n staticClass: \"valueSubItem\"\n }, [_c(\"el-checkbox\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: [\"png\", \"pdf\"].includes(_vm.exportType),\n expression: \"['png', 'pdf'].includes(exportType)\"\n }],\n model: {\n value: _vm.isTransparent,\n callback: function ($$v) {\n _vm.isTransparent = $$v;\n },\n expression: \"isTransparent\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"export.isTransparent\")))])], 1)])])])])])]), _c(\"span\", {\n staticClass: \"dialog-footer\",\n attrs: {\n slot: \"footer\"\n },\n slot: \"footer\"\n }, [_c(\"el-button\", {\n on: {\n click: _vm.cancel\n }\n }, [_vm._v(_vm._s(_vm.$t(\"dialog.cancel\")))]), _c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: _vm.confirm\n }\n }, [_vm._v(_vm._s(_vm.$t(\"dialog.confirm\")))])], 1)]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Export.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/FormulaSidebar.vue?vue&type=template&id=3b54da2e&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/FormulaSidebar.vue?vue&type=template&id=3b54da2e&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"Sidebar\", {\n ref: \"sidebar\",\n attrs: {\n title: _vm.$t(\"formulaSidebar.title\")\n }\n }, [_c(\"div\", {\n staticClass: \"box\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"div\", {\n staticClass: \"formulaInputBox\"\n }, [_c(\"el-input\", {\n attrs: {\n rows: 4,\n resize: \"none\",\n type: \"textarea\",\n placeholder: _vm.$t(\"formulaSidebar.placeholder\")\n },\n nativeOn: {\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.formulaText,\n callback: function ($$v) {\n _vm.formulaText = $$v;\n },\n expression: \"formulaText\"\n }\n }), _c(\"el-button\", {\n staticStyle: {\n width: \"100%\",\n \"margin-top\": \"20px\"\n },\n attrs: {\n size: \"small\"\n },\n on: {\n click: _vm.confirm\n }\n }, [_vm._v(_vm._s(_vm.$t(\"formulaSidebar.confirm\")))])], 1), _c(\"div\", {\n staticClass: \"title\"\n }, [_vm._v(_vm._s(_vm.$t(\"formulaSidebar.common\")))]), _c(\"div\", {\n staticClass: \"formulaList customScrollbar\"\n }, _vm._l(_vm.list, function (item, index) {\n return _c(\"div\", {\n key: index,\n staticClass: \"formulaItem\"\n }, [_c(\"div\", {\n staticClass: \"overview\",\n domProps: {\n innerHTML: _vm._s(item.overview)\n }\n }), _c(\"div\", {\n staticClass: \"text\",\n on: {\n click: function ($event) {\n _vm.formulaText = item.text;\n }\n }\n }, [_vm._v(\" \" + _vm._s(item.text) + \" \")])]);\n }), 0)])]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/FormulaSidebar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Fullscreen.vue?vue&type=template&id=bd69af5a&scoped=true":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Fullscreen.vue?vue&type=template&id=bd69af5a&scoped=true ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"fullscreenContainer\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"el-tooltip\", {\n staticClass: \"item\",\n attrs: {\n effect: \"dark\",\n content: _vm.$t(\"fullscreen.fullscreenShow\"),\n placement: \"top\"\n }\n }, [_c(\"div\", {\n staticClass: \"btn\",\n on: {\n click: _vm.toFullscreenShow\n }\n }, [_c(\"IconParkOutlineFullScreenOne\")], 1)]), _c(\"el-tooltip\", {\n staticClass: \"item\",\n attrs: {\n effect: \"dark\",\n content: _vm.$t(\"fullscreen.fullscreenEdit\"),\n placement: \"top\"\n }\n }, [_c(\"div\", {\n staticClass: \"btn\",\n on: {\n click: _vm.toFullscreenEdit\n }\n }, [_c(\"FluentMdl2FullWidthEdit\")], 1)])], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Fullscreen.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Import.vue?vue&type=template&id=4f824986&scoped=true":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Import.vue?vue&type=template&id=4f824986&scoped=true ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", [_c(\"el-dialog\", {\n staticClass: \"nodeImportDialog\",\n attrs: {\n title: _vm.$t(\"import.title\"),\n visible: _vm.dialogVisible,\n width: \"300px\",\n \"modal-append-to-body\": _vm.modalAppendToBody,\n \"append-to-body\": _vm.appendToBody,\n \"lock-scroll\": false\n },\n on: {\n \"update:visible\": function ($event) {\n _vm.dialogVisible = $event;\n }\n }\n }, [_c(\"el-upload\", {\n ref: \"upload\",\n attrs: {\n action: \"x\",\n accept: _vm.supportFileStr,\n \"file-list\": _vm.fileList,\n \"auto-upload\": false,\n multiple: false,\n \"on-change\": _vm.onChange,\n \"on-remove\": _vm.onRemove,\n limit: 1,\n \"on-exceed\": _vm.onExceed\n }\n }, [_c(\"el-button\", {\n attrs: {\n slot: \"trigger\",\n size: \"small\",\n type: \"primary\"\n },\n slot: \"trigger\"\n }, [_vm._v(_vm._s(_vm.$t(\"import.selectFile\")))]), _c(\"div\", {\n staticClass: \"el-upload__tip\",\n attrs: {\n slot: \"tip\"\n },\n slot: \"tip\"\n }, [_vm._v(\" \" + _vm._s(_vm.$t(\"import.support\")) + _vm._s(_vm.supportFileStr) + _vm._s(_vm.$t(\"import.file\")) + \" \")])], 1), _c(\"span\", {\n staticClass: \"dialog-footer\",\n attrs: {\n slot: \"footer\"\n },\n slot: \"footer\"\n }, [_c(\"el-button\", {\n on: {\n click: _vm.cancel\n }\n }, [_vm._v(_vm._s(_vm.$t(\"dialog.cancel\")))]), _c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: _vm.confirm\n }\n }, [_vm._v(_vm._s(_vm.$t(\"dialog.confirm\")))])], 1)], 1), _c(\"el-dialog\", {\n staticClass: \"xmindCanvasSelectDialog\",\n attrs: {\n title: _vm.$t(\"import.xmindCanvasSelectDialogTitle\"),\n visible: _vm.xmindCanvasSelectDialogVisible,\n width: \"300px\",\n \"show-close\": false,\n \"modal-append-to-body\": _vm.modalAppendToBody,\n \"append-to-body\": _vm.appendToBody,\n \"lock-scroll\": false\n },\n on: {\n \"update:visible\": function ($event) {\n _vm.xmindCanvasSelectDialogVisible = $event;\n }\n }\n }, [_c(\"el-radio-group\", {\n staticClass: \"canvasList\",\n model: {\n value: _vm.selectCanvas,\n callback: function ($$v) {\n _vm.selectCanvas = $$v;\n },\n expression: \"selectCanvas\"\n }\n }, _vm._l(_vm.canvasList, function (item, index) {\n return _c(\"el-radio\", {\n key: index,\n attrs: {\n label: index\n }\n }, [_vm._v(_vm._s(item.title))]);\n }), 1), _c(\"span\", {\n staticClass: \"dialog-footer\",\n attrs: {\n slot: \"footer\"\n },\n slot: \"footer\"\n }, [_c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: _vm.confirmSelect\n }\n }, [_vm._v(_vm._s(_vm.$t(\"dialog.confirm\")))])], 1)], 1)], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Import.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=template&id=035dc43e&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=template&id=035dc43e&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _setup$globalConfig, _setup$activeNodes$;\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _c(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: _setup.showToolbar && (_setup.isMobile || ((_setup$globalConfig = _setup.globalConfig) === null || _setup$globalConfig === void 0 ? void 0 : _setup$globalConfig.showToolbarInDesktop) !== false),\n expression: \"showToolbar && (isMobile || globalConfig?.showToolbarInDesktop !== false)\"\n }],\n ref: \"kmindFloatToolbar\",\n staticClass: \"kmindFloatToolbar\",\n class: {\n isDark: _vm.isDark\n },\n style: _setup.style,\n on: {\n click: function ($event) {\n $event.stopPropagation();\n }\n }\n }, [_c(\"div\", {\n staticClass: \"content\"\n }, [_c(\"div\", {\n staticClass: \"buttons-wrapper\"\n }, [_c(\"div\", {\n staticClass: \"operation-buttons\"\n }, [_vm.showAddNodeBtn && !_setup.hasGeneralization ? _c(\"div\", {\n key: \"btn-add-node\",\n staticClass: \"node-add-container\"\n }, [_c(_setup.AddNodeButton, {\n attrs: {\n isDark: _vm.isDark\n },\n on: {\n addNode: _setup.handleAddNode\n }\n })], 1) : _vm._e(), _setup.isMocMode && _setup.activeNodes.length > 0 && (_setup$activeNodes$ = _setup.activeNodes[0]) !== null && _setup$activeNodes$ !== void 0 && (_setup$activeNodes$ = _setup$activeNodes$.nodeData) !== null && _setup$activeNodes$ !== void 0 && (_setup$activeNodes$ = _setup$activeNodes$.data) !== null && _setup$activeNodes$ !== void 0 && _setup$activeNodes$.docId ? _c(\"div\", {\n staticClass: \"operation-buttons\"\n }, [_c(\"div\", {\n staticClass: \"toolbar-btn\",\n attrs: {\n title: _vm.$t(\"openSiyuanFloat.open\") || \"打开文档\"\n },\n on: {\n click: function ($event) {\n return _setup.handleOpenDoc();\n }\n }\n }, [_c(_setup.MaterialSymbolsVisibilityOutline, {\n staticClass: \"btn-icon\"\n })], 1), _c(\"div\", {\n staticClass: \"toolbar-btn\",\n attrs: {\n title: _vm.$t(\"openSiyuanFloat.openRight\") || \"在右侧打开\"\n },\n on: {\n click: function ($event) {\n return _setup.handleOpenDoc(\"right\");\n }\n }\n }, [_c(_setup.MaterialSymbolsDockToRight, {\n staticClass: \"btn-icon\"\n })], 1), _c(\"div\", {\n staticClass: \"toolbar-btn\",\n attrs: {\n title: _vm.$t(\"openSiyuanFloat.openBottom\") || \"在下方打开\"\n },\n on: {\n click: function ($event) {\n return _setup.handleOpenDoc(\"bottom\");\n }\n }\n }, [_c(_setup.MaterialSymbolsDockToBottom, {\n staticClass: \"btn-icon\"\n })], 1)]) : _vm._e(), _vm._l(_setup.buttonList, function (btn, index) {\n return [btn === \"editNode\" && _setup.activeNodes.length > 0 ? _c(\"div\", {\n key: `btn-${index}-editNode`,\n staticClass: \"toolbar-btn\",\n attrs: {\n title: _vm.$t(\"kmindFloatToolbar.editNode\")\n },\n on: {\n click: _setup.handleEditNode\n }\n }, [_c(_setup.HugeiconsNodeEdit, {\n staticClass: \"btn-icon\"\n })], 1) : _vm._e(), btn === \"deleteNode\" && _setup.activeNodes.length > 0 ? _c(\"div\", {\n key: `btn-${index}-deleteNode`,\n staticClass: \"toolbar-btn toolbar-btn-danger\",\n attrs: {\n title: _vm.$t(\"kmindFloatToolbar.deleteNode\")\n },\n on: {\n click: _setup.handleDeleteNode\n }\n }, [_c(_setup.HugeiconsSubnodeDelete, {\n staticClass: \"btn-icon\"\n })], 1) : _vm._e(), btn === \"note\" && _setup.activeNodes.length > 0 ? _c(\"div\", {\n key: `btn-${index}-note`,\n staticClass: \"toolbar-btn\",\n attrs: {\n title: _vm.$t(\"kmindFloatToolbar.addNote\")\n },\n on: {\n click: _setup.handleAddNote\n }\n }, [_c(_setup.FluentCommentAdd16Regular, {\n staticClass: \"btn-icon\"\n })], 1) : _vm._e(), btn === \"link\" && _setup.activeNodes.length > 0 ? _c(\"div\", {\n key: `btn-${index}-link`,\n staticClass: \"toolbar-btn\",\n attrs: {\n title: _vm.$t(\"kmindFloatToolbar.addLink\")\n },\n on: {\n click: _setup.handleAddLink\n }\n }, [_c(_setup.MaterialSymbolsAddLink, {\n staticClass: \"btn-icon\"\n })], 1) : _vm._e(), btn === \"tag\" && _setup.activeNodes.length > 0 ? _c(\"div\", {\n key: `btn-${index}-tag`,\n staticClass: \"toolbar-btn\",\n attrs: {\n title: _vm.$t(\"kmindFloatToolbar.addTag\")\n },\n on: {\n click: _setup.handleAddTag\n }\n }, [_c(_setup.MdiTagAdd, {\n staticClass: \"btn-icon\"\n })], 1) : _vm._e(), btn === \"image\" && _setup.activeNodes.length > 0 ? _c(\"div\", {\n key: `btn-${index}-image`,\n staticClass: \"toolbar-btn\",\n attrs: {\n title: _vm.$t(\"kmindFloatToolbar.addImage\")\n },\n on: {\n click: _setup.handleAddImage\n }\n }, [_c(_setup.LucideImagePlus, {\n staticClass: \"btn-icon\"\n })], 1) : _vm._e(), btn === \"icon\" && _setup.activeNodes.length > 0 ? _c(\"div\", {\n key: `btn-${index}-icon`,\n staticClass: \"toolbar-btn\",\n attrs: {\n title: _vm.$t(\"kmindFloatToolbar.addIcon\")\n },\n on: {\n click: _setup.handleAddIcon\n }\n }, [_c(_setup.MdiEmoticonPlusOutline, {\n staticClass: \"btn-icon\"\n })], 1) : _vm._e(), btn === \"associativeLine\" && _setup.activeNodes.length > 0 && !_setup.hasGeneralization ? _c(\"div\", {\n key: `btn-${index}-associativeLine`,\n staticClass: \"toolbar-btn\",\n attrs: {\n title: _vm.$t(\"kmindFloatToolbar.addAssociativeLine\")\n },\n on: {\n click: _setup.handleCreateAssociativeLine\n }\n }, [_c(_setup.AntDesignNodeIndexOutlined, {\n staticClass: \"btn-icon\"\n })], 1) : _vm._e(), btn === \"summary\" && _setup.activeNodes.length > 0 && !_setup.hasRoot && !_setup.hasGeneralization ? _c(\"div\", {\n key: `btn-${index}-summary`,\n staticClass: \"toolbar-btn\",\n attrs: {\n title: _vm.$t(\"kmindFloatToolbar.addSummary\")\n },\n on: {\n click: _setup.handleAddSummary\n }\n }, [_c(_setup.MdiBracket, {\n staticClass: \"btn-icon\"\n })], 1) : _vm._e(), btn === \"formula\" && _setup.activeNodes.length > 0 && !_setup.hasGeneralization ? _c(\"div\", {\n key: `btn-${index}-formula`,\n staticClass: \"toolbar-btn\",\n attrs: {\n title: _vm.$t(\"kmindFloatToolbar.addFormula\")\n },\n on: {\n click: _setup.handleShowFormula\n }\n }, [_c(_setup.HugeiconsSummation01, {\n staticClass: \"btn-icon\"\n })], 1) : _vm._e(), btn === \"outerFrame\" && _setup.activeNodes.length > 0 && !_setup.hasGeneralization ? _c(\"div\", {\n key: `btn-${index}-outerFrame`,\n staticClass: \"toolbar-btn\",\n attrs: {\n title: _vm.$t(\"kmindFloatToolbar.addOuterFrame\")\n },\n on: {\n click: _setup.handleAddOuterFrame\n }\n }, [_c(_setup.MdiCodeBlockBrackets, {\n staticClass: \"btn-icon\"\n })], 1) : _vm._e(), btn === \"back\" && !_setup.backEnd && !_setup.readonly ? _c(\"div\", {\n key: `btn-${index}-back`,\n staticClass: \"toolbar-btn\",\n attrs: {\n title: _vm.$t(\"kmindFloatToolbar.undo\")\n },\n on: {\n click: _setup.handleBack\n }\n }, [_c(_setup.MaterialSymbolsUndo, {\n staticClass: \"btn-icon\"\n })], 1) : _vm._e(), btn === \"forward\" && !_setup.forwardEnd && !_setup.readonly ? _c(\"div\", {\n key: `btn-${index}-forward`,\n staticClass: \"toolbar-btn\",\n attrs: {\n title: _vm.$t(\"kmindFloatToolbar.redo\")\n },\n on: {\n click: _setup.handleForward\n }\n }, [_c(_setup.MaterialSymbolsRedo, {\n staticClass: \"btn-icon\"\n })], 1) : _vm._e(), btn === \"painter\" && _setup.activeNodes.length > 0 && !_setup.hasGeneralization && !_setup.isInPainter ? _c(\"div\", {\n key: `btn-${index}-painter`,\n staticClass: \"toolbar-btn\",\n attrs: {\n title: _vm.$t(\"kmindFloatToolbar.formatPainter\")\n },\n on: {\n click: _setup.handleStartPainter\n }\n }, [_c(_setup.IcOutlineFormatPaint, {\n staticClass: \"btn-icon\"\n })], 1) : _vm._e()];\n })], 2)])])]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=template&id=3124bbe7&scoped=true":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=template&id=3124bbe7&scoped=true ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _c(\"div\", {\n ref: \"addNodeBtn\",\n staticClass: \"toolbar-btn add-main-btn\",\n class: {\n \"is-dark\": _vm.isDark\n },\n attrs: {\n title: _vm.$t(\"kmindFloatToolbar.dragToAddNode\")\n },\n on: {\n mousedown: _setup.handleDragStart,\n touchstart: _setup.handleDragStart,\n click: _setup.handleClick,\n mouseenter: _setup.toolbarMouseEnter,\n mouseleave: _setup.toolbarMouseLeave\n }\n }, [_c(_setup.MaterialSymbolsAdd, {\n staticClass: \"btn-icon\"\n }), !_setup.isDragging && _setup.showDragHints ? _c(\"div\", {\n staticClass: \"drag-hints\"\n }, [_c(\"div\", {\n staticClass: \"drag-hint right\"\n }, [_c(_setup.MaterialSymbolsKeyboardArrowRight, {\n staticClass: \"hint-arrow\"\n })], 1), _c(\"div\", {\n staticClass: \"drag-hint bottom\"\n }, [_c(_setup.MaterialSymbolsKeyboardArrowDown, {\n staticClass: \"hint-arrow\"\n })], 1), _c(\"div\", {\n staticClass: \"drag-hint left\"\n }, [_c(_setup.MaterialSymbolsKeyboardArrowLeft, {\n staticClass: \"hint-arrow\"\n })], 1)]) : _vm._e(), _c(\"transition\", {\n attrs: {\n name: \"fade\"\n }\n }, [_setup.isDragging ? _c(\"div\", {\n staticClass: \"direction-indicator\"\n }, [_c(\"transition\", {\n attrs: {\n name: \"fade-scale\"\n }\n }, [_setup.currentDirection === \"right\" ? _c(\"div\", {\n staticClass: \"direction-hint right\"\n }, [_c(_setup.MaterialSymbolsKeyboardArrowRight, {\n staticClass: \"hint-icon\"\n })], 1) : _vm._e(), _setup.currentDirection === \"bottom\" ? _c(\"div\", {\n staticClass: \"direction-hint bottom\"\n }, [_c(_setup.MaterialSymbolsKeyboardArrowDown, {\n staticClass: \"hint-icon\"\n })], 1) : _vm._e(), _setup.currentDirection === \"left\" ? _c(\"div\", {\n staticClass: \"direction-hint left\"\n }, [_c(_setup.MaterialSymbolsKeyboardArrowLeft, {\n staticClass: \"hint-icon\"\n })], 1) : _vm._e()])], 1) : _vm._e()])], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=template&id=75ed2ea7&scoped=true":
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=template&id=75ed2ea7&scoped=true ***!
\***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _c(_setup.Sidebar, {\n ref: \"sidebar\",\n attrs: {\n title: _vm.$t(\"kmindHistory.title\")\n }\n }, [_c(\"div\", {\n staticClass: \"sidebarContent\",\n class: {\n isDark: _setup.isDark\n }\n }, [_c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: _setup.handlePutHistoryFile\n }\n }, [_vm._v(\"插入历史记录\")]), _c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: _setup.handleConsole\n }\n }, [_vm._v(\"console\")])], 1)]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindHistory/KMindHistory.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=template&id=5531bb55&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=template&id=5531bb55&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _c(\"div\", [_c(\"el-dialog\", {\n attrs: {\n visible: _setup.dialogVisible,\n title: _vm.$t(\"kmindHistory.title\"),\n fullscreen: true,\n \"append-to-body\": _setup.modalAppendToBody,\n modal: false,\n \"modal-append-to-body\": _setup.modalAppendToBody,\n \"lock-scroll\": false\n },\n on: {\n \"update:visible\": function ($event) {\n _setup.dialogVisible = $event;\n }\n }\n }, [_c(\"el-button\", {\n attrs: {\n type: \"primary\",\n loading: _setup.saveHistoryLoading\n },\n on: {\n click: _setup.handleSaveHistory\n }\n }, [_vm._v(_vm._s(_vm.$t(\"kmindHistory.createHistoryVersion\")))]), _c(\"el-button\", {\n attrs: {\n type: \"primary\",\n loading: _setup.refreshHistoryListLoading\n },\n on: {\n click: _setup.handleRefreshHistoryList\n }\n }, [_vm._v(_vm._s(_vm.$t(\"kmindHistory.refreshHistoryList\")))]), _c(\"el-row\", [_c(\"el-col\", {\n ref: \"timeLineRef\",\n attrs: {\n span: 6\n }\n }, [_c(\"el-tabs\", {\n model: {\n value: _setup.activeTab,\n callback: function ($$v) {\n _setup.activeTab = $$v;\n },\n expression: \"activeTab\"\n }\n }, [_c(\"el-tab-pane\", {\n attrs: {\n label: _vm.$t(\"kmindHistory.autoSave\"),\n name: \"autoSave\"\n }\n }, [_c(\"div\", {\n staticClass: \"autoSaveHistoryListContainer\"\n }, [_c(\"el-timeline\", _vm._l(_setup.autoSaveHistoryList, function (item) {\n return _c(\"el-timeline-item\", {\n key: item.id,\n attrs: {\n timestamp: item.createDateStr,\n color: item.path === _setup.activePath ? \"#409EFF\" : \"\",\n placement: \"top\"\n }\n }, [_c(\"el-card\", [_c(\"span\", {\n staticStyle: {\n cursor: \"pointer\"\n }\n }, [_vm._v(\" \" + _vm._s(_vm.$t(\"kmindHistory.autoSave\")) + \" \")]), _c(\"el-button\", {\n attrs: {\n type: \"text\"\n },\n on: {\n click: function ($event) {\n return _setup.handlePreview(item.path);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"kmindHistory.preview\")))]), _c(\"el-button\", {\n attrs: {\n type: \"text\",\n loading: _setup.deleteLoading\n },\n on: {\n click: function ($event) {\n return _setup.handleDelete(item.path);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"kmindHistory.delete\")))]), _c(\"el-button\", {\n attrs: {\n type: \"text\",\n loading: _setup.applyLoading\n },\n on: {\n click: function ($event) {\n return _setup.handleApply(item.path);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"kmindHistory.apply\")))])], 1)], 1);\n }), 1)], 1)]), _c(\"el-tab-pane\", {\n attrs: {\n label: _vm.$t(\"kmindHistory.pin\"),\n name: \"pin\"\n }\n }, [_c(\"div\", {\n staticClass: \"pinHistoryListContainer\"\n }, [_c(\"el-timeline\", _vm._l(_setup.pinHistoryList, function (item) {\n return _c(\"el-timeline-item\", {\n key: item.id,\n attrs: {\n timestamp: item.createDateStr,\n color: item.path === _setup.activePath ? \"#409EFF\" : \"\",\n placement: \"top\"\n }\n }, [_c(\"el-card\", [_c(\"span\", {\n staticStyle: {\n cursor: \"pointer\"\n }\n }, [_vm._v(_vm._s(item.pinName))]), _c(\"el-button\", {\n attrs: {\n type: \"text\"\n },\n on: {\n click: function ($event) {\n return _setup.handlePreview(item.path);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"kmindHistory.preview\")))]), _c(\"el-button\", {\n attrs: {\n type: \"text\",\n loading: _setup.deleteLoading\n },\n on: {\n click: function ($event) {\n return _setup.handleDelete(item.path);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"kmindHistory.delete\")))]), _c(\"el-button\", {\n attrs: {\n type: \"text\",\n loading: _setup.applyLoading\n },\n on: {\n click: function ($event) {\n return _setup.handleApply(item.path);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"kmindHistory.apply\")))])], 1)], 1);\n }), 1)], 1)])], 1)], 1), _c(\"el-col\", {\n ref: \"kmindPreviewContainerRef\",\n staticStyle: {\n position: \"relative\"\n },\n attrs: {\n span: 18\n }\n }, [_c(_setup.KmindPreview, {\n attrs: {\n type: _setup.activeTab,\n path: _setup.activePath,\n watcher: _setup.dialogVisible\n }\n })], 1)], 1)], 1)], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=template&id=207f8b47&scoped=true":
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=template&id=207f8b47&scoped=true ***!
\***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _c(\"div\", {\n staticClass: \"kmindPreviewWrapper\",\n staticStyle: {\n height: \"100%\"\n }\n }, [_c(\"div\", {\n ref: \"kmindPreviewContainer\",\n staticClass: \"kmindPreviewContainer\",\n attrs: {\n id: \"kmindPreviewContainer\"\n }\n })]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindPreview/KmindPreview.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/MouseAction.vue?vue&type=template&id=1a05d65a&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/MouseAction.vue?vue&type=template&id=1a05d65a&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"mouseActionContainer\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"el-tooltip\", {\n staticClass: \"item\",\n attrs: {\n effect: \"dark\",\n content: _vm.useLeftKeySelectionRightKeyDrag ? _vm.$t(\"mouseAction.tip2\") : _vm.$t(\"mouseAction.tip1\"),\n placement: \"top\"\n }\n }, [_c(\"div\", {\n staticClass: \"btn iconfont\",\n class: [_vm.useLeftKeySelectionRightKeyDrag ? \"iconmouseR\" : \"iconmouseL\"],\n on: {\n click: _vm.toggleAction\n }\n })])], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/MouseAction.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Navigator.vue?vue&type=template&id=20a399ef&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Navigator.vue?vue&type=template&id=20a399ef&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _vm.showMiniMap ? _c(\"div\", {\n ref: \"navigatorBox\",\n staticClass: \"navigatorBox\",\n class: {\n isDark: _vm.isDark\n },\n style: {\n width: _vm.width + \"px\"\n },\n on: {\n mousedown: _vm.onMousedown,\n mousemove: _vm.onMousemove\n }\n }, [_c(\"div\", {\n ref: \"svgBox\",\n staticClass: \"svgBox\",\n style: {\n transform: `scale(${_vm.svgBoxScale})`,\n left: _vm.svgBoxLeft + \"px\",\n top: _vm.svgBoxTop + \"px\"\n }\n }, [_c(\"img\", {\n attrs: {\n src: _vm.mindMapImg\n },\n on: {\n mousedown: function ($event) {\n $event.preventDefault();\n }\n }\n })]), _c(\"div\", {\n staticClass: \"windowBox\",\n class: {\n withTransition: _vm.withTransition\n },\n style: _vm.viewBoxStyle,\n on: {\n mousedown: function ($event) {\n $event.stopPropagation();\n return _vm.onViewBoxMousedown.apply(null, arguments);\n },\n mousemove: _vm.onViewBoxMousemove\n }\n })]) : _vm._e();\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Navigator.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=template&id=92e9ad88&scoped=true":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=template&id=92e9ad88&scoped=true ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"navigatorContainer\",\n class: {\n isDark: _vm.isDark,\n isSidebarActive: _vm.isSidebarActive\n }\n }, [_c(\"div\", {\n staticClass: \"item\",\n on: {\n click: _vm.toggleZenMode\n }\n }, [_c(\"el-tooltip\", {\n attrs: {\n effect: \"dark\",\n content: _vm.$t(\"navigatorToolbar.toggleZenMode\"),\n placement: \"top\"\n }\n }, [_c(\"MdiBrainFreezeOutline\", {\n staticClass: \"btn\"\n })], 1)], 1), _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: _vm.backToRoot\n }\n }, [_c(\"el-tooltip\", {\n attrs: {\n effect: \"dark\",\n content: _vm.$t(\"navigatorToolbar.backToRoot\"),\n placement: \"top\"\n }\n }, [_c(\"StreamlineTarget3\", {\n staticClass: \"btn\"\n })], 1)], 1), _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: _vm.showSearch\n }\n }, [_c(\"RiMenuSearchLine\", {\n staticClass: \"btn\"\n })], 1), _vm.isDebugger ? _c(\"div\", {\n staticClass: \"item\"\n }, [_c(\"MouseAction\", {\n attrs: {\n isDark: _vm.isDark,\n mindMap: _vm.mindMap\n }\n })], 1) : _vm._e(), _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: _vm.toggleMiniMap\n }\n }, [_c(\"el-tooltip\", {\n attrs: {\n effect: \"dark\",\n content: _vm.openMiniMap ? _vm.$t(\"navigatorToolbar.closeMiniMap\") : _vm.$t(\"navigatorToolbar.openMiniMap\"),\n placement: \"top\"\n }\n }, [_c(\"IconParkTwotoneFullScreenPlay\", {\n staticClass: \"btn\"\n })], 1)], 1), _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: _vm.readonlyChange\n }\n }, [_c(\"el-tooltip\", {\n attrs: {\n effect: \"dark\",\n content: _vm.isReadonly ? _vm.$t(\"navigatorToolbar.edit\") : _vm.$t(\"navigatorToolbar.readonly\"),\n placement: \"top\"\n }\n }, [_c(\"div\", {\n staticClass: \"btn\"\n }, [!_vm.isReadonly ? _c(\"IconoirEdit\") : _c(\"MdiEyeOutline\")], 1)])], 1), _c(\"div\", {\n staticClass: \"item\"\n }, [_c(\"Fullscreen\", {\n attrs: {\n isDark: _vm.isDark,\n mindMap: _vm.mindMap\n }\n })], 1), _c(\"div\", {\n staticClass: \"item\"\n }, [_c(\"Scale\", {\n attrs: {\n isDark: _vm.isDark,\n mindMap: _vm.mindMap\n }\n })], 1), _c(\"div\", {\n staticClass: \"item\",\n on: {\n click: _vm.toggleDark\n }\n }, [_vm.isDark ? _c(\"IconParkSolidDarkMode\", {\n staticClass: \"btn\"\n }) : _c(\"IconParkOutlineDarkMode\", {\n staticClass: \"btn\"\n })], 1), _vm.isDebugger ? _c(\"div\", {\n staticClass: \"item\"\n }, [_c(\"el-tooltip\", {\n attrs: {\n effect: \"dark\",\n content: _vm.$t(\"navigatorToolbar.changeSourceCodeEdit\"),\n placement: \"top\"\n }\n }, [_c(\"div\", {\n staticClass: \"btn iconfont iconyuanma\",\n on: {\n click: _vm.openSourceCodeEdit\n }\n })])], 1) : _vm._e(), _vm.isDebugger ? _c(\"div\", {\n staticClass: \"item\"\n }, [_c(\"Demonstrate\", {\n attrs: {\n isDark: _vm.isDark,\n mindMap: _vm.mindMap\n }\n })], 1) : _vm._e(), _vm.isDebugger ? _c(\"div\", {\n staticClass: \"item\"\n }, [_c(\"el-dropdown\", {\n on: {\n command: _vm.handleCommand\n }\n }, [_c(\"div\", {\n staticClass: \"btn iconfont iconbangzhu\"\n }), _c(\"el-dropdown-menu\", {\n attrs: {\n slot: \"dropdown\"\n },\n slot: \"dropdown\"\n }, [_c(\"el-dropdown-item\", {\n attrs: {\n command: \"github\"\n }\n }, [_vm._v(\"Github\")]), _c(\"el-dropdown-item\", {\n attrs: {\n command: \"helpDoc\"\n }\n }, [_vm._v(\"使用文档\")]), _c(\"el-dropdown-item\", {\n attrs: {\n command: \"devDoc\"\n }\n }, [_vm._v(\"开发文档\")]), _c(\"el-dropdown-item\", {\n attrs: {\n command: \"site\"\n }\n }, [_vm._v(\"官方网站\")]), _c(\"el-dropdown-item\", {\n attrs: {\n command: \"issue\"\n }\n }, [_vm._v(\"意见反馈\")]), _c(\"el-dropdown-item\", {\n attrs: {\n disabled: \"\"\n }\n }, [_vm._v(\"suka\")])], 1)], 1)], 1) : _vm._e()]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NavigatorToolbar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=template&id=47918363&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=template&id=47918363&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"el-popover\", {\n attrs: {\n placement: \"bottom\",\n width: \"200\",\n trigger: \"click\"\n }\n }, [_c(\"div\", {\n staticClass: \"annotationConfigBox\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"div\", {\n staticClass: \"annotationConfigItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"annotation.show\")))]), _c(\"el-switch\", {\n attrs: {\n \"active-color\": \"#13ce66\",\n \"inactive-color\": \"#ff4949\"\n },\n on: {\n change: _vm.onChange\n },\n model: {\n value: _vm.show,\n callback: function ($$v) {\n _vm.show = $$v;\n },\n expression: \"show\"\n }\n })], 1), _vm.show ? [_c(\"div\", {\n staticClass: \"annotationConfigItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"annotation.type\")))]), _c(\"el-select\", {\n attrs: {\n size: \"mini\"\n },\n on: {\n change: _vm.onChange\n },\n model: {\n value: _vm.annotationConfig.type,\n callback: function ($$v) {\n _vm.$set(_vm.annotationConfig, \"type\", $$v);\n },\n expression: \"annotationConfig.type\"\n }\n }, _vm._l(_vm.annotationTypeList, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n attrs: {\n label: item.label,\n value: item.value\n }\n });\n }), 1)], 1), _c(\"div\", {\n staticClass: \"annotationConfigItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"annotation.color\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover\",\n arg: \"popover\"\n }],\n staticClass: \"block\",\n style: {\n backgroundColor: _vm.annotationConfig.color\n }\n }), _c(\"el-popover\", {\n ref: \"popover\",\n attrs: {\n placement: \"bottom\",\n trigger: \"hover\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.annotationConfig.color\n },\n on: {\n change: _vm.onColorChange\n }\n })], 1)], 1), _c(\"div\", {\n staticClass: \"annotationConfigItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"annotation.lineWidth\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: _vm.onChange\n },\n model: {\n value: _vm.annotationConfig.strokeWidth,\n callback: function ($$v) {\n _vm.$set(_vm.annotationConfig, \"strokeWidth\", $$v);\n },\n expression: \"annotationConfig.strokeWidth\"\n }\n }, _vm._l(_vm.lineWidthList, function (item) {\n return _c(\"el-option\", {\n key: item,\n attrs: {\n label: item,\n value: item\n }\n }, [item > 0 ? _c(\"span\", {\n staticClass: \"borderLine\",\n class: {\n isDark: _vm.isDark\n },\n style: {\n height: item + \"px\"\n }\n }) : _vm._e()]);\n }), 1)], 1), _c(\"div\", {\n staticClass: \"annotationConfigItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"annotation.padding\")))]), _c(\"el-input-number\", {\n attrs: {\n step: 5,\n size: \"mini\"\n },\n on: {\n change: _vm.onChange\n },\n model: {\n value: _vm.annotationConfig.padding,\n callback: function ($$v) {\n _vm.$set(_vm.annotationConfig, \"padding\", $$v);\n },\n expression: \"annotationConfig.padding\"\n }\n })], 1), _c(\"div\", {\n staticClass: \"annotationConfigItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"annotation.animate\")))]), _c(\"el-switch\", {\n attrs: {\n \"active-color\": \"#13ce66\",\n \"inactive-color\": \"#ff4949\"\n },\n on: {\n change: _vm.onChange\n },\n model: {\n value: _vm.annotationConfig.animate,\n callback: function ($$v) {\n _vm.$set(_vm.annotationConfig, \"animate\", $$v);\n },\n expression: \"annotationConfig.animate\"\n }\n })], 1)] : _vm._e()], 2), _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.activeNodes.length <= 0 || _vm.hasGeneralization\n },\n style: {\n marginLeft: _vm.dir === \"v\" ? \"0px\" : \"20px\",\n marginTop: _vm.dir === \"v\" ? \"10px\" : \"0px\"\n },\n attrs: {\n slot: \"reference\"\n },\n slot: \"reference\"\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconhighlight\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"annotation.mark\")))])])]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeAnnotationBtn.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeAttachment.vue?vue&type=template&id=102b205d&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeAttachment.vue?vue&type=template&id=102b205d&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"nodeAttachmentContextMenu\",\n style: {\n left: this.left + \"px\",\n top: this.top + \"px\",\n visibility: _vm.show ? \"visible\" : \"hidden\"\n },\n on: {\n click: function ($event) {\n $event.stopPropagation();\n return _vm.deleteAttachment.apply(null, arguments);\n }\n }\n }, [_c(\"div\", {\n staticClass: \"menuItem\"\n }, [_vm._v(_vm._s(_vm.$t(\"attachment.deleteAttachment\")))])]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeAttachment.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeHyperlink.vue?vue&type=template&id=73163d9c&scoped=true":
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeHyperlink.vue?vue&type=template&id=73163d9c&scoped=true ***!
\***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"el-dialog\", {\n staticClass: \"nodeHyperlinkDialog\",\n attrs: {\n title: _vm.$t(\"nodeHyperlink.title\"),\n visible: _vm.dialogVisible,\n width: _vm.isMobile ? \"90%\" : \"50%\",\n top: _vm.isMobile ? \"20px\" : \"15vh\",\n \"modal-append-to-body\": _vm.modalAppendToBody,\n \"append-to-body\": _vm.appendToBody,\n \"lock-scroll\": false\n },\n on: {\n \"update:visible\": function ($event) {\n _vm.dialogVisible = $event;\n }\n }\n }, [_c(\"div\", {\n staticClass: \"item\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"nodeHyperlink.link\")))]), _c(\"el-input\", {\n attrs: {\n size: \"mini\",\n placeholder: _vm.dynamicPlaceholder\n },\n on: {\n blur: function ($event) {\n return _vm.handleUrl();\n }\n },\n nativeOn: {\n keyup: function ($event) {\n $event.stopPropagation();\n },\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.link,\n callback: function ($$v) {\n _vm.link = $$v;\n },\n expression: \"link\"\n }\n }, [_c(\"el-select\", {\n staticStyle: {\n width: \"120px\"\n },\n attrs: {\n slot: \"prepend\"\n },\n slot: \"prepend\",\n model: {\n value: _vm.protocol,\n callback: function ($$v) {\n _vm.protocol = $$v;\n },\n expression: \"protocol\"\n }\n }, [_c(\"el-option\", {\n attrs: {\n label: \"SiYuan\",\n value: \"none\"\n }\n }), _c(\"el-option\", {\n attrs: {\n label: \"https\",\n value: \"https\"\n }\n }), _c(\"el-option\", {\n attrs: {\n label: \"http\",\n value: \"http\"\n }\n })], 1)], 1)], 1), _c(\"div\", {\n staticClass: \"item\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"nodeHyperlink.name\")))]), _c(\"el-input\", {\n attrs: {\n size: \"mini\"\n },\n nativeOn: {\n keyup: function ($event) {\n $event.stopPropagation();\n },\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.linkTitle,\n callback: function ($$v) {\n _vm.linkTitle = $$v;\n },\n expression: \"linkTitle\"\n }\n })], 1), _c(\"span\", {\n staticClass: \"dialog-footer\",\n attrs: {\n slot: \"footer\"\n },\n slot: \"footer\"\n }, [_c(\"el-button\", {\n on: {\n click: _vm.cancel\n }\n }, [_vm._v(_vm._s(_vm.$t(\"dialog.cancel\")))]), _c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: _vm.confirm\n }\n }, [_vm._v(_vm._s(_vm.$t(\"dialog.confirm\")))])], 1)]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeHyperlink.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIcon.vue?vue&type=template&id=1e192a33&scoped=true":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeIcon.vue?vue&type=template&id=1e192a33&scoped=true ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"el-dialog\", {\n staticClass: \"nodeIconDialog\",\n attrs: {\n title: _vm.$t(\"nodeIcon.title\"),\n visible: _vm.dialogVisible,\n width: \"500\",\n \"modal-append-to-body\": _vm.modalAppendToBody,\n \"append-to-body\": _vm.appendToBody,\n \"lock-scroll\": false\n },\n on: {\n \"update:visible\": function ($event) {\n _vm.dialogVisible = $event;\n }\n }\n }, _vm._l(_vm.nodeIconList, function (item) {\n return _c(\"div\", {\n key: item.name,\n staticClass: \"item\"\n }, [_c(\"div\", {\n staticClass: \"title\"\n }, [_vm._v(_vm._s(item.name))]), _c(\"div\", {\n staticClass: \"list\"\n }, _vm._l(item.list, function (icon) {\n return _c(\"div\", {\n key: icon.name,\n staticClass: \"icon\",\n class: {\n selected: _vm.iconList.includes(item.type + \"_\" + icon.name)\n },\n domProps: {\n innerHTML: _vm._s(_vm.getHtml(icon.icon))\n },\n on: {\n click: function ($event) {\n return _vm.setIcon(item.type, icon.name);\n }\n }\n });\n }), 0)]);\n }), 0);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIcon.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=template&id=57cd2bd9&scoped=true":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=template&id=57cd2bd9&scoped=true ***!
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"Sidebar\", {\n ref: \"sidebar\",\n attrs: {\n title: _vm.$t(\"nodeIconSidebar.title\")\n }\n }, [_c(\"div\", {\n staticClass: \"box\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"el-tabs\", {\n model: {\n value: _vm.activeName,\n callback: function ($$v) {\n _vm.activeName = $$v;\n },\n expression: \"activeName\"\n }\n }, [_c(\"el-tab-pane\", {\n attrs: {\n label: _vm.$t(\"nodeIconSidebar.icon\"),\n name: \"icon\"\n }\n }), _c(\"el-tab-pane\", {\n attrs: {\n label: _vm.$t(\"nodeIconSidebar.sticker\"),\n name: \"image\"\n }\n })], 1), _c(\"div\", {\n staticClass: \"boxContent\"\n }, [_vm.activeName === \"icon\" ? _c(\"div\", {\n staticClass: \"iconBox\"\n }, _vm._l(_vm.nodeIconList, function (item) {\n return _c(\"div\", {\n key: item.name,\n staticClass: \"item\"\n }, [_c(\"div\", {\n staticClass: \"title\"\n }, [_vm._v(_vm._s(item.name))]), _c(\"div\", {\n staticClass: \"list\"\n }, _vm._l(item.list, function (icon) {\n return _c(\"div\", {\n key: icon.name,\n staticClass: \"icon\",\n class: {\n selected: _vm.iconList.includes(item.type + \"_\" + icon.name)\n },\n domProps: {\n innerHTML: _vm._s(_vm.getHtml(icon.icon))\n },\n on: {\n click: function ($event) {\n return _vm.setIcon(item.type, icon.name);\n }\n }\n });\n }), 0)]);\n }), 0) : _vm._e(), _vm.activeName === \"image\" ? _c(\"div\", {\n staticClass: \"imageBox\"\n }, _vm._l(_vm.nodeImageList, function (item) {\n return _c(\"div\", {\n key: item.name,\n staticClass: \"item\"\n }, [_c(\"div\", {\n staticClass: \"title\"\n }, [_vm._v(_vm._s(item.name))]), _c(\"div\", {\n staticClass: \"list\"\n }, _vm._l(item.list, function (image) {\n return _c(\"div\", {\n key: image.url,\n staticClass: \"icon\",\n class: {\n selected: _vm.nodeImage === image.url\n },\n on: {\n click: function ($event) {\n return _vm.setImage(image);\n }\n }\n }, [_c(\"img\", {\n attrs: {\n src: image.url,\n alt: \"\"\n }\n })]);\n }), 0)]);\n }), 0) : _vm._e()])], 1)]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIconSidebar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=template&id=46f8f710&scoped=true":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=template&id=46f8f710&scoped=true ***!
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showNodeIconToolbar,\n expression: \"showNodeIconToolbar\"\n }],\n ref: \"nodeIconToolbar\",\n staticClass: \"nodeIconToolbar\",\n style: _vm.style,\n on: {\n \"&click\": function ($event) {\n $event.stopPropagation();\n }\n }\n }, [_c(\"div\", {\n staticClass: \"iconListBox\"\n }, _vm._l(_vm.iconList, function (icon) {\n return _c(\"div\", {\n key: icon.name,\n staticClass: \"icon\",\n class: {\n selected: _vm.nodeIconList.includes(_vm.iconType + \"_\" + icon.name)\n },\n domProps: {\n innerHTML: _vm._s(_vm.getHtml(icon.icon))\n },\n on: {\n click: function ($event) {\n return _vm.setIcon(icon.name);\n }\n }\n });\n }), 0), _c(\"div\", {\n staticClass: \"btnBox\"\n }, [_c(\"span\", {\n staticClass: \"btn iconfont iconshanchu\",\n on: {\n click: _vm.deleteIcon\n }\n })])]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIconToolbar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImage.vue?vue&type=template&id=7395e9de&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeImage.vue?vue&type=template&id=7395e9de&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"el-dialog\", {\n staticClass: \"nodeImageDialog\",\n attrs: {\n title: _vm.$t(\"nodeImage.title\"),\n visible: _vm.dialogVisible,\n width: _vm.isMobile ? \"90%\" : \"50%\",\n top: _vm.isMobile ? \"20px\" : \"15vh\",\n \"modal-append-to-body\": _vm.modalAppendToBody,\n \"append-to-body\": _vm.appendToBody,\n \"lock-scroll\": false\n },\n on: {\n \"update:visible\": function ($event) {\n _vm.dialogVisible = $event;\n }\n }\n }, [_c(\"div\", {\n staticClass: \"title\"\n }, [_vm._v(\"方式一\")]), _c(\"ImgUpload\", {\n ref: \"ImgUpload\",\n staticStyle: {\n \"margin-bottom\": \"12px\"\n },\n model: {\n value: _vm.img,\n callback: function ($$v) {\n _vm.img = $$v;\n },\n expression: \"img\"\n }\n }), _c(\"div\", {\n staticClass: \"title\"\n }, [_vm._v(\"方式二\")]), _c(\"div\", {\n staticClass: \"inputBox\"\n }, [_c(\"span\", {\n staticClass: \"label\"\n }, [_vm._v(\"请输入图片地址\")]), _c(\"el-input\", {\n attrs: {\n size: \"mini\",\n placeholder: \"http://xxx.com/xx.jpg\"\n },\n nativeOn: {\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.imgUrl,\n callback: function ($$v) {\n _vm.imgUrl = $$v;\n },\n expression: \"imgUrl\"\n }\n })], 1), _c(\"div\", {\n staticClass: \"title\"\n }, [_vm._v(\"可选\")]), _c(\"div\", {\n staticClass: \"inputBox\"\n }, [_c(\"span\", {\n staticClass: \"label\"\n }, [_vm._v(_vm._s(_vm.$t(\"nodeImage.imgTitle\")))]), _c(\"el-input\", {\n attrs: {\n size: \"mini\"\n },\n nativeOn: {\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.imgTitle,\n callback: function ($$v) {\n _vm.imgTitle = $$v;\n },\n expression: \"imgTitle\"\n }\n })], 1), _c(\"span\", {\n staticClass: \"dialog-footer\",\n attrs: {\n slot: \"footer\"\n },\n slot: \"footer\"\n }, [_c(\"el-button\", {\n on: {\n click: _vm.cancel\n }\n }, [_vm._v(_vm._s(_vm.$t(\"dialog.cancel\")))]), _c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: _vm.confirm\n }\n }, [_vm._v(_vm._s(_vm.$t(\"dialog.confirm\")))])], 1)], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImage.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=template&id=e543fe22&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=template&id=e543fe22&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showImgPlacementToolbar,\n expression: \"showImgPlacementToolbar\"\n }],\n ref: \"nodeImgPlacementToolbar\",\n staticClass: \"nodeImgPlacementToolbar\",\n style: _vm.style,\n on: {\n \"&click\": function ($event) {\n $event.stopPropagation();\n }\n }\n }, [_vm._l(_vm.imgPlacementList, function (item) {\n return _c(\"div\", {\n key: item,\n staticClass: \"imgPlacementItem iconfont iconcontentleft\",\n class: [{\n selected: _vm.imgPlacement === item\n }, \"icon_\" + item],\n on: {\n click: function ($event) {\n return _vm.updateImgPlacement(item);\n }\n }\n });\n }), _c(\"div\", {\n staticClass: \"divider\"\n }), _c(\"div\", {\n staticClass: \"imgPlacementItem copyBtn\",\n attrs: {\n title: _vm.$t(\"nodeImage.copyImage\")\n },\n on: {\n click: _vm.handleCopyImage\n }\n }, [_c(\"i\", {\n staticClass: \"el-icon-copy-document\",\n attrs: {\n \"aria-hidden\": \"true\"\n }\n })])], 2);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImgPlacementToolbar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImgPreview.vue?vue&type=template&id=512178bf":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeImgPreview.vue?vue&type=template&id=512178bf ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"viewer\", {\n attrs: {\n images: _vm.images\n }\n }, _vm._l(_vm.images, function (src) {\n return _c(\"img\", {\n key: src,\n attrs: {\n src: src\n }\n });\n }), 0);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImgPreview.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeNote.vue?vue&type=template&id=af598da8&scoped=true":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeNote.vue?vue&type=template&id=af598da8&scoped=true ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"el-dialog\", {\n staticClass: \"nodeNoteDialog\",\n attrs: {\n title: _vm.$t(\"nodeNote.title\"),\n visible: _vm.dialogVisible,\n width: _vm.isMobile ? \"90%\" : \"50%\",\n top: _vm.isMobile ? \"20px\" : \"15vh\",\n \"modal-append-to-body\": _vm.modalAppendToBody,\n \"append-to-body\": _vm.appendToBody,\n \"lock-scroll\": false\n },\n on: {\n \"update:visible\": function ($event) {\n _vm.dialogVisible = $event;\n }\n }\n }, [_c(\"div\", {\n ref: \"noteEditor\",\n staticClass: \"noteEditor\",\n on: {\n keyup: function ($event) {\n $event.stopPropagation();\n },\n keydown: function ($event) {\n $event.stopPropagation();\n }\n }\n }), _c(\"span\", {\n staticClass: \"dialog-footer\",\n attrs: {\n slot: \"footer\"\n },\n slot: \"footer\"\n }, [_c(\"el-button\", {\n on: {\n click: _vm.cancel\n }\n }, [_vm._v(_vm._s(_vm.$t(\"dialog.cancel\")))]), _c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: _vm.confirm\n }\n }, [_vm._v(_vm._s(_vm.$t(\"dialog.confirm\")))])], 1)]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeNote.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=template&id=6b66390c&scoped=true":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=template&id=6b66390c&scoped=true ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n ref: \"noteContentViewer\",\n staticClass: \"noteContentViewer customScrollbar\",\n style: {\n left: this.left + \"px\",\n top: this.top + \"px\",\n visibility: _vm.show ? \"visible\" : \"hidden\"\n },\n on: {\n click: function ($event) {\n $event.stopPropagation();\n },\n mousedown: function ($event) {\n $event.stopPropagation();\n },\n mousemove: function ($event) {\n $event.stopPropagation();\n },\n mouseup: function ($event) {\n $event.stopPropagation();\n }\n }\n });\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeNoteContentShow.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=template&id=7cdd956c&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=template&id=7cdd956c&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.show,\n expression: \"show\"\n }],\n ref: \"elRef\",\n staticClass: \"nodeOuterFrameContainer\",\n class: {\n isDark: _vm.isDark\n },\n style: _vm.position\n }, [_c(\"div\", {\n staticClass: \"btn\",\n on: {\n click: function ($event) {\n _vm.showPanel = !_vm.showPanel;\n }\n }\n }, [_c(\"span\", {\n staticClass: \"iconfont iconjingzi\"\n })]), _vm.showPanel ? _c(\"div\", {\n staticClass: \"panel\"\n }, [_c(\"div\", {\n staticClass: \"panelHeader\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"nodeOuterFrame.outerFrameSetting\")))]), _c(\"span\", {\n staticClass: \"deleteBtn\",\n on: {\n click: _vm.deleteOuterFrame\n }\n }, [_vm._v(\" \" + _vm._s(_vm.$t(\"nodeOuterFrame.deleteOuterFrame\")) + \" \"), _c(\"span\", {\n staticClass: \"iconfont iconshanchu\"\n })])]), _c(\"div\", {\n staticClass: \"panelBody\"\n }, [_c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"nodeOuterFrame.boxStyle\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.updateOuterFrame(\"strokeWidth\", value);\n }\n },\n model: {\n value: _vm.styleConfig.strokeWidth,\n callback: function ($$v) {\n _vm.$set(_vm.styleConfig, \"strokeWidth\", $$v);\n },\n expression: \"styleConfig.strokeWidth\"\n }\n }, _vm._l(_vm.lineWidthList, function (item) {\n return _c(\"el-option\", {\n key: item,\n attrs: {\n label: item,\n value: item\n }\n }, [item > 0 ? _c(\"span\", {\n staticClass: \"borderLine\",\n class: {\n isDark: _vm.isDark\n },\n style: {\n height: item + \"px\"\n }\n }) : _vm._e()]);\n }), 1), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\",\n \"margin-left\": \"4px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.updateOuterFrame(\"strokeDasharray\", value);\n }\n },\n model: {\n value: _vm.styleConfig.strokeDasharray,\n callback: function ($$v) {\n _vm.$set(_vm.styleConfig, \"strokeDasharray\", $$v);\n },\n expression: \"styleConfig.strokeDasharray\"\n }\n }, _vm._l(_vm.borderDasharrayList, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n attrs: {\n label: item.name,\n value: item.value\n }\n }, [_c(\"svg\", {\n attrs: {\n width: \"120\",\n height: \"34\"\n }\n }, [_c(\"line\", {\n attrs: {\n x1: \"10\",\n y1: \"17\",\n x2: \"110\",\n y2: \"17\",\n \"stroke-width\": \"2\",\n stroke: _vm.styleConfig.strokeDasharray === item.value ? \"#409eff\" : _vm.isDark ? \"#fff\" : \"#000\",\n \"stroke-dasharray\": item.value\n }\n })])]);\n }), 1)], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"nodeOuterFrame.boxColor\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover\",\n arg: \"popover\"\n }],\n staticClass: \"block\",\n style: {\n backgroundColor: _vm.styleConfig.strokeColor\n }\n }), _c(\"el-popover\", {\n ref: \"popover\",\n attrs: {\n placement: \"bottom\",\n trigger: \"click\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.styleConfig.strokeColor\n },\n on: {\n change: color => {\n _vm.updateOuterFrame(\"strokeColor\", color);\n }\n }\n })], 1)], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"nodeOuterFrame.fillColor\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover2\",\n arg: \"popover2\"\n }],\n staticClass: \"block\",\n style: {\n backgroundColor: _vm.styleConfig.fill\n }\n }), _c(\"el-popover\", {\n ref: \"popover2\",\n attrs: {\n placement: \"bottom\",\n trigger: \"click\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.styleConfig.fill\n },\n on: {\n change: color => {\n _vm.updateOuterFrame(\"fill\", color);\n }\n }\n })], 1)], 1)])])]) : _vm._e()]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeOuterFrame.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeTag.vue?vue&type=template&id=a37d0d60&scoped=true":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeTag.vue?vue&type=template&id=a37d0d60&scoped=true ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"el-dialog\", {\n staticClass: \"nodeTagDialog\",\n attrs: {\n title: _vm.$t(\"nodeTag.title\"),\n visible: _vm.dialogVisible,\n width: _vm.isMobile ? \"90%\" : \"50%\",\n top: _vm.isMobile ? \"20px\" : \"15vh\",\n \"modal-append-to-body\": _vm.modalAppendToBody,\n \"append-to-body\": _vm.appendToBody,\n \"lock-scroll\": false\n },\n on: {\n \"update:visible\": function ($event) {\n _vm.dialogVisible = $event;\n }\n }\n }, [_c(\"el-input\", {\n attrs: {\n disabled: _vm.tagArr.length >= _vm.max,\n placeholder: _vm.$t(\"nodeTag.addTip\")\n },\n nativeOn: {\n keyup: [function ($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n return _vm.add.apply(null, arguments);\n }, function ($event) {\n $event.stopPropagation();\n }],\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.tag,\n callback: function ($$v) {\n _vm.tag = $$v;\n },\n expression: \"tag\"\n }\n }), _c(\"div\", {\n staticClass: \"tagList\"\n }, _vm._l(_vm.tagArr, function (item, index) {\n return _c(\"div\", {\n key: index,\n staticClass: \"tagItem\",\n style: {\n backgroundColor: _vm.generateColorByContent(item)\n }\n }, [_vm._v(\" \" + _vm._s(typeof item === \"string\" ? item : item.text) + \" \"), _c(\"div\", {\n staticClass: \"delBtn\",\n on: {\n click: function ($event) {\n return _vm.del(index);\n }\n }\n }, [_c(\"span\", {\n staticClass: \"iconfont iconshanchu\"\n })])]);\n }), 0), _c(\"span\", {\n staticClass: \"dialog-footer\",\n attrs: {\n slot: \"footer\"\n },\n slot: \"footer\"\n }, [_c(\"el-button\", {\n on: {\n click: _vm.cancel\n }\n }, [_vm._v(_vm._s(_vm.$t(\"dialog.cancel\")))]), _c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: _vm.confirm\n }\n }, [_vm._v(_vm._s(_vm.$t(\"dialog.confirm\")))])], 1)], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeTag.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeTagStyle.vue?vue&type=template&id=cecf481e&scoped=true":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeTagStyle.vue?vue&type=template&id=cecf481e&scoped=true ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.show,\n expression: \"show\"\n }],\n ref: \"elRef\",\n staticClass: \"nodeTagStyleContainer\",\n class: {\n isDark: _vm.isDark\n },\n style: _vm.position\n }, [_c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"el-input\", {\n attrs: {\n placeholder: _vm.$t(\"nodeTagStyle.placeholder\"),\n size: \"mini\"\n },\n on: {\n blur: _vm.updateTagText\n },\n nativeOn: {\n keydown: function ($event) {\n $event.stopPropagation();\n },\n keyup: function ($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n $event.stopPropagation();\n return _vm.updateTagText.apply(null, arguments);\n }\n },\n model: {\n value: _vm.text,\n callback: function ($$v) {\n _vm.text = $$v;\n },\n expression: \"text\"\n }\n }), _c(\"div\", {\n staticClass: \"deleteBtn\",\n on: {\n click: function ($event) {\n $event.stopPropagation();\n return _vm.deleteTag.apply(null, arguments);\n }\n }\n }, [_c(\"span\", {\n staticClass: \"iconfont iconshanchu\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"nodeTagStyle.delete\")))])])], 1), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.fill\n },\n on: {\n change: _vm.updateTagFill\n }\n })], 1)]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeTagStyle.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=template&id=9136dda4&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=template&id=9136dda4&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _c(\"Transition\", {\n attrs: {\n name: \"fade\",\n duration: {\n enter: 500,\n leave: 300\n }\n }\n }, [_c(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: _setup.isVisible,\n expression: \"isVisible\"\n }],\n staticClass: \"siyuan-link-float\",\n style: {\n left: _setup.position.x + \"px\",\n top: _setup.position.y + \"px\"\n },\n on: {\n mouseenter: _setup.clearHideTimer,\n mouseleave: _setup.startHideTimer\n }\n }, [_c(\"div\", {\n staticClass: \"button-container\"\n }, [_c(\"div\", {\n staticClass: \"graphic-button right\",\n attrs: {\n title: _vm.$t(\"openSiyuanFloat.openRight\")\n },\n on: {\n click: function ($event) {\n return _setup.openLink(\"right\");\n }\n }\n }, [_c(\"div\", {\n staticClass: \"left-part\"\n }), _c(\"div\", {\n staticClass: \"right-part\"\n })]), _c(\"div\", {\n staticClass: \"graphic-button bottom\",\n attrs: {\n title: _vm.$t(\"openSiyuanFloat.openBottom\")\n },\n on: {\n click: function ($event) {\n return _setup.openLink(\"bottom\");\n }\n }\n }, [_c(\"div\", {\n staticClass: \"top-part\"\n }), _c(\"div\", {\n staticClass: \"bottom-part\"\n })])])])]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OpenSiyuanFloat/index.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Outline.vue?vue&type=template&id=f578ab4c&scoped=true":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Outline.vue?vue&type=template&id=f578ab4c&scoped=true ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"el-tree\", {\n ref: \"tree\",\n staticClass: \"outlineTree\",\n class: {\n isDark: _vm.isDark\n },\n attrs: {\n \"node-key\": \"uid\",\n draggable: \"\",\n \"default-expand-all\": \"\",\n data: _vm.data,\n props: _vm.defaultProps,\n \"highlight-current\": true,\n \"expand-on-click-node\": false,\n \"allow-drag\": _vm.checkAllowDrag\n },\n on: {\n \"node-drop\": _vm.onNodeDrop,\n \"node-drag-start\": _vm.onNodeDragStart,\n \"node-drag-end\": _vm.onNodeDragEnd,\n \"current-change\": _vm.onCurrentChange\n },\n nativeOn: {\n mouseenter: function ($event) {\n _vm.isInTreArea = true;\n },\n mouseleave: function ($event) {\n _vm.isInTreArea = false;\n }\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function ({\n node,\n data\n }) {\n return _c(\"span\", {\n staticClass: \"customNode\",\n attrs: {\n \"data-id\": data.uid\n },\n on: {\n click: function ($event) {\n return _vm.onClick(data);\n }\n }\n }, [_c(\"span\", {\n key: _vm.getKey(),\n staticClass: \"nodeEdit\",\n attrs: {\n contenteditable: !_vm.isReadonly\n },\n domProps: {\n innerHTML: _vm._s(node.label)\n },\n on: {\n keydown: function ($event) {\n $event.stopPropagation();\n return _vm.onNodeInputKeydown($event, node);\n },\n keyup: function ($event) {\n $event.stopPropagation();\n },\n blur: function ($event) {\n return _vm.onBlur($event, node);\n },\n paste: function ($event) {\n return _vm.onPaste($event, node);\n }\n }\n })]);\n }\n }])\n });\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Outline.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OutlineEdit.vue?vue&type=template&id=15cdb684&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/OutlineEdit.vue?vue&type=template&id=15cdb684&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _vm.isOutlineEdit ? _c(\"div\", {\n ref: \"outlineEditContainer\",\n staticClass: \"outlineEditContainer\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"div\", {\n staticClass: \"btnList\"\n }, [_c(\"el-tooltip\", {\n staticClass: \"item\",\n attrs: {\n effect: \"dark\",\n content: _vm.$t(\"outline.print\"),\n placement: \"top\"\n }\n }, [_c(\"div\", {\n staticClass: \"btn\",\n on: {\n click: _vm.onPrint\n }\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconprinting\"\n })])]), _c(\"div\", {\n staticClass: \"btn\",\n on: {\n click: _vm.onClose\n }\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconguanbi\"\n })])], 1), _c(\"div\", {\n ref: \"outlineEditBox\",\n staticClass: \"outlineEditBox\",\n attrs: {\n id: \"fullScreenOutlineEditBox\"\n }\n }, [_c(\"div\", {\n staticClass: \"outlineEdit\"\n }, [_c(\"el-tree\", {\n ref: \"tree\",\n staticClass: \"outlineTree\",\n class: {\n isDark: _vm.isDark\n },\n attrs: {\n \"node-key\": \"uid\",\n draggable: \"\",\n \"default-expand-all\": \"\",\n data: _vm.data,\n props: _vm.defaultProps,\n \"highlight-current\": true,\n \"expand-on-click-node\": false,\n \"allow-drag\": _vm.checkAllowDrag\n },\n on: {\n \"node-drop\": _vm.onNodeDrop,\n \"current-change\": _vm.onCurrentChange\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function ({\n node,\n data\n }) {\n return _c(\"span\", {\n staticClass: \"customNode\",\n attrs: {\n \"data-id\": data.uid\n }\n }, [_c(\"span\", {\n key: _vm.getKey(),\n staticClass: \"nodeEdit\",\n attrs: {\n contenteditable: !_vm.isReadonly\n },\n domProps: {\n innerHTML: _vm._s(node.label)\n },\n on: {\n blur: function ($event) {\n return _vm.onBlur($event, node);\n },\n keydown: function ($event) {\n $event.stopPropagation();\n return _vm.onNodeInputKeydown($event, node);\n },\n keyup: function ($event) {\n $event.stopPropagation();\n },\n paste: function ($event) {\n return _vm.onPaste($event, node);\n }\n }\n })]);\n }\n }], null, false, 485109613)\n })], 1)])]) : _vm._e();\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OutlineEdit.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OutlineSidebar.vue?vue&type=template&id=51befc5c&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/OutlineSidebar.vue?vue&type=template&id=51befc5c&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"Sidebar\", {\n ref: \"sidebar\",\n attrs: {\n title: _vm.$t(\"outline.title\")\n }\n }, [_c(\"div\", {\n staticClass: \"btnList\"\n }, [_c(\"el-tooltip\", {\n staticClass: \"item\",\n attrs: {\n effect: \"dark\",\n content: _vm.$t(\"outline.print\"),\n placement: \"top\"\n }\n }, [_c(\"div\", {\n staticClass: \"btn\",\n on: {\n click: _vm.onPrint\n }\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconprinting\"\n })])]), _c(\"el-tooltip\", {\n staticClass: \"item\",\n attrs: {\n effect: \"dark\",\n content: _vm.$t(\"outline.fullscreen\"),\n placement: \"top\"\n }\n }, [_c(\"div\", {\n staticClass: \"btn\",\n class: {\n isDark: _vm.isDark\n },\n on: {\n click: _vm.onChangeToOutlineEdit\n }\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconquanping1\"\n })])])], 1), _vm.activeSidebar === \"outline\" ? _c(\"Outline\", {\n ref: \"outlineRef\",\n attrs: {\n mindMap: _vm.mindMap\n },\n on: {\n scrollTo: _vm.onScrollTo\n }\n }) : _vm._e()], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OutlineSidebar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/RichEditor/index.vue?vue&type=template&id=10cbee78":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/RichEditor/index.vue?vue&type=template&id=10cbee78 ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _c(\"el-dialog\", {\n attrs: {\n width: _setup.isMobile ? \"90%\" : \"50%\",\n top: _setup.isMobile ? \"20px\" : \"15vh\",\n visible: _setup.dialogVisible,\n title: _vm.$t(\"richEditor.nodeEditorTitle\"),\n \"modal-append-to-body\": true,\n \"append-to-body\": true,\n \"lock-scroll\": false\n },\n on: {\n \"update:visible\": function ($event) {\n _setup.dialogVisible = $event;\n }\n }\n }, [_c(_setup.quillEditor, {\n ref: \"quillEditorRef\",\n attrs: {\n options: _setup.quillOptions\n },\n on: {\n ready: _setup.handleEditorReady\n },\n model: {\n value: _setup.content,\n callback: function ($$v) {\n _setup.content = $$v;\n },\n expression: \"content\"\n }\n })], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/RichEditor/index.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/RichTextToolbar.vue?vue&type=template&id=06888dac&scoped=true":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/RichTextToolbar.vue?vue&type=template&id=06888dac&scoped=true ***!
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showRichTextToolbar && !_vm.isMocMode,\n expression: \"showRichTextToolbar && !isMocMode\"\n }],\n ref: \"richTextToolbar\",\n staticClass: \"richTextToolbar\",\n class: {\n isDark: _vm.isDark\n },\n style: _vm.style,\n on: {\n \"&click\": function ($event) {\n $event.stopPropagation();\n }\n }\n }, [_c(\"el-tooltip\", {\n attrs: {\n content: _vm.$t(\"richTextToolbar.bold\"),\n placement: \"top\"\n }\n }, [_c(\"div\", {\n staticClass: \"btn\",\n class: {\n active: _vm.formatInfo.bold\n },\n on: {\n click: _vm.toggleBold\n }\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconzitijiacu\"\n })])]), _c(\"el-tooltip\", {\n attrs: {\n content: _vm.$t(\"richTextToolbar.italic\"),\n placement: \"top\"\n }\n }, [_c(\"div\", {\n staticClass: \"btn\",\n class: {\n active: _vm.formatInfo.italic\n },\n on: {\n click: _vm.toggleItalic\n }\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconzitixieti\"\n })])]), _c(\"el-tooltip\", {\n attrs: {\n content: _vm.$t(\"richTextToolbar.underline\"),\n placement: \"top\"\n }\n }, [_c(\"div\", {\n staticClass: \"btn\",\n class: {\n active: _vm.formatInfo.underline\n },\n on: {\n click: _vm.toggleUnderline\n }\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconzitixiahuaxian\"\n })])]), _c(\"el-tooltip\", {\n attrs: {\n content: _vm.$t(\"richTextToolbar.strike\"),\n placement: \"top\"\n }\n }, [_c(\"div\", {\n staticClass: \"btn\",\n class: {\n active: _vm.formatInfo.strike\n },\n on: {\n click: _vm.toggleStrike\n }\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconshanchuxian\"\n })])]), _c(\"el-tooltip\", {\n attrs: {\n content: _vm.$t(\"richTextToolbar.fontFamily\"),\n placement: \"top\"\n }\n }, [_c(\"el-popover\", {\n attrs: {\n placement: \"bottom\",\n trigger: \"hover\"\n }\n }, [_c(\"div\", {\n staticClass: \"fontOptionsList\",\n class: {\n isDark: _vm.isDark\n }\n }, _vm._l(_vm.fontFamilyList, function (item) {\n return _c(\"div\", {\n key: item.value,\n staticClass: \"fontOptionItem\",\n class: {\n active: _vm.formatInfo.font === item.value\n },\n style: {\n fontFamily: item.value\n },\n on: {\n click: function ($event) {\n return _vm.changeFontFamily(item.value);\n }\n }\n }, [_vm._v(\" \" + _vm._s(item.name) + \" \")]);\n }), 0), _c(\"div\", {\n staticClass: \"btn\",\n attrs: {\n slot: \"reference\"\n },\n slot: \"reference\"\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconxingzhuang-wenzi\"\n })])])], 1), _c(\"el-tooltip\", {\n attrs: {\n content: _vm.$t(\"richTextToolbar.fontSize\"),\n placement: \"top\"\n }\n }, [_c(\"el-popover\", {\n attrs: {\n placement: \"bottom\",\n trigger: \"hover\"\n }\n }, [_c(\"div\", {\n staticClass: \"fontOptionsList\",\n class: {\n isDark: _vm.isDark\n }\n }, _vm._l(_vm.fontSizeList, function (item) {\n return _c(\"div\", {\n key: item,\n staticClass: \"fontOptionItem\",\n class: {\n active: _vm.formatInfo.size === item + \"px\"\n },\n style: {\n fontSize: item + \"px\",\n height: (item < 30 ? 30 : item + 10) + \"px\"\n },\n on: {\n click: function ($event) {\n return _vm.changeFontSize(item);\n }\n }\n }, [_vm._v(\" \" + _vm._s(item) + \"px \")]);\n }), 0), _c(\"div\", {\n staticClass: \"btn\",\n attrs: {\n slot: \"reference\"\n },\n slot: \"reference\"\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconcase fontColor\"\n })])])], 1), _c(\"el-tooltip\", {\n attrs: {\n content: _vm.$t(\"richTextToolbar.color\"),\n placement: \"top\"\n }\n }, [_c(\"el-popover\", {\n attrs: {\n placement: \"bottom\",\n trigger: \"hover\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.fontColor\n },\n on: {\n change: _vm.changeFontColor\n }\n }), _c(\"div\", {\n staticClass: \"btn\",\n style: {\n color: _vm.formatInfo.color\n },\n attrs: {\n slot: \"reference\"\n },\n slot: \"reference\"\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconzitiyanse\"\n })])], 1)], 1), _c(\"el-tooltip\", {\n attrs: {\n content: _vm.$t(\"richTextToolbar.backgroundColor\"),\n placement: \"top\"\n }\n }, [_c(\"el-popover\", {\n attrs: {\n placement: \"bottom\",\n trigger: \"hover\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.fontBackgroundColor\n },\n on: {\n change: _vm.changeFontBackgroundColor\n }\n }), _c(\"div\", {\n staticClass: \"btn\",\n attrs: {\n slot: \"reference\"\n },\n slot: \"reference\"\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconbeijingyanse\"\n })])], 1)], 1), _c(\"el-tooltip\", {\n attrs: {\n content: _vm.$t(\"richTextToolbar.textAlign\"),\n placement: \"top\"\n }\n }, [_c(\"el-popover\", {\n attrs: {\n placement: \"bottom\",\n trigger: \"hover\"\n }\n }, [_c(\"div\", {\n staticClass: \"fontOptionsList\",\n class: {\n isDark: _vm.isDark\n }\n }, _vm._l(_vm.alignList, function (item) {\n return _c(\"div\", {\n key: item.value,\n staticClass: \"fontOptionItem\",\n class: {\n active: _vm.formatInfo.align === item.value\n },\n on: {\n click: function ($event) {\n return _vm.changeTextAlign(item.value);\n }\n }\n }, [_vm._v(\" \" + _vm._s(item.name) + \" \")]);\n }), 0), _c(\"div\", {\n staticClass: \"btn\",\n attrs: {\n slot: \"reference\"\n },\n slot: \"reference\"\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconjuzhongduiqi\"\n })])])], 1), _c(\"el-tooltip\", {\n attrs: {\n content: _vm.$t(\"richTextToolbar.removeFormat\"),\n placement: \"top\"\n }\n }, [_c(\"div\", {\n staticClass: \"btn\",\n on: {\n click: _vm.removeFormat\n }\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconqingchu\"\n })])])], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/RichTextToolbar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Scale.vue?vue&type=template&id=1405f13c&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Scale.vue?vue&type=template&id=1405f13c&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"scaleContainer\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"el-tooltip\", {\n staticClass: \"item\",\n attrs: {\n effect: \"dark\",\n content: _vm.$t(\"scale.zoomOut\"),\n placement: \"top\"\n }\n }, [_c(\"div\", {\n staticClass: \"btn el-icon-minus\",\n on: {\n click: _vm.narrow\n }\n })]), _c(\"div\", {\n staticClass: \"scaleInfo\"\n }, [_c(\"input\", {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.scaleNum,\n expression: \"scaleNum\"\n }],\n ref: \"inputRef\",\n attrs: {\n type: \"text\"\n },\n domProps: {\n value: _vm.scaleNum\n },\n on: {\n input: [function ($event) {\n if ($event.target.composing) return;\n _vm.scaleNum = $event.target.value;\n }, _vm.onScaleNumInput],\n change: _vm.onScaleNumChange,\n focus: _vm.onScaleNumInputFocus,\n keydown: function ($event) {\n $event.stopPropagation();\n },\n keyup: function ($event) {\n $event.stopPropagation();\n }\n }\n }), _vm._v(\"% \")]), _c(\"el-tooltip\", {\n staticClass: \"item\",\n attrs: {\n effect: \"dark\",\n content: _vm.$t(\"scale.zoomIn\"),\n placement: \"top\"\n }\n }, [_c(\"div\", {\n staticClass: \"btn el-icon-plus\",\n on: {\n click: _vm.enlarge\n }\n })])], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Scale.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Scrollbar.vue?vue&type=template&id=6aaa1384&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Scrollbar.vue?vue&type=template&id=6aaa1384&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"scrollbarContainer\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"div\", {\n ref: \"verticalScrollbarRef\",\n staticClass: \"scrollbar verticalScrollbar\",\n on: {\n click: _vm.onVerticalScrollbarClick\n }\n }, [_c(\"div\", {\n staticClass: \"scrollbarInner\",\n style: _vm.verticalScrollbarStyle,\n on: {\n click: function ($event) {\n $event.stopPropagation();\n },\n mousedown: _vm.onVerticalScrollbarMousedown\n }\n })]), _c(\"div\", {\n ref: \"horizontalScrollbarRef\",\n staticClass: \"scrollbar horizontalScrollbar\",\n on: {\n click: _vm.onHorizontalScrollbarClick\n }\n }, [_c(\"div\", {\n staticClass: \"scrollbarInner\",\n style: _vm.horizontalScrollbarStyle,\n on: {\n click: function ($event) {\n $event.stopPropagation();\n },\n mousedown: _vm.onHorizontalScrollbarMousedown\n }\n })])]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Scrollbar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Search.vue?vue&type=template&id=2f3913c0&scoped=true":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Search.vue?vue&type=template&id=2f3913c0&scoped=true ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\n/* harmony import */ var core_js_modules_es_string_replace_all_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.string.replace-all.js */ \"./node_modules/core-js/modules/es.string.replace-all.js\");\n/* harmony import */ var core_js_modules_es_string_replace_all_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_all_js__WEBPACK_IMPORTED_MODULE_0__);\n\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"searchContainer\",\n class: {\n isDark: _vm.isDark,\n show: _vm.show\n }\n }, [_c(\"div\", {\n staticClass: \"closeBtnBox\"\n }, [_c(\"span\", {\n staticClass: \"closeBtn el-icon-close\",\n on: {\n click: _vm.close\n }\n })]), _c(\"div\", {\n staticClass: \"searchInputBox\"\n }, [_c(\"el-input\", {\n ref: \"searchInputRef\",\n attrs: {\n placeholder: _vm.$t(\"search.searchPlaceholder\"),\n size: \"small\"\n },\n on: {\n focus: _vm.onFocus,\n blur: _vm.onBlur\n },\n nativeOn: {\n keyup: function ($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n $event.stopPropagation();\n return _vm.onSearchNext.apply(null, arguments);\n },\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.searchText,\n callback: function ($$v) {\n _vm.searchText = $$v;\n },\n expression: \"searchText\"\n }\n }, [_c(\"i\", {\n staticClass: \"el-input__icon el-icon-search\",\n attrs: {\n slot: \"prefix\"\n },\n slot: \"prefix\"\n }), !_vm.isUndef(_vm.searchText) ? _c(\"el-button\", {\n attrs: {\n slot: \"append\",\n size: \"small\"\n },\n on: {\n click: function ($event) {\n _vm.showReplaceInput = true;\n }\n },\n slot: \"append\"\n }, [_vm._v(_vm._s(_vm.$t(\"search.replace\")))]) : _vm._e()], 1), _vm.showSearchInfo ? _c(\"div\", {\n staticClass: \"searchInfo\"\n }, [_vm._v(\" \" + _vm._s(_vm.currentIndex) + \" / \" + _vm._s(_vm.total) + \" \")]) : _vm._e()], 1), _vm.showReplaceInput ? _c(\"el-input\", {\n ref: \"replaceInputRef\",\n staticStyle: {\n margin: \"12px 0\"\n },\n attrs: {\n placeholder: _vm.$t(\"search.replacePlaceholder\"),\n size: \"small\"\n },\n on: {\n focus: _vm.onFocus,\n blur: _vm.onBlur\n },\n nativeOn: {\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.replaceText,\n callback: function ($$v) {\n _vm.replaceText = $$v;\n },\n expression: \"replaceText\"\n }\n }, [_c(\"i\", {\n staticClass: \"el-input__icon el-icon-edit\",\n attrs: {\n slot: \"prefix\"\n },\n slot: \"prefix\"\n }), _c(\"el-button\", {\n attrs: {\n slot: \"append\",\n size: \"small\"\n },\n on: {\n click: _vm.hideReplaceInput\n },\n slot: \"append\"\n }, [_vm._v(_vm._s(_vm.$t(\"search.cancel\")))])], 1) : _vm._e(), _vm.showReplaceInput ? _c(\"div\", {\n staticClass: \"btnList\"\n }, [_c(\"el-button\", {\n attrs: {\n size: \"small\",\n disabled: _vm.isReadonly\n },\n on: {\n click: _vm.replace\n }\n }, [_vm._v(_vm._s(_vm.$t(\"search.replace\")))]), _c(\"el-button\", {\n attrs: {\n size: \"small\",\n disabled: _vm.isReadonly\n },\n on: {\n click: _vm.replaceAll\n }\n }, [_vm._v(_vm._s(_vm.$t(\"search.replaceAll\")))])], 1) : _vm._e(), _vm.showSearchResultList ? _c(\"div\", {\n staticClass: \"searchResultList\",\n style: {\n height: _vm.searchResultListHeight + \"px\"\n }\n }, [_vm._l(_vm.searchResultList, function (item, index) {\n return _c(\"div\", {\n key: item.id,\n staticClass: \"searchResultItem\",\n attrs: {\n title: item.name\n },\n domProps: {\n innerHTML: _vm._s(item.text)\n },\n on: {\n click: function ($event) {\n $event.stopPropagation();\n return _vm.onSearchResultItemClick(index);\n }\n }\n });\n }), _vm.searchResultList.length <= 0 ? _c(\"div\", {\n staticClass: \"empty\"\n }, [_c(\"span\", {\n staticClass: \"iconfont iconwushuju\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"search.noResult\")))])]) : _vm._e()], 2) : _vm._e()], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Search.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Setting.vue?vue&type=template&id=59360d30&scoped=true":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Setting.vue?vue&type=template&id=59360d30&scoped=true ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"Sidebar\", {\n ref: \"sidebar\",\n attrs: {\n title: _vm.$t(\"setting.title\")\n }\n }, [_vm.data ? _c(\"div\", {\n staticClass: \"sidebarContent customScrollbar\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-checkbox\", {\n on: {\n change: _vm.watermarkShowChange\n },\n model: {\n value: _vm.watermarkConfig.show,\n callback: function ($$v) {\n _vm.$set(_vm.watermarkConfig, \"show\", $$v);\n },\n expression: \"watermarkConfig.show\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"setting.showWatermark\")))])], 1)]), _vm.watermarkConfig.show ? [_c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-checkbox\", {\n on: {\n change: _vm.updateWatermarkConfig\n },\n model: {\n value: _vm.watermarkConfig.onlyExport,\n callback: function ($$v) {\n _vm.$set(_vm.watermarkConfig, \"onlyExport\", $$v);\n },\n expression: \"watermarkConfig.onlyExport\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"setting.onlyExport\")))])], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-checkbox\", {\n on: {\n change: _vm.updateWatermarkConfig\n },\n model: {\n value: _vm.watermarkConfig.belowNode,\n callback: function ($$v) {\n _vm.$set(_vm.watermarkConfig, \"belowNode\", $$v);\n },\n expression: \"watermarkConfig.belowNode\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"setting.belowNode\")))])], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"setting.watermarkText\")))]), _c(\"el-input\", {\n attrs: {\n size: \"small\"\n },\n on: {\n change: _vm.updateWatermarkConfig\n },\n nativeOn: {\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.watermarkConfig.text,\n callback: function ($$v) {\n _vm.$set(_vm.watermarkConfig, \"text\", $$v);\n },\n expression: \"watermarkConfig.text\"\n }\n })], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"setting.watermarkTextColor\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover3\",\n arg: \"popover3\"\n }],\n staticClass: \"block\",\n style: {\n backgroundColor: _vm.watermarkConfig.textStyle.color\n }\n }), _c(\"el-popover\", {\n ref: \"popover3\",\n attrs: {\n placement: \"bottom\",\n trigger: \"click\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.watermarkConfig.textStyle.color\n },\n on: {\n change: value => {\n _vm.watermarkConfig.textStyle.color = value;\n _vm.updateWatermarkConfig();\n }\n }\n })], 1)], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"setting.watermarkTextOpacity\")))]), _c(\"el-slider\", {\n staticStyle: {\n width: \"170px\"\n },\n attrs: {\n min: 0,\n max: 1,\n step: 0.1\n },\n on: {\n change: _vm.updateWatermarkConfig\n },\n model: {\n value: _vm.watermarkConfig.textStyle.opacity,\n callback: function ($$v) {\n _vm.$set(_vm.watermarkConfig.textStyle, \"opacity\", $$v);\n },\n expression: \"watermarkConfig.textStyle.opacity\"\n }\n })], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"setting.watermarkTextFontSize\")))]), _c(\"el-input-number\", {\n attrs: {\n size: \"small\",\n min: 0,\n max: 50,\n step: 1\n },\n on: {\n change: _vm.updateWatermarkConfig\n },\n nativeOn: {\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.watermarkConfig.textStyle.fontSize,\n callback: function ($$v) {\n _vm.$set(_vm.watermarkConfig.textStyle, \"fontSize\", $$v);\n },\n expression: \"watermarkConfig.textStyle.fontSize\"\n }\n })], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"setting.watermarkAngle\")))]), _c(\"el-input-number\", {\n attrs: {\n size: \"small\",\n min: 0,\n max: 90,\n step: 10\n },\n on: {\n change: _vm.updateWatermarkConfig\n },\n nativeOn: {\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.watermarkConfig.angle,\n callback: function ($$v) {\n _vm.$set(_vm.watermarkConfig, \"angle\", $$v);\n },\n expression: \"watermarkConfig.angle\"\n }\n })], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"setting.watermarkLineSpacing\")))]), _c(\"el-input-number\", {\n attrs: {\n size: \"small\",\n step: 10\n },\n on: {\n change: _vm.updateWatermarkConfig\n },\n nativeOn: {\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.watermarkConfig.lineSpacing,\n callback: function ($$v) {\n _vm.$set(_vm.watermarkConfig, \"lineSpacing\", $$v);\n },\n expression: \"watermarkConfig.lineSpacing\"\n }\n })], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"setting.watermarkTextSpacing\")))]), _c(\"el-input-number\", {\n attrs: {\n size: \"small\",\n step: 10\n },\n on: {\n change: _vm.updateWatermarkConfig\n },\n nativeOn: {\n keydown: function ($event) {\n $event.stopPropagation();\n }\n },\n model: {\n value: _vm.watermarkConfig.textSpacing,\n callback: function ($$v) {\n _vm.$set(_vm.watermarkConfig, \"textSpacing\", $$v);\n },\n expression: \"watermarkConfig.textSpacing\"\n }\n })], 1)])] : _vm._e(), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-checkbox\", {\n on: {\n change: value => {\n _vm.updateOtherConfig(\"openPerformance\", value);\n }\n },\n model: {\n value: _vm.config.openPerformance,\n callback: function ($$v) {\n _vm.$set(_vm.config, \"openPerformance\", $$v);\n },\n expression: \"config.openPerformance\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"setting.openPerformance\")))])], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-checkbox\", {\n on: {\n change: value => {\n _vm.updateOtherConfig(\"enableFreeDrag\", value);\n }\n },\n model: {\n value: _vm.config.enableFreeDrag,\n callback: function ($$v) {\n _vm.$set(_vm.config, \"enableFreeDrag\", $$v);\n },\n expression: \"config.enableFreeDrag\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"setting.enableFreeDrag\")))])], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-checkbox\", {\n on: {\n change: _vm.enableNodeRichTextChange\n },\n model: {\n value: _vm.enableNodeRichText,\n callback: function ($$v) {\n _vm.enableNodeRichText = $$v;\n },\n expression: \"enableNodeRichText\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"setting.isEnableNodeRichText\")))])], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-checkbox\", {\n on: {\n change: function ($event) {\n return _vm.updateOtherConfig(\"openRealtimeRenderOnNodeTextEdit\", $event);\n }\n },\n model: {\n value: _vm.config.openRealtimeRenderOnNodeTextEdit,\n callback: function ($$v) {\n _vm.$set(_vm.config, \"openRealtimeRenderOnNodeTextEdit\", $$v);\n },\n expression: \"config.openRealtimeRenderOnNodeTextEdit\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"setting.openRealtimeRenderOnNodeTextEdit\")))])], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-checkbox\", {\n on: {\n change: function ($event) {\n return _vm.updateLocalConfig(\"isShowScrollbar\", $event);\n }\n },\n model: {\n value: _vm.localConfigs.isShowScrollbar,\n callback: function ($$v) {\n _vm.$set(_vm.localConfigs, \"isShowScrollbar\", $$v);\n },\n expression: \"localConfigs.isShowScrollbar\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"setting.isShowScrollbar\")))])], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-checkbox\", {\n on: {\n change: function ($event) {\n return _vm.updateOtherConfig(\"alwaysShowExpandBtn\", $event);\n }\n },\n model: {\n value: _vm.config.alwaysShowExpandBtn,\n callback: function ($$v) {\n _vm.$set(_vm.config, \"alwaysShowExpandBtn\", $$v);\n },\n expression: \"config.alwaysShowExpandBtn\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"setting.alwaysShowExpandBtn\")))])], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-checkbox\", {\n on: {\n change: function ($event) {\n return _vm.updateOtherConfig(\"enableAutoEnterTextEditWhenKeydown\", $event);\n }\n },\n model: {\n value: _vm.config.enableAutoEnterTextEditWhenKeydown,\n callback: function ($$v) {\n _vm.$set(_vm.config, \"enableAutoEnterTextEditWhenKeydown\", $$v);\n },\n expression: \"config.enableAutoEnterTextEditWhenKeydown\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"setting.enableAutoEnterTextEditWhenKeydown\")))])], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-checkbox\", {\n on: {\n change: function ($event) {\n return _vm.updateLocalConfig(\"enableDragImport\", $event);\n }\n },\n model: {\n value: _vm.localConfigs.enableDragImport,\n callback: function ($$v) {\n _vm.$set(_vm.localConfigs, \"enableDragImport\", $$v);\n },\n expression: \"localConfigs.enableDragImport\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"setting.enableDragImport\")))])], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-checkbox\", {\n on: {\n change: function ($event) {\n return _vm.updateOtherConfig(\"enableInheritAncestorLineStyle\", $event);\n }\n },\n model: {\n value: _vm.config.enableInheritAncestorLineStyle,\n callback: function ($$v) {\n _vm.$set(_vm.config, \"enableInheritAncestorLineStyle\", $$v);\n },\n expression: \"config.enableInheritAncestorLineStyle\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"setting.enableInheritAncestorLineStyle\")))])], 1)]), _vm.supportHandDrawnLikeStyle ? _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-checkbox\", {\n on: {\n change: function ($event) {\n return _vm.updateLocalConfig(\"isUseHandDrawnLikeStyle\", $event);\n }\n },\n model: {\n value: _vm.localConfigs.isUseHandDrawnLikeStyle,\n callback: function ($$v) {\n _vm.$set(_vm.localConfigs, \"isUseHandDrawnLikeStyle\", $$v);\n },\n expression: \"localConfigs.isUseHandDrawnLikeStyle\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"setting.isUseHandDrawnLikeStyle\")))])], 1)]) : _vm._e(), _vm.supportMomentum ? _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-checkbox\", {\n on: {\n change: function ($event) {\n return _vm.updateLocalConfig(\"isUseMomentum\", $event);\n }\n },\n model: {\n value: _vm.localConfigs.isUseMomentum,\n callback: function ($$v) {\n _vm.$set(_vm.localConfigs, \"isUseMomentum\", $$v);\n },\n expression: \"localConfigs.isUseMomentum\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"setting.isUseMomentum\")))])], 1)]) : _vm._e(), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"setting.mousewheelAction\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"120px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.updateOtherConfig(\"mousewheelAction\", value);\n }\n },\n model: {\n value: _vm.config.mousewheelAction,\n callback: function ($$v) {\n _vm.$set(_vm.config, \"mousewheelAction\", $$v);\n },\n expression: \"config.mousewheelAction\"\n }\n }, [_c(\"el-option\", {\n attrs: {\n label: _vm.$t(\"setting.zoomView\"),\n value: \"zoom\"\n }\n }), _c(\"el-option\", {\n attrs: {\n label: _vm.$t(\"setting.moveViewUpDown\"),\n value: \"move\"\n }\n })], 1)], 1)]), _vm.config.mousewheelAction === \"zoom\" ? _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"setting.mousewheelZoomActionReverse\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"120px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.updateOtherConfig(\"mousewheelZoomActionReverse\", value);\n }\n },\n model: {\n value: _vm.config.mousewheelZoomActionReverse,\n callback: function ($$v) {\n _vm.$set(_vm.config, \"mousewheelZoomActionReverse\", $$v);\n },\n expression: \"config.mousewheelZoomActionReverse\"\n }\n }, [_c(\"el-option\", {\n attrs: {\n label: _vm.$t(\"setting.mousewheelZoomActionReverse1\"),\n value: false\n }\n }), _c(\"el-option\", {\n attrs: {\n label: _vm.$t(\"setting.mousewheelZoomActionReverse2\"),\n value: true\n }\n })], 1)], 1)]) : _vm._e(), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"setting.createNewNodeBehavior\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"120px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: value => {\n _vm.updateOtherConfig(\"createNewNodeBehavior\", value);\n }\n },\n model: {\n value: _vm.config.createNewNodeBehavior,\n callback: function ($$v) {\n _vm.$set(_vm.config, \"createNewNodeBehavior\", $$v);\n },\n expression: \"config.createNewNodeBehavior\"\n }\n }, [_c(\"el-option\", {\n attrs: {\n label: _vm.$t(\"setting.default\"),\n value: \"default\"\n }\n }), _c(\"el-option\", {\n attrs: {\n label: _vm.$t(\"setting.notActive\"),\n value: \"notActive\"\n }\n }), _c(\"el-option\", {\n attrs: {\n label: _vm.$t(\"setting.activeOnly\"),\n value: \"activeOnly\"\n }\n })], 1)], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"setting.imgTextMargin\")))]), _c(\"el-slider\", {\n staticStyle: {\n width: \"150px\"\n },\n on: {\n change: value => {\n _vm.updateOtherConfig(\"imgTextMargin\", value);\n }\n },\n model: {\n value: _vm.config.imgTextMargin,\n callback: function ($$v) {\n _vm.$set(_vm.config, \"imgTextMargin\", $$v);\n },\n expression: \"config.imgTextMargin\"\n }\n })], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"setting.textContentMargin\")))]), _c(\"el-slider\", {\n staticStyle: {\n width: \"150px\"\n },\n on: {\n change: value => {\n _vm.updateOtherConfig(\"textContentMargin\", value);\n }\n },\n model: {\n value: _vm.config.textContentMargin,\n callback: function ($$v) {\n _vm.$set(_vm.config, \"textContentMargin\", $$v);\n },\n expression: \"config.textContentMargin\"\n }\n })], 1)])], 2) : _vm._e()]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Setting.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/ShortcutKey.vue?vue&type=template&id=d257aa5e&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/ShortcutKey.vue?vue&type=template&id=d257aa5e&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"Sidebar\", {\n ref: \"sidebar\",\n attrs: {\n title: _vm.$t(\"shortcutKey.title\")\n }\n }, [_c(\"div\", {\n staticClass: \"box\",\n class: {\n isDark: _vm.isDark\n }\n }, _vm._l(_vm.shortcutKeyList, function (item) {\n return _c(\"div\", {\n key: item.type\n }, [_c(\"div\", {\n staticClass: \"title\"\n }, [_vm._v(_vm._s(item.type))]), _vm._l(item.list, function (item2) {\n return _c(\"div\", {\n key: item2.value,\n staticClass: \"list\"\n }, [_c(\"div\", {\n staticClass: \"item\"\n }, [item2.icon ? _c(\"span\", {\n staticClass: \"icon iconfont\",\n class: [item2.icon]\n }) : _vm._e(), _c(\"span\", {\n staticClass: \"name\",\n attrs: {\n title: item2.name\n }\n }, [_vm._v(_vm._s(item2.name))]), _c(\"div\", {\n staticClass: \"value\",\n attrs: {\n title: item2.value\n }\n }, [_vm._v(_vm._s(item2.value))])])]);\n })], 2);\n }), 0)]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/ShortcutKey.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Sidebar.vue?vue&type=template&id=7b9adf18&scoped=true":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Sidebar.vue?vue&type=template&id=7b9adf18&scoped=true ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"sidebarContainer\",\n class: {\n show: _vm.show,\n isDark: _vm.isDark\n },\n style: {\n zIndex: _vm.zIndex\n },\n on: {\n click: function ($event) {\n $event.stopPropagation();\n }\n }\n }, [_c(\"span\", {\n staticClass: \"closeBtn el-icon-close\",\n on: {\n click: _vm.close\n }\n }), _vm.title ? _c(\"div\", {\n staticClass: \"sidebarHeader\"\n }, [_vm._v(\" \" + _vm._s(_vm.title) + \" \")]) : _vm._e(), _c(\"div\", {\n ref: \"sidebarContent\",\n staticClass: \"sidebarContent customScrollbar\"\n }, [_vm._t(\"default\")], 2)]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Sidebar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/SidebarTrigger.vue?vue&type=template&id=c4f3b258&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/SidebarTrigger.vue?vue&type=template&id=c4f3b258&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"sidebarTriggerContainer\",\n class: {\n hasActive: _vm.show && _vm.activeSidebar,\n show: _vm.show,\n isDark: _vm.isDark\n },\n on: {\n click: function ($event) {\n $event.stopPropagation();\n }\n }\n }, [_c(\"div\", {\n staticClass: \"toggleShowBtn\",\n class: {\n hide: !_vm.show\n },\n on: {\n click: function ($event) {\n _vm.show = !_vm.show;\n }\n }\n }, [_c(\"span\", {\n staticClass: \"iconfont iconjiantouyou\"\n })]), _c(\"div\", {\n staticClass: \"trigger\"\n }, _vm._l(_vm.triggerList, function (item) {\n return _c(\"div\", {\n key: item.value,\n staticClass: \"triggerItem\",\n class: {\n active: _vm.activeSidebar === item.value\n },\n on: {\n click: function ($event) {\n return _vm.trigger(item);\n }\n }\n }, [item.value === \"nodeStyle\" ? _c(\"AntDesignHighlightOutlined\", {\n staticClass: \"triggerIcon\"\n }) : item.value === \"baseStyle\" ? _c(\"FluentMdl2HighlightMappedShapes\", {\n staticClass: \"triggerIcon\"\n }) : item.value === \"theme\" ? _c(\"UilGameStructure\", {\n staticClass: \"triggerIcon\"\n }) : item.value === \"structure\" ? _c(\"PhTreeStructureLight\", {\n staticClass: \"triggerIcon\"\n }) : item.value === \"outline\" ? _c(\"ClarityTreeViewLine\", {\n staticClass: \"triggerIcon\"\n }) : item.value === \"shortcutKey\" ? _c(\"MdiKeyboardVariant\", {\n staticClass: \"triggerIcon\"\n }) : _vm._e(), _c(\"div\", {\n staticClass: \"triggerName\"\n }, [_vm._v(_vm._s(item.name))])], 1);\n }), 0)]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/SidebarTrigger.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=template&id=3c00482c&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=template&id=3c00482c&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _vm.isSourceCodeEdit ? _c(\"div\", {\n ref: \"sourceCodeEditContainer\",\n staticClass: \"sourceCodeEditContainer\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"div\", {\n staticClass: \"closeBtn\"\n }, [_c(\"el-tooltip\", {\n attrs: {\n effect: \"dark\",\n content: _vm.$t(\"sourceCodeEdit.copy\"),\n placement: \"top\"\n }\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconfuzhi\",\n staticStyle: {\n \"font-size\": \"26px\"\n },\n on: {\n click: _vm.copy\n }\n })]), _c(\"el-tooltip\", {\n attrs: {\n effect: \"dark\",\n content: _vm.$t(\"sourceCodeEdit.format\"),\n placement: \"top\"\n }\n }, [_c(\"span\", {\n staticClass: \"icon iconfont icongeshihua\",\n staticStyle: {\n \"font-size\": \"24px\"\n },\n on: {\n click: _vm.format\n }\n })]), _c(\"el-tooltip\", {\n attrs: {\n effect: \"dark\",\n content: _vm.$t(\"sourceCodeEdit.sourceCodeTip\"),\n placement: \"top\"\n }\n }, [_c(\"span\", {\n staticClass: \"icon el-icon-info\"\n })]), _c(\"el-tooltip\", {\n attrs: {\n effect: \"dark\",\n content: _vm.$t(\"sourceCodeEdit.confirm\"),\n placement: \"top\"\n }\n }, [_c(\"span\", {\n staticClass: \"icon el-icon-circle-check\",\n on: {\n click: _vm.onConfirm\n }\n })]), _c(\"el-tooltip\", {\n attrs: {\n effect: \"dark\",\n content: _vm.$t(\"sourceCodeEdit.close\"),\n placement: \"top\"\n }\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconguanbi\",\n on: {\n click: _vm.onClose\n }\n })])], 1), _c(\"div\", {\n staticClass: \"sourceCodeEditBox\"\n }, [_c(\"div\", {\n ref: \"outlineEditRef\",\n staticClass: \"outlineEdit\",\n on: {\n keydown: function ($event) {\n $event.stopPropagation();\n }\n }\n })])]) : _vm._e();\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/SourceCodeEdit.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Structure.vue?vue&type=template&id=1932af0b&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Structure.vue?vue&type=template&id=1932af0b&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"Sidebar\", {\n ref: \"sidebar\",\n attrs: {\n title: _vm.$t(\"strusture.title\")\n }\n }, [_c(\"div\", {\n staticClass: \"layoutList\",\n class: {\n isDark: _vm.isDark\n }\n }, _vm._l(_vm.layoutList, function (item) {\n return _c(\"div\", {\n key: item.value,\n staticClass: \"layoutItem\",\n class: {\n active: item.value === _vm.layout\n },\n on: {\n click: function ($event) {\n return _vm.useLayout(item);\n }\n }\n }, [_c(\"div\", {\n staticClass: \"imgBox\"\n }, [_c(\"img\", {\n attrs: {\n src: _vm.layoutImgMap[item.value],\n alt: \"\"\n }\n })]), _c(\"div\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(item.name))])]);\n }), 0)]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Structure.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Style.vue?vue&type=template&id=5cf2df6e&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Style.vue?vue&type=template&id=5cf2df6e&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"Sidebar\", {\n ref: \"sidebar\",\n attrs: {\n title: _vm.$t(\"style.title\")\n }\n }, [_vm.activeNodes.length > 0 ? _c(\"div\", {\n staticClass: \"styleBox\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"div\", {\n staticClass: \"sidebarContent customScrollbar\"\n }, [_c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.text\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-select\", {\n staticStyle: {\n width: \"100px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"fontFamily\");\n }\n },\n model: {\n value: _vm.style.fontFamily,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"fontFamily\", $$v);\n },\n expression: \"style.fontFamily\"\n }\n }, _vm._l(_vm.fontFamilyList, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n style: {\n fontFamily: item.value\n },\n attrs: {\n label: item.name,\n value: item.value\n }\n });\n }), 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-select\", {\n staticStyle: {\n width: \"60px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"fontSize\");\n }\n },\n model: {\n value: _vm.style.fontSize,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"fontSize\", $$v);\n },\n expression: \"style.fontSize\"\n }\n }, _vm._l(_vm.fontSizeList, function (item) {\n return _c(\"el-option\", {\n key: item,\n style: {\n fontSize: item + \"px\"\n },\n attrs: {\n label: item,\n value: item\n }\n });\n }), 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"textAlign\");\n }\n },\n model: {\n value: _vm.style.textAlign,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"textAlign\", $$v);\n },\n expression: \"style.textAlign\"\n }\n }, _vm._l(_vm.alignList, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n attrs: {\n label: item.name,\n value: item.value\n }\n });\n }), 1)], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"btnGroup\"\n }, [_c(\"el-tooltip\", {\n attrs: {\n content: _vm.$t(\"style.color\"),\n placement: \"bottom\"\n }\n }, [_c(\"div\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover\",\n arg: \"popover\"\n }],\n staticClass: \"styleBtn\"\n }, [_vm._v(\" A \"), _c(\"span\", {\n staticClass: \"colorShow\",\n style: {\n backgroundColor: _vm.style.color || \"#eee\"\n }\n })])]), _c(\"el-tooltip\", {\n attrs: {\n content: _vm.$t(\"style.addFontWeight\"),\n placement: \"bottom\"\n }\n }, [_c(\"div\", {\n staticClass: \"styleBtn\",\n class: {\n actived: _vm.style.fontWeight === \"bold\"\n },\n on: {\n click: _vm.toggleFontWeight\n }\n }, [_vm._v(\" B \")])]), _c(\"el-tooltip\", {\n attrs: {\n content: _vm.$t(\"style.italic\"),\n placement: \"bottom\"\n }\n }, [_c(\"div\", {\n staticClass: \"styleBtn i\",\n class: {\n actived: _vm.style.fontStyle === \"italic\"\n },\n on: {\n click: _vm.toggleFontStyle\n }\n }, [_vm._v(\" I \")])]), _c(\"el-tooltip\", {\n attrs: {\n content: _vm.$t(\"style.textDecoration\"),\n placement: \"bottom\"\n }\n }, [_c(\"div\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover2\",\n arg: \"popover2\"\n }],\n staticClass: \"styleBtn u\",\n style: {\n textDecoration: _vm.style.textDecoration || \"none\"\n }\n }, [_vm._v(\" U \")])])], 1), _c(\"el-popover\", {\n ref: \"popover\",\n attrs: {\n placement: \"bottom\",\n trigger: \"hover\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.style.color\n },\n on: {\n change: _vm.changeFontColor\n }\n })], 1), _c(\"el-popover\", {\n ref: \"popover2\",\n attrs: {\n placement: \"bottom\",\n trigger: \"hover\"\n }\n }, [_c(\"el-radio-group\", {\n attrs: {\n size: \"mini\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"textDecoration\");\n }\n },\n model: {\n value: _vm.style.textDecoration,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"textDecoration\", $$v);\n },\n expression: \"style.textDecoration\"\n }\n }, [_c(\"el-radio-button\", {\n attrs: {\n label: \"none\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"style.none\")))]), _c(\"el-radio-button\", {\n attrs: {\n label: \"underline\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"style.underline\")))]), _c(\"el-radio-button\", {\n attrs: {\n label: \"line-through\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"style.lineThrough\")))]), _c(\"el-radio-button\", {\n attrs: {\n label: \"overline\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"style.overline\")))])], 1)], 1)], 1), _c(\"div\", {\n staticClass: \"title\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.border\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.color\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover3\",\n arg: \"popover3\"\n }],\n staticClass: \"block\",\n style: {\n width: \"80px\",\n backgroundColor: _vm.style.borderColor\n }\n }), _c(\"el-popover\", {\n ref: \"popover3\",\n attrs: {\n placement: \"bottom\",\n trigger: \"hover\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.style.borderColor\n },\n on: {\n change: _vm.changeBorderColor\n }\n })], 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.style\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"borderDasharray\");\n }\n },\n model: {\n value: _vm.style.borderDasharray,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"borderDasharray\", $$v);\n },\n expression: \"style.borderDasharray\"\n }\n }, _vm._l(_vm.borderDasharrayList, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n attrs: {\n label: item.name,\n value: item.value\n }\n }, [_c(\"svg\", {\n attrs: {\n width: \"120\",\n height: \"34\"\n }\n }, [_c(\"line\", {\n attrs: {\n x1: \"10\",\n y1: \"17\",\n x2: \"110\",\n y2: \"17\",\n \"stroke-width\": \"2\",\n stroke: _vm.style.borderDasharray === item.value ? \"#409eff\" : _vm.isDark ? \"#fff\" : \"#000\",\n \"stroke-dasharray\": item.value\n }\n })])]);\n }), 1)], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.width\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"borderWidth\");\n }\n },\n model: {\n value: _vm.style.borderWidth,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"borderWidth\", $$v);\n },\n expression: \"style.borderWidth\"\n }\n }, _vm._l(_vm.borderWidthList, function (item) {\n return _c(\"el-option\", {\n key: item,\n attrs: {\n label: item,\n value: item\n }\n }, [item > 0 ? _c(\"span\", {\n staticClass: \"borderLine\",\n class: {\n isDark: _vm.isDark\n },\n style: {\n height: item + \"px\"\n }\n }) : _vm._e()]);\n }), 1)], 1), _c(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.style.shape === \"rectangle\",\n expression: \"style.shape === 'rectangle'\"\n }],\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.borderRadius\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"borderRadius\");\n }\n },\n model: {\n value: _vm.style.borderRadius,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"borderRadius\", $$v);\n },\n expression: \"style.borderRadius\"\n }\n }, _vm._l(_vm.borderRadiusList, function (item) {\n return _c(\"el-option\", {\n key: item,\n attrs: {\n label: item,\n value: item\n }\n });\n }), 1)], 1)]), _c(\"div\", {\n staticClass: \"title\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.background\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.color\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover4\",\n arg: \"popover4\"\n }],\n staticClass: \"block\",\n style: {\n backgroundColor: _vm.style.fillColor\n }\n }), _c(\"el-popover\", {\n ref: \"popover4\",\n attrs: {\n placement: \"bottom\",\n trigger: \"hover\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.style.fillColor\n },\n on: {\n change: _vm.changeFillColor\n }\n })], 1), _c(\"span\", {\n staticClass: \"name\",\n staticStyle: {\n \"margin-left\": \"20px\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"style.gradientStyle\")))]), _c(\"el-checkbox\", {\n on: {\n change: function ($event) {\n return _vm.update(\"gradientStyle\");\n }\n },\n model: {\n value: _vm.style.gradientStyle,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"gradientStyle\", $$v);\n },\n expression: \"style.gradientStyle\"\n }\n })], 1)]), _vm.style.gradientStyle ? _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.startColor\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover6\",\n arg: \"popover6\"\n }],\n staticClass: \"block\",\n style: {\n backgroundColor: _vm.style.startColor\n }\n }), _c(\"el-popover\", {\n ref: \"popover6\",\n attrs: {\n placement: \"bottom\",\n trigger: \"hover\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.style.startColor\n },\n on: {\n change: _vm.changeStartColor\n }\n })], 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.endColor\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover7\",\n arg: \"popover7\"\n }],\n staticClass: \"block\",\n style: {\n backgroundColor: _vm.style.endColor\n }\n }), _c(\"el-popover\", {\n ref: \"popover7\",\n attrs: {\n placement: \"bottom\",\n trigger: \"hover\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.style.endColor\n },\n on: {\n change: _vm.changeEndColor\n }\n })], 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.direction\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"linearGradientDir\");\n }\n },\n model: {\n value: _vm.style.linearGradientDir,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"linearGradientDir\", $$v);\n },\n expression: \"style.linearGradientDir\"\n }\n }, _vm._l(_vm.linearGradientDirList, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n attrs: {\n label: item.name,\n value: item.value\n }\n });\n }), 1)], 1)]) : _vm._e(), _c(\"div\", {\n staticClass: \"title\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.shape\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.shape\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"120px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"shape\");\n }\n },\n model: {\n value: _vm.style.shape,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"shape\", $$v);\n },\n expression: \"style.shape\"\n }\n }, _vm._l(_vm.shapeList, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n attrs: {\n label: item.name,\n value: item.value\n }\n }, [_c(\"svg\", {\n staticStyle: {\n \"margin-top\": \"5px\"\n },\n attrs: {\n width: \"60\",\n height: \"26\"\n }\n }, [_c(\"path\", {\n attrs: {\n d: _vm.shapeListMap[item.value],\n fill: \"none\",\n stroke: _vm.style.shape === item.value ? \"#409eff\" : _vm.isDark ? \"#fff\" : \"#000\",\n \"stroke-width\": \"2\"\n }\n })])]);\n }), 1)], 1)]), _c(\"div\", {\n staticClass: \"title\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.line\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.color\")))]), _c(\"span\", {\n directives: [{\n name: \"popover\",\n rawName: \"v-popover:popover5\",\n arg: \"popover5\"\n }],\n staticClass: \"block\",\n style: {\n width: \"80px\",\n backgroundColor: _vm.style.lineColor\n }\n }), _c(\"el-popover\", {\n ref: \"popover5\",\n attrs: {\n placement: \"bottom\",\n trigger: \"hover\"\n }\n }, [_c(\"Color\", {\n attrs: {\n color: _vm.style.lineColor\n },\n on: {\n change: _vm.changeLineColor\n }\n })], 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.style\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"lineDasharray\");\n }\n },\n model: {\n value: _vm.style.lineDasharray,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"lineDasharray\", $$v);\n },\n expression: \"style.lineDasharray\"\n }\n }, _vm._l(_vm.borderDasharrayList, function (item) {\n return _c(\"el-option\", {\n key: item.value,\n attrs: {\n label: item.name,\n value: item.value\n }\n }, [_c(\"svg\", {\n attrs: {\n width: \"120\",\n height: \"34\"\n }\n }, [_c(\"line\", {\n attrs: {\n x1: \"10\",\n y1: \"17\",\n x2: \"110\",\n y2: \"17\",\n \"stroke-width\": \"2\",\n stroke: _vm.style.lineDasharray === item.value ? \"#409eff\" : _vm.isDark ? \"#fff\" : \"#000\",\n \"stroke-dasharray\": item.value\n }\n })])]);\n }), 1)], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.width\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"lineWidth\");\n }\n },\n model: {\n value: _vm.style.lineWidth,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"lineWidth\", $$v);\n },\n expression: \"style.lineWidth\"\n }\n }, _vm._l(_vm.borderWidthList, function (item) {\n return _c(\"el-option\", {\n key: item,\n attrs: {\n label: item,\n value: item\n }\n }, [item > 0 ? _c(\"span\", {\n staticClass: \"borderLine\",\n class: {\n isDark: _vm.isDark\n },\n style: {\n height: item + \"px\"\n }\n }) : _vm._e()]);\n }), 1)], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.arrowDir\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"lineMarkerDir\");\n }\n },\n model: {\n value: _vm.style.lineMarkerDir,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"lineMarkerDir\", $$v);\n },\n expression: \"style.lineMarkerDir\"\n }\n }, [_c(\"el-option\", {\n key: \"start\",\n attrs: {\n label: _vm.$t(\"style.arrowDirStart\"),\n value: \"start\"\n }\n }), _c(\"el-option\", {\n key: \"end\",\n attrs: {\n label: _vm.$t(\"style.arrowDirEnd\"),\n value: \"end\"\n }\n })], 1)], 1)]), _vm.supportLineFlow ? _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.openLineFlow\")))]), _c(\"el-checkbox\", {\n on: {\n change: function ($event) {\n return _vm.update(\"lineFlow\");\n }\n },\n model: {\n value: _vm.style.lineFlow,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"lineFlow\", $$v);\n },\n expression: \"style.lineFlow\"\n }\n })], 1), _c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.direction\")))]), _c(\"el-select\", {\n staticStyle: {\n width: \"80px\"\n },\n attrs: {\n size: \"mini\",\n placeholder: \"\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"lineFlowForward\");\n }\n },\n model: {\n value: _vm.style.lineFlowForward,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"lineFlowForward\", $$v);\n },\n expression: \"style.lineFlowForward\"\n }\n }, [_c(\"el-option\", {\n key: \"1\",\n attrs: {\n label: _vm.$t(\"style.forward\"),\n value: true\n }\n }), _c(\"el-option\", {\n key: \"2\",\n attrs: {\n label: _vm.$t(\"style.reverse\"),\n value: false\n }\n })], 1)], 1)]) : _vm._e(), _vm.supportLineFlow ? _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.lineFlowDuration\")))]), _c(\"el-input-number\", {\n attrs: {\n min: 0.1,\n size: \"mini\",\n step: 0.5\n },\n on: {\n change: function ($event) {\n return _vm.update(\"lineFlowDuration\");\n }\n },\n model: {\n value: _vm.style.lineFlowDuration,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"lineFlowDuration\", $$v);\n },\n expression: \"style.lineFlowDuration\"\n }\n })], 1)]) : _vm._e(), _c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.nodePadding\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.horizontal\")))]), _c(\"el-slider\", {\n staticStyle: {\n width: \"200px\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"paddingX\");\n }\n },\n model: {\n value: _vm.style.paddingX,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"paddingX\", $$v);\n },\n expression: \"style.paddingX\"\n }\n })], 1)]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.vertical\")))]), _c(\"el-slider\", {\n staticStyle: {\n width: \"200px\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"paddingY\");\n }\n },\n model: {\n value: _vm.style.paddingY,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"paddingY\", $$v);\n },\n expression: \"style.paddingY\"\n }\n })], 1)]), _c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.img\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.placement\")))]), _c(\"el-radio-group\", {\n attrs: {\n size: \"mini\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"imgPlacement\");\n }\n },\n model: {\n value: _vm.style.imgPlacement,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"imgPlacement\", $$v);\n },\n expression: \"style.imgPlacement\"\n }\n }, [_c(\"el-radio-button\", {\n attrs: {\n label: \"top\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"style.top\")))]), _c(\"el-radio-button\", {\n attrs: {\n label: \"bottom\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"style.bottom\")))]), _c(\"el-radio-button\", {\n attrs: {\n label: \"left\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"style.left\")))]), _c(\"el-radio-button\", {\n attrs: {\n label: \"right\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"style.right\")))])], 1)], 1)]), _c(\"div\", {\n staticClass: \"title noTop\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.tag\")))]), _c(\"div\", {\n staticClass: \"row\"\n }, [_c(\"div\", {\n staticClass: \"rowItem\"\n }, [_c(\"span\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.placement\")))]), _c(\"el-radio-group\", {\n attrs: {\n size: \"mini\"\n },\n on: {\n change: function ($event) {\n return _vm.update(\"tagPlacement\");\n }\n },\n model: {\n value: _vm.style.tagPlacement,\n callback: function ($$v) {\n _vm.$set(_vm.style, \"tagPlacement\", $$v);\n },\n expression: \"style.tagPlacement\"\n }\n }, [_c(\"el-radio-button\", {\n attrs: {\n label: \"right\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"style.right\")))]), _c(\"el-radio-button\", {\n attrs: {\n label: \"bottom\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"style.bottom\")))])], 1)], 1)])])]) : _c(\"div\", {\n staticClass: \"tipBox\"\n }, [_c(\"div\", {\n staticClass: \"tipIcon iconfont icontianjiazijiedian\"\n }), _c(\"div\", {\n staticClass: \"tipText\"\n }, [_vm._v(_vm._s(_vm.$t(\"style.pleaseSelectNode\")))])])]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Style.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Theme.vue?vue&type=template&id=66f51c61&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Theme.vue?vue&type=template&id=66f51c61&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"Sidebar\", {\n ref: \"sidebar\",\n attrs: {\n title: _vm.$t(\"theme.title\")\n }\n }, [_c(\"div\", {\n staticClass: \"themeList\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"el-tabs\", {\n model: {\n value: _vm.activeName,\n callback: function ($$v) {\n _vm.activeName = $$v;\n },\n expression: \"activeName\"\n }\n }, _vm._l(_vm.groupList, function (group) {\n return _c(\"el-tab-pane\", {\n key: group.name,\n attrs: {\n label: group.name,\n name: group.name\n }\n });\n }), 1), _vm._l(_vm.currentList, function (item) {\n return _c(\"div\", {\n key: item.value,\n staticClass: \"themeItem\",\n class: {\n active: item.value === _vm.theme\n },\n on: {\n click: function ($event) {\n return _vm.useTheme(item);\n }\n }\n }, [_c(\"div\", {\n staticClass: \"imgBox\"\n }, [_c(\"img\", {\n attrs: {\n src: _vm.getThemeImage(item),\n alt: \"\"\n }\n })]), _c(\"div\", {\n staticClass: \"name\"\n }, [_vm._v(_vm._s(_vm.getThemeName(item)))])]);\n })], 2)]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Theme.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Toolbar.vue?vue&type=template&id=46e8e913&scoped=true":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Toolbar.vue?vue&type=template&id=46e8e913&scoped=true ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"toolbarContainer\",\n class: {\n isDark: _vm.isDark\n }\n }, [_c(\"div\", {\n ref: \"toolbarRef\",\n staticClass: \"kmind-toolbar\",\n class: {\n \"kmind-toolbar-hidden\": _vm.isZenMode || _vm.injectConfig.type === \"sy-plugin-doc2kmind\" || _vm.injectConfig.type === \"sy-widget-mirror\"\n },\n attrs: {\n id: \"kmind-toolbar\"\n }\n }, [_c(\"div\", {\n staticClass: \"toolbarBlock\"\n }, [_c(\"ToolbarNodeBtnList\", {\n attrs: {\n list: _vm.horizontalList\n }\n }), _vm.showMoreBtn ? _c(\"el-popover\", {\n style: {\n marginLeft: _vm.horizontalList.length > 0 ? \"20px\" : 0\n },\n attrs: {\n placement: \"bottom-end\",\n width: \"120\",\n trigger: \"hover\"\n },\n model: {\n value: _vm.popoverShow,\n callback: function ($$v) {\n _vm.popoverShow = $$v;\n },\n expression: \"popoverShow\"\n }\n }, [_c(\"ToolbarNodeBtnList\", {\n attrs: {\n dir: \"v\",\n list: _vm.verticalList\n },\n nativeOn: {\n click: function ($event) {\n _vm.popoverShow = false;\n }\n }\n }), _c(\"div\", {\n staticClass: \"toolbarBtn\",\n attrs: {\n slot: \"reference\"\n },\n slot: \"reference\"\n }, [_c(\"material-symbols-light-arrows-more-down-outline-rounded\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.more\")))])], 1)], 1) : _vm._e()], 1), _c(\"div\", {\n staticClass: \"toolbarBlock\"\n }, [_c(\"div\", {\n staticClass: \"toolbarBtn\",\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"showImport\");\n }\n }\n }, [_c(\"AntDesignImportOutlined\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.import\")))])], 1), _c(\"div\", {\n staticClass: \"toolbarBtn\",\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"showExport\");\n }\n }\n }, [_c(\"AntDesignExportOutlined\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.export\")))])], 1), _c(\"div\", {\n staticClass: \"toolbarBtn\",\n staticStyle: {\n \"margin-right\": \"0\"\n },\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"showKmindHistory\");\n }\n }\n }, [_c(\"AntDesignHistoryOutlined\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.history\")))])], 1), _vm.fileTreeVisible ? _c(\"div\", {\n staticClass: \"fileTreeBox\",\n class: {\n expand: _vm.fileTreeExpand\n }\n }, [_c(\"div\", {\n staticClass: \"fileTreeToolbar\"\n }, [_c(\"div\", {\n staticClass: \"fileTreeName\"\n }, [_vm._v(\" \" + _vm._s(_vm.rootDirName ? \"/\" + _vm.rootDirName : \"\") + \" \")]), _c(\"div\", {\n staticClass: \"fileTreeActionList\"\n }, [_c(\"div\", {\n staticClass: \"btn\",\n class: [_vm.fileTreeExpand ? \"el-icon-arrow-up\" : \"el-icon-arrow-down\"],\n on: {\n click: function ($event) {\n _vm.fileTreeExpand = !_vm.fileTreeExpand;\n }\n }\n }), _c(\"div\", {\n staticClass: \"btn el-icon-close\",\n on: {\n click: function ($event) {\n _vm.fileTreeVisible = false;\n }\n }\n })])]), _c(\"div\", {\n staticClass: \"fileTreeWrap\"\n }, [_c(\"el-tree\", {\n attrs: {\n props: _vm.fileTreeProps,\n load: _vm.loadFileTreeNode,\n \"expand-on-click-node\": false,\n \"node-key\": \"id\",\n lazy: \"\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function ({\n node,\n data\n }) {\n return _c(\"span\", {\n staticClass: \"customTreeNode\"\n }, [_c(\"div\", {\n staticClass: \"treeNodeInfo\"\n }, [_c(\"span\", {\n staticClass: \"treeNodeIcon iconfont\",\n class: [data.type === \"file\" ? \"iconwenjian\" : \"icondakai\"]\n }), _c(\"span\", {\n staticClass: \"treeNodeName\"\n }, [_vm._v(_vm._s(node.label))])]), data.type === \"file\" ? _c(\"div\", {\n staticClass: \"treeNodeBtnList\"\n }, [data.enableEdit ? _c(\"el-button\", {\n attrs: {\n type: \"text\",\n size: \"mini\"\n },\n on: {\n click: function ($event) {\n return _vm.editLocalFile(data);\n }\n }\n }, [_vm._v(\"编辑\")]) : _c(\"el-button\", {\n attrs: {\n type: \"text\",\n size: \"mini\"\n },\n on: {\n click: function ($event) {\n return _vm.importLocalFile(data);\n }\n }\n }, [_vm._v(\"导入\")])], 1) : _vm._e()]);\n }\n }], null, false, 2695029622)\n })], 1)]) : _vm._e()])]), _c(\"NodeImage\"), _c(\"NodeHyperlink\"), _c(\"NodeIcon\"), _c(\"NodeNote\"), _c(\"NodeTag\"), _c(\"RichEditor\"), _c(\"Export\"), _c(\"Import\", {\n ref: \"ImportRef\"\n })], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Toolbar.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=template&id=6f1765d5":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"551ac3d2-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=template&id=6f1765d5 ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"toolbarNodeBtnList\",\n class: [_vm.dir, {\n isDark: _vm.isDark\n }]\n }, [_vm._l(_vm.list, function (item) {\n return [item === \"back\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.readonly || _vm.backEnd\n },\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"execCommand\", \"BACK\");\n }\n }\n }, [_c(\"material-symbols-undo\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.undo\")))])], 1) : _vm._e(), item === \"forward\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.readonly || _vm.forwardEnd\n },\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"execCommand\", \"FORWARD\");\n }\n }\n }, [_c(\"material-symbols-redo\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.redo\")))])], 1) : _vm._e(), item === \"painter\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.activeNodes.length <= 0 || _vm.hasGeneralization,\n active: _vm.isInPainter\n },\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"startPainter\");\n }\n }\n }, [_c(\"ic-outline-format-paint\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.painter\")))])], 1) : _vm._e(), item === \"siblingNode\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.activeNodes.length <= 0 || _vm.hasRoot || _vm.hasGeneralization\n },\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"execCommand\", \"INSERT_NODE\");\n }\n }\n }, [_c(\"hugeicons-subnode-add\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.insertSiblingNode\")))])], 1) : _vm._e(), item === \"childNode\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.activeNodes.length <= 0 || _vm.hasGeneralization\n },\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"execCommand\", \"INSERT_CHILD_NODE\");\n }\n }\n }, [_c(\"ClarityAddTextLine\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.insertChildNode\")))])], 1) : _vm._e(), item === \"deleteNode\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.activeNodes.length <= 0\n },\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"execCommand\", \"REMOVE_NODE\");\n }\n }\n }, [_c(\"HugeiconsSubnodeDelete\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.deleteNode\")))])], 1) : _vm._e(), item === \"image\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.activeNodes.length <= 0\n },\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"showNodeImage\");\n }\n }\n }, [_c(\"lucide-image-plus\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.image\")))])], 1) : _vm._e(), item === \"icon\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.activeNodes.length <= 0\n },\n on: {\n click: _vm.showNodeIcon\n }\n }, [_c(\"mdi-emoticon-plus-outline\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.icon\")))])], 1) : _vm._e(), item === \"link\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.activeNodes.length <= 0\n },\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"showNodeLink\");\n }\n }\n }, [_c(\"material-symbols-add-link\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.link\")))])], 1) : _vm._e(), item === \"note\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.activeNodes.length <= 0\n },\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"showRichEditor\", \"note\");\n }\n }\n }, [_c(\"fluent-comment-add16-regular\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.note\")))])], 1) : _vm._e(), item === \"tag\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.activeNodes.length <= 0\n },\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"showNodeTag\");\n }\n }\n }, [_c(\"mdi-tag-add\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.tag\")))])], 1) : _vm._e(), item === \"summary\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.activeNodes.length <= 0 || _vm.hasRoot || _vm.hasGeneralization\n },\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"execCommand\", \"ADD_GENERALIZATION\");\n }\n }\n }, [_c(\"mdi-bracket\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.summary\")))])], 1) : _vm._e(), item === \"associativeLine\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.activeNodes.length <= 0 || _vm.hasGeneralization\n },\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"createAssociativeLine\");\n }\n }\n }, [_c(\"AntDesignNodeIndexOutlined\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.associativeLine\")))])], 1) : _vm._e(), item === \"formula\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.activeNodes.length <= 0 || _vm.hasGeneralization\n },\n on: {\n click: _vm.showFormula\n }\n }, [_c(\"hugeicons-summation01\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.formula\")))])], 1) : _vm._e(), item === \"attachment\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.activeNodes.length <= 0 || _vm.hasGeneralization\n },\n on: {\n click: _vm.selectAttachmentFile\n }\n }, [_c(\"span\", {\n staticClass: \"icon iconfont iconfujian\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.attachment\")))])]) : _vm._e(), item === \"outerFrame\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.activeNodes.length <= 0 || _vm.hasGeneralization\n },\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"execCommand\", \"ADD_OUTER_FRAME\");\n }\n }\n }, [_c(\"mdi-code-block-brackets\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.outerFrame\")))])], 1) : _vm._e(), item === \"editNode\" ? _c(\"div\", {\n staticClass: \"toolbarBtn\",\n class: {\n disabled: _vm.activeNodes.length <= 0\n },\n on: {\n click: function ($event) {\n return _vm.$bus.$emit(\"showRichEditor\", \"node\");\n }\n }\n }, [_c(\"HugeiconsNodeEdit\", {\n staticClass: \"icon\"\n }), _c(\"span\", {\n staticClass: \"text\"\n }, [_vm._v(_vm._s(_vm.$t(\"toolbar.editNode\")))])], 1) : _vm._e(), item === \"annotation\" && _vm.supportMark ? _c(\"NodeAnnotationBtn\", {\n attrs: {\n isDark: _vm.isDark,\n dir: _vm.dir\n },\n on: {\n setAnnotation: _vm.onSetAnnotation\n }\n }) : _vm._e()];\n })], 2);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/ToolbarNodeBtnList.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22551ac3d2-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/codemirror/lib/codemirror.css":
/*!****************************************************!*\
!*** ./node_modules/codemirror/lib/codemirror.css ***!
\****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../css-loader/dist/cjs.js??ref--7-oneOf-3-1!../../postcss-loader/src??ref--7-oneOf-3-2!./codemirror.css */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/codemirror/lib/codemirror.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0940158a\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./node_modules/codemirror/lib/codemirror.css?");
/***/ }),
/***/ "./node_modules/codemirror/lib/codemirror.js":
/*!***************************************************!*\
!*** ./node_modules/codemirror/lib/codemirror.js ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n// This is CodeMirror (https://codemirror.net/5), a code editor\n// implemented in JavaScript on top of the browser's DOM.\n//\n// You can find some technical background for some of the code below\n// at http://marijnhaverbeke.nl/blog/#cm-internals .\n\n(function (global, factory) {\n true ? module.exports = factory() :\n undefined;\n}(this, (function () { 'use strict';\n\n // Kludges for bugs and behavior differences that can't be feature\n // detected are enabled based on userAgent etc sniffing.\n var userAgent = navigator.userAgent;\n var platform = navigator.platform;\n\n var gecko = /gecko\\/\\d/i.test(userAgent);\n var ie_upto10 = /MSIE \\d/.test(userAgent);\n var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(userAgent);\n var edge = /Edge\\/(\\d+)/.exec(userAgent);\n var ie = ie_upto10 || ie_11up || edge;\n var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]);\n var webkit = !edge && /WebKit\\//.test(userAgent);\n var qtwebkit = webkit && /Qt\\/\\d+\\.\\d+/.test(userAgent);\n var chrome = !edge && /Chrome\\/(\\d+)/.exec(userAgent);\n var chrome_version = chrome && +chrome[1];\n var presto = /Opera\\//.test(userAgent);\n var safari = /Apple Computer/.test(navigator.vendor);\n var mac_geMountainLion = /Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(userAgent);\n var phantom = /PhantomJS/.test(userAgent);\n\n var ios = safari && (/Mobile\\/\\w+/.test(userAgent) || navigator.maxTouchPoints > 2);\n var android = /Android/.test(userAgent);\n // This is woefully incomplete. Suggestions for alternative methods welcome.\n var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);\n var mac = ios || /Mac/.test(platform);\n var chromeOS = /\\bCrOS\\b/.test(userAgent);\n var windows = /win/i.test(platform);\n\n var presto_version = presto && userAgent.match(/Version\\/(\\d*\\.\\d*)/);\n if (presto_version) { presto_version = Number(presto_version[1]); }\n if (presto_version && presto_version >= 15) { presto = false; webkit = true; }\n // Some browsers use the wrong event properties to signal cmd/ctrl on OS X\n var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));\n var captureRightClick = gecko || (ie && ie_version >= 9);\n\n function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n var rmClass = function(node, cls) {\n var current = node.className;\n var match = classTest(cls).exec(current);\n if (match) {\n var after = current.slice(match.index + match[0].length);\n node.className = current.slice(0, match.index) + (after ? match[1] + after : \"\");\n }\n };\n\n function removeChildren(e) {\n for (var count = e.childNodes.length; count > 0; --count)\n { e.removeChild(e.firstChild); }\n return e\n }\n\n function removeChildrenAndAdd(parent, e) {\n return removeChildren(parent).appendChild(e)\n }\n\n function elt(tag, content, className, style) {\n var e = document.createElement(tag);\n if (className) { e.className = className; }\n if (style) { e.style.cssText = style; }\n if (typeof content == \"string\") { e.appendChild(document.createTextNode(content)); }\n else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } }\n return e\n }\n // wrapper for elt, which removes the elt from the accessibility tree\n function eltP(tag, content, className, style) {\n var e = elt(tag, content, className, style);\n e.setAttribute(\"role\", \"presentation\");\n return e\n }\n\n var range;\n if (document.createRange) { range = function(node, start, end, endNode) {\n var r = document.createRange();\n r.setEnd(endNode || node, end);\n r.setStart(node, start);\n return r\n }; }\n else { range = function(node, start, end) {\n var r = document.body.createTextRange();\n try { r.moveToElementText(node.parentNode); }\n catch(e) { return r }\n r.collapse(true);\n r.moveEnd(\"character\", end);\n r.moveStart(\"character\", start);\n return r\n }; }\n\n function contains(parent, child) {\n if (child.nodeType == 3) // Android browser always returns false when child is a textnode\n { child = child.parentNode; }\n if (parent.contains)\n { return parent.contains(child) }\n do {\n if (child.nodeType == 11) { child = child.host; }\n if (child == parent) { return true }\n } while (child = child.parentNode)\n }\n\n function activeElt(rootNode) {\n // IE and Edge may throw an \"Unspecified Error\" when accessing document.activeElement.\n // IE < 10 will throw when accessed while the page is loading or in an iframe.\n // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable.\n var doc = rootNode.ownerDocument || rootNode;\n var activeElement;\n try {\n activeElement = rootNode.activeElement;\n } catch(e) {\n activeElement = doc.body || null;\n }\n while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement)\n { activeElement = activeElement.shadowRoot.activeElement; }\n return activeElement\n }\n\n function addClass(node, cls) {\n var current = node.className;\n if (!classTest(cls).test(current)) { node.className += (current ? \" \" : \"\") + cls; }\n }\n function joinClasses(a, b) {\n var as = a.split(\" \");\n for (var i = 0; i < as.length; i++)\n { if (as[i] && !classTest(as[i]).test(b)) { b += \" \" + as[i]; } }\n return b\n }\n\n var selectInput = function(node) { node.select(); };\n if (ios) // Mobile Safari apparently has a bug where select() is broken.\n { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; }\n else if (ie) // Suppress mysterious IE10 errors\n { selectInput = function(node) { try { node.select(); } catch(_e) {} }; }\n\n function doc(cm) { return cm.display.wrapper.ownerDocument }\n\n function root(cm) {\n return rootNode(cm.display.wrapper)\n }\n\n function rootNode(element) {\n // Detect modern browsers (2017+).\n return element.getRootNode ? element.getRootNode() : element.ownerDocument\n }\n\n function win(cm) { return doc(cm).defaultView }\n\n function bind(f) {\n var args = Array.prototype.slice.call(arguments, 1);\n return function(){return f.apply(null, args)}\n }\n\n function copyObj(obj, target, overwrite) {\n if (!target) { target = {}; }\n for (var prop in obj)\n { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))\n { target[prop] = obj[prop]; } }\n return target\n }\n\n // Counts the column offset in a string, taking tabs into account.\n // Used mostly to find indentation.\n function countColumn(string, end, tabSize, startIndex, startValue) {\n if (end == null) {\n end = string.search(/[^\\s\\u00a0]/);\n if (end == -1) { end = string.length; }\n }\n for (var i = startIndex || 0, n = startValue || 0;;) {\n var nextTab = string.indexOf(\"\\t\", i);\n if (nextTab < 0 || nextTab >= end)\n { return n + (end - i) }\n n += nextTab - i;\n n += tabSize - (n % tabSize);\n i = nextTab + 1;\n }\n }\n\n var Delayed = function() {\n this.id = null;\n this.f = null;\n this.time = 0;\n this.handler = bind(this.onTimeout, this);\n };\n Delayed.prototype.onTimeout = function (self) {\n self.id = 0;\n if (self.time <= +new Date) {\n self.f();\n } else {\n setTimeout(self.handler, self.time - +new Date);\n }\n };\n Delayed.prototype.set = function (ms, f) {\n this.f = f;\n var time = +new Date + ms;\n if (!this.id || time < this.time) {\n clearTimeout(this.id);\n this.id = setTimeout(this.handler, ms);\n this.time = time;\n }\n };\n\n function indexOf(array, elt) {\n for (var i = 0; i < array.length; ++i)\n { if (array[i] == elt) { return i } }\n return -1\n }\n\n // Number of pixels added to scroller and sizer to hide scrollbar\n var scrollerGap = 50;\n\n // Returned or thrown by various protocols to signal 'I'm not\n // handling this'.\n var Pass = {toString: function(){return \"CodeMirror.Pass\"}};\n\n // Reused option objects for setSelection & friends\n var sel_dontScroll = {scroll: false}, sel_mouse = {origin: \"*mouse\"}, sel_move = {origin: \"+move\"};\n\n // The inverse of countColumn -- find the offset that corresponds to\n // a particular column.\n function findColumn(string, goal, tabSize) {\n for (var pos = 0, col = 0;;) {\n var nextTab = string.indexOf(\"\\t\", pos);\n if (nextTab == -1) { nextTab = string.length; }\n var skipped = nextTab - pos;\n if (nextTab == string.length || col + skipped >= goal)\n { return pos + Math.min(skipped, goal - col) }\n col += nextTab - pos;\n col += tabSize - (col % tabSize);\n pos = nextTab + 1;\n if (col >= goal) { return pos }\n }\n }\n\n var spaceStrs = [\"\"];\n function spaceStr(n) {\n while (spaceStrs.length <= n)\n { spaceStrs.push(lst(spaceStrs) + \" \"); }\n return spaceStrs[n]\n }\n\n function lst(arr) { return arr[arr.length-1] }\n\n function map(array, f) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); }\n return out\n }\n\n function insertSorted(array, value, score) {\n var pos = 0, priority = score(value);\n while (pos < array.length && score(array[pos]) <= priority) { pos++; }\n array.splice(pos, 0, value);\n }\n\n function nothing() {}\n\n function createObj(base, props) {\n var inst;\n if (Object.create) {\n inst = Object.create(base);\n } else {\n nothing.prototype = base;\n inst = new nothing();\n }\n if (props) { copyObj(props, inst); }\n return inst\n }\n\n var nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\n function isWordCharBasic(ch) {\n return /\\w/.test(ch) || ch > \"\\x80\" &&\n (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch))\n }\n function isWordChar(ch, helper) {\n if (!helper) { return isWordCharBasic(ch) }\n if (helper.source.indexOf(\"\\\\w\") > -1 && isWordCharBasic(ch)) { return true }\n return helper.test(ch)\n }\n\n function isEmpty(obj) {\n for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } }\n return true\n }\n\n // Extending unicode characters. A series of a non-extending char +\n // any number of extending chars is treated as a single unit as far\n // as editing and measuring is concerned. This is not fully correct,\n // since some scripts/fonts/browsers also treat other configurations\n // of code points as a group.\n var extendingChars = /[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;\n function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) }\n\n // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range.\n function skipExtendingChars(str, pos, dir) {\n while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; }\n return pos\n }\n\n // Returns the value from the range [`from`; `to`] that satisfies\n // `pred` and is closest to `from`. Assumes that at least `to`\n // satisfies `pred`. Supports `from` being greater than `to`.\n function findFirst(pred, from, to) {\n // At any point we are certain `to` satisfies `pred`, don't know\n // whether `from` does.\n var dir = from > to ? -1 : 1;\n for (;;) {\n if (from == to) { return from }\n var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);\n if (mid == from) { return pred(mid) ? from : to }\n if (pred(mid)) { to = mid; }\n else { from = mid + dir; }\n }\n }\n\n // BIDI HELPERS\n\n function iterateBidiSections(order, from, to, f) {\n if (!order) { return f(from, to, \"ltr\", 0) }\n var found = false;\n for (var i = 0; i < order.length; ++i) {\n var part = order[i];\n if (part.from < to && part.to > from || from == to && part.to == from) {\n f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? \"rtl\" : \"ltr\", i);\n found = true;\n }\n }\n if (!found) { f(from, to, \"ltr\"); }\n }\n\n var bidiOther = null;\n function getBidiPartAt(order, ch, sticky) {\n var found;\n bidiOther = null;\n for (var i = 0; i < order.length; ++i) {\n var cur = order[i];\n if (cur.from < ch && cur.to > ch) { return i }\n if (cur.to == ch) {\n if (cur.from != cur.to && sticky == \"before\") { found = i; }\n else { bidiOther = i; }\n }\n if (cur.from == ch) {\n if (cur.from != cur.to && sticky != \"before\") { found = i; }\n else { bidiOther = i; }\n }\n }\n return found != null ? found : bidiOther\n }\n\n // Bidirectional ordering algorithm\n // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm\n // that this (partially) implements.\n\n // One-char codes used for character types:\n // L (L): Left-to-Right\n // R (R): Right-to-Left\n // r (AL): Right-to-Left Arabic\n // 1 (EN): European Number\n // + (ES): European Number Separator\n // % (ET): European Number Terminator\n // n (AN): Arabic Number\n // , (CS): Common Number Separator\n // m (NSM): Non-Spacing Mark\n // b (BN): Boundary Neutral\n // s (B): Paragraph Separator\n // t (S): Segment Separator\n // w (WS): Whitespace\n // N (ON): Other Neutrals\n\n // Returns null if characters are ordered as they appear\n // (left-to-right), or an array of sections ({from, to, level}\n // objects) in the order in which they occur visually.\n var bidiOrdering = (function() {\n // Character types for codepoints 0 to 0xff\n var lowTypes = \"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\";\n // Character types for codepoints 0x600 to 0x6f9\n var arabicTypes = \"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111\";\n function charType(code) {\n if (code <= 0xf7) { return lowTypes.charAt(code) }\n else if (0x590 <= code && code <= 0x5f4) { return \"R\" }\n else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) }\n else if (0x6ee <= code && code <= 0x8ac) { return \"r\" }\n else if (0x2000 <= code && code <= 0x200b) { return \"w\" }\n else if (code == 0x200c) { return \"b\" }\n else { return \"L\" }\n }\n\n var bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;\n\n function BidiSpan(level, from, to) {\n this.level = level;\n this.from = from; this.to = to;\n }\n\n return function(str, direction) {\n var outerType = direction == \"ltr\" ? \"L\" : \"R\";\n\n if (str.length == 0 || direction == \"ltr\" && !bidiRE.test(str)) { return false }\n var len = str.length, types = [];\n for (var i = 0; i < len; ++i)\n { types.push(charType(str.charCodeAt(i))); }\n\n // W1. Examine each non-spacing mark (NSM) in the level run, and\n // change the type of the NSM to the type of the previous\n // character. If the NSM is at the start of the level run, it will\n // get the type of sor.\n for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) {\n var type = types[i$1];\n if (type == \"m\") { types[i$1] = prev; }\n else { prev = type; }\n }\n\n // W2. Search backwards from each instance of a European number\n // until the first strong type (R, L, AL, or sor) is found. If an\n // AL is found, change the type of the European number to Arabic\n // number.\n // W3. Change all ALs to R.\n for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) {\n var type$1 = types[i$2];\n if (type$1 == \"1\" && cur == \"r\") { types[i$2] = \"n\"; }\n else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == \"r\") { types[i$2] = \"R\"; } }\n }\n\n // W4. A single European separator between two European numbers\n // changes to a European number. A single common separator between\n // two numbers of the same type changes to that type.\n for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) {\n var type$2 = types[i$3];\n if (type$2 == \"+\" && prev$1 == \"1\" && types[i$3+1] == \"1\") { types[i$3] = \"1\"; }\n else if (type$2 == \",\" && prev$1 == types[i$3+1] &&\n (prev$1 == \"1\" || prev$1 == \"n\")) { types[i$3] = prev$1; }\n prev$1 = type$2;\n }\n\n // W5. A sequence of European terminators adjacent to European\n // numbers changes to all European numbers.\n // W6. Otherwise, separators and terminators change to Other\n // Neutral.\n for (var i$4 = 0; i$4 < len; ++i$4) {\n var type$3 = types[i$4];\n if (type$3 == \",\") { types[i$4] = \"N\"; }\n else if (type$3 == \"%\") {\n var end = (void 0);\n for (end = i$4 + 1; end < len && types[end] == \"%\"; ++end) {}\n var replace = (i$4 && types[i$4-1] == \"!\") || (end < len && types[end] == \"1\") ? \"1\" : \"N\";\n for (var j = i$4; j < end; ++j) { types[j] = replace; }\n i$4 = end - 1;\n }\n }\n\n // W7. Search backwards from each instance of a European number\n // until the first strong type (R, L, or sor) is found. If an L is\n // found, then change the type of the European number to L.\n for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) {\n var type$4 = types[i$5];\n if (cur$1 == \"L\" && type$4 == \"1\") { types[i$5] = \"L\"; }\n else if (isStrong.test(type$4)) { cur$1 = type$4; }\n }\n\n // N1. A sequence of neutrals takes the direction of the\n // surrounding strong text if the text on both sides has the same\n // direction. European and Arabic numbers act as if they were R in\n // terms of their influence on neutrals. Start-of-level-run (sor)\n // and end-of-level-run (eor) are used at level run boundaries.\n // N2. Any remaining neutrals take the embedding direction.\n for (var i$6 = 0; i$6 < len; ++i$6) {\n if (isNeutral.test(types[i$6])) {\n var end$1 = (void 0);\n for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {}\n var before = (i$6 ? types[i$6-1] : outerType) == \"L\";\n var after = (end$1 < len ? types[end$1] : outerType) == \"L\";\n var replace$1 = before == after ? (before ? \"L\" : \"R\") : outerType;\n for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; }\n i$6 = end$1 - 1;\n }\n }\n\n // Here we depart from the documented algorithm, in order to avoid\n // building up an actual levels array. Since there are only three\n // levels (0, 1, 2) in an implementation that doesn't take\n // explicit embedding into account, we can build up the order on\n // the fly, without following the level-based algorithm.\n var order = [], m;\n for (var i$7 = 0; i$7 < len;) {\n if (countsAsLeft.test(types[i$7])) {\n var start = i$7;\n for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {}\n order.push(new BidiSpan(0, start, i$7));\n } else {\n var pos = i$7, at = order.length, isRTL = direction == \"rtl\" ? 1 : 0;\n for (++i$7; i$7 < len && types[i$7] != \"L\"; ++i$7) {}\n for (var j$2 = pos; j$2 < i$7;) {\n if (countsAsNum.test(types[j$2])) {\n if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); at += isRTL; }\n var nstart = j$2;\n for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {}\n order.splice(at, 0, new BidiSpan(2, nstart, j$2));\n at += isRTL;\n pos = j$2;\n } else { ++j$2; }\n }\n if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }\n }\n }\n if (direction == \"ltr\") {\n if (order[0].level == 1 && (m = str.match(/^\\s+/))) {\n order[0].from = m[0].length;\n order.unshift(new BidiSpan(0, 0, m[0].length));\n }\n if (lst(order).level == 1 && (m = str.match(/\\s+$/))) {\n lst(order).to -= m[0].length;\n order.push(new BidiSpan(0, len - m[0].length, len));\n }\n }\n\n return direction == \"rtl\" ? order.reverse() : order\n }\n })();\n\n // Get the bidi ordering for the given line (and cache it). Returns\n // false for lines that are fully left-to-right, and an array of\n // BidiSpan objects otherwise.\n function getOrder(line, direction) {\n var order = line.order;\n if (order == null) { order = line.order = bidiOrdering(line.text, direction); }\n return order\n }\n\n // EVENT HANDLING\n\n // Lightweight event framework. on/off also work on DOM nodes,\n // registering native DOM handlers.\n\n var noHandlers = [];\n\n var on = function(emitter, type, f) {\n if (emitter.addEventListener) {\n emitter.addEventListener(type, f, false);\n } else if (emitter.attachEvent) {\n emitter.attachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers || (emitter._handlers = {});\n map[type] = (map[type] || noHandlers).concat(f);\n }\n };\n\n function getHandlers(emitter, type) {\n return emitter._handlers && emitter._handlers[type] || noHandlers\n }\n\n function off(emitter, type, f) {\n if (emitter.removeEventListener) {\n emitter.removeEventListener(type, f, false);\n } else if (emitter.detachEvent) {\n emitter.detachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers, arr = map && map[type];\n if (arr) {\n var index = indexOf(arr, f);\n if (index > -1)\n { map[type] = arr.slice(0, index).concat(arr.slice(index + 1)); }\n }\n }\n }\n\n function signal(emitter, type /*, values...*/) {\n var handlers = getHandlers(emitter, type);\n if (!handlers.length) { return }\n var args = Array.prototype.slice.call(arguments, 2);\n for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); }\n }\n\n // The DOM events that CodeMirror handles can be overridden by\n // registering a (non-DOM) handler on the editor for the event name,\n // and preventDefault-ing the event in that handler.\n function signalDOMEvent(cm, e, override) {\n if (typeof e == \"string\")\n { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; }\n signal(cm, override || e.type, cm, e);\n return e_defaultPrevented(e) || e.codemirrorIgnore\n }\n\n function signalCursorActivity(cm) {\n var arr = cm._handlers && cm._handlers.cursorActivity;\n if (!arr) { return }\n var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);\n for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1)\n { set.push(arr[i]); } }\n }\n\n function hasHandler(emitter, type) {\n return getHandlers(emitter, type).length > 0\n }\n\n // Add on and off methods to a constructor's prototype, to make\n // registering events on such objects more convenient.\n function eventMixin(ctor) {\n ctor.prototype.on = function(type, f) {on(this, type, f);};\n ctor.prototype.off = function(type, f) {off(this, type, f);};\n }\n\n // Due to the fact that we still support jurassic IE versions, some\n // compatibility wrappers are needed.\n\n function e_preventDefault(e) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n function e_stopPropagation(e) {\n if (e.stopPropagation) { e.stopPropagation(); }\n else { e.cancelBubble = true; }\n }\n function e_defaultPrevented(e) {\n return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false\n }\n function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}\n\n function e_target(e) {return e.target || e.srcElement}\n function e_button(e) {\n var b = e.which;\n if (b == null) {\n if (e.button & 1) { b = 1; }\n else if (e.button & 2) { b = 3; }\n else if (e.button & 4) { b = 2; }\n }\n if (mac && e.ctrlKey && b == 1) { b = 3; }\n return b\n }\n\n // Detect drag-and-drop\n var dragAndDrop = function() {\n // There is *some* kind of drag-and-drop support in IE6-8, but I\n // couldn't get it to work yet.\n if (ie && ie_version < 9) { return false }\n var div = elt('div');\n return \"draggable\" in div || \"dragDrop\" in div\n }();\n\n var zwspSupported;\n function zeroWidthElement(measure) {\n if (zwspSupported == null) {\n var test = elt(\"span\", \"\\u200b\");\n removeChildrenAndAdd(measure, elt(\"span\", [test, document.createTextNode(\"x\")]));\n if (measure.firstChild.offsetHeight != 0)\n { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); }\n }\n var node = zwspSupported ? elt(\"span\", \"\\u200b\") :\n elt(\"span\", \"\\u00a0\", null, \"display: inline-block; width: 1px; margin-right: -1px\");\n node.setAttribute(\"cm-text\", \"\");\n return node\n }\n\n // Feature-detect IE's crummy client rect reporting for bidi text\n var badBidiRects;\n function hasBadBidiRects(measure) {\n if (badBidiRects != null) { return badBidiRects }\n var txt = removeChildrenAndAdd(measure, document.createTextNode(\"A\\u062eA\"));\n var r0 = range(txt, 0, 1).getBoundingClientRect();\n var r1 = range(txt, 1, 2).getBoundingClientRect();\n removeChildren(measure);\n if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780)\n return badBidiRects = (r1.right - r0.right < 3)\n }\n\n // See if \"\".split is the broken IE version, if so, provide an\n // alternative way to split lines.\n var splitLinesAuto = \"\\n\\nb\".split(/\\n/).length != 3 ? function (string) {\n var pos = 0, result = [], l = string.length;\n while (pos <= l) {\n var nl = string.indexOf(\"\\n\", pos);\n if (nl == -1) { nl = string.length; }\n var line = string.slice(pos, string.charAt(nl - 1) == \"\\r\" ? nl - 1 : nl);\n var rt = line.indexOf(\"\\r\");\n if (rt != -1) {\n result.push(line.slice(0, rt));\n pos += rt + 1;\n } else {\n result.push(line);\n pos = nl + 1;\n }\n }\n return result\n } : function (string) { return string.split(/\\r\\n?|\\n/); };\n\n var hasSelection = window.getSelection ? function (te) {\n try { return te.selectionStart != te.selectionEnd }\n catch(e) { return false }\n } : function (te) {\n var range;\n try {range = te.ownerDocument.selection.createRange();}\n catch(e) {}\n if (!range || range.parentElement() != te) { return false }\n return range.compareEndPoints(\"StartToEnd\", range) != 0\n };\n\n var hasCopyEvent = (function () {\n var e = elt(\"div\");\n if (\"oncopy\" in e) { return true }\n e.setAttribute(\"oncopy\", \"return;\");\n return typeof e.oncopy == \"function\"\n })();\n\n var badZoomedRects = null;\n function hasBadZoomedRects(measure) {\n if (badZoomedRects != null) { return badZoomedRects }\n var node = removeChildrenAndAdd(measure, elt(\"span\", \"x\"));\n var normal = node.getBoundingClientRect();\n var fromRange = range(node, 0, 1).getBoundingClientRect();\n return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1\n }\n\n // Known modes, by name and by MIME\n var modes = {}, mimeModes = {};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n function defineMode(name, mode) {\n if (arguments.length > 2)\n { mode.dependencies = Array.prototype.slice.call(arguments, 2); }\n modes[name] = mode;\n }\n\n function defineMIME(mime, spec) {\n mimeModes[mime] = spec;\n }\n\n // Given a MIME type, a {name, ...options} config object, or a name\n // string, return a mode config object.\n function resolveMode(spec) {\n if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n spec = mimeModes[spec];\n } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n var found = mimeModes[spec.name];\n if (typeof found == \"string\") { found = {name: found}; }\n spec = createObj(found, spec);\n spec.name = found.name;\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n return resolveMode(\"application/xml\")\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(spec)) {\n return resolveMode(\"application/json\")\n }\n if (typeof spec == \"string\") { return {name: spec} }\n else { return spec || {name: \"null\"} }\n }\n\n // Given a mode spec (anything that resolveMode accepts), find and\n // initialize an actual mode object.\n function getMode(options, spec) {\n spec = resolveMode(spec);\n var mfactory = modes[spec.name];\n if (!mfactory) { return getMode(options, \"text/plain\") }\n var modeObj = mfactory(options, spec);\n if (modeExtensions.hasOwnProperty(spec.name)) {\n var exts = modeExtensions[spec.name];\n for (var prop in exts) {\n if (!exts.hasOwnProperty(prop)) { continue }\n if (modeObj.hasOwnProperty(prop)) { modeObj[\"_\" + prop] = modeObj[prop]; }\n modeObj[prop] = exts[prop];\n }\n }\n modeObj.name = spec.name;\n if (spec.helperType) { modeObj.helperType = spec.helperType; }\n if (spec.modeProps) { for (var prop$1 in spec.modeProps)\n { modeObj[prop$1] = spec.modeProps[prop$1]; } }\n\n return modeObj\n }\n\n // This can be used to attach properties to mode objects from\n // outside the actual mode definition.\n var modeExtensions = {};\n function extendMode(mode, properties) {\n var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n copyObj(properties, exts);\n }\n\n function copyState(mode, state) {\n if (state === true) { return state }\n if (mode.copyState) { return mode.copyState(state) }\n var nstate = {};\n for (var n in state) {\n var val = state[n];\n if (val instanceof Array) { val = val.concat([]); }\n nstate[n] = val;\n }\n return nstate\n }\n\n // Given a mode and a state (for that mode), find the inner mode and\n // state at the position that the state refers to.\n function innerMode(mode, state) {\n var info;\n while (mode.innerMode) {\n info = mode.innerMode(state);\n if (!info || info.mode == mode) { break }\n state = info.state;\n mode = info.mode;\n }\n return info || {mode: mode, state: state}\n }\n\n function startState(mode, a1, a2) {\n return mode.startState ? mode.startState(a1, a2) : true\n }\n\n // STRING STREAM\n\n // Fed to the mode parsers, provides helper functions to make\n // parsers more succinct.\n\n var StringStream = function(string, tabSize, lineOracle) {\n this.pos = this.start = 0;\n this.string = string;\n this.tabSize = tabSize || 8;\n this.lastColumnPos = this.lastColumnValue = 0;\n this.lineStart = 0;\n this.lineOracle = lineOracle;\n };\n\n StringStream.prototype.eol = function () {return this.pos >= this.string.length};\n StringStream.prototype.sol = function () {return this.pos == this.lineStart};\n StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};\n StringStream.prototype.next = function () {\n if (this.pos < this.string.length)\n { return this.string.charAt(this.pos++) }\n };\n StringStream.prototype.eat = function (match) {\n var ch = this.string.charAt(this.pos);\n var ok;\n if (typeof match == \"string\") { ok = ch == match; }\n else { ok = ch && (match.test ? match.test(ch) : match(ch)); }\n if (ok) {++this.pos; return ch}\n };\n StringStream.prototype.eatWhile = function (match) {\n var start = this.pos;\n while (this.eat(match)){}\n return this.pos > start\n };\n StringStream.prototype.eatSpace = function () {\n var start = this.pos;\n while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) { ++this.pos; }\n return this.pos > start\n };\n StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};\n StringStream.prototype.skipTo = function (ch) {\n var found = this.string.indexOf(ch, this.pos);\n if (found > -1) {this.pos = found; return true}\n };\n StringStream.prototype.backUp = function (n) {this.pos -= n;};\n StringStream.prototype.column = function () {\n if (this.lastColumnPos < this.start) {\n this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n this.lastColumnPos = this.start;\n }\n return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.indentation = function () {\n return countColumn(this.string, null, this.tabSize) -\n (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.match = function (pattern, consume, caseInsensitive) {\n if (typeof pattern == \"string\") {\n var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };\n var substr = this.string.substr(this.pos, pattern.length);\n if (cased(substr) == cased(pattern)) {\n if (consume !== false) { this.pos += pattern.length; }\n return true\n }\n } else {\n var match = this.string.slice(this.pos).match(pattern);\n if (match && match.index > 0) { return null }\n if (match && consume !== false) { this.pos += match[0].length; }\n return match\n }\n };\n StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};\n StringStream.prototype.hideFirstChars = function (n, inner) {\n this.lineStart += n;\n try { return inner() }\n finally { this.lineStart -= n; }\n };\n StringStream.prototype.lookAhead = function (n) {\n var oracle = this.lineOracle;\n return oracle && oracle.lookAhead(n)\n };\n StringStream.prototype.baseToken = function () {\n var oracle = this.lineOracle;\n return oracle && oracle.baseToken(this.pos)\n };\n\n // Find the line object corresponding to the given line number.\n function getLine(doc, n) {\n n -= doc.first;\n if (n < 0 || n >= doc.size) { throw new Error(\"There is no line \" + (n + doc.first) + \" in the document.\") }\n var chunk = doc;\n while (!chunk.lines) {\n for (var i = 0;; ++i) {\n var child = chunk.children[i], sz = child.chunkSize();\n if (n < sz) { chunk = child; break }\n n -= sz;\n }\n }\n return chunk.lines[n]\n }\n\n // Get the part of a document between two positions, as an array of\n // strings.\n function getBetween(doc, start, end) {\n var out = [], n = start.line;\n doc.iter(start.line, end.line + 1, function (line) {\n var text = line.text;\n if (n == end.line) { text = text.slice(0, end.ch); }\n if (n == start.line) { text = text.slice(start.ch); }\n out.push(text);\n ++n;\n });\n return out\n }\n // Get the lines between from and to, as array of strings.\n function getLines(doc, from, to) {\n var out = [];\n doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value\n return out\n }\n\n // Update the height of a line, propagating the height change\n // upwards to parent nodes.\n function updateLineHeight(line, height) {\n var diff = height - line.height;\n if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } }\n }\n\n // Given a line object, find its line number by walking up through\n // its parent links.\n function lineNo(line) {\n if (line.parent == null) { return null }\n var cur = line.parent, no = indexOf(cur.lines, line);\n for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {\n for (var i = 0;; ++i) {\n if (chunk.children[i] == cur) { break }\n no += chunk.children[i].chunkSize();\n }\n }\n return no + cur.first\n }\n\n // Find the line at the given vertical position, using the height\n // information in the document tree.\n function lineAtHeight(chunk, h) {\n var n = chunk.first;\n outer: do {\n for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) {\n var child = chunk.children[i$1], ch = child.height;\n if (h < ch) { chunk = child; continue outer }\n h -= ch;\n n += child.chunkSize();\n }\n return n\n } while (!chunk.lines)\n var i = 0;\n for (; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i], lh = line.height;\n if (h < lh) { break }\n h -= lh;\n }\n return n + i\n }\n\n function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size}\n\n function lineNumberFor(options, i) {\n return String(options.lineNumberFormatter(i + options.firstLineNumber))\n }\n\n // A Pos instance represents a position within the text.\n function Pos(line, ch, sticky) {\n if ( sticky === void 0 ) sticky = null;\n\n if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) }\n this.line = line;\n this.ch = ch;\n this.sticky = sticky;\n }\n\n // Compare two positions, return 0 if they are the same, a negative\n // number when a is less, and a positive number otherwise.\n function cmp(a, b) { return a.line - b.line || a.ch - b.ch }\n\n function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 }\n\n function copyPos(x) {return Pos(x.line, x.ch)}\n function maxPos(a, b) { return cmp(a, b) < 0 ? b : a }\n function minPos(a, b) { return cmp(a, b) < 0 ? a : b }\n\n // Most of the external API clips given positions to make sure they\n // actually exist within the document.\n function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))}\n function clipPos(doc, pos) {\n if (pos.line < doc.first) { return Pos(doc.first, 0) }\n var last = doc.first + doc.size - 1;\n if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) }\n return clipToLen(pos, getLine(doc, pos.line).text.length)\n }\n function clipToLen(pos, linelen) {\n var ch = pos.ch;\n if (ch == null || ch > linelen) { return Pos(pos.line, linelen) }\n else if (ch < 0) { return Pos(pos.line, 0) }\n else { return pos }\n }\n function clipPosArray(doc, array) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); }\n return out\n }\n\n var SavedContext = function(state, lookAhead) {\n this.state = state;\n this.lookAhead = lookAhead;\n };\n\n var Context = function(doc, state, line, lookAhead) {\n this.state = state;\n this.doc = doc;\n this.line = line;\n this.maxLookAhead = lookAhead || 0;\n this.baseTokens = null;\n this.baseTokenPos = 1;\n };\n\n Context.prototype.lookAhead = function (n) {\n var line = this.doc.getLine(this.line + n);\n if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; }\n return line\n };\n\n Context.prototype.baseToken = function (n) {\n if (!this.baseTokens) { return null }\n while (this.baseTokens[this.baseTokenPos] <= n)\n { this.baseTokenPos += 2; }\n var type = this.baseTokens[this.baseTokenPos + 1];\n return {type: type && type.replace(/( |^)overlay .*/, \"\"),\n size: this.baseTokens[this.baseTokenPos] - n}\n };\n\n Context.prototype.nextLine = function () {\n this.line++;\n if (this.maxLookAhead > 0) { this.maxLookAhead--; }\n };\n\n Context.fromSaved = function (doc, saved, line) {\n if (saved instanceof SavedContext)\n { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) }\n else\n { return new Context(doc, copyState(doc.mode, saved), line) }\n };\n\n Context.prototype.save = function (copy) {\n var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state;\n return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state\n };\n\n\n // Compute a style array (an array starting with a mode generation\n // -- for invalidation -- followed by pairs of end positions and\n // style strings), which is used to highlight the tokens on the\n // line.\n function highlightLine(cm, line, context, forceToEnd) {\n // A styles array always starts with a number identifying the\n // mode/overlays that it is based on (for easy invalidation).\n var st = [cm.state.modeGen], lineClasses = {};\n // Compute the base array of styles\n runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); },\n lineClasses, forceToEnd);\n var state = context.state;\n\n // Run overlays, adjust style array.\n var loop = function ( o ) {\n context.baseTokens = st;\n var overlay = cm.state.overlays[o], i = 1, at = 0;\n context.state = true;\n runMode(cm, line.text, overlay.mode, context, function (end, style) {\n var start = i;\n // Ensure there's a token end at the current position, and that i points at it\n while (at < end) {\n var i_end = st[i];\n if (i_end > end)\n { st.splice(i, 1, end, st[i+1], i_end); }\n i += 2;\n at = Math.min(end, i_end);\n }\n if (!style) { return }\n if (overlay.opaque) {\n st.splice(start, i - start, end, \"overlay \" + style);\n i = start + 2;\n } else {\n for (; start < i; start += 2) {\n var cur = st[start+1];\n st[start+1] = (cur ? cur + \" \" : \"\") + \"overlay \" + style;\n }\n }\n }, lineClasses);\n context.state = state;\n context.baseTokens = null;\n context.baseTokenPos = 1;\n };\n\n for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );\n\n return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}\n }\n\n function getLineStyles(cm, line, updateFrontier) {\n if (!line.styles || line.styles[0] != cm.state.modeGen) {\n var context = getContextBefore(cm, lineNo(line));\n var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state);\n var result = highlightLine(cm, line, context);\n if (resetState) { context.state = resetState; }\n line.stateAfter = context.save(!resetState);\n line.styles = result.styles;\n if (result.classes) { line.styleClasses = result.classes; }\n else if (line.styleClasses) { line.styleClasses = null; }\n if (updateFrontier === cm.doc.highlightFrontier)\n { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); }\n }\n return line.styles\n }\n\n function getContextBefore(cm, n, precise) {\n var doc = cm.doc, display = cm.display;\n if (!doc.mode.startState) { return new Context(doc, true, n) }\n var start = findStartLine(cm, n, precise);\n var saved = start > doc.first && getLine(doc, start - 1).stateAfter;\n var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start);\n\n doc.iter(start, n, function (line) {\n processLine(cm, line.text, context);\n var pos = context.line;\n line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null;\n context.nextLine();\n });\n if (precise) { doc.modeFrontier = context.line; }\n return context\n }\n\n // Lightweight form of highlight -- proceed over this line and\n // update state, but don't save a style array. Used for lines that\n // aren't currently visible.\n function processLine(cm, text, context, startAt) {\n var mode = cm.doc.mode;\n var stream = new StringStream(text, cm.options.tabSize, context);\n stream.start = stream.pos = startAt || 0;\n if (text == \"\") { callBlankLine(mode, context.state); }\n while (!stream.eol()) {\n readToken(mode, stream, context.state);\n stream.start = stream.pos;\n }\n }\n\n function callBlankLine(mode, state) {\n if (mode.blankLine) { return mode.blankLine(state) }\n if (!mode.innerMode) { return }\n var inner = innerMode(mode, state);\n if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) }\n }\n\n function readToken(mode, stream, state, inner) {\n for (var i = 0; i < 10; i++) {\n if (inner) { inner[0] = innerMode(mode, state).mode; }\n var style = mode.token(stream, state);\n if (stream.pos > stream.start) { return style }\n }\n throw new Error(\"Mode \" + mode.name + \" failed to advance stream.\")\n }\n\n var Token = function(stream, type, state) {\n this.start = stream.start; this.end = stream.pos;\n this.string = stream.current();\n this.type = type || null;\n this.state = state;\n };\n\n // Utility for getTokenAt and getLineTokens\n function takeToken(cm, pos, precise, asArray) {\n var doc = cm.doc, mode = doc.mode, style;\n pos = clipPos(doc, pos);\n var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise);\n var stream = new StringStream(line.text, cm.options.tabSize, context), tokens;\n if (asArray) { tokens = []; }\n while ((asArray || stream.pos < pos.ch) && !stream.eol()) {\n stream.start = stream.pos;\n style = readToken(mode, stream, context.state);\n if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); }\n }\n return asArray ? tokens : new Token(stream, style, context.state)\n }\n\n function extractLineClasses(type, output) {\n if (type) { for (;;) {\n var lineClass = type.match(/(?:^|\\s+)line-(background-)?(\\S+)/);\n if (!lineClass) { break }\n type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);\n var prop = lineClass[1] ? \"bgClass\" : \"textClass\";\n if (output[prop] == null)\n { output[prop] = lineClass[2]; }\n else if (!(new RegExp(\"(?:^|\\\\s)\" + lineClass[2] + \"(?:$|\\\\s)\")).test(output[prop]))\n { output[prop] += \" \" + lineClass[2]; }\n } }\n return type\n }\n\n // Run the given mode's parser over a line, calling f for each token.\n function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {\n var flattenSpans = mode.flattenSpans;\n if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }\n var curStart = 0, curStyle = null;\n var stream = new StringStream(text, cm.options.tabSize, context), style;\n var inner = cm.options.addModeClass && [null];\n if (text == \"\") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); }\n while (!stream.eol()) {\n if (stream.pos > cm.options.maxHighlightLength) {\n flattenSpans = false;\n if (forceToEnd) { processLine(cm, text, context, stream.pos); }\n stream.pos = text.length;\n style = null;\n } else {\n style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses);\n }\n if (inner) {\n var mName = inner[0].name;\n if (mName) { style = \"m-\" + (style ? mName + \" \" + style : mName); }\n }\n if (!flattenSpans || curStyle != style) {\n while (curStart < stream.start) {\n curStart = Math.min(stream.start, curStart + 5000);\n f(curStart, curStyle);\n }\n curStyle = style;\n }\n stream.start = stream.pos;\n }\n while (curStart < stream.pos) {\n // Webkit seems to refuse to render text nodes longer than 57444\n // characters, and returns inaccurate measurements in nodes\n // starting around 5000 chars.\n var pos = Math.min(stream.pos, curStart + 5000);\n f(pos, curStyle);\n curStart = pos;\n }\n }\n\n // Finds the line to start with when starting a parse. Tries to\n // find a line with a stateAfter, so that it can start with a\n // valid state. If that fails, it returns the line with the\n // smallest indentation, which tends to need the least context to\n // parse correctly.\n function findStartLine(cm, n, precise) {\n var minindent, minline, doc = cm.doc;\n var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);\n for (var search = n; search > lim; --search) {\n if (search <= doc.first) { return doc.first }\n var line = getLine(doc, search - 1), after = line.stateAfter;\n if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier))\n { return search }\n var indented = countColumn(line.text, null, cm.options.tabSize);\n if (minline == null || minindent > indented) {\n minline = search - 1;\n minindent = indented;\n }\n }\n return minline\n }\n\n function retreatFrontier(doc, n) {\n doc.modeFrontier = Math.min(doc.modeFrontier, n);\n if (doc.highlightFrontier < n - 10) { return }\n var start = doc.first;\n for (var line = n - 1; line > start; line--) {\n var saved = getLine(doc, line).stateAfter;\n // change is on 3\n // state on line 1 looked ahead 2 -- so saw 3\n // test 1 + 2 < 3 should cover this\n if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) {\n start = line + 1;\n break\n }\n }\n doc.highlightFrontier = Math.min(doc.highlightFrontier, start);\n }\n\n // Optimize some code when these features are not used.\n var sawReadOnlySpans = false, sawCollapsedSpans = false;\n\n function seeReadOnlySpans() {\n sawReadOnlySpans = true;\n }\n\n function seeCollapsedSpans() {\n sawCollapsedSpans = true;\n }\n\n // TEXTMARKER SPANS\n\n function MarkedSpan(marker, from, to) {\n this.marker = marker;\n this.from = from; this.to = to;\n }\n\n // Search an array of spans for a span matching the given marker.\n function getMarkedSpanFor(spans, marker) {\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.marker == marker) { return span }\n } }\n }\n\n // Remove a span from an array, returning undefined if no spans are\n // left (we don't store arrays for lines without spans).\n function removeMarkedSpan(spans, span) {\n var r;\n for (var i = 0; i < spans.length; ++i)\n { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } }\n return r\n }\n\n // Add a span to a line.\n function addMarkedSpan(line, span, op) {\n var inThisOp = op && window.WeakSet && (op.markedSpans || (op.markedSpans = new WeakSet));\n if (inThisOp && line.markedSpans && inThisOp.has(line.markedSpans)) {\n line.markedSpans.push(span);\n } else {\n line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];\n if (inThisOp) { inThisOp.add(line.markedSpans); }\n }\n span.marker.attachLine(line);\n }\n\n // Used for the algorithm that adjusts markers for a change in the\n // document. These functions cut an array of spans at a given\n // character position, returning an array of remaining chunks (or\n // undefined if nothing remains).\n function markedSpansBefore(old, startCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);\n if (startsBefore || span.from == startCh && marker.type == \"bookmark\" && (!isInsert || !span.marker.insertLeft)) {\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));\n }\n } }\n return nw\n }\n function markedSpansAfter(old, endCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);\n if (endsAfter || span.from == endCh && marker.type == \"bookmark\" && (!isInsert || span.marker.insertLeft)) {\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,\n span.to == null ? null : span.to - endCh));\n }\n } }\n return nw\n }\n\n // Given a change object, compute the new set of marker spans that\n // cover the line in which the change took place. Removes spans\n // entirely within the change, reconnects spans belonging to the\n // same marker that appear on both sides of the change, and cuts off\n // spans partially within the change. Returns an array of span\n // arrays with one element for each line in (after) the change.\n function stretchSpansOverChange(doc, change) {\n if (change.full) { return null }\n var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;\n var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;\n if (!oldFirst && !oldLast) { return null }\n\n var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;\n // Get the spans that 'stick out' on both sides\n var first = markedSpansBefore(oldFirst, startCh, isInsert);\n var last = markedSpansAfter(oldLast, endCh, isInsert);\n\n // Next, merge those two ends\n var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);\n if (first) {\n // Fix up .to properties of first\n for (var i = 0; i < first.length; ++i) {\n var span = first[i];\n if (span.to == null) {\n var found = getMarkedSpanFor(last, span.marker);\n if (!found) { span.to = startCh; }\n else if (sameLine) { span.to = found.to == null ? null : found.to + offset; }\n }\n }\n }\n if (last) {\n // Fix up .from in last (or move them into first in case of sameLine)\n for (var i$1 = 0; i$1 < last.length; ++i$1) {\n var span$1 = last[i$1];\n if (span$1.to != null) { span$1.to += offset; }\n if (span$1.from == null) {\n var found$1 = getMarkedSpanFor(first, span$1.marker);\n if (!found$1) {\n span$1.from = offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n } else {\n span$1.from += offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n }\n }\n // Make sure we didn't create any zero-length spans\n if (first) { first = clearEmptySpans(first); }\n if (last && last != first) { last = clearEmptySpans(last); }\n\n var newMarkers = [first];\n if (!sameLine) {\n // Fill gap with whole-line-spans\n var gap = change.text.length - 2, gapMarkers;\n if (gap > 0 && first)\n { for (var i$2 = 0; i$2 < first.length; ++i$2)\n { if (first[i$2].to == null)\n { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } }\n for (var i$3 = 0; i$3 < gap; ++i$3)\n { newMarkers.push(gapMarkers); }\n newMarkers.push(last);\n }\n return newMarkers\n }\n\n // Remove spans that are empty and don't have a clearWhenEmpty\n // option of false.\n function clearEmptySpans(spans) {\n for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)\n { spans.splice(i--, 1); }\n }\n if (!spans.length) { return null }\n return spans\n }\n\n // Used to 'clip' out readOnly ranges when making a change.\n function removeReadOnlyRanges(doc, from, to) {\n var markers = null;\n doc.iter(from.line, to.line + 1, function (line) {\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var mark = line.markedSpans[i].marker;\n if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))\n { (markers || (markers = [])).push(mark); }\n } }\n });\n if (!markers) { return null }\n var parts = [{from: from, to: to}];\n for (var i = 0; i < markers.length; ++i) {\n var mk = markers[i], m = mk.find(0);\n for (var j = 0; j < parts.length; ++j) {\n var p = parts[j];\n if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue }\n var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);\n if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)\n { newParts.push({from: p.from, to: m.from}); }\n if (dto > 0 || !mk.inclusiveRight && !dto)\n { newParts.push({from: m.to, to: p.to}); }\n parts.splice.apply(parts, newParts);\n j += newParts.length - 3;\n }\n }\n return parts\n }\n\n // Connect or disconnect spans from a line.\n function detachMarkedSpans(line) {\n var spans = line.markedSpans;\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.detachLine(line); }\n line.markedSpans = null;\n }\n function attachMarkedSpans(line, spans) {\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.attachLine(line); }\n line.markedSpans = spans;\n }\n\n // Helpers used when computing which overlapping collapsed span\n // counts as the larger one.\n function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 }\n function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 }\n\n // Returns a number indicating which of two overlapping collapsed\n // spans is larger (and thus includes the other). Falls back to\n // comparing ids when the spans cover exactly the same range.\n function compareCollapsedMarkers(a, b) {\n var lenDiff = a.lines.length - b.lines.length;\n if (lenDiff != 0) { return lenDiff }\n var aPos = a.find(), bPos = b.find();\n var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);\n if (fromCmp) { return -fromCmp }\n var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);\n if (toCmp) { return toCmp }\n return b.id - a.id\n }\n\n // Find out whether a line ends or starts in a collapsed span. If\n // so, return the marker for that span.\n function collapsedSpanAtSide(line, start) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0))\n { found = sp.marker; }\n } }\n return found\n }\n function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }\n function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }\n\n function collapsedSpanAround(line, ch) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; }\n } }\n return found\n }\n\n // Test whether there exists a collapsed span that partially\n // overlaps (covers the start or end, but not both) of a new span.\n // Such overlap is not allowed.\n function conflictingCollapsedRange(doc, lineNo, from, to, marker) {\n var line = getLine(doc, lineNo);\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n var found = sp.marker.find(0);\n var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);\n var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);\n if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue }\n if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||\n fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))\n { return true }\n } }\n }\n\n // A visual line is a line as drawn on the screen. Folding, for\n // example, can cause multiple logical lines to appear on the same\n // visual line. This finds the start of the visual line that the\n // given line is part of (usually that is the line itself).\n function visualLine(line) {\n var merged;\n while (merged = collapsedSpanAtStart(line))\n { line = merged.find(-1, true).line; }\n return line\n }\n\n function visualLineEnd(line) {\n var merged;\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return line\n }\n\n // Returns an array of logical lines that continue the visual line\n // started by the argument, or undefined if there are no such lines.\n function visualLineContinued(line) {\n var merged, lines;\n while (merged = collapsedSpanAtEnd(line)) {\n line = merged.find(1, true).line\n ;(lines || (lines = [])).push(line);\n }\n return lines\n }\n\n // Get the line number of the start of the visual line that the\n // given line number is part of.\n function visualLineNo(doc, lineN) {\n var line = getLine(doc, lineN), vis = visualLine(line);\n if (line == vis) { return lineN }\n return lineNo(vis)\n }\n\n // Get the line number of the start of the next visual line after\n // the given line.\n function visualLineEndNo(doc, lineN) {\n if (lineN > doc.lastLine()) { return lineN }\n var line = getLine(doc, lineN), merged;\n if (!lineIsHidden(doc, line)) { return lineN }\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return lineNo(line) + 1\n }\n\n // Compute whether a line is hidden. Lines count as hidden when they\n // are part of a visual line that starts with another line, or when\n // they are entirely covered by collapsed, non-widget span.\n function lineIsHidden(doc, line) {\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n if (sp.from == null) { return true }\n if (sp.marker.widgetNode) { continue }\n if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))\n { return true }\n } }\n }\n function lineIsHiddenInner(doc, line, span) {\n if (span.to == null) {\n var end = span.marker.find(1, true);\n return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker))\n }\n if (span.marker.inclusiveRight && span.to == line.text.length)\n { return true }\n for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) {\n sp = line.markedSpans[i];\n if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&\n (sp.to == null || sp.to != span.from) &&\n (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&\n lineIsHiddenInner(doc, line, sp)) { return true }\n }\n }\n\n // Find the height above the given line.\n function heightAtLine(lineObj) {\n lineObj = visualLine(lineObj);\n\n var h = 0, chunk = lineObj.parent;\n for (var i = 0; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i];\n if (line == lineObj) { break }\n else { h += line.height; }\n }\n for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {\n for (var i$1 = 0; i$1 < p.children.length; ++i$1) {\n var cur = p.children[i$1];\n if (cur == chunk) { break }\n else { h += cur.height; }\n }\n }\n return h\n }\n\n // Compute the character length of a line, taking into account\n // collapsed ranges (see markText) that might hide parts, and join\n // other lines onto it.\n function lineLength(line) {\n if (line.height == 0) { return 0 }\n var len = line.text.length, merged, cur = line;\n while (merged = collapsedSpanAtStart(cur)) {\n var found = merged.find(0, true);\n cur = found.from.line;\n len += found.from.ch - found.to.ch;\n }\n cur = line;\n while (merged = collapsedSpanAtEnd(cur)) {\n var found$1 = merged.find(0, true);\n len -= cur.text.length - found$1.from.ch;\n cur = found$1.to.line;\n len += cur.text.length - found$1.to.ch;\n }\n return len\n }\n\n // Find the longest line in the document.\n function findMaxLine(cm) {\n var d = cm.display, doc = cm.doc;\n d.maxLine = getLine(doc, doc.first);\n d.maxLineLength = lineLength(d.maxLine);\n d.maxLineChanged = true;\n doc.iter(function (line) {\n var len = lineLength(line);\n if (len > d.maxLineLength) {\n d.maxLineLength = len;\n d.maxLine = line;\n }\n });\n }\n\n // LINE DATA STRUCTURE\n\n // Line objects. These hold state related to a line, including\n // highlighting info (the styles array).\n var Line = function(text, markedSpans, estimateHeight) {\n this.text = text;\n attachMarkedSpans(this, markedSpans);\n this.height = estimateHeight ? estimateHeight(this) : 1;\n };\n\n Line.prototype.lineNo = function () { return lineNo(this) };\n eventMixin(Line);\n\n // Change the content (text, markers) of a line. Automatically\n // invalidates cached information and tries to re-estimate the\n // line's height.\n function updateLine(line, text, markedSpans, estimateHeight) {\n line.text = text;\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n if (line.order != null) { line.order = null; }\n detachMarkedSpans(line);\n attachMarkedSpans(line, markedSpans);\n var estHeight = estimateHeight ? estimateHeight(line) : 1;\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n }\n\n // Detach a line from the document tree and its markers.\n function cleanUpLine(line) {\n line.parent = null;\n detachMarkedSpans(line);\n }\n\n // Convert a style as returned by a mode (either null, or a string\n // containing one or more styles) to a CSS style. This is cached,\n // and also looks for line-wide styles.\n var styleToClassCache = {}, styleToClassCacheWithMode = {};\n function interpretTokenStyle(style, options) {\n if (!style || /^\\s*$/.test(style)) { return null }\n var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;\n return cache[style] ||\n (cache[style] = style.replace(/\\S+/g, \"cm-$&\"))\n }\n\n // Render the DOM representation of the text of a line. Also builds\n // up a 'line map', which points at the DOM nodes that represent\n // specific stretches of text, and is used by the measuring code.\n // The returned object contains the DOM node, this map, and\n // information about line-wide styles that were set by the mode.\n function buildLineContent(cm, lineView) {\n // The padding-right forces the element to have a 'border', which\n // is needed on Webkit to be able to get line-level bounding\n // rectangles for it (in measureChar).\n var content = eltP(\"span\", null, null, webkit ? \"padding-right: .1px\" : null);\n var builder = {pre: eltP(\"pre\", [content], \"CodeMirror-line\"), content: content,\n col: 0, pos: 0, cm: cm,\n trailingSpace: false,\n splitSpaces: cm.getOption(\"lineWrapping\")};\n lineView.measure = {};\n\n // Iterate over the logical lines that make up this visual line.\n for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {\n var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0);\n builder.pos = 0;\n builder.addToken = buildToken;\n // Optionally wire in some hacks into the token-rendering\n // algorithm, to deal with browser quirks.\n if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction)))\n { builder.addToken = buildTokenBadBidi(builder.addToken, order); }\n builder.map = [];\n var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);\n insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));\n if (line.styleClasses) {\n if (line.styleClasses.bgClass)\n { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || \"\"); }\n if (line.styleClasses.textClass)\n { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || \"\"); }\n }\n\n // Ensure at least a single node is present, for measuring.\n if (builder.map.length == 0)\n { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); }\n\n // Store the map and a cache object for the current logical line\n if (i == 0) {\n lineView.measure.map = builder.map;\n lineView.measure.cache = {};\n } else {\n (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map)\n ;(lineView.measure.caches || (lineView.measure.caches = [])).push({});\n }\n }\n\n // See issue #2901\n if (webkit) {\n var last = builder.content.lastChild;\n if (/\\bcm-tab\\b/.test(last.className) || (last.querySelector && last.querySelector(\".cm-tab\")))\n { builder.content.className = \"cm-tab-wrap-hack\"; }\n }\n\n signal(cm, \"renderLine\", cm, lineView.line, builder.pre);\n if (builder.pre.className)\n { builder.textClass = joinClasses(builder.pre.className, builder.textClass || \"\"); }\n\n return builder\n }\n\n function defaultSpecialCharPlaceholder(ch) {\n var token = elt(\"span\", \"\\u2022\", \"cm-invalidchar\");\n token.title = \"\\\\u\" + ch.charCodeAt(0).toString(16);\n token.setAttribute(\"aria-label\", token.title);\n return token\n }\n\n // Build up the DOM representation for a single token, and add it to\n // the line map. Takes care to render special characters separately.\n function buildToken(builder, text, style, startStyle, endStyle, css, attributes) {\n if (!text) { return }\n var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text;\n var special = builder.cm.state.specialChars, mustWrap = false;\n var content;\n if (!special.test(text)) {\n builder.col += text.length;\n content = document.createTextNode(displayText);\n builder.map.push(builder.pos, builder.pos + text.length, content);\n if (ie && ie_version < 9) { mustWrap = true; }\n builder.pos += text.length;\n } else {\n content = document.createDocumentFragment();\n var pos = 0;\n while (true) {\n special.lastIndex = pos;\n var m = special.exec(text);\n var skipped = m ? m.index - pos : text.length - pos;\n if (skipped) {\n var txt = document.createTextNode(displayText.slice(pos, pos + skipped));\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt])); }\n else { content.appendChild(txt); }\n builder.map.push(builder.pos, builder.pos + skipped, txt);\n builder.col += skipped;\n builder.pos += skipped;\n }\n if (!m) { break }\n pos += skipped + 1;\n var txt$1 = (void 0);\n if (m[0] == \"\\t\") {\n var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;\n txt$1 = content.appendChild(elt(\"span\", spaceStr(tabWidth), \"cm-tab\"));\n txt$1.setAttribute(\"role\", \"presentation\");\n txt$1.setAttribute(\"cm-text\", \"\\t\");\n builder.col += tabWidth;\n } else if (m[0] == \"\\r\" || m[0] == \"\\n\") {\n txt$1 = content.appendChild(elt(\"span\", m[0] == \"\\r\" ? \"\\u240d\" : \"\\u2424\", \"cm-invalidchar\"));\n txt$1.setAttribute(\"cm-text\", m[0]);\n builder.col += 1;\n } else {\n txt$1 = builder.cm.options.specialCharPlaceholder(m[0]);\n txt$1.setAttribute(\"cm-text\", m[0]);\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt$1])); }\n else { content.appendChild(txt$1); }\n builder.col += 1;\n }\n builder.map.push(builder.pos, builder.pos + 1, txt$1);\n builder.pos++;\n }\n }\n builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32;\n if (style || startStyle || endStyle || mustWrap || css || attributes) {\n var fullStyle = style || \"\";\n if (startStyle) { fullStyle += startStyle; }\n if (endStyle) { fullStyle += endStyle; }\n var token = elt(\"span\", [content], fullStyle, css);\n if (attributes) {\n for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != \"style\" && attr != \"class\")\n { token.setAttribute(attr, attributes[attr]); } }\n }\n return builder.content.appendChild(token)\n }\n builder.content.appendChild(content);\n }\n\n // Change some spaces to NBSP to prevent the browser from collapsing\n // trailing spaces at the end of a line when rendering text (issue #1362).\n function splitSpaces(text, trailingBefore) {\n if (text.length > 1 && !/ /.test(text)) { return text }\n var spaceBefore = trailingBefore, result = \"\";\n for (var i = 0; i < text.length; i++) {\n var ch = text.charAt(i);\n if (ch == \" \" && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32))\n { ch = \"\\u00a0\"; }\n result += ch;\n spaceBefore = ch == \" \";\n }\n return result\n }\n\n // Work around nonsense dimensions being reported for stretches of\n // right-to-left text.\n function buildTokenBadBidi(inner, order) {\n return function (builder, text, style, startStyle, endStyle, css, attributes) {\n style = style ? style + \" cm-force-border\" : \"cm-force-border\";\n var start = builder.pos, end = start + text.length;\n for (;;) {\n // Find the part that overlaps with the start of this text\n var part = (void 0);\n for (var i = 0; i < order.length; i++) {\n part = order[i];\n if (part.to > start && part.from <= start) { break }\n }\n if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) }\n inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes);\n startStyle = null;\n text = text.slice(part.to - start);\n start = part.to;\n }\n }\n }\n\n function buildCollapsedSpan(builder, size, marker, ignoreWidget) {\n var widget = !ignoreWidget && marker.widgetNode;\n if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); }\n if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {\n if (!widget)\n { widget = builder.content.appendChild(document.createElement(\"span\")); }\n widget.setAttribute(\"cm-marker\", marker.id);\n }\n if (widget) {\n builder.cm.display.input.setUneditable(widget);\n builder.content.appendChild(widget);\n }\n builder.pos += size;\n builder.trailingSpace = false;\n }\n\n // Outputs a number of spans to make up a line, taking highlighting\n // and marked text into account.\n function insertLineContent(line, builder, styles) {\n var spans = line.markedSpans, allText = line.text, at = 0;\n if (!spans) {\n for (var i$1 = 1; i$1 < styles.length; i$1+=2)\n { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); }\n return\n }\n\n var len = allText.length, pos = 0, i = 1, text = \"\", style, css;\n var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes;\n for (;;) {\n if (nextChange == pos) { // Update current marker set\n spanStyle = spanEndStyle = spanStartStyle = css = \"\";\n attributes = null;\n collapsed = null; nextChange = Infinity;\n var foundBookmarks = [], endStyles = (void 0);\n for (var j = 0; j < spans.length; ++j) {\n var sp = spans[j], m = sp.marker;\n if (m.type == \"bookmark\" && sp.from == pos && m.widgetNode) {\n foundBookmarks.push(m);\n } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {\n if (sp.to != null && sp.to != pos && nextChange > sp.to) {\n nextChange = sp.to;\n spanEndStyle = \"\";\n }\n if (m.className) { spanStyle += \" \" + m.className; }\n if (m.css) { css = (css ? css + \";\" : \"\") + m.css; }\n if (m.startStyle && sp.from == pos) { spanStartStyle += \" \" + m.startStyle; }\n if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); }\n // support for the old title property\n // https://github.com/codemirror/CodeMirror/pull/5673\n if (m.title) { (attributes || (attributes = {})).title = m.title; }\n if (m.attributes) {\n for (var attr in m.attributes)\n { (attributes || (attributes = {}))[attr] = m.attributes[attr]; }\n }\n if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))\n { collapsed = sp; }\n } else if (sp.from > pos && nextChange > sp.from) {\n nextChange = sp.from;\n }\n }\n if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2)\n { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += \" \" + endStyles[j$1]; } } }\n\n if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2)\n { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } }\n if (collapsed && (collapsed.from || 0) == pos) {\n buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,\n collapsed.marker, collapsed.from == null);\n if (collapsed.to == null) { return }\n if (collapsed.to == pos) { collapsed = false; }\n }\n }\n if (pos >= len) { break }\n\n var upto = Math.min(len, nextChange);\n while (true) {\n if (text) {\n var end = pos + text.length;\n if (!collapsed) {\n var tokenText = end > upto ? text.slice(0, upto - pos) : text;\n builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,\n spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : \"\", css, attributes);\n }\n if (end >= upto) {text = text.slice(upto - pos); pos = upto; break}\n pos = end;\n spanStartStyle = \"\";\n }\n text = allText.slice(at, at = styles[i++]);\n style = interpretTokenStyle(styles[i++], builder.cm.options);\n }\n }\n }\n\n\n // These objects are used to represent the visible (currently drawn)\n // part of the document. A LineView may correspond to multiple\n // logical lines, if those are connected by collapsed ranges.\n function LineView(doc, line, lineN) {\n // The starting line\n this.line = line;\n // Continuing lines, if any\n this.rest = visualLineContinued(line);\n // Number of logical lines in this visual line\n this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;\n this.node = this.text = null;\n this.hidden = lineIsHidden(doc, line);\n }\n\n // Create a range of LineView objects for the given lines.\n function buildViewArray(cm, from, to) {\n var array = [], nextPos;\n for (var pos = from; pos < to; pos = nextPos) {\n var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);\n nextPos = pos + view.size;\n array.push(view);\n }\n return array\n }\n\n var operationGroup = null;\n\n function pushOperation(op) {\n if (operationGroup) {\n operationGroup.ops.push(op);\n } else {\n op.ownsGroup = operationGroup = {\n ops: [op],\n delayedCallbacks: []\n };\n }\n }\n\n function fireCallbacksForOps(group) {\n // Calls delayed callbacks and cursorActivity handlers until no\n // new ones appear\n var callbacks = group.delayedCallbacks, i = 0;\n do {\n for (; i < callbacks.length; i++)\n { callbacks[i].call(null); }\n for (var j = 0; j < group.ops.length; j++) {\n var op = group.ops[j];\n if (op.cursorActivityHandlers)\n { while (op.cursorActivityCalled < op.cursorActivityHandlers.length)\n { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } }\n }\n } while (i < callbacks.length)\n }\n\n function finishOperation(op, endCb) {\n var group = op.ownsGroup;\n if (!group) { return }\n\n try { fireCallbacksForOps(group); }\n finally {\n operationGroup = null;\n endCb(group);\n }\n }\n\n var orphanDelayedCallbacks = null;\n\n // Often, we want to signal events at a point where we are in the\n // middle of some work, but don't want the handler to start calling\n // other methods on the editor, which might be in an inconsistent\n // state or simply not expect any other events to happen.\n // signalLater looks whether there are any handlers, and schedules\n // them to be executed when the last operation ends, or, if no\n // operation is active, when a timeout fires.\n function signalLater(emitter, type /*, values...*/) {\n var arr = getHandlers(emitter, type);\n if (!arr.length) { return }\n var args = Array.prototype.slice.call(arguments, 2), list;\n if (operationGroup) {\n list = operationGroup.delayedCallbacks;\n } else if (orphanDelayedCallbacks) {\n list = orphanDelayedCallbacks;\n } else {\n list = orphanDelayedCallbacks = [];\n setTimeout(fireOrphanDelayed, 0);\n }\n var loop = function ( i ) {\n list.push(function () { return arr[i].apply(null, args); });\n };\n\n for (var i = 0; i < arr.length; ++i)\n loop( i );\n }\n\n function fireOrphanDelayed() {\n var delayed = orphanDelayedCallbacks;\n orphanDelayedCallbacks = null;\n for (var i = 0; i < delayed.length; ++i) { delayed[i](); }\n }\n\n // When an aspect of a line changes, a string is added to\n // lineView.changes. This updates the relevant part of the line's\n // DOM structure.\n function updateLineForChanges(cm, lineView, lineN, dims) {\n for (var j = 0; j < lineView.changes.length; j++) {\n var type = lineView.changes[j];\n if (type == \"text\") { updateLineText(cm, lineView); }\n else if (type == \"gutter\") { updateLineGutter(cm, lineView, lineN, dims); }\n else if (type == \"class\") { updateLineClasses(cm, lineView); }\n else if (type == \"widget\") { updateLineWidgets(cm, lineView, dims); }\n }\n lineView.changes = null;\n }\n\n // Lines with gutter elements, widgets or a background class need to\n // be wrapped, and have the extra elements added to the wrapper div\n function ensureLineWrapped(lineView) {\n if (lineView.node == lineView.text) {\n lineView.node = elt(\"div\", null, null, \"position: relative\");\n if (lineView.text.parentNode)\n { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); }\n lineView.node.appendChild(lineView.text);\n if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; }\n }\n return lineView.node\n }\n\n function updateLineBackground(cm, lineView) {\n var cls = lineView.bgClass ? lineView.bgClass + \" \" + (lineView.line.bgClass || \"\") : lineView.line.bgClass;\n if (cls) { cls += \" CodeMirror-linebackground\"; }\n if (lineView.background) {\n if (cls) { lineView.background.className = cls; }\n else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }\n } else if (cls) {\n var wrap = ensureLineWrapped(lineView);\n lineView.background = wrap.insertBefore(elt(\"div\", null, cls), wrap.firstChild);\n cm.display.input.setUneditable(lineView.background);\n }\n }\n\n // Wrapper around buildLineContent which will reuse the structure\n // in display.externalMeasured when possible.\n function getLineContent(cm, lineView) {\n var ext = cm.display.externalMeasured;\n if (ext && ext.line == lineView.line) {\n cm.display.externalMeasured = null;\n lineView.measure = ext.measure;\n return ext.built\n }\n return buildLineContent(cm, lineView)\n }\n\n // Redraw the line's text. Interacts with the background and text\n // classes because the mode may output tokens that influence these\n // classes.\n function updateLineText(cm, lineView) {\n var cls = lineView.text.className;\n var built = getLineContent(cm, lineView);\n if (lineView.text == lineView.node) { lineView.node = built.pre; }\n lineView.text.parentNode.replaceChild(built.pre, lineView.text);\n lineView.text = built.pre;\n if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {\n lineView.bgClass = built.bgClass;\n lineView.textClass = built.textClass;\n updateLineClasses(cm, lineView);\n } else if (cls) {\n lineView.text.className = cls;\n }\n }\n\n function updateLineClasses(cm, lineView) {\n updateLineBackground(cm, lineView);\n if (lineView.line.wrapClass)\n { ensureLineWrapped(lineView).className = lineView.line.wrapClass; }\n else if (lineView.node != lineView.text)\n { lineView.node.className = \"\"; }\n var textClass = lineView.textClass ? lineView.textClass + \" \" + (lineView.line.textClass || \"\") : lineView.line.textClass;\n lineView.text.className = textClass || \"\";\n }\n\n function updateLineGutter(cm, lineView, lineN, dims) {\n if (lineView.gutter) {\n lineView.node.removeChild(lineView.gutter);\n lineView.gutter = null;\n }\n if (lineView.gutterBackground) {\n lineView.node.removeChild(lineView.gutterBackground);\n lineView.gutterBackground = null;\n }\n if (lineView.line.gutterClass) {\n var wrap = ensureLineWrapped(lineView);\n lineView.gutterBackground = elt(\"div\", null, \"CodeMirror-gutter-background \" + lineView.line.gutterClass,\n (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px; width: \" + (dims.gutterTotalWidth) + \"px\"));\n cm.display.input.setUneditable(lineView.gutterBackground);\n wrap.insertBefore(lineView.gutterBackground, lineView.text);\n }\n var markers = lineView.line.gutterMarkers;\n if (cm.options.lineNumbers || markers) {\n var wrap$1 = ensureLineWrapped(lineView);\n var gutterWrap = lineView.gutter = elt(\"div\", null, \"CodeMirror-gutter-wrapper\", (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px\"));\n gutterWrap.setAttribute(\"aria-hidden\", \"true\");\n cm.display.input.setUneditable(gutterWrap);\n wrap$1.insertBefore(gutterWrap, lineView.text);\n if (lineView.line.gutterClass)\n { gutterWrap.className += \" \" + lineView.line.gutterClass; }\n if (cm.options.lineNumbers && (!markers || !markers[\"CodeMirror-linenumbers\"]))\n { lineView.lineNumber = gutterWrap.appendChild(\n elt(\"div\", lineNumberFor(cm.options, lineN),\n \"CodeMirror-linenumber CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[\"CodeMirror-linenumbers\"]) + \"px; width: \" + (cm.display.lineNumInnerWidth) + \"px\"))); }\n if (markers) { for (var k = 0; k < cm.display.gutterSpecs.length; ++k) {\n var id = cm.display.gutterSpecs[k].className, found = markers.hasOwnProperty(id) && markers[id];\n if (found)\n { gutterWrap.appendChild(elt(\"div\", [found], \"CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[id]) + \"px; width: \" + (dims.gutterWidth[id]) + \"px\"))); }\n } }\n }\n }\n\n function updateLineWidgets(cm, lineView, dims) {\n if (lineView.alignable) { lineView.alignable = null; }\n var isWidget = classTest(\"CodeMirror-linewidget\");\n for (var node = lineView.node.firstChild, next = (void 0); node; node = next) {\n next = node.nextSibling;\n if (isWidget.test(node.className)) { lineView.node.removeChild(node); }\n }\n insertLineWidgets(cm, lineView, dims);\n }\n\n // Build a line's DOM representation from scratch\n function buildLineElement(cm, lineView, lineN, dims) {\n var built = getLineContent(cm, lineView);\n lineView.text = lineView.node = built.pre;\n if (built.bgClass) { lineView.bgClass = built.bgClass; }\n if (built.textClass) { lineView.textClass = built.textClass; }\n\n updateLineClasses(cm, lineView);\n updateLineGutter(cm, lineView, lineN, dims);\n insertLineWidgets(cm, lineView, dims);\n return lineView.node\n }\n\n // A lineView may contain multiple logical lines (when merged by\n // collapsed spans). The widgets for all of them need to be drawn.\n function insertLineWidgets(cm, lineView, dims) {\n insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } }\n }\n\n function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {\n if (!line.widgets) { return }\n var wrap = ensureLineWrapped(lineView);\n for (var i = 0, ws = line.widgets; i < ws.length; ++i) {\n var widget = ws[i], node = elt(\"div\", [widget.node], \"CodeMirror-linewidget\" + (widget.className ? \" \" + widget.className : \"\"));\n if (!widget.handleMouseEvents) { node.setAttribute(\"cm-ignore-events\", \"true\"); }\n positionLineWidget(widget, node, lineView, dims);\n cm.display.input.setUneditable(node);\n if (allowAbove && widget.above)\n { wrap.insertBefore(node, lineView.gutter || lineView.text); }\n else\n { wrap.appendChild(node); }\n signalLater(widget, \"redraw\");\n }\n }\n\n function positionLineWidget(widget, node, lineView, dims) {\n if (widget.noHScroll) {\n (lineView.alignable || (lineView.alignable = [])).push(node);\n var width = dims.wrapperWidth;\n node.style.left = dims.fixedPos + \"px\";\n if (!widget.coverGutter) {\n width -= dims.gutterTotalWidth;\n node.style.paddingLeft = dims.gutterTotalWidth + \"px\";\n }\n node.style.width = width + \"px\";\n }\n if (widget.coverGutter) {\n node.style.zIndex = 5;\n node.style.position = \"relative\";\n if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + \"px\"; }\n }\n }\n\n function widgetHeight(widget) {\n if (widget.height != null) { return widget.height }\n var cm = widget.doc.cm;\n if (!cm) { return 0 }\n if (!contains(document.body, widget.node)) {\n var parentStyle = \"position: relative;\";\n if (widget.coverGutter)\n { parentStyle += \"margin-left: -\" + cm.display.gutters.offsetWidth + \"px;\"; }\n if (widget.noHScroll)\n { parentStyle += \"width: \" + cm.display.wrapper.clientWidth + \"px;\"; }\n removeChildrenAndAdd(cm.display.measure, elt(\"div\", [widget.node], null, parentStyle));\n }\n return widget.height = widget.node.parentNode.offsetHeight\n }\n\n // Return true when the given mouse event happened in a widget\n function eventInWidget(display, e) {\n for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {\n if (!n || (n.nodeType == 1 && n.getAttribute(\"cm-ignore-events\") == \"true\") ||\n (n.parentNode == display.sizer && n != display.mover))\n { return true }\n }\n }\n\n // POSITION MEASUREMENT\n\n function paddingTop(display) {return display.lineSpace.offsetTop}\n function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight}\n function paddingH(display) {\n if (display.cachedPaddingH) { return display.cachedPaddingH }\n var e = removeChildrenAndAdd(display.measure, elt(\"pre\", \"x\", \"CodeMirror-line-like\"));\n var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;\n var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};\n if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; }\n return data\n }\n\n function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth }\n function displayWidth(cm) {\n return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth\n }\n function displayHeight(cm) {\n return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight\n }\n\n // Ensure the lineView.wrapping.heights array is populated. This is\n // an array of bottom offsets for the lines that make up a drawn\n // line. When lineWrapping is on, there might be more than one\n // height.\n function ensureLineHeights(cm, lineView, rect) {\n var wrapping = cm.options.lineWrapping;\n var curWidth = wrapping && displayWidth(cm);\n if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {\n var heights = lineView.measure.heights = [];\n if (wrapping) {\n lineView.measure.width = curWidth;\n var rects = lineView.text.firstChild.getClientRects();\n for (var i = 0; i < rects.length - 1; i++) {\n var cur = rects[i], next = rects[i + 1];\n if (Math.abs(cur.bottom - next.bottom) > 2)\n { heights.push((cur.bottom + next.top) / 2 - rect.top); }\n }\n }\n heights.push(rect.bottom - rect.top);\n }\n }\n\n // Find a line map (mapping character offsets to text nodes) and a\n // measurement cache for the given line number. (A line view might\n // contain multiple lines when collapsed ranges are present.)\n function mapFromLineView(lineView, line, lineN) {\n if (lineView.line == line)\n { return {map: lineView.measure.map, cache: lineView.measure.cache} }\n if (lineView.rest) {\n for (var i = 0; i < lineView.rest.length; i++)\n { if (lineView.rest[i] == line)\n { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } }\n for (var i$1 = 0; i$1 < lineView.rest.length; i$1++)\n { if (lineNo(lineView.rest[i$1]) > lineN)\n { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } }\n }\n }\n\n // Render a line into the hidden node display.externalMeasured. Used\n // when measurement is needed for a line that's not in the viewport.\n function updateExternalMeasurement(cm, line) {\n line = visualLine(line);\n var lineN = lineNo(line);\n var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);\n view.lineN = lineN;\n var built = view.built = buildLineContent(cm, view);\n view.text = built.pre;\n removeChildrenAndAdd(cm.display.lineMeasure, built.pre);\n return view\n }\n\n // Get a {top, bottom, left, right} box (in line-local coordinates)\n // for a given character.\n function measureChar(cm, line, ch, bias) {\n return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias)\n }\n\n // Find a line view that corresponds to the given line number.\n function findViewForLine(cm, lineN) {\n if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)\n { return cm.display.view[findViewIndex(cm, lineN)] }\n var ext = cm.display.externalMeasured;\n if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)\n { return ext }\n }\n\n // Measurement can be split in two steps, the set-up work that\n // applies to the whole line, and the measurement of the actual\n // character. Functions like coordsChar, that need to do a lot of\n // measurements in a row, can thus ensure that the set-up work is\n // only done once.\n function prepareMeasureForLine(cm, line) {\n var lineN = lineNo(line);\n var view = findViewForLine(cm, lineN);\n if (view && !view.text) {\n view = null;\n } else if (view && view.changes) {\n updateLineForChanges(cm, view, lineN, getDimensions(cm));\n cm.curOp.forceUpdate = true;\n }\n if (!view)\n { view = updateExternalMeasurement(cm, line); }\n\n var info = mapFromLineView(view, line, lineN);\n return {\n line: line, view: view, rect: null,\n map: info.map, cache: info.cache, before: info.before,\n hasHeights: false\n }\n }\n\n // Given a prepared measurement object, measures the position of an\n // actual character (or fetches it from the cache).\n function measureCharPrepared(cm, prepared, ch, bias, varHeight) {\n if (prepared.before) { ch = -1; }\n var key = ch + (bias || \"\"), found;\n if (prepared.cache.hasOwnProperty(key)) {\n found = prepared.cache[key];\n } else {\n if (!prepared.rect)\n { prepared.rect = prepared.view.text.getBoundingClientRect(); }\n if (!prepared.hasHeights) {\n ensureLineHeights(cm, prepared.view, prepared.rect);\n prepared.hasHeights = true;\n }\n found = measureCharInner(cm, prepared, ch, bias);\n if (!found.bogus) { prepared.cache[key] = found; }\n }\n return {left: found.left, right: found.right,\n top: varHeight ? found.rtop : found.top,\n bottom: varHeight ? found.rbottom : found.bottom}\n }\n\n var nullRect = {left: 0, right: 0, top: 0, bottom: 0};\n\n function nodeAndOffsetInLineMap(map, ch, bias) {\n var node, start, end, collapse, mStart, mEnd;\n // First, search the line map for the text node corresponding to,\n // or closest to, the target character.\n for (var i = 0; i < map.length; i += 3) {\n mStart = map[i];\n mEnd = map[i + 1];\n if (ch < mStart) {\n start = 0; end = 1;\n collapse = \"left\";\n } else if (ch < mEnd) {\n start = ch - mStart;\n end = start + 1;\n } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {\n end = mEnd - mStart;\n start = end - 1;\n if (ch >= mEnd) { collapse = \"right\"; }\n }\n if (start != null) {\n node = map[i + 2];\n if (mStart == mEnd && bias == (node.insertLeft ? \"left\" : \"right\"))\n { collapse = bias; }\n if (bias == \"left\" && start == 0)\n { while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {\n node = map[(i -= 3) + 2];\n collapse = \"left\";\n } }\n if (bias == \"right\" && start == mEnd - mStart)\n { while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {\n node = map[(i += 3) + 2];\n collapse = \"right\";\n } }\n break\n }\n }\n return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd}\n }\n\n function getUsefulRect(rects, bias) {\n var rect = nullRect;\n if (bias == \"left\") { for (var i = 0; i < rects.length; i++) {\n if ((rect = rects[i]).left != rect.right) { break }\n } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) {\n if ((rect = rects[i$1]).left != rect.right) { break }\n } }\n return rect\n }\n\n function measureCharInner(cm, prepared, ch, bias) {\n var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);\n var node = place.node, start = place.start, end = place.end, collapse = place.collapse;\n\n var rect;\n if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.\n for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned\n while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; }\n while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; }\n if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart)\n { rect = node.parentNode.getBoundingClientRect(); }\n else\n { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); }\n if (rect.left || rect.right || start == 0) { break }\n end = start;\n start = start - 1;\n collapse = \"right\";\n }\n if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); }\n } else { // If it is a widget, simply get the box for the whole widget.\n if (start > 0) { collapse = bias = \"right\"; }\n var rects;\n if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)\n { rect = rects[bias == \"right\" ? rects.length - 1 : 0]; }\n else\n { rect = node.getBoundingClientRect(); }\n }\n if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {\n var rSpan = node.parentNode.getClientRects()[0];\n if (rSpan)\n { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; }\n else\n { rect = nullRect; }\n }\n\n var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;\n var mid = (rtop + rbot) / 2;\n var heights = prepared.view.measure.heights;\n var i = 0;\n for (; i < heights.length - 1; i++)\n { if (mid < heights[i]) { break } }\n var top = i ? heights[i - 1] : 0, bot = heights[i];\n var result = {left: (collapse == \"right\" ? rect.right : rect.left) - prepared.rect.left,\n right: (collapse == \"left\" ? rect.left : rect.right) - prepared.rect.left,\n top: top, bottom: bot};\n if (!rect.left && !rect.right) { result.bogus = true; }\n if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }\n\n return result\n }\n\n // Work around problem with bounding client rects on ranges being\n // returned incorrectly when zoomed on IE10 and below.\n function maybeUpdateRectForZooming(measure, rect) {\n if (!window.screen || screen.logicalXDPI == null ||\n screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))\n { return rect }\n var scaleX = screen.logicalXDPI / screen.deviceXDPI;\n var scaleY = screen.logicalYDPI / screen.deviceYDPI;\n return {left: rect.left * scaleX, right: rect.right * scaleX,\n top: rect.top * scaleY, bottom: rect.bottom * scaleY}\n }\n\n function clearLineMeasurementCacheFor(lineView) {\n if (lineView.measure) {\n lineView.measure.cache = {};\n lineView.measure.heights = null;\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { lineView.measure.caches[i] = {}; } }\n }\n }\n\n function clearLineMeasurementCache(cm) {\n cm.display.externalMeasure = null;\n removeChildren(cm.display.lineMeasure);\n for (var i = 0; i < cm.display.view.length; i++)\n { clearLineMeasurementCacheFor(cm.display.view[i]); }\n }\n\n function clearCaches(cm) {\n clearLineMeasurementCache(cm);\n cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;\n if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; }\n cm.display.lineNumChars = null;\n }\n\n function pageScrollX(doc) {\n // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206\n // which causes page_Offset and bounding client rects to use\n // different reference viewports and invalidate our calculations.\n if (chrome && android) { return -(doc.body.getBoundingClientRect().left - parseInt(getComputedStyle(doc.body).marginLeft)) }\n return doc.defaultView.pageXOffset || (doc.documentElement || doc.body).scrollLeft\n }\n function pageScrollY(doc) {\n if (chrome && android) { return -(doc.body.getBoundingClientRect().top - parseInt(getComputedStyle(doc.body).marginTop)) }\n return doc.defaultView.pageYOffset || (doc.documentElement || doc.body).scrollTop\n }\n\n function widgetTopHeight(lineObj) {\n var ref = visualLine(lineObj);\n var widgets = ref.widgets;\n var height = 0;\n if (widgets) { for (var i = 0; i < widgets.length; ++i) { if (widgets[i].above)\n { height += widgetHeight(widgets[i]); } } }\n return height\n }\n\n // Converts a {top, bottom, left, right} box from line-local\n // coordinates into another coordinate system. Context may be one of\n // \"line\", \"div\" (display.lineDiv), \"local\"./null (editor), \"window\",\n // or \"page\".\n function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {\n if (!includeWidgets) {\n var height = widgetTopHeight(lineObj);\n rect.top += height; rect.bottom += height;\n }\n if (context == \"line\") { return rect }\n if (!context) { context = \"local\"; }\n var yOff = heightAtLine(lineObj);\n if (context == \"local\") { yOff += paddingTop(cm.display); }\n else { yOff -= cm.display.viewOffset; }\n if (context == \"page\" || context == \"window\") {\n var lOff = cm.display.lineSpace.getBoundingClientRect();\n yOff += lOff.top + (context == \"window\" ? 0 : pageScrollY(doc(cm)));\n var xOff = lOff.left + (context == \"window\" ? 0 : pageScrollX(doc(cm)));\n rect.left += xOff; rect.right += xOff;\n }\n rect.top += yOff; rect.bottom += yOff;\n return rect\n }\n\n // Coverts a box from \"div\" coords to another coordinate system.\n // Context may be \"window\", \"page\", \"div\", or \"local\"./null.\n function fromCoordSystem(cm, coords, context) {\n if (context == \"div\") { return coords }\n var left = coords.left, top = coords.top;\n // First move into \"page\" coordinate system\n if (context == \"page\") {\n left -= pageScrollX(doc(cm));\n top -= pageScrollY(doc(cm));\n } else if (context == \"local\" || !context) {\n var localBox = cm.display.sizer.getBoundingClientRect();\n left += localBox.left;\n top += localBox.top;\n }\n\n var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();\n return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}\n }\n\n function charCoords(cm, pos, context, lineObj, bias) {\n if (!lineObj) { lineObj = getLine(cm.doc, pos.line); }\n return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context)\n }\n\n // Returns a box for a given cursor position, which may have an\n // 'other' property containing the position of the secondary cursor\n // on a bidi boundary.\n // A cursor Pos(line, char, \"before\") is on the same visual line as `char - 1`\n // and after `char - 1` in writing order of `char - 1`\n // A cursor Pos(line, char, \"after\") is on the same visual line as `char`\n // and before `char` in writing order of `char`\n // Examples (upper-case letters are RTL, lower-case are LTR):\n // Pos(0, 1, ...)\n // before after\n // ab a|b a|b\n // aB a|B aB|\n // Ab |Ab A|b\n // AB B|A B|A\n // Every position after the last character on a line is considered to stick\n // to the last character on the line.\n function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {\n lineObj = lineObj || getLine(cm.doc, pos.line);\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n function get(ch, right) {\n var m = measureCharPrepared(cm, preparedMeasure, ch, right ? \"right\" : \"left\", varHeight);\n if (right) { m.left = m.right; } else { m.right = m.left; }\n return intoCoordSystem(cm, lineObj, m, context)\n }\n var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky;\n if (ch >= lineObj.text.length) {\n ch = lineObj.text.length;\n sticky = \"before\";\n } else if (ch <= 0) {\n ch = 0;\n sticky = \"after\";\n }\n if (!order) { return get(sticky == \"before\" ? ch - 1 : ch, sticky == \"before\") }\n\n function getBidi(ch, partPos, invert) {\n var part = order[partPos], right = part.level == 1;\n return get(invert ? ch - 1 : ch, right != invert)\n }\n var partPos = getBidiPartAt(order, ch, sticky);\n var other = bidiOther;\n var val = getBidi(ch, partPos, sticky == \"before\");\n if (other != null) { val.other = getBidi(ch, other, sticky != \"before\"); }\n return val\n }\n\n // Used to cheaply estimate the coordinates for a position. Used for\n // intermediate scroll updates.\n function estimateCoords(cm, pos) {\n var left = 0;\n pos = clipPos(cm.doc, pos);\n if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; }\n var lineObj = getLine(cm.doc, pos.line);\n var top = heightAtLine(lineObj) + paddingTop(cm.display);\n return {left: left, right: left, top: top, bottom: top + lineObj.height}\n }\n\n // Positions returned by coordsChar contain some extra information.\n // xRel is the relative x position of the input coordinates compared\n // to the found position (so xRel > 0 means the coordinates are to\n // the right of the character position, for example). When outside\n // is true, that means the coordinates lie outside the line's\n // vertical range.\n function PosWithInfo(line, ch, sticky, outside, xRel) {\n var pos = Pos(line, ch, sticky);\n pos.xRel = xRel;\n if (outside) { pos.outside = outside; }\n return pos\n }\n\n // Compute the character position closest to the given coordinates.\n // Input must be lineSpace-local (\"div\" coordinate system).\n function coordsChar(cm, x, y) {\n var doc = cm.doc;\n y += cm.display.viewOffset;\n if (y < 0) { return PosWithInfo(doc.first, 0, null, -1, -1) }\n var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;\n if (lineN > last)\n { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1) }\n if (x < 0) { x = 0; }\n\n var lineObj = getLine(doc, lineN);\n for (;;) {\n var found = coordsCharInner(cm, lineObj, lineN, x, y);\n var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0));\n if (!collapsed) { return found }\n var rangeEnd = collapsed.find(1);\n if (rangeEnd.line == lineN) { return rangeEnd }\n lineObj = getLine(doc, lineN = rangeEnd.line);\n }\n }\n\n function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {\n y -= widgetTopHeight(lineObj);\n var end = lineObj.text.length;\n var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);\n end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);\n return {begin: begin, end: end}\n }\n\n function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), \"line\").top;\n return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)\n }\n\n // Returns true if the given side of a box is after the given\n // coordinates, in top-to-bottom, left-to-right order.\n function boxIsAfter(box, x, y, left) {\n return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x\n }\n\n function coordsCharInner(cm, lineObj, lineNo, x, y) {\n // Move y into line-local coordinate space\n y -= heightAtLine(lineObj);\n var preparedMeasure = prepareMeasureForLine(cm, lineObj);\n // When directly calling `measureCharPrepared`, we have to adjust\n // for the widgets at this line.\n var widgetHeight = widgetTopHeight(lineObj);\n var begin = 0, end = lineObj.text.length, ltr = true;\n\n var order = getOrder(lineObj, cm.doc.direction);\n // If the line isn't plain left-to-right text, first figure out\n // which bidi section the coordinates fall into.\n if (order) {\n var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)\n (cm, lineObj, lineNo, preparedMeasure, order, x, y);\n ltr = part.level != 1;\n // The awkward -1 offsets are needed because findFirst (called\n // on these below) will treat its first bound as inclusive,\n // second as exclusive, but we want to actually address the\n // characters in the part's range\n begin = ltr ? part.from : part.to - 1;\n end = ltr ? part.to : part.from - 1;\n }\n\n // A binary search to find the first character whose bounding box\n // starts after the coordinates. If we run across any whose box wrap\n // the coordinates, store that.\n var chAround = null, boxAround = null;\n var ch = findFirst(function (ch) {\n var box = measureCharPrepared(cm, preparedMeasure, ch);\n box.top += widgetHeight; box.bottom += widgetHeight;\n if (!boxIsAfter(box, x, y, false)) { return false }\n if (box.top <= y && box.left <= x) {\n chAround = ch;\n boxAround = box;\n }\n return true\n }, begin, end);\n\n var baseX, sticky, outside = false;\n // If a box around the coordinates was found, use that\n if (boxAround) {\n // Distinguish coordinates nearer to the left or right side of the box\n var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;\n ch = chAround + (atStart ? 0 : 1);\n sticky = atStart ? \"after\" : \"before\";\n baseX = atLeft ? boxAround.left : boxAround.right;\n } else {\n // (Adjust for extended bound, if necessary.)\n if (!ltr && (ch == end || ch == begin)) { ch++; }\n // To determine which side to associate with, get the box to the\n // left of the character and compare it's vertical position to the\n // coordinates\n sticky = ch == 0 ? \"after\" : ch == lineObj.text.length ? \"before\" :\n (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight <= y) == ltr ?\n \"after\" : \"before\";\n // Now get accurate coordinates for this place, in order to get a\n // base X position\n var coords = cursorCoords(cm, Pos(lineNo, ch, sticky), \"line\", lineObj, preparedMeasure);\n baseX = coords.left;\n outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0;\n }\n\n ch = skipExtendingChars(lineObj.text, ch, 1);\n return PosWithInfo(lineNo, ch, sticky, outside, x - baseX)\n }\n\n function coordsBidiPart(cm, lineObj, lineNo, preparedMeasure, order, x, y) {\n // Bidi parts are sorted left-to-right, and in a non-line-wrapping\n // situation, we can take this ordering to correspond to the visual\n // ordering. This finds the first part whose end is after the given\n // coordinates.\n var index = findFirst(function (i) {\n var part = order[i], ltr = part.level != 1;\n return boxIsAfter(cursorCoords(cm, Pos(lineNo, ltr ? part.to : part.from, ltr ? \"before\" : \"after\"),\n \"line\", lineObj, preparedMeasure), x, y, true)\n }, 0, order.length - 1);\n var part = order[index];\n // If this isn't the first part, the part's start is also after\n // the coordinates, and the coordinates aren't on the same line as\n // that start, move one part back.\n if (index > 0) {\n var ltr = part.level != 1;\n var start = cursorCoords(cm, Pos(lineNo, ltr ? part.from : part.to, ltr ? \"after\" : \"before\"),\n \"line\", lineObj, preparedMeasure);\n if (boxIsAfter(start, x, y, true) && start.top > y)\n { part = order[index - 1]; }\n }\n return part\n }\n\n function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {\n // In a wrapped line, rtl text on wrapping boundaries can do things\n // that don't correspond to the ordering in our `order` array at\n // all, so a binary search doesn't work, and we want to return a\n // part that only spans one line so that the binary search in\n // coordsCharInner is safe. As such, we first find the extent of the\n // wrapped line, and then do a flat search in which we discard any\n // spans that aren't on the line.\n var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);\n var begin = ref.begin;\n var end = ref.end;\n if (/\\s/.test(lineObj.text.charAt(end - 1))) { end--; }\n var part = null, closestDist = null;\n for (var i = 0; i < order.length; i++) {\n var p = order[i];\n if (p.from >= end || p.to <= begin) { continue }\n var ltr = p.level != 1;\n var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;\n // Weigh against spans ending before this, so that they are only\n // picked if nothing ends after\n var dist = endX < x ? x - endX + 1e9 : endX - x;\n if (!part || closestDist > dist) {\n part = p;\n closestDist = dist;\n }\n }\n if (!part) { part = order[order.length - 1]; }\n // Clip the part to the wrapped line.\n if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }\n if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }\n return part\n }\n\n var measureText;\n // Compute the default text height.\n function textHeight(display) {\n if (display.cachedTextHeight != null) { return display.cachedTextHeight }\n if (measureText == null) {\n measureText = elt(\"pre\", null, \"CodeMirror-line-like\");\n // Measure a bunch of lines, for browsers that compute\n // fractional heights.\n for (var i = 0; i < 49; ++i) {\n measureText.appendChild(document.createTextNode(\"x\"));\n measureText.appendChild(elt(\"br\"));\n }\n measureText.appendChild(document.createTextNode(\"x\"));\n }\n removeChildrenAndAdd(display.measure, measureText);\n var height = measureText.offsetHeight / 50;\n if (height > 3) { display.cachedTextHeight = height; }\n removeChildren(display.measure);\n return height || 1\n }\n\n // Compute the default character width.\n function charWidth(display) {\n if (display.cachedCharWidth != null) { return display.cachedCharWidth }\n var anchor = elt(\"span\", \"xxxxxxxxxx\");\n var pre = elt(\"pre\", [anchor], \"CodeMirror-line-like\");\n removeChildrenAndAdd(display.measure, pre);\n var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;\n if (width > 2) { display.cachedCharWidth = width; }\n return width || 10\n }\n\n // Do a bulk-read of the DOM positions and sizes needed to draw the\n // view, so that we don't interleave reading and writing to the DOM.\n function getDimensions(cm) {\n var d = cm.display, left = {}, width = {};\n var gutterLeft = d.gutters.clientLeft;\n for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {\n var id = cm.display.gutterSpecs[i].className;\n left[id] = n.offsetLeft + n.clientLeft + gutterLeft;\n width[id] = n.clientWidth;\n }\n return {fixedPos: compensateForHScroll(d),\n gutterTotalWidth: d.gutters.offsetWidth,\n gutterLeft: left,\n gutterWidth: width,\n wrapperWidth: d.wrapper.clientWidth}\n }\n\n // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,\n // but using getBoundingClientRect to get a sub-pixel-accurate\n // result.\n function compensateForHScroll(display) {\n return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left\n }\n\n // Returns a function that estimates the height of a line, to use as\n // first approximation until the line becomes visible (and is thus\n // properly measurable).\n function estimateHeight(cm) {\n var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;\n var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);\n return function (line) {\n if (lineIsHidden(cm.doc, line)) { return 0 }\n\n var widgetsHeight = 0;\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) {\n if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; }\n } }\n\n if (wrapping)\n { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th }\n else\n { return widgetsHeight + th }\n }\n }\n\n function estimateLineHeights(cm) {\n var doc = cm.doc, est = estimateHeight(cm);\n doc.iter(function (line) {\n var estHeight = est(line);\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n });\n }\n\n // Given a mouse event, find the corresponding position. If liberal\n // is false, it checks whether a gutter or scrollbar was clicked,\n // and returns null if it was. forRect is used by rectangular\n // selections, and tries to estimate a character position even for\n // coordinates beyond the right of the text.\n function posFromMouse(cm, e, liberal, forRect) {\n var display = cm.display;\n if (!liberal && e_target(e).getAttribute(\"cm-not-content\") == \"true\") { return null }\n\n var x, y, space = display.lineSpace.getBoundingClientRect();\n // Fails unpredictably on IE[67] when mouse is dragged around quickly.\n try { x = e.clientX - space.left; y = e.clientY - space.top; }\n catch (e$1) { return null }\n var coords = coordsChar(cm, x, y), line;\n if (forRect && coords.xRel > 0 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {\n var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;\n coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));\n }\n return coords\n }\n\n // Find the view element corresponding to a given line. Return null\n // when the line isn't visible.\n function findViewIndex(cm, n) {\n if (n >= cm.display.viewTo) { return null }\n n -= cm.display.viewFrom;\n if (n < 0) { return null }\n var view = cm.display.view;\n for (var i = 0; i < view.length; i++) {\n n -= view[i].size;\n if (n < 0) { return i }\n }\n }\n\n // Updates the display.view data structure for a given change to the\n // document. From and to are in pre-change coordinates. Lendiff is\n // the amount of lines added or subtracted by the change. This is\n // used for changes that span multiple lines, or change the way\n // lines are divided into visual lines. regLineChange (below)\n // registers single-line changes.\n function regChange(cm, from, to, lendiff) {\n if (from == null) { from = cm.doc.first; }\n if (to == null) { to = cm.doc.first + cm.doc.size; }\n if (!lendiff) { lendiff = 0; }\n\n var display = cm.display;\n if (lendiff && to < display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers > from))\n { display.updateLineNumbers = from; }\n\n cm.curOp.viewChanged = true;\n\n if (from >= display.viewTo) { // Change after\n if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)\n { resetView(cm); }\n } else if (to <= display.viewFrom) { // Change before\n if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {\n resetView(cm);\n } else {\n display.viewFrom += lendiff;\n display.viewTo += lendiff;\n }\n } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap\n resetView(cm);\n } else if (from <= display.viewFrom) { // Top overlap\n var cut = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cut) {\n display.view = display.view.slice(cut.index);\n display.viewFrom = cut.lineN;\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n } else if (to >= display.viewTo) { // Bottom overlap\n var cut$1 = viewCuttingPoint(cm, from, from, -1);\n if (cut$1) {\n display.view = display.view.slice(0, cut$1.index);\n display.viewTo = cut$1.lineN;\n } else {\n resetView(cm);\n }\n } else { // Gap in the middle\n var cutTop = viewCuttingPoint(cm, from, from, -1);\n var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cutTop && cutBot) {\n display.view = display.view.slice(0, cutTop.index)\n .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))\n .concat(display.view.slice(cutBot.index));\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n }\n\n var ext = display.externalMeasured;\n if (ext) {\n if (to < ext.lineN)\n { ext.lineN += lendiff; }\n else if (from < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n }\n }\n\n // Register a change to a single line. Type must be one of \"text\",\n // \"gutter\", \"class\", \"widget\"\n function regLineChange(cm, line, type) {\n cm.curOp.viewChanged = true;\n var display = cm.display, ext = cm.display.externalMeasured;\n if (ext && line >= ext.lineN && line < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n\n if (line < display.viewFrom || line >= display.viewTo) { return }\n var lineView = display.view[findViewIndex(cm, line)];\n if (lineView.node == null) { return }\n var arr = lineView.changes || (lineView.changes = []);\n if (indexOf(arr, type) == -1) { arr.push(type); }\n }\n\n // Clear the view.\n function resetView(cm) {\n cm.display.viewFrom = cm.display.viewTo = cm.doc.first;\n cm.display.view = [];\n cm.display.viewOffset = 0;\n }\n\n function viewCuttingPoint(cm, oldN, newN, dir) {\n var index = findViewIndex(cm, oldN), diff, view = cm.display.view;\n if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)\n { return {index: index, lineN: newN} }\n var n = cm.display.viewFrom;\n for (var i = 0; i < index; i++)\n { n += view[i].size; }\n if (n != oldN) {\n if (dir > 0) {\n if (index == view.length - 1) { return null }\n diff = (n + view[index].size) - oldN;\n index++;\n } else {\n diff = n - oldN;\n }\n oldN += diff; newN += diff;\n }\n while (visualLineNo(cm.doc, newN) != newN) {\n if (index == (dir < 0 ? 0 : view.length - 1)) { return null }\n newN += dir * view[index - (dir < 0 ? 1 : 0)].size;\n index += dir;\n }\n return {index: index, lineN: newN}\n }\n\n // Force the view to cover a given range, adding empty view element\n // or clipping off existing ones as needed.\n function adjustView(cm, from, to) {\n var display = cm.display, view = display.view;\n if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {\n display.view = buildViewArray(cm, from, to);\n display.viewFrom = from;\n } else {\n if (display.viewFrom > from)\n { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); }\n else if (display.viewFrom < from)\n { display.view = display.view.slice(findViewIndex(cm, from)); }\n display.viewFrom = from;\n if (display.viewTo < to)\n { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); }\n else if (display.viewTo > to)\n { display.view = display.view.slice(0, findViewIndex(cm, to)); }\n }\n display.viewTo = to;\n }\n\n // Count the number of lines in the view whose DOM representation is\n // out of date (or nonexistent).\n function countDirtyView(cm) {\n var view = cm.display.view, dirty = 0;\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; }\n }\n return dirty\n }\n\n function updateSelection(cm) {\n cm.display.input.showSelection(cm.display.input.prepareSelection());\n }\n\n function prepareSelection(cm, primary) {\n if ( primary === void 0 ) primary = true;\n\n var doc = cm.doc, result = {};\n var curFragment = result.cursors = document.createDocumentFragment();\n var selFragment = result.selection = document.createDocumentFragment();\n\n var customCursor = cm.options.$customCursor;\n if (customCursor) { primary = true; }\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n if (!primary && i == doc.sel.primIndex) { continue }\n var range = doc.sel.ranges[i];\n if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue }\n var collapsed = range.empty();\n if (customCursor) {\n var head = customCursor(cm, range);\n if (head) { drawSelectionCursor(cm, head, curFragment); }\n } else if (collapsed || cm.options.showCursorWhenSelecting) {\n drawSelectionCursor(cm, range.head, curFragment);\n }\n if (!collapsed)\n { drawSelectionRange(cm, range, selFragment); }\n }\n return result\n }\n\n // Draws a cursor for the given range\n function drawSelectionCursor(cm, head, output) {\n var pos = cursorCoords(cm, head, \"div\", null, null, !cm.options.singleCursorHeightPerLine);\n\n var cursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor\"));\n cursor.style.left = pos.left + \"px\";\n cursor.style.top = pos.top + \"px\";\n cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + \"px\";\n\n if (/\\bcm-fat-cursor\\b/.test(cm.getWrapperElement().className)) {\n var charPos = charCoords(cm, head, \"div\", null, null);\n var width = charPos.right - charPos.left;\n cursor.style.width = (width > 0 ? width : cm.defaultCharWidth()) + \"px\";\n }\n\n if (pos.other) {\n // Secondary cursor, shown when on a 'jump' in bi-directional text\n var otherCursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor CodeMirror-secondarycursor\"));\n otherCursor.style.display = \"\";\n otherCursor.style.left = pos.other.left + \"px\";\n otherCursor.style.top = pos.other.top + \"px\";\n otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + \"px\";\n }\n }\n\n function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }\n\n // Draws the given range as a highlighted selection\n function drawSelectionRange(cm, range, output) {\n var display = cm.display, doc = cm.doc;\n var fragment = document.createDocumentFragment();\n var padding = paddingH(cm.display), leftSide = padding.left;\n var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;\n var docLTR = doc.direction == \"ltr\";\n\n function add(left, top, width, bottom) {\n if (top < 0) { top = 0; }\n top = Math.round(top);\n bottom = Math.round(bottom);\n fragment.appendChild(elt(\"div\", null, \"CodeMirror-selected\", (\"position: absolute; left: \" + left + \"px;\\n top: \" + top + \"px; width: \" + (width == null ? rightSide - left : width) + \"px;\\n height: \" + (bottom - top) + \"px\")));\n }\n\n function drawForLine(line, fromArg, toArg) {\n var lineObj = getLine(doc, line);\n var lineLen = lineObj.text.length;\n var start, end;\n function coords(ch, bias) {\n return charCoords(cm, Pos(line, ch), \"div\", lineObj, bias)\n }\n\n function wrapX(pos, dir, side) {\n var extent = wrappedLineExtentChar(cm, lineObj, null, pos);\n var prop = (dir == \"ltr\") == (side == \"after\") ? \"left\" : \"right\";\n var ch = side == \"after\" ? extent.begin : extent.end - (/\\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);\n return coords(ch, prop)[prop]\n }\n\n var order = getOrder(lineObj, doc.direction);\n iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {\n var ltr = dir == \"ltr\";\n var fromPos = coords(from, ltr ? \"left\" : \"right\");\n var toPos = coords(to - 1, ltr ? \"right\" : \"left\");\n\n var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;\n var first = i == 0, last = !order || i == order.length - 1;\n if (toPos.top - fromPos.top <= 3) { // Single line\n var openLeft = (docLTR ? openStart : openEnd) && first;\n var openRight = (docLTR ? openEnd : openStart) && last;\n var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;\n var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;\n add(left, fromPos.top, right - left, fromPos.bottom);\n } else { // Multiple lines\n var topLeft, topRight, botLeft, botRight;\n if (ltr) {\n topLeft = docLTR && openStart && first ? leftSide : fromPos.left;\n topRight = docLTR ? rightSide : wrapX(from, dir, \"before\");\n botLeft = docLTR ? leftSide : wrapX(to, dir, \"after\");\n botRight = docLTR && openEnd && last ? rightSide : toPos.right;\n } else {\n topLeft = !docLTR ? leftSide : wrapX(from, dir, \"before\");\n topRight = !docLTR && openStart && first ? rightSide : fromPos.right;\n botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;\n botRight = !docLTR ? rightSide : wrapX(to, dir, \"after\");\n }\n add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);\n if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }\n add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);\n }\n\n if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }\n if (cmpCoords(toPos, start) < 0) { start = toPos; }\n if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }\n if (cmpCoords(toPos, end) < 0) { end = toPos; }\n });\n return {start: start, end: end}\n }\n\n var sFrom = range.from(), sTo = range.to();\n if (sFrom.line == sTo.line) {\n drawForLine(sFrom.line, sFrom.ch, sTo.ch);\n } else {\n var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);\n var singleVLine = visualLine(fromLine) == visualLine(toLine);\n var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;\n var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;\n if (singleVLine) {\n if (leftEnd.top < rightStart.top - 2) {\n add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);\n add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);\n } else {\n add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);\n }\n }\n if (leftEnd.bottom < rightStart.top)\n { add(leftSide, leftEnd.bottom, null, rightStart.top); }\n }\n\n output.appendChild(fragment);\n }\n\n // Cursor-blinking\n function restartBlink(cm) {\n if (!cm.state.focused) { return }\n var display = cm.display;\n clearInterval(display.blinker);\n var on = true;\n display.cursorDiv.style.visibility = \"\";\n if (cm.options.cursorBlinkRate > 0)\n { display.blinker = setInterval(function () {\n if (!cm.hasFocus()) { onBlur(cm); }\n display.cursorDiv.style.visibility = (on = !on) ? \"\" : \"hidden\";\n }, cm.options.cursorBlinkRate); }\n else if (cm.options.cursorBlinkRate < 0)\n { display.cursorDiv.style.visibility = \"hidden\"; }\n }\n\n function ensureFocus(cm) {\n if (!cm.hasFocus()) {\n cm.display.input.focus();\n if (!cm.state.focused) { onFocus(cm); }\n }\n }\n\n function delayBlurEvent(cm) {\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { if (cm.state.delayingBlurEvent) {\n cm.state.delayingBlurEvent = false;\n if (cm.state.focused) { onBlur(cm); }\n } }, 100);\n }\n\n function onFocus(cm, e) {\n if (cm.state.delayingBlurEvent && !cm.state.draggingText) { cm.state.delayingBlurEvent = false; }\n\n if (cm.options.readOnly == \"nocursor\") { return }\n if (!cm.state.focused) {\n signal(cm, \"focus\", cm, e);\n cm.state.focused = true;\n addClass(cm.display.wrapper, \"CodeMirror-focused\");\n // This test prevents this from firing when a context\n // menu is closed (since the input reset would kill the\n // select-all detection hack)\n if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {\n cm.display.input.reset();\n if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730\n }\n cm.display.input.receivedFocus();\n }\n restartBlink(cm);\n }\n function onBlur(cm, e) {\n if (cm.state.delayingBlurEvent) { return }\n\n if (cm.state.focused) {\n signal(cm, \"blur\", cm, e);\n cm.state.focused = false;\n rmClass(cm.display.wrapper, \"CodeMirror-focused\");\n }\n clearInterval(cm.display.blinker);\n setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);\n }\n\n // Read the actual heights of the rendered lines, and update their\n // stored heights to match.\n function updateHeightsInViewport(cm) {\n var display = cm.display;\n var prevBottom = display.lineDiv.offsetTop;\n var viewTop = Math.max(0, display.scroller.getBoundingClientRect().top);\n var oldHeight = display.lineDiv.getBoundingClientRect().top;\n var mustScroll = 0;\n for (var i = 0; i < display.view.length; i++) {\n var cur = display.view[i], wrapping = cm.options.lineWrapping;\n var height = (void 0), width = 0;\n if (cur.hidden) { continue }\n oldHeight += cur.line.height;\n if (ie && ie_version < 8) {\n var bot = cur.node.offsetTop + cur.node.offsetHeight;\n height = bot - prevBottom;\n prevBottom = bot;\n } else {\n var box = cur.node.getBoundingClientRect();\n height = box.bottom - box.top;\n // Check that lines don't extend past the right of the current\n // editor width\n if (!wrapping && cur.text.firstChild)\n { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; }\n }\n var diff = cur.line.height - height;\n if (diff > .005 || diff < -.005) {\n if (oldHeight < viewTop) { mustScroll -= diff; }\n updateLineHeight(cur.line, height);\n updateWidgetHeight(cur.line);\n if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)\n { updateWidgetHeight(cur.rest[j]); } }\n }\n if (width > cm.display.sizerWidth) {\n var chWidth = Math.ceil(width / charWidth(cm.display));\n if (chWidth > cm.display.maxLineLength) {\n cm.display.maxLineLength = chWidth;\n cm.display.maxLine = cur.line;\n cm.display.maxLineChanged = true;\n }\n }\n }\n if (Math.abs(mustScroll) > 2) { display.scroller.scrollTop += mustScroll; }\n }\n\n // Read and store the height of line widgets associated with the\n // given line.\n function updateWidgetHeight(line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {\n var w = line.widgets[i], parent = w.node.parentNode;\n if (parent) { w.height = parent.offsetHeight; }\n } }\n }\n\n // Compute the lines that are visible in a given viewport (defaults\n // the the current scroll position). viewport may contain top,\n // height, and ensure (see op.scrollToPos) properties.\n function visibleLines(display, doc, viewport) {\n var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;\n top = Math.floor(top - paddingTop(display));\n var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;\n\n var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);\n // Ensure is a {from: {line, ch}, to: {line, ch}} object, and\n // forces those lines into the viewport (if possible).\n if (viewport && viewport.ensure) {\n var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;\n if (ensureFrom < from) {\n from = ensureFrom;\n to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);\n } else if (Math.min(ensureTo, doc.lastLine()) >= to) {\n from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);\n to = ensureTo;\n }\n }\n return {from: from, to: Math.max(to, from + 1)}\n }\n\n // SCROLLING THINGS INTO VIEW\n\n // If an editor sits on the top or bottom of the window, partially\n // scrolled out of view, this ensures that the cursor is visible.\n function maybeScrollWindow(cm, rect) {\n if (signalDOMEvent(cm, \"scrollCursorIntoView\")) { return }\n\n var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;\n var doc = display.wrapper.ownerDocument;\n if (rect.top + box.top < 0) { doScroll = true; }\n else if (rect.bottom + box.top > (doc.defaultView.innerHeight || doc.documentElement.clientHeight)) { doScroll = false; }\n if (doScroll != null && !phantom) {\n var scrollNode = elt(\"div\", \"\\u200b\", null, (\"position: absolute;\\n top: \" + (rect.top - display.viewOffset - paddingTop(cm.display)) + \"px;\\n height: \" + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + \"px;\\n left: \" + (rect.left) + \"px; width: \" + (Math.max(2, rect.right - rect.left)) + \"px;\"));\n cm.display.lineSpace.appendChild(scrollNode);\n scrollNode.scrollIntoView(doScroll);\n cm.display.lineSpace.removeChild(scrollNode);\n }\n }\n\n // Scroll a given position into view (immediately), verifying that\n // it actually became visible (as line heights are accurately\n // measured, the position of something may 'drift' during drawing).\n function scrollPosIntoView(cm, pos, end, margin) {\n if (margin == null) { margin = 0; }\n var rect;\n if (!cm.options.lineWrapping && pos == end) {\n // Set pos and end to the cursor positions around the character pos sticks to\n // If pos.sticky == \"before\", that is around pos.ch - 1, otherwise around pos.ch\n // If pos == Pos(_, 0, \"before\"), pos and end are unchanged\n end = pos.sticky == \"before\" ? Pos(pos.line, pos.ch + 1, \"before\") : pos;\n pos = pos.ch ? Pos(pos.line, pos.sticky == \"before\" ? pos.ch - 1 : pos.ch, \"after\") : pos;\n }\n for (var limit = 0; limit < 5; limit++) {\n var changed = false;\n var coords = cursorCoords(cm, pos);\n var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);\n rect = {left: Math.min(coords.left, endCoords.left),\n top: Math.min(coords.top, endCoords.top) - margin,\n right: Math.max(coords.left, endCoords.left),\n bottom: Math.max(coords.bottom, endCoords.bottom) + margin};\n var scrollPos = calculateScrollPos(cm, rect);\n var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;\n if (scrollPos.scrollTop != null) {\n updateScrollTop(cm, scrollPos.scrollTop);\n if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }\n }\n if (scrollPos.scrollLeft != null) {\n setScrollLeft(cm, scrollPos.scrollLeft);\n if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }\n }\n if (!changed) { break }\n }\n return rect\n }\n\n // Scroll a given set of coordinates into view (immediately).\n function scrollIntoView(cm, rect) {\n var scrollPos = calculateScrollPos(cm, rect);\n if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); }\n if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }\n }\n\n // Calculate a new scroll position needed to scroll the given\n // rectangle into view. Returns an object with scrollTop and\n // scrollLeft properties. When these are undefined, the\n // vertical/horizontal position does not need to be adjusted.\n function calculateScrollPos(cm, rect) {\n var display = cm.display, snapMargin = textHeight(cm.display);\n if (rect.top < 0) { rect.top = 0; }\n var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;\n var screen = displayHeight(cm), result = {};\n if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }\n var docBottom = cm.doc.height + paddingVert(display);\n var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;\n if (rect.top < screentop) {\n result.scrollTop = atTop ? 0 : rect.top;\n } else if (rect.bottom > screentop + screen) {\n var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);\n if (newTop != screentop) { result.scrollTop = newTop; }\n }\n\n var gutterSpace = cm.options.fixedGutter ? 0 : display.gutters.offsetWidth;\n var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft - gutterSpace;\n var screenw = displayWidth(cm) - display.gutters.offsetWidth;\n var tooWide = rect.right - rect.left > screenw;\n if (tooWide) { rect.right = rect.left + screenw; }\n if (rect.left < 10)\n { result.scrollLeft = 0; }\n else if (rect.left < screenleft)\n { result.scrollLeft = Math.max(0, rect.left + gutterSpace - (tooWide ? 0 : 10)); }\n else if (rect.right > screenw + screenleft - 3)\n { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }\n return result\n }\n\n // Store a relative adjustment to the scroll position in the current\n // operation (to be applied when the operation finishes).\n function addToScrollTop(cm, top) {\n if (top == null) { return }\n resolveScrollToPos(cm);\n cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;\n }\n\n // Make sure that at the end of the operation the current cursor is\n // shown.\n function ensureCursorVisible(cm) {\n resolveScrollToPos(cm);\n var cur = cm.getCursor();\n cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin};\n }\n\n function scrollToCoords(cm, x, y) {\n if (x != null || y != null) { resolveScrollToPos(cm); }\n if (x != null) { cm.curOp.scrollLeft = x; }\n if (y != null) { cm.curOp.scrollTop = y; }\n }\n\n function scrollToRange(cm, range) {\n resolveScrollToPos(cm);\n cm.curOp.scrollToPos = range;\n }\n\n // When an operation has its scrollToPos property set, and another\n // scroll action is applied before the end of the operation, this\n // 'simulates' scrolling that position into view in a cheap way, so\n // that the effect of intermediate scroll commands is not ignored.\n function resolveScrollToPos(cm) {\n var range = cm.curOp.scrollToPos;\n if (range) {\n cm.curOp.scrollToPos = null;\n var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);\n scrollToCoordsRange(cm, from, to, range.margin);\n }\n }\n\n function scrollToCoordsRange(cm, from, to, margin) {\n var sPos = calculateScrollPos(cm, {\n left: Math.min(from.left, to.left),\n top: Math.min(from.top, to.top) - margin,\n right: Math.max(from.right, to.right),\n bottom: Math.max(from.bottom, to.bottom) + margin\n });\n scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop);\n }\n\n // Sync the scrollable area and scrollbars, ensure the viewport\n // covers the visible area.\n function updateScrollTop(cm, val) {\n if (Math.abs(cm.doc.scrollTop - val) < 2) { return }\n if (!gecko) { updateDisplaySimple(cm, {top: val}); }\n setScrollTop(cm, val, true);\n if (gecko) { updateDisplaySimple(cm); }\n startWorker(cm, 100);\n }\n\n function setScrollTop(cm, val, forceScroll) {\n val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val));\n if (cm.display.scroller.scrollTop == val && !forceScroll) { return }\n cm.doc.scrollTop = val;\n cm.display.scrollbars.setScrollTop(val);\n if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }\n }\n\n // Sync scroller and scrollbar, ensure the gutter elements are\n // aligned.\n function setScrollLeft(cm, val, isScroller, forceScroll) {\n val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth));\n if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return }\n cm.doc.scrollLeft = val;\n alignHorizontally(cm);\n if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }\n cm.display.scrollbars.setScrollLeft(val);\n }\n\n // SCROLLBARS\n\n // Prepare DOM reads needed to update the scrollbars. Done in one\n // shot to minimize update/measure roundtrips.\n function measureForScrollbars(cm) {\n var d = cm.display, gutterW = d.gutters.offsetWidth;\n var docH = Math.round(cm.doc.height + paddingVert(cm.display));\n return {\n clientHeight: d.scroller.clientHeight,\n viewHeight: d.wrapper.clientHeight,\n scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,\n viewWidth: d.wrapper.clientWidth,\n barLeft: cm.options.fixedGutter ? gutterW : 0,\n docHeight: docH,\n scrollHeight: docH + scrollGap(cm) + d.barHeight,\n nativeBarWidth: d.nativeBarWidth,\n gutterWidth: gutterW\n }\n }\n\n var NativeScrollbars = function(place, scroll, cm) {\n this.cm = cm;\n var vert = this.vert = elt(\"div\", [elt(\"div\", null, null, \"min-width: 1px\")], \"CodeMirror-vscrollbar\");\n var horiz = this.horiz = elt(\"div\", [elt(\"div\", null, null, \"height: 100%; min-height: 1px\")], \"CodeMirror-hscrollbar\");\n vert.tabIndex = horiz.tabIndex = -1;\n place(vert); place(horiz);\n\n on(vert, \"scroll\", function () {\n if (vert.clientHeight) { scroll(vert.scrollTop, \"vertical\"); }\n });\n on(horiz, \"scroll\", function () {\n if (horiz.clientWidth) { scroll(horiz.scrollLeft, \"horizontal\"); }\n });\n\n this.checkedZeroWidth = false;\n // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).\n if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = \"18px\"; }\n };\n\n NativeScrollbars.prototype.update = function (measure) {\n var needsH = measure.scrollWidth > measure.clientWidth + 1;\n var needsV = measure.scrollHeight > measure.clientHeight + 1;\n var sWidth = measure.nativeBarWidth;\n\n if (needsV) {\n this.vert.style.display = \"block\";\n this.vert.style.bottom = needsH ? sWidth + \"px\" : \"0\";\n var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);\n // A bug in IE8 can cause this value to be negative, so guard it.\n this.vert.firstChild.style.height =\n Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + \"px\";\n } else {\n this.vert.scrollTop = 0;\n this.vert.style.display = \"\";\n this.vert.firstChild.style.height = \"0\";\n }\n\n if (needsH) {\n this.horiz.style.display = \"block\";\n this.horiz.style.right = needsV ? sWidth + \"px\" : \"0\";\n this.horiz.style.left = measure.barLeft + \"px\";\n var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);\n this.horiz.firstChild.style.width =\n Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + \"px\";\n } else {\n this.horiz.style.display = \"\";\n this.horiz.firstChild.style.width = \"0\";\n }\n\n if (!this.checkedZeroWidth && measure.clientHeight > 0) {\n if (sWidth == 0) { this.zeroWidthHack(); }\n this.checkedZeroWidth = true;\n }\n\n return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0}\n };\n\n NativeScrollbars.prototype.setScrollLeft = function (pos) {\n if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }\n if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, \"horiz\"); }\n };\n\n NativeScrollbars.prototype.setScrollTop = function (pos) {\n if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }\n if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, \"vert\"); }\n };\n\n NativeScrollbars.prototype.zeroWidthHack = function () {\n var w = mac && !mac_geMountainLion ? \"12px\" : \"18px\";\n this.horiz.style.height = this.vert.style.width = w;\n this.horiz.style.visibility = this.vert.style.visibility = \"hidden\";\n this.disableHoriz = new Delayed;\n this.disableVert = new Delayed;\n };\n\n NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) {\n bar.style.visibility = \"\";\n function maybeDisable() {\n // To find out whether the scrollbar is still visible, we\n // check whether the element under the pixel in the bottom\n // right corner of the scrollbar box is the scrollbar box\n // itself (when the bar is still visible) or its filler child\n // (when the bar is hidden). If it is still visible, we keep\n // it enabled, if it's hidden, we disable pointer events.\n var box = bar.getBoundingClientRect();\n var elt = type == \"vert\" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2)\n : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1);\n if (elt != bar) { bar.style.visibility = \"hidden\"; }\n else { delay.set(1000, maybeDisable); }\n }\n delay.set(1000, maybeDisable);\n };\n\n NativeScrollbars.prototype.clear = function () {\n var parent = this.horiz.parentNode;\n parent.removeChild(this.horiz);\n parent.removeChild(this.vert);\n };\n\n var NullScrollbars = function () {};\n\n NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} };\n NullScrollbars.prototype.setScrollLeft = function () {};\n NullScrollbars.prototype.setScrollTop = function () {};\n NullScrollbars.prototype.clear = function () {};\n\n function updateScrollbars(cm, measure) {\n if (!measure) { measure = measureForScrollbars(cm); }\n var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;\n updateScrollbarsInner(cm, measure);\n for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {\n if (startWidth != cm.display.barWidth && cm.options.lineWrapping)\n { updateHeightsInViewport(cm); }\n updateScrollbarsInner(cm, measureForScrollbars(cm));\n startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;\n }\n }\n\n // Re-synchronize the fake scrollbars with the actual size of the\n // content.\n function updateScrollbarsInner(cm, measure) {\n var d = cm.display;\n var sizes = d.scrollbars.update(measure);\n\n d.sizer.style.paddingRight = (d.barWidth = sizes.right) + \"px\";\n d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + \"px\";\n d.heightForcer.style.borderBottom = sizes.bottom + \"px solid transparent\";\n\n if (sizes.right && sizes.bottom) {\n d.scrollbarFiller.style.display = \"block\";\n d.scrollbarFiller.style.height = sizes.bottom + \"px\";\n d.scrollbarFiller.style.width = sizes.right + \"px\";\n } else { d.scrollbarFiller.style.display = \"\"; }\n if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {\n d.gutterFiller.style.display = \"block\";\n d.gutterFiller.style.height = sizes.bottom + \"px\";\n d.gutterFiller.style.width = measure.gutterWidth + \"px\";\n } else { d.gutterFiller.style.display = \"\"; }\n }\n\n var scrollbarModel = {\"native\": NativeScrollbars, \"null\": NullScrollbars};\n\n function initScrollbars(cm) {\n if (cm.display.scrollbars) {\n cm.display.scrollbars.clear();\n if (cm.display.scrollbars.addClass)\n { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) {\n cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);\n // Prevent clicks in the scrollbars from killing focus\n on(node, \"mousedown\", function () {\n if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); }\n });\n node.setAttribute(\"cm-not-content\", \"true\");\n }, function (pos, axis) {\n if (axis == \"horizontal\") { setScrollLeft(cm, pos); }\n else { updateScrollTop(cm, pos); }\n }, cm);\n if (cm.display.scrollbars.addClass)\n { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n // Operations are used to wrap a series of changes to the editor\n // state in such a way that each change won't have to update the\n // cursor and display (which would be awkward, slow, and\n // error-prone). Instead, display updates are batched and then all\n // combined and executed at once.\n\n var nextOpId = 0;\n // Start a new operation.\n function startOperation(cm) {\n cm.curOp = {\n cm: cm,\n viewChanged: false, // Flag that indicates that lines might need to be redrawn\n startHeight: cm.doc.height, // Used to detect need to update scrollbar\n forceUpdate: false, // Used to force a redraw\n updateInput: 0, // Whether to reset the input textarea\n typing: false, // Whether this reset should be careful to leave existing text (for compositing)\n changeObjs: null, // Accumulated changes, for firing change events\n cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on\n cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already\n selectionChanged: false, // Whether the selection needs to be redrawn\n updateMaxLine: false, // Set when the widest line needs to be determined anew\n scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet\n scrollToPos: null, // Used to scroll to a specific position\n focus: false,\n id: ++nextOpId, // Unique ID\n markArrays: null // Used by addMarkedSpan\n };\n pushOperation(cm.curOp);\n }\n\n // Finish an operation, updating the display and signalling delayed events\n function endOperation(cm) {\n var op = cm.curOp;\n if (op) { finishOperation(op, function (group) {\n for (var i = 0; i < group.ops.length; i++)\n { group.ops[i].cm.curOp = null; }\n endOperations(group);\n }); }\n }\n\n // The DOM updates done when an operation finishes are batched so\n // that the minimum number of relayouts are required.\n function endOperations(group) {\n var ops = group.ops;\n for (var i = 0; i < ops.length; i++) // Read DOM\n { endOperation_R1(ops[i]); }\n for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe)\n { endOperation_W1(ops[i$1]); }\n for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM\n { endOperation_R2(ops[i$2]); }\n for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe)\n { endOperation_W2(ops[i$3]); }\n for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM\n { endOperation_finish(ops[i$4]); }\n }\n\n function endOperation_R1(op) {\n var cm = op.cm, display = cm.display;\n maybeClipScrollbars(cm);\n if (op.updateMaxLine) { findMaxLine(cm); }\n\n op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||\n op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||\n op.scrollToPos.to.line >= display.viewTo) ||\n display.maxLineChanged && cm.options.lineWrapping;\n op.update = op.mustUpdate &&\n new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);\n }\n\n function endOperation_W1(op) {\n op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);\n }\n\n function endOperation_R2(op) {\n var cm = op.cm, display = cm.display;\n if (op.updatedDisplay) { updateHeightsInViewport(cm); }\n\n op.barMeasure = measureForScrollbars(cm);\n\n // If the max line changed since it was last measured, measure it,\n // and ensure the document's width matches it.\n // updateDisplay_W2 will use these properties to do the actual resizing\n if (display.maxLineChanged && !cm.options.lineWrapping) {\n op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;\n cm.display.sizerWidth = op.adjustWidthTo;\n op.barMeasure.scrollWidth =\n Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);\n op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));\n }\n\n if (op.updatedDisplay || op.selectionChanged)\n { op.preparedSelection = display.input.prepareSelection(); }\n }\n\n function endOperation_W2(op) {\n var cm = op.cm;\n\n if (op.adjustWidthTo != null) {\n cm.display.sizer.style.minWidth = op.adjustWidthTo + \"px\";\n if (op.maxScrollLeft < cm.doc.scrollLeft)\n { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); }\n cm.display.maxLineChanged = false;\n }\n\n var takeFocus = op.focus && op.focus == activeElt(root(cm));\n if (op.preparedSelection)\n { cm.display.input.showSelection(op.preparedSelection, takeFocus); }\n if (op.updatedDisplay || op.startHeight != cm.doc.height)\n { updateScrollbars(cm, op.barMeasure); }\n if (op.updatedDisplay)\n { setDocumentHeight(cm, op.barMeasure); }\n\n if (op.selectionChanged) { restartBlink(cm); }\n\n if (cm.state.focused && op.updateInput)\n { cm.display.input.reset(op.typing); }\n if (takeFocus) { ensureFocus(op.cm); }\n }\n\n function endOperation_finish(op) {\n var cm = op.cm, display = cm.display, doc = cm.doc;\n\n if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); }\n\n // Abort mouse wheel delta measurement, when scrolling explicitly\n if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))\n { display.wheelStartX = display.wheelStartY = null; }\n\n // Propagate the scroll position to the actual DOM scroller\n if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); }\n\n if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); }\n // If we need to scroll a specific position into view, do so.\n if (op.scrollToPos) {\n var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),\n clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);\n maybeScrollWindow(cm, rect);\n }\n\n // Fire events for markers that are hidden/unidden by editing or\n // undoing\n var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;\n if (hidden) { for (var i = 0; i < hidden.length; ++i)\n { if (!hidden[i].lines.length) { signal(hidden[i], \"hide\"); } } }\n if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1)\n { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], \"unhide\"); } } }\n\n if (display.wrapper.offsetHeight)\n { doc.scrollTop = cm.display.scroller.scrollTop; }\n\n // Fire change events, and delayed event handlers\n if (op.changeObjs)\n { signal(cm, \"changes\", cm, op.changeObjs); }\n if (op.update)\n { op.update.finish(); }\n }\n\n // Run the given function in an operation\n function runInOp(cm, f) {\n if (cm.curOp) { return f() }\n startOperation(cm);\n try { return f() }\n finally { endOperation(cm); }\n }\n // Wraps a function in an operation. Returns the wrapped function.\n function operation(cm, f) {\n return function() {\n if (cm.curOp) { return f.apply(cm, arguments) }\n startOperation(cm);\n try { return f.apply(cm, arguments) }\n finally { endOperation(cm); }\n }\n }\n // Used to add methods to editor and doc instances, wrapping them in\n // operations.\n function methodOp(f) {\n return function() {\n if (this.curOp) { return f.apply(this, arguments) }\n startOperation(this);\n try { return f.apply(this, arguments) }\n finally { endOperation(this); }\n }\n }\n function docMethodOp(f) {\n return function() {\n var cm = this.cm;\n if (!cm || cm.curOp) { return f.apply(this, arguments) }\n startOperation(cm);\n try { return f.apply(this, arguments) }\n finally { endOperation(cm); }\n }\n }\n\n // HIGHLIGHT WORKER\n\n function startWorker(cm, time) {\n if (cm.doc.highlightFrontier < cm.display.viewTo)\n { cm.state.highlight.set(time, bind(highlightWorker, cm)); }\n }\n\n function highlightWorker(cm) {\n var doc = cm.doc;\n if (doc.highlightFrontier >= cm.display.viewTo) { return }\n var end = +new Date + cm.options.workTime;\n var context = getContextBefore(cm, doc.highlightFrontier);\n var changedLines = [];\n\n doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {\n if (context.line >= cm.display.viewFrom) { // Visible\n var oldStyles = line.styles;\n var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null;\n var highlighted = highlightLine(cm, line, context, true);\n if (resetState) { context.state = resetState; }\n line.styles = highlighted.styles;\n var oldCls = line.styleClasses, newCls = highlighted.classes;\n if (newCls) { line.styleClasses = newCls; }\n else if (oldCls) { line.styleClasses = null; }\n var ischange = !oldStyles || oldStyles.length != line.styles.length ||\n oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);\n for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }\n if (ischange) { changedLines.push(context.line); }\n line.stateAfter = context.save();\n context.nextLine();\n } else {\n if (line.text.length <= cm.options.maxHighlightLength)\n { processLine(cm, line.text, context); }\n line.stateAfter = context.line % 5 == 0 ? context.save() : null;\n context.nextLine();\n }\n if (+new Date > end) {\n startWorker(cm, cm.options.workDelay);\n return true\n }\n });\n doc.highlightFrontier = context.line;\n doc.modeFrontier = Math.max(doc.modeFrontier, context.line);\n if (changedLines.length) { runInOp(cm, function () {\n for (var i = 0; i < changedLines.length; i++)\n { regLineChange(cm, changedLines[i], \"text\"); }\n }); }\n }\n\n // DISPLAY DRAWING\n\n var DisplayUpdate = function(cm, viewport, force) {\n var display = cm.display;\n\n this.viewport = viewport;\n // Store some values that we'll need later (but don't want to force a relayout for)\n this.visible = visibleLines(display, cm.doc, viewport);\n this.editorIsHidden = !display.wrapper.offsetWidth;\n this.wrapperHeight = display.wrapper.clientHeight;\n this.wrapperWidth = display.wrapper.clientWidth;\n this.oldDisplayWidth = displayWidth(cm);\n this.force = force;\n this.dims = getDimensions(cm);\n this.events = [];\n };\n\n DisplayUpdate.prototype.signal = function (emitter, type) {\n if (hasHandler(emitter, type))\n { this.events.push(arguments); }\n };\n DisplayUpdate.prototype.finish = function () {\n for (var i = 0; i < this.events.length; i++)\n { signal.apply(null, this.events[i]); }\n };\n\n function maybeClipScrollbars(cm) {\n var display = cm.display;\n if (!display.scrollbarsClipped && display.scroller.offsetWidth) {\n display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;\n display.heightForcer.style.height = scrollGap(cm) + \"px\";\n display.sizer.style.marginBottom = -display.nativeBarWidth + \"px\";\n display.sizer.style.borderRightWidth = scrollGap(cm) + \"px\";\n display.scrollbarsClipped = true;\n }\n }\n\n function selectionSnapshot(cm) {\n if (cm.hasFocus()) { return null }\n var active = activeElt(root(cm));\n if (!active || !contains(cm.display.lineDiv, active)) { return null }\n var result = {activeElt: active};\n if (window.getSelection) {\n var sel = win(cm).getSelection();\n if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) {\n result.anchorNode = sel.anchorNode;\n result.anchorOffset = sel.anchorOffset;\n result.focusNode = sel.focusNode;\n result.focusOffset = sel.focusOffset;\n }\n }\n return result\n }\n\n function restoreSelection(snapshot) {\n if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt(rootNode(snapshot.activeElt))) { return }\n snapshot.activeElt.focus();\n if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) &&\n snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {\n var doc = snapshot.activeElt.ownerDocument;\n var sel = doc.defaultView.getSelection(), range = doc.createRange();\n range.setEnd(snapshot.anchorNode, snapshot.anchorOffset);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n sel.extend(snapshot.focusNode, snapshot.focusOffset);\n }\n }\n\n // Does the actual updating of the line display. Bails out\n // (returning false) when there is nothing to be done and forced is\n // false.\n function updateDisplayIfNeeded(cm, update) {\n var display = cm.display, doc = cm.doc;\n\n if (update.editorIsHidden) {\n resetView(cm);\n return false\n }\n\n // Bail out if the visible area is already rendered and nothing changed.\n if (!update.force &&\n update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&\n display.renderedView == display.view && countDirtyView(cm) == 0)\n { return false }\n\n if (maybeUpdateLineNumberWidth(cm)) {\n resetView(cm);\n update.dims = getDimensions(cm);\n }\n\n // Compute a suitable new viewport (from & to)\n var end = doc.first + doc.size;\n var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);\n var to = Math.min(end, update.visible.to + cm.options.viewportMargin);\n if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); }\n if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); }\n if (sawCollapsedSpans) {\n from = visualLineNo(cm.doc, from);\n to = visualLineEndNo(cm.doc, to);\n }\n\n var different = from != display.viewFrom || to != display.viewTo ||\n display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;\n adjustView(cm, from, to);\n\n display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));\n // Position the mover div to align with the current scroll position\n cm.display.mover.style.top = display.viewOffset + \"px\";\n\n var toUpdate = countDirtyView(cm);\n if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))\n { return false }\n\n // For big changes, we hide the enclosing element during the\n // update, since that speeds up the operations on most browsers.\n var selSnapshot = selectionSnapshot(cm);\n if (toUpdate > 4) { display.lineDiv.style.display = \"none\"; }\n patchDisplay(cm, display.updateLineNumbers, update.dims);\n if (toUpdate > 4) { display.lineDiv.style.display = \"\"; }\n display.renderedView = display.view;\n // There might have been a widget with a focused element that got\n // hidden or updated, if so re-focus it.\n restoreSelection(selSnapshot);\n\n // Prevent selection and cursors from interfering with the scroll\n // width and height.\n removeChildren(display.cursorDiv);\n removeChildren(display.selectionDiv);\n display.gutters.style.height = display.sizer.style.minHeight = 0;\n\n if (different) {\n display.lastWrapHeight = update.wrapperHeight;\n display.lastWrapWidth = update.wrapperWidth;\n startWorker(cm, 400);\n }\n\n display.updateLineNumbers = null;\n\n return true\n }\n\n function postUpdateDisplay(cm, update) {\n var viewport = update.viewport;\n\n for (var first = true;; first = false) {\n if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {\n // Clip forced viewport to actual scrollable area.\n if (viewport && viewport.top != null)\n { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; }\n // Updated line heights might result in the drawn area not\n // actually covering the viewport. Keep looping until it does.\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)\n { break }\n } else if (first) {\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n }\n if (!updateDisplayIfNeeded(cm, update)) { break }\n updateHeightsInViewport(cm);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.force = false;\n }\n\n update.signal(cm, \"update\", cm);\n if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {\n update.signal(cm, \"viewportChange\", cm, cm.display.viewFrom, cm.display.viewTo);\n cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;\n }\n }\n\n function updateDisplaySimple(cm, viewport) {\n var update = new DisplayUpdate(cm, viewport);\n if (updateDisplayIfNeeded(cm, update)) {\n updateHeightsInViewport(cm);\n postUpdateDisplay(cm, update);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.finish();\n }\n }\n\n // Sync the actual display DOM structure with display.view, removing\n // nodes for lines that are no longer in view, and creating the ones\n // that are not there yet, and updating the ones that are out of\n // date.\n function patchDisplay(cm, updateNumbersFrom, dims) {\n var display = cm.display, lineNumbers = cm.options.lineNumbers;\n var container = display.lineDiv, cur = container.firstChild;\n\n function rm(node) {\n var next = node.nextSibling;\n // Works around a throw-scroll bug in OS X Webkit\n if (webkit && mac && cm.display.currentWheelTarget == node)\n { node.style.display = \"none\"; }\n else\n { node.parentNode.removeChild(node); }\n return next\n }\n\n var view = display.view, lineN = display.viewFrom;\n // Loop over the elements in the view, syncing cur (the DOM nodes\n // in display.lineDiv) with the view as we go.\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet\n var node = buildLineElement(cm, lineView, lineN, dims);\n container.insertBefore(node, cur);\n } else { // Already drawn\n while (cur != lineView.node) { cur = rm(cur); }\n var updateNumber = lineNumbers && updateNumbersFrom != null &&\n updateNumbersFrom <= lineN && lineView.lineNumber;\n if (lineView.changes) {\n if (indexOf(lineView.changes, \"gutter\") > -1) { updateNumber = false; }\n updateLineForChanges(cm, lineView, lineN, dims);\n }\n if (updateNumber) {\n removeChildren(lineView.lineNumber);\n lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));\n }\n cur = lineView.node.nextSibling;\n }\n lineN += lineView.size;\n }\n while (cur) { cur = rm(cur); }\n }\n\n function updateGutterSpace(display) {\n var width = display.gutters.offsetWidth;\n display.sizer.style.marginLeft = width + \"px\";\n // Send an event to consumers responding to changes in gutter width.\n signalLater(display, \"gutterChanged\", display);\n }\n\n function setDocumentHeight(cm, measure) {\n cm.display.sizer.style.minHeight = measure.docHeight + \"px\";\n cm.display.heightForcer.style.top = measure.docHeight + \"px\";\n cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + \"px\";\n }\n\n // Re-align line numbers and gutter marks to compensate for\n // horizontal scrolling.\n function alignHorizontally(cm) {\n var display = cm.display, view = display.view;\n if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }\n var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;\n var gutterW = display.gutters.offsetWidth, left = comp + \"px\";\n for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {\n if (cm.options.fixedGutter) {\n if (view[i].gutter)\n { view[i].gutter.style.left = left; }\n if (view[i].gutterBackground)\n { view[i].gutterBackground.style.left = left; }\n }\n var align = view[i].alignable;\n if (align) { for (var j = 0; j < align.length; j++)\n { align[j].style.left = left; } }\n } }\n if (cm.options.fixedGutter)\n { display.gutters.style.left = (comp + gutterW) + \"px\"; }\n }\n\n // Used to ensure that the line number gutter is still the right\n // size for the current document size. Returns true when an update\n // is needed.\n function maybeUpdateLineNumberWidth(cm) {\n if (!cm.options.lineNumbers) { return false }\n var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;\n if (last.length != display.lineNumChars) {\n var test = display.measure.appendChild(elt(\"div\", [elt(\"div\", last)],\n \"CodeMirror-linenumber CodeMirror-gutter-elt\"));\n var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;\n display.lineGutter.style.width = \"\";\n display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;\n display.lineNumWidth = display.lineNumInnerWidth + padding;\n display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;\n display.lineGutter.style.width = display.lineNumWidth + \"px\";\n updateGutterSpace(cm.display);\n return true\n }\n return false\n }\n\n function getGutters(gutters, lineNumbers) {\n var result = [], sawLineNumbers = false;\n for (var i = 0; i < gutters.length; i++) {\n var name = gutters[i], style = null;\n if (typeof name != \"string\") { style = name.style; name = name.className; }\n if (name == \"CodeMirror-linenumbers\") {\n if (!lineNumbers) { continue }\n else { sawLineNumbers = true; }\n }\n result.push({className: name, style: style});\n }\n if (lineNumbers && !sawLineNumbers) { result.push({className: \"CodeMirror-linenumbers\", style: null}); }\n return result\n }\n\n // Rebuild the gutter elements, ensure the margin to the left of the\n // code matches their width.\n function renderGutters(display) {\n var gutters = display.gutters, specs = display.gutterSpecs;\n removeChildren(gutters);\n display.lineGutter = null;\n for (var i = 0; i < specs.length; ++i) {\n var ref = specs[i];\n var className = ref.className;\n var style = ref.style;\n var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + className));\n if (style) { gElt.style.cssText = style; }\n if (className == \"CodeMirror-linenumbers\") {\n display.lineGutter = gElt;\n gElt.style.width = (display.lineNumWidth || 1) + \"px\";\n }\n }\n gutters.style.display = specs.length ? \"\" : \"none\";\n updateGutterSpace(display);\n }\n\n function updateGutters(cm) {\n renderGutters(cm.display);\n regChange(cm);\n alignHorizontally(cm);\n }\n\n // The display handles the DOM integration, both for input reading\n // and content drawing. It holds references to DOM nodes and\n // display-related state.\n\n function Display(place, doc, input, options) {\n var d = this;\n this.input = input;\n\n // Covers bottom-right square when both scrollbars are present.\n d.scrollbarFiller = elt(\"div\", null, \"CodeMirror-scrollbar-filler\");\n d.scrollbarFiller.setAttribute(\"cm-not-content\", \"true\");\n // Covers bottom of gutter when coverGutterNextToScrollbar is on\n // and h scrollbar is present.\n d.gutterFiller = elt(\"div\", null, \"CodeMirror-gutter-filler\");\n d.gutterFiller.setAttribute(\"cm-not-content\", \"true\");\n // Will contain the actual code, positioned to cover the viewport.\n d.lineDiv = eltP(\"div\", null, \"CodeMirror-code\");\n // Elements are added to these to represent selection and cursors.\n d.selectionDiv = elt(\"div\", null, null, \"position: relative; z-index: 1\");\n d.cursorDiv = elt(\"div\", null, \"CodeMirror-cursors\");\n // A visibility: hidden element used to find the size of things.\n d.measure = elt(\"div\", null, \"CodeMirror-measure\");\n // When lines outside of the viewport are measured, they are drawn in this.\n d.lineMeasure = elt(\"div\", null, \"CodeMirror-measure\");\n // Wraps everything that needs to exist inside the vertically-padded coordinate system\n d.lineSpace = eltP(\"div\", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],\n null, \"position: relative; outline: none\");\n var lines = eltP(\"div\", [d.lineSpace], \"CodeMirror-lines\");\n // Moved around its parent to cover visible view.\n d.mover = elt(\"div\", [lines], null, \"position: relative\");\n // Set to the height of the document, allowing scrolling.\n d.sizer = elt(\"div\", [d.mover], \"CodeMirror-sizer\");\n d.sizerWidth = null;\n // Behavior of elts with overflow: auto and padding is\n // inconsistent across browsers. This is used to ensure the\n // scrollable area is big enough.\n d.heightForcer = elt(\"div\", null, null, \"position: absolute; height: \" + scrollerGap + \"px; width: 1px;\");\n // Will contain the gutters, if any.\n d.gutters = elt(\"div\", null, \"CodeMirror-gutters\");\n d.lineGutter = null;\n // Actual scrollable element.\n d.scroller = elt(\"div\", [d.sizer, d.heightForcer, d.gutters], \"CodeMirror-scroll\");\n d.scroller.setAttribute(\"tabIndex\", \"-1\");\n // The element in which the editor lives.\n d.wrapper = elt(\"div\", [d.scrollbarFiller, d.gutterFiller, d.scroller], \"CodeMirror\");\n // See #6982. FIXME remove when this has been fixed for a while in Chrome\n if (chrome && chrome_version >= 105) { d.wrapper.style.clipPath = \"inset(0px)\"; }\n\n // This attribute is respected by automatic translation systems such as Google Translate,\n // and may also be respected by tools used by human translators.\n d.wrapper.setAttribute('translate', 'no');\n\n // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)\n if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }\n if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; }\n\n if (place) {\n if (place.appendChild) { place.appendChild(d.wrapper); }\n else { place(d.wrapper); }\n }\n\n // Current rendered range (may be bigger than the view window).\n d.viewFrom = d.viewTo = doc.first;\n d.reportedViewFrom = d.reportedViewTo = doc.first;\n // Information about the rendered lines.\n d.view = [];\n d.renderedView = null;\n // Holds info about a single rendered line when it was rendered\n // for measurement, while not in view.\n d.externalMeasured = null;\n // Empty space (in pixels) above the view\n d.viewOffset = 0;\n d.lastWrapHeight = d.lastWrapWidth = 0;\n d.updateLineNumbers = null;\n\n d.nativeBarWidth = d.barHeight = d.barWidth = 0;\n d.scrollbarsClipped = false;\n\n // Used to only resize the line number gutter when necessary (when\n // the amount of lines crosses a boundary that makes its width change)\n d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;\n // Set to true when a non-horizontal-scrolling line widget is\n // added. As an optimization, line widget aligning is skipped when\n // this is false.\n d.alignWidgets = false;\n\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n\n // Tracks the maximum line length so that the horizontal scrollbar\n // can be kept static when scrolling.\n d.maxLine = null;\n d.maxLineLength = 0;\n d.maxLineChanged = false;\n\n // Used for measuring wheel scrolling granularity\n d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;\n\n // True when shift is held down.\n d.shift = false;\n\n // Used to track whether anything happened since the context menu\n // was opened.\n d.selForContextMenu = null;\n\n d.activeTouch = null;\n\n d.gutterSpecs = getGutters(options.gutters, options.lineNumbers);\n renderGutters(d);\n\n input.init(d);\n }\n\n // Since the delta values reported on mouse wheel events are\n // unstandardized between browsers and even browser versions, and\n // generally horribly unpredictable, this code starts by measuring\n // the scroll effect that the first few mouse wheel events have,\n // and, from that, detects the way it can convert deltas to pixel\n // offsets afterwards.\n //\n // The reason we want to know the amount a wheel event will scroll\n // is that it gives us a chance to update the display before the\n // actual scrolling happens, reducing flickering.\n\n var wheelSamples = 0, wheelPixelsPerUnit = null;\n // Fill in a browser-detected starting value on browsers where we\n // know one. These don't have to be accurate -- the result of them\n // being wrong would just be a slight flicker on the first wheel\n // scroll (if it is large enough).\n if (ie) { wheelPixelsPerUnit = -.53; }\n else if (gecko) { wheelPixelsPerUnit = 15; }\n else if (chrome) { wheelPixelsPerUnit = -.7; }\n else if (safari) { wheelPixelsPerUnit = -1/3; }\n\n function wheelEventDelta(e) {\n var dx = e.wheelDeltaX, dy = e.wheelDeltaY;\n if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }\n if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }\n else if (dy == null) { dy = e.wheelDelta; }\n return {x: dx, y: dy}\n }\n function wheelEventPixels(e) {\n var delta = wheelEventDelta(e);\n delta.x *= wheelPixelsPerUnit;\n delta.y *= wheelPixelsPerUnit;\n return delta\n }\n\n function onScrollWheel(cm, e) {\n // On Chrome 102, viewport updates somehow stop wheel-based\n // scrolling. Turning off pointer events during the scroll seems\n // to avoid the issue.\n if (chrome && chrome_version == 102) {\n if (cm.display.chromeScrollHack == null) { cm.display.sizer.style.pointerEvents = \"none\"; }\n else { clearTimeout(cm.display.chromeScrollHack); }\n cm.display.chromeScrollHack = setTimeout(function () {\n cm.display.chromeScrollHack = null;\n cm.display.sizer.style.pointerEvents = \"\";\n }, 100);\n }\n var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;\n var pixelsPerUnit = wheelPixelsPerUnit;\n if (e.deltaMode === 0) {\n dx = e.deltaX;\n dy = e.deltaY;\n pixelsPerUnit = 1;\n }\n\n var display = cm.display, scroll = display.scroller;\n // Quit if there's nothing to scroll here\n var canScrollX = scroll.scrollWidth > scroll.clientWidth;\n var canScrollY = scroll.scrollHeight > scroll.clientHeight;\n if (!(dx && canScrollX || dy && canScrollY)) { return }\n\n // Webkit browsers on OS X abort momentum scrolls when the target\n // of the scroll event is removed from the scrollable element.\n // This hack (see related code in patchDisplay) makes sure the\n // element is kept around.\n if (dy && mac && webkit) {\n outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {\n for (var i = 0; i < view.length; i++) {\n if (view[i].node == cur) {\n cm.display.currentWheelTarget = cur;\n break outer\n }\n }\n }\n }\n\n // On some browsers, horizontal scrolling will cause redraws to\n // happen before the gutter has been realigned, causing it to\n // wriggle around in a most unseemly way. When we have an\n // estimated pixels/delta value, we just handle horizontal\n // scrolling entirely here. It'll be slightly off from native, but\n // better than glitching out.\n if (dx && !gecko && !presto && pixelsPerUnit != null) {\n if (dy && canScrollY)\n { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * pixelsPerUnit)); }\n setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * pixelsPerUnit));\n // Only prevent default scrolling if vertical scrolling is\n // actually possible. Otherwise, it causes vertical scroll\n // jitter on OSX trackpads when deltaX is small and deltaY\n // is large (issue #3579)\n if (!dy || (dy && canScrollY))\n { e_preventDefault(e); }\n display.wheelStartX = null; // Abort measurement, if in progress\n return\n }\n\n // 'Project' the visible viewport to cover the area that is being\n // scrolled into view (if we know enough to estimate it).\n if (dy && pixelsPerUnit != null) {\n var pixels = dy * pixelsPerUnit;\n var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;\n if (pixels < 0) { top = Math.max(0, top + pixels - 50); }\n else { bot = Math.min(cm.doc.height, bot + pixels + 50); }\n updateDisplaySimple(cm, {top: top, bottom: bot});\n }\n\n if (wheelSamples < 20 && e.deltaMode !== 0) {\n if (display.wheelStartX == null) {\n display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;\n display.wheelDX = dx; display.wheelDY = dy;\n setTimeout(function () {\n if (display.wheelStartX == null) { return }\n var movedX = scroll.scrollLeft - display.wheelStartX;\n var movedY = scroll.scrollTop - display.wheelStartY;\n var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||\n (movedX && display.wheelDX && movedX / display.wheelDX);\n display.wheelStartX = display.wheelStartY = null;\n if (!sample) { return }\n wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);\n ++wheelSamples;\n }, 200);\n } else {\n display.wheelDX += dx; display.wheelDY += dy;\n }\n }\n }\n\n // Selection objects are immutable. A new one is created every time\n // the selection changes. A selection is one or more non-overlapping\n // (and non-touching) ranges, sorted, and an integer that indicates\n // which one is the primary selection (the one that's scrolled into\n // view, that getCursor returns, etc).\n var Selection = function(ranges, primIndex) {\n this.ranges = ranges;\n this.primIndex = primIndex;\n };\n\n Selection.prototype.primary = function () { return this.ranges[this.primIndex] };\n\n Selection.prototype.equals = function (other) {\n if (other == this) { return true }\n if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false }\n for (var i = 0; i < this.ranges.length; i++) {\n var here = this.ranges[i], there = other.ranges[i];\n if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false }\n }\n return true\n };\n\n Selection.prototype.deepCopy = function () {\n var out = [];\n for (var i = 0; i < this.ranges.length; i++)\n { out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); }\n return new Selection(out, this.primIndex)\n };\n\n Selection.prototype.somethingSelected = function () {\n for (var i = 0; i < this.ranges.length; i++)\n { if (!this.ranges[i].empty()) { return true } }\n return false\n };\n\n Selection.prototype.contains = function (pos, end) {\n if (!end) { end = pos; }\n for (var i = 0; i < this.ranges.length; i++) {\n var range = this.ranges[i];\n if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)\n { return i }\n }\n return -1\n };\n\n var Range = function(anchor, head) {\n this.anchor = anchor; this.head = head;\n };\n\n Range.prototype.from = function () { return minPos(this.anchor, this.head) };\n Range.prototype.to = function () { return maxPos(this.anchor, this.head) };\n Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch };\n\n // Take an unsorted, potentially overlapping set of ranges, and\n // build a selection out of it. 'Consumes' ranges array (modifying\n // it).\n function normalizeSelection(cm, ranges, primIndex) {\n var mayTouch = cm && cm.options.selectionsMayTouch;\n var prim = ranges[primIndex];\n ranges.sort(function (a, b) { return cmp(a.from(), b.from()); });\n primIndex = indexOf(ranges, prim);\n for (var i = 1; i < ranges.length; i++) {\n var cur = ranges[i], prev = ranges[i - 1];\n var diff = cmp(prev.to(), cur.from());\n if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) {\n var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());\n var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;\n if (i <= primIndex) { --primIndex; }\n ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));\n }\n }\n return new Selection(ranges, primIndex)\n }\n\n function simpleSelection(anchor, head) {\n return new Selection([new Range(anchor, head || anchor)], 0)\n }\n\n // Compute the position of the end of a change (its 'to' property\n // refers to the pre-change end).\n function changeEnd(change) {\n if (!change.text) { return change.to }\n return Pos(change.from.line + change.text.length - 1,\n lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0))\n }\n\n // Adjust a position to refer to the post-change position of the\n // same text, or the end of the change if the change covers it.\n function adjustForChange(pos, change) {\n if (cmp(pos, change.from) < 0) { return pos }\n if (cmp(pos, change.to) <= 0) { return changeEnd(change) }\n\n var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;\n if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; }\n return Pos(line, ch)\n }\n\n function computeSelAfterChange(doc, change) {\n var out = [];\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n var range = doc.sel.ranges[i];\n out.push(new Range(adjustForChange(range.anchor, change),\n adjustForChange(range.head, change)));\n }\n return normalizeSelection(doc.cm, out, doc.sel.primIndex)\n }\n\n function offsetPos(pos, old, nw) {\n if (pos.line == old.line)\n { return Pos(nw.line, pos.ch - old.ch + nw.ch) }\n else\n { return Pos(nw.line + (pos.line - old.line), pos.ch) }\n }\n\n // Used by replaceSelections to allow moving the selection to the\n // start or around the replaced test. Hint may be \"start\" or \"around\".\n function computeReplacedSel(doc, changes, hint) {\n var out = [];\n var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n var from = offsetPos(change.from, oldPrev, newPrev);\n var to = offsetPos(changeEnd(change), oldPrev, newPrev);\n oldPrev = change.to;\n newPrev = to;\n if (hint == \"around\") {\n var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;\n out[i] = new Range(inv ? to : from, inv ? from : to);\n } else {\n out[i] = new Range(from, from);\n }\n }\n return new Selection(out, doc.sel.primIndex)\n }\n\n // Used to get the editor into a consistent state again when options change.\n\n function loadMode(cm) {\n cm.doc.mode = getMode(cm.options, cm.doc.modeOption);\n resetModeState(cm);\n }\n\n function resetModeState(cm) {\n cm.doc.iter(function (line) {\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n });\n cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first;\n startWorker(cm, 100);\n cm.state.modeGen++;\n if (cm.curOp) { regChange(cm); }\n }\n\n // DOCUMENT DATA STRUCTURE\n\n // By default, updates that start and end at the beginning of a line\n // are treated specially, in order to make the association of line\n // widgets and marker elements with the text behave more intuitive.\n function isWholeLineUpdate(doc, change) {\n return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == \"\" &&\n (!doc.cm || doc.cm.options.wholeLineUpdateBefore)\n }\n\n // Perform a change on the document data structure.\n function updateDoc(doc, change, markedSpans, estimateHeight) {\n function spansFor(n) {return markedSpans ? markedSpans[n] : null}\n function update(line, text, spans) {\n updateLine(line, text, spans, estimateHeight);\n signalLater(line, \"change\", line, change);\n }\n function linesFor(start, end) {\n var result = [];\n for (var i = start; i < end; ++i)\n { result.push(new Line(text[i], spansFor(i), estimateHeight)); }\n return result\n }\n\n var from = change.from, to = change.to, text = change.text;\n var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);\n var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;\n\n // Adjust the line structure\n if (change.full) {\n doc.insert(0, linesFor(0, text.length));\n doc.remove(text.length, doc.size - text.length);\n } else if (isWholeLineUpdate(doc, change)) {\n // This is a whole-line replace. Treated specially to make\n // sure line objects move the way they are supposed to.\n var added = linesFor(0, text.length - 1);\n update(lastLine, lastLine.text, lastSpans);\n if (nlines) { doc.remove(from.line, nlines); }\n if (added.length) { doc.insert(from.line, added); }\n } else if (firstLine == lastLine) {\n if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);\n } else {\n var added$1 = linesFor(1, text.length - 1);\n added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n doc.insert(from.line + 1, added$1);\n }\n } else if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));\n doc.remove(from.line + 1, nlines);\n } else {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);\n var added$2 = linesFor(1, text.length - 1);\n if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); }\n doc.insert(from.line + 1, added$2);\n }\n\n signalLater(doc, \"change\", doc, change);\n }\n\n // Call f for all linked documents.\n function linkedDocs(doc, f, sharedHistOnly) {\n function propagate(doc, skip, sharedHist) {\n if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) {\n var rel = doc.linked[i];\n if (rel.doc == skip) { continue }\n var shared = sharedHist && rel.sharedHist;\n if (sharedHistOnly && !shared) { continue }\n f(rel.doc, shared);\n propagate(rel.doc, doc, shared);\n } }\n }\n propagate(doc, null, true);\n }\n\n // Attach a document to an editor.\n function attachDoc(cm, doc) {\n if (doc.cm) { throw new Error(\"This document is already in use.\") }\n cm.doc = doc;\n doc.cm = cm;\n estimateLineHeights(cm);\n loadMode(cm);\n setDirectionClass(cm);\n cm.options.direction = doc.direction;\n if (!cm.options.lineWrapping) { findMaxLine(cm); }\n cm.options.mode = doc.modeOption;\n regChange(cm);\n }\n\n function setDirectionClass(cm) {\n (cm.doc.direction == \"rtl\" ? addClass : rmClass)(cm.display.lineDiv, \"CodeMirror-rtl\");\n }\n\n function directionChanged(cm) {\n runInOp(cm, function () {\n setDirectionClass(cm);\n regChange(cm);\n });\n }\n\n function History(prev) {\n // Arrays of change events and selections. Doing something adds an\n // event to done and clears undo. Undoing moves events from done\n // to undone, redoing moves them in the other direction.\n this.done = []; this.undone = [];\n this.undoDepth = prev ? prev.undoDepth : Infinity;\n // Used to track when changes can be merged into a single undo\n // event\n this.lastModTime = this.lastSelTime = 0;\n this.lastOp = this.lastSelOp = null;\n this.lastOrigin = this.lastSelOrigin = null;\n // Used by the isClean() method\n this.generation = this.maxGeneration = prev ? prev.maxGeneration : 1;\n }\n\n // Create a history change event from an updateDoc-style change\n // object.\n function historyChangeFromChange(doc, change) {\n var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};\n attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);\n linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true);\n return histChange\n }\n\n // Pop all selection events off the end of a history array. Stop at\n // a change event.\n function clearSelectionEvents(array) {\n while (array.length) {\n var last = lst(array);\n if (last.ranges) { array.pop(); }\n else { break }\n }\n }\n\n // Find the top change event in the history. Pop off selection\n // events that are in the way.\n function lastChangeEvent(hist, force) {\n if (force) {\n clearSelectionEvents(hist.done);\n return lst(hist.done)\n } else if (hist.done.length && !lst(hist.done).ranges) {\n return lst(hist.done)\n } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {\n hist.done.pop();\n return lst(hist.done)\n }\n }\n\n // Register a change in the history. Merges changes that are within\n // a single operation, or are close together with an origin that\n // allows merging (starting with \"+\") into a single event.\n function addChangeToHistory(doc, change, selAfter, opId) {\n var hist = doc.history;\n hist.undone.length = 0;\n var time = +new Date, cur;\n var last;\n\n if ((hist.lastOp == opId ||\n hist.lastOrigin == change.origin && change.origin &&\n ((change.origin.charAt(0) == \"+\" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) ||\n change.origin.charAt(0) == \"*\")) &&\n (cur = lastChangeEvent(hist, hist.lastOp == opId))) {\n // Merge this change into the last event\n last = lst(cur.changes);\n if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {\n // Optimized case for simple insertion -- don't want to add\n // new changesets for every character typed\n last.to = changeEnd(change);\n } else {\n // Add new sub-event\n cur.changes.push(historyChangeFromChange(doc, change));\n }\n } else {\n // Can not be merged, start a new event.\n var before = lst(hist.done);\n if (!before || !before.ranges)\n { pushSelectionToHistory(doc.sel, hist.done); }\n cur = {changes: [historyChangeFromChange(doc, change)],\n generation: hist.generation};\n hist.done.push(cur);\n while (hist.done.length > hist.undoDepth) {\n hist.done.shift();\n if (!hist.done[0].ranges) { hist.done.shift(); }\n }\n }\n hist.done.push(selAfter);\n hist.generation = ++hist.maxGeneration;\n hist.lastModTime = hist.lastSelTime = time;\n hist.lastOp = hist.lastSelOp = opId;\n hist.lastOrigin = hist.lastSelOrigin = change.origin;\n\n if (!last) { signal(doc, \"historyAdded\"); }\n }\n\n function selectionEventCanBeMerged(doc, origin, prev, sel) {\n var ch = origin.charAt(0);\n return ch == \"*\" ||\n ch == \"+\" &&\n prev.ranges.length == sel.ranges.length &&\n prev.somethingSelected() == sel.somethingSelected() &&\n new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500)\n }\n\n // Called whenever the selection changes, sets the new selection as\n // the pending selection in the history, and pushes the old pending\n // selection into the 'done' array when it was significantly\n // different (in number of selected ranges, emptiness, or time).\n function addSelectionToHistory(doc, sel, opId, options) {\n var hist = doc.history, origin = options && options.origin;\n\n // A new event is started when the previous origin does not match\n // the current, or the origins don't allow matching. Origins\n // starting with * are always merged, those starting with + are\n // merged when similar and close together in time.\n if (opId == hist.lastSelOp ||\n (origin && hist.lastSelOrigin == origin &&\n (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||\n selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))\n { hist.done[hist.done.length - 1] = sel; }\n else\n { pushSelectionToHistory(sel, hist.done); }\n\n hist.lastSelTime = +new Date;\n hist.lastSelOrigin = origin;\n hist.lastSelOp = opId;\n if (options && options.clearRedo !== false)\n { clearSelectionEvents(hist.undone); }\n }\n\n function pushSelectionToHistory(sel, dest) {\n var top = lst(dest);\n if (!(top && top.ranges && top.equals(sel)))\n { dest.push(sel); }\n }\n\n // Used to store marked span information in the history.\n function attachLocalSpans(doc, change, from, to) {\n var existing = change[\"spans_\" + doc.id], n = 0;\n doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) {\n if (line.markedSpans)\n { (existing || (existing = change[\"spans_\" + doc.id] = {}))[n] = line.markedSpans; }\n ++n;\n });\n }\n\n // When un/re-doing restores text containing marked spans, those\n // that have been explicitly cleared should not be restored.\n function removeClearedSpans(spans) {\n if (!spans) { return null }\n var out;\n for (var i = 0; i < spans.length; ++i) {\n if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } }\n else if (out) { out.push(spans[i]); }\n }\n return !out ? spans : out.length ? out : null\n }\n\n // Retrieve and filter the old marked spans stored in a change event.\n function getOldSpans(doc, change) {\n var found = change[\"spans_\" + doc.id];\n if (!found) { return null }\n var nw = [];\n for (var i = 0; i < change.text.length; ++i)\n { nw.push(removeClearedSpans(found[i])); }\n return nw\n }\n\n // Used for un/re-doing changes from the history. Combines the\n // result of computing the existing spans with the set of spans that\n // existed in the history (so that deleting around a span and then\n // undoing brings back the span).\n function mergeOldSpans(doc, change) {\n var old = getOldSpans(doc, change);\n var stretched = stretchSpansOverChange(doc, change);\n if (!old) { return stretched }\n if (!stretched) { return old }\n\n for (var i = 0; i < old.length; ++i) {\n var oldCur = old[i], stretchCur = stretched[i];\n if (oldCur && stretchCur) {\n spans: for (var j = 0; j < stretchCur.length; ++j) {\n var span = stretchCur[j];\n for (var k = 0; k < oldCur.length; ++k)\n { if (oldCur[k].marker == span.marker) { continue spans } }\n oldCur.push(span);\n }\n } else if (stretchCur) {\n old[i] = stretchCur;\n }\n }\n return old\n }\n\n // Used both to provide a JSON-safe object in .getHistory, and, when\n // detaching a document, to split the history in two\n function copyHistoryArray(events, newGroup, instantiateSel) {\n var copy = [];\n for (var i = 0; i < events.length; ++i) {\n var event = events[i];\n if (event.ranges) {\n copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);\n continue\n }\n var changes = event.changes, newChanges = [];\n copy.push({changes: newChanges});\n for (var j = 0; j < changes.length; ++j) {\n var change = changes[j], m = (void 0);\n newChanges.push({from: change.from, to: change.to, text: change.text});\n if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\\d+)$/)) {\n if (indexOf(newGroup, Number(m[1])) > -1) {\n lst(newChanges)[prop] = change[prop];\n delete change[prop];\n }\n } } }\n }\n }\n return copy\n }\n\n // The 'scroll' parameter given to many of these indicated whether\n // the new cursor position should be scrolled into view after\n // modifying the selection.\n\n // If shift is held or the extend flag is set, extends a range to\n // include a given position (and optionally a second position).\n // Otherwise, simply returns the range between the given positions.\n // Used for cursor motion and such.\n function extendRange(range, head, other, extend) {\n if (extend) {\n var anchor = range.anchor;\n if (other) {\n var posBefore = cmp(head, anchor) < 0;\n if (posBefore != (cmp(other, anchor) < 0)) {\n anchor = head;\n head = other;\n } else if (posBefore != (cmp(head, other) < 0)) {\n head = other;\n }\n }\n return new Range(anchor, head)\n } else {\n return new Range(other || head, head)\n }\n }\n\n // Extend the primary selection range, discard the rest.\n function extendSelection(doc, head, other, options, extend) {\n if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); }\n setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options);\n }\n\n // Extend all selections (pos is an array of selections with length\n // equal the number of selections)\n function extendSelections(doc, heads, options) {\n var out = [];\n var extend = doc.cm && (doc.cm.display.shift || doc.extend);\n for (var i = 0; i < doc.sel.ranges.length; i++)\n { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); }\n var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex);\n setSelection(doc, newSel, options);\n }\n\n // Updates a single range in the selection.\n function replaceOneSelection(doc, i, range, options) {\n var ranges = doc.sel.ranges.slice(0);\n ranges[i] = range;\n setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options);\n }\n\n // Reset the selection to a single range.\n function setSimpleSelection(doc, anchor, head, options) {\n setSelection(doc, simpleSelection(anchor, head), options);\n }\n\n // Give beforeSelectionChange handlers a change to influence a\n // selection update.\n function filterSelectionChange(doc, sel, options) {\n var obj = {\n ranges: sel.ranges,\n update: function(ranges) {\n this.ranges = [];\n for (var i = 0; i < ranges.length; i++)\n { this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),\n clipPos(doc, ranges[i].head)); }\n },\n origin: options && options.origin\n };\n signal(doc, \"beforeSelectionChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeSelectionChange\", doc.cm, obj); }\n if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) }\n else { return sel }\n }\n\n function setSelectionReplaceHistory(doc, sel, options) {\n var done = doc.history.done, last = lst(done);\n if (last && last.ranges) {\n done[done.length - 1] = sel;\n setSelectionNoUndo(doc, sel, options);\n } else {\n setSelection(doc, sel, options);\n }\n }\n\n // Set a new selection.\n function setSelection(doc, sel, options) {\n setSelectionNoUndo(doc, sel, options);\n addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);\n }\n\n function setSelectionNoUndo(doc, sel, options) {\n if (hasHandler(doc, \"beforeSelectionChange\") || doc.cm && hasHandler(doc.cm, \"beforeSelectionChange\"))\n { sel = filterSelectionChange(doc, sel, options); }\n\n var bias = options && options.bias ||\n (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);\n setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));\n\n if (!(options && options.scroll === false) && doc.cm && doc.cm.getOption(\"readOnly\") != \"nocursor\")\n { ensureCursorVisible(doc.cm); }\n }\n\n function setSelectionInner(doc, sel) {\n if (sel.equals(doc.sel)) { return }\n\n doc.sel = sel;\n\n if (doc.cm) {\n doc.cm.curOp.updateInput = 1;\n doc.cm.curOp.selectionChanged = true;\n signalCursorActivity(doc.cm);\n }\n signalLater(doc, \"cursorActivity\", doc);\n }\n\n // Verify that the selection does not partially select any atomic\n // marked ranges.\n function reCheckSelection(doc) {\n setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false));\n }\n\n // Return a selection that does not partially select any atomic\n // ranges.\n function skipAtomicInSelection(doc, sel, bias, mayClear) {\n var out;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];\n var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);\n var newHead = range.head == range.anchor ? newAnchor : skipAtomic(doc, range.head, old && old.head, bias, mayClear);\n if (out || newAnchor != range.anchor || newHead != range.head) {\n if (!out) { out = sel.ranges.slice(0, i); }\n out[i] = new Range(newAnchor, newHead);\n }\n }\n return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel\n }\n\n function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {\n var line = getLine(doc, pos.line);\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var sp = line.markedSpans[i], m = sp.marker;\n\n // Determine if we should prevent the cursor being placed to the left/right of an atomic marker\n // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it\n // is with selectLeft/Right\n var preventCursorLeft = (\"selectLeft\" in m) ? !m.selectLeft : m.inclusiveLeft;\n var preventCursorRight = (\"selectRight\" in m) ? !m.selectRight : m.inclusiveRight;\n\n if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&\n (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) {\n if (mayClear) {\n signal(m, \"beforeCursorEnter\");\n if (m.explicitlyCleared) {\n if (!line.markedSpans) { break }\n else {--i; continue}\n }\n }\n if (!m.atomic) { continue }\n\n if (oldPos) {\n var near = m.find(dir < 0 ? 1 : -1), diff = (void 0);\n if (dir < 0 ? preventCursorRight : preventCursorLeft)\n { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); }\n if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))\n { return skipAtomicInner(doc, near, pos, dir, mayClear) }\n }\n\n var far = m.find(dir < 0 ? -1 : 1);\n if (dir < 0 ? preventCursorLeft : preventCursorRight)\n { far = movePos(doc, far, dir, far.line == pos.line ? line : null); }\n return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null\n }\n } }\n return pos\n }\n\n // Ensure a given position is not inside an atomic range.\n function skipAtomic(doc, pos, oldPos, bias, mayClear) {\n var dir = bias || 1;\n var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||\n skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));\n if (!found) {\n doc.cantEdit = true;\n return Pos(doc.first, 0)\n }\n return found\n }\n\n function movePos(doc, pos, dir, line) {\n if (dir < 0 && pos.ch == 0) {\n if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) }\n else { return null }\n } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {\n if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) }\n else { return null }\n } else {\n return new Pos(pos.line, pos.ch + dir)\n }\n }\n\n function selectAll(cm) {\n cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);\n }\n\n // UPDATING\n\n // Allow \"beforeChange\" event handlers to influence a change\n function filterChange(doc, change, update) {\n var obj = {\n canceled: false,\n from: change.from,\n to: change.to,\n text: change.text,\n origin: change.origin,\n cancel: function () { return obj.canceled = true; }\n };\n if (update) { obj.update = function (from, to, text, origin) {\n if (from) { obj.from = clipPos(doc, from); }\n if (to) { obj.to = clipPos(doc, to); }\n if (text) { obj.text = text; }\n if (origin !== undefined) { obj.origin = origin; }\n }; }\n signal(doc, \"beforeChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeChange\", doc.cm, obj); }\n\n if (obj.canceled) {\n if (doc.cm) { doc.cm.curOp.updateInput = 2; }\n return null\n }\n return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}\n }\n\n // Apply a change to a document, and add it to the document's\n // history, and propagating it to all linked documents.\n function makeChange(doc, change, ignoreReadOnly) {\n if (doc.cm) {\n if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) }\n if (doc.cm.state.suppressEdits) { return }\n }\n\n if (hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\")) {\n change = filterChange(doc, change, true);\n if (!change) { return }\n }\n\n // Possibly split or suppress the update based on the presence\n // of read-only spans in its range.\n var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);\n if (split) {\n for (var i = split.length - 1; i >= 0; --i)\n { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [\"\"] : change.text, origin: change.origin}); }\n } else {\n makeChangeInner(doc, change);\n }\n }\n\n function makeChangeInner(doc, change) {\n if (change.text.length == 1 && change.text[0] == \"\" && cmp(change.from, change.to) == 0) { return }\n var selAfter = computeSelAfterChange(doc, change);\n addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);\n\n makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));\n var rebased = [];\n\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));\n });\n }\n\n // Revert a change stored in a document's history.\n function makeChangeFromHistory(doc, type, allowSelectionOnly) {\n var suppress = doc.cm && doc.cm.state.suppressEdits;\n if (suppress && !allowSelectionOnly) { return }\n\n var hist = doc.history, event, selAfter = doc.sel;\n var source = type == \"undo\" ? hist.done : hist.undone, dest = type == \"undo\" ? hist.undone : hist.done;\n\n // Verify that there is a useable event (so that ctrl-z won't\n // needlessly clear selection events)\n var i = 0;\n for (; i < source.length; i++) {\n event = source[i];\n if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)\n { break }\n }\n if (i == source.length) { return }\n hist.lastOrigin = hist.lastSelOrigin = null;\n\n for (;;) {\n event = source.pop();\n if (event.ranges) {\n pushSelectionToHistory(event, dest);\n if (allowSelectionOnly && !event.equals(doc.sel)) {\n setSelection(doc, event, {clearRedo: false});\n return\n }\n selAfter = event;\n } else if (suppress) {\n source.push(event);\n return\n } else { break }\n }\n\n // Build up a reverse change object to add to the opposite history\n // stack (redo when undoing, and vice versa).\n var antiChanges = [];\n pushSelectionToHistory(selAfter, dest);\n dest.push({changes: antiChanges, generation: hist.generation});\n hist.generation = event.generation || ++hist.maxGeneration;\n\n var filter = hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\");\n\n var loop = function ( i ) {\n var change = event.changes[i];\n change.origin = type;\n if (filter && !filterChange(doc, change, false)) {\n source.length = 0;\n return {}\n }\n\n antiChanges.push(historyChangeFromChange(doc, change));\n\n var after = i ? computeSelAfterChange(doc, change) : lst(source);\n makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));\n if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); }\n var rebased = [];\n\n // Propagate to the linked documents\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));\n });\n };\n\n for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) {\n var returned = loop( i$1 );\n\n if ( returned ) return returned.v;\n }\n }\n\n // Sub-views need their line numbers shifted when text is added\n // above or below them in the parent document.\n function shiftDoc(doc, distance) {\n if (distance == 0) { return }\n doc.first += distance;\n doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range(\n Pos(range.anchor.line + distance, range.anchor.ch),\n Pos(range.head.line + distance, range.head.ch)\n ); }), doc.sel.primIndex);\n if (doc.cm) {\n regChange(doc.cm, doc.first, doc.first - distance, distance);\n for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)\n { regLineChange(doc.cm, l, \"gutter\"); }\n }\n }\n\n // More lower-level change function, handling only a single document\n // (not linked ones).\n function makeChangeSingleDoc(doc, change, selAfter, spans) {\n if (doc.cm && !doc.cm.curOp)\n { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) }\n\n if (change.to.line < doc.first) {\n shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));\n return\n }\n if (change.from.line > doc.lastLine()) { return }\n\n // Clip the change to the size of this doc\n if (change.from.line < doc.first) {\n var shift = change.text.length - 1 - (doc.first - change.from.line);\n shiftDoc(doc, shift);\n change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),\n text: [lst(change.text)], origin: change.origin};\n }\n var last = doc.lastLine();\n if (change.to.line > last) {\n change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),\n text: [change.text[0]], origin: change.origin};\n }\n\n change.removed = getBetween(doc, change.from, change.to);\n\n if (!selAfter) { selAfter = computeSelAfterChange(doc, change); }\n if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); }\n else { updateDoc(doc, change, spans); }\n setSelectionNoUndo(doc, selAfter, sel_dontScroll);\n\n if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0)))\n { doc.cantEdit = false; }\n }\n\n // Handle the interaction of a change to a document with the editor\n // that this document is part of.\n function makeChangeSingleDocInEditor(cm, change, spans) {\n var doc = cm.doc, display = cm.display, from = change.from, to = change.to;\n\n var recomputeMaxLength = false, checkWidthStart = from.line;\n if (!cm.options.lineWrapping) {\n checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));\n doc.iter(checkWidthStart, to.line + 1, function (line) {\n if (line == display.maxLine) {\n recomputeMaxLength = true;\n return true\n }\n });\n }\n\n if (doc.sel.contains(change.from, change.to) > -1)\n { signalCursorActivity(cm); }\n\n updateDoc(doc, change, spans, estimateHeight(cm));\n\n if (!cm.options.lineWrapping) {\n doc.iter(checkWidthStart, from.line + change.text.length, function (line) {\n var len = lineLength(line);\n if (len > display.maxLineLength) {\n display.maxLine = line;\n display.maxLineLength = len;\n display.maxLineChanged = true;\n recomputeMaxLength = false;\n }\n });\n if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }\n }\n\n retreatFrontier(doc, from.line);\n startWorker(cm, 400);\n\n var lendiff = change.text.length - (to.line - from.line) - 1;\n // Remember that these lines changed, for updating the display\n if (change.full)\n { regChange(cm); }\n else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))\n { regLineChange(cm, from.line, \"text\"); }\n else\n { regChange(cm, from.line, to.line + 1, lendiff); }\n\n var changesHandler = hasHandler(cm, \"changes\"), changeHandler = hasHandler(cm, \"change\");\n if (changeHandler || changesHandler) {\n var obj = {\n from: from, to: to,\n text: change.text,\n removed: change.removed,\n origin: change.origin\n };\n if (changeHandler) { signalLater(cm, \"change\", cm, obj); }\n if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); }\n }\n cm.display.selForContextMenu = null;\n }\n\n function replaceRange(doc, code, from, to, origin) {\n var assign;\n\n if (!to) { to = from; }\n if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); }\n if (typeof code == \"string\") { code = doc.splitLines(code); }\n makeChange(doc, {from: from, to: to, text: code, origin: origin});\n }\n\n // Rebasing/resetting history to deal with externally-sourced changes\n\n function rebaseHistSelSingle(pos, from, to, diff) {\n if (to < pos.line) {\n pos.line += diff;\n } else if (from < pos.line) {\n pos.line = from;\n pos.ch = 0;\n }\n }\n\n // Tries to rebase an array of history events given a change in the\n // document. If the change touches the same lines as the event, the\n // event, and everything 'behind' it, is discarded. If the change is\n // before the event, the event's positions are updated. Uses a\n // copy-on-write scheme for the positions, to avoid having to\n // reallocate them all on every rebase, but also avoid problems with\n // shared position objects being unsafely updated.\n function rebaseHistArray(array, from, to, diff) {\n for (var i = 0; i < array.length; ++i) {\n var sub = array[i], ok = true;\n if (sub.ranges) {\n if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }\n for (var j = 0; j < sub.ranges.length; j++) {\n rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);\n rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);\n }\n continue\n }\n for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) {\n var cur = sub.changes[j$1];\n if (to < cur.from.line) {\n cur.from = Pos(cur.from.line + diff, cur.from.ch);\n cur.to = Pos(cur.to.line + diff, cur.to.ch);\n } else if (from <= cur.to.line) {\n ok = false;\n break\n }\n }\n if (!ok) {\n array.splice(0, i + 1);\n i = 0;\n }\n }\n }\n\n function rebaseHist(hist, change) {\n var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;\n rebaseHistArray(hist.done, from, to, diff);\n rebaseHistArray(hist.undone, from, to, diff);\n }\n\n // Utility for applying a change to a line by handle or number,\n // returning the number and optionally registering the line as\n // changed.\n function changeLine(doc, handle, changeType, op) {\n var no = handle, line = handle;\n if (typeof handle == \"number\") { line = getLine(doc, clipLine(doc, handle)); }\n else { no = lineNo(handle); }\n if (no == null) { return null }\n if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); }\n return line\n }\n\n // The document is represented as a BTree consisting of leaves, with\n // chunk of lines in them, and branches, with up to ten leaves or\n // other branch nodes below them. The top node is always a branch\n // node, and is the document object itself (meaning it has\n // additional methods and properties).\n //\n // All nodes have parent links. The tree is used both to go from\n // line numbers to line objects, and to go from objects to numbers.\n // It also indexes by height, and is used to convert between height\n // and line object, and to find the total height of the document.\n //\n // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html\n\n function LeafChunk(lines) {\n this.lines = lines;\n this.parent = null;\n var height = 0;\n for (var i = 0; i < lines.length; ++i) {\n lines[i].parent = this;\n height += lines[i].height;\n }\n this.height = height;\n }\n\n LeafChunk.prototype = {\n chunkSize: function() { return this.lines.length },\n\n // Remove the n lines at offset 'at'.\n removeInner: function(at, n) {\n for (var i = at, e = at + n; i < e; ++i) {\n var line = this.lines[i];\n this.height -= line.height;\n cleanUpLine(line);\n signalLater(line, \"delete\");\n }\n this.lines.splice(at, n);\n },\n\n // Helper used to collapse a small branch into a single leaf.\n collapse: function(lines) {\n lines.push.apply(lines, this.lines);\n },\n\n // Insert the given array of lines at offset 'at', count them as\n // having the given height.\n insertInner: function(at, lines, height) {\n this.height += height;\n this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));\n for (var i = 0; i < lines.length; ++i) { lines[i].parent = this; }\n },\n\n // Used to iterate over a part of the tree.\n iterN: function(at, n, op) {\n for (var e = at + n; at < e; ++at)\n { if (op(this.lines[at])) { return true } }\n }\n };\n\n function BranchChunk(children) {\n this.children = children;\n var size = 0, height = 0;\n for (var i = 0; i < children.length; ++i) {\n var ch = children[i];\n size += ch.chunkSize(); height += ch.height;\n ch.parent = this;\n }\n this.size = size;\n this.height = height;\n this.parent = null;\n }\n\n BranchChunk.prototype = {\n chunkSize: function() { return this.size },\n\n removeInner: function(at, n) {\n this.size -= n;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var rm = Math.min(n, sz - at), oldHeight = child.height;\n child.removeInner(at, rm);\n this.height -= oldHeight - child.height;\n if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }\n if ((n -= rm) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n // If the result is smaller than 25 lines, ensure that it is a\n // single leaf node.\n if (this.size - n < 25 &&\n (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {\n var lines = [];\n this.collapse(lines);\n this.children = [new LeafChunk(lines)];\n this.children[0].parent = this;\n }\n },\n\n collapse: function(lines) {\n for (var i = 0; i < this.children.length; ++i) { this.children[i].collapse(lines); }\n },\n\n insertInner: function(at, lines, height) {\n this.size += lines.length;\n this.height += height;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at <= sz) {\n child.insertInner(at, lines, height);\n if (child.lines && child.lines.length > 50) {\n // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.\n // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.\n var remaining = child.lines.length % 25 + 25;\n for (var pos = remaining; pos < child.lines.length;) {\n var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));\n child.height -= leaf.height;\n this.children.splice(++i, 0, leaf);\n leaf.parent = this;\n }\n child.lines = child.lines.slice(0, remaining);\n this.maybeSpill();\n }\n break\n }\n at -= sz;\n }\n },\n\n // When a node has grown, check whether it should be split.\n maybeSpill: function() {\n if (this.children.length <= 10) { return }\n var me = this;\n do {\n var spilled = me.children.splice(me.children.length - 5, 5);\n var sibling = new BranchChunk(spilled);\n if (!me.parent) { // Become the parent node\n var copy = new BranchChunk(me.children);\n copy.parent = me;\n me.children = [copy, sibling];\n me = copy;\n } else {\n me.size -= sibling.size;\n me.height -= sibling.height;\n var myIndex = indexOf(me.parent.children, me);\n me.parent.children.splice(myIndex + 1, 0, sibling);\n }\n sibling.parent = me.parent;\n } while (me.children.length > 10)\n me.parent.maybeSpill();\n },\n\n iterN: function(at, n, op) {\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var used = Math.min(n, sz - at);\n if (child.iterN(at, used, op)) { return true }\n if ((n -= used) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n }\n };\n\n // Line widgets are block elements displayed above or below a line.\n\n var LineWidget = function(doc, node, options) {\n if (options) { for (var opt in options) { if (options.hasOwnProperty(opt))\n { this[opt] = options[opt]; } } }\n this.doc = doc;\n this.node = node;\n };\n\n LineWidget.prototype.clear = function () {\n var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);\n if (no == null || !ws) { return }\n for (var i = 0; i < ws.length; ++i) { if (ws[i] == this) { ws.splice(i--, 1); } }\n if (!ws.length) { line.widgets = null; }\n var height = widgetHeight(this);\n updateLineHeight(line, Math.max(0, line.height - height));\n if (cm) {\n runInOp(cm, function () {\n adjustScrollWhenAboveVisible(cm, line, -height);\n regLineChange(cm, no, \"widget\");\n });\n signalLater(cm, \"lineWidgetCleared\", cm, this, no);\n }\n };\n\n LineWidget.prototype.changed = function () {\n var this$1 = this;\n\n var oldH = this.height, cm = this.doc.cm, line = this.line;\n this.height = null;\n var diff = widgetHeight(this) - oldH;\n if (!diff) { return }\n if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); }\n if (cm) {\n runInOp(cm, function () {\n cm.curOp.forceUpdate = true;\n adjustScrollWhenAboveVisible(cm, line, diff);\n signalLater(cm, \"lineWidgetChanged\", cm, this$1, lineNo(line));\n });\n }\n };\n eventMixin(LineWidget);\n\n function adjustScrollWhenAboveVisible(cm, line, diff) {\n if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))\n { addToScrollTop(cm, diff); }\n }\n\n function addLineWidget(doc, handle, node, options) {\n var widget = new LineWidget(doc, node, options);\n var cm = doc.cm;\n if (cm && widget.noHScroll) { cm.display.alignWidgets = true; }\n changeLine(doc, handle, \"widget\", function (line) {\n var widgets = line.widgets || (line.widgets = []);\n if (widget.insertAt == null) { widgets.push(widget); }\n else { widgets.splice(Math.min(widgets.length, Math.max(0, widget.insertAt)), 0, widget); }\n widget.line = line;\n if (cm && !lineIsHidden(doc, line)) {\n var aboveVisible = heightAtLine(line) < doc.scrollTop;\n updateLineHeight(line, line.height + widgetHeight(widget));\n if (aboveVisible) { addToScrollTop(cm, widget.height); }\n cm.curOp.forceUpdate = true;\n }\n return true\n });\n if (cm) { signalLater(cm, \"lineWidgetAdded\", cm, widget, typeof handle == \"number\" ? handle : lineNo(handle)); }\n return widget\n }\n\n // TEXTMARKERS\n\n // Created with markText and setBookmark methods. A TextMarker is a\n // handle that can be used to clear or find a marked position in the\n // document. Line objects hold arrays (markedSpans) containing\n // {from, to, marker} object pointing to such marker objects, and\n // indicating that such a marker is present on that line. Multiple\n // lines may point to the same marker when it spans across lines.\n // The spans will have null for their from/to properties when the\n // marker continues beyond the start/end of the line. Markers have\n // links back to the lines they currently touch.\n\n // Collapsed markers have unique ids, in order to be able to order\n // them, which is needed for uniquely determining an outer marker\n // when they overlap (they may nest, but not partially overlap).\n var nextMarkerId = 0;\n\n var TextMarker = function(doc, type) {\n this.lines = [];\n this.type = type;\n this.doc = doc;\n this.id = ++nextMarkerId;\n };\n\n // Clear the marker.\n TextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n var cm = this.doc.cm, withOp = cm && !cm.curOp;\n if (withOp) { startOperation(cm); }\n if (hasHandler(this, \"clear\")) {\n var found = this.find();\n if (found) { signalLater(this, \"clear\", found.from, found.to); }\n }\n var min = null, max = null;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (cm && !this.collapsed) { regLineChange(cm, lineNo(line), \"text\"); }\n else if (cm) {\n if (span.to != null) { max = lineNo(line); }\n if (span.from != null) { min = lineNo(line); }\n }\n line.markedSpans = removeMarkedSpan(line.markedSpans, span);\n if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)\n { updateLineHeight(line, textHeight(cm.display)); }\n }\n if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) {\n var visual = visualLine(this.lines[i$1]), len = lineLength(visual);\n if (len > cm.display.maxLineLength) {\n cm.display.maxLine = visual;\n cm.display.maxLineLength = len;\n cm.display.maxLineChanged = true;\n }\n } }\n\n if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); }\n this.lines.length = 0;\n this.explicitlyCleared = true;\n if (this.atomic && this.doc.cantEdit) {\n this.doc.cantEdit = false;\n if (cm) { reCheckSelection(cm.doc); }\n }\n if (cm) { signalLater(cm, \"markerCleared\", cm, this, min, max); }\n if (withOp) { endOperation(cm); }\n if (this.parent) { this.parent.clear(); }\n };\n\n // Find the position of the marker in the document. Returns a {from,\n // to} object by default. Side can be passed to get a specific side\n // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the\n // Pos objects returned contain a line object, rather than a line\n // number (used to prevent looking up the same line twice).\n TextMarker.prototype.find = function (side, lineObj) {\n if (side == null && this.type == \"bookmark\") { side = 1; }\n var from, to;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (span.from != null) {\n from = Pos(lineObj ? line : lineNo(line), span.from);\n if (side == -1) { return from }\n }\n if (span.to != null) {\n to = Pos(lineObj ? line : lineNo(line), span.to);\n if (side == 1) { return to }\n }\n }\n return from && {from: from, to: to}\n };\n\n // Signals that the marker's widget changed, and surrounding layout\n // should be recomputed.\n TextMarker.prototype.changed = function () {\n var this$1 = this;\n\n var pos = this.find(-1, true), widget = this, cm = this.doc.cm;\n if (!pos || !cm) { return }\n runInOp(cm, function () {\n var line = pos.line, lineN = lineNo(pos.line);\n var view = findViewForLine(cm, lineN);\n if (view) {\n clearLineMeasurementCacheFor(view);\n cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;\n }\n cm.curOp.updateMaxLine = true;\n if (!lineIsHidden(widget.doc, line) && widget.height != null) {\n var oldHeight = widget.height;\n widget.height = null;\n var dHeight = widgetHeight(widget) - oldHeight;\n if (dHeight)\n { updateLineHeight(line, line.height + dHeight); }\n }\n signalLater(cm, \"markerChanged\", cm, this$1);\n });\n };\n\n TextMarker.prototype.attachLine = function (line) {\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp;\n if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)\n { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); }\n }\n this.lines.push(line);\n };\n\n TextMarker.prototype.detachLine = function (line) {\n this.lines.splice(indexOf(this.lines, line), 1);\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp\n ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);\n }\n };\n eventMixin(TextMarker);\n\n // Create a marker, wire it up to the right lines, and\n function markText(doc, from, to, options, type) {\n // Shared markers (across linked documents) are handled separately\n // (markTextShared will call out to this again, once per\n // document).\n if (options && options.shared) { return markTextShared(doc, from, to, options, type) }\n // Ensure we are in an operation.\n if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) }\n\n var marker = new TextMarker(doc, type), diff = cmp(from, to);\n if (options) { copyObj(options, marker, false); }\n // Don't connect empty markers unless clearWhenEmpty is false\n if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)\n { return marker }\n if (marker.replacedWith) {\n // Showing up as a widget implies collapsed (widget replaces text)\n marker.collapsed = true;\n marker.widgetNode = eltP(\"span\", [marker.replacedWith], \"CodeMirror-widget\");\n if (!options.handleMouseEvents) { marker.widgetNode.setAttribute(\"cm-ignore-events\", \"true\"); }\n if (options.insertLeft) { marker.widgetNode.insertLeft = true; }\n }\n if (marker.collapsed) {\n if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||\n from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))\n { throw new Error(\"Inserting collapsed marker partially overlapping an existing one\") }\n seeCollapsedSpans();\n }\n\n if (marker.addToHistory)\n { addChangeToHistory(doc, {from: from, to: to, origin: \"markText\"}, doc.sel, NaN); }\n\n var curLine = from.line, cm = doc.cm, updateMaxLine;\n doc.iter(curLine, to.line + 1, function (line) {\n if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)\n { updateMaxLine = true; }\n if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); }\n addMarkedSpan(line, new MarkedSpan(marker,\n curLine == from.line ? from.ch : null,\n curLine == to.line ? to.ch : null), doc.cm && doc.cm.curOp);\n ++curLine;\n });\n // lineIsHidden depends on the presence of the spans, so needs a second pass\n if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) {\n if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); }\n }); }\n\n if (marker.clearOnEnter) { on(marker, \"beforeCursorEnter\", function () { return marker.clear(); }); }\n\n if (marker.readOnly) {\n seeReadOnlySpans();\n if (doc.history.done.length || doc.history.undone.length)\n { doc.clearHistory(); }\n }\n if (marker.collapsed) {\n marker.id = ++nextMarkerId;\n marker.atomic = true;\n }\n if (cm) {\n // Sync editor state\n if (updateMaxLine) { cm.curOp.updateMaxLine = true; }\n if (marker.collapsed)\n { regChange(cm, from.line, to.line + 1); }\n else if (marker.className || marker.startStyle || marker.endStyle || marker.css ||\n marker.attributes || marker.title)\n { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, \"text\"); } }\n if (marker.atomic) { reCheckSelection(cm.doc); }\n signalLater(cm, \"markerAdded\", cm, marker);\n }\n return marker\n }\n\n // SHARED TEXTMARKERS\n\n // A shared marker spans multiple linked documents. It is\n // implemented as a meta-marker-object controlling multiple normal\n // markers.\n var SharedTextMarker = function(markers, primary) {\n this.markers = markers;\n this.primary = primary;\n for (var i = 0; i < markers.length; ++i)\n { markers[i].parent = this; }\n };\n\n SharedTextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n this.explicitlyCleared = true;\n for (var i = 0; i < this.markers.length; ++i)\n { this.markers[i].clear(); }\n signalLater(this, \"clear\");\n };\n\n SharedTextMarker.prototype.find = function (side, lineObj) {\n return this.primary.find(side, lineObj)\n };\n eventMixin(SharedTextMarker);\n\n function markTextShared(doc, from, to, options, type) {\n options = copyObj(options);\n options.shared = false;\n var markers = [markText(doc, from, to, options, type)], primary = markers[0];\n var widget = options.widgetNode;\n linkedDocs(doc, function (doc) {\n if (widget) { options.widgetNode = widget.cloneNode(true); }\n markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));\n for (var i = 0; i < doc.linked.length; ++i)\n { if (doc.linked[i].isParent) { return } }\n primary = lst(markers);\n });\n return new SharedTextMarker(markers, primary)\n }\n\n function findSharedMarkers(doc) {\n return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; })\n }\n\n function copySharedMarkers(doc, markers) {\n for (var i = 0; i < markers.length; i++) {\n var marker = markers[i], pos = marker.find();\n var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);\n if (cmp(mFrom, mTo)) {\n var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);\n marker.markers.push(subMark);\n subMark.parent = marker;\n }\n }\n }\n\n function detachSharedMarkers(markers) {\n var loop = function ( i ) {\n var marker = markers[i], linked = [marker.primary.doc];\n linkedDocs(marker.primary.doc, function (d) { return linked.push(d); });\n for (var j = 0; j < marker.markers.length; j++) {\n var subMarker = marker.markers[j];\n if (indexOf(linked, subMarker.doc) == -1) {\n subMarker.parent = null;\n marker.markers.splice(j--, 1);\n }\n }\n };\n\n for (var i = 0; i < markers.length; i++) loop( i );\n }\n\n var nextDocId = 0;\n var Doc = function(text, mode, firstLine, lineSep, direction) {\n if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) }\n if (firstLine == null) { firstLine = 0; }\n\n BranchChunk.call(this, [new LeafChunk([new Line(\"\", null)])]);\n this.first = firstLine;\n this.scrollTop = this.scrollLeft = 0;\n this.cantEdit = false;\n this.cleanGeneration = 1;\n this.modeFrontier = this.highlightFrontier = firstLine;\n var start = Pos(firstLine, 0);\n this.sel = simpleSelection(start);\n this.history = new History(null);\n this.id = ++nextDocId;\n this.modeOption = mode;\n this.lineSep = lineSep;\n this.direction = (direction == \"rtl\") ? \"rtl\" : \"ltr\";\n this.extend = false;\n\n if (typeof text == \"string\") { text = this.splitLines(text); }\n updateDoc(this, {from: start, to: start, text: text});\n setSelection(this, simpleSelection(start), sel_dontScroll);\n };\n\n Doc.prototype = createObj(BranchChunk.prototype, {\n constructor: Doc,\n // Iterate over the document. Supports two forms -- with only one\n // argument, it calls that for each line in the document. With\n // three, it iterates over the range given by the first two (with\n // the second being non-inclusive).\n iter: function(from, to, op) {\n if (op) { this.iterN(from - this.first, to - from, op); }\n else { this.iterN(this.first, this.first + this.size, from); }\n },\n\n // Non-public interface for adding and removing lines.\n insert: function(at, lines) {\n var height = 0;\n for (var i = 0; i < lines.length; ++i) { height += lines[i].height; }\n this.insertInner(at - this.first, lines, height);\n },\n remove: function(at, n) { this.removeInner(at - this.first, n); },\n\n // From here, the methods are part of the public interface. Most\n // are also available from CodeMirror (editor) instances.\n\n getValue: function(lineSep) {\n var lines = getLines(this, this.first, this.first + this.size);\n if (lineSep === false) { return lines }\n return lines.join(lineSep || this.lineSeparator())\n },\n setValue: docMethodOp(function(code) {\n var top = Pos(this.first, 0), last = this.first + this.size - 1;\n makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),\n text: this.splitLines(code), origin: \"setValue\", full: true}, true);\n if (this.cm) { scrollToCoords(this.cm, 0, 0); }\n setSelection(this, simpleSelection(top), sel_dontScroll);\n }),\n replaceRange: function(code, from, to, origin) {\n from = clipPos(this, from);\n to = to ? clipPos(this, to) : from;\n replaceRange(this, code, from, to, origin);\n },\n getRange: function(from, to, lineSep) {\n var lines = getBetween(this, clipPos(this, from), clipPos(this, to));\n if (lineSep === false) { return lines }\n if (lineSep === '') { return lines.join('') }\n return lines.join(lineSep || this.lineSeparator())\n },\n\n getLine: function(line) {var l = this.getLineHandle(line); return l && l.text},\n\n getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }},\n getLineNumber: function(line) {return lineNo(line)},\n\n getLineHandleVisualStart: function(line) {\n if (typeof line == \"number\") { line = getLine(this, line); }\n return visualLine(line)\n },\n\n lineCount: function() {return this.size},\n firstLine: function() {return this.first},\n lastLine: function() {return this.first + this.size - 1},\n\n clipPos: function(pos) {return clipPos(this, pos)},\n\n getCursor: function(start) {\n var range = this.sel.primary(), pos;\n if (start == null || start == \"head\") { pos = range.head; }\n else if (start == \"anchor\") { pos = range.anchor; }\n else if (start == \"end\" || start == \"to\" || start === false) { pos = range.to(); }\n else { pos = range.from(); }\n return pos\n },\n listSelections: function() { return this.sel.ranges },\n somethingSelected: function() {return this.sel.somethingSelected()},\n\n setCursor: docMethodOp(function(line, ch, options) {\n setSimpleSelection(this, clipPos(this, typeof line == \"number\" ? Pos(line, ch || 0) : line), null, options);\n }),\n setSelection: docMethodOp(function(anchor, head, options) {\n setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);\n }),\n extendSelection: docMethodOp(function(head, other, options) {\n extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);\n }),\n extendSelections: docMethodOp(function(heads, options) {\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n extendSelectionsBy: docMethodOp(function(f, options) {\n var heads = map(this.sel.ranges, f);\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n setSelections: docMethodOp(function(ranges, primary, options) {\n if (!ranges.length) { return }\n var out = [];\n for (var i = 0; i < ranges.length; i++)\n { out[i] = new Range(clipPos(this, ranges[i].anchor),\n clipPos(this, ranges[i].head || ranges[i].anchor)); }\n if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); }\n setSelection(this, normalizeSelection(this.cm, out, primary), options);\n }),\n addSelection: docMethodOp(function(anchor, head, options) {\n var ranges = this.sel.ranges.slice(0);\n ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));\n setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options);\n }),\n\n getSelection: function(lineSep) {\n var ranges = this.sel.ranges, lines;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n lines = lines ? lines.concat(sel) : sel;\n }\n if (lineSep === false) { return lines }\n else { return lines.join(lineSep || this.lineSeparator()) }\n },\n getSelections: function(lineSep) {\n var parts = [], ranges = this.sel.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n if (lineSep !== false) { sel = sel.join(lineSep || this.lineSeparator()); }\n parts[i] = sel;\n }\n return parts\n },\n replaceSelection: function(code, collapse, origin) {\n var dup = [];\n for (var i = 0; i < this.sel.ranges.length; i++)\n { dup[i] = code; }\n this.replaceSelections(dup, collapse, origin || \"+input\");\n },\n replaceSelections: docMethodOp(function(code, collapse, origin) {\n var changes = [], sel = this.sel;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin};\n }\n var newSel = collapse && collapse != \"end\" && computeReplacedSel(this, changes, collapse);\n for (var i$1 = changes.length - 1; i$1 >= 0; i$1--)\n { makeChange(this, changes[i$1]); }\n if (newSel) { setSelectionReplaceHistory(this, newSel); }\n else if (this.cm) { ensureCursorVisible(this.cm); }\n }),\n undo: docMethodOp(function() {makeChangeFromHistory(this, \"undo\");}),\n redo: docMethodOp(function() {makeChangeFromHistory(this, \"redo\");}),\n undoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"undo\", true);}),\n redoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"redo\", true);}),\n\n setExtending: function(val) {this.extend = val;},\n getExtending: function() {return this.extend},\n\n historySize: function() {\n var hist = this.history, done = 0, undone = 0;\n for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } }\n for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } }\n return {undo: done, redo: undone}\n },\n clearHistory: function() {\n var this$1 = this;\n\n this.history = new History(this.history);\n linkedDocs(this, function (doc) { return doc.history = this$1.history; }, true);\n },\n\n markClean: function() {\n this.cleanGeneration = this.changeGeneration(true);\n },\n changeGeneration: function(forceSplit) {\n if (forceSplit)\n { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; }\n return this.history.generation\n },\n isClean: function (gen) {\n return this.history.generation == (gen || this.cleanGeneration)\n },\n\n getHistory: function() {\n return {done: copyHistoryArray(this.history.done),\n undone: copyHistoryArray(this.history.undone)}\n },\n setHistory: function(histData) {\n var hist = this.history = new History(this.history);\n hist.done = copyHistoryArray(histData.done.slice(0), null, true);\n hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);\n },\n\n setGutterMarker: docMethodOp(function(line, gutterID, value) {\n return changeLine(this, line, \"gutter\", function (line) {\n var markers = line.gutterMarkers || (line.gutterMarkers = {});\n markers[gutterID] = value;\n if (!value && isEmpty(markers)) { line.gutterMarkers = null; }\n return true\n })\n }),\n\n clearGutter: docMethodOp(function(gutterID) {\n var this$1 = this;\n\n this.iter(function (line) {\n if (line.gutterMarkers && line.gutterMarkers[gutterID]) {\n changeLine(this$1, line, \"gutter\", function () {\n line.gutterMarkers[gutterID] = null;\n if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; }\n return true\n });\n }\n });\n }),\n\n lineInfo: function(line) {\n var n;\n if (typeof line == \"number\") {\n if (!isLine(this, line)) { return null }\n n = line;\n line = getLine(this, line);\n if (!line) { return null }\n } else {\n n = lineNo(line);\n if (n == null) { return null }\n }\n return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,\n textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,\n widgets: line.widgets}\n },\n\n addLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n if (!line[prop]) { line[prop] = cls; }\n else if (classTest(cls).test(line[prop])) { return false }\n else { line[prop] += \" \" + cls; }\n return true\n })\n }),\n removeLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n var cur = line[prop];\n if (!cur) { return false }\n else if (cls == null) { line[prop] = null; }\n else {\n var found = cur.match(classTest(cls));\n if (!found) { return false }\n var end = found.index + found[0].length;\n line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? \"\" : \" \") + cur.slice(end) || null;\n }\n return true\n })\n }),\n\n addLineWidget: docMethodOp(function(handle, node, options) {\n return addLineWidget(this, handle, node, options)\n }),\n removeLineWidget: function(widget) { widget.clear(); },\n\n markText: function(from, to, options) {\n return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || \"range\")\n },\n setBookmark: function(pos, options) {\n var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),\n insertLeft: options && options.insertLeft,\n clearWhenEmpty: false, shared: options && options.shared,\n handleMouseEvents: options && options.handleMouseEvents};\n pos = clipPos(this, pos);\n return markText(this, pos, pos, realOpts, \"bookmark\")\n },\n findMarksAt: function(pos) {\n pos = clipPos(this, pos);\n var markers = [], spans = getLine(this, pos.line).markedSpans;\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if ((span.from == null || span.from <= pos.ch) &&\n (span.to == null || span.to >= pos.ch))\n { markers.push(span.marker.parent || span.marker); }\n } }\n return markers\n },\n findMarks: function(from, to, filter) {\n from = clipPos(this, from); to = clipPos(this, to);\n var found = [], lineNo = from.line;\n this.iter(from.line, to.line + 1, function (line) {\n var spans = line.markedSpans;\n if (spans) { for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n if (!(span.to != null && lineNo == from.line && from.ch >= span.to ||\n span.from == null && lineNo != from.line ||\n span.from != null && lineNo == to.line && span.from >= to.ch) &&\n (!filter || filter(span.marker)))\n { found.push(span.marker.parent || span.marker); }\n } }\n ++lineNo;\n });\n return found\n },\n getAllMarks: function() {\n var markers = [];\n this.iter(function (line) {\n var sps = line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i)\n { if (sps[i].from != null) { markers.push(sps[i].marker); } } }\n });\n return markers\n },\n\n posFromIndex: function(off) {\n var ch, lineNo = this.first, sepSize = this.lineSeparator().length;\n this.iter(function (line) {\n var sz = line.text.length + sepSize;\n if (sz > off) { ch = off; return true }\n off -= sz;\n ++lineNo;\n });\n return clipPos(this, Pos(lineNo, ch))\n },\n indexFromPos: function (coords) {\n coords = clipPos(this, coords);\n var index = coords.ch;\n if (coords.line < this.first || coords.ch < 0) { return 0 }\n var sepSize = this.lineSeparator().length;\n this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value\n index += line.text.length + sepSize;\n });\n return index\n },\n\n copy: function(copyHistory) {\n var doc = new Doc(getLines(this, this.first, this.first + this.size),\n this.modeOption, this.first, this.lineSep, this.direction);\n doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;\n doc.sel = this.sel;\n doc.extend = false;\n if (copyHistory) {\n doc.history.undoDepth = this.history.undoDepth;\n doc.setHistory(this.getHistory());\n }\n return doc\n },\n\n linkedDoc: function(options) {\n if (!options) { options = {}; }\n var from = this.first, to = this.first + this.size;\n if (options.from != null && options.from > from) { from = options.from; }\n if (options.to != null && options.to < to) { to = options.to; }\n var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction);\n if (options.sharedHist) { copy.history = this.history\n ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});\n copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];\n copySharedMarkers(copy, findSharedMarkers(this));\n return copy\n },\n unlinkDoc: function(other) {\n if (other instanceof CodeMirror) { other = other.doc; }\n if (this.linked) { for (var i = 0; i < this.linked.length; ++i) {\n var link = this.linked[i];\n if (link.doc != other) { continue }\n this.linked.splice(i, 1);\n other.unlinkDoc(this);\n detachSharedMarkers(findSharedMarkers(this));\n break\n } }\n // If the histories were shared, split them again\n if (other.history == this.history) {\n var splitIds = [other.id];\n linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true);\n other.history = new History(null);\n other.history.done = copyHistoryArray(this.history.done, splitIds);\n other.history.undone = copyHistoryArray(this.history.undone, splitIds);\n }\n },\n iterLinkedDocs: function(f) {linkedDocs(this, f);},\n\n getMode: function() {return this.mode},\n getEditor: function() {return this.cm},\n\n splitLines: function(str) {\n if (this.lineSep) { return str.split(this.lineSep) }\n return splitLinesAuto(str)\n },\n lineSeparator: function() { return this.lineSep || \"\\n\" },\n\n setDirection: docMethodOp(function (dir) {\n if (dir != \"rtl\") { dir = \"ltr\"; }\n if (dir == this.direction) { return }\n this.direction = dir;\n this.iter(function (line) { return line.order = null; });\n if (this.cm) { directionChanged(this.cm); }\n })\n });\n\n // Public alias.\n Doc.prototype.eachLine = Doc.prototype.iter;\n\n // Kludge to work around strange IE behavior where it'll sometimes\n // re-fire a series of drag-related events right after the drop (#1551)\n var lastDrop = 0;\n\n function onDrop(e) {\n var cm = this;\n clearDragCursor(cm);\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))\n { return }\n e_preventDefault(e);\n if (ie) { lastDrop = +new Date; }\n var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;\n if (!pos || cm.isReadOnly()) { return }\n // Might be a file drop, in which case we simply extract the text\n // and insert it.\n if (files && files.length && window.FileReader && window.File) {\n var n = files.length, text = Array(n), read = 0;\n var markAsReadAndPasteIfAllFilesAreRead = function () {\n if (++read == n) {\n operation(cm, function () {\n pos = clipPos(cm.doc, pos);\n var change = {from: pos, to: pos,\n text: cm.doc.splitLines(\n text.filter(function (t) { return t != null; }).join(cm.doc.lineSeparator())),\n origin: \"paste\"};\n makeChange(cm.doc, change);\n setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change))));\n })();\n }\n };\n var readTextFromFile = function (file, i) {\n if (cm.options.allowDropFileTypes &&\n indexOf(cm.options.allowDropFileTypes, file.type) == -1) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n var reader = new FileReader;\n reader.onerror = function () { return markAsReadAndPasteIfAllFilesAreRead(); };\n reader.onload = function () {\n var content = reader.result;\n if (/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(content)) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n text[i] = content;\n markAsReadAndPasteIfAllFilesAreRead();\n };\n reader.readAsText(file);\n };\n for (var i = 0; i < files.length; i++) { readTextFromFile(files[i], i); }\n } else { // Normal drop\n // Don't do a replace if the drop happened inside of the selected text.\n if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {\n cm.state.draggingText(e);\n // Ensure the editor is re-focused\n setTimeout(function () { return cm.display.input.focus(); }, 20);\n return\n }\n try {\n var text$1 = e.dataTransfer.getData(\"Text\");\n if (text$1) {\n var selected;\n if (cm.state.draggingText && !cm.state.draggingText.copy)\n { selected = cm.listSelections(); }\n setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));\n if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1)\n { replaceRange(cm.doc, \"\", selected[i$1].anchor, selected[i$1].head, \"drag\"); } }\n cm.replaceSelection(text$1, \"around\", \"paste\");\n cm.display.input.focus();\n }\n }\n catch(e$1){}\n }\n }\n\n function onDragStart(cm, e) {\n if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return }\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return }\n\n e.dataTransfer.setData(\"Text\", cm.getSelection());\n e.dataTransfer.effectAllowed = \"copyMove\";\n\n // Use dummy image instead of default browsers image.\n // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.\n if (e.dataTransfer.setDragImage && !safari) {\n var img = elt(\"img\", null, null, \"position: fixed; left: 0; top: 0;\");\n img.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (presto) {\n img.width = img.height = 1;\n cm.display.wrapper.appendChild(img);\n // Force a relayout, or Opera won't use our image for some obscure reason\n img._top = img.offsetTop;\n }\n e.dataTransfer.setDragImage(img, 0, 0);\n if (presto) { img.parentNode.removeChild(img); }\n }\n }\n\n function onDragOver(cm, e) {\n var pos = posFromMouse(cm, e);\n if (!pos) { return }\n var frag = document.createDocumentFragment();\n drawSelectionCursor(cm, pos, frag);\n if (!cm.display.dragCursor) {\n cm.display.dragCursor = elt(\"div\", null, \"CodeMirror-cursors CodeMirror-dragcursors\");\n cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);\n }\n removeChildrenAndAdd(cm.display.dragCursor, frag);\n }\n\n function clearDragCursor(cm) {\n if (cm.display.dragCursor) {\n cm.display.lineSpace.removeChild(cm.display.dragCursor);\n cm.display.dragCursor = null;\n }\n }\n\n // These must be handled carefully, because naively registering a\n // handler for each editor will cause the editors to never be\n // garbage collected.\n\n function forEachCodeMirror(f) {\n if (!document.getElementsByClassName) { return }\n var byClass = document.getElementsByClassName(\"CodeMirror\"), editors = [];\n for (var i = 0; i < byClass.length; i++) {\n var cm = byClass[i].CodeMirror;\n if (cm) { editors.push(cm); }\n }\n if (editors.length) { editors[0].operation(function () {\n for (var i = 0; i < editors.length; i++) { f(editors[i]); }\n }); }\n }\n\n var globalsRegistered = false;\n function ensureGlobalHandlers() {\n if (globalsRegistered) { return }\n registerGlobalHandlers();\n globalsRegistered = true;\n }\n function registerGlobalHandlers() {\n // When the window resizes, we need to refresh active editors.\n var resizeTimer;\n on(window, \"resize\", function () {\n if (resizeTimer == null) { resizeTimer = setTimeout(function () {\n resizeTimer = null;\n forEachCodeMirror(onResize);\n }, 100); }\n });\n // When the window loses focus, we want to show the editor as blurred\n on(window, \"blur\", function () { return forEachCodeMirror(onBlur); });\n }\n // Called when the window resizes\n function onResize(cm) {\n var d = cm.display;\n // Might be a text scaling operation, clear size caches.\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n d.scrollbarsClipped = false;\n cm.setSize();\n }\n\n var keyNames = {\n 3: \"Pause\", 8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 16: \"Shift\", 17: \"Ctrl\", 18: \"Alt\",\n 19: \"Pause\", 20: \"CapsLock\", 27: \"Esc\", 32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\",\n 36: \"Home\", 37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"PrintScrn\", 45: \"Insert\",\n 46: \"Delete\", 59: \";\", 61: \"=\", 91: \"Mod\", 92: \"Mod\", 93: \"Mod\",\n 106: \"*\", 107: \"=\", 109: \"-\", 110: \".\", 111: \"/\", 145: \"ScrollLock\",\n 173: \"-\", 186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n 221: \"]\", 222: \"'\", 224: \"Mod\", 63232: \"Up\", 63233: \"Down\", 63234: \"Left\", 63235: \"Right\", 63272: \"Delete\",\n 63273: \"Home\", 63275: \"End\", 63276: \"PageUp\", 63277: \"PageDown\", 63302: \"Insert\"\n };\n\n // Number keys\n for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); }\n // Alphabetic keys\n for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); }\n // Function keys\n for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = \"F\" + i$2; }\n\n var keyMap = {};\n\n keyMap.basic = {\n \"Left\": \"goCharLeft\", \"Right\": \"goCharRight\", \"Up\": \"goLineUp\", \"Down\": \"goLineDown\",\n \"End\": \"goLineEnd\", \"Home\": \"goLineStartSmart\", \"PageUp\": \"goPageUp\", \"PageDown\": \"goPageDown\",\n \"Delete\": \"delCharAfter\", \"Backspace\": \"delCharBefore\", \"Shift-Backspace\": \"delCharBefore\",\n \"Tab\": \"defaultTab\", \"Shift-Tab\": \"indentAuto\",\n \"Enter\": \"newlineAndIndent\", \"Insert\": \"toggleOverwrite\",\n \"Esc\": \"singleSelection\"\n };\n // Note that the save and find-related commands aren't defined by\n // default. User code or addons can define them. Unknown commands\n // are simply ignored.\n keyMap.pcDefault = {\n \"Ctrl-A\": \"selectAll\", \"Ctrl-D\": \"deleteLine\", \"Ctrl-Z\": \"undo\", \"Shift-Ctrl-Z\": \"redo\", \"Ctrl-Y\": \"redo\",\n \"Ctrl-Home\": \"goDocStart\", \"Ctrl-End\": \"goDocEnd\", \"Ctrl-Up\": \"goLineUp\", \"Ctrl-Down\": \"goLineDown\",\n \"Ctrl-Left\": \"goGroupLeft\", \"Ctrl-Right\": \"goGroupRight\", \"Alt-Left\": \"goLineStart\", \"Alt-Right\": \"goLineEnd\",\n \"Ctrl-Backspace\": \"delGroupBefore\", \"Ctrl-Delete\": \"delGroupAfter\", \"Ctrl-S\": \"save\", \"Ctrl-F\": \"find\",\n \"Ctrl-G\": \"findNext\", \"Shift-Ctrl-G\": \"findPrev\", \"Shift-Ctrl-F\": \"replace\", \"Shift-Ctrl-R\": \"replaceAll\",\n \"Ctrl-[\": \"indentLess\", \"Ctrl-]\": \"indentMore\",\n \"Ctrl-U\": \"undoSelection\", \"Shift-Ctrl-U\": \"redoSelection\", \"Alt-U\": \"redoSelection\",\n \"fallthrough\": \"basic\"\n };\n // Very basic readline/emacs-style bindings, which are standard on Mac.\n keyMap.emacsy = {\n \"Ctrl-F\": \"goCharRight\", \"Ctrl-B\": \"goCharLeft\", \"Ctrl-P\": \"goLineUp\", \"Ctrl-N\": \"goLineDown\",\n \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\", \"Ctrl-V\": \"goPageDown\", \"Shift-Ctrl-V\": \"goPageUp\",\n \"Ctrl-D\": \"delCharAfter\", \"Ctrl-H\": \"delCharBefore\", \"Alt-Backspace\": \"delWordBefore\", \"Ctrl-K\": \"killLine\",\n \"Ctrl-T\": \"transposeChars\", \"Ctrl-O\": \"openLine\"\n };\n keyMap.macDefault = {\n \"Cmd-A\": \"selectAll\", \"Cmd-D\": \"deleteLine\", \"Cmd-Z\": \"undo\", \"Shift-Cmd-Z\": \"redo\", \"Cmd-Y\": \"redo\",\n \"Cmd-Home\": \"goDocStart\", \"Cmd-Up\": \"goDocStart\", \"Cmd-End\": \"goDocEnd\", \"Cmd-Down\": \"goDocEnd\", \"Alt-Left\": \"goGroupLeft\",\n \"Alt-Right\": \"goGroupRight\", \"Cmd-Left\": \"goLineLeft\", \"Cmd-Right\": \"goLineRight\", \"Alt-Backspace\": \"delGroupBefore\",\n \"Ctrl-Alt-Backspace\": \"delGroupAfter\", \"Alt-Delete\": \"delGroupAfter\", \"Cmd-S\": \"save\", \"Cmd-F\": \"find\",\n \"Cmd-G\": \"findNext\", \"Shift-Cmd-G\": \"findPrev\", \"Cmd-Alt-F\": \"replace\", \"Shift-Cmd-Alt-F\": \"replaceAll\",\n \"Cmd-[\": \"indentLess\", \"Cmd-]\": \"indentMore\", \"Cmd-Backspace\": \"delWrappedLineLeft\", \"Cmd-Delete\": \"delWrappedLineRight\",\n \"Cmd-U\": \"undoSelection\", \"Shift-Cmd-U\": \"redoSelection\", \"Ctrl-Up\": \"goDocStart\", \"Ctrl-Down\": \"goDocEnd\",\n \"fallthrough\": [\"basic\", \"emacsy\"]\n };\n keyMap[\"default\"] = mac ? keyMap.macDefault : keyMap.pcDefault;\n\n // KEYMAP DISPATCH\n\n function normalizeKeyName(name) {\n var parts = name.split(/-(?!$)/);\n name = parts[parts.length - 1];\n var alt, ctrl, shift, cmd;\n for (var i = 0; i < parts.length - 1; i++) {\n var mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; }\n else if (/^a(lt)?$/i.test(mod)) { alt = true; }\n else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; }\n else if (/^s(hift)?$/i.test(mod)) { shift = true; }\n else { throw new Error(\"Unrecognized modifier name: \" + mod) }\n }\n if (alt) { name = \"Alt-\" + name; }\n if (ctrl) { name = \"Ctrl-\" + name; }\n if (cmd) { name = \"Cmd-\" + name; }\n if (shift) { name = \"Shift-\" + name; }\n return name\n }\n\n // This is a kludge to keep keymaps mostly working as raw objects\n // (backwards compatibility) while at the same time support features\n // like normalization and multi-stroke key bindings. It compiles a\n // new normalized keymap, and then updates the old object to reflect\n // this.\n function normalizeKeyMap(keymap) {\n var copy = {};\n for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) {\n var value = keymap[keyname];\n if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue }\n if (value == \"...\") { delete keymap[keyname]; continue }\n\n var keys = map(keyname.split(\" \"), normalizeKeyName);\n for (var i = 0; i < keys.length; i++) {\n var val = (void 0), name = (void 0);\n if (i == keys.length - 1) {\n name = keys.join(\" \");\n val = value;\n } else {\n name = keys.slice(0, i + 1).join(\" \");\n val = \"...\";\n }\n var prev = copy[name];\n if (!prev) { copy[name] = val; }\n else if (prev != val) { throw new Error(\"Inconsistent bindings for \" + name) }\n }\n delete keymap[keyname];\n } }\n for (var prop in copy) { keymap[prop] = copy[prop]; }\n return keymap\n }\n\n function lookupKey(key, map, handle, context) {\n map = getKeyMap(map);\n var found = map.call ? map.call(key, context) : map[key];\n if (found === false) { return \"nothing\" }\n if (found === \"...\") { return \"multi\" }\n if (found != null && handle(found)) { return \"handled\" }\n\n if (map.fallthrough) {\n if (Object.prototype.toString.call(map.fallthrough) != \"[object Array]\")\n { return lookupKey(key, map.fallthrough, handle, context) }\n for (var i = 0; i < map.fallthrough.length; i++) {\n var result = lookupKey(key, map.fallthrough[i], handle, context);\n if (result) { return result }\n }\n }\n }\n\n // Modifier key presses don't count as 'real' key presses for the\n // purpose of keymap fallthrough.\n function isModifierKey(value) {\n var name = typeof value == \"string\" ? value : keyNames[value.keyCode];\n return name == \"Ctrl\" || name == \"Alt\" || name == \"Shift\" || name == \"Mod\"\n }\n\n function addModifierNames(name, event, noShift) {\n var base = name;\n if (event.altKey && base != \"Alt\") { name = \"Alt-\" + name; }\n if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != \"Ctrl\") { name = \"Ctrl-\" + name; }\n if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != \"Mod\") { name = \"Cmd-\" + name; }\n if (!noShift && event.shiftKey && base != \"Shift\") { name = \"Shift-\" + name; }\n return name\n }\n\n // Look up the name of a key as indicated by an event object.\n function keyName(event, noShift) {\n if (presto && event.keyCode == 34 && event[\"char\"]) { return false }\n var name = keyNames[event.keyCode];\n if (name == null || event.altGraphKey) { return false }\n // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause,\n // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+)\n if (event.keyCode == 3 && event.code) { name = event.code; }\n return addModifierNames(name, event, noShift)\n }\n\n function getKeyMap(val) {\n return typeof val == \"string\" ? keyMap[val] : val\n }\n\n // Helper for deleting text near the selection(s), used to implement\n // backspace, delete, and similar functionality.\n function deleteNearSelection(cm, compute) {\n var ranges = cm.doc.sel.ranges, kill = [];\n // Build up a set of ranges to kill first, merging overlapping\n // ranges.\n for (var i = 0; i < ranges.length; i++) {\n var toKill = compute(ranges[i]);\n while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {\n var replaced = kill.pop();\n if (cmp(replaced.from, toKill.from) < 0) {\n toKill.from = replaced.from;\n break\n }\n }\n kill.push(toKill);\n }\n // Next, remove those actual ranges.\n runInOp(cm, function () {\n for (var i = kill.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, \"\", kill[i].from, kill[i].to, \"+delete\"); }\n ensureCursorVisible(cm);\n });\n }\n\n function moveCharLogically(line, ch, dir) {\n var target = skipExtendingChars(line.text, ch + dir, dir);\n return target < 0 || target > line.text.length ? null : target\n }\n\n function moveLogically(line, start, dir) {\n var ch = moveCharLogically(line, start.ch, dir);\n return ch == null ? null : new Pos(start.line, ch, dir < 0 ? \"after\" : \"before\")\n }\n\n function endOfLine(visually, cm, lineObj, lineNo, dir) {\n if (visually) {\n if (cm.doc.direction == \"rtl\") { dir = -dir; }\n var order = getOrder(lineObj, cm.doc.direction);\n if (order) {\n var part = dir < 0 ? lst(order) : order[0];\n var moveInStorageOrder = (dir < 0) == (part.level == 1);\n var sticky = moveInStorageOrder ? \"after\" : \"before\";\n var ch;\n // With a wrapped rtl chunk (possibly spanning multiple bidi parts),\n // it could be that the last bidi part is not on the last visual line,\n // since visual lines contain content order-consecutive chunks.\n // Thus, in rtl, we are looking for the first (content-order) character\n // in the rtl chunk that is on the last line (that is, the same line\n // as the last (content-order) character).\n if (part.level > 0 || cm.doc.direction == \"rtl\") {\n var prep = prepareMeasureForLine(cm, lineObj);\n ch = dir < 0 ? lineObj.text.length - 1 : 0;\n var targetTop = measureCharPrepared(cm, prep, ch).top;\n ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);\n if (sticky == \"before\") { ch = moveCharLogically(lineObj, ch, 1); }\n } else { ch = dir < 0 ? part.to : part.from; }\n return new Pos(lineNo, ch, sticky)\n }\n }\n return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? \"before\" : \"after\")\n }\n\n function moveVisually(cm, line, start, dir) {\n var bidi = getOrder(line, cm.doc.direction);\n if (!bidi) { return moveLogically(line, start, dir) }\n if (start.ch >= line.text.length) {\n start.ch = line.text.length;\n start.sticky = \"before\";\n } else if (start.ch <= 0) {\n start.ch = 0;\n start.sticky = \"after\";\n }\n var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];\n if (cm.doc.direction == \"ltr\" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {\n // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,\n // nothing interesting happens.\n return moveLogically(line, start, dir)\n }\n\n var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };\n var prep;\n var getWrappedLineExtent = function (ch) {\n if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }\n prep = prep || prepareMeasureForLine(cm, line);\n return wrappedLineExtentChar(cm, line, prep, ch)\n };\n var wrappedLineExtent = getWrappedLineExtent(start.sticky == \"before\" ? mv(start, -1) : start.ch);\n\n if (cm.doc.direction == \"rtl\" || part.level == 1) {\n var moveInStorageOrder = (part.level == 1) == (dir < 0);\n var ch = mv(start, moveInStorageOrder ? 1 : -1);\n if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {\n // Case 2: We move within an rtl part or in an rtl editor on the same visual line\n var sticky = moveInStorageOrder ? \"before\" : \"after\";\n return new Pos(start.line, ch, sticky)\n }\n }\n\n // Case 3: Could not move within this bidi part in this visual line, so leave\n // the current bidi part\n\n var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {\n var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder\n ? new Pos(start.line, mv(ch, 1), \"before\")\n : new Pos(start.line, ch, \"after\"); };\n\n for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {\n var part = bidi[partPos];\n var moveInStorageOrder = (dir > 0) == (part.level != 1);\n var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);\n if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }\n ch = moveInStorageOrder ? part.from : mv(part.to, -1);\n if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }\n }\n };\n\n // Case 3a: Look for other bidi parts on the same visual line\n var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);\n if (res) { return res }\n\n // Case 3b: Look for other bidi parts on the next visual line\n var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);\n if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {\n res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));\n if (res) { return res }\n }\n\n // Case 4: Nowhere to move\n return null\n }\n\n // Commands are parameter-less actions that can be performed on an\n // editor, mostly used for keybindings.\n var commands = {\n selectAll: selectAll,\n singleSelection: function (cm) { return cm.setSelection(cm.getCursor(\"anchor\"), cm.getCursor(\"head\"), sel_dontScroll); },\n killLine: function (cm) { return deleteNearSelection(cm, function (range) {\n if (range.empty()) {\n var len = getLine(cm.doc, range.head.line).text.length;\n if (range.head.ch == len && range.head.line < cm.lastLine())\n { return {from: range.head, to: Pos(range.head.line + 1, 0)} }\n else\n { return {from: range.head, to: Pos(range.head.line, len)} }\n } else {\n return {from: range.from(), to: range.to()}\n }\n }); },\n deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0),\n to: clipPos(cm.doc, Pos(range.to().line + 1, 0))\n }); }); },\n delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0), to: range.from()\n }); }); },\n delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var leftPos = cm.coordsChar({left: 0, top: top}, \"div\");\n return {from: leftPos, to: range.from()}\n }); },\n delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\");\n return {from: range.from(), to: rightPos }\n }); },\n undo: function (cm) { return cm.undo(); },\n redo: function (cm) { return cm.redo(); },\n undoSelection: function (cm) { return cm.undoSelection(); },\n redoSelection: function (cm) { return cm.redoSelection(); },\n goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); },\n goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); },\n goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); },\n {origin: \"+move\", bias: -1}\n ); },\n goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\")\n }, sel_move); },\n goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: 0, top: top}, \"div\")\n }, sel_move); },\n goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n var pos = cm.coordsChar({left: 0, top: top}, \"div\");\n if (pos.ch < cm.getLine(pos.line).search(/\\S/)) { return lineStartSmart(cm, range.head) }\n return pos\n }, sel_move); },\n goLineUp: function (cm) { return cm.moveV(-1, \"line\"); },\n goLineDown: function (cm) { return cm.moveV(1, \"line\"); },\n goPageUp: function (cm) { return cm.moveV(-1, \"page\"); },\n goPageDown: function (cm) { return cm.moveV(1, \"page\"); },\n goCharLeft: function (cm) { return cm.moveH(-1, \"char\"); },\n goCharRight: function (cm) { return cm.moveH(1, \"char\"); },\n goColumnLeft: function (cm) { return cm.moveH(-1, \"column\"); },\n goColumnRight: function (cm) { return cm.moveH(1, \"column\"); },\n goWordLeft: function (cm) { return cm.moveH(-1, \"word\"); },\n goGroupRight: function (cm) { return cm.moveH(1, \"group\"); },\n goGroupLeft: function (cm) { return cm.moveH(-1, \"group\"); },\n goWordRight: function (cm) { return cm.moveH(1, \"word\"); },\n delCharBefore: function (cm) { return cm.deleteH(-1, \"codepoint\"); },\n delCharAfter: function (cm) { return cm.deleteH(1, \"char\"); },\n delWordBefore: function (cm) { return cm.deleteH(-1, \"word\"); },\n delWordAfter: function (cm) { return cm.deleteH(1, \"word\"); },\n delGroupBefore: function (cm) { return cm.deleteH(-1, \"group\"); },\n delGroupAfter: function (cm) { return cm.deleteH(1, \"group\"); },\n indentAuto: function (cm) { return cm.indentSelection(\"smart\"); },\n indentMore: function (cm) { return cm.indentSelection(\"add\"); },\n indentLess: function (cm) { return cm.indentSelection(\"subtract\"); },\n insertTab: function (cm) { return cm.replaceSelection(\"\\t\"); },\n insertSoftTab: function (cm) {\n var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;\n for (var i = 0; i < ranges.length; i++) {\n var pos = ranges[i].from();\n var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);\n spaces.push(spaceStr(tabSize - col % tabSize));\n }\n cm.replaceSelections(spaces);\n },\n defaultTab: function (cm) {\n if (cm.somethingSelected()) { cm.indentSelection(\"add\"); }\n else { cm.execCommand(\"insertTab\"); }\n },\n // Swap the two chars left and right of each selection's head.\n // Move cursor behind the two swapped characters afterwards.\n //\n // Doesn't consider line feeds a character.\n // Doesn't scan more than one line above to find a character.\n // Doesn't do anything on an empty line.\n // Doesn't do anything with non-empty selections.\n transposeChars: function (cm) { return runInOp(cm, function () {\n var ranges = cm.listSelections(), newSel = [];\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) { continue }\n var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;\n if (line) {\n if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); }\n if (cur.ch > 0) {\n cur = new Pos(cur.line, cur.ch + 1);\n cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),\n Pos(cur.line, cur.ch - 2), cur, \"+transpose\");\n } else if (cur.line > cm.doc.first) {\n var prev = getLine(cm.doc, cur.line - 1).text;\n if (prev) {\n cur = new Pos(cur.line, 1);\n cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +\n prev.charAt(prev.length - 1),\n Pos(cur.line - 1, prev.length - 1), cur, \"+transpose\");\n }\n }\n }\n newSel.push(new Range(cur, cur));\n }\n cm.setSelections(newSel);\n }); },\n newlineAndIndent: function (cm) { return runInOp(cm, function () {\n var sels = cm.listSelections();\n for (var i = sels.length - 1; i >= 0; i--)\n { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, \"+input\"); }\n sels = cm.listSelections();\n for (var i$1 = 0; i$1 < sels.length; i$1++)\n { cm.indentLine(sels[i$1].from().line, null, true); }\n ensureCursorVisible(cm);\n }); },\n openLine: function (cm) { return cm.replaceSelection(\"\\n\", \"start\"); },\n toggleOverwrite: function (cm) { return cm.toggleOverwrite(); }\n };\n\n\n function lineStart(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLine(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, visual, lineN, 1)\n }\n function lineEnd(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLineEnd(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, line, lineN, -1)\n }\n function lineStartSmart(cm, pos) {\n var start = lineStart(cm, pos.line);\n var line = getLine(cm.doc, start.line);\n var order = getOrder(line, cm.doc.direction);\n if (!order || order[0].level == 0) {\n var firstNonWS = Math.max(start.ch, line.text.search(/\\S/));\n var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;\n return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky)\n }\n return start\n }\n\n // Run a handler that was bound to a key.\n function doHandleBinding(cm, bound, dropShift) {\n if (typeof bound == \"string\") {\n bound = commands[bound];\n if (!bound) { return false }\n }\n // Ensure previous input has been read, so that the handler sees a\n // consistent view of the document\n cm.display.input.ensurePolled();\n var prevShift = cm.display.shift, done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n if (dropShift) { cm.display.shift = false; }\n done = bound(cm) != Pass;\n } finally {\n cm.display.shift = prevShift;\n cm.state.suppressEdits = false;\n }\n return done\n }\n\n function lookupKeyForEditor(cm, name, handle) {\n for (var i = 0; i < cm.state.keyMaps.length; i++) {\n var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);\n if (result) { return result }\n }\n return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))\n || lookupKey(name, cm.options.keyMap, handle, cm)\n }\n\n // Note that, despite the name, this function is also used to check\n // for bound mouse clicks.\n\n var stopSeq = new Delayed;\n\n function dispatchKey(cm, name, e, handle) {\n var seq = cm.state.keySeq;\n if (seq) {\n if (isModifierKey(name)) { return \"handled\" }\n if (/\\'$/.test(name))\n { cm.state.keySeq = null; }\n else\n { stopSeq.set(50, function () {\n if (cm.state.keySeq == seq) {\n cm.state.keySeq = null;\n cm.display.input.reset();\n }\n }); }\n if (dispatchKeyInner(cm, seq + \" \" + name, e, handle)) { return true }\n }\n return dispatchKeyInner(cm, name, e, handle)\n }\n\n function dispatchKeyInner(cm, name, e, handle) {\n var result = lookupKeyForEditor(cm, name, handle);\n\n if (result == \"multi\")\n { cm.state.keySeq = name; }\n if (result == \"handled\")\n { signalLater(cm, \"keyHandled\", cm, name, e); }\n\n if (result == \"handled\" || result == \"multi\") {\n e_preventDefault(e);\n restartBlink(cm);\n }\n\n return !!result\n }\n\n // Handle a key from the keydown event.\n function handleKeyBinding(cm, e) {\n var name = keyName(e, true);\n if (!name) { return false }\n\n if (e.shiftKey && !cm.state.keySeq) {\n // First try to resolve full name (including 'Shift-'). Failing\n // that, see if there is a cursor-motion command (starting with\n // 'go') bound to the keyname without 'Shift-'.\n return dispatchKey(cm, \"Shift-\" + name, e, function (b) { return doHandleBinding(cm, b, true); })\n || dispatchKey(cm, name, e, function (b) {\n if (typeof b == \"string\" ? /^go[A-Z]/.test(b) : b.motion)\n { return doHandleBinding(cm, b) }\n })\n } else {\n return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); })\n }\n }\n\n // Handle a key from the keypress event\n function handleCharBinding(cm, e, ch) {\n return dispatchKey(cm, \"'\" + ch + \"'\", e, function (b) { return doHandleBinding(cm, b, true); })\n }\n\n var lastStoppedKey = null;\n function onKeyDown(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n cm.curOp.focus = activeElt(root(cm));\n if (signalDOMEvent(cm, e)) { return }\n // IE does strange things with escape.\n if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; }\n var code = e.keyCode;\n cm.display.shift = code == 16 || e.shiftKey;\n var handled = handleKeyBinding(cm, e);\n if (presto) {\n lastStoppedKey = handled ? code : null;\n // Opera has no cut event... we try to at least catch the key combo\n if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))\n { cm.replaceSelection(\"\", null, \"cut\"); }\n }\n if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand)\n { document.execCommand(\"cut\"); }\n\n // Turn mouse into crosshair when Alt is held on Mac.\n if (code == 18 && !/\\bCodeMirror-crosshair\\b/.test(cm.display.lineDiv.className))\n { showCrossHair(cm); }\n }\n\n function showCrossHair(cm) {\n var lineDiv = cm.display.lineDiv;\n addClass(lineDiv, \"CodeMirror-crosshair\");\n\n function up(e) {\n if (e.keyCode == 18 || !e.altKey) {\n rmClass(lineDiv, \"CodeMirror-crosshair\");\n off(document, \"keyup\", up);\n off(document, \"mouseover\", up);\n }\n }\n on(document, \"keyup\", up);\n on(document, \"mouseover\", up);\n }\n\n function onKeyUp(e) {\n if (e.keyCode == 16) { this.doc.sel.shift = false; }\n signalDOMEvent(this, e);\n }\n\n function onKeyPress(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return }\n var keyCode = e.keyCode, charCode = e.charCode;\n if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return}\n if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return }\n var ch = String.fromCharCode(charCode == null ? keyCode : charCode);\n // Some browsers fire keypress events for backspace\n if (ch == \"\\x08\") { return }\n if (handleCharBinding(cm, e, ch)) { return }\n cm.display.input.onKeyPress(e);\n }\n\n var DOUBLECLICK_DELAY = 400;\n\n var PastClick = function(time, pos, button) {\n this.time = time;\n this.pos = pos;\n this.button = button;\n };\n\n PastClick.prototype.compare = function (time, pos, button) {\n return this.time + DOUBLECLICK_DELAY > time &&\n cmp(pos, this.pos) == 0 && button == this.button\n };\n\n var lastClick, lastDoubleClick;\n function clickRepeat(pos, button) {\n var now = +new Date;\n if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) {\n lastClick = lastDoubleClick = null;\n return \"triple\"\n } else if (lastClick && lastClick.compare(now, pos, button)) {\n lastDoubleClick = new PastClick(now, pos, button);\n lastClick = null;\n return \"double\"\n } else {\n lastClick = new PastClick(now, pos, button);\n lastDoubleClick = null;\n return \"single\"\n }\n }\n\n // A mouse down can be a single click, double click, triple click,\n // start of selection drag, start of text drag, new cursor\n // (ctrl-click), rectangle drag (alt-drag), or xwin\n // middle-click-paste. Or it might be a click on something we should\n // not interfere with, such as a scrollbar or widget.\n function onMouseDown(e) {\n var cm = this, display = cm.display;\n if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return }\n display.input.ensurePolled();\n display.shift = e.shiftKey;\n\n if (eventInWidget(display, e)) {\n if (!webkit) {\n // Briefly turn off draggability, to allow widgets to do\n // normal dragging things.\n display.scroller.draggable = false;\n setTimeout(function () { return display.scroller.draggable = true; }, 100);\n }\n return\n }\n if (clickInGutter(cm, e)) { return }\n var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : \"single\";\n win(cm).focus();\n\n // #3261: make sure, that we're not starting a second selection\n if (button == 1 && cm.state.selectingText)\n { cm.state.selectingText(e); }\n\n if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return }\n\n if (button == 1) {\n if (pos) { leftButtonDown(cm, pos, repeat, e); }\n else if (e_target(e) == display.scroller) { e_preventDefault(e); }\n } else if (button == 2) {\n if (pos) { extendSelection(cm.doc, pos); }\n setTimeout(function () { return display.input.focus(); }, 20);\n } else if (button == 3) {\n if (captureRightClick) { cm.display.input.onContextMenu(e); }\n else { delayBlurEvent(cm); }\n }\n }\n\n function handleMappedButton(cm, button, pos, repeat, event) {\n var name = \"Click\";\n if (repeat == \"double\") { name = \"Double\" + name; }\n else if (repeat == \"triple\") { name = \"Triple\" + name; }\n name = (button == 1 ? \"Left\" : button == 2 ? \"Middle\" : \"Right\") + name;\n\n return dispatchKey(cm, addModifierNames(name, event), event, function (bound) {\n if (typeof bound == \"string\") { bound = commands[bound]; }\n if (!bound) { return false }\n var done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n done = bound(cm, pos) != Pass;\n } finally {\n cm.state.suppressEdits = false;\n }\n return done\n })\n }\n\n function configureMouse(cm, repeat, event) {\n var option = cm.getOption(\"configureMouse\");\n var value = option ? option(cm, repeat, event) : {};\n if (value.unit == null) {\n var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey;\n value.unit = rect ? \"rectangle\" : repeat == \"single\" ? \"char\" : repeat == \"double\" ? \"word\" : \"line\";\n }\n if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; }\n if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; }\n if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); }\n return value\n }\n\n function leftButtonDown(cm, pos, repeat, event) {\n if (ie) { setTimeout(bind(ensureFocus, cm), 0); }\n else { cm.curOp.focus = activeElt(root(cm)); }\n\n var behavior = configureMouse(cm, repeat, event);\n\n var sel = cm.doc.sel, contained;\n if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&\n repeat == \"single\" && (contained = sel.contains(pos)) > -1 &&\n (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) &&\n (cmp(contained.to(), pos) > 0 || pos.xRel < 0))\n { leftButtonStartDrag(cm, event, pos, behavior); }\n else\n { leftButtonSelect(cm, event, pos, behavior); }\n }\n\n // Start a text drag. When it ends, see if any dragging actually\n // happen, and treat as a click if it didn't.\n function leftButtonStartDrag(cm, event, pos, behavior) {\n var display = cm.display, moved = false;\n var dragEnd = operation(cm, function (e) {\n if (webkit) { display.scroller.draggable = false; }\n cm.state.draggingText = false;\n if (cm.state.delayingBlurEvent) {\n if (cm.hasFocus()) { cm.state.delayingBlurEvent = false; }\n else { delayBlurEvent(cm); }\n }\n off(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n off(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n off(display.scroller, \"dragstart\", dragStart);\n off(display.scroller, \"drop\", dragEnd);\n if (!moved) {\n e_preventDefault(e);\n if (!behavior.addNew)\n { extendSelection(cm.doc, pos, null, null, behavior.extend); }\n // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)\n if ((webkit && !safari) || ie && ie_version == 9)\n { setTimeout(function () {display.wrapper.ownerDocument.body.focus({preventScroll: true}); display.input.focus();}, 20); }\n else\n { display.input.focus(); }\n }\n });\n var mouseMove = function(e2) {\n moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10;\n };\n var dragStart = function () { return moved = true; };\n // Let the drag handler handle this.\n if (webkit) { display.scroller.draggable = true; }\n cm.state.draggingText = dragEnd;\n dragEnd.copy = !behavior.moveOnDrag;\n on(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n on(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n on(display.scroller, \"dragstart\", dragStart);\n on(display.scroller, \"drop\", dragEnd);\n\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { return display.input.focus(); }, 20);\n // IE's approach to draggable\n if (display.scroller.dragDrop) { display.scroller.dragDrop(); }\n }\n\n function rangeForUnit(cm, pos, unit) {\n if (unit == \"char\") { return new Range(pos, pos) }\n if (unit == \"word\") { return cm.findWordAt(pos) }\n if (unit == \"line\") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) }\n var result = unit(cm, pos);\n return new Range(result.from, result.to)\n }\n\n // Normal selection, as opposed to text dragging.\n function leftButtonSelect(cm, event, start, behavior) {\n if (ie) { delayBlurEvent(cm); }\n var display = cm.display, doc = cm.doc;\n e_preventDefault(event);\n\n var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;\n if (behavior.addNew && !behavior.extend) {\n ourIndex = doc.sel.contains(start);\n if (ourIndex > -1)\n { ourRange = ranges[ourIndex]; }\n else\n { ourRange = new Range(start, start); }\n } else {\n ourRange = doc.sel.primary();\n ourIndex = doc.sel.primIndex;\n }\n\n if (behavior.unit == \"rectangle\") {\n if (!behavior.addNew) { ourRange = new Range(start, start); }\n start = posFromMouse(cm, event, true, true);\n ourIndex = -1;\n } else {\n var range = rangeForUnit(cm, start, behavior.unit);\n if (behavior.extend)\n { ourRange = extendRange(ourRange, range.anchor, range.head, behavior.extend); }\n else\n { ourRange = range; }\n }\n\n if (!behavior.addNew) {\n ourIndex = 0;\n setSelection(doc, new Selection([ourRange], 0), sel_mouse);\n startSel = doc.sel;\n } else if (ourIndex == -1) {\n ourIndex = ranges.length;\n setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex),\n {scroll: false, origin: \"*mouse\"});\n } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == \"char\" && !behavior.extend) {\n setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),\n {scroll: false, origin: \"*mouse\"});\n startSel = doc.sel;\n } else {\n replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);\n }\n\n var lastPos = start;\n function extendTo(pos) {\n if (cmp(lastPos, pos) == 0) { return }\n lastPos = pos;\n\n if (behavior.unit == \"rectangle\") {\n var ranges = [], tabSize = cm.options.tabSize;\n var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);\n var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);\n var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);\n for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));\n line <= end; line++) {\n var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);\n if (left == right)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); }\n else if (text.length > leftPos)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); }\n }\n if (!ranges.length) { ranges.push(new Range(start, start)); }\n setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),\n {origin: \"*mouse\", scroll: false});\n cm.scrollIntoView(pos);\n } else {\n var oldRange = ourRange;\n var range = rangeForUnit(cm, pos, behavior.unit);\n var anchor = oldRange.anchor, head;\n if (cmp(range.anchor, anchor) > 0) {\n head = range.head;\n anchor = minPos(oldRange.from(), range.anchor);\n } else {\n head = range.anchor;\n anchor = maxPos(oldRange.to(), range.head);\n }\n var ranges$1 = startSel.ranges.slice(0);\n ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head));\n setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse);\n }\n }\n\n var editorSize = display.wrapper.getBoundingClientRect();\n // Used to ensure timeout re-tries don't fire when another extend\n // happened in the meantime (clearTimeout isn't reliable -- at\n // least on Chrome, the timeouts still happen even when cleared,\n // if the clear happens after their scheduled firing time).\n var counter = 0;\n\n function extend(e) {\n var curCount = ++counter;\n var cur = posFromMouse(cm, e, true, behavior.unit == \"rectangle\");\n if (!cur) { return }\n if (cmp(cur, lastPos) != 0) {\n cm.curOp.focus = activeElt(root(cm));\n extendTo(cur);\n var visible = visibleLines(display, doc);\n if (cur.line >= visible.to || cur.line < visible.from)\n { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); }\n } else {\n var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;\n if (outside) { setTimeout(operation(cm, function () {\n if (counter != curCount) { return }\n display.scroller.scrollTop += outside;\n extend(e);\n }), 50); }\n }\n }\n\n function done(e) {\n cm.state.selectingText = false;\n counter = Infinity;\n // If e is null or undefined we interpret this as someone trying\n // to explicitly cancel the selection rather than the user\n // letting go of the mouse button.\n if (e) {\n e_preventDefault(e);\n display.input.focus();\n }\n off(display.wrapper.ownerDocument, \"mousemove\", move);\n off(display.wrapper.ownerDocument, \"mouseup\", up);\n doc.history.lastSelOrigin = null;\n }\n\n var move = operation(cm, function (e) {\n if (e.buttons === 0 || !e_button(e)) { done(e); }\n else { extend(e); }\n });\n var up = operation(cm, done);\n cm.state.selectingText = up;\n on(display.wrapper.ownerDocument, \"mousemove\", move);\n on(display.wrapper.ownerDocument, \"mouseup\", up);\n }\n\n // Used when mouse-selecting to adjust the anchor to the proper side\n // of a bidi jump depending on the visual position of the head.\n function bidiSimplify(cm, range) {\n var anchor = range.anchor;\n var head = range.head;\n var anchorLine = getLine(cm.doc, anchor.line);\n if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range }\n var order = getOrder(anchorLine);\n if (!order) { return range }\n var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];\n if (part.from != anchor.ch && part.to != anchor.ch) { return range }\n var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);\n if (boundary == 0 || boundary == order.length) { return range }\n\n // Compute the relative visual position of the head compared to the\n // anchor (<0 is to the left, >0 to the right)\n var leftSide;\n if (head.line != anchor.line) {\n leftSide = (head.line - anchor.line) * (cm.doc.direction == \"ltr\" ? 1 : -1) > 0;\n } else {\n var headIndex = getBidiPartAt(order, head.ch, head.sticky);\n var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);\n if (headIndex == boundary - 1 || headIndex == boundary)\n { leftSide = dir < 0; }\n else\n { leftSide = dir > 0; }\n }\n\n var usePart = order[boundary + (leftSide ? -1 : 0)];\n var from = leftSide == (usePart.level == 1);\n var ch = from ? usePart.from : usePart.to, sticky = from ? \"after\" : \"before\";\n return anchor.ch == ch && anchor.sticky == sticky ? range : new Range(new Pos(anchor.line, ch, sticky), head)\n }\n\n\n // Determines whether an event happened in the gutter, and fires the\n // handlers for the corresponding event.\n function gutterEvent(cm, e, type, prevent) {\n var mX, mY;\n if (e.touches) {\n mX = e.touches[0].clientX;\n mY = e.touches[0].clientY;\n } else {\n try { mX = e.clientX; mY = e.clientY; }\n catch(e$1) { return false }\n }\n if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }\n if (prevent) { e_preventDefault(e); }\n\n var display = cm.display;\n var lineBox = display.lineDiv.getBoundingClientRect();\n\n if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) }\n mY -= lineBox.top - display.viewOffset;\n\n for (var i = 0; i < cm.display.gutterSpecs.length; ++i) {\n var g = display.gutters.childNodes[i];\n if (g && g.getBoundingClientRect().right >= mX) {\n var line = lineAtHeight(cm.doc, mY);\n var gutter = cm.display.gutterSpecs[i];\n signal(cm, type, cm, line, gutter.className, e);\n return e_defaultPrevented(e)\n }\n }\n }\n\n function clickInGutter(cm, e) {\n return gutterEvent(cm, e, \"gutterClick\", true)\n }\n\n // CONTEXT MENU HANDLING\n\n // To make the context menu work, we need to briefly unhide the\n // textarea (making it as unobtrusive as possible) to let the\n // right-click take effect on it.\n function onContextMenu(cm, e) {\n if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return }\n if (signalDOMEvent(cm, e, \"contextmenu\")) { return }\n if (!captureRightClick) { cm.display.input.onContextMenu(e); }\n }\n\n function contextMenuInGutter(cm, e) {\n if (!hasHandler(cm, \"gutterContextMenu\")) { return false }\n return gutterEvent(cm, e, \"gutterContextMenu\", false)\n }\n\n function themeChanged(cm) {\n cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-s-\\S+/g, \"\") +\n cm.options.theme.replace(/(^|\\s)\\s*/g, \" cm-s-\");\n clearCaches(cm);\n }\n\n var Init = {toString: function(){return \"CodeMirror.Init\"}};\n\n var defaults = {};\n var optionHandlers = {};\n\n function defineOptions(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n function option(name, deflt, handle, notOnInit) {\n CodeMirror.defaults[name] = deflt;\n if (handle) { optionHandlers[name] =\n notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; }\n }\n\n CodeMirror.defineOption = option;\n\n // Passed to option handlers when there is no old value.\n CodeMirror.Init = Init;\n\n // These two are, on init, called from the constructor because they\n // have to be initialized before the editor can start at all.\n option(\"value\", \"\", function (cm, val) { return cm.setValue(val); }, true);\n option(\"mode\", null, function (cm, val) {\n cm.doc.modeOption = val;\n loadMode(cm);\n }, true);\n\n option(\"indentUnit\", 2, loadMode, true);\n option(\"indentWithTabs\", false);\n option(\"smartIndent\", true);\n option(\"tabSize\", 4, function (cm) {\n resetModeState(cm);\n clearCaches(cm);\n regChange(cm);\n }, true);\n\n option(\"lineSeparator\", null, function (cm, val) {\n cm.doc.lineSep = val;\n if (!val) { return }\n var newBreaks = [], lineNo = cm.doc.first;\n cm.doc.iter(function (line) {\n for (var pos = 0;;) {\n var found = line.text.indexOf(val, pos);\n if (found == -1) { break }\n pos = found + val.length;\n newBreaks.push(Pos(lineNo, found));\n }\n lineNo++;\n });\n for (var i = newBreaks.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }\n });\n option(\"specialChars\", /[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b\\u200e\\u200f\\u2028\\u2029\\u202d\\u202e\\u2066\\u2067\\u2069\\ufeff\\ufff9-\\ufffc]/g, function (cm, val, old) {\n cm.state.specialChars = new RegExp(val.source + (val.test(\"\\t\") ? \"\" : \"|\\t\"), \"g\");\n if (old != Init) { cm.refresh(); }\n });\n option(\"specialCharPlaceholder\", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true);\n option(\"electricChars\", true);\n option(\"inputStyle\", mobile ? \"contenteditable\" : \"textarea\", function () {\n throw new Error(\"inputStyle can not (yet) be changed in a running editor\") // FIXME\n }, true);\n option(\"spellcheck\", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true);\n option(\"autocorrect\", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true);\n option(\"autocapitalize\", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true);\n option(\"rtlMoveVisually\", !windows);\n option(\"wholeLineUpdateBefore\", true);\n\n option(\"theme\", \"default\", function (cm) {\n themeChanged(cm);\n updateGutters(cm);\n }, true);\n option(\"keyMap\", \"default\", function (cm, val, old) {\n var next = getKeyMap(val);\n var prev = old != Init && getKeyMap(old);\n if (prev && prev.detach) { prev.detach(cm, next); }\n if (next.attach) { next.attach(cm, prev || null); }\n });\n option(\"extraKeys\", null);\n option(\"configureMouse\", null);\n\n option(\"lineWrapping\", false, wrappingChanged, true);\n option(\"gutters\", [], function (cm, val) {\n cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers);\n updateGutters(cm);\n }, true);\n option(\"fixedGutter\", true, function (cm, val) {\n cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + \"px\" : \"0\";\n cm.refresh();\n }, true);\n option(\"coverGutterNextToScrollbar\", false, function (cm) { return updateScrollbars(cm); }, true);\n option(\"scrollbarStyle\", \"native\", function (cm) {\n initScrollbars(cm);\n updateScrollbars(cm);\n cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);\n cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);\n }, true);\n option(\"lineNumbers\", false, function (cm, val) {\n cm.display.gutterSpecs = getGutters(cm.options.gutters, val);\n updateGutters(cm);\n }, true);\n option(\"firstLineNumber\", 1, updateGutters, true);\n option(\"lineNumberFormatter\", function (integer) { return integer; }, updateGutters, true);\n option(\"showCursorWhenSelecting\", false, updateSelection, true);\n\n option(\"resetSelectionOnContextMenu\", true);\n option(\"lineWiseCopyCut\", true);\n option(\"pasteLinesPerSelection\", true);\n option(\"selectionsMayTouch\", false);\n\n option(\"readOnly\", false, function (cm, val) {\n if (val == \"nocursor\") {\n onBlur(cm);\n cm.display.input.blur();\n }\n cm.display.input.readOnlyChanged(val);\n });\n\n option(\"screenReaderLabel\", null, function (cm, val) {\n val = (val === '') ? null : val;\n cm.display.input.screenReaderLabelChanged(val);\n });\n\n option(\"disableInput\", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true);\n option(\"dragDrop\", true, dragDropChanged);\n option(\"allowDropFileTypes\", null);\n\n option(\"cursorBlinkRate\", 530);\n option(\"cursorScrollMargin\", 0);\n option(\"cursorHeight\", 1, updateSelection, true);\n option(\"singleCursorHeightPerLine\", true, updateSelection, true);\n option(\"workTime\", 100);\n option(\"workDelay\", 100);\n option(\"flattenSpans\", true, resetModeState, true);\n option(\"addModeClass\", false, resetModeState, true);\n option(\"pollInterval\", 100);\n option(\"undoDepth\", 200, function (cm, val) { return cm.doc.history.undoDepth = val; });\n option(\"historyEventDelay\", 1250);\n option(\"viewportMargin\", 10, function (cm) { return cm.refresh(); }, true);\n option(\"maxHighlightLength\", 10000, resetModeState, true);\n option(\"moveInputWithCursor\", true, function (cm, val) {\n if (!val) { cm.display.input.resetPosition(); }\n });\n\n option(\"tabindex\", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || \"\"; });\n option(\"autofocus\", null);\n option(\"direction\", \"ltr\", function (cm, val) { return cm.doc.setDirection(val); }, true);\n option(\"phrases\", null);\n }\n\n function dragDropChanged(cm, value, old) {\n var wasOn = old && old != Init;\n if (!value != !wasOn) {\n var funcs = cm.display.dragFunctions;\n var toggle = value ? on : off;\n toggle(cm.display.scroller, \"dragstart\", funcs.start);\n toggle(cm.display.scroller, \"dragenter\", funcs.enter);\n toggle(cm.display.scroller, \"dragover\", funcs.over);\n toggle(cm.display.scroller, \"dragleave\", funcs.leave);\n toggle(cm.display.scroller, \"drop\", funcs.drop);\n }\n }\n\n function wrappingChanged(cm) {\n if (cm.options.lineWrapping) {\n addClass(cm.display.wrapper, \"CodeMirror-wrap\");\n cm.display.sizer.style.minWidth = \"\";\n cm.display.sizerWidth = null;\n } else {\n rmClass(cm.display.wrapper, \"CodeMirror-wrap\");\n findMaxLine(cm);\n }\n estimateLineHeights(cm);\n regChange(cm);\n clearCaches(cm);\n setTimeout(function () { return updateScrollbars(cm); }, 100);\n }\n\n // A CodeMirror instance represents an editor. This is the object\n // that user code is usually dealing with.\n\n function CodeMirror(place, options) {\n var this$1 = this;\n\n if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) }\n\n this.options = options = options ? copyObj(options) : {};\n // Determine effective options based on given values and defaults.\n copyObj(defaults, options, false);\n\n var doc = options.value;\n if (typeof doc == \"string\") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }\n else if (options.mode) { doc.modeOption = options.mode; }\n this.doc = doc;\n\n var input = new CodeMirror.inputStyles[options.inputStyle](this);\n var display = this.display = new Display(place, doc, input, options);\n display.wrapper.CodeMirror = this;\n themeChanged(this);\n if (options.lineWrapping)\n { this.display.wrapper.className += \" CodeMirror-wrap\"; }\n initScrollbars(this);\n\n this.state = {\n keyMaps: [], // stores maps added by addKeyMap\n overlays: [], // highlighting overlays, as added by addOverlay\n modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info\n overwrite: false,\n delayingBlurEvent: false,\n focused: false,\n suppressEdits: false, // used to disable editing during key handlers when in readOnly mode\n pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll\n selectingText: false,\n draggingText: false,\n highlight: new Delayed(), // stores highlight worker timeout\n keySeq: null, // Unfinished key sequence\n specialChars: null\n };\n\n if (options.autofocus && !mobile) { display.input.focus(); }\n\n // Override magic textarea content restore that IE sometimes does\n // on our hidden textarea on reload\n if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); }\n\n registerEventHandlers(this);\n ensureGlobalHandlers();\n\n startOperation(this);\n this.curOp.forceUpdate = true;\n attachDoc(this, doc);\n\n if ((options.autofocus && !mobile) || this.hasFocus())\n { setTimeout(function () {\n if (this$1.hasFocus() && !this$1.state.focused) { onFocus(this$1); }\n }, 20); }\n else\n { onBlur(this); }\n\n for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt))\n { optionHandlers[opt](this, options[opt], Init); } }\n maybeUpdateLineNumberWidth(this);\n if (options.finishInit) { options.finishInit(this); }\n for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this); }\n endOperation(this);\n // Suppress optimizelegibility in Webkit, since it breaks text\n // measuring on line wrapping boundaries.\n if (webkit && options.lineWrapping &&\n getComputedStyle(display.lineDiv).textRendering == \"optimizelegibility\")\n { display.lineDiv.style.textRendering = \"auto\"; }\n }\n\n // The default configuration options.\n CodeMirror.defaults = defaults;\n // Functions to run when options are changed.\n CodeMirror.optionHandlers = optionHandlers;\n\n // Attach the necessary event handlers when initializing the editor\n function registerEventHandlers(cm) {\n var d = cm.display;\n on(d.scroller, \"mousedown\", operation(cm, onMouseDown));\n // Older IE's will not fire a second mousedown for a double click\n if (ie && ie_version < 11)\n { on(d.scroller, \"dblclick\", operation(cm, function (e) {\n if (signalDOMEvent(cm, e)) { return }\n var pos = posFromMouse(cm, e);\n if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return }\n e_preventDefault(e);\n var word = cm.findWordAt(pos);\n extendSelection(cm.doc, word.anchor, word.head);\n })); }\n else\n { on(d.scroller, \"dblclick\", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); }\n // Some browsers fire contextmenu *after* opening the menu, at\n // which point we can't mess with it anymore. Context menu is\n // handled in onMouseDown for these browsers.\n on(d.scroller, \"contextmenu\", function (e) { return onContextMenu(cm, e); });\n on(d.input.getField(), \"contextmenu\", function (e) {\n if (!d.scroller.contains(e.target)) { onContextMenu(cm, e); }\n });\n\n // Used to suppress mouse event handling when a touch happens\n var touchFinished, prevTouch = {end: 0};\n function finishTouch() {\n if (d.activeTouch) {\n touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000);\n prevTouch = d.activeTouch;\n prevTouch.end = +new Date;\n }\n }\n function isMouseLikeTouchEvent(e) {\n if (e.touches.length != 1) { return false }\n var touch = e.touches[0];\n return touch.radiusX <= 1 && touch.radiusY <= 1\n }\n function farAway(touch, other) {\n if (other.left == null) { return true }\n var dx = other.left - touch.left, dy = other.top - touch.top;\n return dx * dx + dy * dy > 20 * 20\n }\n on(d.scroller, \"touchstart\", function (e) {\n if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {\n d.input.ensurePolled();\n clearTimeout(touchFinished);\n var now = +new Date;\n d.activeTouch = {start: now, moved: false,\n prev: now - prevTouch.end <= 300 ? prevTouch : null};\n if (e.touches.length == 1) {\n d.activeTouch.left = e.touches[0].pageX;\n d.activeTouch.top = e.touches[0].pageY;\n }\n }\n });\n on(d.scroller, \"touchmove\", function () {\n if (d.activeTouch) { d.activeTouch.moved = true; }\n });\n on(d.scroller, \"touchend\", function (e) {\n var touch = d.activeTouch;\n if (touch && !eventInWidget(d, e) && touch.left != null &&\n !touch.moved && new Date - touch.start < 300) {\n var pos = cm.coordsChar(d.activeTouch, \"page\"), range;\n if (!touch.prev || farAway(touch, touch.prev)) // Single tap\n { range = new Range(pos, pos); }\n else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap\n { range = cm.findWordAt(pos); }\n else // Triple tap\n { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); }\n cm.setSelection(range.anchor, range.head);\n cm.focus();\n e_preventDefault(e);\n }\n finishTouch();\n });\n on(d.scroller, \"touchcancel\", finishTouch);\n\n // Sync scrolling between fake scrollbars and real scrollable\n // area, ensure viewport is updated when scrolling.\n on(d.scroller, \"scroll\", function () {\n if (d.scroller.clientHeight) {\n updateScrollTop(cm, d.scroller.scrollTop);\n setScrollLeft(cm, d.scroller.scrollLeft, true);\n signal(cm, \"scroll\", cm);\n }\n });\n\n // Listen to wheel events in order to try and update the viewport on time.\n on(d.scroller, \"mousewheel\", function (e) { return onScrollWheel(cm, e); });\n on(d.scroller, \"DOMMouseScroll\", function (e) { return onScrollWheel(cm, e); });\n\n // Prevent wrapper from ever scrolling\n on(d.wrapper, \"scroll\", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });\n\n d.dragFunctions = {\n enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }},\n over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},\n start: function (e) { return onDragStart(cm, e); },\n drop: operation(cm, onDrop),\n leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}\n };\n\n var inp = d.input.getField();\n on(inp, \"keyup\", function (e) { return onKeyUp.call(cm, e); });\n on(inp, \"keydown\", operation(cm, onKeyDown));\n on(inp, \"keypress\", operation(cm, onKeyPress));\n on(inp, \"focus\", function (e) { return onFocus(cm, e); });\n on(inp, \"blur\", function (e) { return onBlur(cm, e); });\n }\n\n var initHooks = [];\n CodeMirror.defineInitHook = function (f) { return initHooks.push(f); };\n\n // Indent the given line. The how parameter can be \"smart\",\n // \"add\"/null, \"subtract\", or \"prev\". When aggressive is false\n // (typically set to true for forced single-line indents), empty\n // lines are not indented, and places where the mode returns Pass\n // are left alone.\n function indentLine(cm, n, how, aggressive) {\n var doc = cm.doc, state;\n if (how == null) { how = \"add\"; }\n if (how == \"smart\") {\n // Fall back to \"prev\" when the mode doesn't have an indentation\n // method.\n if (!doc.mode.indent) { how = \"prev\"; }\n else { state = getContextBefore(cm, n).state; }\n }\n\n var tabSize = cm.options.tabSize;\n var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);\n if (line.stateAfter) { line.stateAfter = null; }\n var curSpaceString = line.text.match(/^\\s*/)[0], indentation;\n if (!aggressive && !/\\S/.test(line.text)) {\n indentation = 0;\n how = \"not\";\n } else if (how == \"smart\") {\n indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);\n if (indentation == Pass || indentation > 150) {\n if (!aggressive) { return }\n how = \"prev\";\n }\n }\n if (how == \"prev\") {\n if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); }\n else { indentation = 0; }\n } else if (how == \"add\") {\n indentation = curSpace + cm.options.indentUnit;\n } else if (how == \"subtract\") {\n indentation = curSpace - cm.options.indentUnit;\n } else if (typeof how == \"number\") {\n indentation = curSpace + how;\n }\n indentation = Math.max(0, indentation);\n\n var indentString = \"\", pos = 0;\n if (cm.options.indentWithTabs)\n { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += \"\\t\";} }\n if (pos < indentation) { indentString += spaceStr(indentation - pos); }\n\n if (indentString != curSpaceString) {\n replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), \"+input\");\n line.stateAfter = null;\n return true\n } else {\n // Ensure that, if the cursor was in the whitespace at the start\n // of the line, it is moved to the end of that space.\n for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) {\n var range = doc.sel.ranges[i$1];\n if (range.head.line == n && range.head.ch < curSpaceString.length) {\n var pos$1 = Pos(n, curSpaceString.length);\n replaceOneSelection(doc, i$1, new Range(pos$1, pos$1));\n break\n }\n }\n }\n }\n\n // This will be set to a {lineWise: bool, text: [string]} object, so\n // that, when pasting, we know what kind of selections the copied\n // text was made out of.\n var lastCopied = null;\n\n function setLastCopied(newLastCopied) {\n lastCopied = newLastCopied;\n }\n\n function applyTextInput(cm, inserted, deleted, sel, origin) {\n var doc = cm.doc;\n cm.display.shift = false;\n if (!sel) { sel = doc.sel; }\n\n var recent = +new Date - 200;\n var paste = origin == \"paste\" || cm.state.pasteIncoming > recent;\n var textLines = splitLinesAuto(inserted), multiPaste = null;\n // When pasting N lines into N selections, insert one line per selection\n if (paste && sel.ranges.length > 1) {\n if (lastCopied && lastCopied.text.join(\"\\n\") == inserted) {\n if (sel.ranges.length % lastCopied.text.length == 0) {\n multiPaste = [];\n for (var i = 0; i < lastCopied.text.length; i++)\n { multiPaste.push(doc.splitLines(lastCopied.text[i])); }\n }\n } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) {\n multiPaste = map(textLines, function (l) { return [l]; });\n }\n }\n\n var updateInput = cm.curOp.updateInput;\n // Normal behavior is to insert the new text into every selection\n for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) {\n var range = sel.ranges[i$1];\n var from = range.from(), to = range.to();\n if (range.empty()) {\n if (deleted && deleted > 0) // Handle deletion\n { from = Pos(from.line, from.ch - deleted); }\n else if (cm.state.overwrite && !paste) // Handle overwrite\n { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); }\n else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join(\"\\n\") == textLines.join(\"\\n\"))\n { from = to = Pos(from.line, 0); }\n }\n var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines,\n origin: origin || (paste ? \"paste\" : cm.state.cutIncoming > recent ? \"cut\" : \"+input\")};\n makeChange(cm.doc, changeEvent);\n signalLater(cm, \"inputRead\", cm, changeEvent);\n }\n if (inserted && !paste)\n { triggerElectric(cm, inserted); }\n\n ensureCursorVisible(cm);\n if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; }\n cm.curOp.typing = true;\n cm.state.pasteIncoming = cm.state.cutIncoming = -1;\n }\n\n function handlePaste(e, cm) {\n var pasted = e.clipboardData && e.clipboardData.getData(\"Text\");\n if (pasted) {\n e.preventDefault();\n if (!cm.isReadOnly() && !cm.options.disableInput && cm.hasFocus())\n { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, \"paste\"); }); }\n return true\n }\n }\n\n function triggerElectric(cm, inserted) {\n // When an 'electric' character is inserted, immediately trigger a reindent\n if (!cm.options.electricChars || !cm.options.smartIndent) { return }\n var sel = cm.doc.sel;\n\n for (var i = sel.ranges.length - 1; i >= 0; i--) {\n var range = sel.ranges[i];\n if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) { continue }\n var mode = cm.getModeAt(range.head);\n var indented = false;\n if (mode.electricChars) {\n for (var j = 0; j < mode.electricChars.length; j++)\n { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {\n indented = indentLine(cm, range.head.line, \"smart\");\n break\n } }\n } else if (mode.electricInput) {\n if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))\n { indented = indentLine(cm, range.head.line, \"smart\"); }\n }\n if (indented) { signalLater(cm, \"electricInput\", cm, range.head.line); }\n }\n }\n\n function copyableRanges(cm) {\n var text = [], ranges = [];\n for (var i = 0; i < cm.doc.sel.ranges.length; i++) {\n var line = cm.doc.sel.ranges[i].head.line;\n var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};\n ranges.push(lineRange);\n text.push(cm.getRange(lineRange.anchor, lineRange.head));\n }\n return {text: text, ranges: ranges}\n }\n\n function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) {\n field.setAttribute(\"autocorrect\", autocorrect ? \"on\" : \"off\");\n field.setAttribute(\"autocapitalize\", autocapitalize ? \"on\" : \"off\");\n field.setAttribute(\"spellcheck\", !!spellcheck);\n }\n\n function hiddenTextarea() {\n var te = elt(\"textarea\", null, null, \"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; min-height: 1em; outline: none\");\n var div = elt(\"div\", [te], null, \"overflow: hidden; position: relative; width: 3px; height: 0px;\");\n // The textarea is kept positioned near the cursor to prevent the\n // fact that it'll be scrolled into view on input from scrolling\n // our fake cursor out of view. On webkit, when wrap=off, paste is\n // very slow. So make the area wide instead.\n if (webkit) { te.style.width = \"1000px\"; }\n else { te.setAttribute(\"wrap\", \"off\"); }\n // If border: 0; -- iOS fails to open keyboard (issue #1287)\n if (ios) { te.style.border = \"1px solid black\"; }\n return div\n }\n\n // The publicly visible API. Note that methodOp(f) means\n // 'wrap f in an operation, performed on its `this` parameter'.\n\n // This is not the complete set of editor methods. Most of the\n // methods defined on the Doc type are also injected into\n // CodeMirror.prototype, for backwards compatibility and\n // convenience.\n\n function addEditorMethods(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n var helpers = CodeMirror.helpers = {};\n\n CodeMirror.prototype = {\n constructor: CodeMirror,\n focus: function(){win(this).focus(); this.display.input.focus();},\n\n setOption: function(option, value) {\n var options = this.options, old = options[option];\n if (options[option] == value && option != \"mode\") { return }\n options[option] = value;\n if (optionHandlers.hasOwnProperty(option))\n { operation(this, optionHandlers[option])(this, value, old); }\n signal(this, \"optionChange\", this, option);\n },\n\n getOption: function(option) {return this.options[option]},\n getDoc: function() {return this.doc},\n\n addKeyMap: function(map, bottom) {\n this.state.keyMaps[bottom ? \"push\" : \"unshift\"](getKeyMap(map));\n },\n removeKeyMap: function(map) {\n var maps = this.state.keyMaps;\n for (var i = 0; i < maps.length; ++i)\n { if (maps[i] == map || maps[i].name == map) {\n maps.splice(i, 1);\n return true\n } }\n },\n\n addOverlay: methodOp(function(spec, options) {\n var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);\n if (mode.startState) { throw new Error(\"Overlays may not be stateful.\") }\n insertSorted(this.state.overlays,\n {mode: mode, modeSpec: spec, opaque: options && options.opaque,\n priority: (options && options.priority) || 0},\n function (overlay) { return overlay.priority; });\n this.state.modeGen++;\n regChange(this);\n }),\n removeOverlay: methodOp(function(spec) {\n var overlays = this.state.overlays;\n for (var i = 0; i < overlays.length; ++i) {\n var cur = overlays[i].modeSpec;\n if (cur == spec || typeof spec == \"string\" && cur.name == spec) {\n overlays.splice(i, 1);\n this.state.modeGen++;\n regChange(this);\n return\n }\n }\n }),\n\n indentLine: methodOp(function(n, dir, aggressive) {\n if (typeof dir != \"string\" && typeof dir != \"number\") {\n if (dir == null) { dir = this.options.smartIndent ? \"smart\" : \"prev\"; }\n else { dir = dir ? \"add\" : \"subtract\"; }\n }\n if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); }\n }),\n indentSelection: methodOp(function(how) {\n var ranges = this.doc.sel.ranges, end = -1;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (!range.empty()) {\n var from = range.from(), to = range.to();\n var start = Math.max(end, from.line);\n end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;\n for (var j = start; j < end; ++j)\n { indentLine(this, j, how); }\n var newRanges = this.doc.sel.ranges;\n if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)\n { replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); }\n } else if (range.head.line > end) {\n indentLine(this, range.head.line, how, true);\n end = range.head.line;\n if (i == this.doc.sel.primIndex) { ensureCursorVisible(this); }\n }\n }\n }),\n\n // Fetch the parser token for a given character. Useful for hacks\n // that want to inspect the mode state (say, for completion).\n getTokenAt: function(pos, precise) {\n return takeToken(this, pos, precise)\n },\n\n getLineTokens: function(line, precise) {\n return takeToken(this, Pos(line), precise, true)\n },\n\n getTokenTypeAt: function(pos) {\n pos = clipPos(this.doc, pos);\n var styles = getLineStyles(this, getLine(this.doc, pos.line));\n var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;\n var type;\n if (ch == 0) { type = styles[2]; }\n else { for (;;) {\n var mid = (before + after) >> 1;\n if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; }\n else if (styles[mid * 2 + 1] < ch) { before = mid + 1; }\n else { type = styles[mid * 2 + 2]; break }\n } }\n var cut = type ? type.indexOf(\"overlay \") : -1;\n return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1)\n },\n\n getModeAt: function(pos) {\n var mode = this.doc.mode;\n if (!mode.innerMode) { return mode }\n return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode\n },\n\n getHelper: function(pos, type) {\n return this.getHelpers(pos, type)[0]\n },\n\n getHelpers: function(pos, type) {\n var found = [];\n if (!helpers.hasOwnProperty(type)) { return found }\n var help = helpers[type], mode = this.getModeAt(pos);\n if (typeof mode[type] == \"string\") {\n if (help[mode[type]]) { found.push(help[mode[type]]); }\n } else if (mode[type]) {\n for (var i = 0; i < mode[type].length; i++) {\n var val = help[mode[type][i]];\n if (val) { found.push(val); }\n }\n } else if (mode.helperType && help[mode.helperType]) {\n found.push(help[mode.helperType]);\n } else if (help[mode.name]) {\n found.push(help[mode.name]);\n }\n for (var i$1 = 0; i$1 < help._global.length; i$1++) {\n var cur = help._global[i$1];\n if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)\n { found.push(cur.val); }\n }\n return found\n },\n\n getStateAfter: function(line, precise) {\n var doc = this.doc;\n line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);\n return getContextBefore(this, line + 1, precise).state\n },\n\n cursorCoords: function(start, mode) {\n var pos, range = this.doc.sel.primary();\n if (start == null) { pos = range.head; }\n else if (typeof start == \"object\") { pos = clipPos(this.doc, start); }\n else { pos = start ? range.from() : range.to(); }\n return cursorCoords(this, pos, mode || \"page\")\n },\n\n charCoords: function(pos, mode) {\n return charCoords(this, clipPos(this.doc, pos), mode || \"page\")\n },\n\n coordsChar: function(coords, mode) {\n coords = fromCoordSystem(this, coords, mode || \"page\");\n return coordsChar(this, coords.left, coords.top)\n },\n\n lineAtHeight: function(height, mode) {\n height = fromCoordSystem(this, {top: height, left: 0}, mode || \"page\").top;\n return lineAtHeight(this.doc, height + this.display.viewOffset)\n },\n heightAtLine: function(line, mode, includeWidgets) {\n var end = false, lineObj;\n if (typeof line == \"number\") {\n var last = this.doc.first + this.doc.size - 1;\n if (line < this.doc.first) { line = this.doc.first; }\n else if (line > last) { line = last; end = true; }\n lineObj = getLine(this.doc, line);\n } else {\n lineObj = line;\n }\n return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || \"page\", includeWidgets || end).top +\n (end ? this.doc.height - heightAtLine(lineObj) : 0)\n },\n\n defaultTextHeight: function() { return textHeight(this.display) },\n defaultCharWidth: function() { return charWidth(this.display) },\n\n getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}},\n\n addWidget: function(pos, node, scroll, vert, horiz) {\n var display = this.display;\n pos = cursorCoords(this, clipPos(this.doc, pos));\n var top = pos.bottom, left = pos.left;\n node.style.position = \"absolute\";\n node.setAttribute(\"cm-ignore-events\", \"true\");\n this.display.input.setUneditable(node);\n display.sizer.appendChild(node);\n if (vert == \"over\") {\n top = pos.top;\n } else if (vert == \"above\" || vert == \"near\") {\n var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),\n hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);\n // Default to positioning above (if specified and possible); otherwise default to positioning below\n if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)\n { top = pos.top - node.offsetHeight; }\n else if (pos.bottom + node.offsetHeight <= vspace)\n { top = pos.bottom; }\n if (left + node.offsetWidth > hspace)\n { left = hspace - node.offsetWidth; }\n }\n node.style.top = top + \"px\";\n node.style.left = node.style.right = \"\";\n if (horiz == \"right\") {\n left = display.sizer.clientWidth - node.offsetWidth;\n node.style.right = \"0px\";\n } else {\n if (horiz == \"left\") { left = 0; }\n else if (horiz == \"middle\") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; }\n node.style.left = left + \"px\";\n }\n if (scroll)\n { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); }\n },\n\n triggerOnKeyDown: methodOp(onKeyDown),\n triggerOnKeyPress: methodOp(onKeyPress),\n triggerOnKeyUp: onKeyUp,\n triggerOnMouseDown: methodOp(onMouseDown),\n\n execCommand: function(cmd) {\n if (commands.hasOwnProperty(cmd))\n { return commands[cmd].call(null, this) }\n },\n\n triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),\n\n findPosH: function(from, amount, unit, visually) {\n var dir = 1;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n cur = findPosH(this.doc, cur, dir, unit, visually);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveH: methodOp(function(dir, unit) {\n var this$1 = this;\n\n this.extendSelectionsBy(function (range) {\n if (this$1.display.shift || this$1.doc.extend || range.empty())\n { return findPosH(this$1.doc, range.head, dir, unit, this$1.options.rtlMoveVisually) }\n else\n { return dir < 0 ? range.from() : range.to() }\n }, sel_move);\n }),\n\n deleteH: methodOp(function(dir, unit) {\n var sel = this.doc.sel, doc = this.doc;\n if (sel.somethingSelected())\n { doc.replaceSelection(\"\", null, \"+delete\"); }\n else\n { deleteNearSelection(this, function (range) {\n var other = findPosH(doc, range.head, dir, unit, false);\n return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other}\n }); }\n }),\n\n findPosV: function(from, amount, unit, goalColumn) {\n var dir = 1, x = goalColumn;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n var coords = cursorCoords(this, cur, \"div\");\n if (x == null) { x = coords.left; }\n else { coords.left = x; }\n cur = findPosV(this, coords, dir, unit);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveV: methodOp(function(dir, unit) {\n var this$1 = this;\n\n var doc = this.doc, goals = [];\n var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected();\n doc.extendSelectionsBy(function (range) {\n if (collapse)\n { return dir < 0 ? range.from() : range.to() }\n var headPos = cursorCoords(this$1, range.head, \"div\");\n if (range.goalColumn != null) { headPos.left = range.goalColumn; }\n goals.push(headPos.left);\n var pos = findPosV(this$1, headPos, dir, unit);\n if (unit == \"page\" && range == doc.sel.primary())\n { addToScrollTop(this$1, charCoords(this$1, pos, \"div\").top - headPos.top); }\n return pos\n }, sel_move);\n if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)\n { doc.sel.ranges[i].goalColumn = goals[i]; } }\n }),\n\n // Find the word at the given position (as returned by coordsChar).\n findWordAt: function(pos) {\n var doc = this.doc, line = getLine(doc, pos.line).text;\n var start = pos.ch, end = pos.ch;\n if (line) {\n var helper = this.getHelper(pos, \"wordChars\");\n if ((pos.sticky == \"before\" || end == line.length) && start) { --start; } else { ++end; }\n var startChar = line.charAt(start);\n var check = isWordChar(startChar, helper)\n ? function (ch) { return isWordChar(ch, helper); }\n : /\\s/.test(startChar) ? function (ch) { return /\\s/.test(ch); }\n : function (ch) { return (!/\\s/.test(ch) && !isWordChar(ch)); };\n while (start > 0 && check(line.charAt(start - 1))) { --start; }\n while (end < line.length && check(line.charAt(end))) { ++end; }\n }\n return new Range(Pos(pos.line, start), Pos(pos.line, end))\n },\n\n toggleOverwrite: function(value) {\n if (value != null && value == this.state.overwrite) { return }\n if (this.state.overwrite = !this.state.overwrite)\n { addClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n else\n { rmClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n\n signal(this, \"overwriteToggle\", this, this.state.overwrite);\n },\n hasFocus: function() { return this.display.input.getField() == activeElt(root(this)) },\n isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },\n\n scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }),\n getScrollInfo: function() {\n var scroller = this.display.scroller;\n return {left: scroller.scrollLeft, top: scroller.scrollTop,\n height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,\n width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,\n clientHeight: displayHeight(this), clientWidth: displayWidth(this)}\n },\n\n scrollIntoView: methodOp(function(range, margin) {\n if (range == null) {\n range = {from: this.doc.sel.primary().head, to: null};\n if (margin == null) { margin = this.options.cursorScrollMargin; }\n } else if (typeof range == \"number\") {\n range = {from: Pos(range, 0), to: null};\n } else if (range.from == null) {\n range = {from: range, to: null};\n }\n if (!range.to) { range.to = range.from; }\n range.margin = margin || 0;\n\n if (range.from.line != null) {\n scrollToRange(this, range);\n } else {\n scrollToCoordsRange(this, range.from, range.to, range.margin);\n }\n }),\n\n setSize: methodOp(function(width, height) {\n var this$1 = this;\n\n var interpret = function (val) { return typeof val == \"number\" || /^\\d+$/.test(String(val)) ? val + \"px\" : val; };\n if (width != null) { this.display.wrapper.style.width = interpret(width); }\n if (height != null) { this.display.wrapper.style.height = interpret(height); }\n if (this.options.lineWrapping) { clearLineMeasurementCache(this); }\n var lineNo = this.display.viewFrom;\n this.doc.iter(lineNo, this.display.viewTo, function (line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++)\n { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo, \"widget\"); break } } }\n ++lineNo;\n });\n this.curOp.forceUpdate = true;\n signal(this, \"refresh\", this);\n }),\n\n operation: function(f){return runInOp(this, f)},\n startOperation: function(){return startOperation(this)},\n endOperation: function(){return endOperation(this)},\n\n refresh: methodOp(function() {\n var oldHeight = this.display.cachedTextHeight;\n regChange(this);\n this.curOp.forceUpdate = true;\n clearCaches(this);\n scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop);\n updateGutterSpace(this.display);\n if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping)\n { estimateLineHeights(this); }\n signal(this, \"refresh\", this);\n }),\n\n swapDoc: methodOp(function(doc) {\n var old = this.doc;\n old.cm = null;\n // Cancel the current text selection if any (#5821)\n if (this.state.selectingText) { this.state.selectingText(); }\n attachDoc(this, doc);\n clearCaches(this);\n this.display.input.reset();\n scrollToCoords(this, doc.scrollLeft, doc.scrollTop);\n this.curOp.forceScroll = true;\n signalLater(this, \"swapDoc\", this, old);\n return old\n }),\n\n phrase: function(phraseText) {\n var phrases = this.options.phrases;\n return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText\n },\n\n getInputField: function(){return this.display.input.getField()},\n getWrapperElement: function(){return this.display.wrapper},\n getScrollerElement: function(){return this.display.scroller},\n getGutterElement: function(){return this.display.gutters}\n };\n eventMixin(CodeMirror);\n\n CodeMirror.registerHelper = function(type, name, value) {\n if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; }\n helpers[type][name] = value;\n };\n CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {\n CodeMirror.registerHelper(type, name, value);\n helpers[type]._global.push({pred: predicate, val: value});\n };\n }\n\n // Used for horizontal relative motion. Dir is -1 or 1 (left or\n // right), unit can be \"codepoint\", \"char\", \"column\" (like char, but\n // doesn't cross line boundaries), \"word\" (across next word), or\n // \"group\" (to the start of next group of word or\n // non-word-non-whitespace chars). The visually param controls\n // whether, in right-to-left text, direction 1 means to move towards\n // the next index in the string, or towards the character to the right\n // of the current position. The resulting position will have a\n // hitSide=true property if it reached the end of the document.\n function findPosH(doc, pos, dir, unit, visually) {\n var oldPos = pos;\n var origDir = dir;\n var lineObj = getLine(doc, pos.line);\n var lineDir = visually && doc.direction == \"rtl\" ? -dir : dir;\n function findNextLine() {\n var l = pos.line + lineDir;\n if (l < doc.first || l >= doc.first + doc.size) { return false }\n pos = new Pos(l, pos.ch, pos.sticky);\n return lineObj = getLine(doc, l)\n }\n function moveOnce(boundToLine) {\n var next;\n if (unit == \"codepoint\") {\n var ch = lineObj.text.charCodeAt(pos.ch + (dir > 0 ? 0 : -1));\n if (isNaN(ch)) {\n next = null;\n } else {\n var astral = dir > 0 ? ch >= 0xD800 && ch < 0xDC00 : ch >= 0xDC00 && ch < 0xDFFF;\n next = new Pos(pos.line, Math.max(0, Math.min(lineObj.text.length, pos.ch + dir * (astral ? 2 : 1))), -dir);\n }\n } else if (visually) {\n next = moveVisually(doc.cm, lineObj, pos, dir);\n } else {\n next = moveLogically(lineObj, pos, dir);\n }\n if (next == null) {\n if (!boundToLine && findNextLine())\n { pos = endOfLine(visually, doc.cm, lineObj, pos.line, lineDir); }\n else\n { return false }\n } else {\n pos = next;\n }\n return true\n }\n\n if (unit == \"char\" || unit == \"codepoint\") {\n moveOnce();\n } else if (unit == \"column\") {\n moveOnce(true);\n } else if (unit == \"word\" || unit == \"group\") {\n var sawType = null, group = unit == \"group\";\n var helper = doc.cm && doc.cm.getHelper(pos, \"wordChars\");\n for (var first = true;; first = false) {\n if (dir < 0 && !moveOnce(!first)) { break }\n var cur = lineObj.text.charAt(pos.ch) || \"\\n\";\n var type = isWordChar(cur, helper) ? \"w\"\n : group && cur == \"\\n\" ? \"n\"\n : !group || /\\s/.test(cur) ? null\n : \"p\";\n if (group && !first && !type) { type = \"s\"; }\n if (sawType && sawType != type) {\n if (dir < 0) {dir = 1; moveOnce(); pos.sticky = \"after\";}\n break\n }\n\n if (type) { sawType = type; }\n if (dir > 0 && !moveOnce(!first)) { break }\n }\n }\n var result = skipAtomic(doc, pos, oldPos, origDir, true);\n if (equalCursorPos(oldPos, result)) { result.hitSide = true; }\n return result\n }\n\n // For relative vertical movement. Dir may be -1 or 1. Unit can be\n // \"page\" or \"line\". The resulting position will have a hitSide=true\n // property if it reached the end of the document.\n function findPosV(cm, pos, dir, unit) {\n var doc = cm.doc, x = pos.left, y;\n if (unit == \"page\") {\n var pageSize = Math.min(cm.display.wrapper.clientHeight, win(cm).innerHeight || doc(cm).documentElement.clientHeight);\n var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3);\n y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount;\n\n } else if (unit == \"line\") {\n y = dir > 0 ? pos.bottom + 3 : pos.top - 3;\n }\n var target;\n for (;;) {\n target = coordsChar(cm, x, y);\n if (!target.outside) { break }\n if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break }\n y += dir * 5;\n }\n return target\n }\n\n // CONTENTEDITABLE INPUT STYLE\n\n var ContentEditableInput = function(cm) {\n this.cm = cm;\n this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;\n this.polling = new Delayed();\n this.composing = null;\n this.gracePeriod = false;\n this.readDOMTimeout = null;\n };\n\n ContentEditableInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = input.cm;\n var div = input.div = display.lineDiv;\n div.contentEditable = true;\n disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize);\n\n function belongsToInput(e) {\n for (var t = e.target; t; t = t.parentNode) {\n if (t == div) { return true }\n if (/\\bCodeMirror-(?:line)?widget\\b/.test(t.className)) { break }\n }\n return false\n }\n\n on(div, \"paste\", function (e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n // IE doesn't fire input events, so we schedule a read for the pasted content in this way\n if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); }\n });\n\n on(div, \"compositionstart\", function (e) {\n this$1.composing = {data: e.data, done: false};\n });\n on(div, \"compositionupdate\", function (e) {\n if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; }\n });\n on(div, \"compositionend\", function (e) {\n if (this$1.composing) {\n if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); }\n this$1.composing.done = true;\n }\n });\n\n on(div, \"touchstart\", function () { return input.forceCompositionEnd(); });\n\n on(div, \"input\", function () {\n if (!this$1.composing) { this$1.readFromDOMSoon(); }\n });\n\n function onCopyCut(e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n if (e.type == \"cut\") { cm.replaceSelection(\"\", null, \"cut\"); }\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.operation(function () {\n cm.setSelections(ranges.ranges, 0, sel_dontScroll);\n cm.replaceSelection(\"\", null, \"cut\");\n });\n }\n }\n if (e.clipboardData) {\n e.clipboardData.clearData();\n var content = lastCopied.text.join(\"\\n\");\n // iOS exposes the clipboard API, but seems to discard content inserted into it\n e.clipboardData.setData(\"Text\", content);\n if (e.clipboardData.getData(\"Text\") == content) {\n e.preventDefault();\n return\n }\n }\n // Old-fashioned briefly-focus-a-textarea hack\n var kludge = hiddenTextarea(), te = kludge.firstChild;\n disableBrowserMagic(te);\n cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);\n te.value = lastCopied.text.join(\"\\n\");\n var hadFocus = activeElt(rootNode(div));\n selectInput(te);\n setTimeout(function () {\n cm.display.lineSpace.removeChild(kludge);\n hadFocus.focus();\n if (hadFocus == div) { input.showPrimarySelection(); }\n }, 50);\n }\n on(div, \"copy\", onCopyCut);\n on(div, \"cut\", onCopyCut);\n };\n\n ContentEditableInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.div.setAttribute('aria-label', label);\n } else {\n this.div.removeAttribute('aria-label');\n }\n };\n\n ContentEditableInput.prototype.prepareSelection = function () {\n var result = prepareSelection(this.cm, false);\n result.focus = activeElt(rootNode(this.div)) == this.div;\n return result\n };\n\n ContentEditableInput.prototype.showSelection = function (info, takeFocus) {\n if (!info || !this.cm.display.view.length) { return }\n if (info.focus || takeFocus) { this.showPrimarySelection(); }\n this.showMultipleSelections(info);\n };\n\n ContentEditableInput.prototype.getSelection = function () {\n return this.cm.display.wrapper.ownerDocument.getSelection()\n };\n\n ContentEditableInput.prototype.showPrimarySelection = function () {\n var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();\n var from = prim.from(), to = prim.to();\n\n if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {\n sel.removeAllRanges();\n return\n }\n\n var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&\n cmp(minPos(curAnchor, curFocus), from) == 0 &&\n cmp(maxPos(curAnchor, curFocus), to) == 0)\n { return }\n\n var view = cm.display.view;\n var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) ||\n {node: view[0].measure.map[2], offset: 0};\n var end = to.line < cm.display.viewTo && posToDOM(cm, to);\n if (!end) {\n var measure = view[view.length - 1].measure;\n var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;\n end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};\n }\n\n if (!start || !end) {\n sel.removeAllRanges();\n return\n }\n\n var old = sel.rangeCount && sel.getRangeAt(0), rng;\n try { rng = range(start.node, start.offset, end.offset, end.node); }\n catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible\n if (rng) {\n if (!gecko && cm.state.focused) {\n sel.collapse(start.node, start.offset);\n if (!rng.collapsed) {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n } else {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n if (old && sel.anchorNode == null) { sel.addRange(old); }\n else if (gecko) { this.startGracePeriod(); }\n }\n this.rememberSelection();\n };\n\n ContentEditableInput.prototype.startGracePeriod = function () {\n var this$1 = this;\n\n clearTimeout(this.gracePeriod);\n this.gracePeriod = setTimeout(function () {\n this$1.gracePeriod = false;\n if (this$1.selectionChanged())\n { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); }\n }, 20);\n };\n\n ContentEditableInput.prototype.showMultipleSelections = function (info) {\n removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);\n removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);\n };\n\n ContentEditableInput.prototype.rememberSelection = function () {\n var sel = this.getSelection();\n this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;\n this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;\n };\n\n ContentEditableInput.prototype.selectionInEditor = function () {\n var sel = this.getSelection();\n if (!sel.rangeCount) { return false }\n var node = sel.getRangeAt(0).commonAncestorContainer;\n return contains(this.div, node)\n };\n\n ContentEditableInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\") {\n if (!this.selectionInEditor() || activeElt(rootNode(this.div)) != this.div)\n { this.showSelection(this.prepareSelection(), true); }\n this.div.focus();\n }\n };\n ContentEditableInput.prototype.blur = function () { this.div.blur(); };\n ContentEditableInput.prototype.getField = function () { return this.div };\n\n ContentEditableInput.prototype.supportsTouch = function () { return true };\n\n ContentEditableInput.prototype.receivedFocus = function () {\n var this$1 = this;\n\n var input = this;\n if (this.selectionInEditor())\n { setTimeout(function () { return this$1.pollSelection(); }, 20); }\n else\n { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); }\n\n function poll() {\n if (input.cm.state.focused) {\n input.pollSelection();\n input.polling.set(input.cm.options.pollInterval, poll);\n }\n }\n this.polling.set(this.cm.options.pollInterval, poll);\n };\n\n ContentEditableInput.prototype.selectionChanged = function () {\n var sel = this.getSelection();\n return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||\n sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset\n };\n\n ContentEditableInput.prototype.pollSelection = function () {\n if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }\n var sel = this.getSelection(), cm = this.cm;\n // On Android Chrome (version 56, at least), backspacing into an\n // uneditable block element will put the cursor in that element,\n // and then, because it's not editable, hide the virtual keyboard.\n // Because Android doesn't allow us to actually detect backspace\n // presses in a sane way, this code checks for when that happens\n // and simulates a backspace press in this case.\n if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) {\n this.cm.triggerOnKeyDown({type: \"keydown\", keyCode: 8, preventDefault: Math.abs});\n this.blur();\n this.focus();\n return\n }\n if (this.composing) { return }\n this.rememberSelection();\n var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var head = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (anchor && head) { runInOp(cm, function () {\n setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);\n if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; }\n }); }\n };\n\n ContentEditableInput.prototype.pollContent = function () {\n if (this.readDOMTimeout != null) {\n clearTimeout(this.readDOMTimeout);\n this.readDOMTimeout = null;\n }\n\n var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();\n var from = sel.from(), to = sel.to();\n if (from.ch == 0 && from.line > cm.firstLine())\n { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); }\n if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine())\n { to = Pos(to.line + 1, 0); }\n if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false }\n\n var fromIndex, fromLine, fromNode;\n if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {\n fromLine = lineNo(display.view[0].line);\n fromNode = display.view[0].node;\n } else {\n fromLine = lineNo(display.view[fromIndex].line);\n fromNode = display.view[fromIndex - 1].node.nextSibling;\n }\n var toIndex = findViewIndex(cm, to.line);\n var toLine, toNode;\n if (toIndex == display.view.length - 1) {\n toLine = display.viewTo - 1;\n toNode = display.lineDiv.lastChild;\n } else {\n toLine = lineNo(display.view[toIndex + 1].line) - 1;\n toNode = display.view[toIndex + 1].node.previousSibling;\n }\n\n if (!fromNode) { return false }\n var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));\n var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));\n while (newText.length > 1 && oldText.length > 1) {\n if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }\n else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }\n else { break }\n }\n\n var cutFront = 0, cutEnd = 0;\n var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);\n while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))\n { ++cutFront; }\n var newBot = lst(newText), oldBot = lst(oldText);\n var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),\n oldBot.length - (oldText.length == 1 ? cutFront : 0));\n while (cutEnd < maxCutEnd &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))\n { ++cutEnd; }\n // Try to move start of change to start of selection if ambiguous\n if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) {\n while (cutFront && cutFront > from.ch &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) {\n cutFront--;\n cutEnd++;\n }\n }\n\n newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\\u200b+/, \"\");\n newText[0] = newText[0].slice(cutFront).replace(/\\u200b+$/, \"\");\n\n var chFrom = Pos(fromLine, cutFront);\n var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);\n if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {\n replaceRange(cm.doc, newText, chFrom, chTo, \"+input\");\n return true\n }\n };\n\n ContentEditableInput.prototype.ensurePolled = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.reset = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.forceCompositionEnd = function () {\n if (!this.composing) { return }\n clearTimeout(this.readDOMTimeout);\n this.composing = null;\n this.updateFromDOM();\n this.div.blur();\n this.div.focus();\n };\n ContentEditableInput.prototype.readFromDOMSoon = function () {\n var this$1 = this;\n\n if (this.readDOMTimeout != null) { return }\n this.readDOMTimeout = setTimeout(function () {\n this$1.readDOMTimeout = null;\n if (this$1.composing) {\n if (this$1.composing.done) { this$1.composing = null; }\n else { return }\n }\n this$1.updateFromDOM();\n }, 80);\n };\n\n ContentEditableInput.prototype.updateFromDOM = function () {\n var this$1 = this;\n\n if (this.cm.isReadOnly() || !this.pollContent())\n { runInOp(this.cm, function () { return regChange(this$1.cm); }); }\n };\n\n ContentEditableInput.prototype.setUneditable = function (node) {\n node.contentEditable = \"false\";\n };\n\n ContentEditableInput.prototype.onKeyPress = function (e) {\n if (e.charCode == 0 || this.composing) { return }\n e.preventDefault();\n if (!this.cm.isReadOnly())\n { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }\n };\n\n ContentEditableInput.prototype.readOnlyChanged = function (val) {\n this.div.contentEditable = String(val != \"nocursor\");\n };\n\n ContentEditableInput.prototype.onContextMenu = function () {};\n ContentEditableInput.prototype.resetPosition = function () {};\n\n ContentEditableInput.prototype.needsContentAttribute = true;\n\n function posToDOM(cm, pos) {\n var view = findViewForLine(cm, pos.line);\n if (!view || view.hidden) { return null }\n var line = getLine(cm.doc, pos.line);\n var info = mapFromLineView(view, line, pos.line);\n\n var order = getOrder(line, cm.doc.direction), side = \"left\";\n if (order) {\n var partPos = getBidiPartAt(order, pos.ch);\n side = partPos % 2 ? \"right\" : \"left\";\n }\n var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);\n result.offset = result.collapse == \"right\" ? result.end : result.start;\n return result\n }\n\n function isInGutter(node) {\n for (var scan = node; scan; scan = scan.parentNode)\n { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } }\n return false\n }\n\n function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }\n\n function domTextBetween(cm, from, to, fromLine, toLine) {\n var text = \"\", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false;\n function recognizeMarker(id) { return function (marker) { return marker.id == id; } }\n function close() {\n if (closing) {\n text += lineSep;\n if (extraLinebreak) { text += lineSep; }\n closing = extraLinebreak = false;\n }\n }\n function addText(str) {\n if (str) {\n close();\n text += str;\n }\n }\n function walk(node) {\n if (node.nodeType == 1) {\n var cmText = node.getAttribute(\"cm-text\");\n if (cmText) {\n addText(cmText);\n return\n }\n var markerID = node.getAttribute(\"cm-marker\"), range;\n if (markerID) {\n var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));\n if (found.length && (range = found[0].find(0)))\n { addText(getBetween(cm.doc, range.from, range.to).join(lineSep)); }\n return\n }\n if (node.getAttribute(\"contenteditable\") == \"false\") { return }\n var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName);\n if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return }\n\n if (isBlock) { close(); }\n for (var i = 0; i < node.childNodes.length; i++)\n { walk(node.childNodes[i]); }\n\n if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; }\n if (isBlock) { closing = true; }\n } else if (node.nodeType == 3) {\n addText(node.nodeValue.replace(/\\u200b/g, \"\").replace(/\\u00a0/g, \" \"));\n }\n }\n for (;;) {\n walk(from);\n if (from == to) { break }\n from = from.nextSibling;\n extraLinebreak = false;\n }\n return text\n }\n\n function domToPos(cm, node, offset) {\n var lineNode;\n if (node == cm.display.lineDiv) {\n lineNode = cm.display.lineDiv.childNodes[offset];\n if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) }\n node = null; offset = 0;\n } else {\n for (lineNode = node;; lineNode = lineNode.parentNode) {\n if (!lineNode || lineNode == cm.display.lineDiv) { return null }\n if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break }\n }\n }\n for (var i = 0; i < cm.display.view.length; i++) {\n var lineView = cm.display.view[i];\n if (lineView.node == lineNode)\n { return locateNodeInLineView(lineView, node, offset) }\n }\n }\n\n function locateNodeInLineView(lineView, node, offset) {\n var wrapper = lineView.text.firstChild, bad = false;\n if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) }\n if (node == wrapper) {\n bad = true;\n node = wrapper.childNodes[offset];\n offset = 0;\n if (!node) {\n var line = lineView.rest ? lst(lineView.rest) : lineView.line;\n return badPos(Pos(lineNo(line), line.text.length), bad)\n }\n }\n\n var textNode = node.nodeType == 3 ? node : null, topNode = node;\n if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {\n textNode = node.firstChild;\n if (offset) { offset = textNode.nodeValue.length; }\n }\n while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; }\n var measure = lineView.measure, maps = measure.maps;\n\n function find(textNode, topNode, offset) {\n for (var i = -1; i < (maps ? maps.length : 0); i++) {\n var map = i < 0 ? measure.map : maps[i];\n for (var j = 0; j < map.length; j += 3) {\n var curNode = map[j + 2];\n if (curNode == textNode || curNode == topNode) {\n var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);\n var ch = map[j] + offset;\n if (offset < 0 || curNode != textNode) { ch = map[j + (offset ? 1 : 0)]; }\n return Pos(line, ch)\n }\n }\n }\n }\n var found = find(textNode, topNode, offset);\n if (found) { return badPos(found, bad) }\n\n // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems\n for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {\n found = find(after, after.firstChild, 0);\n if (found)\n { return badPos(Pos(found.line, found.ch - dist), bad) }\n else\n { dist += after.textContent.length; }\n }\n for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) {\n found = find(before, before.firstChild, -1);\n if (found)\n { return badPos(Pos(found.line, found.ch + dist$1), bad) }\n else\n { dist$1 += before.textContent.length; }\n }\n }\n\n // TEXTAREA INPUT STYLE\n\n var TextareaInput = function(cm) {\n this.cm = cm;\n // See input.poll and input.reset\n this.prevInput = \"\";\n\n // Flag that indicates whether we expect input to appear real soon\n // now (after some event like 'keypress' or 'input') and are\n // polling intensively.\n this.pollingFast = false;\n // Self-resetting timeout for the poller\n this.polling = new Delayed();\n // Used to work around IE issue with selection being forgotten when focus moves away from textarea\n this.hasSelection = false;\n this.composing = null;\n this.resetting = false;\n };\n\n TextareaInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = this.cm;\n this.createField(display);\n var te = this.textarea;\n\n display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild);\n\n // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)\n if (ios) { te.style.width = \"0px\"; }\n\n on(te, \"input\", function () {\n if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; }\n input.poll();\n });\n\n on(te, \"paste\", function (e) {\n if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n\n cm.state.pasteIncoming = +new Date;\n input.fastPoll();\n });\n\n function prepareCopyCut(e) {\n if (signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.setSelections(ranges.ranges, null, sel_dontScroll);\n } else {\n input.prevInput = \"\";\n te.value = ranges.text.join(\"\\n\");\n selectInput(te);\n }\n }\n if (e.type == \"cut\") { cm.state.cutIncoming = +new Date; }\n }\n on(te, \"cut\", prepareCopyCut);\n on(te, \"copy\", prepareCopyCut);\n\n on(display.scroller, \"paste\", function (e) {\n if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return }\n if (!te.dispatchEvent) {\n cm.state.pasteIncoming = +new Date;\n input.focus();\n return\n }\n\n // Pass the `paste` event to the textarea so it's handled by its event listener.\n var event = new Event(\"paste\");\n event.clipboardData = e.clipboardData;\n te.dispatchEvent(event);\n });\n\n // Prevent normal selection in the editor (we handle our own)\n on(display.lineSpace, \"selectstart\", function (e) {\n if (!eventInWidget(display, e)) { e_preventDefault(e); }\n });\n\n on(te, \"compositionstart\", function () {\n var start = cm.getCursor(\"from\");\n if (input.composing) { input.composing.range.clear(); }\n input.composing = {\n start: start,\n range: cm.markText(start, cm.getCursor(\"to\"), {className: \"CodeMirror-composing\"})\n };\n });\n on(te, \"compositionend\", function () {\n if (input.composing) {\n input.poll();\n input.composing.range.clear();\n input.composing = null;\n }\n });\n };\n\n TextareaInput.prototype.createField = function (_display) {\n // Wraps and hides input textarea\n this.wrapper = hiddenTextarea();\n // The semihidden textarea that is focused when the editor is\n // focused, and receives input.\n this.textarea = this.wrapper.firstChild;\n var opts = this.cm.options;\n disableBrowserMagic(this.textarea, opts.spellcheck, opts.autocorrect, opts.autocapitalize);\n };\n\n TextareaInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.textarea.setAttribute('aria-label', label);\n } else {\n this.textarea.removeAttribute('aria-label');\n }\n };\n\n TextareaInput.prototype.prepareSelection = function () {\n // Redraw the selection and/or cursor\n var cm = this.cm, display = cm.display, doc = cm.doc;\n var result = prepareSelection(cm);\n\n // Move the hidden textarea near the cursor to prevent scrolling artifacts\n if (cm.options.moveInputWithCursor) {\n var headPos = cursorCoords(cm, doc.sel.primary().head, \"div\");\n var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();\n result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,\n headPos.top + lineOff.top - wrapOff.top));\n result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,\n headPos.left + lineOff.left - wrapOff.left));\n }\n\n return result\n };\n\n TextareaInput.prototype.showSelection = function (drawn) {\n var cm = this.cm, display = cm.display;\n removeChildrenAndAdd(display.cursorDiv, drawn.cursors);\n removeChildrenAndAdd(display.selectionDiv, drawn.selection);\n if (drawn.teTop != null) {\n this.wrapper.style.top = drawn.teTop + \"px\";\n this.wrapper.style.left = drawn.teLeft + \"px\";\n }\n };\n\n // Reset the input to correspond to the selection (or to be empty,\n // when not typing and nothing is selected)\n TextareaInput.prototype.reset = function (typing) {\n if (this.contextMenuPending || this.composing && typing) { return }\n var cm = this.cm;\n this.resetting = true;\n if (cm.somethingSelected()) {\n this.prevInput = \"\";\n var content = cm.getSelection();\n this.textarea.value = content;\n if (cm.state.focused) { selectInput(this.textarea); }\n if (ie && ie_version >= 9) { this.hasSelection = content; }\n } else if (!typing) {\n this.prevInput = this.textarea.value = \"\";\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n }\n this.resetting = false;\n };\n\n TextareaInput.prototype.getField = function () { return this.textarea };\n\n TextareaInput.prototype.supportsTouch = function () { return false };\n\n TextareaInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\" && (!mobile || activeElt(rootNode(this.textarea)) != this.textarea)) {\n try { this.textarea.focus(); }\n catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM\n }\n };\n\n TextareaInput.prototype.blur = function () { this.textarea.blur(); };\n\n TextareaInput.prototype.resetPosition = function () {\n this.wrapper.style.top = this.wrapper.style.left = 0;\n };\n\n TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); };\n\n // Poll for input changes, using the normal rate of polling. This\n // runs as long as the editor is focused.\n TextareaInput.prototype.slowPoll = function () {\n var this$1 = this;\n\n if (this.pollingFast) { return }\n this.polling.set(this.cm.options.pollInterval, function () {\n this$1.poll();\n if (this$1.cm.state.focused) { this$1.slowPoll(); }\n });\n };\n\n // When an event has just come in that is likely to add or change\n // something in the input textarea, we poll faster, to ensure that\n // the change appears on the screen quickly.\n TextareaInput.prototype.fastPoll = function () {\n var missed = false, input = this;\n input.pollingFast = true;\n function p() {\n var changed = input.poll();\n if (!changed && !missed) {missed = true; input.polling.set(60, p);}\n else {input.pollingFast = false; input.slowPoll();}\n }\n input.polling.set(20, p);\n };\n\n // Read input from the textarea, and update the document to match.\n // When something is selected, it is present in the textarea, and\n // selected (unless it is huge, in which case a placeholder is\n // used). When nothing is selected, the cursor sits after previously\n // seen text (can be empty), which is stored in prevInput (we must\n // not reset the textarea when typing, because that breaks IME).\n TextareaInput.prototype.poll = function () {\n var this$1 = this;\n\n var cm = this.cm, input = this.textarea, prevInput = this.prevInput;\n // Since this is called a *lot*, try to bail out as cheaply as\n // possible when it is clear that nothing happened. hasSelection\n // will be the case when there is a lot of text in the textarea,\n // in which case reading its value would be expensive.\n if (this.contextMenuPending || this.resetting || !cm.state.focused ||\n (hasSelection(input) && !prevInput && !this.composing) ||\n cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)\n { return false }\n\n var text = input.value;\n // If nothing changed, bail.\n if (text == prevInput && !cm.somethingSelected()) { return false }\n // Work around nonsensical selection resetting in IE9/10, and\n // inexplicable appearance of private area unicode characters on\n // some key combos in Mac (#2689).\n if (ie && ie_version >= 9 && this.hasSelection === text ||\n mac && /[\\uf700-\\uf7ff]/.test(text)) {\n cm.display.input.reset();\n return false\n }\n\n if (cm.doc.sel == cm.display.selForContextMenu) {\n var first = text.charCodeAt(0);\n if (first == 0x200b && !prevInput) { prevInput = \"\\u200b\"; }\n if (first == 0x21da) { this.reset(); return this.cm.execCommand(\"undo\") }\n }\n // Find the part of the input that is actually new\n var same = 0, l = Math.min(prevInput.length, text.length);\n while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; }\n\n runInOp(cm, function () {\n applyTextInput(cm, text.slice(same), prevInput.length - same,\n null, this$1.composing ? \"*compose\" : null);\n\n // Don't leave long text in the textarea, since it makes further polling slow\n if (text.length > 1000 || text.indexOf(\"\\n\") > -1) { input.value = this$1.prevInput = \"\"; }\n else { this$1.prevInput = text; }\n\n if (this$1.composing) {\n this$1.composing.range.clear();\n this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor(\"to\"),\n {className: \"CodeMirror-composing\"});\n }\n });\n return true\n };\n\n TextareaInput.prototype.ensurePolled = function () {\n if (this.pollingFast && this.poll()) { this.pollingFast = false; }\n };\n\n TextareaInput.prototype.onKeyPress = function () {\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n this.fastPoll();\n };\n\n TextareaInput.prototype.onContextMenu = function (e) {\n var input = this, cm = input.cm, display = cm.display, te = input.textarea;\n if (input.contextMenuPending) { input.contextMenuPending(); }\n var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;\n if (!pos || presto) { return } // Opera is difficult.\n\n // Reset the current text selection only if the click is done outside of the selection\n // and 'resetSelectionOnContextMenu' option is true.\n var reset = cm.options.resetSelectionOnContextMenu;\n if (reset && cm.doc.sel.contains(pos) == -1)\n { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); }\n\n var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;\n var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect();\n input.wrapper.style.cssText = \"position: static\";\n te.style.cssText = \"position: absolute; width: 30px; height: 30px;\\n top: \" + (e.clientY - wrapperBox.top - 5) + \"px; left: \" + (e.clientX - wrapperBox.left - 5) + \"px;\\n z-index: 1000; background: \" + (ie ? \"rgba(255, 255, 255, .05)\" : \"transparent\") + \";\\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\";\n var oldScrollY;\n if (webkit) { oldScrollY = te.ownerDocument.defaultView.scrollY; } // Work around Chrome issue (#2712)\n display.input.focus();\n if (webkit) { te.ownerDocument.defaultView.scrollTo(null, oldScrollY); }\n display.input.reset();\n // Adds \"Select all\" to context menu in FF\n if (!cm.somethingSelected()) { te.value = input.prevInput = \" \"; }\n input.contextMenuPending = rehide;\n display.selForContextMenu = cm.doc.sel;\n clearTimeout(display.detectingSelectAll);\n\n // Select-all will be greyed out if there's nothing to select, so\n // this adds a zero-width space so that we can later check whether\n // it got selected.\n function prepareSelectAllHack() {\n if (te.selectionStart != null) {\n var selected = cm.somethingSelected();\n var extval = \"\\u200b\" + (selected ? te.value : \"\");\n te.value = \"\\u21da\"; // Used to catch context-menu undo\n te.value = extval;\n input.prevInput = selected ? \"\" : \"\\u200b\";\n te.selectionStart = 1; te.selectionEnd = extval.length;\n // Re-set this, in case some other handler touched the\n // selection in the meantime.\n display.selForContextMenu = cm.doc.sel;\n }\n }\n function rehide() {\n if (input.contextMenuPending != rehide) { return }\n input.contextMenuPending = false;\n input.wrapper.style.cssText = oldWrapperCSS;\n te.style.cssText = oldCSS;\n if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); }\n\n // Try to detect the user choosing select-all\n if (te.selectionStart != null) {\n if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); }\n var i = 0, poll = function () {\n if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&\n te.selectionEnd > 0 && input.prevInput == \"\\u200b\") {\n operation(cm, selectAll)(cm);\n } else if (i++ < 10) {\n display.detectingSelectAll = setTimeout(poll, 500);\n } else {\n display.selForContextMenu = null;\n display.input.reset();\n }\n };\n display.detectingSelectAll = setTimeout(poll, 200);\n }\n }\n\n if (ie && ie_version >= 9) { prepareSelectAllHack(); }\n if (captureRightClick) {\n e_stop(e);\n var mouseup = function () {\n off(window, \"mouseup\", mouseup);\n setTimeout(rehide, 20);\n };\n on(window, \"mouseup\", mouseup);\n } else {\n setTimeout(rehide, 50);\n }\n };\n\n TextareaInput.prototype.readOnlyChanged = function (val) {\n if (!val) { this.reset(); }\n this.textarea.disabled = val == \"nocursor\";\n this.textarea.readOnly = !!val;\n };\n\n TextareaInput.prototype.setUneditable = function () {};\n\n TextareaInput.prototype.needsContentAttribute = false;\n\n function fromTextArea(textarea, options) {\n options = options ? copyObj(options) : {};\n options.value = textarea.value;\n if (!options.tabindex && textarea.tabIndex)\n { options.tabindex = textarea.tabIndex; }\n if (!options.placeholder && textarea.placeholder)\n { options.placeholder = textarea.placeholder; }\n // Set autofocus to true if this textarea is focused, or if it has\n // autofocus and no other element is focused.\n if (options.autofocus == null) {\n var hasFocus = activeElt(rootNode(textarea));\n options.autofocus = hasFocus == textarea ||\n textarea.getAttribute(\"autofocus\") != null && hasFocus == document.body;\n }\n\n function save() {textarea.value = cm.getValue();}\n\n var realSubmit;\n if (textarea.form) {\n on(textarea.form, \"submit\", save);\n // Deplorable hack to make the submit method do the right thing.\n if (!options.leaveSubmitMethodAlone) {\n var form = textarea.form;\n realSubmit = form.submit;\n try {\n var wrappedSubmit = form.submit = function () {\n save();\n form.submit = realSubmit;\n form.submit();\n form.submit = wrappedSubmit;\n };\n } catch(e) {}\n }\n }\n\n options.finishInit = function (cm) {\n cm.save = save;\n cm.getTextArea = function () { return textarea; };\n cm.toTextArea = function () {\n cm.toTextArea = isNaN; // Prevent this from being ran twice\n save();\n textarea.parentNode.removeChild(cm.getWrapperElement());\n textarea.style.display = \"\";\n if (textarea.form) {\n off(textarea.form, \"submit\", save);\n if (!options.leaveSubmitMethodAlone && typeof textarea.form.submit == \"function\")\n { textarea.form.submit = realSubmit; }\n }\n };\n };\n\n textarea.style.display = \"none\";\n var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); },\n options);\n return cm\n }\n\n function addLegacyProps(CodeMirror) {\n CodeMirror.off = off;\n CodeMirror.on = on;\n CodeMirror.wheelEventPixels = wheelEventPixels;\n CodeMirror.Doc = Doc;\n CodeMirror.splitLines = splitLinesAuto;\n CodeMirror.countColumn = countColumn;\n CodeMirror.findColumn = findColumn;\n CodeMirror.isWordChar = isWordCharBasic;\n CodeMirror.Pass = Pass;\n CodeMirror.signal = signal;\n CodeMirror.Line = Line;\n CodeMirror.changeEnd = changeEnd;\n CodeMirror.scrollbarModel = scrollbarModel;\n CodeMirror.Pos = Pos;\n CodeMirror.cmpPos = cmp;\n CodeMirror.modes = modes;\n CodeMirror.mimeModes = mimeModes;\n CodeMirror.resolveMode = resolveMode;\n CodeMirror.getMode = getMode;\n CodeMirror.modeExtensions = modeExtensions;\n CodeMirror.extendMode = extendMode;\n CodeMirror.copyState = copyState;\n CodeMirror.startState = startState;\n CodeMirror.innerMode = innerMode;\n CodeMirror.commands = commands;\n CodeMirror.keyMap = keyMap;\n CodeMirror.keyName = keyName;\n CodeMirror.isModifierKey = isModifierKey;\n CodeMirror.lookupKey = lookupKey;\n CodeMirror.normalizeKeyMap = normalizeKeyMap;\n CodeMirror.StringStream = StringStream;\n CodeMirror.SharedTextMarker = SharedTextMarker;\n CodeMirror.TextMarker = TextMarker;\n CodeMirror.LineWidget = LineWidget;\n CodeMirror.e_preventDefault = e_preventDefault;\n CodeMirror.e_stopPropagation = e_stopPropagation;\n CodeMirror.e_stop = e_stop;\n CodeMirror.addClass = addClass;\n CodeMirror.contains = contains;\n CodeMirror.rmClass = rmClass;\n CodeMirror.keyNames = keyNames;\n }\n\n // EDITOR CONSTRUCTOR\n\n defineOptions(CodeMirror);\n\n addEditorMethods(CodeMirror);\n\n // Set up methods on CodeMirror's prototype to redirect to the editor's document.\n var dontDelegate = \"iter insert remove copy getEditor constructor\".split(\" \");\n for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)\n { CodeMirror.prototype[prop] = (function(method) {\n return function() {return method.apply(this.doc, arguments)}\n })(Doc.prototype[prop]); } }\n\n eventMixin(Doc);\n CodeMirror.inputStyles = {\"textarea\": TextareaInput, \"contenteditable\": ContentEditableInput};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n CodeMirror.defineMode = function(name/*, mode, …*/) {\n if (!CodeMirror.defaults.mode && name != \"null\") { CodeMirror.defaults.mode = name; }\n defineMode.apply(this, arguments);\n };\n\n CodeMirror.defineMIME = defineMIME;\n\n // Minimal default mode.\n CodeMirror.defineMode(\"null\", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });\n CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n // EXTENSIONS\n\n CodeMirror.defineExtension = function (name, func) {\n CodeMirror.prototype[name] = func;\n };\n CodeMirror.defineDocExtension = function (name, func) {\n Doc.prototype[name] = func;\n };\n\n CodeMirror.fromTextArea = fromTextArea;\n\n addLegacyProps(CodeMirror);\n\n CodeMirror.version = \"5.65.16\";\n\n return CodeMirror;\n\n})));\n\n\n//# sourceURL=webpack:///./node_modules/codemirror/lib/codemirror.js?");
/***/ }),
/***/ "./node_modules/codemirror/mode/javascript/javascript.js":
/*!***************************************************************!*\
!*** ./node_modules/codemirror/mode/javascript/javascript.js ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/5/LICENSE\n\n(function(mod) {\n if (true) // CommonJS\n mod(__webpack_require__(/*! ../../lib/codemirror */ \"./node_modules/codemirror/lib/codemirror.js\"));\n else {}\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"javascript\", function(config, parserConfig) {\n var indentUnit = config.indentUnit;\n var statementIndent = parserConfig.statementIndent;\n var jsonldMode = parserConfig.jsonld;\n var jsonMode = parserConfig.json || jsonldMode;\n var trackScope = parserConfig.trackScope !== false\n var isTS = parserConfig.typescript;\n var wordRE = parserConfig.wordCharacters || /[\\w$\\xa1-\\uffff]/;\n\n // Tokenizer\n\n var keywords = function(){\n function kw(type) {return {type: type, style: \"keyword\"};}\n var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\"), D = kw(\"keyword d\");\n var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"};\n\n return {\n \"if\": kw(\"if\"), \"while\": A, \"with\": A, \"else\": B, \"do\": B, \"try\": B, \"finally\": B,\n \"return\": D, \"break\": D, \"continue\": D, \"new\": kw(\"new\"), \"delete\": C, \"void\": C, \"throw\": C,\n \"debugger\": kw(\"debugger\"), \"var\": kw(\"var\"), \"const\": kw(\"var\"), \"let\": kw(\"var\"),\n \"function\": kw(\"function\"), \"catch\": kw(\"catch\"),\n \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n \"in\": operator, \"typeof\": operator, \"instanceof\": operator,\n \"true\": atom, \"false\": atom, \"null\": atom, \"undefined\": atom, \"NaN\": atom, \"Infinity\": atom,\n \"this\": kw(\"this\"), \"class\": kw(\"class\"), \"super\": kw(\"atom\"),\n \"yield\": C, \"export\": kw(\"export\"), \"import\": kw(\"import\"), \"extends\": C,\n \"await\": C\n };\n }();\n\n var isOperatorChar = /[+\\-*&%=<>!?|~^@]/;\n var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)\"/;\n\n function readRegexp(stream) {\n var escaped = false, next, inSet = false;\n while ((next = stream.next()) != null) {\n if (!escaped) {\n if (next == \"/\" && !inSet) return;\n if (next == \"[\") inSet = true;\n else if (inSet && next == \"]\") inSet = false;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n }\n\n // Used as scratch variables to communicate multiple values without\n // consing up tons of objects.\n var type, content;\n function ret(tp, style, cont) {\n type = tp; content = cont;\n return style;\n }\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \".\" && stream.match(/^\\d[\\d_]*(?:[eE][+\\-]?[\\d_]+)?/)) {\n return ret(\"number\", \"number\");\n } else if (ch == \".\" && stream.match(\"..\")) {\n return ret(\"spread\", \"meta\");\n } else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n return ret(ch);\n } else if (ch == \"=\" && stream.eat(\">\")) {\n return ret(\"=>\", \"operator\");\n } else if (ch == \"0\" && stream.match(/^(?:x[\\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)) {\n return ret(\"number\", \"number\");\n } else if (/\\d/.test(ch)) {\n stream.match(/^[\\d_]*(?:n|(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)?/);\n return ret(\"number\", \"number\");\n } else if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n } else if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return ret(\"comment\", \"comment\");\n } else if (expressionAllowed(stream, state, 1)) {\n readRegexp(stream);\n stream.match(/^\\b(([gimyus])(?![gimyus]*\\2))+\\b/);\n return ret(\"regexp\", \"string-2\");\n } else {\n stream.eat(\"=\");\n return ret(\"operator\", \"operator\", stream.current());\n }\n } else if (ch == \"`\") {\n state.tokenize = tokenQuasi;\n return tokenQuasi(stream, state);\n } else if (ch == \"#\" && stream.peek() == \"!\") {\n stream.skipToEnd();\n return ret(\"meta\", \"meta\");\n } else if (ch == \"#\" && stream.eatWhile(wordRE)) {\n return ret(\"variable\", \"property\")\n } else if (ch == \"<\" && stream.match(\"!--\") ||\n (ch == \"-\" && stream.match(\"->\") && !/\\S/.test(stream.string.slice(0, stream.start)))) {\n stream.skipToEnd()\n return ret(\"comment\", \"comment\")\n } else if (isOperatorChar.test(ch)) {\n if (ch != \">\" || !state.lexical || state.lexical.type != \">\") {\n if (stream.eat(\"=\")) {\n if (ch == \"!\" || ch == \"=\") stream.eat(\"=\")\n } else if (/[<>*+\\-|&?]/.test(ch)) {\n stream.eat(ch)\n if (ch == \">\") stream.eat(ch)\n }\n }\n if (ch == \"?\" && stream.eat(\".\")) return ret(\".\")\n return ret(\"operator\", \"operator\", stream.current());\n } else if (wordRE.test(ch)) {\n stream.eatWhile(wordRE);\n var word = stream.current()\n if (state.lastType != \".\") {\n if (keywords.propertyIsEnumerable(word)) {\n var kw = keywords[word]\n return ret(kw.type, kw.style, word)\n }\n if (word == \"async\" && stream.match(/^(\\s|\\/\\*([^*]|\\*(?!\\/))*?\\*\\/)*[\\[\\(\\w]/, false))\n return ret(\"async\", \"keyword\", word)\n }\n return ret(\"variable\", \"variable\", word)\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next;\n if (jsonldMode && stream.peek() == \"@\" && stream.match(isJsonldKeyword)){\n state.tokenize = tokenBase;\n return ret(\"jsonld-keyword\", \"meta\");\n }\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) break;\n escaped = !escaped && next == \"\\\\\";\n }\n if (!escaped) state.tokenize = tokenBase;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return ret(\"comment\", \"comment\");\n }\n\n function tokenQuasi(stream, state) {\n var escaped = false, next;\n while ((next = stream.next()) != null) {\n if (!escaped && (next == \"`\" || next == \"$\" && stream.eat(\"{\"))) {\n state.tokenize = tokenBase;\n break;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n return ret(\"quasi\", \"string-2\", stream.current());\n }\n\n var brackets = \"([{}])\";\n // This is a crude lookahead trick to try and notice that we're\n // parsing the argument patterns for a fat-arrow function before we\n // actually hit the arrow token. It only works if the arrow is on\n // the same line as the arguments and there's no strange noise\n // (comments) in between. Fallback is to only notice when we hit the\n // arrow, and not declare the arguments as locals for the arrow\n // body.\n function findFatArrow(stream, state) {\n if (state.fatArrowAt) state.fatArrowAt = null;\n var arrow = stream.string.indexOf(\"=>\", stream.start);\n if (arrow < 0) return;\n\n if (isTS) { // Try to skip TypeScript return type declarations after the arguments\n var m = /:\\s*(?:\\w+(?:<[^>]*>|\\[\\])?|\\{[^}]*\\})\\s*$/.exec(stream.string.slice(stream.start, arrow))\n if (m) arrow = m.index\n }\n\n var depth = 0, sawSomething = false;\n for (var pos = arrow - 1; pos >= 0; --pos) {\n var ch = stream.string.charAt(pos);\n var bracket = brackets.indexOf(ch);\n if (bracket >= 0 && bracket < 3) {\n if (!depth) { ++pos; break; }\n if (--depth == 0) { if (ch == \"(\") sawSomething = true; break; }\n } else if (bracket >= 3 && bracket < 6) {\n ++depth;\n } else if (wordRE.test(ch)) {\n sawSomething = true;\n } else if (/[\"'\\/`]/.test(ch)) {\n for (;; --pos) {\n if (pos == 0) return\n var next = stream.string.charAt(pos - 1)\n if (next == ch && stream.string.charAt(pos - 2) != \"\\\\\") { pos--; break }\n }\n } else if (sawSomething && !depth) {\n ++pos;\n break;\n }\n }\n if (sawSomething && !depth) state.fatArrowAt = pos;\n }\n\n // Parser\n\n var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true,\n \"regexp\": true, \"this\": true, \"import\": true, \"jsonld-keyword\": true};\n\n function JSLexical(indented, column, type, align, prev, info) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.prev = prev;\n this.info = info;\n if (align != null) this.align = align;\n }\n\n function inScope(state, varname) {\n if (!trackScope) return false\n for (var v = state.localVars; v; v = v.next)\n if (v.name == varname) return true;\n for (var cx = state.context; cx; cx = cx.prev) {\n for (var v = cx.vars; v; v = v.next)\n if (v.name == varname) return true;\n }\n }\n\n function parseJS(state, style, type, content, stream) {\n var cc = state.cc;\n // Communicate our context to the combinators.\n // (Less wasteful than consing up a hundred closures on every call.)\n cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style;\n\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = true;\n\n while(true) {\n var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;\n if (combinator(type, content)) {\n while(cc.length && cc[cc.length - 1].lex)\n cc.pop()();\n if (cx.marked) return cx.marked;\n if (type == \"variable\" && inScope(state, content)) return \"variable-2\";\n return style;\n }\n }\n }\n\n // Combinator utils\n\n var cx = {state: null, column: null, marked: null, cc: null};\n function pass() {\n for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n }\n function cont() {\n pass.apply(null, arguments);\n return true;\n }\n function inList(name, list) {\n for (var v = list; v; v = v.next) if (v.name == name) return true\n return false;\n }\n function register(varname) {\n var state = cx.state;\n cx.marked = \"def\";\n if (!trackScope) return\n if (state.context) {\n if (state.lexical.info == \"var\" && state.context && state.context.block) {\n // FIXME function decls are also not block scoped\n var newContext = registerVarScoped(varname, state.context)\n if (newContext != null) {\n state.context = newContext\n return\n }\n } else if (!inList(varname, state.localVars)) {\n state.localVars = new Var(varname, state.localVars)\n return\n }\n }\n // Fall through means this is global\n if (parserConfig.globalVars && !inList(varname, state.globalVars))\n state.globalVars = new Var(varname, state.globalVars)\n }\n function registerVarScoped(varname, context) {\n if (!context) {\n return null\n } else if (context.block) {\n var inner = registerVarScoped(varname, context.prev)\n if (!inner) return null\n if (inner == context.prev) return context\n return new Context(inner, context.vars, true)\n } else if (inList(varname, context.vars)) {\n return context\n } else {\n return new Context(context.prev, new Var(varname, context.vars), false)\n }\n }\n\n function isModifier(name) {\n return name == \"public\" || name == \"private\" || name == \"protected\" || name == \"abstract\" || name == \"readonly\"\n }\n\n // Combinators\n\n function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block }\n function Var(name, next) { this.name = name; this.next = next }\n\n var defaultVars = new Var(\"this\", new Var(\"arguments\", null))\n function pushcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, false)\n cx.state.localVars = defaultVars\n }\n function pushblockcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, true)\n cx.state.localVars = null\n }\n pushcontext.lex = pushblockcontext.lex = true\n function popcontext() {\n cx.state.localVars = cx.state.context.vars\n cx.state.context = cx.state.context.prev\n }\n popcontext.lex = true\n function pushlex(type, info) {\n var result = function() {\n var state = cx.state, indent = state.indented;\n if (state.lexical.type == \"stat\") indent = state.lexical.indented;\n else for (var outer = state.lexical; outer && outer.type == \")\" && outer.align; outer = outer.prev)\n indent = outer.indented;\n state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);\n };\n result.lex = true;\n return result;\n }\n function poplex() {\n var state = cx.state;\n if (state.lexical.prev) {\n if (state.lexical.type == \")\")\n state.indented = state.lexical.indented;\n state.lexical = state.lexical.prev;\n }\n }\n poplex.lex = true;\n\n function expect(wanted) {\n function exp(type) {\n if (type == wanted) return cont();\n else if (wanted == \";\" || type == \"}\" || type == \")\" || type == \"]\") return pass();\n else return cont(exp);\n };\n return exp;\n }\n\n function statement(type, value) {\n if (type == \"var\") return cont(pushlex(\"vardef\", value), vardef, expect(\";\"), poplex);\n if (type == \"keyword a\") return cont(pushlex(\"form\"), parenExpr, statement, poplex);\n if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n if (type == \"keyword d\") return cx.stream.match(/^\\s*$/, false) ? cont() : cont(pushlex(\"stat\"), maybeexpression, expect(\";\"), poplex);\n if (type == \"debugger\") return cont(expect(\";\"));\n if (type == \"{\") return cont(pushlex(\"}\"), pushblockcontext, block, poplex, popcontext);\n if (type == \";\") return cont();\n if (type == \"if\") {\n if (cx.state.lexical.info == \"else\" && cx.state.cc[cx.state.cc.length - 1] == poplex)\n cx.state.cc.pop()();\n return cont(pushlex(\"form\"), parenExpr, statement, poplex, maybeelse);\n }\n if (type == \"function\") return cont(functiondef);\n if (type == \"for\") return cont(pushlex(\"form\"), pushblockcontext, forspec, statement, popcontext, poplex);\n if (type == \"class\" || (isTS && value == \"interface\")) {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\", type == \"class\" ? type : value), className, poplex)\n }\n if (type == \"variable\") {\n if (isTS && value == \"declare\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else if (isTS && (value == \"module\" || value == \"enum\" || value == \"type\") && cx.stream.match(/^\\s*\\w/, false)) {\n cx.marked = \"keyword\"\n if (value == \"enum\") return cont(enumdef);\n else if (value == \"type\") return cont(typename, expect(\"operator\"), typeexpr, expect(\";\"));\n else return cont(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), block, poplex, poplex)\n } else if (isTS && value == \"namespace\") {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\"), expression, statement, poplex)\n } else if (isTS && value == \"abstract\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else {\n return cont(pushlex(\"stat\"), maybelabel);\n }\n }\n if (type == \"switch\") return cont(pushlex(\"form\"), parenExpr, expect(\"{\"), pushlex(\"}\", \"switch\"), pushblockcontext,\n block, poplex, poplex, popcontext);\n if (type == \"case\") return cont(expression, expect(\":\"));\n if (type == \"default\") return cont(expect(\":\"));\n if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);\n if (type == \"export\") return cont(pushlex(\"stat\"), afterExport, poplex);\n if (type == \"import\") return cont(pushlex(\"stat\"), afterImport, poplex);\n if (type == \"async\") return cont(statement)\n if (value == \"@\") return cont(expression, statement)\n return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n }\n function maybeCatchBinding(type) {\n if (type == \"(\") return cont(funarg, expect(\")\"))\n }\n function expression(type, value) {\n return expressionInner(type, value, false);\n }\n function expressionNoComma(type, value) {\n return expressionInner(type, value, true);\n }\n function parenExpr(type) {\n if (type != \"(\") return pass()\n return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex)\n }\n function expressionInner(type, value, noComma) {\n if (cx.state.fatArrowAt == cx.stream.start) {\n var body = noComma ? arrowBodyNoComma : arrowBody;\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, expect(\"=>\"), body, popcontext);\n else if (type == \"variable\") return pass(pushcontext, pattern, expect(\"=>\"), body, popcontext);\n }\n\n var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;\n if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);\n if (type == \"function\") return cont(functiondef, maybeop);\n if (type == \"class\" || (isTS && value == \"interface\")) { cx.marked = \"keyword\"; return cont(pushlex(\"form\"), classExpression, poplex); }\n if (type == \"keyword c\" || type == \"async\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex, maybeop);\n if (type == \"operator\" || type == \"spread\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"[\") return cont(pushlex(\"]\"), arrayLiteral, poplex, maybeop);\n if (type == \"{\") return contCommasep(objprop, \"}\", null, maybeop);\n if (type == \"quasi\") return pass(quasi, maybeop);\n if (type == \"new\") return cont(maybeTarget(noComma));\n return cont();\n }\n function maybeexpression(type) {\n if (type.match(/[;\\}\\)\\],]/)) return pass();\n return pass(expression);\n }\n\n function maybeoperatorComma(type, value) {\n if (type == \",\") return cont(maybeexpression);\n return maybeoperatorNoComma(type, value, false);\n }\n function maybeoperatorNoComma(type, value, noComma) {\n var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;\n var expr = noComma == false ? expression : expressionNoComma;\n if (type == \"=>\") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);\n if (type == \"operator\") {\n if (/\\+\\+|--/.test(value) || isTS && value == \"!\") return cont(me);\n if (isTS && value == \"<\" && cx.stream.match(/^([^<>]|<[^<>]*>)*>\\s*\\(/, false))\n return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, me);\n if (value == \"?\") return cont(expression, expect(\":\"), expr);\n return cont(expr);\n }\n if (type == \"quasi\") { return pass(quasi, me); }\n if (type == \";\") return;\n if (type == \"(\") return contCommasep(expressionNoComma, \")\", \"call\", me);\n if (type == \".\") return cont(property, me);\n if (type == \"[\") return cont(pushlex(\"]\"), maybeexpression, expect(\"]\"), poplex, me);\n if (isTS && value == \"as\") { cx.marked = \"keyword\"; return cont(typeexpr, me) }\n if (type == \"regexp\") {\n cx.state.lastType = cx.marked = \"operator\"\n cx.stream.backUp(cx.stream.pos - cx.stream.start - 1)\n return cont(expr)\n }\n }\n function quasi(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasi);\n return cont(maybeexpression, continueQuasi);\n }\n function continueQuasi(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasi);\n }\n }\n function arrowBody(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expression);\n }\n function arrowBodyNoComma(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expressionNoComma);\n }\n function maybeTarget(noComma) {\n return function(type) {\n if (type == \".\") return cont(noComma ? targetNoComma : target);\n else if (type == \"variable\" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma)\n else return pass(noComma ? expressionNoComma : expression);\n };\n }\n function target(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorComma); }\n }\n function targetNoComma(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorNoComma); }\n }\n function maybelabel(type) {\n if (type == \":\") return cont(poplex, statement);\n return pass(maybeoperatorComma, expect(\";\"), poplex);\n }\n function property(type) {\n if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n }\n function objprop(type, value) {\n if (type == \"async\") {\n cx.marked = \"property\";\n return cont(objprop);\n } else if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n if (value == \"get\" || value == \"set\") return cont(getterSetter);\n var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params\n if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\\s*:\\s*/, false)))\n cx.state.fatArrowAt = cx.stream.pos + m[0].length\n return cont(afterprop);\n } else if (type == \"number\" || type == \"string\") {\n cx.marked = jsonldMode ? \"property\" : (cx.style + \" property\");\n return cont(afterprop);\n } else if (type == \"jsonld-keyword\") {\n return cont(afterprop);\n } else if (isTS && isModifier(value)) {\n cx.marked = \"keyword\"\n return cont(objprop)\n } else if (type == \"[\") {\n return cont(expression, maybetype, expect(\"]\"), afterprop);\n } else if (type == \"spread\") {\n return cont(expressionNoComma, afterprop);\n } else if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(objprop);\n } else if (type == \":\") {\n return pass(afterprop)\n }\n }\n function getterSetter(type) {\n if (type != \"variable\") return pass(afterprop);\n cx.marked = \"property\";\n return cont(functiondef);\n }\n function afterprop(type) {\n if (type == \":\") return cont(expressionNoComma);\n if (type == \"(\") return pass(functiondef);\n }\n function commasep(what, end, sep) {\n function proceed(type, value) {\n if (sep ? sep.indexOf(type) > -1 : type == \",\") {\n var lex = cx.state.lexical;\n if (lex.info == \"call\") lex.pos = (lex.pos || 0) + 1;\n return cont(function(type, value) {\n if (type == end || value == end) return pass()\n return pass(what)\n }, proceed);\n }\n if (type == end || value == end) return cont();\n if (sep && sep.indexOf(\";\") > -1) return pass(what)\n return cont(expect(end));\n }\n return function(type, value) {\n if (type == end || value == end) return cont();\n return pass(what, proceed);\n };\n }\n function contCommasep(what, end, info) {\n for (var i = 3; i < arguments.length; i++)\n cx.cc.push(arguments[i]);\n return cont(pushlex(end, info), commasep(what, end), poplex);\n }\n function block(type) {\n if (type == \"}\") return cont();\n return pass(statement, block);\n }\n function maybetype(type, value) {\n if (isTS) {\n if (type == \":\") return cont(typeexpr);\n if (value == \"?\") return cont(maybetype);\n }\n }\n function maybetypeOrIn(type, value) {\n if (isTS && (type == \":\" || value == \"in\")) return cont(typeexpr)\n }\n function mayberettype(type) {\n if (isTS && type == \":\") {\n if (cx.stream.match(/^\\s*\\w+\\s+is\\b/, false)) return cont(expression, isKW, typeexpr)\n else return cont(typeexpr)\n }\n }\n function isKW(_, value) {\n if (value == \"is\") {\n cx.marked = \"keyword\"\n return cont()\n }\n }\n function typeexpr(type, value) {\n if (value == \"keyof\" || value == \"typeof\" || value == \"infer\" || value == \"readonly\") {\n cx.marked = \"keyword\"\n return cont(value == \"typeof\" ? expressionNoComma : typeexpr)\n }\n if (type == \"variable\" || value == \"void\") {\n cx.marked = \"type\"\n return cont(afterType)\n }\n if (value == \"|\" || value == \"&\") return cont(typeexpr)\n if (type == \"string\" || type == \"number\" || type == \"atom\") return cont(afterType);\n if (type == \"[\") return cont(pushlex(\"]\"), commasep(typeexpr, \"]\", \",\"), poplex, afterType)\n if (type == \"{\") return cont(pushlex(\"}\"), typeprops, poplex, afterType)\n if (type == \"(\") return cont(commasep(typearg, \")\"), maybeReturnType, afterType)\n if (type == \"<\") return cont(commasep(typeexpr, \">\"), typeexpr)\n if (type == \"quasi\") { return pass(quasiType, afterType); }\n }\n function maybeReturnType(type) {\n if (type == \"=>\") return cont(typeexpr)\n }\n function typeprops(type) {\n if (type.match(/[\\}\\)\\]]/)) return cont()\n if (type == \",\" || type == \";\") return cont(typeprops)\n return pass(typeprop, typeprops)\n }\n function typeprop(type, value) {\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\"\n return cont(typeprop)\n } else if (value == \"?\" || type == \"number\" || type == \"string\") {\n return cont(typeprop)\n } else if (type == \":\") {\n return cont(typeexpr)\n } else if (type == \"[\") {\n return cont(expect(\"variable\"), maybetypeOrIn, expect(\"]\"), typeprop)\n } else if (type == \"(\") {\n return pass(functiondecl, typeprop)\n } else if (!type.match(/[;\\}\\)\\],]/)) {\n return cont()\n }\n }\n function quasiType(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasiType);\n return cont(typeexpr, continueQuasiType);\n }\n function continueQuasiType(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasiType);\n }\n }\n function typearg(type, value) {\n if (type == \"variable\" && cx.stream.match(/^\\s*[?:]/, false) || value == \"?\") return cont(typearg)\n if (type == \":\") return cont(typeexpr)\n if (type == \"spread\") return cont(typearg)\n return pass(typeexpr)\n }\n function afterType(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n if (value == \"|\" || type == \".\" || value == \"&\") return cont(typeexpr)\n if (type == \"[\") return cont(typeexpr, expect(\"]\"), afterType)\n if (value == \"extends\" || value == \"implements\") { cx.marked = \"keyword\"; return cont(typeexpr) }\n if (value == \"?\") return cont(typeexpr, expect(\":\"), typeexpr)\n }\n function maybeTypeArgs(_, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n }\n function typeparam() {\n return pass(typeexpr, maybeTypeDefault)\n }\n function maybeTypeDefault(_, value) {\n if (value == \"=\") return cont(typeexpr)\n }\n function vardef(_, value) {\n if (value == \"enum\") {cx.marked = \"keyword\"; return cont(enumdef)}\n return pass(pattern, maybetype, maybeAssign, vardefCont);\n }\n function pattern(type, value) {\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(pattern) }\n if (type == \"variable\") { register(value); return cont(); }\n if (type == \"spread\") return cont(pattern);\n if (type == \"[\") return contCommasep(eltpattern, \"]\");\n if (type == \"{\") return contCommasep(proppattern, \"}\");\n }\n function proppattern(type, value) {\n if (type == \"variable\" && !cx.stream.match(/^\\s*:/, false)) {\n register(value);\n return cont(maybeAssign);\n }\n if (type == \"variable\") cx.marked = \"property\";\n if (type == \"spread\") return cont(pattern);\n if (type == \"}\") return pass();\n if (type == \"[\") return cont(expression, expect(']'), expect(':'), proppattern);\n return cont(expect(\":\"), pattern, maybeAssign);\n }\n function eltpattern() {\n return pass(pattern, maybeAssign)\n }\n function maybeAssign(_type, value) {\n if (value == \"=\") return cont(expressionNoComma);\n }\n function vardefCont(type) {\n if (type == \",\") return cont(vardef);\n }\n function maybeelse(type, value) {\n if (type == \"keyword b\" && value == \"else\") return cont(pushlex(\"form\", \"else\"), statement, poplex);\n }\n function forspec(type, value) {\n if (value == \"await\") return cont(forspec);\n if (type == \"(\") return cont(pushlex(\")\"), forspec1, poplex);\n }\n function forspec1(type) {\n if (type == \"var\") return cont(vardef, forspec2);\n if (type == \"variable\") return cont(forspec2);\n return pass(forspec2)\n }\n function forspec2(type, value) {\n if (type == \")\") return cont()\n if (type == \";\") return cont(forspec2)\n if (value == \"in\" || value == \"of\") { cx.marked = \"keyword\"; return cont(expression, forspec2) }\n return pass(expression, forspec2)\n }\n function functiondef(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondef);}\n if (type == \"variable\") {register(value); return cont(functiondef);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, statement, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondef)\n }\n function functiondecl(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondecl);}\n if (type == \"variable\") {register(value); return cont(functiondecl);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondecl)\n }\n function typename(type, value) {\n if (type == \"keyword\" || type == \"variable\") {\n cx.marked = \"type\"\n return cont(typename)\n } else if (value == \"<\") {\n return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex)\n }\n }\n function funarg(type, value) {\n if (value == \"@\") cont(expression, funarg)\n if (type == \"spread\") return cont(funarg);\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(funarg); }\n if (isTS && type == \"this\") return cont(maybetype, maybeAssign)\n return pass(pattern, maybetype, maybeAssign);\n }\n function classExpression(type, value) {\n // Class expressions may have an optional name.\n if (type == \"variable\") return className(type, value);\n return classNameAfter(type, value);\n }\n function className(type, value) {\n if (type == \"variable\") {register(value); return cont(classNameAfter);}\n }\n function classNameAfter(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, classNameAfter)\n if (value == \"extends\" || value == \"implements\" || (isTS && type == \",\")) {\n if (value == \"implements\") cx.marked = \"keyword\";\n return cont(isTS ? typeexpr : expression, classNameAfter);\n }\n if (type == \"{\") return cont(pushlex(\"}\"), classBody, poplex);\n }\n function classBody(type, value) {\n if (type == \"async\" ||\n (type == \"variable\" &&\n (value == \"static\" || value == \"get\" || value == \"set\" || (isTS && isModifier(value))) &&\n cx.stream.match(/^\\s+#?[\\w$\\xa1-\\uffff]/, false))) {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n return cont(classfield, classBody);\n }\n if (type == \"number\" || type == \"string\") return cont(classfield, classBody);\n if (type == \"[\")\n return cont(expression, maybetype, expect(\"]\"), classfield, classBody)\n if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (isTS && type == \"(\") return pass(functiondecl, classBody)\n if (type == \";\" || type == \",\") return cont(classBody);\n if (type == \"}\") return cont();\n if (value == \"@\") return cont(expression, classBody)\n }\n function classfield(type, value) {\n if (value == \"!\") return cont(classfield)\n if (value == \"?\") return cont(classfield)\n if (type == \":\") return cont(typeexpr, maybeAssign)\n if (value == \"=\") return cont(expressionNoComma)\n var context = cx.state.lexical.prev, isInterface = context && context.info == \"interface\"\n return pass(isInterface ? functiondecl : functiondef)\n }\n function afterExport(type, value) {\n if (value == \"*\") { cx.marked = \"keyword\"; return cont(maybeFrom, expect(\";\")); }\n if (value == \"default\") { cx.marked = \"keyword\"; return cont(expression, expect(\";\")); }\n if (type == \"{\") return cont(commasep(exportField, \"}\"), maybeFrom, expect(\";\"));\n return pass(statement);\n }\n function exportField(type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(expect(\"variable\")); }\n if (type == \"variable\") return pass(expressionNoComma, exportField);\n }\n function afterImport(type) {\n if (type == \"string\") return cont();\n if (type == \"(\") return pass(expression);\n if (type == \".\") return pass(maybeoperatorComma);\n return pass(importSpec, maybeMoreImports, maybeFrom);\n }\n function importSpec(type, value) {\n if (type == \"{\") return contCommasep(importSpec, \"}\");\n if (type == \"variable\") register(value);\n if (value == \"*\") cx.marked = \"keyword\";\n return cont(maybeAs);\n }\n function maybeMoreImports(type) {\n if (type == \",\") return cont(importSpec, maybeMoreImports)\n }\n function maybeAs(_type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(importSpec); }\n }\n function maybeFrom(_type, value) {\n if (value == \"from\") { cx.marked = \"keyword\"; return cont(expression); }\n }\n function arrayLiteral(type) {\n if (type == \"]\") return cont();\n return pass(commasep(expressionNoComma, \"]\"));\n }\n function enumdef() {\n return pass(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), commasep(enummember, \"}\"), poplex, poplex)\n }\n function enummember() {\n return pass(pattern, maybeAssign);\n }\n\n function isContinuedStatement(state, textAfter) {\n return state.lastType == \"operator\" || state.lastType == \",\" ||\n isOperatorChar.test(textAfter.charAt(0)) ||\n /[,.]/.test(textAfter.charAt(0));\n }\n\n function expressionAllowed(stream, state, backUp) {\n return state.tokenize == tokenBase &&\n /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\\[{}\\(,;:]|=>)$/.test(state.lastType) ||\n (state.lastType == \"quasi\" && /\\{\\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))\n }\n\n // Interface\n\n return {\n startState: function(basecolumn) {\n var state = {\n tokenize: tokenBase,\n lastType: \"sof\",\n cc: [],\n lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, \"block\", false),\n localVars: parserConfig.localVars,\n context: parserConfig.localVars && new Context(null, null, false),\n indented: basecolumn || 0\n };\n if (parserConfig.globalVars && typeof parserConfig.globalVars == \"object\")\n state.globalVars = parserConfig.globalVars;\n return state;\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = false;\n state.indented = stream.indentation();\n findFatArrow(stream, state);\n }\n if (state.tokenize != tokenComment && stream.eatSpace()) return null;\n var style = state.tokenize(stream, state);\n if (type == \"comment\") return style;\n state.lastType = type == \"operator\" && (content == \"++\" || content == \"--\") ? \"incdec\" : type;\n return parseJS(state, style, type, content, stream);\n },\n\n indent: function(state, textAfter) {\n if (state.tokenize == tokenComment || state.tokenize == tokenQuasi) return CodeMirror.Pass;\n if (state.tokenize != tokenBase) return 0;\n var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, top\n // Kludge to prevent 'maybelse' from blocking lexical scope pops\n if (!/^\\s*else\\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {\n var c = state.cc[i];\n if (c == poplex) lexical = lexical.prev;\n else if (c != maybeelse && c != popcontext) break;\n }\n while ((lexical.type == \"stat\" || lexical.type == \"form\") &&\n (firstChar == \"}\" || ((top = state.cc[state.cc.length - 1]) &&\n (top == maybeoperatorComma || top == maybeoperatorNoComma) &&\n !/^[,\\.=+\\-*:?[\\(]/.test(textAfter))))\n lexical = lexical.prev;\n if (statementIndent && lexical.type == \")\" && lexical.prev.type == \"stat\")\n lexical = lexical.prev;\n var type = lexical.type, closing = firstChar == type;\n\n if (type == \"vardef\") return lexical.indented + (state.lastType == \"operator\" || state.lastType == \",\" ? lexical.info.length + 1 : 0);\n else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n else if (type == \"form\") return lexical.indented + indentUnit;\n else if (type == \"stat\")\n return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);\n else if (lexical.info == \"switch\" && !closing && parserConfig.doubleIndentSwitch != false)\n return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 2 * indentUnit);\n else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n else return lexical.indented + (closing ? 0 : indentUnit);\n },\n\n electricInput: /^\\s*(?:case .*?:|default:|\\{|\\})$/,\n blockCommentStart: jsonMode ? null : \"/*\",\n blockCommentEnd: jsonMode ? null : \"*/\",\n blockCommentContinue: jsonMode ? null : \" * \",\n lineComment: jsonMode ? null : \"//\",\n fold: \"brace\",\n closeBrackets: \"()[]{}''\\\"\\\"``\",\n\n helperType: jsonMode ? \"json\" : \"javascript\",\n jsonldMode: jsonldMode,\n jsonMode: jsonMode,\n\n expressionAllowed: expressionAllowed,\n\n skipExpression: function(state) {\n parseJS(state, \"atom\", \"atom\", \"true\", new CodeMirror.StringStream(\"\", 2, null))\n }\n };\n});\n\nCodeMirror.registerHelper(\"wordChars\", \"javascript\", /[\\w$]/);\n\nCodeMirror.defineMIME(\"text/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"text/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/x-javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/x-json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/manifest+json\", { name: \"javascript\", json: true })\nCodeMirror.defineMIME(\"application/ld+json\", { name: \"javascript\", jsonld: true });\nCodeMirror.defineMIME(\"text/typescript\", { name: \"javascript\", typescript: true });\nCodeMirror.defineMIME(\"application/typescript\", { name: \"javascript\", typescript: true });\n\n});\n\n\n//# sourceURL=webpack:///./node_modules/codemirror/mode/javascript/javascript.js?");
/***/ }),
/***/ "./node_modules/core-js/modules/web.self.js":
/*!**************************************************!*\
!*** ./node_modules/core-js/modules/web.self.js ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar defineBuiltInAccessor = __webpack_require__(/*! ../internals/define-built-in-accessor */ \"./node_modules/core-js/internals/define-built-in-accessor.js\");\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar INCORRECT_VALUE = global.self !== global;\n\n// `self` getter\n// https://html.spec.whatwg.org/multipage/window-object.html#dom-self\ntry {\n if (DESCRIPTORS) {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var descriptor = Object.getOwnPropertyDescriptor(global, 'self');\n // some engines have `self`, but with incorrect descriptor\n // https://github.com/denoland/deno/issues/15765\n if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) {\n defineBuiltInAccessor(global, 'self', {\n get: function self() {\n return global;\n },\n set: function self(value) {\n if (this !== global) throw new $TypeError('Illegal invocation');\n defineProperty(global, 'self', {\n value: value,\n writable: true,\n configurable: true,\n enumerable: true\n });\n },\n configurable: true,\n enumerable: true\n });\n }\n } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, {\n self: global\n });\n} catch (error) { /* empty */ }\n\n\n//# sourceURL=webpack:///./node_modules/core-js/modules/web.self.js?");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!../simple-mind-map/node_modules/quill/dist/quill.snow.css":
/*!*****************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--7-oneOf-3-1!./node_modules/postcss-loader/src??ref--7-oneOf-3-2!../simple-mind-map/node_modules/quill/dist/quill.snow.css ***!
\*****************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../web/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"/*!\\n * Quill Editor v2.0.3\\n * https://quilljs.com\\n * Copyright (c) 2017-2024, Slab\\n * Copyright (c) 2014, Jason Chen\\n * Copyright (c) 2013, salesforce.com\\n */\\n.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container:not(.ql-disabled) li[data-list=checked] > .ql-ui,.ql-container:not(.ql-disabled) li[data-list=unchecked] > .ql-ui{cursor:pointer}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;-o-tab-size:4;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor > *{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0}@supports (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-set:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor table{border-collapse:collapse}.ql-editor td{border:1px solid #000;padding:2px 5px}.ql-editor ol{padding-left:1.5em}.ql-editor li{list-style-type:none;padding-left:1.5em;position:relative}.ql-editor li > .ql-ui:before{display:inline-block;margin-left:-1.5em;margin-right:.3em;text-align:right;white-space:nowrap;width:1.2em}.ql-editor li[data-list=checked] > .ql-ui,.ql-editor li[data-list=unchecked] > .ql-ui{color:#777}.ql-editor li[data-list=bullet] > .ql-ui:before{content:'\\\\2022'}.ql-editor li[data-list=checked] > .ql-ui:before{content:'\\\\2611'}.ql-editor li[data-list=unchecked] > .ql-ui:before{content:'\\\\2610'}@supports (counter-set:none){.ql-editor li[data-list]{counter-set:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list]{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered]{counter-increment:list-0}.ql-editor li[data-list=ordered] > .ql-ui:before{content:counter(list-0, decimal) '. '}.ql-editor li[data-list=ordered].ql-indent-1{counter-increment:list-1}.ql-editor li[data-list=ordered].ql-indent-1 > .ql-ui:before{content:counter(list-1, lower-alpha) '. '}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-set:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-2{counter-increment:list-2}.ql-editor li[data-list=ordered].ql-indent-2 > .ql-ui:before{content:counter(list-2, lower-roman) '. '}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-set:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-3{counter-increment:list-3}.ql-editor li[data-list=ordered].ql-indent-3 > .ql-ui:before{content:counter(list-3, decimal) '. '}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-set:list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-4{counter-increment:list-4}.ql-editor li[data-list=ordered].ql-indent-4 > .ql-ui:before{content:counter(list-4, lower-alpha) '. '}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-set:list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-5{counter-increment:list-5}.ql-editor li[data-list=ordered].ql-indent-5 > .ql-ui:before{content:counter(list-5, lower-roman) '. '}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-set:list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-6{counter-increment:list-6}.ql-editor li[data-list=ordered].ql-indent-6 > .ql-ui:before{content:counter(list-6, decimal) '. '}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-set:list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-reset:list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-7{counter-increment:list-7}.ql-editor li[data-list=ordered].ql-indent-7 > .ql-ui:before{content:counter(list-7, lower-alpha) '. '}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-set:list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-reset:list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-8{counter-increment:list-8}.ql-editor li[data-list=ordered].ql-indent-8 > .ql-ui:before{content:counter(list-8, lower-roman) '. '}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-set:list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-reset:list-9}}.ql-editor li[data-list=ordered].ql-indent-9{counter-increment:list-9}.ql-editor li[data-list=ordered].ql-indent-9 > .ql-ui:before{content:counter(list-9, decimal) '. '}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor li.ql-direction-rtl{padding-right:1.5em}.ql-editor li.ql-direction-rtl > .ql-ui:before{margin-left:.3em;margin-right:-1.5em;text-align:left}.ql-editor table{table-layout:fixed;width:100%}.ql-editor table td{outline:none}.ql-editor .ql-code-block-container{font-family:monospace}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor .ql-ui{position:absolute}.ql-editor.ql-blank::before{color:rgba(0,0,0,0.6);content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:'';display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{float:left;height:100%}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected{color:#06c}.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill{fill:#06c}.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter{stroke:#06c}@media (pointer:coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow{box-sizing:border-box}.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:'';display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor .ql-code-block-container{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor .ql-code-block-container{margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor .ql-code-block-container{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label::before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-label::before,.ql-snow .ql-picker.ql-header .ql-picker-item::before{content:'Normal'}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"1\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"1\\\"]::before{content:'Heading 1'}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"2\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"2\\\"]::before{content:'Heading 2'}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"3\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"3\\\"]::before{content:'Heading 3'}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"4\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"4\\\"]::before{content:'Heading 4'}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"5\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"5\\\"]::before{content:'Heading 5'}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"6\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"6\\\"]::before{content:'Heading 6'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"1\\\"]::before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"2\\\"]::before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"3\\\"]::before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"4\\\"]::before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"5\\\"]::before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"6\\\"]::before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-label::before,.ql-snow .ql-picker.ql-font .ql-picker-item::before{content:'Sans Serif'}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before{content:'Serif'}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before{content:'Monospace'}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-label::before,.ql-snow .ql-picker.ql-size .ql-picker-item::before{content:'Normal'}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before{content:'Small'}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before{content:'Large'}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before{content:'Huge'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-code-block-container{position:relative}.ql-code-block-container .ql-ui{right:5px;top:5px}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:'Helvetica Neue','Helvetica','Arial',sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:rgba(0,0,0,0.2) 0 2px 8px}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label{border-color:#ccc}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow + .ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip::before{content:\\\"Visit URL:\\\";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action::after{border-right:1px solid #ccc;content:'Edit';margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove::before{content:'Remove';margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action::after{border-right:0;content:'Save';padding-right:0}.ql-snow .ql-tooltip[data-mode=link]::before{content:\\\"Enter link:\\\"}.ql-snow .ql-tooltip[data-mode=formula]::before{content:\\\"Enter formula:\\\"}.ql-snow .ql-tooltip[data-mode=video]::before{content:\\\"Enter video:\\\"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///../simple-mind-map/node_modules/quill/dist/quill.snow.css?./node_modules/css-loader/dist/cjs.js??ref--7-oneOf-3-1!./node_modules/postcss-loader/src??ref--7-oneOf-3-2");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/@toast-ui/editor/dist/toastui-editor-viewer.css":
/*!**********************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--7-oneOf-3-1!./node_modules/postcss-loader/src??ref--7-oneOf-3-2!./node_modules/@toast-ui/editor/dist/toastui-editor-viewer.css ***!
\**********************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"/*!\\n * @toast-ui/editor\\n * @version 3.2.2 | Fri Feb 17 2023\\n * @author NHN Cloud FE Development Lab <dl_javascript@nhn.com>\\n * @license MIT\\n */\\n/* \\n z-index basis\\n -1: pseudo element\\n 20 - preview, wysiwyg\\n 30 - wysiwyg code block language editor, popup, context menu\\n 40 - tooltip\\n*/\\n.ProseMirror {\\n font-family: 'Open Sans', 'Helvetica Neue', 'Helvetica', 'Arial', '나눔바른고딕',\\n 'Nanum Barun Gothic', '맑은고딕', 'Malgun Gothic', sans-serif;\\n color: #222;\\n font-size: 13px;\\n overflow-y: auto;\\n overflow-X: hidden;\\n height: calc(100% - 36px);\\n}\\n\\n.ProseMirror .placeholder {\\n color: #999;\\n}\\n\\n.ProseMirror:focus {\\n outline: none;\\n}\\n\\n.ProseMirror-selectednode {\\n outline: none;\\n}\\n\\ntable.ProseMirror-selectednode {\\n border-radius: 2px;\\n outline: 2px solid #00a9ff;\\n}\\n\\n.html-block.ProseMirror-selectednode {\\n border-radius: 2px;\\n outline: 2px solid #00a9ff;\\n}\\n\\n.toastui-editor-contents {\\n margin: 0;\\n padding: 0;\\n font-size: 13px;\\n font-family: 'Open Sans', 'Helvetica Neue', 'Helvetica', 'Arial', '나눔바른고딕',\\n 'Nanum Barun Gothic', '맑은고딕', 'Malgun Gothic', sans-serif;\\n z-index: 20;\\n}\\n\\n.toastui-editor-contents *:not(table) {\\n line-height: 160%;\\n -webkit-box-sizing: content-box;\\n box-sizing: content-box;\\n}\\n\\n.toastui-editor-contents i,\\n.toastui-editor-contents cite,\\n.toastui-editor-contents em,\\n.toastui-editor-contents var,\\n.toastui-editor-contents address,\\n.toastui-editor-contents dfn {\\n font-style: italic;\\n}\\n\\n.toastui-editor-contents strong {\\n font-weight: bold;\\n}\\n\\n.toastui-editor-contents p {\\n margin: 10px 0;\\n color: #222;\\n}\\n\\n.toastui-editor-contents > h1:first-of-type,\\n.toastui-editor-contents > div > div:first-of-type h1 {\\n margin-top: 14px;\\n}\\n\\n.toastui-editor-contents h1,\\n.toastui-editor-contents h2,\\n.toastui-editor-contents h3,\\n.toastui-editor-contents h4,\\n.toastui-editor-contents h5,\\n.toastui-editor-contents h6 {\\n font-weight: bold;\\n color: #222;\\n}\\n\\n.toastui-editor-contents h1 {\\n font-size: 24px;\\n line-height: 28px;\\n border-bottom: 3px double #999;\\n margin: 52px 0 15px 0;\\n padding-bottom: 7px;\\n}\\n\\n.toastui-editor-contents h2 {\\n font-size: 22px;\\n line-height: 23px;\\n border-bottom: 1px solid #dbdbdb;\\n margin: 20px 0 13px 0;\\n padding-bottom: 7px;\\n}\\n\\n.toastui-editor-contents h3 {\\n font-size: 20px;\\n margin: 18px 0 2px;\\n}\\n\\n.toastui-editor-contents h4 {\\n font-size: 18px;\\n margin: 10px 0 2px;\\n}\\n\\n.toastui-editor-contents h3,\\n.toastui-editor-contents h4 {\\n line-height: 18px;\\n}\\n\\n.toastui-editor-contents h5 {\\n font-size: 16px;\\n}\\n\\n.toastui-editor-contents h6 {\\n font-size: 14px;\\n}\\n\\n.toastui-editor-contents h5,\\n.toastui-editor-contents h6 {\\n line-height: 17px;\\n margin: 9px 0 -4px;\\n}\\n\\n.toastui-editor-contents del {\\n color: #999;\\n}\\n\\n.toastui-editor-contents blockquote {\\n margin: 14px 0;\\n border-left: 4px solid #e5e5e5;\\n padding: 0 16px;\\n color: #999;\\n}\\n\\n.toastui-editor-contents blockquote p,\\n.toastui-editor-contents blockquote ul,\\n.toastui-editor-contents blockquote ol {\\n color: #999;\\n}\\n\\n.toastui-editor-contents blockquote > :first-child {\\n margin-top: 0;\\n}\\n\\n.toastui-editor-contents blockquote > :last-child {\\n margin-bottom: 0;\\n}\\n\\n.toastui-editor-contents pre,\\n.toastui-editor-contents code {\\n font-family: Consolas, Courier, 'Apple SD 산돌고딕 Neo', -apple-system, 'Lucida Grande',\\n 'Apple SD Gothic Neo', '맑은 고딕', 'Malgun Gothic', 'Segoe UI', '돋움', dotum, sans-serif;\\n border: 0;\\n border-radius: 0;\\n}\\n\\n.toastui-editor-contents pre {\\n margin: 2px 0 8px;\\n padding: 18px;\\n background-color: #f4f7f8;\\n}\\n\\n.toastui-editor-contents code {\\n color: #c1798b;\\n background-color: #f9f2f4;\\n padding: 2px 3px;\\n letter-spacing: -0.3px;\\n border-radius: 2px;\\n}\\n\\n.toastui-editor-contents pre code {\\n padding: 0;\\n color: inherit;\\n white-space: pre-wrap;\\n background-color: transparent;\\n}\\n\\n.toastui-editor-contents img {\\n margin: 4px 0 10px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n vertical-align: top;\\n max-width: 100%;\\n}\\n\\n.toastui-editor-contents table {\\n border: 1px solid rgba(0, 0, 0, 0.1);\\n margin: 12px 0 14px;\\n color: #222;\\n width: auto;\\n border-collapse: collapse;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n\\n.toastui-editor-contents table th,\\n.toastui-editor-contents table td {\\n border: 1px solid rgba(0, 0, 0, 0.1);\\n padding: 5px 14px 5px 12px;\\n height: 32px;\\n}\\n\\n.toastui-editor-contents table th {\\n background-color: #555;\\n font-weight: 300;\\n color: #fff;\\n padding-top: 6px;\\n}\\n\\n.toastui-editor-contents th p {\\n margin: 0;\\n color: #fff;\\n}\\n\\n.toastui-editor-contents td p {\\n margin: 0;\\n padding: 0 2px;\\n}\\n\\n.toastui-editor-contents td.toastui-editor-cell-selected {\\n background-color: #d8dfec;\\n}\\n\\n.toastui-editor-contents th.toastui-editor-cell-selected {\\n background-color: #908f8f;\\n}\\n\\n.toastui-editor-contents ul,\\n.toastui-editor-contents menu,\\n.toastui-editor-contents ol,\\n.toastui-editor-contents dir {\\n display: block;\\n list-style-type: none;\\n padding-left: 24px;\\n margin: 6px 0 10px;\\n color: #222;\\n}\\n\\n.toastui-editor-contents ol {\\n list-style-type: none;\\n counter-reset: li;\\n}\\n\\n.toastui-editor-contents ol > li {\\n counter-increment: li;\\n}\\n\\n.toastui-editor-contents ul > li::before,\\n.toastui-editor-contents ol > li::before {\\n display: inline-block;\\n position: absolute;\\n}\\n\\n.toastui-editor-contents ul > li::before {\\n content: '';\\n margin-top: 6px;\\n margin-left: -17px;\\n width: 5px;\\n height: 5px;\\n border-radius: 50%;\\n background-color: #ccc;\\n}\\n\\n.toastui-editor-contents ol > li::before {\\n content: '.' counter(li);\\n margin-left: -28px;\\n width: 24px;\\n text-align: right;\\n direction: rtl;\\n color: #aaa;\\n}\\n\\n.toastui-editor-contents ul ul,\\n.toastui-editor-contents ul ol,\\n.toastui-editor-contents ol ol,\\n.toastui-editor-contents ol ul {\\n margin-top: 0 !important;\\n margin-bottom: 0 !important;\\n}\\n\\n.toastui-editor-contents ul li,\\n.toastui-editor-contents ol li {\\n position: relative;\\n}\\n\\n.toastui-editor-contents ul p,\\n.toastui-editor-contents ol p {\\n margin: 0;\\n}\\n\\n.toastui-editor-contents hr {\\n border-top: 1px solid #eee;\\n margin: 16px 0;\\n}\\n\\n.toastui-editor-contents a {\\n text-decoration: underline;\\n color: #4b96e6;\\n}\\n\\n.toastui-editor-contents a:hover {\\n color: #1f70de;\\n}\\n\\n.toastui-editor-contents .image-link {\\n position: relative;\\n}\\n\\n.toastui-editor-contents .image-link:hover::before {\\n content: '';\\n position: absolute;\\n width: 30px;\\n height: 30px;\\n right: 0px;\\n border-radius: 50%;\\n border: 1px solid #c9ccd5;\\n background: #fff url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj4KICAgICAgICA8ZyBzdHJva2U9IiM1NTUiIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICA8Zz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNy42NjUgMTUuMDdsLTEuODE5LS4wMDJjLTEuNDg2IDAtMi42OTItMS4yMjgtMi42OTItMi43NDR2LS4xOTJjMC0xLjUxNSAxLjIwNi0yLjc0NCAyLjY5Mi0yLjc0NGgzLjg0NmMxLjQ4NyAwIDIuNjkyIDEuMjI5IDIuNjkyIDIuNzQ0di4xOTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDAwIC00NTgxKSB0cmFuc2xhdGUoOTk1IDQ1NzYpIHRyYW5zbGF0ZSg1IDUpIHNjYWxlKDEgLTEpIHJvdGF0ZSg0NSAzNy4yOTMgMCkiLz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIuMzI2IDQuOTM0bDEuODIyLjAwMmMxLjQ4NyAwIDIuNjkzIDEuMjI4IDIuNjkzIDIuNzQ0di4xOTJjMCAxLjUxNS0xLjIwNiAyLjc0NC0yLjY5MyAyLjc0NGgtMy44NDVjLTEuNDg3IDAtMi42OTItMS4yMjktMi42OTItMi43NDRWNy42OCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMDAgLTQ1ODEpIHRyYW5zbGF0ZSg5OTUgNDU3NikgdHJhbnNsYXRlKDUgNSkgc2NhbGUoMSAtMSkgcm90YXRlKDQ1IDMwLjk5NiAwKSIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K) no-repeat;\\n background-position: center;\\n -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);\\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);\\n cursor: pointer;\\n}\\n\\n.toastui-editor-contents .task-list-item {\\n border: 0;\\n list-style: none;\\n padding-left: 24px;\\n margin-left: -24px;\\n}\\n\\n.toastui-editor-contents .task-list-item::before {\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n background-position: center;\\n content: '';\\n margin-left: 0;\\n margin-top: 0;\\n border-radius: 2px;\\n height: 18px;\\n width: 18px;\\n position: absolute;\\n left: 0;\\n top: 1px;\\n cursor: pointer;\\n background: transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgZmlsbD0iI0ZGRiIgc3Ryb2tlPSIjQ0NDIj4KICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAzMCAtMjk2KSB0cmFuc2xhdGUoNzg4IDE5MikgdHJhbnNsYXRlKDI0MiAxMDQpIj4KICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTciIGhlaWdodD0iMTciIHg9Ii41IiB5PSIuNSIgcng9IjIiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg==);\\n}\\n\\n.toastui-editor-contents .task-list-item.checked::before {\\n background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgZmlsbD0iIzRCOTZFNiI+CiAgICAgICAgICAgIDxnPgogICAgICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE2IDBjMS4xMDUgMCAyIC44OTUgMiAydjE0YzAgMS4xMDUtLjg5NSAyLTIgMkgyYy0xLjEwNSAwLTItLjg5NS0yLTJWMkMwIC44OTUuODk1IDAgMiAwaDE0em0tMS43OTMgNS4yOTNjLS4zOS0uMzktMS4wMjQtLjM5LTEuNDE0IDBMNy41IDEwLjU4NSA1LjIwNyA4LjI5M2wtLjA5NC0uMDgzYy0uMzkyLS4zMDUtLjk2LS4yNzgtMS4zMi4wODMtLjM5LjM5LS4zOSAxLjAyNCAwIDEuNDE0bDMgMyAuMDk0LjA4M2MuMzkyLjMwNS45Ni4yNzggMS4zMi0uMDgzbDYtNiAuMDgzLS4wOTRjLjMwNS0uMzkyLjI3OC0uOTYtLjA4My0xLjMyeiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwNTAgLTI5NikgdHJhbnNsYXRlKDc4OCAxOTIpIHRyYW5zbGF0ZSgyNjIgMTA0KSIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K);\\n}\\n\\n.toastui-editor-custom-block .toastui-editor-custom-block-editor {\\n background: #f9f7fd;\\n color: #452d6b;\\n border: solid 1px #dbd4ea;\\n}\\n\\n.toastui-editor-custom-block .toastui-editor-custom-block-view {\\n position: relative;\\n padding: 9px 13px 8px 12px;\\n}\\n\\n.toastui-editor-custom-block.ProseMirror-selectednode .toastui-editor-custom-block-view {\\n border: solid 1px #dbd4ea;\\n border-radius: 2px;\\n}\\n\\n.toastui-editor-custom-block .toastui-editor-custom-block-view .tool {\\n position: absolute;\\n right: 10px;\\n top: 7px;\\n display: none;\\n}\\n\\n.toastui-editor-custom-block.ProseMirror-selectednode .toastui-editor-custom-block-view .tool {\\n display: block;\\n}\\n\\n.toastui-editor-custom-block-view button {\\n vertical-align: middle;\\n width: 15px;\\n height: 15px;\\n margin-left: 8px;\\n padding: 3px;\\n border: solid 1px #cccccc;\\n background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjIuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuugiOydtOyWtF8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiCgkgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMzAgMzAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMwIDMwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6IzU1NTU1NTt9Cjwvc3R5bGU+CjxnPgoJPGc+CgkJPGc+CgkJCTxnPgoJCQkJPGc+CgkJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTE1LjUsMTIuNWwyLDJMMTIsMjBoLTJ2LTJMMTUuNSwxMi41eiBNMTgsMTBsMiwybC0xLjUsMS41bC0yLTJMMTgsMTB6Ii8+CgkJCQk8L2c+CgkJCTwvZz4KCQk8L2c+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==)\\n no-repeat;\\n background-position: center;\\n background-size: 30px 30px;\\n}\\n\\n.toastui-editor-custom-block-view .info {\\n font-size: 13px;\\n font-weight: bold;\\n color: #5200d0;\\n vertical-align: middle;\\n}\\n\\n.toastui-editor-contents .toastui-editor-ww-code-block {\\n position: relative;\\n}\\n\\n.toastui-editor-contents .toastui-editor-ww-code-block:after {\\n content: attr(data-language);\\n position: absolute;\\n display: inline-block;\\n top: 10px;\\n right: 10px;\\n height: 24px;\\n padding: 3px 35px 0 10px;\\n font-weight: bold;\\n font-size: 13px;\\n color: #333;\\n background: #e5e9ea url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjIuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuugiOydtOyWtF8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiCgkgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMzAgMzAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMwIDMwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6IzU1NTU1NTt9Cjwvc3R5bGU+CjxnPgoJPGc+CgkJPGc+CgkJCTxnPgoJCQkJPGc+CgkJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTE1LjUsMTIuNWwyLDJMMTIsMjBoLTJ2LTJMMTUuNSwxMi41eiBNMTgsMTBsMiwybC0xLjUsMS41bC0yLTJMMTgsMTB6Ii8+CgkJCQk8L2c+CgkJCTwvZz4KCQk8L2c+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==) no-repeat;\\n background-position: right;\\n border-radius: 2px;\\n background-size: 30px 30px;\\n cursor: pointer;\\n}\\n\\n.toastui-editor-ww-code-block-language {\\n position: fixed;\\n display: inline-block;\\n width: 100px;\\n height: 27px;\\n right: 35px;\\n border: 1px solid #ccc;\\n border-radius: 2px;\\n background-color: #fff;\\n z-index: 30;\\n}\\n\\n.toastui-editor-ww-code-block-language input {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0 10px;\\n height: 100%;\\n width: 100%;\\n background-color: transparent;\\n border: none;\\n outline: none;\\n}\\n\\n.toastui-editor-contents-placeholder::before {\\n content: attr(data-placeholder);\\n color: grey;\\n line-height: 160%;\\n position: absolute;\\n}\\n\\n.toastui-editor-md-preview .toastui-editor-contents h1 {\\n min-height: 28px;\\n}\\n\\n.toastui-editor-md-preview .toastui-editor-contents h2 {\\n min-height: 23px;\\n}\\n\\n.toastui-editor-md-preview .toastui-editor-contents blockquote {\\n min-height: 20px;\\n}\\n\\n.toastui-editor-md-preview .toastui-editor-contents li {\\n min-height: 22px;\\n}\\n\\n.toastui-editor-pseudo-clipboard {\\n position: fixed;\\n opacity: 0;\\n width: 0;\\n height: 0;\\n left: -1000px;\\n top: -1000px;\\n z-index: -1;\\n}\\n\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./node_modules/@toast-ui/editor/dist/toastui-editor-viewer.css?./node_modules/css-loader/dist/cjs.js??ref--7-oneOf-3-1!./node_modules/postcss-loader/src??ref--7-oneOf-3-2");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/@toast-ui/editor/dist/toastui-editor.css":
/*!***************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--7-oneOf-3-1!./node_modules/postcss-loader/src??ref--7-oneOf-3-2!./node_modules/@toast-ui/editor/dist/toastui-editor.css ***!
\***************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"/*!\\n * @toast-ui/editor\\n * @version 3.2.2 | Fri Feb 17 2023\\n * @author NHN Cloud FE Development Lab <dl_javascript@nhn.com>\\n * @license MIT\\n */\\n.ProseMirror {\\n position: relative;\\n}\\n\\n.ProseMirror {\\n word-wrap: break-word;\\n white-space: pre-wrap;\\n white-space: break-spaces;\\n -webkit-font-variant-ligatures: none;\\n font-variant-ligatures: none;\\n -webkit-font-feature-settings: \\\"liga\\\" 0;\\n font-feature-settings: \\\"liga\\\" 0; /* the above doesn't seem to work in Edge */\\n}\\n\\n.ProseMirror pre {\\n white-space: pre-wrap;\\n}\\n\\n.ProseMirror li {\\n position: relative;\\n}\\n\\n.ProseMirror-hideselection *::-moz-selection { background: transparent; }\\n\\n.ProseMirror-hideselection *::selection { background: transparent; }\\n.ProseMirror-hideselection *::-moz-selection { background: transparent; }\\n.ProseMirror-hideselection { caret-color: transparent; }\\n\\n.ProseMirror-selectednode {\\n outline: 2px solid #8cf;\\n}\\n\\n/* Make sure li selections wrap around markers */\\n\\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/* Protect against generic img rules */\\n\\nimg.ProseMirror-separator {\\n display: inline !important;\\n border: none !important;\\n margin: 0 !important;\\n}\\n\\n/* height */\\n.auto-height,\\n.auto-height .toastui-editor-defaultUI {\\n height: auto;\\n}\\n\\n.auto-height .toastui-editor-md-container {\\n position: relative;\\n}\\n\\n:not(.auto-height) > .toastui-editor-defaultUI,\\n:not(.auto-height) > .toastui-editor-defaultUI > .toastui-editor-main {\\n display: -ms-flexbox;\\n display: -webkit-box;\\n display: flex;\\n -ms-flex-direction: column;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n flex-direction: column;\\n}\\n\\n:not(.auto-height) > .toastui-editor-defaultUI > .toastui-editor-main {\\n -ms-flex: 1;\\n -webkit-box-flex: 1;\\n flex: 1;\\n}\\n\\n/* toastui editor */\\n.toastui-editor-md-container::after,\\n.toastui-editor-defaultUI-toolbar::after {\\n content: '';\\n display: block;\\n height: 0;\\n clear: both;\\n}\\n\\n\\n.toastui-editor-main {\\n min-height: 0px;\\n position: relative;\\n height: inherit;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n\\n.toastui-editor-md-container {\\n display: none;\\n overflow: hidden;\\n height: 100%;\\n}\\n\\n.toastui-editor-md-container .toastui-editor {\\n line-height: 1.5;\\n position: relative;\\n}\\n\\n.toastui-editor-md-container .toastui-editor,\\n.toastui-editor-md-container .toastui-editor-md-preview {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n padding: 0;\\n height: inherit;\\n}\\n\\n.toastui-editor-md-container .toastui-editor-md-preview {\\n overflow: auto;\\n padding: 0 25px;\\n height: 100%;\\n}\\n\\n.toastui-editor-md-container .toastui-editor-md-preview > p:first-child {\\n margin-top: 0 !important;\\n}\\n\\n.toastui-editor-md-container .toastui-editor-md-preview .toastui-editor-contents {\\n padding-top: 8px;\\n}\\n\\n.toastui-editor-main .toastui-editor-md-tab-style > .toastui-editor,\\n.toastui-editor-main .toastui-editor-md-tab-style > .toastui-editor-md-preview {\\n width: 100%;\\n display: none;\\n}\\n\\n.toastui-editor-main .toastui-editor-md-tab-style > .active {\\n display: block;\\n}\\n\\n.toastui-editor-main .toastui-editor-md-vertical-style > .toastui-editor-tabs {\\n display: none;\\n}\\n\\n.toastui-editor-main .toastui-editor-md-tab-style > .toastui-editor-tabs {\\n display: block;\\n}\\n\\n.toastui-editor-main .toastui-editor-md-vertical-style .toastui-editor {\\n width: 50%;\\n}\\n\\n.toastui-editor-main .toastui-editor-md-vertical-style .toastui-editor-md-preview {\\n width: 50%;\\n}\\n\\n.toastui-editor-main .toastui-editor-md-splitter {\\n display: none;\\n height: 100%;\\n width: 1px;\\n background-color: #ebedf2;\\n position: absolute;\\n left: 50%;\\n}\\n\\n.toastui-editor-main .toastui-editor-md-vertical-style .toastui-editor-md-splitter {\\n display: block;\\n}\\n\\n.toastui-editor-ww-container {\\n display: none;\\n overflow: hidden;\\n height: inherit;\\n background-color: #fff;\\n}\\n\\n.auto-height .toastui-editor-main-container {\\n position: relative;\\n}\\n\\n.toastui-editor-main-container {\\n position: absolute;\\n line-height: 1;\\n color: #222;\\n width: 100%;\\n height: inherit;\\n}\\n\\n.toastui-editor-ww-container > .toastui-editor {\\n height: inherit;\\n position: relative;\\n width: 100%;\\n}\\n\\n.toastui-editor-ww-container .toastui-editor-contents {\\n overflow: auto;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0px;\\n padding: 16px 25px 0px 25px;\\n height: inherit;\\n}\\n\\n.toastui-editor-ww-container .toastui-editor-contents p {\\n margin: 0;\\n}\\n\\n.toastui-editor-md-mode .toastui-editor-md-container,\\n.toastui-editor-ww-mode .toastui-editor-ww-container {\\n display: block;\\n z-index: 20;\\n}\\n\\n.toastui-editor-md-mode .toastui-editor-md-vertical-style {\\n display: -ms-flexbox;\\n display: -webkit-box;\\n display: flex;\\n}\\n\\n.toastui-editor-main.hidden,\\n.toastui-editor-defaultUI.hidden {\\n display: none;\\n}\\n\\n/* default UI Styles */\\n.toastui-editor-defaultUI .ProseMirror {\\n padding: 18px 25px;\\n}\\n\\n.toastui-editor-defaultUI {\\n position: relative;\\n border: 1px solid #dadde6;\\n height: 100%;\\n font-family: 'Open Sans', 'Helvetica Neue', 'Helvetica', 'Arial', '나눔바른고딕',\\n 'Nanum Barun Gothic', '맑은고딕', 'Malgun Gothic', sans-serif;\\n border-radius: 4px;\\n}\\n\\n.toastui-editor-defaultUI button {\\n color: #333;\\n height: 28px;\\n font-size: 13px;\\n cursor: pointer;\\n border: none;\\n border-radius: 2px;\\n}\\n\\n.toastui-editor-defaultUI .toastui-editor-ok-button {\\n min-width: 63px;\\n height: 32px;\\n background-color: #00a9ff;\\n color: #fff;\\n outline-color: #009bf2;\\n}\\n\\n.toastui-editor-defaultUI .toastui-editor-ok-button:hover {\\n background-color: #009bf2;\\n}\\n\\n.toastui-editor-defaultUI .toastui-editor-close-button {\\n min-width: 63px;\\n height: 32px;\\n background-color: #f7f9fc;\\n border: 1px solid #dadde6;\\n margin-right: 5px;\\n outline-color: #cbcfdb;\\n}\\n\\n.toastui-editor-defaultUI .toastui-editor-close-button:hover {\\n border-color: #cbcfdb;\\n}\\n\\n/* mode switch tab */\\n.toastui-editor-mode-switch {\\n background-color: #fff;\\n border-top: 1px solid #dadde6;\\n font-size: 12px;\\n text-align: right;\\n height: 28px;\\n padding-right: 10px;\\n border-radius: 0 0 3px 3px;\\n}\\n\\n.toastui-editor-mode-switch .tab-item {\\n display: inline-block;\\n width: 96px;\\n height: 24px;\\n line-height: 24px;\\n text-align: center;\\n background: #f7f9fc;\\n color: #969aa5;\\n margin-top: -1px;\\n margin-right: -1px;\\n cursor: pointer;\\n border: 1px solid #dadde6;\\n border-radius: 0 0 4px 4px;\\n font-weight: 500;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n\\n.toastui-editor-mode-switch .tab-item.active {\\n border-top: 1px solid #fff;\\n background-color: #fff;\\n color: #555;\\n}\\n\\n/* markdown tab */\\n.toastui-editor-defaultUI .toastui-editor-md-tab-container {\\n float: left;\\n height: 45px;\\n font-size: 13px;\\n background: #f7f9fc;\\n border-bottom: 1px solid #ebedf2;\\n border-top-left-radius: 3px;\\n}\\n\\n.toastui-editor-md-tab-container .toastui-editor-tabs {\\n margin-left: 15px;\\n height: 100%;\\n}\\n\\n.toastui-editor-md-tab-container .tab-item {\\n display: inline-block;\\n width: 70px;\\n height: 33px;\\n line-height: 33px;\\n font-size: 12px;\\n font-weight: 500;\\n text-align: center;\\n background: #eaedf1;\\n color: #969aa5;\\n cursor: pointer;\\n border: 1px solid #dadde6;\\n border-radius: 4px 4px 0 0;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin-top: 13px;\\n}\\n\\n.toastui-editor-md-tab-container .tab-item.active {\\n border-bottom: 1px solid #fff;\\n background-color: #fff;\\n color: #555;\\n}\\n\\n.toastui-editor-md-tab-container .tab-item:last-child {\\n margin-left: -1px;\\n}\\n\\n/* toolbar */\\n.toastui-editor-defaultUI-toolbar {\\n display: -ms-flexbox;\\n display: -webkit-box;\\n display: flex;\\n padding: 0 25px;\\n height: 45px;\\n background-color: #f7f9fc;\\n border-bottom: 1px solid #ebedf2;\\n border-radius: 3px 3px 0 0;\\n}\\n\\n.toastui-editor-toolbar {\\n height: 46px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n\\n.toastui-editor-toolbar-divider {\\n display: inline-block;\\n width: 1px;\\n height: 18px;\\n background-color: #e1e3e9;\\n margin: 14px 12px;\\n}\\n\\n.toastui-editor-toolbar-group {\\n display: -ms-flexbox;\\n display: -webkit-box;\\n display: flex;\\n}\\n\\n.toastui-editor-defaultUI-toolbar button {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n cursor: pointer;\\n width: 32px;\\n height: 32px;\\n padding: 0;\\n border-radius: 3px;\\n margin: 7px 5px;\\n border: 1px solid #f7f9fc;\\n}\\n\\n.toastui-editor-defaultUI-toolbar button:not(:disabled):hover {\\n border: 1px solid #e4e7ee;\\n background-color: #fff;\\n}\\n\\n.toastui-editor-defaultUI-toolbar .scroll-sync {\\n display: inline-block;\\n position: relative;\\n width: 70px;\\n height: 10px;\\n text-align: center;\\n line-height: 10px;\\n color: #81858f;\\n cursor: pointer;\\n}\\n\\n.toastui-editor-defaultUI-toolbar .scroll-sync::before {\\n content: 'Scroll';\\n position: absolute;\\n left: 0;\\n font-size: 14px;\\n}\\n\\n.toastui-editor-defaultUI-toolbar .scroll-sync.active::before {\\n color: #00a9ff;\\n}\\n\\n.toastui-editor-defaultUI-toolbar .scroll-sync input {\\n opacity: 0;\\n width: 0;\\n height: 0;\\n}\\n\\n.toastui-editor-defaultUI-toolbar .switch {\\n position: absolute;\\n top: 0;\\n left: 45px;\\n right: 0;\\n bottom: 0;\\n background-color: #d6d8de;\\n -webkit-transition: .4s;\\n transition: .4s;\\n border-radius: 50px;\\n}\\n\\n.toastui-editor-defaultUI-toolbar input:checked + .switch {\\n background-color: #acddfa;\\n}\\n\\n.toastui-editor-defaultUI-toolbar .switch::before {\\n position: absolute;\\n content: '';\\n height: 14px;\\n width: 14px;\\n left: 0px;\\n bottom: -2px;\\n background-color: #94979f;\\n -webkit-transition: .4s;\\n transition: .4s;\\n border-radius: 50%;\\n}\\n\\n.toastui-editor-defaultUI-toolbar input:checked + .switch::before {\\n background-color: #00a9ff;\\n -webkit-transform: translateX(12px);\\n transform: translateX(12px);\\n}\\n\\n.toastui-editor-dropdown-toolbar .scroll-sync {\\n margin: 0 5px;\\n}\\n\\n.toastui-editor-dropdown-toolbar {\\n position: absolute;\\n height: 46px;\\n z-index: 30;\\n border-radius: 2px;\\n -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);\\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);\\n border: 1px solid #dadde6;\\n background-color: #f7f9fc;\\n display: -ms-flexbox;\\n display: -webkit-box;\\n display: flex;\\n}\\n\\n.toastui-editor-toolbar-item-wrapper {\\n margin: 7px 5px;\\n height: 32px;\\n line-height: 32px;\\n}\\n\\n/* toolbar popup */\\n.toastui-editor-popup {\\n width: 400px;\\n margin-right: auto;\\n background: #fff;\\n z-index: 30;\\n position: absolute;\\n border-radius: 2px;\\n -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);\\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);\\n border: 1px solid #dadde6;\\n}\\n\\n.toastui-editor-popup-body {\\n padding: 15px;\\n font-size: 12px;\\n}\\n\\n.toastui-editor-popup-body label {\\n font-weight: 600;\\n color: #555;\\n display: block;\\n margin: 20px 0 5px;\\n}\\n\\n.toastui-editor-popup-body .toastui-editor-button-container {\\n text-align: right;\\n margin-top: 20px;\\n}\\n\\n.toastui-editor-popup-body input[type='text'] {\\n width: calc(100% - 26px);\\n height: 30px;\\n padding: 0 12px;\\n border-radius: 2px;\\n border: 1px solid #e1e3e9;\\n color: #333;\\n}\\n\\n.toastui-editor-popup-body input[type='text']:focus {\\n outline: 1px solid #00a9ff;\\n border-color: transparent;\\n}\\n\\n.toastui-editor-popup-body input[type='text'].disabled {\\n background-color: #f7f9fc;\\n border-color: #e1e3e9;\\n color: #969aa5;\\n}\\n\\n.toastui-editor-popup-body input[type='file'] {\\n opacity: 0;\\n border: none;\\n width: 1px;\\n height: 1px;\\n position: absolute;\\n top: 0;\\n left: 0;\\n}\\n\\n.toastui-editor-popup-body input.wrong,\\n.toastui-editor-popup-body span.wrong {\\n border-color: #fa2828;\\n}\\n\\n.toastui-editor-popup-add-link .toastui-editor-popup-body,\\n.toastui-editor-popup-add-image .toastui-editor-popup-body {\\n padding: 0 20px 20px;\\n}\\n\\n.toastui-editor-popup-add-image .toastui-editor-tabs {\\n margin: 5px 0 10px;\\n}\\n\\n.toastui-editor-popup-add-image .toastui-editor-tabs .tab-item {\\n display: inline-block;\\n width: 60px;\\n height: 40px;\\n line-height: 40px;\\n border-bottom: 1px solid #dadde6;\\n color: #333;\\n font-size: 13px;\\n font-weight: 600;\\n text-align: center;\\n cursor: pointer;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n\\n.toastui-editor-popup-add-image .toastui-editor-tabs .tab-item:hover {\\n border-bottom: 1px solid #cbcfdb;\\n}\\n\\n.toastui-editor-popup-add-image .toastui-editor-tabs .tab-item.active {\\n color: #00a9ff;\\n border-bottom: 2px solid #00a9ff;\\n}\\n\\n.toastui-editor-popup-add-image .toastui-editor-file-name {\\n width: 58%;\\n display: inline-block;\\n border-radius: 2px;\\n border: 1px solid #e1e3e9;\\n color: #dadde6;\\n height: 30px;\\n line-height: 30px;\\n padding: 0 12px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n cursor: pointer;\\n}\\n\\n.toastui-editor-popup-add-image .toastui-editor-file-name.has-file {\\n color: #333;\\n}\\n\\n.toastui-editor-popup-add-image .toastui-editor-file-select-button {\\n width: 33%;\\n margin-left: 5px;\\n height: 32px;\\n border-radius: 2px;\\n border: 1px solid #dadde6;\\n background-color: #f7f9fc;\\n vertical-align: top;\\n}\\n\\n.toastui-editor-popup-add-image .toastui-editor-file-select-button:hover {\\n border-color: #cbcfdb;\\n}\\n\\n.toastui-editor-popup-add-table {\\n width: auto;\\n}\\n\\n.toastui-editor-popup-add-table .toastui-editor-table-selection {\\n position: relative;\\n}\\n\\n.toastui-editor-popup-add-table .toastui-editor-table-cell {\\n display: table-cell;\\n width: 20px;\\n height: 20px;\\n border: 1px solid #e1e3e9;\\n background: #fff;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n\\n.toastui-editor-popup-add-table .toastui-editor-table-cell.header {\\n background: #f7f9fc;\\n}\\n\\n.toastui-editor-popup-add-table .toastui-editor-table-row {\\n display: table-row;\\n}\\n\\n.toastui-editor-popup-add-table .toastui-editor-table {\\n display: table;\\n border-collapse: collapse;\\n}\\n\\n.toastui-editor-popup-add-table .toastui-editor-table-selection-layer {\\n position: absolute;\\n top: 0;\\n left: 0;\\n border: 1px solid #00a9ff;\\n background: rgba(0, 169, 255, 0.1);\\n z-index: 30;\\n}\\n\\n.toastui-editor-popup-add-table .toastui-editor-table-description {\\n margin: 5px 0 0;\\n text-align: center;\\n color: #333\\n}\\n\\n.toastui-editor-popup-add-heading {\\n width: auto;\\n}\\n\\n.toastui-editor-popup-add-heading .toastui-editor-popup-body {\\n padding: 0;\\n}\\n\\n.toastui-editor-popup-add-heading h1,\\n.toastui-editor-popup-add-heading h2,\\n.toastui-editor-popup-add-heading h3,\\n.toastui-editor-popup-add-heading h4,\\n.toastui-editor-popup-add-heading h5,\\n.toastui-editor-popup-add-heading h6,\\n.toastui-editor-popup-add-heading ul,\\n.toastui-editor-popup-add-heading p {\\n padding: 0;\\n margin: 0;\\n}\\n\\n.toastui-editor-popup-add-heading ul {\\n padding: 5px 0;\\n list-style: none;\\n}\\n\\n.toastui-editor-popup-add-heading ul li {\\n padding: 4px 12px;\\n cursor: pointer;\\n}\\n\\n.toastui-editor-popup-add-heading ul li:hover {\\n background-color: #dff4ff;\\n}\\n\\n.toastui-editor-popup-add-heading h1 {\\n font-size: 24px;\\n}\\n\\n.toastui-editor-popup-add-heading h2 {\\n font-size: 22px;\\n}\\n\\n.toastui-editor-popup-add-heading h3 {\\n font-size: 20px;\\n}\\n\\n.toastui-editor-popup-add-heading h4 {\\n font-size: 18px;\\n}\\n\\n.toastui-editor-popup-add-heading h5 {\\n font-size: 16px;\\n}\\n\\n.toastui-editor-popup-add-heading h6 {\\n font-size: 14px;\\n}\\n\\n/* table context menu */\\n.toastui-editor-context-menu {\\n position: absolute;\\n width: auto;\\n min-width: 197px;\\n color: #333;\\n border-radius: 2px;\\n -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);\\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);\\n border: 1px solid #dadde6;\\n z-index: 30;\\n padding: 5px 0;\\n background-color: #fff;\\n}\\n\\n.toastui-editor-context-menu .menu-group {\\n list-style: none;\\n border-bottom: 1px solid #ebedf2;\\n padding: 0;\\n margin: 0;\\n font-size: 13px;\\n}\\n\\n.toastui-editor-context-menu .menu-group:last-child {\\n border-bottom: none !important;\\n}\\n\\n.toastui-editor-context-menu .menu-item {\\n height: 32px;\\n line-height: 32px;\\n padding: 0 14px;\\n cursor: pointer;\\n}\\n\\n.toastui-editor-context-menu span {\\n display: inline-block;\\n}\\n\\n.toastui-editor-context-menu span::before {\\n background: url(data:image/png;base64,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) no-repeat;\\n background-size: 466px 146px;\\n content: '';\\n width: 20px;\\n height: 20px;\\n display: inline-block;\\n vertical-align: middle;\\n margin-right: 10px;\\n}\\n\\n.toastui-editor-context-menu .add-row-up::before {\\n background-position: 3px -104px;\\n}\\n\\n.toastui-editor-context-menu .add-row-down::before {\\n background-position: -19px -104px;\\n}\\n\\n.toastui-editor-context-menu .remove-row::before {\\n background-position: -41px -104px;\\n}\\n\\n.toastui-editor-context-menu .add-column-left::before {\\n background-position: -63px -104px;\\n}\\n\\n.toastui-editor-context-menu .add-column-right::before {\\n background-position: -85px -104px;\\n}\\n\\n.toastui-editor-context-menu .remove-column::before {\\n background-position: -111px -104px;\\n}\\n\\n.toastui-editor-context-menu .align-column-left::before {\\n background-position: -129px -104px;\\n}\\n\\n.toastui-editor-context-menu .align-column-center::before {\\n background-position: -151px -104px;\\n}\\n\\n.toastui-editor-context-menu .align-column-right::before {\\n background-position: -173px -104px;\\n}\\n\\n.toastui-editor-context-menu .remove-table::before {\\n background-position: -197px -104px;\\n}\\n\\n.toastui-editor-context-menu .disabled span::before {\\n opacity: 0.3;\\n}\\n\\n.toastui-editor-context-menu li:not(.disabled):hover {\\n background-color: #dff4ff;\\n}\\n\\n.toastui-editor-context-menu li.disabled {\\n color: #c9ccd5;\\n}\\n\\n.toastui-editor-tooltip {\\n position: absolute;\\n background-color: #444;\\n z-index: 40;\\n padding: 4px 7px;\\n font-size: 12px;\\n border-radius: 3px;\\n color: #fff;\\n font-family: 'Open Sans', 'Helvetica Neue', 'Helvetica', 'Arial', '나눔바른고딕',\\n 'Nanum Barun Gothic', '맑은고딕', 'Malgun Gothic', sans-serif;\\n}\\n\\n.toastui-editor-tooltip .arrow {\\n content: '';\\n display: inline-block;\\n width: 10px;\\n height: 10px;\\n background-color: #444;\\n -webkit-transform: rotate(45deg);\\n transform: rotate(45deg);\\n position: absolute;\\n top: -3px;\\n left: 6px;\\n z-index: -1;\\n}\\n\\n.toastui-editor-toolbar-icons {\\n background: url(data:image/png;base64,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) no-repeat;\\n background-size: 466px 146px;\\n}\\n\\n@media only screen and (-webkit-min-device-pixel-ratio: 2),\\n only screen and (min-device-pixel-ratio: 2),\\n only screen and (min-resolution: 192dpi),\\n only screen and (min-resolution: 2dppx) {\\n .toastui-editor-toolbar-icons,\\n .toastui-editor-context-menu span::before {\\n background: url(data:image/png;base64,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P0A9dgflJJi2Szl5led4F57jlvpECs/6vuTjuhR3dAo961VP9UoRby5eaGBuxz2Zy/3pyiWBlJEiA/s5FHaEnU170tGmBChvV5O1/Zske9dQ3upqiLdbfuL3hTpvY+q8m3ELRkrj1xLs36Md8A17jhOutYwTnYufJw89tLmvbxmhJagIVEmgaoW0yvjlXQREQASakkA77LJL42wfGmdpGiktpZBagaFRfQqNsDNGSykNldFTUQ6+3ZQFWEJlRsA6pVmzZjML1sks0hoiosy9vMoqq2wVjg7VEMNQkHbLTzEI7tOqdCoeTd1nn7dK2tjwf2F5Gsro3cVhdS4CItCcBKSQNud9kVQiIAIikIqAjZLSQNu8lGeujZiyW8pvs7mHI6W2tb/tlF28jigvcRfSmLUpw+doZDQvxM0Xb40zpbLKiE03nWtLiOpVRp1A7ZYfl6+4yTPqo5hO4nndFPt4fi+OHTv2Qb5x/Y+4P9lFQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAQ6mYDfyZlX3kVABESgnQgc/WRhlf5F3j6Dvjdw6UT/mnbKm/IiAiIgAiIgAiLQngSkkLbnfVWuREAEOohA7+OFsc8v8w4peN43yfZGlnW/y9t/9kT/2g7CoKyKgAiIgAiIgAi0IIGeFpRZIouACIhA3QSOm1fY4A3f28MiWqXg/fyCyf7CuiMdhQiOmFc4YOEy7zsk/fZhyRe89ww7b8GTI+YXthv0vBO9gjcZ8TdoUBYWer43r8vzzpk1yb+vQWkqmVEmcPQjhY36+rzv0amzI6I0qqy5XC9kdGDumDHeSRdv5T/n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vaXiGC338PM8x9WSftjWO6CWsArTOAKhollR2UwjEc9wdYeNvhHCevQvqneamUs5jzhd3GlMemI2KtUTUyq89dBYDwAArSK8cWt+zbJmtNII6bA8tdAI6TC5wxP7rtbACm97tkR/K+ssVude9DBm+gqV+JM9a3q/rfW7Vklpya19CNCr94HCAFOk3LRd33u1u8vbhSlgLfWJFJ71famHrqt0Z6ivplBf17v2qFIymV1n07LtaITNJW+jus8B3NjU09sxzQZqmWVeETWcACNtV1PespspVUcOKG/XMLpUV0O83fITx3nEo4WNB1d4N+O2Rdw9yc7z+z1GRr/RrCOjSTInuTHq+3naNz3U4dcnXZebCLQDAeo+HSIgAiLQeQTaYZfdI+YV9qGhUrGR0moKqZVGlG2bxnzGaCmloTJ6Ksrotzvv6eisHFunNGvWHiHX64xyzl8eO8bbKhwdqlmUdstPMYjgqwH/9I6mQ/F4OhKYzTvi+F82kzjtksn+3SOuyEEERKApCUghbcrbIqFEQAREIB0BGyXF5+ZlfCdN2S3jvXku2UgpCveJNDxtp+xh64hylNKm/s1jaPYcjYzmSLnJoq5lplSGWVhIY2yuLSGqVxl1MrVbfly+4qZtXnT0Q96kPs/btKvgjUc5fbHH9x6cMdG39Ws6REAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAERAACviiIgAiIgAgMJ7DPPvvshMuNoeueN9xww5zhPnQmAiIgAiIgAiIgAiKQBYGeLCJRHCIgAiLQTgR839++UCiMtzyZHUMKaTvd4AzzctBBB627bNmydxDl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UvksxkDZi5yw9xKm1xzi5RjlMLe10HTi3YPCeTZ1ZPD5F2TYieT/wnPzFPb+vr6+zTDdxmA2a0Yjo3aDdIiACIiACIhADgS6ysRpa5gadTQyrUblqSHp0GgyZTTYwCghwWBNqflJuNZop2rucTV+S+Wjmjiq8VsqvbzdU8tIebDNVtxuusEGRjTArcPi2piQ+9Eg3yN2LqsI1EMgdflMmwhK4ADldgr+o3JLXRaN+DMD5GyU1prXQjMKfarF4eQhbp/fppy/FzOujM4kHU3TdaBkioAIiIAIiEDGBEoqpLaGibQyb2QkyD8qa8Ro7Ng60cX2C+0JojW/E0qF7aAbrRslL2faLyb57qGfmFPjrVWUp0zKQ6PTy5toFfmx0ZzbkMfKdqCMWqMdt+LG/XN8f/E3dch9axjWpgW33QGvtqgfKtyYzO5hNeWzgkzDLlu55XcEv1eHXchgLTRxFsJnYwfsd/GL775rQ7j2fHwGpfgorg1bX1oki05FQAREQAREQAREoHMJMBp2s02Rsx/2MxwJs8fctcuuA9MhJpuxbMrvU8XZtZEfysZetkau+JrORaDZCFBex1OP/drVZUXmNfGRzHpl57lYm867iTw32y5atGi9euNTeBEQAREQAREQgXQEgo+Dp/MqX81IgAbUm2iUXYBs8+nJvyguIw2sYzifRO/+cYwEBN8AiV+XXQREQASalYApo9Rh5dZCm+jX2rTe+Ohms+ZHcomACIiACIiACIiACIiACIiACLQIAUZDvx4fEaXz7SwbEcXtmrg7SuueLZIliSkCIiACIiACIpBAoOQa0gS/chIBERABERCBhhBg1LMRa6EbkhclIgIiIAIiIAIiIAIiIAIiIAIi0GIEtBa6xW6YxBUBERABERABERABERABERABERABERABERABERCBViHw/wHIAHUN1iL6RwAAAABJRU5ErkJggg==) no-repeat;\\n background-size: 466px 146px;\\n }\\n}\\n\\n.toastui-editor-toolbar-icons {\\n background-position-y: 3px;\\n}\\n\\n.toastui-editor-toolbar-icons:disabled {\\n opacity: 0.3;\\n}\\n\\n.toastui-editor-toolbar-icons.heading {\\n background-position-x: 3px;\\n}\\n\\n.toastui-editor-toolbar-icons.bold {\\n background-position-x: -23px;\\n}\\n\\n.toastui-editor-toolbar-icons.italic {\\n background-position-x: -49px;\\n}\\n\\n.toastui-editor-toolbar-icons.strike {\\n background-position-x: -75px;\\n}\\n\\n.toastui-editor-toolbar-icons.hrline {\\n background-position-x: -101px;\\n}\\n\\n.toastui-editor-toolbar-icons.quote {\\n background-position-x: -127px;\\n}\\n\\n.toastui-editor-toolbar-icons.bullet-list {\\n background-position-x: -153px;\\n}\\n\\n.toastui-editor-toolbar-icons.ordered-list {\\n background-position-x: -179px;\\n}\\n\\n.toastui-editor-toolbar-icons.task-list {\\n background-position-x: -205px;\\n}\\n\\n.toastui-editor-toolbar-icons.indent {\\n background-position-x: -231px;\\n}\\n\\n.toastui-editor-toolbar-icons.outdent {\\n background-position-x: -257px;\\n}\\n\\n.toastui-editor-toolbar-icons.table {\\n background-position-x: -283px;\\n}\\n\\n.toastui-editor-toolbar-icons.image {\\n background-position-x: -309px;\\n}\\n\\n.toastui-editor-toolbar-icons.link {\\n background-position-x: -334px;\\n}\\n\\n.toastui-editor-toolbar-icons.code {\\n background-position-x: -361px;\\n}\\n\\n.toastui-editor-toolbar-icons.codeblock {\\n background-position-x: -388px;\\n}\\n\\n.toastui-editor-toolbar-icons.more {\\n background-position-x: -412px;\\n}\\n\\n.toastui-editor-toolbar-icons:not(:disabled).active {\\n background-position-y: -23px;\\n}\\n\\n@media only screen and (max-width: 480px) {\\n .toastui-editor-popup {\\n max-width: 300px;\\n margin-left: -150px;\\n }\\n\\n .toastui-editor-dropdown-toolbar {\\n max-width: none;\\n }\\n}\\n\\n/* \\n z-index basis\\n -1: pseudo element\\n 20 - preview, wysiwyg\\n 30 - wysiwyg code block language editor, popup, context menu\\n 40 - tooltip\\n*/\\n.ProseMirror {\\n font-family: 'Open Sans', 'Helvetica Neue', 'Helvetica', 'Arial', '나눔바른고딕',\\n 'Nanum Barun Gothic', '맑은고딕', 'Malgun Gothic', sans-serif;\\n color: #222;\\n font-size: 13px;\\n overflow-y: auto;\\n overflow-X: hidden;\\n height: calc(100% - 36px);\\n}\\n\\n.ProseMirror .placeholder {\\n color: #999;\\n}\\n\\n.ProseMirror:focus {\\n outline: none;\\n}\\n\\n.ProseMirror-selectednode {\\n outline: none;\\n}\\n\\ntable.ProseMirror-selectednode {\\n border-radius: 2px;\\n outline: 2px solid #00a9ff;\\n}\\n\\n.html-block.ProseMirror-selectednode {\\n border-radius: 2px;\\n outline: 2px solid #00a9ff;\\n}\\n\\n.toastui-editor-contents {\\n margin: 0;\\n padding: 0;\\n font-size: 13px;\\n font-family: 'Open Sans', 'Helvetica Neue', 'Helvetica', 'Arial', '나눔바른고딕',\\n 'Nanum Barun Gothic', '맑은고딕', 'Malgun Gothic', sans-serif;\\n z-index: 20;\\n}\\n\\n.toastui-editor-contents *:not(table) {\\n line-height: 160%;\\n -webkit-box-sizing: content-box;\\n box-sizing: content-box;\\n}\\n\\n.toastui-editor-contents i,\\n.toastui-editor-contents cite,\\n.toastui-editor-contents em,\\n.toastui-editor-contents var,\\n.toastui-editor-contents address,\\n.toastui-editor-contents dfn {\\n font-style: italic;\\n}\\n\\n.toastui-editor-contents strong {\\n font-weight: bold;\\n}\\n\\n.toastui-editor-contents p {\\n margin: 10px 0;\\n color: #222;\\n}\\n\\n.toastui-editor-contents > h1:first-of-type,\\n.toastui-editor-contents > div > div:first-of-type h1 {\\n margin-top: 14px;\\n}\\n\\n.toastui-editor-contents h1,\\n.toastui-editor-contents h2,\\n.toastui-editor-contents h3,\\n.toastui-editor-contents h4,\\n.toastui-editor-contents h5,\\n.toastui-editor-contents h6 {\\n font-weight: bold;\\n color: #222;\\n}\\n\\n.toastui-editor-contents h1 {\\n font-size: 24px;\\n line-height: 28px;\\n border-bottom: 3px double #999;\\n margin: 52px 0 15px 0;\\n padding-bottom: 7px;\\n}\\n\\n.toastui-editor-contents h2 {\\n font-size: 22px;\\n line-height: 23px;\\n border-bottom: 1px solid #dbdbdb;\\n margin: 20px 0 13px 0;\\n padding-bottom: 7px;\\n}\\n\\n.toastui-editor-contents h3 {\\n font-size: 20px;\\n margin: 18px 0 2px;\\n}\\n\\n.toastui-editor-contents h4 {\\n font-size: 18px;\\n margin: 10px 0 2px;\\n}\\n\\n.toastui-editor-contents h3,\\n.toastui-editor-contents h4 {\\n line-height: 18px;\\n}\\n\\n.toastui-editor-contents h5 {\\n font-size: 16px;\\n}\\n\\n.toastui-editor-contents h6 {\\n font-size: 14px;\\n}\\n\\n.toastui-editor-contents h5,\\n.toastui-editor-contents h6 {\\n line-height: 17px;\\n margin: 9px 0 -4px;\\n}\\n\\n.toastui-editor-contents del {\\n color: #999;\\n}\\n\\n.toastui-editor-contents blockquote {\\n margin: 14px 0;\\n border-left: 4px solid #e5e5e5;\\n padding: 0 16px;\\n color: #999;\\n}\\n\\n.toastui-editor-contents blockquote p,\\n.toastui-editor-contents blockquote ul,\\n.toastui-editor-contents blockquote ol {\\n color: #999;\\n}\\n\\n.toastui-editor-contents blockquote > :first-child {\\n margin-top: 0;\\n}\\n\\n.toastui-editor-contents blockquote > :last-child {\\n margin-bottom: 0;\\n}\\n\\n.toastui-editor-contents pre,\\n.toastui-editor-contents code {\\n font-family: Consolas, Courier, 'Apple SD 산돌고딕 Neo', -apple-system, 'Lucida Grande',\\n 'Apple SD Gothic Neo', '맑은 고딕', 'Malgun Gothic', 'Segoe UI', '돋움', dotum, sans-serif;\\n border: 0;\\n border-radius: 0;\\n}\\n\\n.toastui-editor-contents pre {\\n margin: 2px 0 8px;\\n padding: 18px;\\n background-color: #f4f7f8;\\n}\\n\\n.toastui-editor-contents code {\\n color: #c1798b;\\n background-color: #f9f2f4;\\n padding: 2px 3px;\\n letter-spacing: -0.3px;\\n border-radius: 2px;\\n}\\n\\n.toastui-editor-contents pre code {\\n padding: 0;\\n color: inherit;\\n white-space: pre-wrap;\\n background-color: transparent;\\n}\\n\\n.toastui-editor-contents img {\\n margin: 4px 0 10px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n vertical-align: top;\\n max-width: 100%;\\n}\\n\\n.toastui-editor-contents table {\\n border: 1px solid rgba(0, 0, 0, 0.1);\\n margin: 12px 0 14px;\\n color: #222;\\n width: auto;\\n border-collapse: collapse;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n\\n.toastui-editor-contents table th,\\n.toastui-editor-contents table td {\\n border: 1px solid rgba(0, 0, 0, 0.1);\\n padding: 5px 14px 5px 12px;\\n height: 32px;\\n}\\n\\n.toastui-editor-contents table th {\\n background-color: #555;\\n font-weight: 300;\\n color: #fff;\\n padding-top: 6px;\\n}\\n\\n.toastui-editor-contents th p {\\n margin: 0;\\n color: #fff;\\n}\\n\\n.toastui-editor-contents td p {\\n margin: 0;\\n padding: 0 2px;\\n}\\n\\n.toastui-editor-contents td.toastui-editor-cell-selected {\\n background-color: #d8dfec;\\n}\\n\\n.toastui-editor-contents th.toastui-editor-cell-selected {\\n background-color: #908f8f;\\n}\\n\\n.toastui-editor-contents ul,\\n.toastui-editor-contents menu,\\n.toastui-editor-contents ol,\\n.toastui-editor-contents dir {\\n display: block;\\n list-style-type: none;\\n padding-left: 24px;\\n margin: 6px 0 10px;\\n color: #222;\\n}\\n\\n.toastui-editor-contents ol {\\n list-style-type: none;\\n counter-reset: li;\\n}\\n\\n.toastui-editor-contents ol > li {\\n counter-increment: li;\\n}\\n\\n.toastui-editor-contents ul > li::before,\\n.toastui-editor-contents ol > li::before {\\n display: inline-block;\\n position: absolute;\\n}\\n\\n.toastui-editor-contents ul > li::before {\\n content: '';\\n margin-top: 6px;\\n margin-left: -17px;\\n width: 5px;\\n height: 5px;\\n border-radius: 50%;\\n background-color: #ccc;\\n}\\n\\n.toastui-editor-contents ol > li::before {\\n content: '.' counter(li);\\n margin-left: -28px;\\n width: 24px;\\n text-align: right;\\n direction: rtl;\\n color: #aaa;\\n}\\n\\n.toastui-editor-contents ul ul,\\n.toastui-editor-contents ul ol,\\n.toastui-editor-contents ol ol,\\n.toastui-editor-contents ol ul {\\n margin-top: 0 !important;\\n margin-bottom: 0 !important;\\n}\\n\\n.toastui-editor-contents ul li,\\n.toastui-editor-contents ol li {\\n position: relative;\\n}\\n\\n.toastui-editor-contents ul p,\\n.toastui-editor-contents ol p {\\n margin: 0;\\n}\\n\\n.toastui-editor-contents hr {\\n border-top: 1px solid #eee;\\n margin: 16px 0;\\n}\\n\\n.toastui-editor-contents a {\\n text-decoration: underline;\\n color: #4b96e6;\\n}\\n\\n.toastui-editor-contents a:hover {\\n color: #1f70de;\\n}\\n\\n.toastui-editor-contents .image-link {\\n position: relative;\\n}\\n\\n.toastui-editor-contents .image-link:hover::before {\\n content: '';\\n position: absolute;\\n width: 30px;\\n height: 30px;\\n right: 0px;\\n border-radius: 50%;\\n border: 1px solid #c9ccd5;\\n background: #fff url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj4KICAgICAgICA8ZyBzdHJva2U9IiM1NTUiIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICA8Zz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNy42NjUgMTUuMDdsLTEuODE5LS4wMDJjLTEuNDg2IDAtMi42OTItMS4yMjgtMi42OTItMi43NDR2LS4xOTJjMC0xLjUxNSAxLjIwNi0yLjc0NCAyLjY5Mi0yLjc0NGgzLjg0NmMxLjQ4NyAwIDIuNjkyIDEuMjI5IDIuNjkyIDIuNzQ0di4xOTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDAwIC00NTgxKSB0cmFuc2xhdGUoOTk1IDQ1NzYpIHRyYW5zbGF0ZSg1IDUpIHNjYWxlKDEgLTEpIHJvdGF0ZSg0NSAzNy4yOTMgMCkiLz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIuMzI2IDQuOTM0bDEuODIyLjAwMmMxLjQ4NyAwIDIuNjkzIDEuMjI4IDIuNjkzIDIuNzQ0di4xOTJjMCAxLjUxNS0xLjIwNiAyLjc0NC0yLjY5MyAyLjc0NGgtMy44NDVjLTEuNDg3IDAtMi42OTItMS4yMjktMi42OTItMi43NDRWNy42OCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMDAgLTQ1ODEpIHRyYW5zbGF0ZSg5OTUgNDU3NikgdHJhbnNsYXRlKDUgNSkgc2NhbGUoMSAtMSkgcm90YXRlKDQ1IDMwLjk5NiAwKSIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K) no-repeat;\\n background-position: center;\\n -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);\\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);\\n cursor: pointer;\\n}\\n\\n.toastui-editor-contents .task-list-item {\\n border: 0;\\n list-style: none;\\n padding-left: 24px;\\n margin-left: -24px;\\n}\\n\\n.toastui-editor-contents .task-list-item::before {\\n background-repeat: no-repeat;\\n background-size: 18px 18px;\\n background-position: center;\\n content: '';\\n margin-left: 0;\\n margin-top: 0;\\n border-radius: 2px;\\n height: 18px;\\n width: 18px;\\n position: absolute;\\n left: 0;\\n top: 1px;\\n cursor: pointer;\\n background: transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgZmlsbD0iI0ZGRiIgc3Ryb2tlPSIjQ0NDIj4KICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTAzMCAtMjk2KSB0cmFuc2xhdGUoNzg4IDE5MikgdHJhbnNsYXRlKDI0MiAxMDQpIj4KICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTciIGhlaWdodD0iMTciIHg9Ii41IiB5PSIuNSIgcng9IjIiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg==);\\n}\\n\\n.toastui-editor-contents .task-list-item.checked::before {\\n background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgZmlsbD0iIzRCOTZFNiI+CiAgICAgICAgICAgIDxnPgogICAgICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE2IDBjMS4xMDUgMCAyIC44OTUgMiAydjE0YzAgMS4xMDUtLjg5NSAyLTIgMkgyYy0xLjEwNSAwLTItLjg5NS0yLTJWMkMwIC44OTUuODk1IDAgMiAwaDE0em0tMS43OTMgNS4yOTNjLS4zOS0uMzktMS4wMjQtLjM5LTEuNDE0IDBMNy41IDEwLjU4NSA1LjIwNyA4LjI5M2wtLjA5NC0uMDgzYy0uMzkyLS4zMDUtLjk2LS4yNzgtMS4zMi4wODMtLjM5LjM5LS4zOSAxLjAyNCAwIDEuNDE0bDMgMyAuMDk0LjA4M2MuMzkyLjMwNS45Ni4yNzggMS4zMi0uMDgzbDYtNiAuMDgzLS4wOTRjLjMwNS0uMzkyLjI3OC0uOTYtLjA4My0xLjMyeiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwNTAgLTI5NikgdHJhbnNsYXRlKDc4OCAxOTIpIHRyYW5zbGF0ZSgyNjIgMTA0KSIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K);\\n}\\n\\n.toastui-editor-custom-block .toastui-editor-custom-block-editor {\\n background: #f9f7fd;\\n color: #452d6b;\\n border: solid 1px #dbd4ea;\\n}\\n\\n.toastui-editor-custom-block .toastui-editor-custom-block-view {\\n position: relative;\\n padding: 9px 13px 8px 12px;\\n}\\n\\n.toastui-editor-custom-block.ProseMirror-selectednode .toastui-editor-custom-block-view {\\n border: solid 1px #dbd4ea;\\n border-radius: 2px;\\n}\\n\\n.toastui-editor-custom-block .toastui-editor-custom-block-view .tool {\\n position: absolute;\\n right: 10px;\\n top: 7px;\\n display: none;\\n}\\n\\n.toastui-editor-custom-block.ProseMirror-selectednode .toastui-editor-custom-block-view .tool {\\n display: block;\\n}\\n\\n.toastui-editor-custom-block-view button {\\n vertical-align: middle;\\n width: 15px;\\n height: 15px;\\n margin-left: 8px;\\n padding: 3px;\\n border: solid 1px #cccccc;\\n background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjIuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuugiOydtOyWtF8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiCgkgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMzAgMzAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMwIDMwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6IzU1NTU1NTt9Cjwvc3R5bGU+CjxnPgoJPGc+CgkJPGc+CgkJCTxnPgoJCQkJPGc+CgkJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTE1LjUsMTIuNWwyLDJMMTIsMjBoLTJ2LTJMMTUuNSwxMi41eiBNMTgsMTBsMiwybC0xLjUsMS41bC0yLTJMMTgsMTB6Ii8+CgkJCQk8L2c+CgkJCTwvZz4KCQk8L2c+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==)\\n no-repeat;\\n background-position: center;\\n background-size: 30px 30px;\\n}\\n\\n.toastui-editor-custom-block-view .info {\\n font-size: 13px;\\n font-weight: bold;\\n color: #5200d0;\\n vertical-align: middle;\\n}\\n\\n.toastui-editor-contents .toastui-editor-ww-code-block {\\n position: relative;\\n}\\n\\n.toastui-editor-contents .toastui-editor-ww-code-block:after {\\n content: attr(data-language);\\n position: absolute;\\n display: inline-block;\\n top: 10px;\\n right: 10px;\\n height: 24px;\\n padding: 3px 35px 0 10px;\\n font-weight: bold;\\n font-size: 13px;\\n color: #333;\\n background: #e5e9ea url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjIuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuugiOydtOyWtF8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiCgkgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMzAgMzAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMwIDMwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6IzU1NTU1NTt9Cjwvc3R5bGU+CjxnPgoJPGc+CgkJPGc+CgkJCTxnPgoJCQkJPGc+CgkJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTE1LjUsMTIuNWwyLDJMMTIsMjBoLTJ2LTJMMTUuNSwxMi41eiBNMTgsMTBsMiwybC0xLjUsMS41bC0yLTJMMTgsMTB6Ii8+CgkJCQk8L2c+CgkJCTwvZz4KCQk8L2c+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==) no-repeat;\\n background-position: right;\\n border-radius: 2px;\\n background-size: 30px 30px;\\n cursor: pointer;\\n}\\n\\n.toastui-editor-ww-code-block-language {\\n position: fixed;\\n display: inline-block;\\n width: 100px;\\n height: 27px;\\n right: 35px;\\n border: 1px solid #ccc;\\n border-radius: 2px;\\n background-color: #fff;\\n z-index: 30;\\n}\\n\\n.toastui-editor-ww-code-block-language input {\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0 10px;\\n height: 100%;\\n width: 100%;\\n background-color: transparent;\\n border: none;\\n outline: none;\\n}\\n\\n.toastui-editor-contents-placeholder::before {\\n content: attr(data-placeholder);\\n color: grey;\\n line-height: 160%;\\n position: absolute;\\n}\\n\\n.toastui-editor-md-preview .toastui-editor-contents h1 {\\n min-height: 28px;\\n}\\n\\n.toastui-editor-md-preview .toastui-editor-contents h2 {\\n min-height: 23px;\\n}\\n\\n.toastui-editor-md-preview .toastui-editor-contents blockquote {\\n min-height: 20px;\\n}\\n\\n.toastui-editor-md-preview .toastui-editor-contents li {\\n min-height: 22px;\\n}\\n\\n.toastui-editor-pseudo-clipboard {\\n position: fixed;\\n opacity: 0;\\n width: 0;\\n height: 0;\\n left: -1000px;\\n top: -1000px;\\n z-index: -1;\\n}\\n\\n.toastui-editor-contents .toastui-editor-md-preview-highlight {\\n position: relative;\\n z-index: 0;\\n}\\n\\n.toastui-editor-contents .toastui-editor-md-preview-highlight::after {\\n content: '';\\n background-color: rgba(255, 245, 131, 0.5);\\n border-radius: 4px;\\n z-index: -1;\\n position: absolute;\\n top: -4px;\\n right: -4px;\\n left: -4px;\\n bottom: -4px;\\n}\\n\\n.toastui-editor-contents h1.toastui-editor-md-preview-highlight::after,\\n.toastui-editor-contents h2.toastui-editor-md-preview-highlight::after {\\n bottom: 0;\\n}\\n\\n.toastui-editor-contents td.toastui-editor-md-preview-highlight::after,\\n.toastui-editor-contents th.toastui-editor-md-preview-highlight::after {\\n display: none;\\n}\\n\\n.toastui-editor-contents th.toastui-editor-md-preview-highlight,\\n.toastui-editor-contents td.toastui-editor-md-preview-highlight {\\n background-color: rgba(255, 245, 131, 0.5);\\n}\\n\\n.toastui-editor-contents th.toastui-editor-md-preview-highlight {\\n color: #222;\\n}\\n\\n.toastui-editor-md-heading1 {\\n font-size: 24px;\\n}\\n\\n.toastui-editor-md-heading2 {\\n font-size: 22px;\\n}\\n\\n.toastui-editor-md-heading3 {\\n font-size: 20px;\\n}\\n\\n.toastui-editor-md-heading4 {\\n font-size: 18px;\\n}\\n\\n.toastui-editor-md-heading5 {\\n font-size: 16px;\\n}\\n\\n.toastui-editor-md-heading6 {\\n font-size: 14px;\\n}\\n\\n.toastui-editor-md-heading.toastui-editor-md-delimiter.setext {\\n line-height: 15px;\\n}\\n\\n.toastui-editor-md-strong,\\n.toastui-editor-md-heading,\\n.toastui-editor-md-list-item-style,\\n.toastui-editor-md-list-item .toastui-editor-md-meta {\\n font-weight: bold;\\n}\\n\\n.toastui-editor-md-emph {\\n font-style: italic;\\n}\\n\\n.toastui-editor-md-strike {\\n text-decoration: line-through;\\n}\\n\\n.toastui-editor-md-strike.toastui-editor-md-delimiter {\\n text-decoration: none;\\n}\\n\\n.toastui-editor-md-delimiter,\\n.toastui-editor-md-thematic-break,\\n.toastui-editor-md-link,\\n.toastui-editor-md-table,\\n.toastui-editor-md-block-quote {\\n color: #ccc;\\n}\\n\\n.toastui-editor-md-code.toastui-editor-md-delimiter {\\n color: #aaa;\\n}\\n\\n.toastui-editor-md-meta,\\n.toastui-editor-md-html,\\n.toastui-editor-md-link.toastui-editor-md-link-url.toastui-editor-md-marked-text {\\n color: #999;\\n}\\n\\n.toastui-editor-md-block-quote .toastui-editor-md-marked-text,\\n.toastui-editor-md-list-item .toastui-editor-md-meta {\\n color: #555;\\n}\\n\\n.toastui-editor-md-table .toastui-editor-md-table-cell {\\n color: #222;\\n}\\n\\n.toastui-editor-md-link.toastui-editor-md-link-desc.toastui-editor-md-marked-text,\\n.toastui-editor-md-list-item-style.toastui-editor-md-list-item-odd {\\n color: #4b96e6;\\n}\\n\\n.toastui-editor-md-list-item-style.toastui-editor-md-list-item-even {\\n color: #cb4848;\\n}\\n\\n.toastui-editor-md-code.toastui-editor-md-marked-text {\\n color: #c1798b;\\n}\\n\\n.toastui-editor-md-code {\\n background-color: rgba(243, 229, 233, 0.5);\\n padding: 2px 0;\\n letter-spacing: -0.3px;\\n}\\n\\n.toastui-editor-md-code.toastui-editor-md-start {\\n padding-left: 2px;\\n border-top-left-radius: 2px;\\n border-bottom-left-radius: 2px;\\n}\\n\\n.toastui-editor-md-code.toastui-editor-md-end {\\n padding-right: 2px;\\n border-top-right-radius: 2px;\\n border-bottom-right-radius: 2px;\\n}\\n\\n.toastui-editor-md-code-block-line-background {\\n background-color: #f5f7f8;\\n}\\n\\n.toastui-editor-md-code-block-line-background.start,\\n.toastui-editor-md-custom-block-line-background.start {\\n margin-top: 2px;\\n}\\n\\n.toastui-editor-md-code,\\n.toastui-editor-md-code-block {\\n font-family: Consolas, Courier, 'Lucida Grande', '나눔바른고딕', 'Nanum Barun Gothic', '맑은고딕',\\n 'Malgun Gothic', sans-serif;\\n}\\n\\n.toastui-editor-md-custom-block {\\n color: #452d6b;\\n}\\n.toastui-editor-md-custom-block-line-background {\\n background-color: #f9f7fd;\\n}\\n.toastui-editor-md-custom-block .toastui-editor-md-delimiter {\\n color: #b8b3c0;\\n}\\n.toastui-editor-md-custom-block .toastui-editor-md-meta {\\n color: #5200d0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./node_modules/@toast-ui/editor/dist/toastui-editor.css?./node_modules/css-loader/dist/cjs.js??ref--7-oneOf-3-1!./node_modules/postcss-loader/src??ref--7-oneOf-3-2");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/codemirror/lib/codemirror.css":
/*!****************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--7-oneOf-3-1!./node_modules/postcss-loader/src??ref--7-oneOf-3-2!./node_modules/codemirror/lib/codemirror.css ***!
\****************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"/* BASICS */\\n\\n.CodeMirror {\\n /* Set height, width, borders, and global font properties here */\\n font-family: monospace;\\n height: 300px;\\n color: black;\\n direction: ltr;\\n}\\n\\n/* PADDING */\\n\\n.CodeMirror-lines {\\n padding: 4px 0; /* Vertical padding around content */\\n}\\n.CodeMirror pre.CodeMirror-line,\\n.CodeMirror pre.CodeMirror-line-like {\\n padding: 0 4px; /* Horizontal padding of content */\\n}\\n\\n.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\\n background-color: white; /* The little square between H and V scrollbars */\\n}\\n\\n/* GUTTER */\\n\\n.CodeMirror-gutters {\\n border-right: 1px solid #ddd;\\n background-color: #f7f7f7;\\n white-space: nowrap;\\n}\\n.CodeMirror-linenumbers {}\\n.CodeMirror-linenumber {\\n padding: 0 3px 0 5px;\\n min-width: 20px;\\n text-align: right;\\n color: #999;\\n white-space: nowrap;\\n}\\n\\n.CodeMirror-guttermarker { color: black; }\\n.CodeMirror-guttermarker-subtle { color: #999; }\\n\\n/* CURSOR */\\n\\n.CodeMirror-cursor {\\n border-left: 1px solid black;\\n border-right: none;\\n width: 0;\\n}\\n/* Shown when moving in bi-directional text */\\n.CodeMirror div.CodeMirror-secondarycursor {\\n border-left: 1px solid silver;\\n}\\n.cm-fat-cursor .CodeMirror-cursor {\\n width: auto;\\n border: 0 !important;\\n background: #7e7;\\n}\\n.cm-fat-cursor div.CodeMirror-cursors {\\n z-index: 1;\\n}\\n.cm-fat-cursor .CodeMirror-line::-moz-selection, .cm-fat-cursor .CodeMirror-line > span::-moz-selection, .cm-fat-cursor .CodeMirror-line > span > span::-moz-selection { background: transparent; }\\n.cm-fat-cursor .CodeMirror-line::selection,\\n.cm-fat-cursor .CodeMirror-line > span::selection, \\n.cm-fat-cursor .CodeMirror-line > span > span::selection { background: transparent; }\\n.cm-fat-cursor .CodeMirror-line::-moz-selection,\\n.cm-fat-cursor .CodeMirror-line > span::-moz-selection,\\n.cm-fat-cursor .CodeMirror-line > span > span::-moz-selection { background: transparent; }\\n.cm-fat-cursor { caret-color: transparent; }\\n@keyframes blink {\\n 0% {}\\n 50% { background-color: transparent; }\\n 100% {}\\n}\\n\\n/* Can style cursor different in overwrite (non-insert) mode */\\n.CodeMirror-overwrite .CodeMirror-cursor {}\\n\\n.cm-tab { display: inline-block; text-decoration: inherit; }\\n\\n.CodeMirror-rulers {\\n position: absolute;\\n left: 0; right: 0; top: -50px; bottom: 0;\\n overflow: hidden;\\n}\\n.CodeMirror-ruler {\\n border-left: 1px solid #ccc;\\n top: 0; bottom: 0;\\n position: absolute;\\n}\\n\\n/* DEFAULT THEME */\\n\\n.cm-s-default .cm-header {color: blue;}\\n.cm-s-default .cm-quote {color: #090;}\\n.cm-negative {color: #d44;}\\n.cm-positive {color: #292;}\\n.cm-header, .cm-strong {font-weight: bold;}\\n.cm-em {font-style: italic;}\\n.cm-link {text-decoration: underline;}\\n.cm-strikethrough {text-decoration: line-through;}\\n\\n.cm-s-default .cm-keyword {color: #708;}\\n.cm-s-default .cm-atom {color: #219;}\\n.cm-s-default .cm-number {color: #164;}\\n.cm-s-default .cm-def {color: #00f;}\\n.cm-s-default .cm-variable,\\n.cm-s-default .cm-punctuation,\\n.cm-s-default .cm-property,\\n.cm-s-default .cm-operator {}\\n.cm-s-default .cm-variable-2 {color: #05a;}\\n.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}\\n.cm-s-default .cm-comment {color: #a50;}\\n.cm-s-default .cm-string {color: #a11;}\\n.cm-s-default .cm-string-2 {color: #f50;}\\n.cm-s-default .cm-meta {color: #555;}\\n.cm-s-default .cm-qualifier {color: #555;}\\n.cm-s-default .cm-builtin {color: #30a;}\\n.cm-s-default .cm-bracket {color: #997;}\\n.cm-s-default .cm-tag {color: #170;}\\n.cm-s-default .cm-attribute {color: #00c;}\\n.cm-s-default .cm-hr {color: #999;}\\n.cm-s-default .cm-link {color: #00c;}\\n\\n.cm-s-default .cm-error {color: #f00;}\\n.cm-invalidchar {color: #f00;}\\n\\n.CodeMirror-composing { border-bottom: 2px solid; }\\n\\n/* Default styles for common addons */\\n\\ndiv.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}\\ndiv.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}\\n.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }\\n.CodeMirror-activeline-background {background: #e8f2ff;}\\n\\n/* STOP */\\n\\n/* The rest of this file contains styles related to the mechanics of\\n the editor. You probably shouldn't touch them. */\\n\\n.CodeMirror {\\n position: relative;\\n overflow: hidden;\\n background: white;\\n}\\n\\n.CodeMirror-scroll {\\n overflow: scroll !important; /* Things will break if this is overridden */\\n /* 50px is the magic margin used to hide the element's real scrollbars */\\n /* See overflow: hidden in .CodeMirror */\\n margin-bottom: -50px; margin-right: -50px;\\n padding-bottom: 50px;\\n height: 100%;\\n outline: none; /* Prevent dragging from highlighting the element */\\n position: relative;\\n z-index: 0;\\n}\\n.CodeMirror-sizer {\\n position: relative;\\n border-right: 50px solid transparent;\\n}\\n\\n/* The fake, visible scrollbars. Used to force redraw during scrolling\\n before actual scrolling happens, thus preventing shaking and\\n flickering artifacts. */\\n.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\\n position: absolute;\\n z-index: 6;\\n display: none;\\n outline: none;\\n}\\n.CodeMirror-vscrollbar {\\n right: 0; top: 0;\\n overflow-x: hidden;\\n overflow-y: scroll;\\n}\\n.CodeMirror-hscrollbar {\\n bottom: 0; left: 0;\\n overflow-y: hidden;\\n overflow-x: scroll;\\n}\\n.CodeMirror-scrollbar-filler {\\n right: 0; bottom: 0;\\n}\\n.CodeMirror-gutter-filler {\\n left: 0; bottom: 0;\\n}\\n\\n.CodeMirror-gutters {\\n position: absolute; left: 0; top: 0;\\n min-height: 100%;\\n z-index: 3;\\n}\\n.CodeMirror-gutter {\\n white-space: normal;\\n height: 100%;\\n display: inline-block;\\n vertical-align: top;\\n margin-bottom: -50px;\\n}\\n.CodeMirror-gutter-wrapper {\\n position: absolute;\\n z-index: 4;\\n background: none !important;\\n border: none !important;\\n}\\n.CodeMirror-gutter-background {\\n position: absolute;\\n top: 0; bottom: 0;\\n z-index: 4;\\n}\\n.CodeMirror-gutter-elt {\\n position: absolute;\\n cursor: default;\\n z-index: 4;\\n}\\n.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }\\n.CodeMirror-gutter-wrapper ::selection { background-color: transparent }\\n.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }\\n\\n.CodeMirror-lines {\\n cursor: text;\\n min-height: 1px; /* prevents collapsing before first draw */\\n}\\n.CodeMirror pre.CodeMirror-line,\\n.CodeMirror pre.CodeMirror-line-like {\\n /* Reset some styles that the rest of the page might have set */ border-radius: 0;\\n border-width: 0;\\n background: transparent;\\n font-family: inherit;\\n font-size: inherit;\\n margin: 0;\\n white-space: pre;\\n word-wrap: normal;\\n line-height: inherit;\\n color: inherit;\\n z-index: 2;\\n position: relative;\\n overflow: visible;\\n -webkit-tap-highlight-color: transparent;\\n font-variant-ligatures: contextual;\\n}\\n.CodeMirror-wrap pre.CodeMirror-line,\\n.CodeMirror-wrap pre.CodeMirror-line-like {\\n word-wrap: break-word;\\n white-space: pre-wrap;\\n word-break: normal;\\n}\\n\\n.CodeMirror-linebackground {\\n position: absolute;\\n left: 0; right: 0; top: 0; bottom: 0;\\n z-index: 0;\\n}\\n\\n.CodeMirror-linewidget {\\n position: relative;\\n z-index: 2;\\n padding: 0.1px; /* Force widget margins to stay inside of the container */\\n}\\n\\n.CodeMirror-widget {}\\n\\n.CodeMirror-rtl pre { direction: rtl; }\\n\\n.CodeMirror-code {\\n outline: none;\\n}\\n\\n/* Force content-box sizing for the elements where we expect it */\\n.CodeMirror-scroll,\\n.CodeMirror-sizer,\\n.CodeMirror-gutter,\\n.CodeMirror-gutters,\\n.CodeMirror-linenumber {\\n box-sizing: content-box;\\n}\\n\\n.CodeMirror-measure {\\n position: absolute;\\n width: 100%;\\n height: 0;\\n overflow: hidden;\\n visibility: hidden;\\n}\\n\\n.CodeMirror-cursor {\\n position: absolute;\\n pointer-events: none;\\n}\\n.CodeMirror-measure pre { position: static; }\\n\\ndiv.CodeMirror-cursors {\\n visibility: hidden;\\n position: relative;\\n z-index: 3;\\n}\\ndiv.CodeMirror-dragcursors {\\n visibility: visible;\\n}\\n\\n.CodeMirror-focused div.CodeMirror-cursors {\\n visibility: visible;\\n}\\n\\n.CodeMirror-selected { background: #d9d9d9; }\\n.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }\\n.CodeMirror-crosshair { cursor: crosshair; }\\n.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }\\n.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }\\n.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }\\n\\n.cm-searching {\\n background-color: #ffa;\\n background-color: rgba(255, 255, 0, .4);\\n}\\n\\n/* Used to force a border model for a node */\\n.cm-force-border { padding-right: .1px; }\\n\\n@media print {\\n /* Hide the cursor when printing */\\n .CodeMirror div.CodeMirror-cursors {\\n visibility: hidden;\\n }\\n}\\n\\n/* See issue #2901 */\\n.cm-tab-wrap-hack:after { content: ''; }\\n\\n/* Help users use markselection to safely style text background */\\nspan.CodeMirror-selectedtext { background: none; }\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./node_modules/codemirror/lib/codemirror.css?./node_modules/css-loader/dist/cjs.js??ref--7-oneOf-3-1!./node_modules/postcss-loader/src??ref--7-oneOf-3-2");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/quill/dist/quill.snow.css":
/*!************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--7-oneOf-3-1!./node_modules/postcss-loader/src??ref--7-oneOf-3-2!./node_modules/quill/dist/quill.snow.css ***!
\************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"/*!\\n * Quill Editor v1.3.7\\n * https://quilljs.com/\\n * Copyright (c) 2014, Jason Chen\\n * Copyright (c) 2013, salesforce.com\\n */\\n.ql-container {\\n box-sizing: border-box;\\n font-family: Helvetica, Arial, sans-serif;\\n font-size: 13px;\\n height: 100%;\\n margin: 0px;\\n position: relative;\\n}\\n.ql-container.ql-disabled .ql-tooltip {\\n visibility: hidden;\\n}\\n.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {\\n pointer-events: none;\\n}\\n.ql-clipboard {\\n left: -100000px;\\n height: 1px;\\n overflow-y: hidden;\\n position: absolute;\\n top: 50%;\\n}\\n.ql-clipboard p {\\n margin: 0;\\n padding: 0;\\n}\\n.ql-editor {\\n box-sizing: border-box;\\n line-height: 1.42;\\n height: 100%;\\n outline: none;\\n overflow-y: auto;\\n padding: 12px 15px;\\n -o-tab-size: 4;\\n tab-size: 4;\\n -moz-tab-size: 4;\\n text-align: left;\\n white-space: pre-wrap;\\n word-wrap: break-word;\\n}\\n.ql-editor > * {\\n cursor: text;\\n}\\n.ql-editor p,\\n.ql-editor ol,\\n.ql-editor ul,\\n.ql-editor pre,\\n.ql-editor blockquote,\\n.ql-editor h1,\\n.ql-editor h2,\\n.ql-editor h3,\\n.ql-editor h4,\\n.ql-editor h5,\\n.ql-editor h6 {\\n margin: 0;\\n padding: 0;\\n counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\\n}\\n.ql-editor ol,\\n.ql-editor ul {\\n padding-left: 1.5em;\\n}\\n.ql-editor ol > li,\\n.ql-editor ul > li {\\n list-style-type: none;\\n}\\n.ql-editor ul > li::before {\\n content: '\\\\2022';\\n}\\n.ql-editor ul[data-checked=true],\\n.ql-editor ul[data-checked=false] {\\n pointer-events: none;\\n}\\n.ql-editor ul[data-checked=true] > li *,\\n.ql-editor ul[data-checked=false] > li * {\\n pointer-events: all;\\n}\\n.ql-editor ul[data-checked=true] > li::before,\\n.ql-editor ul[data-checked=false] > li::before {\\n color: #777;\\n cursor: pointer;\\n pointer-events: all;\\n}\\n.ql-editor ul[data-checked=true] > li::before {\\n content: '\\\\2611';\\n}\\n.ql-editor ul[data-checked=false] > li::before {\\n content: '\\\\2610';\\n}\\n.ql-editor li::before {\\n display: inline-block;\\n white-space: nowrap;\\n width: 1.2em;\\n}\\n.ql-editor li:not(.ql-direction-rtl)::before {\\n margin-left: -1.5em;\\n margin-right: 0.3em;\\n text-align: right;\\n}\\n.ql-editor li.ql-direction-rtl::before {\\n margin-left: 0.3em;\\n margin-right: -1.5em;\\n}\\n.ql-editor ol li:not(.ql-direction-rtl),\\n.ql-editor ul li:not(.ql-direction-rtl) {\\n padding-left: 1.5em;\\n}\\n.ql-editor ol li.ql-direction-rtl,\\n.ql-editor ul li.ql-direction-rtl {\\n padding-right: 1.5em;\\n}\\n.ql-editor ol li {\\n counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\\n counter-increment: list-0;\\n}\\n.ql-editor ol li:before {\\n content: counter(list-0, decimal) '. ';\\n}\\n.ql-editor ol li.ql-indent-1 {\\n counter-increment: list-1;\\n}\\n.ql-editor ol li.ql-indent-1:before {\\n content: counter(list-1, lower-alpha) '. ';\\n}\\n.ql-editor ol li.ql-indent-1 {\\n counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\\n}\\n.ql-editor ol li.ql-indent-2 {\\n counter-increment: list-2;\\n}\\n.ql-editor ol li.ql-indent-2:before {\\n content: counter(list-2, lower-roman) '. ';\\n}\\n.ql-editor ol li.ql-indent-2 {\\n counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;\\n}\\n.ql-editor ol li.ql-indent-3 {\\n counter-increment: list-3;\\n}\\n.ql-editor ol li.ql-indent-3:before {\\n content: counter(list-3, decimal) '. ';\\n}\\n.ql-editor ol li.ql-indent-3 {\\n counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;\\n}\\n.ql-editor ol li.ql-indent-4 {\\n counter-increment: list-4;\\n}\\n.ql-editor ol li.ql-indent-4:before {\\n content: counter(list-4, lower-alpha) '. ';\\n}\\n.ql-editor ol li.ql-indent-4 {\\n counter-reset: list-5 list-6 list-7 list-8 list-9;\\n}\\n.ql-editor ol li.ql-indent-5 {\\n counter-increment: list-5;\\n}\\n.ql-editor ol li.ql-indent-5:before {\\n content: counter(list-5, lower-roman) '. ';\\n}\\n.ql-editor ol li.ql-indent-5 {\\n counter-reset: list-6 list-7 list-8 list-9;\\n}\\n.ql-editor ol li.ql-indent-6 {\\n counter-increment: list-6;\\n}\\n.ql-editor ol li.ql-indent-6:before {\\n content: counter(list-6, decimal) '. ';\\n}\\n.ql-editor ol li.ql-indent-6 {\\n counter-reset: list-7 list-8 list-9;\\n}\\n.ql-editor ol li.ql-indent-7 {\\n counter-increment: list-7;\\n}\\n.ql-editor ol li.ql-indent-7:before {\\n content: counter(list-7, lower-alpha) '. ';\\n}\\n.ql-editor ol li.ql-indent-7 {\\n counter-reset: list-8 list-9;\\n}\\n.ql-editor ol li.ql-indent-8 {\\n counter-increment: list-8;\\n}\\n.ql-editor ol li.ql-indent-8:before {\\n content: counter(list-8, lower-roman) '. ';\\n}\\n.ql-editor ol li.ql-indent-8 {\\n counter-reset: list-9;\\n}\\n.ql-editor ol li.ql-indent-9 {\\n counter-increment: list-9;\\n}\\n.ql-editor ol li.ql-indent-9:before {\\n content: counter(list-9, decimal) '. ';\\n}\\n.ql-editor .ql-indent-1:not(.ql-direction-rtl) {\\n padding-left: 3em;\\n}\\n.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {\\n padding-left: 4.5em;\\n}\\n.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {\\n padding-right: 3em;\\n}\\n.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {\\n padding-right: 4.5em;\\n}\\n.ql-editor .ql-indent-2:not(.ql-direction-rtl) {\\n padding-left: 6em;\\n}\\n.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {\\n padding-left: 7.5em;\\n}\\n.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {\\n padding-right: 6em;\\n}\\n.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {\\n padding-right: 7.5em;\\n}\\n.ql-editor .ql-indent-3:not(.ql-direction-rtl) {\\n padding-left: 9em;\\n}\\n.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {\\n padding-left: 10.5em;\\n}\\n.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {\\n padding-right: 9em;\\n}\\n.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {\\n padding-right: 10.5em;\\n}\\n.ql-editor .ql-indent-4:not(.ql-direction-rtl) {\\n padding-left: 12em;\\n}\\n.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {\\n padding-left: 13.5em;\\n}\\n.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {\\n padding-right: 12em;\\n}\\n.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {\\n padding-right: 13.5em;\\n}\\n.ql-editor .ql-indent-5:not(.ql-direction-rtl) {\\n padding-left: 15em;\\n}\\n.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {\\n padding-left: 16.5em;\\n}\\n.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {\\n padding-right: 15em;\\n}\\n.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {\\n padding-right: 16.5em;\\n}\\n.ql-editor .ql-indent-6:not(.ql-direction-rtl) {\\n padding-left: 18em;\\n}\\n.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {\\n padding-left: 19.5em;\\n}\\n.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {\\n padding-right: 18em;\\n}\\n.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {\\n padding-right: 19.5em;\\n}\\n.ql-editor .ql-indent-7:not(.ql-direction-rtl) {\\n padding-left: 21em;\\n}\\n.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {\\n padding-left: 22.5em;\\n}\\n.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {\\n padding-right: 21em;\\n}\\n.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {\\n padding-right: 22.5em;\\n}\\n.ql-editor .ql-indent-8:not(.ql-direction-rtl) {\\n padding-left: 24em;\\n}\\n.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {\\n padding-left: 25.5em;\\n}\\n.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {\\n padding-right: 24em;\\n}\\n.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {\\n padding-right: 25.5em;\\n}\\n.ql-editor .ql-indent-9:not(.ql-direction-rtl) {\\n padding-left: 27em;\\n}\\n.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {\\n padding-left: 28.5em;\\n}\\n.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {\\n padding-right: 27em;\\n}\\n.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {\\n padding-right: 28.5em;\\n}\\n.ql-editor .ql-video {\\n display: block;\\n max-width: 100%;\\n}\\n.ql-editor .ql-video.ql-align-center {\\n margin: 0 auto;\\n}\\n.ql-editor .ql-video.ql-align-right {\\n margin: 0 0 0 auto;\\n}\\n.ql-editor .ql-bg-black {\\n background-color: #000;\\n}\\n.ql-editor .ql-bg-red {\\n background-color: #e60000;\\n}\\n.ql-editor .ql-bg-orange {\\n background-color: #f90;\\n}\\n.ql-editor .ql-bg-yellow {\\n background-color: #ff0;\\n}\\n.ql-editor .ql-bg-green {\\n background-color: #008a00;\\n}\\n.ql-editor .ql-bg-blue {\\n background-color: #06c;\\n}\\n.ql-editor .ql-bg-purple {\\n background-color: #93f;\\n}\\n.ql-editor .ql-color-white {\\n color: #fff;\\n}\\n.ql-editor .ql-color-red {\\n color: #e60000;\\n}\\n.ql-editor .ql-color-orange {\\n color: #f90;\\n}\\n.ql-editor .ql-color-yellow {\\n color: #ff0;\\n}\\n.ql-editor .ql-color-green {\\n color: #008a00;\\n}\\n.ql-editor .ql-color-blue {\\n color: #06c;\\n}\\n.ql-editor .ql-color-purple {\\n color: #93f;\\n}\\n.ql-editor .ql-font-serif {\\n font-family: Georgia, Times New Roman, serif;\\n}\\n.ql-editor .ql-font-monospace {\\n font-family: Monaco, Courier New, monospace;\\n}\\n.ql-editor .ql-size-small {\\n font-size: 0.75em;\\n}\\n.ql-editor .ql-size-large {\\n font-size: 1.5em;\\n}\\n.ql-editor .ql-size-huge {\\n font-size: 2.5em;\\n}\\n.ql-editor .ql-direction-rtl {\\n direction: rtl;\\n text-align: inherit;\\n}\\n.ql-editor .ql-align-center {\\n text-align: center;\\n}\\n.ql-editor .ql-align-justify {\\n text-align: justify;\\n}\\n.ql-editor .ql-align-right {\\n text-align: right;\\n}\\n.ql-editor.ql-blank::before {\\n color: rgba(0,0,0,0.6);\\n content: attr(data-placeholder);\\n font-style: italic;\\n left: 15px;\\n pointer-events: none;\\n position: absolute;\\n right: 15px;\\n}\\n.ql-snow.ql-toolbar:after,\\n.ql-snow .ql-toolbar:after {\\n clear: both;\\n content: '';\\n display: table;\\n}\\n.ql-snow.ql-toolbar button,\\n.ql-snow .ql-toolbar button {\\n background: none;\\n border: none;\\n cursor: pointer;\\n display: inline-block;\\n float: left;\\n height: 24px;\\n padding: 3px 5px;\\n width: 28px;\\n}\\n.ql-snow.ql-toolbar button svg,\\n.ql-snow .ql-toolbar button svg {\\n float: left;\\n height: 100%;\\n}\\n.ql-snow.ql-toolbar button:active:hover,\\n.ql-snow .ql-toolbar button:active:hover {\\n outline: none;\\n}\\n.ql-snow.ql-toolbar input.ql-image[type=file],\\n.ql-snow .ql-toolbar input.ql-image[type=file] {\\n display: none;\\n}\\n.ql-snow.ql-toolbar button:hover,\\n.ql-snow .ql-toolbar button:hover,\\n.ql-snow.ql-toolbar button:focus,\\n.ql-snow .ql-toolbar button:focus,\\n.ql-snow.ql-toolbar button.ql-active,\\n.ql-snow .ql-toolbar button.ql-active,\\n.ql-snow.ql-toolbar .ql-picker-label:hover,\\n.ql-snow .ql-toolbar .ql-picker-label:hover,\\n.ql-snow.ql-toolbar .ql-picker-label.ql-active,\\n.ql-snow .ql-toolbar .ql-picker-label.ql-active,\\n.ql-snow.ql-toolbar .ql-picker-item:hover,\\n.ql-snow .ql-toolbar .ql-picker-item:hover,\\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected,\\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected {\\n color: #06c;\\n}\\n.ql-snow.ql-toolbar button:hover .ql-fill,\\n.ql-snow .ql-toolbar button:hover .ql-fill,\\n.ql-snow.ql-toolbar button:focus .ql-fill,\\n.ql-snow .ql-toolbar button:focus .ql-fill,\\n.ql-snow.ql-toolbar button.ql-active .ql-fill,\\n.ql-snow .ql-toolbar button.ql-active .ql-fill,\\n.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,\\n.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,\\n.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,\\n.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,\\n.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,\\n.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,\\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,\\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,\\n.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,\\n.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,\\n.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,\\n.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,\\n.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,\\n.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,\\n.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,\\n.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,\\n.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,\\n.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,\\n.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,\\n.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,\\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,\\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {\\n fill: #06c;\\n}\\n.ql-snow.ql-toolbar button:hover .ql-stroke,\\n.ql-snow .ql-toolbar button:hover .ql-stroke,\\n.ql-snow.ql-toolbar button:focus .ql-stroke,\\n.ql-snow .ql-toolbar button:focus .ql-stroke,\\n.ql-snow.ql-toolbar button.ql-active .ql-stroke,\\n.ql-snow .ql-toolbar button.ql-active .ql-stroke,\\n.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,\\n.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,\\n.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,\\n.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,\\n.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,\\n.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,\\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,\\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,\\n.ql-snow.ql-toolbar button:hover .ql-stroke-miter,\\n.ql-snow .ql-toolbar button:hover .ql-stroke-miter,\\n.ql-snow.ql-toolbar button:focus .ql-stroke-miter,\\n.ql-snow .ql-toolbar button:focus .ql-stroke-miter,\\n.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,\\n.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,\\n.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,\\n.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,\\n.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,\\n.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,\\n.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,\\n.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,\\n.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,\\n.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {\\n stroke: #06c;\\n}\\n@media (pointer: coarse) {\\n .ql-snow.ql-toolbar button:hover:not(.ql-active),\\n .ql-snow .ql-toolbar button:hover:not(.ql-active) {\\n color: #444;\\n }\\n .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,\\n .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,\\n .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,\\n .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {\\n fill: #444;\\n }\\n .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,\\n .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,\\n .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,\\n .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {\\n stroke: #444;\\n }\\n}\\n.ql-snow {\\n box-sizing: border-box;\\n}\\n.ql-snow * {\\n box-sizing: border-box;\\n}\\n.ql-snow .ql-hidden {\\n display: none;\\n}\\n.ql-snow .ql-out-bottom,\\n.ql-snow .ql-out-top {\\n visibility: hidden;\\n}\\n.ql-snow .ql-tooltip {\\n position: absolute;\\n transform: translateY(10px);\\n}\\n.ql-snow .ql-tooltip a {\\n cursor: pointer;\\n text-decoration: none;\\n}\\n.ql-snow .ql-tooltip.ql-flip {\\n transform: translateY(-10px);\\n}\\n.ql-snow .ql-formats {\\n display: inline-block;\\n vertical-align: middle;\\n}\\n.ql-snow .ql-formats:after {\\n clear: both;\\n content: '';\\n display: table;\\n}\\n.ql-snow .ql-stroke {\\n fill: none;\\n stroke: #444;\\n stroke-linecap: round;\\n stroke-linejoin: round;\\n stroke-width: 2;\\n}\\n.ql-snow .ql-stroke-miter {\\n fill: none;\\n stroke: #444;\\n stroke-miterlimit: 10;\\n stroke-width: 2;\\n}\\n.ql-snow .ql-fill,\\n.ql-snow .ql-stroke.ql-fill {\\n fill: #444;\\n}\\n.ql-snow .ql-empty {\\n fill: none;\\n}\\n.ql-snow .ql-even {\\n fill-rule: evenodd;\\n}\\n.ql-snow .ql-thin,\\n.ql-snow .ql-stroke.ql-thin {\\n stroke-width: 1;\\n}\\n.ql-snow .ql-transparent {\\n opacity: 0.4;\\n}\\n.ql-snow .ql-direction svg:last-child {\\n display: none;\\n}\\n.ql-snow .ql-direction.ql-active svg:last-child {\\n display: inline;\\n}\\n.ql-snow .ql-direction.ql-active svg:first-child {\\n display: none;\\n}\\n.ql-snow .ql-editor h1 {\\n font-size: 2em;\\n}\\n.ql-snow .ql-editor h2 {\\n font-size: 1.5em;\\n}\\n.ql-snow .ql-editor h3 {\\n font-size: 1.17em;\\n}\\n.ql-snow .ql-editor h4 {\\n font-size: 1em;\\n}\\n.ql-snow .ql-editor h5 {\\n font-size: 0.83em;\\n}\\n.ql-snow .ql-editor h6 {\\n font-size: 0.67em;\\n}\\n.ql-snow .ql-editor a {\\n text-decoration: underline;\\n}\\n.ql-snow .ql-editor blockquote {\\n border-left: 4px solid #ccc;\\n margin-bottom: 5px;\\n margin-top: 5px;\\n padding-left: 16px;\\n}\\n.ql-snow .ql-editor code,\\n.ql-snow .ql-editor pre {\\n background-color: #f0f0f0;\\n border-radius: 3px;\\n}\\n.ql-snow .ql-editor pre {\\n white-space: pre-wrap;\\n margin-bottom: 5px;\\n margin-top: 5px;\\n padding: 5px 10px;\\n}\\n.ql-snow .ql-editor code {\\n font-size: 85%;\\n padding: 2px 4px;\\n}\\n.ql-snow .ql-editor pre.ql-syntax {\\n background-color: #23241f;\\n color: #f8f8f2;\\n overflow: visible;\\n}\\n.ql-snow .ql-editor img {\\n max-width: 100%;\\n}\\n.ql-snow .ql-picker {\\n color: #444;\\n display: inline-block;\\n float: left;\\n font-size: 14px;\\n font-weight: 500;\\n height: 24px;\\n position: relative;\\n vertical-align: middle;\\n}\\n.ql-snow .ql-picker-label {\\n cursor: pointer;\\n display: inline-block;\\n height: 100%;\\n padding-left: 8px;\\n padding-right: 2px;\\n position: relative;\\n width: 100%;\\n}\\n.ql-snow .ql-picker-label::before {\\n display: inline-block;\\n line-height: 22px;\\n}\\n.ql-snow .ql-picker-options {\\n background-color: #fff;\\n display: none;\\n min-width: 100%;\\n padding: 4px 8px;\\n position: absolute;\\n white-space: nowrap;\\n}\\n.ql-snow .ql-picker-options .ql-picker-item {\\n cursor: pointer;\\n display: block;\\n padding-bottom: 5px;\\n padding-top: 5px;\\n}\\n.ql-snow .ql-picker.ql-expanded .ql-picker-label {\\n color: #ccc;\\n z-index: 2;\\n}\\n.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill {\\n fill: #ccc;\\n}\\n.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke {\\n stroke: #ccc;\\n}\\n.ql-snow .ql-picker.ql-expanded .ql-picker-options {\\n display: block;\\n margin-top: -1px;\\n top: 100%;\\n z-index: 1;\\n}\\n.ql-snow .ql-color-picker,\\n.ql-snow .ql-icon-picker {\\n width: 28px;\\n}\\n.ql-snow .ql-color-picker .ql-picker-label,\\n.ql-snow .ql-icon-picker .ql-picker-label {\\n padding: 2px 4px;\\n}\\n.ql-snow .ql-color-picker .ql-picker-label svg,\\n.ql-snow .ql-icon-picker .ql-picker-label svg {\\n right: 4px;\\n}\\n.ql-snow .ql-icon-picker .ql-picker-options {\\n padding: 4px 0px;\\n}\\n.ql-snow .ql-icon-picker .ql-picker-item {\\n height: 24px;\\n width: 24px;\\n padding: 2px 4px;\\n}\\n.ql-snow .ql-color-picker .ql-picker-options {\\n padding: 3px 5px;\\n width: 152px;\\n}\\n.ql-snow .ql-color-picker .ql-picker-item {\\n border: 1px solid transparent;\\n float: left;\\n height: 16px;\\n margin: 2px;\\n padding: 0px;\\n width: 16px;\\n}\\n.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {\\n position: absolute;\\n margin-top: -9px;\\n right: 0;\\n top: 50%;\\n width: 18px;\\n}\\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,\\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,\\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,\\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {\\n content: attr(data-label);\\n}\\n.ql-snow .ql-picker.ql-header {\\n width: 98px;\\n}\\n.ql-snow .ql-picker.ql-header .ql-picker-label::before,\\n.ql-snow .ql-picker.ql-header .ql-picker-item::before {\\n content: 'Normal';\\n}\\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"1\\\"]::before,\\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"1\\\"]::before {\\n content: 'Heading 1';\\n}\\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"2\\\"]::before,\\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"2\\\"]::before {\\n content: 'Heading 2';\\n}\\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"3\\\"]::before,\\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"3\\\"]::before {\\n content: 'Heading 3';\\n}\\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"4\\\"]::before,\\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"4\\\"]::before {\\n content: 'Heading 4';\\n}\\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"5\\\"]::before,\\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"5\\\"]::before {\\n content: 'Heading 5';\\n}\\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"6\\\"]::before,\\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"6\\\"]::before {\\n content: 'Heading 6';\\n}\\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"1\\\"]::before {\\n font-size: 2em;\\n}\\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"2\\\"]::before {\\n font-size: 1.5em;\\n}\\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"3\\\"]::before {\\n font-size: 1.17em;\\n}\\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"4\\\"]::before {\\n font-size: 1em;\\n}\\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"5\\\"]::before {\\n font-size: 0.83em;\\n}\\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"6\\\"]::before {\\n font-size: 0.67em;\\n}\\n.ql-snow .ql-picker.ql-font {\\n width: 108px;\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-label::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item::before {\\n content: 'Sans Serif';\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {\\n content: 'Serif';\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {\\n content: 'Monospace';\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {\\n font-family: Georgia, Times New Roman, serif;\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {\\n font-family: Monaco, Courier New, monospace;\\n}\\n.ql-snow .ql-picker.ql-size {\\n width: 98px;\\n}\\n.ql-snow .ql-picker.ql-size .ql-picker-label::before,\\n.ql-snow .ql-picker.ql-size .ql-picker-item::before {\\n content: 'Normal';\\n}\\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before,\\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {\\n content: 'Small';\\n}\\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before,\\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {\\n content: 'Large';\\n}\\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,\\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {\\n content: 'Huge';\\n}\\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {\\n font-size: 10px;\\n}\\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {\\n font-size: 18px;\\n}\\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {\\n font-size: 32px;\\n}\\n.ql-snow .ql-color-picker.ql-background .ql-picker-item {\\n background-color: #fff;\\n}\\n.ql-snow .ql-color-picker.ql-color .ql-picker-item {\\n background-color: #000;\\n}\\n.ql-toolbar.ql-snow {\\n border: 1px solid #ccc;\\n box-sizing: border-box;\\n font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;\\n padding: 8px;\\n}\\n.ql-toolbar.ql-snow .ql-formats {\\n margin-right: 15px;\\n}\\n.ql-toolbar.ql-snow .ql-picker-label {\\n border: 1px solid transparent;\\n}\\n.ql-toolbar.ql-snow .ql-picker-options {\\n border: 1px solid transparent;\\n box-shadow: rgba(0,0,0,0.2) 0 2px 8px;\\n}\\n.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label {\\n border-color: #ccc;\\n}\\n.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {\\n border-color: #ccc;\\n}\\n.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,\\n.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover {\\n border-color: #000;\\n}\\n.ql-toolbar.ql-snow + .ql-container.ql-snow {\\n border-top: 0px;\\n}\\n.ql-snow .ql-tooltip {\\n background-color: #fff;\\n border: 1px solid #ccc;\\n box-shadow: 0px 0px 5px #ddd;\\n color: #444;\\n padding: 5px 12px;\\n white-space: nowrap;\\n}\\n.ql-snow .ql-tooltip::before {\\n content: \\\"Visit URL:\\\";\\n line-height: 26px;\\n margin-right: 8px;\\n}\\n.ql-snow .ql-tooltip input[type=text] {\\n display: none;\\n border: 1px solid #ccc;\\n font-size: 13px;\\n height: 26px;\\n margin: 0px;\\n padding: 3px 5px;\\n width: 170px;\\n}\\n.ql-snow .ql-tooltip a.ql-preview {\\n display: inline-block;\\n max-width: 200px;\\n overflow-x: hidden;\\n text-overflow: ellipsis;\\n vertical-align: top;\\n}\\n.ql-snow .ql-tooltip a.ql-action::after {\\n border-right: 1px solid #ccc;\\n content: 'Edit';\\n margin-left: 16px;\\n padding-right: 8px;\\n}\\n.ql-snow .ql-tooltip a.ql-remove::before {\\n content: 'Remove';\\n margin-left: 8px;\\n}\\n.ql-snow .ql-tooltip a {\\n line-height: 26px;\\n}\\n.ql-snow .ql-tooltip.ql-editing a.ql-preview,\\n.ql-snow .ql-tooltip.ql-editing a.ql-remove {\\n display: none;\\n}\\n.ql-snow .ql-tooltip.ql-editing input[type=text] {\\n display: inline-block;\\n}\\n.ql-snow .ql-tooltip.ql-editing a.ql-action::after {\\n border-right: 0px;\\n content: 'Save';\\n padding-right: 0px;\\n}\\n.ql-snow .ql-tooltip[data-mode=link]::before {\\n content: \\\"Enter link:\\\";\\n}\\n.ql-snow .ql-tooltip[data-mode=formula]::before {\\n content: \\\"Enter formula:\\\";\\n}\\n.ql-snow .ql-tooltip[data-mode=video]::before {\\n content: \\\"Enter video:\\\";\\n}\\n.ql-snow a {\\n color: #06c;\\n}\\n.ql-container.ql-snow {\\n border: 1px solid #ccc;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./node_modules/quill/dist/quill.snow.css?./node_modules/css-loader/dist/cjs.js??ref--7-oneOf-3-1!./node_modules/postcss-loader/src??ref--7-oneOf-3-2");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/ImgUpload/index.vue?vue&type=style&index=0&id=1ee0b527&lang=less&scoped=true":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ImgUpload/index.vue?vue&type=style&index=0&id=1ee0b527&lang=less&scoped=true ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".imgUploadContainer[data-v-1ee0b527] {\\n width: 100%;\\n height: 100%;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n background-color: rgba(255, 255, 255, 0.9);\\n z-index: 1000;\\n}\\n.imgUploadContainer .imgUploadPanel[data-v-1ee0b527] {\\n position: relative;\\n width: 100%;\\n font-size: 22px;\\n white-space: nowrap;\\n color: #909090;\\n cursor: default;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n}\\n.imgUploadContainer .imgUploadPanel .title[data-v-1ee0b527] {\\n margin-bottom: 15px;\\n font-size: 22px;\\n font-weight: 700;\\n color: hsla(218, 9%, 51%, 0.8);\\n}\\n.imgUploadContainer .imgUploadPanel .closeBtn[data-v-1ee0b527] {\\n position: absolute;\\n right: 25px;\\n top: 32px;\\n cursor: pointer;\\n}\\n.imgUploadContainer .imgUploadPanel .imgUploadInputArea[data-v-1ee0b527] {\\n display: block;\\n width: 100%;\\n height: 200px;\\n font-size: 20px;\\n color: rgba(51, 51, 51, 0.4);\\n background-color: hsla(0, 0%, 87%, 0.6);\\n border: none;\\n outline: none;\\n cursor: pointer;\\n text-align: center;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n white-space: normal;\\n padding: 10px;\\n}\\n.imgUploadContainer .imgUploadPanel #imgUploadInput[data-v-1ee0b527] {\\n display: none;\\n}\\n.imgUploadContainer .imgUploadPanel .uploadInfoBox[data-v-1ee0b527] {\\n position: relative;\\n width: 100%;\\n height: 200px;\\n background-color: hsla(0, 0%, 87%, 0.6);\\n}\\n.imgUploadContainer .imgUploadPanel .uploadInfoBox .previewBox[data-v-1ee0b527] {\\n width: 100%;\\n height: 100%;\\n background-size: contain;\\n background-repeat: no-repeat;\\n background-position: center;\\n}\\n.imgUploadContainer .imgUploadPanel .uploadInfoBox .delBtn[data-v-1ee0b527] {\\n position: absolute;\\n right: 0px;\\n top: 0px;\\n cursor: pointer;\\n width: 20px;\\n height: 20px;\\n background-color: #fff;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/ImgUpload/index.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/Index.vue?vue&type=style&index=0&id=4c868391&lang=less":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/Index.vue?vue&type=style&index=0&id=4c868391&lang=less ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".kmind-overlay {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n z-index: 9999;\\n cursor: pointer;\\n transition: all 0.3s;\\n}\\n.kmind-overlay .kmind-lockStatus {\\n position: fixed;\\n top: 0;\\n left: 0;\\n margin: 5px;\\n color: rgba(255, 255, 255, 0.1);\\n font-size: 1rem;\\n z-index: 9999;\\n mix-blend-mode: difference;\\n transition: all 0.3s;\\n}\\n.kmind-overlay:hover {\\n background-color: rgba(165, 165, 165, 0.3);\\n}\\n.kmind-overlay:hover .kmind-lockStatus {\\n color: rgba(255, 255, 255, 0.9);\\n}\\n.kmind-overlay-hidden {\\n display: none;\\n}\\n.container {\\n position: relative;\\n width: 100%;\\n height: 100vh;\\n}\\n.container.kmind-doctree-doc-dom-mode {\\n width: 100%;\\n height: 100%;\\n overflow: clip;\\n}\\n.container.kmind-doctree-doc-dom-mode .mindMapContainer > svg {\\n fill: unset !important;\\n display: block !important;\\n}\\n.container.kmind-doctree-doc-dom-mode .mindMapContainer svg:not([style*=\\\"fill\\\"]) {\\n fill: unset !important;\\n}\\n.container.kmind-doctree-doc-dom-mode .mindMapContainer svg {\\n display: unset !important;\\n}\\n.container.kmind-doctree-doc-dom-mode .mindMapContainer .smm-node-note > svg,\\n.container.kmind-doctree-doc-dom-mode .mindMapContainer .smm-node-icon > svg,\\n.container.kmind-doctree-doc-dom-mode .mindMapContainer .smm-node-tag > svg {\\n display: inline-block !important;\\n}\\n.container.kmind-doctree-doc-dom-mode .mindMapContainer .smm-node-tag,\\n.container.kmind-doctree-doc-dom-mode .mindMapContainer .smm-node-icon,\\n.container.kmind-doctree-doc-dom-mode .mindMapContainer .smm-node-note,\\n.container.kmind-doctree-doc-dom-mode .mindMapContainer .smm-icon,\\n.container.kmind-doctree-doc-dom-mode .mindMapContainer .smm-node svg {\\n display: inline-block !important;\\n}\\n.container.kmind-doctree-doc-dom-mode .mindMapContainer .smm-node svg[class*=\\\"smm-\\\"] {\\n fill: unset !important;\\n}\\nbody.isDark {\\n /* el-button */\\n /* el-input */\\n /* el-select */\\n /* el-popper*/\\n /* el-tabs */\\n /* el-slider */\\n /* el-radio-group */\\n /* el-dialog */\\n /* el-upload */\\n /* 富文本编辑器 */\\n /* el-card */\\n}\\nbody.isDark .el-button {\\n background-color: #363b3f;\\n color: hsla(0, 0%, 100%, 0.9);\\n border-color: hsla(0, 0%, 100%, 0.1);\\n}\\nbody.isDark .el-input__inner {\\n background-color: #363b3f;\\n border-color: hsla(0, 0%, 100%, 0.1);\\n color: hsla(0, 0%, 100%, 0.9);\\n}\\nbody.isDark .el-input.is-disabled .el-input__inner {\\n background-color: #363b3f;\\n border-color: hsla(0, 0%, 100%, 0.1);\\n color: hsla(0, 0%, 100%, 0.3);\\n}\\nbody.isDark .el-input-group__append,\\nbody.isDark .el-input-group__prepend {\\n background-color: #363b3f;\\n border-color: hsla(0, 0%, 100%, 0.1);\\n}\\nbody.isDark .el-input-group__append button.el-button {\\n color: hsla(0, 0%, 100%, 0.9);\\n}\\nbody.isDark .el-select-dropdown {\\n background-color: #36393d;\\n border-color: hsla(0, 0%, 100%, 0.1);\\n}\\nbody.isDark .el-select-dropdown .el-select-dropdown__item {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\nbody.isDark .el-select-dropdown .el-select-dropdown__item.selected {\\n color: #409eff;\\n}\\nbody.isDark .el-select-dropdown .el-select-dropdown__item.hover,\\nbody.isDark .el-select-dropdown .el-select-dropdown__item:hover {\\n background-color: hsla(0, 0%, 100%, 0.05);\\n}\\nbody.isDark .el-select .el-input.is-disabled .el-input__inner:hover {\\n border-color: hsla(0, 0%, 100%, 0.1);\\n}\\nbody.isDark .el-popper {\\n background-color: #36393d;\\n border-color: hsla(0, 0%, 100%, 0.1);\\n}\\nbody.isDark .el-popper[x-placement^='bottom'] .popper__arrow {\\n background-color: #36393d;\\n}\\nbody.isDark .el-popper[x-placement^='bottom'] .popper__arrow::after {\\n border-bottom-color: #36393d;\\n}\\nbody.isDark .el-popper[x-placement^='top'] .popper__arrow {\\n background-color: #36393d;\\n}\\nbody.isDark .el-popper[x-placement^='top'] .popper__arrow::after {\\n border-top-color: #36393d;\\n}\\nbody.isDark .el-tabs__item {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\nbody.isDark .el-tabs__item:hover,\\nbody.isDark .el-tabs__item.is-active {\\n color: #409eff;\\n}\\nbody.isDark .el-tabs__nav-wrap::after {\\n background-color: hsla(0, 0%, 100%, 0.6);\\n}\\nbody.isDark .el-slider__runway {\\n background-color: hsla(0, 0%, 100%, 0.6);\\n}\\nbody.isDark .el-radio-group .el-radio-button__inner {\\n background-color: #36393d;\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\nbody.isDark .el-radio-group .el-radio-button__orig-radio:checked + .el-radio-button__inner {\\n color: #fff;\\n background-color: #409eff;\\n}\\nbody.isDark .el-dialog {\\n background-color: #262a2e;\\n}\\nbody.isDark .el-dialog .el-dialog__header {\\n border-bottom: 1px solid hsla(0, 0%, 100%, 0.1);\\n}\\nbody.isDark .el-dialog .el-dialog__title {\\n color: hsla(0, 0%, 100%, 0.9);\\n}\\nbody.isDark .el-dialog .el-dialog__body {\\n background-color: #262a2e;\\n}\\nbody.isDark .el-dialog .el-dialog__footer {\\n border-top: 1px solid hsla(0, 0%, 100%, 0.1);\\n}\\nbody.isDark .el-upload__tip {\\n color: #999;\\n}\\nbody.isDark .toastui-editor-main-container {\\n background-color: #fff;\\n}\\nbody.isDark .el-card {\\n background-color: #262a2e;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/Index.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/Index.vue?vue&type=style&index=1&id=4c868391&lang=less&scoped=true":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/Index.vue?vue&type=style&index=1&id=4c868391&lang=less&scoped=true ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".kmind-mirror-edit-link[data-v-4c868391] {\\n display: flex;\\n align-items: self-end;\\n position: fixed;\\n top: 0;\\n right: 0;\\n margin: 5px;\\n z-index: 9999;\\n cursor: pointer;\\n font-size: 1rem;\\n color: rgba(255, 255, 255, 0.1);\\n mix-blend-mode: difference;\\n transition: all 0.3s;\\n}\\n.kmind-mirror-edit-link[data-v-4c868391]:hover {\\n color: #66b1ff;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/Index.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=0&id=127c4038&lang=less&scoped=true":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=0&id=127c4038&lang=less&scoped=true ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".sidebarContent[data-v-127c4038] {\\n padding: 20px;\\n padding-top: 10px;\\n}\\n.sidebarContent.isDark .title[data-v-127c4038] {\\n color: #fff;\\n}\\n.sidebarContent.isDark .row .rowItem .name[data-v-127c4038] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.sidebarContent .title[data-v-127c4038] {\\n font-size: 16px;\\n font-family: PingFangSC-Medium, PingFang SC;\\n font-weight: 500;\\n color: rgba(26, 26, 26, 0.9);\\n margin-bottom: 10px;\\n margin-top: 20px;\\n}\\n.sidebarContent .title.noTop[data-v-127c4038] {\\n margin-top: 0;\\n}\\n.sidebarContent .row[data-v-127c4038] {\\n display: flex;\\n justify-content: space-between;\\n margin-bottom: 10px;\\n}\\n.sidebarContent .row .rowItem[data-v-127c4038] {\\n display: flex;\\n align-items: center;\\n margin-bottom: 5px;\\n}\\n.sidebarContent .row .rowItem .name[data-v-127c4038] {\\n font-size: 12px;\\n margin-right: 10px;\\n white-space: nowrap;\\n}\\n.sidebarContent .row .rowItem .block[data-v-127c4038] {\\n display: inline-block;\\n width: 30px;\\n height: 30px;\\n border: 1px solid #dcdfe6;\\n border-radius: 4px;\\n cursor: pointer;\\n}\\n.borderLine[data-v-127c4038] {\\n display: inline-block;\\n width: 100%;\\n background-color: #000;\\n}\\n.borderLine.isDark[data-v-127c4038] {\\n background-color: #fff;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/AssociativeLineStyle.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=1&id=127c4038&lang=less":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=1&id=127c4038&lang=less ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".el-select-dropdown__item.selected .borderLine {\\n background-color: #409eff;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/AssociativeLineStyle.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=0&id=f49af710&lang=less&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=0&id=f49af710&lang=less&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".sidebarContent[data-v-f49af710] {\\n padding: 20px;\\n padding-top: 10px;\\n}\\n.sidebarContent.isDark .title[data-v-f49af710] {\\n color: #fff;\\n}\\n.sidebarContent.isDark .row .rowItem .name[data-v-f49af710],\\n.sidebarContent.isDark .row .rowItem .curRainbowLine[data-v-f49af710] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.sidebarContent .title[data-v-f49af710] {\\n font-size: 16px;\\n font-family: PingFangSC-Medium, PingFang SC;\\n font-weight: 500;\\n color: rgba(26, 26, 26, 0.9);\\n margin-bottom: 10px;\\n margin-top: 20px;\\n}\\n.sidebarContent .title.noTop[data-v-f49af710] {\\n margin-top: 0;\\n}\\n.sidebarContent .row[data-v-f49af710] {\\n display: flex;\\n justify-content: space-between;\\n margin-bottom: 10px;\\n}\\n.sidebarContent .row.column[data-v-f49af710] {\\n flex-direction: column;\\n}\\n.sidebarContent .row .tab[data-v-f49af710] {\\n width: 100%;\\n}\\n.sidebarContent .row .imgUpload[data-v-f49af710] {\\n margin-bottom: 5px;\\n}\\n.sidebarContent .row .btnGroup[data-v-f49af710] {\\n width: 100%;\\n display: flex;\\n justify-content: space-between;\\n}\\n.sidebarContent .row .rowItem[data-v-f49af710] {\\n display: flex;\\n align-items: center;\\n margin-bottom: 5px;\\n}\\n.sidebarContent .row .rowItem .name[data-v-f49af710] {\\n font-size: 12px;\\n margin-right: 10px;\\n white-space: nowrap;\\n}\\n.sidebarContent .row .rowItem .block[data-v-f49af710] {\\n display: inline-block;\\n width: 30px;\\n height: 30px;\\n border: 1px solid #dcdfe6;\\n border-radius: 4px;\\n cursor: pointer;\\n}\\n.sidebarContent .row .rowItem .curRainbowLine[data-v-f49af710] {\\n height: 24px;\\n border: 1px solid #dcdfe6;\\n font-size: 12px;\\n width: 240px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n}\\n.sidebarContent .row .styleBtn[data-v-f49af710] {\\n position: relative;\\n width: 50px;\\n height: 30px;\\n background: #fff;\\n border: 1px solid #eee;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n font-weight: bold;\\n cursor: pointer;\\n border-radius: 4px;\\n}\\n.sidebarContent .row .styleBtn.actived[data-v-f49af710] {\\n background-color: #eee;\\n}\\n.sidebarContent .row .styleBtn .colorShow[data-v-f49af710] {\\n position: absolute;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n height: 2px;\\n}\\n.borderLine[data-v-f49af710] {\\n display: inline-block;\\n width: 100%;\\n background-color: #000;\\n}\\n.borderLine.isDark[data-v-f49af710] {\\n background-color: #fff;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/BaseStyle.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=1&id=f49af710&lang=less":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=1&id=f49af710&lang=less ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".el-select-dropdown__item.selected .borderLine {\\n background-color: #409eff;\\n}\\n.lineStyleOption.isDark svg path {\\n stroke: #fff;\\n}\\n.lineStyleOption.isSelected svg path {\\n stroke: #409eff;\\n}\\n.lineStyleOption svg {\\n margin-top: 4px;\\n}\\n.lineStyleOption svg path {\\n stroke: #000;\\n}\\n.rainbowLinesOptionsBox {\\n width: 200px;\\n}\\n.rainbowLinesOptionsBox.isDark .optionItem {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.rainbowLinesOptionsBox.isDark .optionItem:hover {\\n background-color: hsla(0, 0%, 100%, 0.05);\\n}\\n.rainbowLinesOptionsBox .optionItem {\\n width: 100%;\\n height: 30px;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.rainbowLinesOptionsBox .optionItem:hover {\\n background-color: #f5f7fa;\\n}\\n.colorsBar {\\n display: flex;\\n width: 100%;\\n height: 100%;\\n align-items: center;\\n}\\n.colorsBar .colorItem {\\n flex: 1;\\n height: 15px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/BaseStyle.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Color.vue?vue&type=style&index=0&id=48030e0a&lang=less&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Color.vue?vue&type=style&index=0&id=48030e0a&lang=less&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".colorContainer.isDark .moreColor[data-v-48030e0a] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.colorList[data-v-48030e0a] {\\n width: 240px;\\n display: flex;\\n flex-wrap: wrap;\\n}\\n.colorList .colorItem[data-v-48030e0a] {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: 15px;\\n height: 15px;\\n margin-right: 5px;\\n margin-bottom: 5px;\\n cursor: pointer;\\n}\\n.moreColor[data-v-48030e0a] {\\n display: flex;\\n align-items: center;\\n}\\n.moreColor span[data-v-48030e0a] {\\n margin-right: 5px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Color.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Contextmenu.vue?vue&type=style&index=0&id=ca7290b4&lang=less&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Contextmenu.vue?vue&type=style&index=0&id=ca7290b4&lang=less&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".listBox[data-v-ca7290b4] {\\n width: 250px;\\n background: #fff;\\n box-shadow: 0 4px 12px 0 hsla(0, 0%, 69%, 0.5);\\n border-radius: 4px;\\n padding-top: 16px;\\n padding-bottom: 16px;\\n}\\n.listBox.isDark[data-v-ca7290b4] {\\n background: #363b3f;\\n}\\n.contextmenuContainer[data-v-ca7290b4] {\\n position: fixed;\\n font-size: 14px;\\n font-family: PingFangSC-Regular, PingFang SC;\\n font-weight: 400;\\n color: #1a1a1a;\\n}\\n.contextmenuContainer.isDark[data-v-ca7290b4] {\\n color: #fff;\\n}\\n.contextmenuContainer.isDark .item[data-v-ca7290b4]:hover {\\n background: hsla(0, 0%, 100%, 0.05);\\n}\\n.contextmenuContainer .splitLine[data-v-ca7290b4] {\\n width: 95%;\\n height: 1px;\\n background-color: #e9edf2;\\n margin: 2px auto;\\n}\\n.contextmenuContainer .item[data-v-ca7290b4] {\\n position: relative;\\n height: 28px;\\n padding: 0 16px;\\n cursor: pointer;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n}\\n.contextmenuContainer .item.danger[data-v-ca7290b4] {\\n color: #f56c6c;\\n}\\n.contextmenuContainer .item[data-v-ca7290b4]:hover {\\n background: #f5f5f5;\\n}\\n.contextmenuContainer .item:hover .subItems[data-v-ca7290b4] {\\n visibility: visible;\\n}\\n.contextmenuContainer .item.disabled[data-v-ca7290b4] {\\n color: grey;\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n.contextmenuContainer .item.disabled[data-v-ca7290b4]:hover {\\n background: #fff;\\n}\\n.contextmenuContainer .item .name[data-v-ca7290b4] {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n.contextmenuContainer .item .desc[data-v-ca7290b4] {\\n color: #999;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n.contextmenuContainer .item .subItems[data-v-ca7290b4] {\\n position: absolute;\\n left: 100%;\\n visibility: hidden;\\n width: 150px;\\n cursor: auto;\\n}\\n.contextmenuContainer .item .subItems.showLeft[data-v-ca7290b4] {\\n left: -150px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Contextmenu.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Count.vue?vue&type=style&index=0&id=930436b2&lang=less&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Count.vue?vue&type=style&index=0&id=930436b2&lang=less&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".countContainer[data-v-930436b2] {\\n padding: 0 12px;\\n position: var(--930436b2-positionMode);\\n left: 20px;\\n bottom: 20px;\\n background: hsla(0, 0%, 100%, 0.8);\\n border-radius: 2px;\\n opacity: 0.8;\\n height: 22px;\\n line-height: 22px;\\n font-size: 12px;\\n display: flex;\\n}\\n.countContainer.isDark[data-v-930436b2] {\\n background: #262a2e;\\n}\\n.countContainer.isDark .item[data-v-930436b2] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.countContainer .item[data-v-930436b2] {\\n color: #555;\\n margin-right: 15px;\\n}\\n.countContainer .item[data-v-930436b2]:last-of-type {\\n margin-right: 0;\\n}\\n.countContainer .item .name[data-v-930436b2] {\\n margin-right: 5px;\\n}\\n@media screen and (max-width: 740px) {\\n.countContainer[data-v-930436b2] {\\n display: none;\\n}\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Count.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Demonstrate.vue?vue&type=style&index=0&id=7e7ebaf8&lang=less&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Demonstrate.vue?vue&type=style&index=0&id=7e7ebaf8&lang=less&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".demonstrateContainer[data-v-7e7ebaf8] {\\n display: flex;\\n align-items: center;\\n}\\n.demonstrateContainer.isDark .btn[data-v-7e7ebaf8] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.demonstrateContainer .item[data-v-7e7ebaf8] {\\n margin-right: 12px;\\n}\\n.demonstrateContainer .item[data-v-7e7ebaf8]:last-of-type {\\n margin-right: 0;\\n}\\n.demonstrateContainer .btn[data-v-7e7ebaf8] {\\n cursor: pointer;\\n font-size: 24px;\\n}\\n.exitDemonstrateBtn[data-v-7e7ebaf8] {\\n position: absolute;\\n right: 40px;\\n top: 20px;\\n cursor: pointer;\\n z-index: 10001;\\n pointer-events: all;\\n}\\n.exitDemonstrateBtn .icon[data-v-7e7ebaf8] {\\n font-size: 28px;\\n color: #fff;\\n}\\n.stepBox[data-v-7e7ebaf8] {\\n position: absolute;\\n right: 40px;\\n bottom: 20px;\\n pointer-events: all;\\n z-index: 10001;\\n display: flex;\\n align-items: center;\\n}\\n.stepBox .step[data-v-7e7ebaf8] {\\n color: #fff;\\n margin: 0 12px;\\n}\\n.stepBox .jump[data-v-7e7ebaf8] {\\n color: #fff;\\n cursor: pointer;\\n}\\n.stepBox .jump.disabled[data-v-7e7ebaf8] {\\n cursor: not-allowed;\\n color: #999;\\n}\\n.stepBox .input[data-v-7e7ebaf8] {\\n margin-left: 12px;\\n display: flex;\\n align-items: center;\\n}\\n.stepBox .input input[data-v-7e7ebaf8] {\\n width: 50px;\\n height: 30px;\\n text-align: center;\\n background-color: transparent;\\n border: 1px solid #999;\\n outline: none;\\n color: #fff;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Demonstrate.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Edit.vue?vue&type=style&index=0&id=84e609bc&lang=less&scoped=true":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Edit.vue?vue&type=style&index=0&id=84e609bc&lang=less&scoped=true ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".editContainer[data-v-84e609bc] {\\n position: fixed;\\n left: 0;\\n right: 0;\\n top: 0;\\n bottom: 0;\\n}\\n.editContainer.position-absolute[data-v-84e609bc] {\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n}\\n.editContainer .dragMask[data-v-84e609bc] {\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(255, 255, 255, 0.8);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n z-index: 3999;\\n}\\n.editContainer .dragMask .dragTip[data-v-84e609bc] {\\n pointer-events: none;\\n font-weight: bold;\\n}\\n.editContainer .mindMapContainer[data-v-84e609bc] {\\n position: absolute;\\n left: 0px;\\n top: 0px;\\n width: 100%;\\n height: 100%;\\n}\\n.editContainer .debug-panel[data-v-84e609bc] {\\n position: var(--84e609bc-positionMode);\\n bottom: 20px;\\n right: 20px;\\n width: 500px;\\n max-height: 600px;\\n background: rgba(0, 0, 0, 0.9);\\n color: #0f0;\\n border: 1px solid #0f0;\\n border-radius: 8px;\\n box-shadow: 0 0 20px rgba(0, 255, 0, 0.5);\\n z-index: 9999;\\n font-family: 'Courier New', monospace;\\n}\\n.editContainer .debug-panel .debug-header[data-v-84e609bc] {\\n padding: 10px 15px;\\n background: rgba(0, 255, 0, 0.1);\\n border-bottom: 1px solid #0f0;\\n cursor: pointer;\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n font-weight: bold;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n}\\n.editContainer .debug-panel .debug-header[data-v-84e609bc]:hover {\\n background: rgba(0, 255, 0, 0.2);\\n}\\n.editContainer .debug-panel .debug-content[data-v-84e609bc] {\\n max-height: 550px;\\n overflow-y: auto;\\n padding: 15px;\\n}\\n.editContainer .debug-panel .debug-content[data-v-84e609bc]::-webkit-scrollbar {\\n width: 8px;\\n}\\n.editContainer .debug-panel .debug-content[data-v-84e609bc]::-webkit-scrollbar-track {\\n background: rgba(0, 255, 0, 0.1);\\n}\\n.editContainer .debug-panel .debug-content[data-v-84e609bc]::-webkit-scrollbar-thumb {\\n background: rgba(0, 255, 0, 0.5);\\n border-radius: 4px;\\n}\\n.editContainer .debug-panel .debug-content[data-v-84e609bc]::-webkit-scrollbar-thumb:hover {\\n background: rgba(0, 255, 0, 0.7);\\n}\\n.editContainer .debug-panel .debug-content .debug-section[data-v-84e609bc] {\\n margin-bottom: 20px;\\n}\\n.editContainer .debug-panel .debug-content .debug-section h4[data-v-84e609bc] {\\n margin: 0 0 10px 0;\\n color: #0f0;\\n font-size: 14px;\\n text-transform: uppercase;\\n letter-spacing: 1px;\\n border-bottom: 1px dashed #0f0;\\n padding-bottom: 5px;\\n}\\n.editContainer .debug-panel .debug-content .debug-section pre[data-v-84e609bc] {\\n margin: 0;\\n font-size: 12px;\\n line-height: 1.4;\\n color: #0f0;\\n word-break: break-all;\\n white-space: pre-wrap;\\n background: rgba(0, 255, 0, 0.05);\\n padding: 10px;\\n border-radius: 4px;\\n border: 1px solid rgba(0, 255, 0, 0.2);\\n max-height: 450px;\\n overflow-y: auto;\\n}\\n.editContainer .debug-panel .debug-content .debug-section pre[data-v-84e609bc]::-webkit-scrollbar {\\n width: 6px;\\n}\\n.editContainer .debug-panel .debug-content .debug-section pre[data-v-84e609bc]::-webkit-scrollbar-track {\\n background: rgba(0, 255, 0, 0.05);\\n}\\n.editContainer .debug-panel .debug-content .debug-section pre[data-v-84e609bc]::-webkit-scrollbar-thumb {\\n background: rgba(0, 255, 0, 0.3);\\n border-radius: 3px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Edit.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Export.vue?vue&type=style&index=0&id=6609dbcc&lang=less&scoped=true":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Export.vue?vue&type=style&index=0&id=6609dbcc&lang=less&scoped=true ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".nodeExportDialog .exportContainer.isDark .nameInputBox .name[data-v-6609dbcc] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.nodeExportDialog .exportContainer.isDark .downloadTypeSelectBox .downloadTypeList .downloadTypeItem[data-v-6609dbcc] {\\n background-color: #363b3f;\\n}\\n.nodeExportDialog .exportContainer.isDark .downloadTypeSelectBox .downloadTypeList .downloadTypeItem.active[data-v-6609dbcc] {\\n background-color: #262a2e;\\n}\\n.nodeExportDialog .exportContainer.isDark .downloadTypeSelectBox .downloadTypeList .downloadTypeItem .name[data-v-6609dbcc] {\\n color: hsla(0, 0%, 100%, 0.9);\\n}\\n.nodeExportDialog .exportContainer.isDark .downloadTypeSelectBox .downloadTypeContent .contentRow .contentName[data-v-6609dbcc] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.nodeExportDialog .exportContainer.isDark .downloadTypeSelectBox .downloadTypeContent .contentRow .contentValue[data-v-6609dbcc] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.nodeExportDialog.isDark[data-v-6609dbcc] .el-dialog__body .el-checkbox .el-checkbox__label {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.nodeExportDialog[data-v-6609dbcc] .el-dialog__body {\\n padding: 0;\\n border-top: 1px solid #f2f4f7;\\n border-bottom: 1px solid #f2f4f7;\\n}\\n.nodeExportDialog[data-v-6609dbcc] .el-dialog__body .el-checkbox__input.is-checked + .el-checkbox__label {\\n color: #409eff !important;\\n}\\n.nodeExportDialog[data-v-6609dbcc] .el-dialog__body .el-checkbox .el-checkbox__label {\\n color: #1a1a1a;\\n}\\n.nodeExportDialog.isMobile .exportContainer .downloadTypeSelectBox[data-v-6609dbcc] {\\n flex-direction: column;\\n}\\n.nodeExportDialog.isMobile .exportContainer .downloadTypeSelectBox .downloadTypeList[data-v-6609dbcc] {\\n width: 100%;\\n display: flex;\\n align-items: center;\\n overflow-x: auto;\\n height: 60px;\\n}\\n.nodeExportDialog.isMobile .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem[data-v-6609dbcc] {\\n width: 100px;\\n flex-shrink: 0;\\n padding-left: 10px;\\n}\\n.nodeExportDialog.isMobile .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem .icon[data-v-6609dbcc] {\\n margin-right: 5px;\\n}\\n.nodeExportDialog.isMobile .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem .icon.checked[data-v-6609dbcc] {\\n display: none !important;\\n}\\n.nodeExportDialog.isMobile .exportContainer .downloadTypeSelectBox .downloadTypeContent .contentRow[data-v-6609dbcc] {\\n flex-direction: column;\\n}\\n.nodeExportDialog.isMobile .exportContainer .downloadTypeSelectBox .downloadTypeContent .contentRow .contentName[data-v-6609dbcc] {\\n margin-bottom: 10px;\\n}\\n.nodeExportDialog.isMobile .exportContainer .downloadTypeSelectBox .downloadTypeContent .contentRow .contentValue .valueItem .valueSubItem[data-v-6609dbcc] {\\n display: flex;\\n flex-direction: column;\\n}\\n.nodeExportDialog.isMobile .exportContainer .downloadTypeSelectBox .downloadTypeContent .contentRow .contentValue .valueItem .valueSubItem .name[data-v-6609dbcc] {\\n margin-bottom: 5px;\\n}\\n.nodeExportDialog .exportContainer[data-v-6609dbcc] {\\n width: 100%;\\n height: 450px;\\n overflow: hidden;\\n display: flex;\\n flex-direction: column;\\n}\\n.nodeExportDialog .exportContainer .nameInputBox[data-v-6609dbcc] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-wrap: wrap;\\n height: 50px;\\n flex-shrink: 0;\\n border-bottom: 1px solid #f2f4f7;\\n}\\n.nodeExportDialog .exportContainer .nameInputBox .name[data-v-6609dbcc] {\\n margin-right: 10px;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox[data-v-6609dbcc] {\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n display: flex;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeList[data-v-6609dbcc] {\\n width: 210px;\\n height: 100%;\\n overflow-y: auto;\\n overflow-x: hidden;\\n background-color: #f2f4f7;\\n flex-shrink: 0;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem[data-v-6609dbcc] {\\n width: 100%;\\n height: 60px;\\n padding-left: 28px;\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n cursor: pointer;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem.active[data-v-6609dbcc] {\\n background-color: #fff;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem.active .icon.checked[data-v-6609dbcc] {\\n display: block;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem .icon[data-v-6609dbcc] {\\n font-size: 25px;\\n margin-right: 15px;\\n flex-shrink: 0;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem .icon.png[data-v-6609dbcc] {\\n color: #ffc038;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem .icon.pdf[data-v-6609dbcc] {\\n color: #ff6c4d;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem .icon.md[data-v-6609dbcc] {\\n color: #2b2b2b;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem .icon.json[data-v-6609dbcc] {\\n color: #12c87e;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem .icon.svg[data-v-6609dbcc] {\\n color: #4380ff;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem .icon.smm[data-v-6609dbcc] {\\n color: #409eff;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem .icon.xmind[data-v-6609dbcc] {\\n color: #f55e5e;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem .icon.txt[data-v-6609dbcc] {\\n color: #70798e;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem .icon.checked[data-v-6609dbcc] {\\n color: #409eff;\\n font-size: 20px;\\n margin-left: auto;\\n display: none;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeList .downloadTypeItem .name[data-v-6609dbcc] {\\n color: #1a1a1a;\\n font-size: 15px;\\n margin-bottom: 5px;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeContent[data-v-6609dbcc] {\\n padding: 30px;\\n height: 100%;\\n overflow-y: auto;\\n overflow-x: hidden;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeContent .contentRow[data-v-6609dbcc] {\\n display: flex;\\n font-size: 14px;\\n margin-bottom: 20px;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeContent .contentRow .contentName[data-v-6609dbcc] {\\n width: 80px;\\n color: #666;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeContent .contentRow .contentValue[data-v-6609dbcc] {\\n color: #1a1a1a;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeContent .contentRow .contentValue .valueItem .valueSubItem[data-v-6609dbcc] {\\n margin-bottom: 12px;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeContent .contentRow .contentValue .valueItem .valueSubItem[data-v-6609dbcc]:last-of-type {\\n margin-right: 0;\\n}\\n.nodeExportDialog .exportContainer .downloadTypeSelectBox .downloadTypeContent .contentRow .contentValue .valueItem .valueSubItem .name[data-v-6609dbcc] {\\n margin-right: 12px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Export.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Export.vue?vue&type=style&index=1&id=6609dbcc&lang=less":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Export.vue?vue&type=style&index=1&id=6609dbcc&lang=less ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".export-kmind-siyuanIcon {\\n width: 2rem;\\n margin-right: 10px;\\n}\\n.export-kmind-siyuanIcon svg {\\n width: 2rem;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Export.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/FormulaSidebar.vue?vue&type=style&index=0&id=3b54da2e&lang=less&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/FormulaSidebar.vue?vue&type=style&index=0&id=3b54da2e&lang=less&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".box[data-v-3b54da2e] {\\n padding: 10px;\\n width: 100%;\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n}\\n.box.isDark .title[data-v-3b54da2e] {\\n color: #fff;\\n}\\n.box.isDark .formulaList .formulaItem .overview[data-v-3b54da2e],\\n.box.isDark .formulaList .formulaItem .text[data-v-3b54da2e] {\\n color: #fff;\\n}\\n.box.isDark .formulaList .formulaItem .text[data-v-3b54da2e] {\\n background-color: #363b3f;\\n}\\n.box.isDark[data-v-3b54da2e] .el-textarea__inner {\\n background-color: transparent;\\n color: #fff;\\n}\\n.box .title[data-v-3b54da2e] {\\n font-size: 16px;\\n font-weight: 500;\\n color: #333;\\n margin: 10px 0;\\n flex-shrink: 0;\\n}\\n.box .formulaInputBox[data-v-3b54da2e] {\\n flex-shrink: 0;\\n}\\n.box .formulaList[data-v-3b54da2e] {\\n height: 100%;\\n overflow-y: auto;\\n}\\n.box .formulaList .formulaItem[data-v-3b54da2e] {\\n position: relative;\\n display: flex;\\n overflow: hidden;\\n align-items: center;\\n border: 1px solid #dcdfe6;\\n border-bottom: none;\\n}\\n.box .formulaList .formulaItem[data-v-3b54da2e]:last-of-type {\\n border-bottom: 1px solid #dcdfe6;\\n}\\n.box .formulaList .formulaItem .overview[data-v-3b54da2e],\\n.box .formulaList .formulaItem .text[data-v-3b54da2e] {\\n width: 50%;\\n overflow: hidden;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-shrink: 0;\\n}\\n.box .formulaList .formulaItem .overview[data-v-3b54da2e] {\\n padding: 10px 0;\\n border-right: none;\\n}\\n.box .formulaList .formulaItem .text[data-v-3b54da2e] {\\n cursor: pointer;\\n font-size: 14px;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n height: 100%;\\n position: absolute;\\n right: 0;\\n top: 0;\\n border-left: 1px solid #dcdfe6;\\n background-color: #fafafa;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/FormulaSidebar.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Fullscreen.vue?vue&type=style&index=0&id=bd69af5a&lang=less&scoped=true":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Fullscreen.vue?vue&type=style&index=0&id=bd69af5a&lang=less&scoped=true ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".fullscreenContainer[data-v-bd69af5a] {\\n display: flex;\\n align-items: center;\\n}\\n.fullscreenContainer.isDark .btn[data-v-bd69af5a] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.fullscreenContainer .item[data-v-bd69af5a] {\\n margin-right: 20px;\\n margin-bottom: 2px;\\n}\\n.fullscreenContainer .item[data-v-bd69af5a]:last-of-type {\\n margin-right: 0;\\n}\\n.fullscreenContainer .btn[data-v-bd69af5a] {\\n cursor: pointer;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Fullscreen.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Import.vue?vue&type=style&index=0&id=4f824986&lang=less&scoped=true":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Import.vue?vue&type=style&index=0&id=4f824986&lang=less&scoped=true ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".canvasList[data-v-4f824986] {\\n display: flex;\\n flex-direction: column;\\n}\\n.canvasList[data-v-4f824986] .el-radio {\\n margin-bottom: 12px;\\n}\\n.canvasList[data-v-4f824986] .el-radio:last-of-type {\\n margin-bottom: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Import.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=style&index=0&id=035dc43e&lang=less&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=style&index=0&id=035dc43e&lang=less&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".kmindFloatToolbar[data-v-035dc43e] {\\n position: var(--035dc43e-positionMode);\\n z-index: 2000;\\n background: #fff;\\n border: 1px solid rgba(0, 0, 0, 0.06);\\n border-radius: 8px;\\n box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06);\\n display: flex;\\n align-items: center;\\n padding: 8px;\\n}\\n.kmindFloatToolbar.isDark[data-v-035dc43e] {\\n background: #262a2e;\\n border: 1px solid rgba(255, 255, 255, 0.06);\\n box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.2);\\n}\\n.kmindFloatToolbar.isDark .content[data-v-035dc43e] {\\n color: #e0e0e0;\\n}\\n.kmindFloatToolbar.isDark .content .toolbar-btn[data-v-035dc43e] {\\n background: #363b40;\\n}\\n.kmindFloatToolbar.isDark .content .toolbar-btn[data-v-035dc43e]:hover {\\n background: #4a4f55;\\n}\\n.kmindFloatToolbar.isDark .content .toolbar-btn .btn-icon[data-v-035dc43e] {\\n color: #e0e0e0;\\n}\\n.kmindFloatToolbar.isDark .content .toolbar-btn.toolbar-btn-danger[data-v-035dc43e] {\\n background: rgba(245, 108, 108, 0.15);\\n}\\n.kmindFloatToolbar.isDark .content .toolbar-btn.toolbar-btn-danger[data-v-035dc43e]:hover {\\n background: rgba(245, 108, 108, 0.25);\\n}\\n.kmindFloatToolbar.isDark .content .toolbar-btn.toolbar-btn-danger .btn-icon[data-v-035dc43e] {\\n color: #f56c6c;\\n}\\n.kmindFloatToolbar .content[data-v-035dc43e] {\\n color: #333;\\n font-size: 14px;\\n}\\n.kmindFloatToolbar .content .buttons-wrapper[data-v-035dc43e] {\\n display: flex;\\n flex-direction: column;\\n gap: 8px;\\n align-items: center;\\n}\\n.kmindFloatToolbar .content .operation-buttons[data-v-035dc43e] {\\n display: flex;\\n gap: 6px;\\n flex-wrap: wrap;\\n justify-content: center;\\n}\\n.kmindFloatToolbar .content .toolbar-btn[data-v-035dc43e] {\\n width: 28px;\\n height: 28px;\\n border-radius: 4px;\\n background: #f5f5f5;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n transition: all 0.2s;\\n}\\n.kmindFloatToolbar .content .toolbar-btn[data-v-035dc43e]:hover {\\n background: #e0e0e0;\\n}\\n.kmindFloatToolbar .content .toolbar-btn .btn-icon[data-v-035dc43e] {\\n font-size: 16px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.kmindFloatToolbar .content .toolbar-btn.toolbar-btn-danger[data-v-035dc43e] {\\n background: rgba(245, 108, 108, 0.1);\\n}\\n.kmindFloatToolbar .content .toolbar-btn.toolbar-btn-danger[data-v-035dc43e]:hover {\\n background: rgba(245, 108, 108, 0.2);\\n}\\n.kmindFloatToolbar .content .toolbar-btn.toolbar-btn-danger .btn-icon[data-v-035dc43e] {\\n color: #f56c6c;\\n}\\n.kmindFloatToolbar .content .node-add-container[data-v-035dc43e] {\\n position: relative;\\n width: 28px;\\n height: 28px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.fade-enter-active[data-v-035dc43e],\\n.fade-leave-active[data-v-035dc43e] {\\n transition: opacity 0.3s;\\n}\\n.fade-enter[data-v-035dc43e],\\n.fade-leave-to[data-v-035dc43e] {\\n opacity: 0;\\n}\\n.fade-scale-enter-active[data-v-035dc43e],\\n.fade-scale-leave-active[data-v-035dc43e] {\\n transition: transform 0.3s;\\n}\\n.fade-scale-enter[data-v-035dc43e],\\n.fade-scale-leave-to[data-v-035dc43e] {\\n transform: scale(0);\\n}\\n@keyframes pulse-035dc43e {\\n0% {\\n transform: scale(1);\\n}\\n50% {\\n transform: scale(1.1);\\n}\\n100% {\\n transform: scale(1);\\n}\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=style&index=0&id=3124bbe7&lang=less&scoped=true":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=style&index=0&id=3124bbe7&lang=less&scoped=true ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".toolbar-btn.add-main-btn[data-v-3124bbe7] {\\n position: relative;\\n width: 28px;\\n height: 28px;\\n border-radius: 4px;\\n background: #f5f5f5;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n transition: all 0.2s;\\n}\\n.toolbar-btn.add-main-btn.is-dark[data-v-3124bbe7] {\\n background: #363b40;\\n}\\n.toolbar-btn.add-main-btn.is-dark[data-v-3124bbe7]:hover {\\n background: #4a4f55;\\n}\\n.toolbar-btn.add-main-btn.is-dark .btn-icon[data-v-3124bbe7] {\\n color: #e0e0e0;\\n}\\n.toolbar-btn.add-main-btn.is-dark .drag-hints .drag-hint[data-v-3124bbe7] {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.toolbar-btn.add-main-btn.is-dark .drag-hints .drag-hint .hint-arrow[data-v-3124bbe7] {\\n color: #e0e0e0;\\n}\\n.toolbar-btn.add-main-btn[data-v-3124bbe7]:hover {\\n background: #e0e0e0;\\n}\\n.toolbar-btn.add-main-btn .btn-icon[data-v-3124bbe7] {\\n font-size: 16px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.add-main-btn[data-v-3124bbe7] {\\n position: relative;\\n width: 100%;\\n height: 100%;\\n z-index: 1;\\n background: #2D3748 !important;\\n color: white;\\n}\\n.add-main-btn[data-v-3124bbe7]:hover {\\n background: #4a4f55 !important;\\n}\\n.drag-hints[data-v-3124bbe7] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n z-index: 2;\\n pointer-events: none;\\n /* 防止干扰点击 */\\n}\\n.drag-hints .drag-hint[data-v-3124bbe7] {\\n position: absolute;\\n width: 16px;\\n height: 16px;\\n border-radius: 50%;\\n background: rgba(255, 255, 255, 0.3);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n opacity: 0.5;\\n}\\n.drag-hints .drag-hint .hint-arrow[data-v-3124bbe7] {\\n font-size: 14px;\\n color: rgba(24, 144, 255, 0.6);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.drag-hints .drag-hint.right[data-v-3124bbe7] {\\n right: -12px;\\n top: calc(50% - 8px);\\n animation: hintPulseRight-3124bbe7 3s infinite;\\n}\\n.drag-hints .drag-hint.bottom[data-v-3124bbe7] {\\n bottom: -12px;\\n left: calc(50% - 8px);\\n animation: hintPulseBottom-3124bbe7 3s infinite;\\n}\\n.drag-hints .drag-hint.left[data-v-3124bbe7] {\\n left: -12px;\\n top: calc(50% - 8px);\\n animation: hintPulseLeft-3124bbe7 3s infinite;\\n}\\n@keyframes hintPulseRight-3124bbe7 {\\n0% {\\n opacity: 0.3;\\n transform: translateX(-1px);\\n}\\n50% {\\n opacity: 0.5;\\n transform: translateX(1px);\\n}\\n100% {\\n opacity: 0.3;\\n transform: translateX(-1px);\\n}\\n}\\n@keyframes hintPulseBottom-3124bbe7 {\\n0% {\\n opacity: 0.3;\\n transform: translateY(-1px);\\n}\\n50% {\\n opacity: 0.5;\\n transform: translateY(1px);\\n}\\n100% {\\n opacity: 0.3;\\n transform: translateY(-1px);\\n}\\n}\\n@keyframes hintPulseLeft-3124bbe7 {\\n0% {\\n opacity: 0.3;\\n transform: translateX(1px);\\n}\\n50% {\\n opacity: 0.5;\\n transform: translateX(-1px);\\n}\\n100% {\\n opacity: 0.3;\\n transform: translateX(1px);\\n}\\n}\\n.direction-indicator[data-v-3124bbe7] {\\n position: absolute;\\n top: -48px;\\n left: -48px;\\n width: 124px;\\n height: 124px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: transparent;\\n border-radius: 8px;\\n box-shadow: none;\\n z-index: 3;\\n pointer-events: none;\\n /* 防止干扰拖动 */\\n}\\n.direction-indicator .direction-hint[data-v-3124bbe7] {\\n position: absolute;\\n width: 36px;\\n height: 36px;\\n background: #1890ff;\\n color: white;\\n border-radius: 50%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n z-index: 5;\\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\\n animation: pulse-3124bbe7 1.5s infinite;\\n}\\n.direction-indicator .direction-hint.right[data-v-3124bbe7] {\\n right: -5px;\\n top: calc(50% - 18px);\\n}\\n.direction-indicator .direction-hint.bottom[data-v-3124bbe7] {\\n bottom: -5px;\\n left: calc(50% - 18px);\\n}\\n.direction-indicator .direction-hint.left[data-v-3124bbe7] {\\n left: -5px;\\n top: calc(50% - 18px);\\n}\\n.direction-indicator .direction-hint .hint-icon[data-v-3124bbe7] {\\n font-size: 24px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.fade-enter-active[data-v-3124bbe7],\\n.fade-leave-active[data-v-3124bbe7] {\\n transition: opacity 0.3s;\\n}\\n.fade-enter[data-v-3124bbe7],\\n.fade-leave-to[data-v-3124bbe7] {\\n opacity: 0;\\n}\\n.fade-scale-enter-active[data-v-3124bbe7],\\n.fade-scale-leave-active[data-v-3124bbe7] {\\n transition: transform 0.3s;\\n}\\n.fade-scale-enter[data-v-3124bbe7],\\n.fade-scale-leave-to[data-v-3124bbe7] {\\n transform: scale(0);\\n}\\n@keyframes pulse-3124bbe7 {\\n0% {\\n transform: scale(1);\\n}\\n50% {\\n transform: scale(1.1);\\n}\\n100% {\\n transform: scale(1);\\n}\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=style&index=0&id=75ed2ea7&lang=less&scoped=true":
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=style&index=0&id=75ed2ea7&lang=less&scoped=true ***!
\***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".sidebarContent[data-v-75ed2ea7] {\\n padding: 20px;\\n padding-top: 10px;\\n}\\n.sidebarContent.isDark .title[data-v-75ed2ea7] {\\n color: #fff;\\n}\\n.sidebarContent.isDark .row .rowItem .name[data-v-75ed2ea7] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.sidebarContent .title[data-v-75ed2ea7] {\\n font-size: 16px;\\n font-family: PingFangSC-Medium, PingFang SC;\\n font-weight: 500;\\n color: rgba(26, 26, 26, 0.9);\\n margin-bottom: 10px;\\n margin-top: 20px;\\n}\\n.sidebarContent .title.noTop[data-v-75ed2ea7] {\\n margin-top: 0;\\n}\\n.sidebarContent .row[data-v-75ed2ea7] {\\n display: flex;\\n justify-content: space-between;\\n margin-bottom: 10px;\\n}\\n.sidebarContent .row .rowItem[data-v-75ed2ea7] {\\n display: flex;\\n align-items: center;\\n margin-bottom: 5px;\\n}\\n.sidebarContent .row .rowItem .name[data-v-75ed2ea7] {\\n font-size: 12px;\\n margin-right: 10px;\\n white-space: nowrap;\\n}\\n.sidebarContent .row .rowItem .block[data-v-75ed2ea7] {\\n display: inline-block;\\n width: 30px;\\n height: 30px;\\n border: 1px solid #dcdfe6;\\n border-radius: 4px;\\n cursor: pointer;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindHistory/KMindHistory.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=style&index=0&id=5531bb55&lang=less&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=style&index=0&id=5531bb55&lang=less&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".autoSaveHistoryListContainer[data-v-5531bb55] {\\n max-height: calc(70vh - 40px);\\n overflow: auto;\\n padding: 5px;\\n}\\n.pinHistoryListContainer[data-v-5531bb55] {\\n max-height: calc(70vh - 40px);\\n overflow: auto;\\n padding: 5px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=style&index=0&id=207f8b47&scoped=true&lang=less":
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=style&index=0&id=207f8b47&scoped=true&lang=less ***!
\***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".kmindPreviewContainer[data-v-207f8b47] {\\n width: 100%;\\n height: 70vh;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindPreview/KmindPreview.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/MouseAction.vue?vue&type=style&index=0&id=1a05d65a&lang=less&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/MouseAction.vue?vue&type=style&index=0&id=1a05d65a&lang=less&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".mouseActionContainer[data-v-1a05d65a] {\\n display: flex;\\n align-items: center;\\n}\\n.mouseActionContainer.isDark .btn[data-v-1a05d65a] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.mouseActionContainer .item[data-v-1a05d65a] {\\n margin-right: 12px;\\n}\\n.mouseActionContainer .item[data-v-1a05d65a]:last-of-type {\\n margin-right: 0;\\n}\\n.mouseActionContainer .btn[data-v-1a05d65a] {\\n cursor: pointer;\\n font-size: 18px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/MouseAction.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Navigator.vue?vue&type=style&index=0&id=20a399ef&lang=less&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Navigator.vue?vue&type=style&index=0&id=20a399ef&lang=less&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".navigatorBox[data-v-20a399ef] {\\n position: absolute;\\n height: 220px;\\n background-color: #fff;\\n bottom: 80px;\\n right: 70px;\\n box-shadow: 0 0 16px #989898;\\n border-radius: 4px;\\n border: 1px solid #eee;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n}\\n.navigatorBox.isDark[data-v-20a399ef] {\\n background-color: #262a2e;\\n}\\n.navigatorBox .svgBox[data-v-20a399ef] {\\n position: absolute;\\n left: 0;\\n transform-origin: left top;\\n}\\n.navigatorBox .windowBox[data-v-20a399ef] {\\n position: absolute;\\n border: 2px solid #ee4545;\\n background-color: rgba(238, 69, 69, 0.2);\\n}\\n.navigatorBox .windowBox.withTransition[data-v-20a399ef] {\\n transition: all 0.3s;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Navigator.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=style&index=0&id=92e9ad88&lang=less&scoped=true":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=style&index=0&id=92e9ad88&lang=less&scoped=true ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".navigatorContainer[data-v-92e9ad88] {\\n padding: 0 12px;\\n position: var(--92e9ad88-positionMode);\\n right: 65px;\\n bottom: 20px;\\n background: hsla(0, 0%, 100%, 0.8);\\n border-radius: 5px;\\n opacity: 0.8;\\n height: 44px;\\n font-size: 12px;\\n display: flex;\\n align-items: center;\\n transition: all 0.3s;\\n}\\n.navigatorContainer.isSidebarActive[data-v-92e9ad88] {\\n right: 370px;\\n}\\n.navigatorContainer.isDark[data-v-92e9ad88] {\\n background: #262a2e;\\n}\\n.navigatorContainer.isDark .item a[data-v-92e9ad88] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.navigatorContainer.isDark .item .btn[data-v-92e9ad88] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.navigatorContainer .item[data-v-92e9ad88] {\\n margin-right: 20px;\\n}\\n.navigatorContainer .item[data-v-92e9ad88]:last-of-type {\\n margin-right: 0;\\n}\\n.navigatorContainer .item a[data-v-92e9ad88] {\\n color: #303133;\\n text-decoration: none;\\n}\\n.navigatorContainer .item .btn[data-v-92e9ad88] {\\n cursor: pointer;\\n font-size: 18px;\\n transform: scale(0.8);\\n}\\n@media screen and (max-width: 590px) {\\n.navigatorContainer[data-v-92e9ad88] {\\n left: 20px;\\n overflow-x: auto;\\n overflow-y: hidden;\\n height: 60px;\\n}\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NavigatorToolbar.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=style&index=0&id=47918363&lang=less&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=style&index=0&id=47918363&lang=less&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".annotationConfigBox.isDark .annotationConfigItem .name[data-v-47918363] {\\n color: hsla(0, 0%, 100%, 0.9);\\n}\\n.annotationConfigBox .annotationConfigItem[data-v-47918363] {\\n display: flex;\\n align-items: center;\\n margin-bottom: 12px;\\n}\\n.annotationConfigBox .annotationConfigItem[data-v-47918363]:last-of-type {\\n margin-bottom: 0px;\\n}\\n.annotationConfigBox .annotationConfigItem .name[data-v-47918363] {\\n flex-shrink: 0;\\n margin-right: 10px;\\n}\\n.annotationConfigBox .annotationConfigItem .block[data-v-47918363] {\\n width: 30px;\\n height: 30px;\\n border: 1px solid #dcdfe6;\\n border-radius: 4px;\\n cursor: pointer;\\n}\\n.borderLine[data-v-47918363] {\\n display: inline-block;\\n width: 100%;\\n background-color: #000;\\n}\\n.borderLine.isDark[data-v-47918363] {\\n background-color: #fff;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeAnnotationBtn.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeAttachment.vue?vue&type=style&index=0&id=102b205d&lang=less&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeAttachment.vue?vue&type=style&index=0&id=102b205d&lang=less&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".nodeAttachmentContextMenu[data-v-102b205d] {\\n position: fixed;\\n background-color: #fff;\\n padding: 10px;\\n border-radius: 5px;\\n box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06);\\n border: 1px solid rgba(0, 0, 0, 0.06);\\n}\\n.nodeAttachmentContextMenu .menuItem[data-v-102b205d] {\\n font-size: 14px;\\n font-family: PingFangSC-Regular, PingFang SC;\\n font-weight: 400;\\n color: #1a1a1a;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeAttachment.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeHyperlink.vue?vue&type=style&index=0&id=73163d9c&lang=less&scoped=true":
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeHyperlink.vue?vue&type=style&index=0&id=73163d9c&lang=less&scoped=true ***!
\***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".nodeHyperlinkDialog .item[data-v-73163d9c] {\\n display: flex;\\n align-items: center;\\n margin-bottom: 10px;\\n}\\n.nodeHyperlinkDialog .item .name[data-v-73163d9c] {\\n display: block;\\n width: 50px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeHyperlink.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIcon.vue?vue&type=style&index=0&id=1e192a33&lang=less&scoped=true":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeIcon.vue?vue&type=style&index=0&id=1e192a33&lang=less&scoped=true ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".nodeIconDialog[data-v-1e192a33] .el-dialog__body {\\n padding: 0 20px;\\n}\\n.nodeIconDialog .deleteBtn[data-v-1e192a33] {\\n margin-bottom: 20px;\\n}\\n.nodeIconDialog .item[data-v-1e192a33] {\\n margin-bottom: 20px;\\n font-weight: bold;\\n}\\n.nodeIconDialog .item .title[data-v-1e192a33] {\\n margin-bottom: 10px;\\n}\\n.nodeIconDialog .item .list[data-v-1e192a33] {\\n display: flex;\\n flex-wrap: wrap;\\n}\\n.nodeIconDialog .item .list .icon[data-v-1e192a33] {\\n width: 24px;\\n height: 24px;\\n margin-right: 10px;\\n margin-bottom: 10px;\\n cursor: pointer;\\n position: relative;\\n}\\n.nodeIconDialog .item .list .icon[data-v-1e192a33] img {\\n width: 100%;\\n height: 100%;\\n}\\n.nodeIconDialog .item .list .icon[data-v-1e192a33] svg {\\n width: 100%;\\n height: 100%;\\n}\\n.nodeIconDialog .item .list .icon.selected[data-v-1e192a33]::after {\\n content: '';\\n position: absolute;\\n left: -4px;\\n top: -4px;\\n width: 28px;\\n height: 28px;\\n border-radius: 50%;\\n border: 2px solid #409eff;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIcon.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=style&index=0&id=57cd2bd9&lang=less&scoped=true":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=style&index=0&id=57cd2bd9&lang=less&scoped=true ***!
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".box[data-v-57cd2bd9] {\\n padding: 0 20px;\\n}\\n.box.isDark .title[data-v-57cd2bd9] {\\n color: #fff;\\n}\\n.box .title[data-v-57cd2bd9] {\\n font-size: 16px;\\n font-weight: 500;\\n color: #333;\\n}\\n.box .boxContent .iconBox .item[data-v-57cd2bd9] {\\n margin-bottom: 20px;\\n font-weight: bold;\\n}\\n.box .boxContent .iconBox .item .title[data-v-57cd2bd9] {\\n margin-bottom: 10px;\\n}\\n.box .boxContent .iconBox .item .list[data-v-57cd2bd9] {\\n display: flex;\\n flex-wrap: wrap;\\n}\\n.box .boxContent .iconBox .item .list .icon[data-v-57cd2bd9] {\\n width: 24px;\\n height: 24px;\\n margin-right: 10px;\\n margin-bottom: 10px;\\n cursor: pointer;\\n position: relative;\\n}\\n.box .boxContent .iconBox .item .list .icon[data-v-57cd2bd9] img {\\n width: 100%;\\n height: 100%;\\n}\\n.box .boxContent .iconBox .item .list .icon[data-v-57cd2bd9] svg {\\n width: 100%;\\n height: 100%;\\n}\\n.box .boxContent .iconBox .item .list .icon.selected[data-v-57cd2bd9]::after {\\n content: '';\\n position: absolute;\\n left: -4px;\\n top: -4px;\\n width: 28px;\\n height: 28px;\\n border-radius: 50%;\\n border: 2px solid #409eff;\\n}\\n.box .boxContent .imageBox[data-v-57cd2bd9] {\\n margin-bottom: 20px;\\n font-weight: bold;\\n}\\n.box .boxContent .imageBox .title[data-v-57cd2bd9] {\\n margin-bottom: 10px;\\n}\\n.box .boxContent .imageBox .list[data-v-57cd2bd9] {\\n display: flex;\\n flex-wrap: wrap;\\n}\\n.box .boxContent .imageBox .list .icon[data-v-57cd2bd9] {\\n width: 50px;\\n height: 50px;\\n margin-right: 10px;\\n margin-bottom: 10px;\\n cursor: pointer;\\n position: relative;\\n}\\n.box .boxContent .imageBox .list .icon[data-v-57cd2bd9] img {\\n width: 100%;\\n height: 100%;\\n -o-object-fit: contain;\\n object-fit: contain;\\n}\\n.box .boxContent .imageBox .list .icon.selected[data-v-57cd2bd9]::after {\\n content: '';\\n position: absolute;\\n left: -4px;\\n top: -4px;\\n width: 54px;\\n height: 54px;\\n border: 2px solid #409eff;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIconSidebar.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=style&index=0&id=46f8f710&lang=less&scoped=true":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=style&index=0&id=46f8f710&lang=less&scoped=true ***!
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".nodeIconToolbar[data-v-46f8f710] {\\n position: fixed;\\n z-index: 2000;\\n width: 210px;\\n max-height: 170px;\\n background: #fff;\\n border: 1px solid rgba(0, 0, 0, 0.06);\\n border-radius: 8px;\\n box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06);\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n}\\n.nodeIconToolbar .iconListBox[data-v-46f8f710] {\\n width: 100%;\\n height: 180px;\\n overflow-y: auto;\\n padding: 10px;\\n}\\n.nodeIconToolbar .iconListBox .icon[data-v-46f8f710] {\\n width: 24px;\\n height: 24px;\\n margin: 5px;\\n cursor: pointer;\\n position: relative;\\n float: left;\\n}\\n.nodeIconToolbar .iconListBox .icon[data-v-46f8f710] img {\\n width: 100%;\\n height: 100%;\\n}\\n.nodeIconToolbar .iconListBox .icon[data-v-46f8f710] svg {\\n width: 100%;\\n height: 100%;\\n}\\n.nodeIconToolbar .iconListBox .icon.selected[data-v-46f8f710]::after {\\n content: '';\\n position: absolute;\\n left: -4px;\\n top: -4px;\\n width: 28px;\\n height: 28px;\\n border-radius: 50%;\\n border: 2px solid #409eff;\\n}\\n.nodeIconToolbar .btnBox[data-v-46f8f710] {\\n width: 100%;\\n height: 30px;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n border-top: 1px solid #eee;\\n flex-shrink: 0;\\n}\\n.nodeIconToolbar .btnBox .btn[data-v-46f8f710] {\\n cursor: pointer;\\n color: rgba(26, 26, 26, 0.8);\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIconToolbar.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImage.vue?vue&type=style&index=0&id=7395e9de&lang=less&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeImage.vue?vue&type=style&index=0&id=7395e9de&lang=less&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".nodeImageDialog .title[data-v-7395e9de] {\\n font-size: 18px;\\n margin-bottom: 12px;\\n}\\n.nodeImageDialog .inputBox[data-v-7395e9de] {\\n display: flex;\\n align-items: center;\\n margin-bottom: 10px;\\n}\\n.nodeImageDialog .inputBox .label[data-v-7395e9de] {\\n width: 150px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImage.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=style&index=0&id=e543fe22&lang=less&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=style&index=0&id=e543fe22&lang=less&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".nodeImgPlacementToolbar[data-v-e543fe22] {\\n position: fixed;\\n z-index: 2000;\\n height: 40px;\\n background: #fff;\\n border: 1px solid rgba(0, 0, 0, 0.06);\\n border-radius: 8px;\\n box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06);\\n display: flex;\\n align-items: center;\\n padding: 0 10px;\\n /* copyBtn 复用 .imgPlacementItem 的方形样式即可 */\\n}\\n.nodeImgPlacementToolbar .imgPlacementItem[data-v-e543fe22] {\\n width: 30px;\\n height: 30px;\\n margin: 5px;\\n cursor: pointer;\\n font-size: 20px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: 4px;\\n}\\n.nodeImgPlacementToolbar .imgPlacementItem[data-v-e543fe22]:hover {\\n background-color: #ededed;\\n}\\n.nodeImgPlacementToolbar .imgPlacementItem.icon_top[data-v-e543fe22] {\\n transform: rotateZ(90deg);\\n}\\n.nodeImgPlacementToolbar .imgPlacementItem.icon_bottom[data-v-e543fe22] {\\n transform: rotateZ(-90deg);\\n}\\n.nodeImgPlacementToolbar .imgPlacementItem.icon_right[data-v-e543fe22] {\\n transform: rotateZ(180deg);\\n}\\n.nodeImgPlacementToolbar .imgPlacementItem.selected[data-v-e543fe22] {\\n background-color: #ededed;\\n}\\n.nodeImgPlacementToolbar .divider[data-v-e543fe22] {\\n width: 1px;\\n height: 20px;\\n margin: 0 6px 0 2px;\\n background: rgba(0, 0, 0, 0.08);\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImgPlacementToolbar.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeNote.vue?vue&type=style&index=0&id=af598da8&lang=less&scoped=true":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeNote.vue?vue&type=style&index=0&id=af598da8&lang=less&scoped=true ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".nodeNoteDialog .tip[data-v-af598da8] {\\n margin-top: 5px;\\n color: #dcdfe6;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeNote.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=style&index=0&id=6b66390c&lang=less&scoped=true":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=style&index=0&id=6b66390c&lang=less&scoped=true ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".noteContentViewer[data-v-6b66390c] {\\n position: fixed;\\n background-color: #fff;\\n padding: 10px;\\n border-radius: 5px;\\n max-height: 300px;\\n overflow-y: auto;\\n box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06);\\n border: 1px solid rgba(0, 0, 0, 0.06);\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeNoteContentShow.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=0&id=7cdd956c&lang=less":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=0&id=7cdd956c&lang=less ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".el-select-dropdown__item.selected .borderLine {\\n background-color: #409eff;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeOuterFrame.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=1&id=7cdd956c&lang=less&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=1&id=7cdd956c&lang=less&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".nodeOuterFrameContainer[data-v-7cdd956c] {\\n position: fixed;\\n transform: translate(-12px, -12px);\\n}\\n.nodeOuterFrameContainer.isDark .panel[data-v-7cdd956c] {\\n background-color: #262a2e;\\n border-left-color: hsla(0, 0%, 100%, 0.1);\\n}\\n.nodeOuterFrameContainer.isDark .panel .panelHeader .name[data-v-7cdd956c] {\\n color: #fff;\\n}\\n.nodeOuterFrameContainer.isDark .panel .panelBody .row .rowItem .name[data-v-7cdd956c] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.nodeOuterFrameContainer .btn[data-v-7cdd956c] {\\n width: 24px;\\n height: 24px;\\n background-color: #fff;\\n border-radius: 50%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06);\\n border: 1px solid rgba(0, 0, 0, 0.06);\\n}\\n.nodeOuterFrameContainer .panel[data-v-7cdd956c] {\\n position: absolute;\\n left: 0;\\n top: 24px;\\n background-color: #fff;\\n border-radius: 5px;\\n box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06);\\n border: 1px solid rgba(0, 0, 0, 0.06);\\n width: 250px;\\n padding: 12px;\\n}\\n.nodeOuterFrameContainer .panel .panelHeader[data-v-7cdd956c] {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n margin-bottom: 12px;\\n}\\n.nodeOuterFrameContainer .panel .panelHeader .name[data-v-7cdd956c] {\\n font-size: 16px;\\n font-family: PingFangSC-Medium, PingFang SC;\\n font-weight: 500;\\n color: rgba(26, 26, 26, 0.9);\\n}\\n.nodeOuterFrameContainer .panel .panelHeader .deleteBtn[data-v-7cdd956c] {\\n display: flex;\\n align-items: center;\\n color: #909090;\\n font-size: 14px;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n}\\n.nodeOuterFrameContainer .panel .panelHeader .deleteBtn .iconfont[data-v-7cdd956c] {\\n margin-left: 2px;\\n font-size: 14px;\\n}\\n.nodeOuterFrameContainer .panel .panelBody .row[data-v-7cdd956c] {\\n display: flex;\\n justify-content: space-between;\\n margin-bottom: 10px;\\n}\\n.nodeOuterFrameContainer .panel .panelBody .row[data-v-7cdd956c]:last-of-type {\\n margin-bottom: 0px;\\n}\\n.nodeOuterFrameContainer .panel .panelBody .row .rowItem[data-v-7cdd956c] {\\n display: flex;\\n align-items: center;\\n}\\n.nodeOuterFrameContainer .panel .panelBody .row .rowItem .name[data-v-7cdd956c] {\\n font-size: 12px;\\n margin-right: 10px;\\n white-space: nowrap;\\n}\\n.nodeOuterFrameContainer .panel .panelBody .row .rowItem .block[data-v-7cdd956c] {\\n display: inline-block;\\n width: 20px;\\n height: 20px;\\n border: 1px solid #dcdfe6;\\n border-radius: 4px;\\n cursor: pointer;\\n}\\n.borderLine[data-v-7cdd956c] {\\n display: inline-block;\\n width: 100%;\\n background-color: #000;\\n}\\n.borderLine.isDark[data-v-7cdd956c] {\\n background-color: #fff;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeOuterFrame.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeTag.vue?vue&type=style&index=0&id=a37d0d60&lang=less&scoped=true":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeTag.vue?vue&type=style&index=0&id=a37d0d60&lang=less&scoped=true ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".nodeTagDialog .tagList[data-v-a37d0d60] {\\n display: flex;\\n flex-wrap: wrap;\\n margin-top: 5px;\\n}\\n.nodeTagDialog .tagList .tagItem[data-v-a37d0d60] {\\n position: relative;\\n padding: 3px 5px;\\n margin-right: 5px;\\n margin-bottom: 5px;\\n color: #fff;\\n}\\n.nodeTagDialog .tagList .tagItem .delBtn[data-v-a37d0d60] {\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.4);\\n color: #fff;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n cursor: pointer;\\n visibility: hidden;\\n}\\n.nodeTagDialog .tagList .tagItem:hover .delBtn[data-v-a37d0d60] {\\n visibility: visible;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeTag.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeTagStyle.vue?vue&type=style&index=0&id=cecf481e&lang=less&scoped=true":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeTagStyle.vue?vue&type=style&index=0&id=cecf481e&lang=less&scoped=true ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".nodeTagStyleContainer[data-v-cecf481e] {\\n position: fixed;\\n width: 260px;\\n padding: 12px;\\n background-color: #fff;\\n border-radius: 5px;\\n box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06);\\n border: 1px solid rgba(0, 0, 0, 0.06);\\n}\\n.nodeTagStyleContainer.isDark[data-v-cecf481e] {\\n background-color: #262a2e;\\n border-left-color: hsla(0, 0%, 100%, 0.1);\\n}\\n.nodeTagStyleContainer .row[data-v-cecf481e] {\\n display: flex;\\n justify-content: space-between;\\n margin-bottom: 10px;\\n}\\n.nodeTagStyleContainer .row[data-v-cecf481e]:last-of-type {\\n margin-bottom: 0px;\\n}\\n.nodeTagStyleContainer .row .colorItem[data-v-cecf481e] {\\n display: inline-block;\\n width: 20px;\\n height: 20px;\\n border: 1px solid #dcdfe6;\\n border-radius: 4px;\\n cursor: pointer;\\n}\\n.nodeTagStyleContainer .row .colorItemBox[data-v-cecf481e] {\\n height: 20px;\\n cursor: pointer;\\n}\\n.nodeTagStyleContainer .row .colorItemBox .colorTriggerBtn[data-v-cecf481e] {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n}\\n.nodeTagStyleContainer .row .colorItemBox .colorTriggerBtn .colorItem[data-v-cecf481e] {\\n height: 5px;\\n}\\n.nodeTagStyleContainer .row .deleteBtn[data-v-cecf481e] {\\n white-space: nowrap;\\n display: flex;\\n align-items: center;\\n margin-left: 5px;\\n cursor: pointer;\\n color: #9aa5b8;\\n font-size: 12px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n}\\n.nodeTagStyleContainer .row .deleteBtn[data-v-cecf481e]:hover {\\n color: #eb5555;\\n}\\n.nodeTagStyleContainer .row .deleteBtn .iconfont[data-v-cecf481e] {\\n font-size: 12px;\\n margin-right: 2px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeTagStyle.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=style&index=0&id=9136dda4&lang=less&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=style&index=0&id=9136dda4&lang=less&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".siyuan-link-float[data-v-9136dda4] {\\n position: fixed;\\n background-color: #fff;\\n border: 1px solid #dcdfe6;\\n border-radius: 4px;\\n padding: 10px;\\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\\n z-index: 9999;\\n transition: opacity 0.5s ease, transform 0.5s ease;\\n}\\n.siyuan-link-float .button-container[data-v-9136dda4] {\\n display: flex;\\n justify-content: space-around;\\n width: 80px;\\n}\\n.siyuan-link-float .graphic-button[data-v-9136dda4] {\\n width: 30px;\\n height: 30px;\\n border: 1px solid #dcdfe6;\\n border-radius: 4px;\\n cursor: pointer;\\n display: flex;\\n overflow: hidden;\\n}\\n.siyuan-link-float .graphic-button[data-v-9136dda4]:hover {\\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);\\n}\\n.siyuan-link-float .graphic-button.right .left-part[data-v-9136dda4] {\\n width: 50%;\\n background-color: #4d4d4d;\\n}\\n.siyuan-link-float .graphic-button.right .right-part[data-v-9136dda4] {\\n width: 50%;\\n background-color: #e6e8eb;\\n}\\n.siyuan-link-float .graphic-button.bottom[data-v-9136dda4] {\\n flex-direction: column;\\n}\\n.siyuan-link-float .graphic-button.bottom .top-part[data-v-9136dda4] {\\n height: 50%;\\n background-color: #4d4d4d;\\n}\\n.siyuan-link-float .graphic-button.bottom .bottom-part[data-v-9136dda4] {\\n height: 50%;\\n background-color: #e6e8eb;\\n}\\n.fade-enter-active[data-v-9136dda4],\\n.fade-leave-active[data-v-9136dda4] {\\n transition: opacity 0.3s ease, transform 0.3s ease;\\n}\\n.fade-enter-from[data-v-9136dda4],\\n.fade-leave-to[data-v-9136dda4] {\\n opacity: 0;\\n transform: scale(0.95);\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OpenSiyuanFloat/index.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Outline.vue?vue&type=style&index=0&id=f578ab4c&lang=less&scoped=true":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Outline.vue?vue&type=style&index=0&id=f578ab4c&lang=less&scoped=true ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".customNode[data-v-f578ab4c] {\\n width: 100%;\\n color: rgba(0, 0, 0, 0.85);\\n font-weight: bold;\\n}\\n.customNode .nodeEdit[data-v-f578ab4c] {\\n outline: none;\\n white-space: normal;\\n padding-right: 20px;\\n}\\n.outlineTree.isDark[data-v-f578ab4c] {\\n background-color: #262a2e;\\n}\\n.outlineTree.isDark .customNode[data-v-f578ab4c] {\\n color: #fff;\\n}\\n.outlineTree.isDark.el-tree--highlight-current[data-v-f578ab4c] .el-tree-node.is-current > .el-tree-node__content {\\n background-color: hsla(0, 0%, 100%, 0.05) !important;\\n}\\n.outlineTree.isDark[data-v-f578ab4c] .el-tree-node__content:hover,\\n.outlineTree.isDark .el-upload-list__item[data-v-f578ab4c]:hover {\\n background-color: hsla(0, 0%, 100%, 0.02) !important;\\n}\\n.outlineTree.isDark[data-v-f578ab4c] .el-tree-node__content .el-tree-node__expand-icon {\\n color: #fff;\\n}\\n.outlineTree.isDark[data-v-f578ab4c] .el-tree-node__content .el-tree-node__expand-icon.is-leaf::after {\\n background-color: #fff;\\n}\\n.outlineTree[data-v-f578ab4c] .el-tree-node > .el-tree-node__children {\\n overflow: inherit;\\n}\\n.outlineTree[data-v-f578ab4c] .el-tree-node__content {\\n height: auto;\\n margin: 5px 0;\\n}\\n.outlineTree[data-v-f578ab4c] .el-tree-node__content .el-tree-node__expand-icon {\\n color: #262a2e;\\n}\\n.outlineTree[data-v-f578ab4c] .el-tree-node__content .el-tree-node__expand-icon.is-leaf {\\n color: transparent;\\n position: relative;\\n}\\n.outlineTree[data-v-f578ab4c] .el-tree-node__content .el-tree-node__expand-icon.is-leaf::after {\\n background-color: #262a2e;\\n position: absolute;\\n content: '';\\n width: 5px;\\n height: 5px;\\n border-radius: 50%;\\n left: 10px;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Outline.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OutlineEdit.vue?vue&type=style&index=0&id=15cdb684&lang=less&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/OutlineEdit.vue?vue&type=style&index=0&id=15cdb684&lang=less&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".outlineEditContainer[data-v-15cdb684] {\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n z-index: 1999;\\n background-color: #fff;\\n overflow: hidden;\\n}\\n.outlineEditContainer.isDark[data-v-15cdb684] {\\n background-color: #262a2e;\\n}\\n.outlineEditContainer.isDark .btnList .btn .icon[data-v-15cdb684] {\\n color: #fff;\\n}\\n.outlineEditContainer .btnList[data-v-15cdb684] {\\n position: absolute;\\n right: 40px;\\n top: 20px;\\n display: flex;\\n align-items: center;\\n}\\n.outlineEditContainer .btnList .btn[data-v-15cdb684] {\\n cursor: pointer;\\n margin-left: 12px;\\n}\\n.outlineEditContainer .btnList .btn .icon[data-v-15cdb684] {\\n font-size: 28px;\\n}\\n.outlineEditContainer .outlineEditBox[data-v-15cdb684] {\\n width: 100%;\\n height: 100%;\\n overflow-y: auto;\\n padding: 50px 0;\\n}\\n.outlineEditContainer .outlineEditBox .outlineEdit[data-v-15cdb684] {\\n width: 1000px;\\n height: 100%;\\n height: -moz-max-content;\\n height: max-content;\\n margin: 0 auto;\\n}\\n.outlineEditContainer .outlineEditBox .outlineEdit[data-v-15cdb684] .customNode .nodeEdit {\\n max-width: 800px;\\n}\\n.customNode[data-v-15cdb684] {\\n width: 100%;\\n color: rgba(0, 0, 0, 0.85);\\n font-weight: bold;\\n}\\n.customNode .nodeEdit[data-v-15cdb684] {\\n outline: none;\\n white-space: normal;\\n padding-right: 20px;\\n}\\n.outlineTree.isDark[data-v-15cdb684] {\\n background-color: #262a2e;\\n}\\n.outlineTree.isDark .customNode[data-v-15cdb684] {\\n color: #fff;\\n}\\n.outlineTree.isDark.el-tree--highlight-current[data-v-15cdb684] .el-tree-node.is-current > .el-tree-node__content {\\n background-color: hsla(0, 0%, 100%, 0.05) !important;\\n}\\n.outlineTree.isDark[data-v-15cdb684] .el-tree-node__content:hover,\\n.outlineTree.isDark .el-upload-list__item[data-v-15cdb684]:hover {\\n background-color: hsla(0, 0%, 100%, 0.02) !important;\\n}\\n.outlineTree.isDark[data-v-15cdb684] .el-tree-node__content .el-tree-node__expand-icon {\\n color: #fff;\\n}\\n.outlineTree.isDark[data-v-15cdb684] .el-tree-node__content .el-tree-node__expand-icon.is-leaf::after {\\n background-color: #fff;\\n}\\n.outlineTree[data-v-15cdb684] .el-tree-node > .el-tree-node__children {\\n overflow: inherit;\\n}\\n.outlineTree[data-v-15cdb684] .el-tree-node__content {\\n height: auto;\\n margin: 5px 0;\\n}\\n.outlineTree[data-v-15cdb684] .el-tree-node__content .el-tree-node__expand-icon {\\n color: #262a2e;\\n}\\n.outlineTree[data-v-15cdb684] .el-tree-node__content .el-tree-node__expand-icon.is-leaf {\\n color: transparent;\\n position: relative;\\n}\\n.outlineTree[data-v-15cdb684] .el-tree-node__content .el-tree-node__expand-icon.is-leaf::after {\\n background-color: #262a2e;\\n position: absolute;\\n content: '';\\n width: 5px;\\n height: 5px;\\n border-radius: 50%;\\n left: 10px;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OutlineEdit.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OutlineSidebar.vue?vue&type=style&index=0&id=51befc5c&lang=less&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/OutlineSidebar.vue?vue&type=style&index=0&id=51befc5c&lang=less&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".btnList[data-v-51befc5c] {\\n position: absolute;\\n right: 50px;\\n top: 12px;\\n display: flex;\\n align-items: center;\\n}\\n.btnList .btn[data-v-51befc5c] {\\n cursor: pointer;\\n margin-left: 12px;\\n}\\n.btnList .btn.isDark[data-v-51befc5c] {\\n color: #fff;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OutlineSidebar.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/RichEditor/index.vue?vue&type=style&index=0&id=10cbee78&lang=less":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/RichEditor/index.vue?vue&type=style&index=0&id=10cbee78&lang=less ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"#kmind-rich-editor-modal {\\n padding: 1rem;\\n overflow-y: auto;\\n height: 75vh;\\n background-color: var(--10cbee78-backgroundColor);\\n}\\n[data-mode='formula'] {\\n left: 0px !important;\\n top: -70px !important;\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='宋体, SimSun, Songti SC']::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='宋体, SimSun, Songti SC']::before {\\n content: '宋体, SimSun, Songti SC';\\n font-family: '宋体, SimSun, Songti SC';\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='微软雅黑, Microsoft YaHei']::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='微软雅黑, Microsoft YaHei']::before {\\n content: '微软雅黑, Microsoft YaHei';\\n font-family: '微软雅黑, Microsoft YaHei';\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='楷体, 楷体_GB2312, SimKai, STKaiti']::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='楷体, 楷体_GB2312, SimKai, STKaiti']::before {\\n content: '楷体, 楷体_GB2312, SimKai, STKaiti';\\n font-family: '楷体, 楷体_GB2312, SimKai, STKaiti';\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='黑体, SimHei, Heiti SC']::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='黑体, SimHei, Heiti SC']::before {\\n content: '黑体, SimHei, Heiti SC';\\n font-family: '黑体, SimHei, Heiti SC';\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='隶书, SimLi']::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='隶书, SimLi']::before {\\n content: '隶书, SimLi';\\n font-family: '隶书, SimLi';\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='andale mono']::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='andale mono']::before {\\n content: 'andale mono';\\n font-family: 'andale mono';\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='arial, helvetica, sans-serif']::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='arial, helvetica, sans-serif']::before {\\n content: 'arial, helvetica, sans-serif';\\n font-family: 'arial, helvetica, sans-serif';\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='arial black, avant garde']::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='arial black, avant garde']::before {\\n content: 'arial black, avant garde';\\n font-family: 'arial black, avant garde';\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='comic sans ms']::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='comic sans ms']::before {\\n content: 'comic sans ms';\\n font-family: 'comic sans ms';\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='impact, chicago']::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='impact, chicago']::before {\\n content: 'impact, chicago';\\n font-family: 'impact, chicago';\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='times new roman']::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='times new roman']::before {\\n content: 'times new roman';\\n font-family: 'times new roman';\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='sans-serif']::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='sans-serif']::before {\\n content: 'sans-serif';\\n font-family: 'sans-serif';\\n}\\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='serif']::before,\\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='serif']::before {\\n content: 'serif';\\n font-family: 'serif';\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/RichEditor/index.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/RichTextToolbar.vue?vue&type=style&index=0&id=06888dac&lang=less&scoped=true":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/RichTextToolbar.vue?vue&type=style&index=0&id=06888dac&lang=less&scoped=true ***!
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".richTextToolbar[data-v-06888dac] {\\n position: var(--06888dac-positionMode);\\n z-index: 2000;\\n height: 55px;\\n background: #fff;\\n border: 1px solid rgba(0, 0, 0, 0.06);\\n border-radius: 8px;\\n box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06);\\n display: flex;\\n align-items: center;\\n transform: translateX(-50%);\\n}\\n.richTextToolbar.isDark[data-v-06888dac] {\\n background: #363b3f;\\n}\\n.richTextToolbar.isDark .btn[data-v-06888dac] {\\n color: #fff;\\n}\\n.richTextToolbar.isDark .btn[data-v-06888dac]:hover {\\n background: hsla(0, 0%, 100%, 0.05);\\n}\\n.richTextToolbar .btn[data-v-06888dac] {\\n width: 55px;\\n height: 55px;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n cursor: pointer;\\n}\\n.richTextToolbar .btn[data-v-06888dac]:hover {\\n background-color: #eefbed;\\n}\\n.richTextToolbar .btn.active[data-v-06888dac] {\\n color: #12bb37;\\n}\\n.richTextToolbar .btn .icon[data-v-06888dac] {\\n font-size: 20px;\\n}\\n.richTextToolbar .btn .icon.fontColor[data-v-06888dac] {\\n font-size: 26px;\\n}\\n.fontOptionsList[data-v-06888dac] {\\n width: 150px;\\n}\\n.fontOptionsList.isDark .fontOptionItem[data-v-06888dac] {\\n color: #fff;\\n}\\n.fontOptionsList.isDark .fontOptionItem[data-v-06888dac]:hover {\\n background-color: hsla(0, 0%, 100%, 0.05);\\n}\\n.fontOptionsList .fontOptionItem[data-v-06888dac] {\\n height: 30px;\\n width: 100%;\\n display: flex;\\n align-items: center;\\n cursor: pointer;\\n}\\n.fontOptionsList .fontOptionItem[data-v-06888dac]:hover {\\n background-color: #f7f7f7;\\n}\\n.fontOptionsList .fontOptionItem.active[data-v-06888dac] {\\n color: #12bb37;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/RichTextToolbar.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Scale.vue?vue&type=style&index=0&id=1405f13c&lang=less&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Scale.vue?vue&type=style&index=0&id=1405f13c&lang=less&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".scaleContainer[data-v-1405f13c] {\\n display: flex;\\n align-items: center;\\n}\\n.scaleContainer.isDark .btn[data-v-1405f13c] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.scaleContainer.isDark .scaleInfo[data-v-1405f13c] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.scaleContainer.isDark .scaleInfo input[data-v-1405f13c] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.scaleContainer .btn[data-v-1405f13c] {\\n cursor: pointer;\\n}\\n.scaleContainer .scaleInfo[data-v-1405f13c] {\\n margin: 0 20px;\\n display: flex;\\n align-items: center;\\n}\\n.scaleContainer .scaleInfo input[data-v-1405f13c] {\\n width: 35px;\\n text-align: center;\\n background-color: transparent;\\n border: none;\\n outline: none;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Scale.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Scrollbar.vue?vue&type=style&index=0&id=6aaa1384&lang=less&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Scrollbar.vue?vue&type=style&index=0&id=6aaa1384&lang=less&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".scrollbarContainer.isDark .scrollbar[data-v-6aaa1384] {\\n background-color: #363b3f;\\n}\\n.scrollbarContainer.isDark .scrollbar .scrollbarInner[data-v-6aaa1384] {\\n background-color: rgba(0, 0, 0, 0.3);\\n}\\n.scrollbarContainer .scrollbar[data-v-6aaa1384] {\\n position: absolute;\\n background-color: #f5f5f5;\\n border-radius: 10px;\\n overflow: hidden;\\n}\\n.scrollbarContainer .scrollbar.verticalScrollbar[data-v-6aaa1384] {\\n width: 10px;\\n top: 100px;\\n bottom: 100px;\\n left: 20px;\\n}\\n.scrollbarContainer .scrollbar.verticalScrollbar .scrollbarInner[data-v-6aaa1384] {\\n width: 10px;\\n left: 0;\\n}\\n.scrollbarContainer .scrollbar.horizontalScrollbar[data-v-6aaa1384] {\\n height: 10px;\\n left: 100px;\\n right: 100px;\\n bottom: 70px;\\n}\\n.scrollbarContainer .scrollbar.horizontalScrollbar .scrollbarInner[data-v-6aaa1384] {\\n height: 10px;\\n top: 0;\\n}\\n.scrollbarContainer .scrollbar .scrollbarInner[data-v-6aaa1384] {\\n position: absolute;\\n background-color: #ccc;\\n border-radius: 10px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Scrollbar.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Search.vue?vue&type=style&index=0&id=2f3913c0&lang=less&scoped=true":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Search.vue?vue&type=style&index=0&id=2f3913c0&lang=less&scoped=true ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".searchContainer[data-v-2f3913c0] {\\n position: relative;\\n background-color: #fff;\\n padding: 16px;\\n width: 296px;\\n border-radius: 12px;\\n box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.1);\\n position: var(--2f3913c0-positionMode);\\n top: 110px;\\n right: var(--2f3913c0-initialRightPosition);\\n transition: all 0.3s;\\n z-index: 1000;\\n overflow: hidden;\\n}\\n.searchContainer.isDark[data-v-2f3913c0] {\\n background-color: #363b3f;\\n}\\n.searchContainer.isDark .closeBtnBox[data-v-2f3913c0] {\\n color: #fff;\\n background-color: #363b3f;\\n}\\n.searchContainer.show[data-v-2f3913c0] {\\n right: 20px;\\n}\\n.searchContainer .btnList[data-v-2f3913c0] {\\n display: flex;\\n justify-content: flex-end;\\n}\\n.searchContainer .closeBtnBox[data-v-2f3913c0] {\\n position: absolute;\\n right: -5px;\\n top: -5px;\\n width: 20px;\\n height: 20px;\\n background-color: #fff;\\n border-radius: 50%;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n cursor: pointer;\\n box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.1);\\n}\\n.searchContainer .closeBtnBox .closeBtn[data-v-2f3913c0] {\\n font-size: 16px;\\n}\\n.searchContainer .searchInputBox[data-v-2f3913c0] {\\n position: relative;\\n}\\n.searchContainer .searchInputBox .searchInfo[data-v-2f3913c0] {\\n position: absolute;\\n right: 70px;\\n top: 50%;\\n transform: translateY(-50%);\\n color: #909090;\\n font-size: 14px;\\n}\\n.searchContainer .searchResultList[data-v-2f3913c0] {\\n position: absolute;\\n left: 0;\\n top: 100%;\\n width: 100%;\\n background-color: #fff;\\n box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.1);\\n border-radius: 12px;\\n margin-top: 5px;\\n overflow-y: auto;\\n padding: 12px 0;\\n z-index: 1001;\\n}\\n.searchContainer .searchResultList .searchResultItem[data-v-2f3913c0] {\\n height: 30px;\\n line-height: 30px;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n padding: 0 12px;\\n font-size: 14px;\\n cursor: pointer;\\n position: relative;\\n padding-left: 22px;\\n}\\n.searchContainer .searchResultList .searchResultItem[data-v-2f3913c0]::before {\\n content: '';\\n position: absolute;\\n left: 10px;\\n top: 50%;\\n transform: translateY(-50%);\\n width: 5px;\\n height: 5px;\\n background-color: #606266;\\n border-radius: 50%;\\n}\\n.searchContainer .searchResultList .searchResultItem[data-v-2f3913c0]:hover {\\n background-color: #f2f4f7;\\n}\\n.searchContainer .searchResultList .searchResultItem[data-v-2f3913c0] .match {\\n color: #409eff;\\n font-weight: bold;\\n}\\n.searchContainer .searchResultList .empty[data-v-2f3913c0] {\\n width: 100%;\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n}\\n.searchContainer .searchResultList .empty .iconfont[data-v-2f3913c0] {\\n font-size: 50px;\\n margin-bottom: 20px;\\n}\\n.searchContainer .searchResultList .empty .text[data-v-2f3913c0] {\\n font-size: 14px;\\n color: rgba(26, 26, 26, 0.8);\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Search.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Setting.vue?vue&type=style&index=0&id=59360d30&lang=less&scoped=true":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Setting.vue?vue&type=style&index=0&id=59360d30&lang=less&scoped=true ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".sidebarContent[data-v-59360d30] {\\n padding: 20px;\\n padding-top: 10px;\\n}\\n.sidebarContent.isDark .title[data-v-59360d30] {\\n color: #fff;\\n}\\n.sidebarContent.isDark .row .rowItem .name[data-v-59360d30] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.sidebarContent .title[data-v-59360d30] {\\n font-size: 16px;\\n font-family: PingFangSC-Medium, PingFang SC;\\n font-weight: 500;\\n color: rgba(26, 26, 26, 0.9);\\n margin-bottom: 10px;\\n margin-top: 20px;\\n}\\n.sidebarContent .title.noTop[data-v-59360d30] {\\n margin-top: 0;\\n}\\n.sidebarContent .row[data-v-59360d30] {\\n display: flex;\\n justify-content: space-between;\\n margin-bottom: 10px;\\n}\\n.sidebarContent .row .rowItem[data-v-59360d30] {\\n display: flex;\\n align-items: center;\\n margin-bottom: 5px;\\n}\\n.sidebarContent .row .rowItem .name[data-v-59360d30] {\\n font-size: 12px;\\n margin-right: 10px;\\n white-space: nowrap;\\n}\\n.sidebarContent .row .rowItem .block[data-v-59360d30] {\\n display: inline-block;\\n width: 30px;\\n height: 30px;\\n border: 1px solid #dcdfe6;\\n border-radius: 4px;\\n cursor: pointer;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Setting.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/ShortcutKey.vue?vue&type=style&index=0&id=d257aa5e&lang=less&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/ShortcutKey.vue?vue&type=style&index=0&id=d257aa5e&lang=less&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".box[data-v-d257aa5e] {\\n padding: 0 20px;\\n}\\n.box.isDark .title[data-v-d257aa5e] {\\n color: #fff;\\n}\\n.box.isDark .list .item .icon[data-v-d257aa5e] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.box.isDark .list .item .name[data-v-d257aa5e] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.box.isDark .list .item .value[data-v-d257aa5e] {\\n color: hsla(0, 0%, 100%, 0.3);\\n}\\n.box .title[data-v-d257aa5e] {\\n font-size: 16px;\\n font-weight: 500;\\n color: #333;\\n margin: 26px 0 20px;\\n}\\n.box .list[data-v-d257aa5e] {\\n font-size: 14px;\\n}\\n.box .list .item[data-v-d257aa5e] {\\n display: flex;\\n align-items: center;\\n margin-bottom: 15px;\\n}\\n.box .list .item .icon[data-v-d257aa5e] {\\n font-size: 16px;\\n margin-right: 16px;\\n}\\n.box .list .item .name[data-v-d257aa5e] {\\n color: #333;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n.box .list .item .value[data-v-d257aa5e] {\\n color: #909090;\\n margin-left: auto;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/ShortcutKey.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Sidebar.vue?vue&type=style&index=0&id=7b9adf18&lang=less&scoped=true":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Sidebar.vue?vue&type=style&index=0&id=7b9adf18&lang=less&scoped=true ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".sidebarContainer[data-v-7b9adf18] {\\n position: var(--7b9adf18-positionMode);\\n right: -300px;\\n top: 110px;\\n bottom: 0;\\n width: 300px;\\n background-color: #fff;\\n border-left: 1px solid #e8e8e8;\\n display: flex;\\n flex-direction: column;\\n transition: all 0.3s;\\n}\\n.sidebarContainer.isDark[data-v-7b9adf18] {\\n background-color: #262a2e;\\n border-left-color: hsla(0, 0%, 100%, 0.1);\\n}\\n.sidebarContainer.isDark .sidebarHeader[data-v-7b9adf18] {\\n border-bottom-color: hsla(0, 0%, 100%, 0.1);\\n color: #fff;\\n}\\n.sidebarContainer.isDark .closeBtn[data-v-7b9adf18] {\\n color: #fff;\\n}\\n.sidebarContainer.show[data-v-7b9adf18] {\\n right: 0;\\n}\\n.sidebarContainer .closeBtn[data-v-7b9adf18] {\\n position: absolute;\\n right: 20px;\\n top: 12px;\\n font-size: 20px;\\n cursor: pointer;\\n}\\n.sidebarContainer .sidebarHeader[data-v-7b9adf18] {\\n width: 100%;\\n height: 44px;\\n border-bottom: 1px solid #e8e8e8;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-grow: 0;\\n flex-shrink: 0;\\n}\\n.sidebarContainer .sidebarContent[data-v-7b9adf18] {\\n width: 100%;\\n height: 100%;\\n overflow: auto;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Sidebar.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/SidebarTrigger.vue?vue&type=style&index=0&id=c4f3b258&lang=less&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/SidebarTrigger.vue?vue&type=style&index=0&id=c4f3b258&lang=less&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".sidebarTriggerContainer[data-v-c4f3b258] {\\n position: var(--c4f3b258-positionMode);\\n right: -60px;\\n margin-top: 110px;\\n transition: all 0.3s;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n.sidebarTriggerContainer.isDark .trigger[data-v-c4f3b258] {\\n background-color: #262a2e;\\n}\\n.sidebarTriggerContainer.isDark .trigger .triggerItem[data-v-c4f3b258] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.sidebarTriggerContainer.isDark .trigger .triggerItem[data-v-c4f3b258]:hover {\\n background-color: hsla(0, 0%, 100%, 0.05);\\n}\\n.sidebarTriggerContainer.show[data-v-c4f3b258] {\\n right: 0;\\n}\\n.sidebarTriggerContainer.hasActive[data-v-c4f3b258] {\\n right: 305px;\\n}\\n.sidebarTriggerContainer .toggleShowBtn[data-v-c4f3b258] {\\n position: absolute;\\n left: -6px;\\n width: 35px;\\n height: 60px;\\n background: #a6a6a6;\\n top: 50%;\\n transform: translateY(-50%);\\n cursor: pointer;\\n transition: left 0.1s linear, background-color 0.5s ease;\\n z-index: 0;\\n border-top-left-radius: 10px;\\n border-bottom-left-radius: 10px;\\n display: flex;\\n align-items: center;\\n padding-left: 4px;\\n}\\n.sidebarTriggerContainer .toggleShowBtn.hide[data-v-c4f3b258] {\\n left: -8px;\\n}\\n.sidebarTriggerContainer .toggleShowBtn.hide span[data-v-c4f3b258] {\\n transform: rotateZ(180deg);\\n}\\n.sidebarTriggerContainer .toggleShowBtn[data-v-c4f3b258]:hover {\\n left: -18px;\\n background: #409eff;\\n}\\n.sidebarTriggerContainer .toggleShowBtn span[data-v-c4f3b258] {\\n color: #fff;\\n transition: all 0.1s;\\n}\\n.sidebarTriggerContainer .trigger[data-v-c4f3b258] {\\n position: relative;\\n width: 60px;\\n border-color: #eee;\\n background-color: #fff;\\n box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06);\\n border-radius: 6px;\\n overflow: hidden;\\n}\\n.sidebarTriggerContainer .trigger .triggerItem[data-v-c4f3b258] {\\n height: 60px;\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n cursor: pointer;\\n color: #464646;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n white-space: nowrap;\\n}\\n.sidebarTriggerContainer .trigger .triggerItem[data-v-c4f3b258]:hover {\\n background-color: #ededed;\\n}\\n.sidebarTriggerContainer .trigger .triggerItem.active[data-v-c4f3b258] {\\n color: #409eff;\\n font-weight: bold;\\n}\\n.sidebarTriggerContainer .trigger .triggerItem .triggerIcon[data-v-c4f3b258] {\\n font-size: 18px;\\n margin-bottom: 5px;\\n}\\n.sidebarTriggerContainer .trigger .triggerItem .triggerName[data-v-c4f3b258] {\\n font-size: 13px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/SidebarTrigger.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=style&index=0&id=3c00482c&lang=less&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=style&index=0&id=3c00482c&lang=less&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".sourceCodeEditContainer[data-v-3c00482c] {\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n z-index: 1999;\\n background-color: #f5f5f5;\\n overflow: hidden;\\n}\\n.sourceCodeEditContainer.isDark[data-v-3c00482c] {\\n background-color: #262a2e;\\n}\\n.sourceCodeEditContainer.isDark .closeBtn .icon[data-v-3c00482c] {\\n color: #fff;\\n}\\n.sourceCodeEditContainer .closeBtn[data-v-3c00482c] {\\n position: absolute;\\n right: 40px;\\n top: 20px;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n}\\n.sourceCodeEditContainer .closeBtn .icon[data-v-3c00482c] {\\n font-size: 28px;\\n margin-left: 10px;\\n}\\n.sourceCodeEditContainer .sourceCodeEditBox[data-v-3c00482c] {\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n padding: 50px 0;\\n}\\n.sourceCodeEditContainer .sourceCodeEditBox .outlineEdit[data-v-3c00482c] {\\n width: 1000px;\\n height: 100%;\\n margin: 0 auto;\\n font-size: 17px;\\n background-color: #fff;\\n font-family: Menlo, Monaco, Consolas, Andale Mono, Ubuntu Mono,\\n Courier New, monospace;\\n padding: 12px;\\n border-radius: 5px;\\n}\\n.sourceCodeEditContainer .sourceCodeEditBox .outlineEdit[data-v-3c00482c] .CodeMirror {\\n height: 100%;\\n font-family: Menlo, Monaco, Consolas, Andale Mono, Ubuntu Mono,\\n Courier New, monospace;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/SourceCodeEdit.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Structure.vue?vue&type=style&index=0&id=1932af0b&lang=less&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Structure.vue?vue&type=style&index=0&id=1932af0b&lang=less&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".layoutList[data-v-1932af0b] {\\n padding: 20px;\\n}\\n.layoutList.isDark .name[data-v-1932af0b] {\\n color: #fff;\\n}\\n.layoutList .layoutItem[data-v-1932af0b] {\\n width: 100%;\\n cursor: pointer;\\n border-bottom: 1px solid #e9e9e9;\\n margin-bottom: 20px;\\n padding-bottom: 20px;\\n transition: all 0.2s;\\n border: 1px solid transparent;\\n}\\n.layoutList .layoutItem[data-v-1932af0b]:last-of-type {\\n border: none;\\n}\\n.layoutList .layoutItem[data-v-1932af0b]:hover {\\n box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);\\n}\\n.layoutList .layoutItem.active[data-v-1932af0b] {\\n border: 1px solid #67c23a;\\n}\\n.layoutList .layoutItem .imgBox[data-v-1932af0b] {\\n width: 100%;\\n}\\n.layoutList .layoutItem .imgBox img[data-v-1932af0b] {\\n width: 100%;\\n}\\n.layoutList .layoutItem .name[data-v-1932af0b] {\\n text-align: center;\\n font-size: 14px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Structure.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Style.vue?vue&type=style&index=0&id=5cf2df6e&lang=less&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Style.vue?vue&type=style&index=0&id=5cf2df6e&lang=less&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".styleBox[data-v-5cf2df6e] {\\n width: 100%;\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n}\\n.styleBox.isDark .sidebarContent .title[data-v-5cf2df6e] {\\n color: #fff;\\n}\\n.styleBox.isDark .sidebarContent .row .rowItem .name[data-v-5cf2df6e] {\\n color: hsla(0, 0%, 100%, 0.6);\\n}\\n.styleBox.isDark .sidebarContent .row .styleBtn[data-v-5cf2df6e] {\\n background-color: #363b3f;\\n color: hsla(0, 0%, 100%, 0.6);\\n border-color: hsla(0, 0%, 100%, 0.1);\\n}\\n.styleBox .tab[data-v-5cf2df6e] {\\n flex-grow: 0;\\n flex-shrink: 0;\\n padding: 0 20px;\\n}\\n.tipBox[data-v-5cf2df6e] {\\n width: 100%;\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n color: #666;\\n}\\n.tipBox .tipIcon[data-v-5cf2df6e] {\\n font-size: 100px;\\n}\\n.sidebarContent[data-v-5cf2df6e] {\\n padding: 20px;\\n padding-top: 10px;\\n}\\n.sidebarContent .title[data-v-5cf2df6e] {\\n font-size: 16px;\\n font-family: PingFangSC-Medium, PingFang SC;\\n font-weight: 500;\\n color: rgba(26, 26, 26, 0.9);\\n margin-bottom: 10px;\\n margin-top: 20px;\\n}\\n.sidebarContent .title.noTop[data-v-5cf2df6e] {\\n margin-top: 0;\\n}\\n.sidebarContent .row[data-v-5cf2df6e] {\\n display: flex;\\n justify-content: space-between;\\n margin-bottom: 10px;\\n}\\n.sidebarContent .row .btnGroup[data-v-5cf2df6e] {\\n width: 100%;\\n display: flex;\\n justify-content: space-between;\\n}\\n.sidebarContent .row .rowItem[data-v-5cf2df6e] {\\n display: flex;\\n align-items: center;\\n}\\n.sidebarContent .row .rowItem .name[data-v-5cf2df6e] {\\n font-size: 12px;\\n margin-right: 10px;\\n}\\n.sidebarContent .row .rowItem .block[data-v-5cf2df6e] {\\n display: inline-block;\\n width: 30px;\\n height: 30px;\\n border: 1px solid #dcdfe6;\\n border-radius: 4px;\\n cursor: pointer;\\n}\\n.sidebarContent .row .rowItem .block.disabled[data-v-5cf2df6e] {\\n background-color: #f5f7fa !important;\\n border-color: #e4e7ed !important;\\n color: #c0c4cc !important;\\n cursor: not-allowed !important;\\n}\\n.sidebarContent .row .styleBtn[data-v-5cf2df6e] {\\n position: relative;\\n width: 50px;\\n height: 30px;\\n background: #fff;\\n border: 1px solid #eee;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n font-weight: bold;\\n cursor: pointer;\\n border-radius: 4px;\\n}\\n.sidebarContent .row .styleBtn.actived[data-v-5cf2df6e] {\\n background-color: #eee;\\n}\\n.sidebarContent .row .styleBtn.disabled[data-v-5cf2df6e] {\\n background-color: #f5f7fa !important;\\n border-color: #e4e7ed !important;\\n color: #c0c4cc !important;\\n cursor: not-allowed !important;\\n}\\n.sidebarContent .row .styleBtn.i[data-v-5cf2df6e] {\\n font-style: italic;\\n}\\n.sidebarContent .row .styleBtn .colorShow[data-v-5cf2df6e] {\\n position: absolute;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n height: 2px;\\n}\\n.borderLine[data-v-5cf2df6e] {\\n display: inline-block;\\n width: 100%;\\n background-color: #000;\\n}\\n.borderLine.isDark[data-v-5cf2df6e] {\\n background-color: #fff;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Style.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Style.vue?vue&type=style&index=1&id=5cf2df6e&lang=less":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Style.vue?vue&type=style&index=1&id=5cf2df6e&lang=less ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".el-select-dropdown__item.selected .borderLine {\\n background-color: #409eff;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Style.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Theme.vue?vue&type=style&index=0&id=66f51c61&lang=less&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Theme.vue?vue&type=style&index=0&id=66f51c61&lang=less&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".themeList[data-v-66f51c61] {\\n padding: 20px;\\n padding-top: 0;\\n}\\n.themeList.isDark .name[data-v-66f51c61] {\\n color: #fff;\\n}\\n.themeList .themeItem[data-v-66f51c61] {\\n width: 100%;\\n cursor: pointer;\\n border-bottom: 1px solid #e9e9e9;\\n margin-bottom: 20px;\\n padding-bottom: 20px;\\n transition: all 0.2s;\\n border: 1px solid transparent;\\n}\\n.themeList .themeItem[data-v-66f51c61]:last-of-type {\\n border: none;\\n}\\n.themeList .themeItem[data-v-66f51c61]:hover {\\n box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09);\\n}\\n.themeList .themeItem.active[data-v-66f51c61] {\\n border: 1px solid #67c23a;\\n}\\n.themeList .themeItem .imgBox[data-v-66f51c61] {\\n width: 100%;\\n}\\n.themeList .themeItem .imgBox img[data-v-66f51c61] {\\n width: 100%;\\n}\\n.themeList .themeItem .name[data-v-66f51c61] {\\n text-align: center;\\n font-size: 14px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Theme.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Toolbar.vue?vue&type=style&index=0&id=46e8e913&lang=less&scoped=true":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Toolbar.vue?vue&type=style&index=0&id=46e8e913&lang=less&scoped=true ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"#kmind-toolbar[data-v-46e8e913] {\\n transition: all 0.5s ease-in-out;\\n}\\n#kmind-toolbar.kmind-toolbar-hidden[data-v-46e8e913] {\\n opacity: 0;\\n top: -300px;\\n}\\n.toolbarContainer.isDark .kmind-toolbar[data-v-46e8e913] {\\n color: hsla(0, 0%, 100%, 0.9);\\n}\\n.toolbarContainer.isDark .kmind-toolbar .toolbarBlock[data-v-46e8e913] {\\n background-color: #262a2e;\\n}\\n.toolbarContainer.isDark .kmind-toolbar .toolbarBlock .fileTreeBox[data-v-46e8e913] {\\n background-color: #262a2e;\\n}\\n.toolbarContainer.isDark .kmind-toolbar .toolbarBlock .fileTreeBox[data-v-46e8e913] .el-tree {\\n background-color: #262a2e;\\n}\\n.toolbarContainer.isDark .kmind-toolbar .toolbarBlock .fileTreeBox[data-v-46e8e913] .el-tree.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {\\n background-color: hsla(0, 0%, 100%, 0.05) !important;\\n}\\n.toolbarContainer.isDark .kmind-toolbar .toolbarBlock .fileTreeBox[data-v-46e8e913] .el-tree .el-tree-node:focus > .el-tree-node__content {\\n background-color: hsla(0, 0%, 100%, 0.05) !important;\\n}\\n.toolbarContainer.isDark .kmind-toolbar .toolbarBlock .fileTreeBox[data-v-46e8e913] .el-tree .el-tree-node__content:hover,\\n.toolbarContainer.isDark .kmind-toolbar .toolbarBlock .fileTreeBox[data-v-46e8e913] .el-tree .el-upload-list__item:hover {\\n background-color: hsla(0, 0%, 100%, 0.02) !important;\\n}\\n.toolbarContainer.isDark .kmind-toolbar .toolbarBlock .fileTreeBox .fileTreeWrap .customTreeNode .treeNodeInfo[data-v-46e8e913] {\\n color: #fff;\\n}\\n.toolbarContainer.isDark .kmind-toolbar .toolbarBlock .fileTreeBox .fileTreeWrap .customTreeNode .treeNodeBtnList .el-button[data-v-46e8e913] {\\n padding: 7px 5px;\\n}\\n.toolbarContainer.isDark .kmind-toolbar .toolbarBtn[data-v-46e8e913] {\\n border: 1px dashed hsla(0, 0%, 31%, 0.9);\\n}\\n.toolbarContainer.isDark .kmind-toolbar .toolbarBtn .icon[data-v-46e8e913] {\\n background: transparent;\\n border-color: transparent;\\n}\\n.toolbarContainer.isDark .kmind-toolbar .toolbarBtn[data-v-46e8e913]:hover {\\n border: 1px dashed hsla(0, 0%, 50%, 0.9);\\n}\\n.toolbarContainer.isDark .kmind-toolbar .toolbarBtn:hover:not(.disabled) .icon[data-v-46e8e913] {\\n background: hsla(0, 0%, 100%, 0.05);\\n}\\n.toolbarContainer.isDark .kmind-toolbar .toolbarBtn.disabled[data-v-46e8e913] {\\n color: #54595f;\\n}\\n.toolbarContainer .kmind-toolbar[data-v-46e8e913] {\\n position: relative;\\n left: 50%;\\n transform: translateX(-50%);\\n top: 20px;\\n width: -moz-max-content;\\n width: max-content;\\n display: flex;\\n font-size: 12px;\\n font-family: PingFangSC-Regular, PingFang SC;\\n font-weight: 400;\\n color: rgba(26, 26, 26, 0.8);\\n z-index: 2;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBlock[data-v-46e8e913] {\\n display: flex;\\n background-color: #fff;\\n padding: 10px 20px;\\n border-radius: 6px;\\n box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06);\\n border: 1px solid rgba(0, 0, 0, 0.06);\\n margin-right: 20px;\\n flex-shrink: 0;\\n position: relative;\\n min-height: 80px;\\n align-items: center;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBlock[data-v-46e8e913]:last-of-type {\\n margin-right: 0;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBlock .fileTreeBox[data-v-46e8e913] {\\n position: absolute;\\n left: 0;\\n top: 68px;\\n width: 100%;\\n height: 30px;\\n background-color: #fff;\\n padding: 12px 5px;\\n padding-top: 0;\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n border-radius: 5px;\\n min-width: 200px;\\n box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.06);\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBlock .fileTreeBox.expand[data-v-46e8e913] {\\n height: 300px;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBlock .fileTreeBox.expand .fileTreeWrap[data-v-46e8e913] {\\n visibility: visible;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBlock .fileTreeBox .fileTreeToolbar[data-v-46e8e913] {\\n width: 100%;\\n height: 30px;\\n flex-shrink: 0;\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n border-bottom: 1px solid #e9e9e9;\\n margin-bottom: 12px;\\n padding-left: 12px;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBlock .fileTreeBox .fileTreeToolbar .fileTreeActionList .btn[data-v-46e8e913] {\\n font-size: 18px;\\n margin-left: 12px;\\n cursor: pointer;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBlock .fileTreeBox .fileTreeWrap[data-v-46e8e913] {\\n width: 100%;\\n height: 100%;\\n overflow: auto;\\n visibility: hidden;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBlock .fileTreeBox .fileTreeWrap .customTreeNode[data-v-46e8e913] {\\n flex: 1;\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n font-size: 13px;\\n padding-right: 5px;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBlock .fileTreeBox .fileTreeWrap .customTreeNode .treeNodeInfo[data-v-46e8e913] {\\n display: flex;\\n align-items: center;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBlock .fileTreeBox .fileTreeWrap .customTreeNode .treeNodeInfo .treeNodeIcon[data-v-46e8e913] {\\n margin-right: 5px;\\n opacity: 0.7;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBlock .fileTreeBox .fileTreeWrap .customTreeNode .treeNodeInfo .treeNodeName[data-v-46e8e913] {\\n max-width: 200px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBlock .fileTreeBox .fileTreeWrap .customTreeNode .treeNodeBtnList[data-v-46e8e913] {\\n display: flex;\\n align-items: center;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBtn[data-v-46e8e913] {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n cursor: pointer;\\n margin-right: 20px;\\n border-radius: 4px;\\n border: 1px dashed #e9e9e9;\\n padding: 2px;\\n min-height: 60px;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBtn[data-v-46e8e913]:last-of-type {\\n margin-right: 0;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBtn[data-v-46e8e913]:hover {\\n border: 1px solid #e9e9e9;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBtn:hover:not(.disabled) .icon[data-v-46e8e913] {\\n background: #f5f5f5;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBtn.active .icon[data-v-46e8e913] {\\n background: #f5f5f5;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBtn.disabled[data-v-46e8e913] {\\n color: #bcbcbc;\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBtn .icon[data-v-46e8e913] {\\n display: flex;\\n height: 26px;\\n width: 26px;\\n transform: scale(0.8);\\n min-width: 26px;\\n min-height: 26px;\\n background: #fff;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n text-align: center;\\n padding: 0;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBtn .icon svg[data-v-46e8e913] {\\n width: 1.5em;\\n height: 1.5em;\\n}\\n.toolbarContainer .kmind-toolbar .toolbarBtn .text[data-v-46e8e913] {\\n margin-top: 3px;\\n text-align: center;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Toolbar.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=style&index=0&id=6f1765d5&lang=less":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=style&index=0&id=6f1765d5&lang=less ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \".toolbarNodeBtnList {\\n display: flex;\\n}\\n.toolbarNodeBtnList.isDark .toolbarBtn {\\n color: hsla(0, 0%, 100%, 0.9);\\n border: 1px dashed hsla(0, 0%, 31%, 0.9);\\n}\\n.toolbarNodeBtnList.isDark .toolbarBtn .icon {\\n background: transparent;\\n border-color: transparent;\\n}\\n.toolbarNodeBtnList.isDark .toolbarBtn:hover {\\n border: 1px dashed hsla(0, 0%, 50%, 0.9);\\n}\\n.toolbarNodeBtnList.isDark .toolbarBtn:hover:not(.disabled) .icon {\\n background: hsla(0, 0%, 100%, 0.05);\\n}\\n.toolbarNodeBtnList.isDark .toolbarBtn.disabled {\\n color: #54595f;\\n}\\n.toolbarNodeBtnList .toolbarBtn {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n cursor: pointer;\\n margin-right: 20px;\\n border-radius: 4px;\\n border: 1px dashed #e9e9e9;\\n padding: 2px;\\n min-height: 60px;\\n}\\n.toolbarNodeBtnList .toolbarBtn:last-of-type {\\n margin-right: 0;\\n}\\n.toolbarNodeBtnList .toolbarBtn:hover {\\n border: 1px solid #e9e9e9;\\n}\\n.toolbarNodeBtnList .toolbarBtn:hover:not(.disabled) .icon {\\n background: #f5f5f5;\\n}\\n.toolbarNodeBtnList .toolbarBtn.active .icon {\\n background: #f5f5f5;\\n}\\n.toolbarNodeBtnList .toolbarBtn.disabled {\\n color: #bcbcbc;\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n.toolbarNodeBtnList .toolbarBtn .icon {\\n display: flex;\\n height: 26px;\\n width: 26px;\\n transform: scale(0.8);\\n min-width: 26px;\\n min-height: 26px;\\n background: #fff;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n text-align: center;\\n padding: 0;\\n}\\n.toolbarNodeBtnList .toolbarBtn .icon svg {\\n width: 1.5em;\\n height: 1.5em;\\n}\\n.toolbarNodeBtnList .toolbarBtn .text {\\n margin-top: 3px;\\n text-align: center;\\n}\\n.toolbarNodeBtnList.v {\\n display: block;\\n width: 120px;\\n flex-wrap: wrap;\\n}\\n.toolbarNodeBtnList.v .toolbarBtn {\\n flex-direction: row;\\n justify-content: center;\\n align-items: center;\\n margin-bottom: 10px;\\n width: 100%;\\n margin-right: 0;\\n padding: 5px 10px;\\n min-height: auto;\\n}\\n.toolbarNodeBtnList.v .toolbarBtn:last-of-type {\\n margin-bottom: 0;\\n}\\n.toolbarNodeBtnList.v .toolbarBtn .icon {\\n margin-right: 8px;\\n width: 26px;\\n}\\n.toolbarNodeBtnList.v .toolbarBtn .text {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n margin-top: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/ToolbarNodeBtnList.vue?./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/dayjs/dayjs.min.js":
/*!*****************************************!*\
!*** ./node_modules/dayjs/dayjs.min.js ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("!function(t,e){ true?module.exports=e():undefined}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));\n\n//# sourceURL=webpack:///./node_modules/dayjs/dayjs.min.js?");
/***/ }),
/***/ "./node_modules/linkify-it/index.js":
/*!******************************************!*\
!*** ./node_modules/linkify-it/index.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Helpers\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n}\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\nfunction isString(obj) { return _class(obj) === '[object String]'; }\nfunction isObject(obj) { return _class(obj) === '[object Object]'; }\nfunction isRegExp(obj) { return _class(obj) === '[object RegExp]'; }\nfunction isFunction(obj) { return _class(obj) === '[object Function]'; }\n\n\nfunction escapeRE(str) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&'); }\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar defaultOptions = {\n fuzzyLink: true,\n fuzzyEmail: true,\n fuzzyIP: false\n};\n\n\nfunction isOptionsObj(obj) {\n return Object.keys(obj || {}).reduce(function (acc, k) {\n return acc || defaultOptions.hasOwnProperty(k);\n }, false);\n}\n\n\nvar defaultSchemas = {\n 'http:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.http = new RegExp(\n '^\\\\/\\\\/' + self.re.src_auth + self.re.src_host_port_strict + self.re.src_path, 'i'\n );\n }\n if (self.re.http.test(tail)) {\n return tail.match(self.re.http)[0].length;\n }\n return 0;\n }\n },\n 'https:': 'http:',\n 'ftp:': 'http:',\n '//': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.no_http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.no_http = new RegExp(\n '^' +\n self.re.src_auth +\n // Don't allow single-level domains, because of false positives like '//test'\n // with code comments\n '(?:localhost|(?:(?:' + self.re.src_domain + ')\\\\.)+' + self.re.src_domain_root + ')' +\n self.re.src_port +\n self.re.src_host_terminator +\n self.re.src_path,\n\n 'i'\n );\n }\n\n if (self.re.no_http.test(tail)) {\n // should not be `://` & `///`, that protects from errors in protocol name\n if (pos >= 3 && text[pos - 3] === ':') { return 0; }\n if (pos >= 3 && text[pos - 3] === '/') { return 0; }\n return tail.match(self.re.no_http)[0].length;\n }\n return 0;\n }\n },\n 'mailto:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.mailto) {\n self.re.mailto = new RegExp(\n '^' + self.re.src_email_name + '@' + self.re.src_host_strict, 'i'\n );\n }\n if (self.re.mailto.test(tail)) {\n return tail.match(self.re.mailto)[0].length;\n }\n return 0;\n }\n }\n};\n\n/*eslint-disable max-len*/\n\n// RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\nvar tlds_2ch_src_re = 'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]';\n\n// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\nvar tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|');\n\n/*eslint-enable max-len*/\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction resetScanCache(self) {\n self.__index__ = -1;\n self.__text_cache__ = '';\n}\n\nfunction createValidator(re) {\n return function (text, pos) {\n var tail = text.slice(pos);\n\n if (re.test(tail)) {\n return tail.match(re)[0].length;\n }\n return 0;\n };\n}\n\nfunction createNormalizer() {\n return function (match, self) {\n self.normalize(match);\n };\n}\n\n// Schemas compiler. Build regexps.\n//\nfunction compile(self) {\n\n // Load & clone RE patterns.\n var re = self.re = __webpack_require__(/*! ./lib/re */ \"./node_modules/linkify-it/lib/re.js\")(self.__opts__);\n\n // Define dynamic patterns\n var tlds = self.__tlds__.slice();\n\n self.onCompile();\n\n if (!self.__tlds_replaced__) {\n tlds.push(tlds_2ch_src_re);\n }\n tlds.push(re.src_xn);\n\n re.src_tlds = tlds.join('|');\n\n function untpl(tpl) { return tpl.replace('%TLDS%', re.src_tlds); }\n\n re.email_fuzzy = RegExp(untpl(re.tpl_email_fuzzy), 'i');\n re.link_fuzzy = RegExp(untpl(re.tpl_link_fuzzy), 'i');\n re.link_no_ip_fuzzy = RegExp(untpl(re.tpl_link_no_ip_fuzzy), 'i');\n re.host_fuzzy_test = RegExp(untpl(re.tpl_host_fuzzy_test), 'i');\n\n //\n // Compile each schema\n //\n\n var aliases = [];\n\n self.__compiled__ = {}; // Reset compiled data\n\n function schemaError(name, val) {\n throw new Error('(LinkifyIt) Invalid schema \"' + name + '\": ' + val);\n }\n\n Object.keys(self.__schemas__).forEach(function (name) {\n var val = self.__schemas__[name];\n\n // skip disabled methods\n if (val === null) { return; }\n\n var compiled = { validate: null, link: null };\n\n self.__compiled__[name] = compiled;\n\n if (isObject(val)) {\n if (isRegExp(val.validate)) {\n compiled.validate = createValidator(val.validate);\n } else if (isFunction(val.validate)) {\n compiled.validate = val.validate;\n } else {\n schemaError(name, val);\n }\n\n if (isFunction(val.normalize)) {\n compiled.normalize = val.normalize;\n } else if (!val.normalize) {\n compiled.normalize = createNormalizer();\n } else {\n schemaError(name, val);\n }\n\n return;\n }\n\n if (isString(val)) {\n aliases.push(name);\n return;\n }\n\n schemaError(name, val);\n });\n\n //\n // Compile postponed aliases\n //\n\n aliases.forEach(function (alias) {\n if (!self.__compiled__[self.__schemas__[alias]]) {\n // Silently fail on missed schemas to avoid errons on disable.\n // schemaError(alias, self.__schemas__[alias]);\n return;\n }\n\n self.__compiled__[alias].validate =\n self.__compiled__[self.__schemas__[alias]].validate;\n self.__compiled__[alias].normalize =\n self.__compiled__[self.__schemas__[alias]].normalize;\n });\n\n //\n // Fake record for guessed links\n //\n self.__compiled__[''] = { validate: null, normalize: createNormalizer() };\n\n //\n // Build schema condition\n //\n var slist = Object.keys(self.__compiled__)\n .filter(function (name) {\n // Filter disabled & fake schemas\n return name.length > 0 && self.__compiled__[name];\n })\n .map(escapeRE)\n .join('|');\n // (?!_) cause 1.5x slowdown\n self.re.schema_test = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'i');\n self.re.schema_search = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'ig');\n self.re.schema_at_start = RegExp('^' + self.re.schema_search.source, 'i');\n\n self.re.pretest = RegExp(\n '(' + self.re.schema_test.source + ')|(' + self.re.host_fuzzy_test.source + ')|@',\n 'i'\n );\n\n //\n // Cleanup\n //\n\n resetScanCache(self);\n}\n\n/**\n * class Match\n *\n * Match result. Single element of array, returned by [[LinkifyIt#match]]\n **/\nfunction Match(self, shift) {\n var start = self.__index__,\n end = self.__last_index__,\n text = self.__text_cache__.slice(start, end);\n\n /**\n * Match#schema -> String\n *\n * Prefix (protocol) for matched string.\n **/\n this.schema = self.__schema__.toLowerCase();\n /**\n * Match#index -> Number\n *\n * First position of matched string.\n **/\n this.index = start + shift;\n /**\n * Match#lastIndex -> Number\n *\n * Next position after matched string.\n **/\n this.lastIndex = end + shift;\n /**\n * Match#raw -> String\n *\n * Matched string.\n **/\n this.raw = text;\n /**\n * Match#text -> String\n *\n * Notmalized text of matched string.\n **/\n this.text = text;\n /**\n * Match#url -> String\n *\n * Normalized url of matched string.\n **/\n this.url = text;\n}\n\nfunction createMatch(self, shift) {\n var match = new Match(self, shift);\n\n self.__compiled__[match.schema].normalize(match, self);\n\n return match;\n}\n\n\n/**\n * class LinkifyIt\n **/\n\n/**\n * new LinkifyIt(schemas, options)\n * - schemas (Object): Optional. Additional schemas to validate (prefix/validator)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Creates new linkifier instance with optional additional schemas.\n * Can be called without `new` keyword for convenience.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" links and emails (example.com, foo@bar.com).\n *\n * `schemas` is an object, where each key/value describes protocol/rule:\n *\n * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`\n * for example). `linkify-it` makes shure that prefix is not preceeded with\n * alphanumeric char and symbols. Only whitespaces and punctuation allowed.\n * - __value__ - rule to check tail after link prefix\n * - _String_ - just alias to existing rule\n * - _Object_\n * - _validate_ - validator function (should return matched length on success),\n * or `RegExp`.\n * - _normalize_ - optional function to normalize text & url of matched result\n * (for example, for @twitter mentions).\n *\n * `options`:\n *\n * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.\n * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts\n * like version numbers. Default `false`.\n * - __fuzzyEmail__ - recognize emails without `mailto:` prefix.\n *\n **/\nfunction LinkifyIt(schemas, options) {\n if (!(this instanceof LinkifyIt)) {\n return new LinkifyIt(schemas, options);\n }\n\n if (!options) {\n if (isOptionsObj(schemas)) {\n options = schemas;\n schemas = {};\n }\n }\n\n this.__opts__ = assign({}, defaultOptions, options);\n\n // Cache last tested result. Used to skip repeating steps on next `match` call.\n this.__index__ = -1;\n this.__last_index__ = -1; // Next scan position\n this.__schema__ = '';\n this.__text_cache__ = '';\n\n this.__schemas__ = assign({}, defaultSchemas, schemas);\n this.__compiled__ = {};\n\n this.__tlds__ = tlds_default;\n this.__tlds_replaced__ = false;\n\n this.re = {};\n\n compile(this);\n}\n\n\n/** chainable\n * LinkifyIt#add(schema, definition)\n * - schema (String): rule name (fixed pattern prefix)\n * - definition (String|RegExp|Object): schema definition\n *\n * Add new rule definition. See constructor description for details.\n **/\nLinkifyIt.prototype.add = function add(schema, definition) {\n this.__schemas__[schema] = definition;\n compile(this);\n return this;\n};\n\n\n/** chainable\n * LinkifyIt#set(options)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Set recognition options for links without schema.\n **/\nLinkifyIt.prototype.set = function set(options) {\n this.__opts__ = assign(this.__opts__, options);\n return this;\n};\n\n\n/**\n * LinkifyIt#test(text) -> Boolean\n *\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n **/\nLinkifyIt.prototype.test = function test(text) {\n // Reset scan cache\n this.__text_cache__ = text;\n this.__index__ = -1;\n\n if (!text.length) { return false; }\n\n var m, ml, me, len, shift, next, re, tld_pos, at_pos;\n\n // try to scan for link with schema - that's the most simple rule\n if (this.re.schema_test.test(text)) {\n re = this.re.schema_search;\n re.lastIndex = 0;\n while ((m = re.exec(text)) !== null) {\n len = this.testSchemaAt(text, m[2], re.lastIndex);\n if (len) {\n this.__schema__ = m[2];\n this.__index__ = m.index + m[1].length;\n this.__last_index__ = m.index + m[0].length + len;\n break;\n }\n }\n }\n\n if (this.__opts__.fuzzyLink && this.__compiled__['http:']) {\n // guess schemaless links\n tld_pos = text.search(this.re.host_fuzzy_test);\n if (tld_pos >= 0) {\n // if tld is located after found link - no need to check fuzzy pattern\n if (this.__index__ < 0 || tld_pos < this.__index__) {\n if ((ml = text.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null) {\n\n shift = ml.index + ml[1].length;\n\n if (this.__index__ < 0 || shift < this.__index__) {\n this.__schema__ = '';\n this.__index__ = shift;\n this.__last_index__ = ml.index + ml[0].length;\n }\n }\n }\n }\n }\n\n if (this.__opts__.fuzzyEmail && this.__compiled__['mailto:']) {\n // guess schemaless emails\n at_pos = text.indexOf('@');\n if (at_pos >= 0) {\n // We can't skip this check, because this cases are possible:\n // 192.168.1.1@gmail.com, my.in@example.com\n if ((me = text.match(this.re.email_fuzzy)) !== null) {\n\n shift = me.index + me[1].length;\n next = me.index + me[0].length;\n\n if (this.__index__ < 0 || shift < this.__index__ ||\n (shift === this.__index__ && next > this.__last_index__)) {\n this.__schema__ = 'mailto:';\n this.__index__ = shift;\n this.__last_index__ = next;\n }\n }\n }\n }\n\n return this.__index__ >= 0;\n};\n\n\n/**\n * LinkifyIt#pretest(text) -> Boolean\n *\n * Very quick check, that can give false positives. Returns true if link MAY BE\n * can exists. Can be used for speed optimization, when you need to check that\n * link NOT exists.\n **/\nLinkifyIt.prototype.pretest = function pretest(text) {\n return this.re.pretest.test(text);\n};\n\n\n/**\n * LinkifyIt#testSchemaAt(text, name, position) -> Number\n * - text (String): text to scan\n * - name (String): rule (schema) name\n * - position (Number): text offset to check from\n *\n * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n **/\nLinkifyIt.prototype.testSchemaAt = function testSchemaAt(text, schema, pos) {\n // If not supported schema check requested - terminate\n if (!this.__compiled__[schema.toLowerCase()]) {\n return 0;\n }\n return this.__compiled__[schema.toLowerCase()].validate(text, pos, this);\n};\n\n\n/**\n * LinkifyIt#match(text) -> Array|null\n *\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use [[LinkifyIt#test]] first, for best speed.\n *\n * ##### Result match description\n *\n * - __schema__ - link schema, can be empty for fuzzy links, or `//` for\n * protocol-neutral links.\n * - __index__ - offset of matched text\n * - __lastIndex__ - index of next char after mathch end\n * - __raw__ - matched text\n * - __text__ - normalized text\n * - __url__ - link, generated from matched text\n **/\nLinkifyIt.prototype.match = function match(text) {\n var shift = 0, result = [];\n\n // Try to take previous element from cache, if .test() called before\n if (this.__index__ >= 0 && this.__text_cache__ === text) {\n result.push(createMatch(this, shift));\n shift = this.__last_index__;\n }\n\n // Cut head if cache was used\n var tail = shift ? text.slice(shift) : text;\n\n // Scan string until end reached\n while (this.test(tail)) {\n result.push(createMatch(this, shift));\n\n tail = tail.slice(this.__last_index__);\n shift += this.__last_index__;\n }\n\n if (result.length) {\n return result;\n }\n\n return null;\n};\n\n\n/**\n * LinkifyIt#matchAtStart(text) -> Match|null\n *\n * Returns fully-formed (not fuzzy) link if it starts at the beginning\n * of the string, and null otherwise.\n **/\nLinkifyIt.prototype.matchAtStart = function matchAtStart(text) {\n // Reset scan cache\n this.__text_cache__ = text;\n this.__index__ = -1;\n\n if (!text.length) return null;\n\n var m = this.re.schema_at_start.exec(text);\n if (!m) return null;\n\n var len = this.testSchemaAt(text, m[2], m[0].length);\n if (!len) return null;\n\n this.__schema__ = m[2];\n this.__index__ = m.index + m[1].length;\n this.__last_index__ = m.index + m[0].length + len;\n\n return createMatch(this, 0);\n};\n\n\n/** chainable\n * LinkifyIt#tlds(list [, keepOld]) -> this\n * - list (Array): list of tlds\n * - keepOld (Boolean): merge with current list if `true` (`false` by default)\n *\n * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix)\n * to avoid false positives. By default this algorythm used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n * are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n **/\nLinkifyIt.prototype.tlds = function tlds(list, keepOld) {\n list = Array.isArray(list) ? list : [ list ];\n\n if (!keepOld) {\n this.__tlds__ = list.slice();\n this.__tlds_replaced__ = true;\n compile(this);\n return this;\n }\n\n this.__tlds__ = this.__tlds__.concat(list)\n .sort()\n .filter(function (el, idx, arr) {\n return el !== arr[idx - 1];\n })\n .reverse();\n\n compile(this);\n return this;\n};\n\n/**\n * LinkifyIt#normalize(match)\n *\n * Default normalizer (if schema does not define it's own).\n **/\nLinkifyIt.prototype.normalize = function normalize(match) {\n\n // Do minimal possible changes by default. Need to collect feedback prior\n // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n if (!match.schema) { match.url = 'http://' + match.url; }\n\n if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n match.url = 'mailto:' + match.url;\n }\n};\n\n\n/**\n * LinkifyIt#onCompile()\n *\n * Override to modify basic RegExp-s.\n **/\nLinkifyIt.prototype.onCompile = function onCompile() {\n};\n\n\nmodule.exports = LinkifyIt;\n\n\n//# sourceURL=webpack:///./node_modules/linkify-it/index.js?");
/***/ }),
/***/ "./node_modules/linkify-it/lib/re.js":
/*!*******************************************!*\
!*** ./node_modules/linkify-it/lib/re.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\n\nmodule.exports = function (opts) {\n var re = {};\n opts = opts || {};\n\n // Use direct extract instead of `regenerate` to reduse browserified size\n re.src_Any = __webpack_require__(/*! uc.micro/properties/Any/regex */ \"./node_modules/uc.micro/properties/Any/regex.js\").source;\n re.src_Cc = __webpack_require__(/*! uc.micro/categories/Cc/regex */ \"./node_modules/uc.micro/categories/Cc/regex.js\").source;\n re.src_Z = __webpack_require__(/*! uc.micro/categories/Z/regex */ \"./node_modules/uc.micro/categories/Z/regex.js\").source;\n re.src_P = __webpack_require__(/*! uc.micro/categories/P/regex */ \"./node_modules/uc.micro/categories/P/regex.js\").source;\n\n // \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\n re.src_ZPCc = [ re.src_Z, re.src_P, re.src_Cc ].join('|');\n\n // \\p{\\Z\\Cc} (white spaces + control)\n re.src_ZCc = [ re.src_Z, re.src_Cc ].join('|');\n\n // Experimental. List of chars, completely prohibited in links\n // because can separate it from other part of text\n var text_separators = '[><\\uff5c]';\n\n // All possible word characters (everything without punctuation, spaces & controls)\n // Defined via punctuation & spaces to save space\n // Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\n re.src_pseudo_letter = '(?:(?!' + text_separators + '|' + re.src_ZPCc + ')' + re.src_Any + ')';\n // The same as abothe but without [0-9]\n // var src_pseudo_letter_non_d = '(?:(?![0-9]|' + src_ZPCc + ')' + src_Any + ')';\n\n ////////////////////////////////////////////////////////////////////////////////\n\n re.src_ip4 =\n\n '(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)';\n\n // Prohibit any of \"@/[]()\" in user/pass to avoid wrong domain fetch.\n re.src_auth = '(?:(?:(?!' + re.src_ZCc + '|[@/\\\\[\\\\]()]).)+@)?';\n\n re.src_port =\n\n '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?';\n\n re.src_host_terminator =\n\n '(?=$|' + text_separators + '|' + re.src_ZPCc + ')' +\n '(?!' + (opts['---'] ? '-(?!--)|' : '-|') + '_|:\\\\d|\\\\.-|\\\\.(?!$|' + re.src_ZPCc + '))';\n\n re.src_path =\n\n '(?:' +\n '[/?#]' +\n '(?:' +\n '(?!' + re.src_ZCc + '|' + text_separators + '|[()[\\\\]{}.,\"\\'?!\\\\-;]).|' +\n '\\\\[(?:(?!' + re.src_ZCc + '|\\\\]).)*\\\\]|' +\n '\\\\((?:(?!' + re.src_ZCc + '|[)]).)*\\\\)|' +\n '\\\\{(?:(?!' + re.src_ZCc + '|[}]).)*\\\\}|' +\n '\\\\\"(?:(?!' + re.src_ZCc + '|[\"]).)+\\\\\"|' +\n \"\\\\'(?:(?!\" + re.src_ZCc + \"|[']).)+\\\\'|\" +\n \"\\\\'(?=\" + re.src_pseudo_letter + '|[-])|' + // allow `I'm_king` if no pair found\n '\\\\.{2,}[a-zA-Z0-9%/&]|' + // google has many dots in \"google search\" links (#66, #81).\n // github has ... in commit range links,\n // Restrict to\n // - english\n // - percent-encoded\n // - parts of file path\n // - params separator\n // until more examples found.\n '\\\\.(?!' + re.src_ZCc + '|[.]|$)|' +\n (opts['---'] ?\n '\\\\-(?!--(?:[^-]|$))(?:-*)|' // `---` => long dash, terminate\n :\n '\\\\-+|'\n ) +\n ',(?!' + re.src_ZCc + '|$)|' + // allow `,,,` in paths\n ';(?!' + re.src_ZCc + '|$)|' + // allow `;` if not followed by space-like char\n '\\\\!+(?!' + re.src_ZCc + '|[!]|$)|' + // allow `!!!` in paths, but not at the end\n '\\\\?(?!' + re.src_ZCc + '|[?]|$)' +\n ')+' +\n '|\\\\/' +\n ')?';\n\n // Allow anything in markdown spec, forbid quote (\") at the first position\n // because emails enclosed in quotes are far more common\n re.src_email_name =\n\n '[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*';\n\n re.src_xn =\n\n 'xn--[a-z0-9\\\\-]{1,59}';\n\n // More to read about domain names\n // http://serverfault.com/questions/638260/\n\n re.src_domain_root =\n\n // Allow letters & digits (http://test1)\n '(?:' +\n re.src_xn +\n '|' +\n re.src_pseudo_letter + '{1,63}' +\n ')';\n\n re.src_domain =\n\n '(?:' +\n re.src_xn +\n '|' +\n '(?:' + re.src_pseudo_letter + ')' +\n '|' +\n '(?:' + re.src_pseudo_letter + '(?:-|' + re.src_pseudo_letter + '){0,61}' + re.src_pseudo_letter + ')' +\n ')';\n\n re.src_host =\n\n '(?:' +\n // Don't need IP check, because digits are already allowed in normal domain names\n // src_ip4 +\n // '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)*' + re.src_domain/*_root*/ + ')' +\n ')';\n\n re.tpl_host_fuzzy =\n\n '(?:' +\n re.src_ip4 +\n '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))' +\n ')';\n\n re.tpl_host_no_ip_fuzzy =\n\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))';\n\n re.src_host_strict =\n\n re.src_host + re.src_host_terminator;\n\n re.tpl_host_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_host_terminator;\n\n re.src_host_port_strict =\n\n re.src_host + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_no_ip_fuzzy_strict =\n\n re.tpl_host_no_ip_fuzzy + re.src_port + re.src_host_terminator;\n\n\n ////////////////////////////////////////////////////////////////////////////////\n // Main rules\n\n // Rude test fuzzy links by host, for quick deny\n re.tpl_host_fuzzy_test =\n\n 'localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:' + re.src_ZPCc + '|>|$))';\n\n re.tpl_email_fuzzy =\n\n '(^|' + text_separators + '|\"|\\\\(|' + re.src_ZCc + ')' +\n '(' + re.src_email_name + '@' + re.tpl_host_fuzzy_strict + ')';\n\n re.tpl_link_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_fuzzy_strict + re.src_path + ')';\n\n re.tpl_link_no_ip_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_no_ip_fuzzy_strict + re.src_path + ')';\n\n return re;\n};\n\n\n//# sourceURL=webpack:///./node_modules/linkify-it/lib/re.js?");
/***/ }),
/***/ "./node_modules/lodash/_DataView.js":
/*!******************************************!*\
!*** ./node_modules/lodash/_DataView.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\"),\n root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_DataView.js?");
/***/ }),
/***/ "./node_modules/lodash/_Hash.js":
/*!**************************************!*\
!*** ./node_modules/lodash/_Hash.js ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var hashClear = __webpack_require__(/*! ./_hashClear */ \"./node_modules/lodash/_hashClear.js\"),\n hashDelete = __webpack_require__(/*! ./_hashDelete */ \"./node_modules/lodash/_hashDelete.js\"),\n hashGet = __webpack_require__(/*! ./_hashGet */ \"./node_modules/lodash/_hashGet.js\"),\n hashHas = __webpack_require__(/*! ./_hashHas */ \"./node_modules/lodash/_hashHas.js\"),\n hashSet = __webpack_require__(/*! ./_hashSet */ \"./node_modules/lodash/_hashSet.js\");\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_Hash.js?");
/***/ }),
/***/ "./node_modules/lodash/_ListCache.js":
/*!*******************************************!*\
!*** ./node_modules/lodash/_ListCache.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var listCacheClear = __webpack_require__(/*! ./_listCacheClear */ \"./node_modules/lodash/_listCacheClear.js\"),\n listCacheDelete = __webpack_require__(/*! ./_listCacheDelete */ \"./node_modules/lodash/_listCacheDelete.js\"),\n listCacheGet = __webpack_require__(/*! ./_listCacheGet */ \"./node_modules/lodash/_listCacheGet.js\"),\n listCacheHas = __webpack_require__(/*! ./_listCacheHas */ \"./node_modules/lodash/_listCacheHas.js\"),\n listCacheSet = __webpack_require__(/*! ./_listCacheSet */ \"./node_modules/lodash/_listCacheSet.js\");\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_ListCache.js?");
/***/ }),
/***/ "./node_modules/lodash/_Map.js":
/*!*************************************!*\
!*** ./node_modules/lodash/_Map.js ***!
\*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\"),\n root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_Map.js?");
/***/ }),
/***/ "./node_modules/lodash/_MapCache.js":
/*!******************************************!*\
!*** ./node_modules/lodash/_MapCache.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var mapCacheClear = __webpack_require__(/*! ./_mapCacheClear */ \"./node_modules/lodash/_mapCacheClear.js\"),\n mapCacheDelete = __webpack_require__(/*! ./_mapCacheDelete */ \"./node_modules/lodash/_mapCacheDelete.js\"),\n mapCacheGet = __webpack_require__(/*! ./_mapCacheGet */ \"./node_modules/lodash/_mapCacheGet.js\"),\n mapCacheHas = __webpack_require__(/*! ./_mapCacheHas */ \"./node_modules/lodash/_mapCacheHas.js\"),\n mapCacheSet = __webpack_require__(/*! ./_mapCacheSet */ \"./node_modules/lodash/_mapCacheSet.js\");\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_MapCache.js?");
/***/ }),
/***/ "./node_modules/lodash/_Promise.js":
/*!*****************************************!*\
!*** ./node_modules/lodash/_Promise.js ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\"),\n root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_Promise.js?");
/***/ }),
/***/ "./node_modules/lodash/_Set.js":
/*!*************************************!*\
!*** ./node_modules/lodash/_Set.js ***!
\*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\"),\n root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_Set.js?");
/***/ }),
/***/ "./node_modules/lodash/_Stack.js":
/*!***************************************!*\
!*** ./node_modules/lodash/_Stack.js ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var ListCache = __webpack_require__(/*! ./_ListCache */ \"./node_modules/lodash/_ListCache.js\"),\n stackClear = __webpack_require__(/*! ./_stackClear */ \"./node_modules/lodash/_stackClear.js\"),\n stackDelete = __webpack_require__(/*! ./_stackDelete */ \"./node_modules/lodash/_stackDelete.js\"),\n stackGet = __webpack_require__(/*! ./_stackGet */ \"./node_modules/lodash/_stackGet.js\"),\n stackHas = __webpack_require__(/*! ./_stackHas */ \"./node_modules/lodash/_stackHas.js\"),\n stackSet = __webpack_require__(/*! ./_stackSet */ \"./node_modules/lodash/_stackSet.js\");\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_Stack.js?");
/***/ }),
/***/ "./node_modules/lodash/_Symbol.js":
/*!****************************************!*\
!*** ./node_modules/lodash/_Symbol.js ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_Symbol.js?");
/***/ }),
/***/ "./node_modules/lodash/_Uint8Array.js":
/*!********************************************!*\
!*** ./node_modules/lodash/_Uint8Array.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_Uint8Array.js?");
/***/ }),
/***/ "./node_modules/lodash/_WeakMap.js":
/*!*****************************************!*\
!*** ./node_modules/lodash/_WeakMap.js ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\"),\n root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_WeakMap.js?");
/***/ }),
/***/ "./node_modules/lodash/_arrayEach.js":
/*!*******************************************!*\
!*** ./node_modules/lodash/_arrayEach.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_arrayEach.js?");
/***/ }),
/***/ "./node_modules/lodash/_arrayFilter.js":
/*!*********************************************!*\
!*** ./node_modules/lodash/_arrayFilter.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_arrayFilter.js?");
/***/ }),
/***/ "./node_modules/lodash/_arrayLikeKeys.js":
/*!***********************************************!*\
!*** ./node_modules/lodash/_arrayLikeKeys.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var baseTimes = __webpack_require__(/*! ./_baseTimes */ \"./node_modules/lodash/_baseTimes.js\"),\n isArguments = __webpack_require__(/*! ./isArguments */ \"./node_modules/lodash/isArguments.js\"),\n isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n isBuffer = __webpack_require__(/*! ./isBuffer */ \"./node_modules/lodash/isBuffer.js\"),\n isIndex = __webpack_require__(/*! ./_isIndex */ \"./node_modules/lodash/_isIndex.js\"),\n isTypedArray = __webpack_require__(/*! ./isTypedArray */ \"./node_modules/lodash/isTypedArray.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_arrayLikeKeys.js?");
/***/ }),
/***/ "./node_modules/lodash/_arrayPush.js":
/*!*******************************************!*\
!*** ./node_modules/lodash/_arrayPush.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_arrayPush.js?");
/***/ }),
/***/ "./node_modules/lodash/_assignValue.js":
/*!*********************************************!*\
!*** ./node_modules/lodash/_assignValue.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ \"./node_modules/lodash/_baseAssignValue.js\"),\n eq = __webpack_require__(/*! ./eq */ \"./node_modules/lodash/eq.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_assignValue.js?");
/***/ }),
/***/ "./node_modules/lodash/_assocIndexOf.js":
/*!**********************************************!*\
!*** ./node_modules/lodash/_assocIndexOf.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var eq = __webpack_require__(/*! ./eq */ \"./node_modules/lodash/eq.js\");\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_assocIndexOf.js?");
/***/ }),
/***/ "./node_modules/lodash/_baseAssign.js":
/*!********************************************!*\
!*** ./node_modules/lodash/_baseAssign.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var copyObject = __webpack_require__(/*! ./_copyObject */ \"./node_modules/lodash/_copyObject.js\"),\n keys = __webpack_require__(/*! ./keys */ \"./node_modules/lodash/keys.js\");\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_baseAssign.js?");
/***/ }),
/***/ "./node_modules/lodash/_baseAssignIn.js":
/*!**********************************************!*\
!*** ./node_modules/lodash/_baseAssignIn.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var copyObject = __webpack_require__(/*! ./_copyObject */ \"./node_modules/lodash/_copyObject.js\"),\n keysIn = __webpack_require__(/*! ./keysIn */ \"./node_modules/lodash/keysIn.js\");\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_baseAssignIn.js?");
/***/ }),
/***/ "./node_modules/lodash/_baseAssignValue.js":
/*!*************************************************!*\
!*** ./node_modules/lodash/_baseAssignValue.js ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var defineProperty = __webpack_require__(/*! ./_defineProperty */ \"./node_modules/lodash/_defineProperty.js\");\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_baseAssignValue.js?");
/***/ }),
/***/ "./node_modules/lodash/_baseClone.js":
/*!*******************************************!*\
!*** ./node_modules/lodash/_baseClone.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var Stack = __webpack_require__(/*! ./_Stack */ \"./node_modules/lodash/_Stack.js\"),\n arrayEach = __webpack_require__(/*! ./_arrayEach */ \"./node_modules/lodash/_arrayEach.js\"),\n assignValue = __webpack_require__(/*! ./_assignValue */ \"./node_modules/lodash/_assignValue.js\"),\n baseAssign = __webpack_require__(/*! ./_baseAssign */ \"./node_modules/lodash/_baseAssign.js\"),\n baseAssignIn = __webpack_require__(/*! ./_baseAssignIn */ \"./node_modules/lodash/_baseAssignIn.js\"),\n cloneBuffer = __webpack_require__(/*! ./_cloneBuffer */ \"./node_modules/lodash/_cloneBuffer.js\"),\n copyArray = __webpack_require__(/*! ./_copyArray */ \"./node_modules/lodash/_copyArray.js\"),\n copySymbols = __webpack_require__(/*! ./_copySymbols */ \"./node_modules/lodash/_copySymbols.js\"),\n copySymbolsIn = __webpack_require__(/*! ./_copySymbolsIn */ \"./node_modules/lodash/_copySymbolsIn.js\"),\n getAllKeys = __webpack_require__(/*! ./_getAllKeys */ \"./node_modules/lodash/_getAllKeys.js\"),\n getAllKeysIn = __webpack_require__(/*! ./_getAllKeysIn */ \"./node_modules/lodash/_getAllKeysIn.js\"),\n getTag = __webpack_require__(/*! ./_getTag */ \"./node_modules/lodash/_getTag.js\"),\n initCloneArray = __webpack_require__(/*! ./_initCloneArray */ \"./node_modules/lodash/_initCloneArray.js\"),\n initCloneByTag = __webpack_require__(/*! ./_initCloneByTag */ \"./node_modules/lodash/_initCloneByTag.js\"),\n initCloneObject = __webpack_require__(/*! ./_initCloneObject */ \"./node_modules/lodash/_initCloneObject.js\"),\n isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n isBuffer = __webpack_require__(/*! ./isBuffer */ \"./node_modules/lodash/isBuffer.js\"),\n isMap = __webpack_require__(/*! ./isMap */ \"./node_modules/lodash/isMap.js\"),\n isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n isSet = __webpack_require__(/*! ./isSet */ \"./node_modules/lodash/isSet.js\"),\n keys = __webpack_require__(/*! ./keys */ \"./node_modules/lodash/keys.js\"),\n keysIn = __webpack_require__(/*! ./keysIn */ \"./node_modules/lodash/keysIn.js\");\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_baseClone.js?");
/***/ }),
/***/ "./node_modules/lodash/_baseCreate.js":
/*!********************************************!*\
!*** ./node_modules/lodash/_baseCreate.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\");\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_baseCreate.js?");
/***/ }),
/***/ "./node_modules/lodash/_baseGetAllKeys.js":
/*!************************************************!*\
!*** ./node_modules/lodash/_baseGetAllKeys.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var arrayPush = __webpack_require__(/*! ./_arrayPush */ \"./node_modules/lodash/_arrayPush.js\"),\n isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\");\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_baseGetAllKeys.js?");
/***/ }),
/***/ "./node_modules/lodash/_baseGetTag.js":
/*!********************************************!*\
!*** ./node_modules/lodash/_baseGetTag.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var Symbol = __webpack_require__(/*! ./_Symbol */ \"./node_modules/lodash/_Symbol.js\"),\n getRawTag = __webpack_require__(/*! ./_getRawTag */ \"./node_modules/lodash/_getRawTag.js\"),\n objectToString = __webpack_require__(/*! ./_objectToString */ \"./node_modules/lodash/_objectToString.js\");\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_baseGetTag.js?");
/***/ }),
/***/ "./node_modules/lodash/_baseIsArguments.js":
/*!*************************************************!*\
!*** ./node_modules/lodash/_baseIsArguments.js ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_baseIsArguments.js?");
/***/ }),
/***/ "./node_modules/lodash/_baseIsMap.js":
/*!*******************************************!*\
!*** ./node_modules/lodash/_baseIsMap.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var getTag = __webpack_require__(/*! ./_getTag */ \"./node_modules/lodash/_getTag.js\"),\n isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_baseIsMap.js?");
/***/ }),
/***/ "./node_modules/lodash/_baseIsNative.js":
/*!**********************************************!*\
!*** ./node_modules/lodash/_baseIsNative.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var isFunction = __webpack_require__(/*! ./isFunction */ \"./node_modules/lodash/isFunction.js\"),\n isMasked = __webpack_require__(/*! ./_isMasked */ \"./node_modules/lodash/_isMasked.js\"),\n isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n toSource = __webpack_require__(/*! ./_toSource */ \"./node_modules/lodash/_toSource.js\");\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_baseIsNative.js?");
/***/ }),
/***/ "./node_modules/lodash/_baseIsSet.js":
/*!*******************************************!*\
!*** ./node_modules/lodash/_baseIsSet.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var getTag = __webpack_require__(/*! ./_getTag */ \"./node_modules/lodash/_getTag.js\"),\n isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_baseIsSet.js?");
/***/ }),
/***/ "./node_modules/lodash/_baseIsTypedArray.js":
/*!**************************************************!*\
!*** ./node_modules/lodash/_baseIsTypedArray.js ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n isLength = __webpack_require__(/*! ./isLength */ \"./node_modules/lodash/isLength.js\"),\n isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_baseIsTypedArray.js?");
/***/ }),
/***/ "./node_modules/lodash/_baseKeys.js":
/*!******************************************!*\
!*** ./node_modules/lodash/_baseKeys.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var isPrototype = __webpack_require__(/*! ./_isPrototype */ \"./node_modules/lodash/_isPrototype.js\"),\n nativeKeys = __webpack_require__(/*! ./_nativeKeys */ \"./node_modules/lodash/_nativeKeys.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_baseKeys.js?");
/***/ }),
/***/ "./node_modules/lodash/_baseKeysIn.js":
/*!********************************************!*\
!*** ./node_modules/lodash/_baseKeysIn.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n isPrototype = __webpack_require__(/*! ./_isPrototype */ \"./node_modules/lodash/_isPrototype.js\"),\n nativeKeysIn = __webpack_require__(/*! ./_nativeKeysIn */ \"./node_modules/lodash/_nativeKeysIn.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_baseKeysIn.js?");
/***/ }),
/***/ "./node_modules/lodash/_baseTimes.js":
/*!*******************************************!*\
!*** ./node_modules/lodash/_baseTimes.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_baseTimes.js?");
/***/ }),
/***/ "./node_modules/lodash/_baseUnary.js":
/*!*******************************************!*\
!*** ./node_modules/lodash/_baseUnary.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_baseUnary.js?");
/***/ }),
/***/ "./node_modules/lodash/_cloneArrayBuffer.js":
/*!**************************************************!*\
!*** ./node_modules/lodash/_cloneArrayBuffer.js ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var Uint8Array = __webpack_require__(/*! ./_Uint8Array */ \"./node_modules/lodash/_Uint8Array.js\");\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_cloneArrayBuffer.js?");
/***/ }),
/***/ "./node_modules/lodash/_cloneBuffer.js":
/*!*********************************************!*\
!*** ./node_modules/lodash/_cloneBuffer.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack:///./node_modules/lodash/_cloneBuffer.js?");
/***/ }),
/***/ "./node_modules/lodash/_cloneDataView.js":
/*!***********************************************!*\
!*** ./node_modules/lodash/_cloneDataView.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ \"./node_modules/lodash/_cloneArrayBuffer.js\");\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_cloneDataView.js?");
/***/ }),
/***/ "./node_modules/lodash/_cloneRegExp.js":
/*!*********************************************!*\
!*** ./node_modules/lodash/_cloneRegExp.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_cloneRegExp.js?");
/***/ }),
/***/ "./node_modules/lodash/_cloneSymbol.js":
/*!*********************************************!*\
!*** ./node_modules/lodash/_cloneSymbol.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var Symbol = __webpack_require__(/*! ./_Symbol */ \"./node_modules/lodash/_Symbol.js\");\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_cloneSymbol.js?");
/***/ }),
/***/ "./node_modules/lodash/_cloneTypedArray.js":
/*!*************************************************!*\
!*** ./node_modules/lodash/_cloneTypedArray.js ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ \"./node_modules/lodash/_cloneArrayBuffer.js\");\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_cloneTypedArray.js?");
/***/ }),
/***/ "./node_modules/lodash/_copyArray.js":
/*!*******************************************!*\
!*** ./node_modules/lodash/_copyArray.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_copyArray.js?");
/***/ }),
/***/ "./node_modules/lodash/_copyObject.js":
/*!********************************************!*\
!*** ./node_modules/lodash/_copyObject.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var assignValue = __webpack_require__(/*! ./_assignValue */ \"./node_modules/lodash/_assignValue.js\"),\n baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ \"./node_modules/lodash/_baseAssignValue.js\");\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_copyObject.js?");
/***/ }),
/***/ "./node_modules/lodash/_copySymbols.js":
/*!*********************************************!*\
!*** ./node_modules/lodash/_copySymbols.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var copyObject = __webpack_require__(/*! ./_copyObject */ \"./node_modules/lodash/_copyObject.js\"),\n getSymbols = __webpack_require__(/*! ./_getSymbols */ \"./node_modules/lodash/_getSymbols.js\");\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_copySymbols.js?");
/***/ }),
/***/ "./node_modules/lodash/_copySymbolsIn.js":
/*!***********************************************!*\
!*** ./node_modules/lodash/_copySymbolsIn.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var copyObject = __webpack_require__(/*! ./_copyObject */ \"./node_modules/lodash/_copyObject.js\"),\n getSymbolsIn = __webpack_require__(/*! ./_getSymbolsIn */ \"./node_modules/lodash/_getSymbolsIn.js\");\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_copySymbolsIn.js?");
/***/ }),
/***/ "./node_modules/lodash/_coreJsData.js":
/*!********************************************!*\
!*** ./node_modules/lodash/_coreJsData.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_coreJsData.js?");
/***/ }),
/***/ "./node_modules/lodash/_defineProperty.js":
/*!************************************************!*\
!*** ./node_modules/lodash/_defineProperty.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\");\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_defineProperty.js?");
/***/ }),
/***/ "./node_modules/lodash/_freeGlobal.js":
/*!********************************************!*\
!*** ./node_modules/lodash/_freeGlobal.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/lodash/_freeGlobal.js?");
/***/ }),
/***/ "./node_modules/lodash/_getAllKeys.js":
/*!********************************************!*\
!*** ./node_modules/lodash/_getAllKeys.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ \"./node_modules/lodash/_baseGetAllKeys.js\"),\n getSymbols = __webpack_require__(/*! ./_getSymbols */ \"./node_modules/lodash/_getSymbols.js\"),\n keys = __webpack_require__(/*! ./keys */ \"./node_modules/lodash/keys.js\");\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_getAllKeys.js?");
/***/ }),
/***/ "./node_modules/lodash/_getAllKeysIn.js":
/*!**********************************************!*\
!*** ./node_modules/lodash/_getAllKeysIn.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ \"./node_modules/lodash/_baseGetAllKeys.js\"),\n getSymbolsIn = __webpack_require__(/*! ./_getSymbolsIn */ \"./node_modules/lodash/_getSymbolsIn.js\"),\n keysIn = __webpack_require__(/*! ./keysIn */ \"./node_modules/lodash/keysIn.js\");\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_getAllKeysIn.js?");
/***/ }),
/***/ "./node_modules/lodash/_getMapData.js":
/*!********************************************!*\
!*** ./node_modules/lodash/_getMapData.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var isKeyable = __webpack_require__(/*! ./_isKeyable */ \"./node_modules/lodash/_isKeyable.js\");\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_getMapData.js?");
/***/ }),
/***/ "./node_modules/lodash/_getNative.js":
/*!*******************************************!*\
!*** ./node_modules/lodash/_getNative.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var baseIsNative = __webpack_require__(/*! ./_baseIsNative */ \"./node_modules/lodash/_baseIsNative.js\"),\n getValue = __webpack_require__(/*! ./_getValue */ \"./node_modules/lodash/_getValue.js\");\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_getNative.js?");
/***/ }),
/***/ "./node_modules/lodash/_getPrototype.js":
/*!**********************************************!*\
!*** ./node_modules/lodash/_getPrototype.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var overArg = __webpack_require__(/*! ./_overArg */ \"./node_modules/lodash/_overArg.js\");\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_getPrototype.js?");
/***/ }),
/***/ "./node_modules/lodash/_getRawTag.js":
/*!*******************************************!*\
!*** ./node_modules/lodash/_getRawTag.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var Symbol = __webpack_require__(/*! ./_Symbol */ \"./node_modules/lodash/_Symbol.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_getRawTag.js?");
/***/ }),
/***/ "./node_modules/lodash/_getSymbols.js":
/*!********************************************!*\
!*** ./node_modules/lodash/_getSymbols.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var arrayFilter = __webpack_require__(/*! ./_arrayFilter */ \"./node_modules/lodash/_arrayFilter.js\"),\n stubArray = __webpack_require__(/*! ./stubArray */ \"./node_modules/lodash/stubArray.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_getSymbols.js?");
/***/ }),
/***/ "./node_modules/lodash/_getSymbolsIn.js":
/*!**********************************************!*\
!*** ./node_modules/lodash/_getSymbolsIn.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var arrayPush = __webpack_require__(/*! ./_arrayPush */ \"./node_modules/lodash/_arrayPush.js\"),\n getPrototype = __webpack_require__(/*! ./_getPrototype */ \"./node_modules/lodash/_getPrototype.js\"),\n getSymbols = __webpack_require__(/*! ./_getSymbols */ \"./node_modules/lodash/_getSymbols.js\"),\n stubArray = __webpack_require__(/*! ./stubArray */ \"./node_modules/lodash/stubArray.js\");\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_getSymbolsIn.js?");
/***/ }),
/***/ "./node_modules/lodash/_getTag.js":
/*!****************************************!*\
!*** ./node_modules/lodash/_getTag.js ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var DataView = __webpack_require__(/*! ./_DataView */ \"./node_modules/lodash/_DataView.js\"),\n Map = __webpack_require__(/*! ./_Map */ \"./node_modules/lodash/_Map.js\"),\n Promise = __webpack_require__(/*! ./_Promise */ \"./node_modules/lodash/_Promise.js\"),\n Set = __webpack_require__(/*! ./_Set */ \"./node_modules/lodash/_Set.js\"),\n WeakMap = __webpack_require__(/*! ./_WeakMap */ \"./node_modules/lodash/_WeakMap.js\"),\n baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n toSource = __webpack_require__(/*! ./_toSource */ \"./node_modules/lodash/_toSource.js\");\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_getTag.js?");
/***/ }),
/***/ "./node_modules/lodash/_getValue.js":
/*!******************************************!*\
!*** ./node_modules/lodash/_getValue.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_getValue.js?");
/***/ }),
/***/ "./node_modules/lodash/_hashClear.js":
/*!*******************************************!*\
!*** ./node_modules/lodash/_hashClear.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./node_modules/lodash/_nativeCreate.js\");\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_hashClear.js?");
/***/ }),
/***/ "./node_modules/lodash/_hashDelete.js":
/*!********************************************!*\
!*** ./node_modules/lodash/_hashDelete.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_hashDelete.js?");
/***/ }),
/***/ "./node_modules/lodash/_hashGet.js":
/*!*****************************************!*\
!*** ./node_modules/lodash/_hashGet.js ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./node_modules/lodash/_nativeCreate.js\");\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_hashGet.js?");
/***/ }),
/***/ "./node_modules/lodash/_hashHas.js":
/*!*****************************************!*\
!*** ./node_modules/lodash/_hashHas.js ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./node_modules/lodash/_nativeCreate.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_hashHas.js?");
/***/ }),
/***/ "./node_modules/lodash/_hashSet.js":
/*!*****************************************!*\
!*** ./node_modules/lodash/_hashSet.js ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./node_modules/lodash/_nativeCreate.js\");\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_hashSet.js?");
/***/ }),
/***/ "./node_modules/lodash/_initCloneArray.js":
/*!************************************************!*\
!*** ./node_modules/lodash/_initCloneArray.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_initCloneArray.js?");
/***/ }),
/***/ "./node_modules/lodash/_initCloneByTag.js":
/*!************************************************!*\
!*** ./node_modules/lodash/_initCloneByTag.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ \"./node_modules/lodash/_cloneArrayBuffer.js\"),\n cloneDataView = __webpack_require__(/*! ./_cloneDataView */ \"./node_modules/lodash/_cloneDataView.js\"),\n cloneRegExp = __webpack_require__(/*! ./_cloneRegExp */ \"./node_modules/lodash/_cloneRegExp.js\"),\n cloneSymbol = __webpack_require__(/*! ./_cloneSymbol */ \"./node_modules/lodash/_cloneSymbol.js\"),\n cloneTypedArray = __webpack_require__(/*! ./_cloneTypedArray */ \"./node_modules/lodash/_cloneTypedArray.js\");\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_initCloneByTag.js?");
/***/ }),
/***/ "./node_modules/lodash/_initCloneObject.js":
/*!*************************************************!*\
!*** ./node_modules/lodash/_initCloneObject.js ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var baseCreate = __webpack_require__(/*! ./_baseCreate */ \"./node_modules/lodash/_baseCreate.js\"),\n getPrototype = __webpack_require__(/*! ./_getPrototype */ \"./node_modules/lodash/_getPrototype.js\"),\n isPrototype = __webpack_require__(/*! ./_isPrototype */ \"./node_modules/lodash/_isPrototype.js\");\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_initCloneObject.js?");
/***/ }),
/***/ "./node_modules/lodash/_isIndex.js":
/*!*****************************************!*\
!*** ./node_modules/lodash/_isIndex.js ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_isIndex.js?");
/***/ }),
/***/ "./node_modules/lodash/_isKeyable.js":
/*!*******************************************!*\
!*** ./node_modules/lodash/_isKeyable.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_isKeyable.js?");
/***/ }),
/***/ "./node_modules/lodash/_isMasked.js":
/*!******************************************!*\
!*** ./node_modules/lodash/_isMasked.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var coreJsData = __webpack_require__(/*! ./_coreJsData */ \"./node_modules/lodash/_coreJsData.js\");\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_isMasked.js?");
/***/ }),
/***/ "./node_modules/lodash/_isPrototype.js":
/*!*********************************************!*\
!*** ./node_modules/lodash/_isPrototype.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_isPrototype.js?");
/***/ }),
/***/ "./node_modules/lodash/_listCacheClear.js":
/*!************************************************!*\
!*** ./node_modules/lodash/_listCacheClear.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_listCacheClear.js?");
/***/ }),
/***/ "./node_modules/lodash/_listCacheDelete.js":
/*!*************************************************!*\
!*** ./node_modules/lodash/_listCacheDelete.js ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"./node_modules/lodash/_assocIndexOf.js\");\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_listCacheDelete.js?");
/***/ }),
/***/ "./node_modules/lodash/_listCacheGet.js":
/*!**********************************************!*\
!*** ./node_modules/lodash/_listCacheGet.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"./node_modules/lodash/_assocIndexOf.js\");\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_listCacheGet.js?");
/***/ }),
/***/ "./node_modules/lodash/_listCacheHas.js":
/*!**********************************************!*\
!*** ./node_modules/lodash/_listCacheHas.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"./node_modules/lodash/_assocIndexOf.js\");\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_listCacheHas.js?");
/***/ }),
/***/ "./node_modules/lodash/_listCacheSet.js":
/*!**********************************************!*\
!*** ./node_modules/lodash/_listCacheSet.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"./node_modules/lodash/_assocIndexOf.js\");\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_listCacheSet.js?");
/***/ }),
/***/ "./node_modules/lodash/_mapCacheClear.js":
/*!***********************************************!*\
!*** ./node_modules/lodash/_mapCacheClear.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var Hash = __webpack_require__(/*! ./_Hash */ \"./node_modules/lodash/_Hash.js\"),\n ListCache = __webpack_require__(/*! ./_ListCache */ \"./node_modules/lodash/_ListCache.js\"),\n Map = __webpack_require__(/*! ./_Map */ \"./node_modules/lodash/_Map.js\");\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_mapCacheClear.js?");
/***/ }),
/***/ "./node_modules/lodash/_mapCacheDelete.js":
/*!************************************************!*\
!*** ./node_modules/lodash/_mapCacheDelete.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var getMapData = __webpack_require__(/*! ./_getMapData */ \"./node_modules/lodash/_getMapData.js\");\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_mapCacheDelete.js?");
/***/ }),
/***/ "./node_modules/lodash/_mapCacheGet.js":
/*!*********************************************!*\
!*** ./node_modules/lodash/_mapCacheGet.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var getMapData = __webpack_require__(/*! ./_getMapData */ \"./node_modules/lodash/_getMapData.js\");\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_mapCacheGet.js?");
/***/ }),
/***/ "./node_modules/lodash/_mapCacheHas.js":
/*!*********************************************!*\
!*** ./node_modules/lodash/_mapCacheHas.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var getMapData = __webpack_require__(/*! ./_getMapData */ \"./node_modules/lodash/_getMapData.js\");\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_mapCacheHas.js?");
/***/ }),
/***/ "./node_modules/lodash/_mapCacheSet.js":
/*!*********************************************!*\
!*** ./node_modules/lodash/_mapCacheSet.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var getMapData = __webpack_require__(/*! ./_getMapData */ \"./node_modules/lodash/_getMapData.js\");\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_mapCacheSet.js?");
/***/ }),
/***/ "./node_modules/lodash/_nativeCreate.js":
/*!**********************************************!*\
!*** ./node_modules/lodash/_nativeCreate.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\");\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_nativeCreate.js?");
/***/ }),
/***/ "./node_modules/lodash/_nativeKeys.js":
/*!********************************************!*\
!*** ./node_modules/lodash/_nativeKeys.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var overArg = __webpack_require__(/*! ./_overArg */ \"./node_modules/lodash/_overArg.js\");\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_nativeKeys.js?");
/***/ }),
/***/ "./node_modules/lodash/_nativeKeysIn.js":
/*!**********************************************!*\
!*** ./node_modules/lodash/_nativeKeysIn.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_nativeKeysIn.js?");
/***/ }),
/***/ "./node_modules/lodash/_nodeUtil.js":
/*!******************************************!*\
!*** ./node_modules/lodash/_nodeUtil.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ \"./node_modules/lodash/_freeGlobal.js\");\n\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack:///./node_modules/lodash/_nodeUtil.js?");
/***/ }),
/***/ "./node_modules/lodash/_objectToString.js":
/*!************************************************!*\
!*** ./node_modules/lodash/_objectToString.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_objectToString.js?");
/***/ }),
/***/ "./node_modules/lodash/_overArg.js":
/*!*****************************************!*\
!*** ./node_modules/lodash/_overArg.js ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_overArg.js?");
/***/ }),
/***/ "./node_modules/lodash/_root.js":
/*!**************************************!*\
!*** ./node_modules/lodash/_root.js ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ \"./node_modules/lodash/_freeGlobal.js\");\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_root.js?");
/***/ }),
/***/ "./node_modules/lodash/_stackClear.js":
/*!********************************************!*\
!*** ./node_modules/lodash/_stackClear.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var ListCache = __webpack_require__(/*! ./_ListCache */ \"./node_modules/lodash/_ListCache.js\");\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_stackClear.js?");
/***/ }),
/***/ "./node_modules/lodash/_stackDelete.js":
/*!*********************************************!*\
!*** ./node_modules/lodash/_stackDelete.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_stackDelete.js?");
/***/ }),
/***/ "./node_modules/lodash/_stackGet.js":
/*!******************************************!*\
!*** ./node_modules/lodash/_stackGet.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_stackGet.js?");
/***/ }),
/***/ "./node_modules/lodash/_stackHas.js":
/*!******************************************!*\
!*** ./node_modules/lodash/_stackHas.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_stackHas.js?");
/***/ }),
/***/ "./node_modules/lodash/_stackSet.js":
/*!******************************************!*\
!*** ./node_modules/lodash/_stackSet.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var ListCache = __webpack_require__(/*! ./_ListCache */ \"./node_modules/lodash/_ListCache.js\"),\n Map = __webpack_require__(/*! ./_Map */ \"./node_modules/lodash/_Map.js\"),\n MapCache = __webpack_require__(/*! ./_MapCache */ \"./node_modules/lodash/_MapCache.js\");\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_stackSet.js?");
/***/ }),
/***/ "./node_modules/lodash/_toSource.js":
/*!******************************************!*\
!*** ./node_modules/lodash/_toSource.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/_toSource.js?");
/***/ }),
/***/ "./node_modules/lodash/cloneDeep.js":
/*!******************************************!*\
!*** ./node_modules/lodash/cloneDeep.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var baseClone = __webpack_require__(/*! ./_baseClone */ \"./node_modules/lodash/_baseClone.js\");\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/cloneDeep.js?");
/***/ }),
/***/ "./node_modules/lodash/eq.js":
/*!***********************************!*\
!*** ./node_modules/lodash/eq.js ***!
\***********************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/eq.js?");
/***/ }),
/***/ "./node_modules/lodash/isArguments.js":
/*!********************************************!*\
!*** ./node_modules/lodash/isArguments.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var baseIsArguments = __webpack_require__(/*! ./_baseIsArguments */ \"./node_modules/lodash/_baseIsArguments.js\"),\n isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/isArguments.js?");
/***/ }),
/***/ "./node_modules/lodash/isArray.js":
/*!****************************************!*\
!*** ./node_modules/lodash/isArray.js ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/isArray.js?");
/***/ }),
/***/ "./node_modules/lodash/isArrayLike.js":
/*!********************************************!*\
!*** ./node_modules/lodash/isArrayLike.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var isFunction = __webpack_require__(/*! ./isFunction */ \"./node_modules/lodash/isFunction.js\"),\n isLength = __webpack_require__(/*! ./isLength */ \"./node_modules/lodash/isLength.js\");\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/isArrayLike.js?");
/***/ }),
/***/ "./node_modules/lodash/isBuffer.js":
/*!*****************************************!*\
!*** ./node_modules/lodash/isBuffer.js ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\"),\n stubFalse = __webpack_require__(/*! ./stubFalse */ \"./node_modules/lodash/stubFalse.js\");\n\n/** Detect free variable `exports`. */\nvar freeExports = true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack:///./node_modules/lodash/isBuffer.js?");
/***/ }),
/***/ "./node_modules/lodash/isFunction.js":
/*!*******************************************!*\
!*** ./node_modules/lodash/isFunction.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\");\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/isFunction.js?");
/***/ }),
/***/ "./node_modules/lodash/isLength.js":
/*!*****************************************!*\
!*** ./node_modules/lodash/isLength.js ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/isLength.js?");
/***/ }),
/***/ "./node_modules/lodash/isMap.js":
/*!**************************************!*\
!*** ./node_modules/lodash/isMap.js ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var baseIsMap = __webpack_require__(/*! ./_baseIsMap */ \"./node_modules/lodash/_baseIsMap.js\"),\n baseUnary = __webpack_require__(/*! ./_baseUnary */ \"./node_modules/lodash/_baseUnary.js\"),\n nodeUtil = __webpack_require__(/*! ./_nodeUtil */ \"./node_modules/lodash/_nodeUtil.js\");\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/isMap.js?");
/***/ }),
/***/ "./node_modules/lodash/isObject.js":
/*!*****************************************!*\
!*** ./node_modules/lodash/isObject.js ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/isObject.js?");
/***/ }),
/***/ "./node_modules/lodash/isObjectLike.js":
/*!*********************************************!*\
!*** ./node_modules/lodash/isObjectLike.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/isObjectLike.js?");
/***/ }),
/***/ "./node_modules/lodash/isSet.js":
/*!**************************************!*\
!*** ./node_modules/lodash/isSet.js ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var baseIsSet = __webpack_require__(/*! ./_baseIsSet */ \"./node_modules/lodash/_baseIsSet.js\"),\n baseUnary = __webpack_require__(/*! ./_baseUnary */ \"./node_modules/lodash/_baseUnary.js\"),\n nodeUtil = __webpack_require__(/*! ./_nodeUtil */ \"./node_modules/lodash/_nodeUtil.js\");\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/isSet.js?");
/***/ }),
/***/ "./node_modules/lodash/isTypedArray.js":
/*!*********************************************!*\
!*** ./node_modules/lodash/isTypedArray.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var baseIsTypedArray = __webpack_require__(/*! ./_baseIsTypedArray */ \"./node_modules/lodash/_baseIsTypedArray.js\"),\n baseUnary = __webpack_require__(/*! ./_baseUnary */ \"./node_modules/lodash/_baseUnary.js\"),\n nodeUtil = __webpack_require__(/*! ./_nodeUtil */ \"./node_modules/lodash/_nodeUtil.js\");\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/isTypedArray.js?");
/***/ }),
/***/ "./node_modules/lodash/keys.js":
/*!*************************************!*\
!*** ./node_modules/lodash/keys.js ***!
\*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ \"./node_modules/lodash/_arrayLikeKeys.js\"),\n baseKeys = __webpack_require__(/*! ./_baseKeys */ \"./node_modules/lodash/_baseKeys.js\"),\n isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\");\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/keys.js?");
/***/ }),
/***/ "./node_modules/lodash/keysIn.js":
/*!***************************************!*\
!*** ./node_modules/lodash/keysIn.js ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ \"./node_modules/lodash/_arrayLikeKeys.js\"),\n baseKeysIn = __webpack_require__(/*! ./_baseKeysIn */ \"./node_modules/lodash/_baseKeysIn.js\"),\n isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\");\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/keysIn.js?");
/***/ }),
/***/ "./node_modules/lodash/stubArray.js":
/*!******************************************!*\
!*** ./node_modules/lodash/stubArray.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/stubArray.js?");
/***/ }),
/***/ "./node_modules/lodash/stubFalse.js":
/*!******************************************!*\
!*** ./node_modules/lodash/stubFalse.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n\n\n//# sourceURL=webpack:///./node_modules/lodash/stubFalse.js?");
/***/ }),
/***/ "./node_modules/markdown-it/index.js":
/*!*******************************************!*\
!*** ./node_modules/markdown-it/index.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\n\nmodule.exports = __webpack_require__(/*! ./lib/ */ \"./node_modules/markdown-it/lib/index.js\");\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/index.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/common/entities.js":
/*!*********************************************************!*\
!*** ./node_modules/markdown-it/lib/common/entities.js ***!
\*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// HTML5 entities map: { name -> utf16string }\n//\n\n\n/*eslint quotes:0*/\nmodule.exports = __webpack_require__(/*! entities/lib/maps/entities.json */ \"./node_modules/markdown-it/node_modules/entities/lib/maps/entities.json\");\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/common/entities.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/common/html_blocks.js":
/*!************************************************************!*\
!*** ./node_modules/markdown-it/lib/common/html_blocks.js ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// List of valid html blocks names, accorting to commonmark spec\n// http://jgm.github.io/CommonMark/spec.html#html-blocks\n\n\n\n\nmodule.exports = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'source',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n];\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/common/html_blocks.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/common/html_re.js":
/*!********************************************************!*\
!*** ./node_modules/markdown-it/lib/common/html_re.js ***!
\********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Regexps to match html elements\n\n\n\nvar attr_name = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\n\nvar unquoted = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\nvar single_quoted = \"'[^']*'\";\nvar double_quoted = '\"[^\"]*\"';\n\nvar attr_value = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')';\n\nvar attribute = '(?:\\\\s+' + attr_name + '(?:\\\\s*=\\\\s*' + attr_value + ')?)';\n\nvar open_tag = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>';\n\nvar close_tag = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>';\nvar comment = '<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->';\nvar processing = '<[?][\\\\s\\\\S]*?[?]>';\nvar declaration = '<![A-Z]+\\\\s+[^>]*>';\nvar cdata = '<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>';\n\nvar HTML_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + '|' + comment +\n '|' + processing + '|' + declaration + '|' + cdata + ')');\nvar HTML_OPEN_CLOSE_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + ')');\n\nmodule.exports.HTML_TAG_RE = HTML_TAG_RE;\nmodule.exports.HTML_OPEN_CLOSE_TAG_RE = HTML_OPEN_CLOSE_TAG_RE;\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/common/html_re.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/common/utils.js":
/*!******************************************************!*\
!*** ./node_modules/markdown-it/lib/common/utils.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Utilities\n//\n\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction isString(obj) { return _class(obj) === '[object String]'; }\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction has(object, key) {\n return _hasOwnProperty.call(object, key);\n}\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be object');\n }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n}\n\n// Remove element from array and put another array at those position.\n// Useful for some operations with tokens\nfunction arrayReplaceAt(src, pos, newElements) {\n return [].concat(src.slice(0, pos), newElements, src.slice(pos + 1));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isValidEntityCode(c) {\n /*eslint no-bitwise:0*/\n // broken sequence\n if (c >= 0xD800 && c <= 0xDFFF) { return false; }\n // never used\n if (c >= 0xFDD0 && c <= 0xFDEF) { return false; }\n if ((c & 0xFFFF) === 0xFFFF || (c & 0xFFFF) === 0xFFFE) { return false; }\n // control codes\n if (c >= 0x00 && c <= 0x08) { return false; }\n if (c === 0x0B) { return false; }\n if (c >= 0x0E && c <= 0x1F) { return false; }\n if (c >= 0x7F && c <= 0x9F) { return false; }\n // out of range\n if (c > 0x10FFFF) { return false; }\n return true;\n}\n\nfunction fromCodePoint(c) {\n /*eslint no-bitwise:0*/\n if (c > 0xffff) {\n c -= 0x10000;\n var surrogate1 = 0xd800 + (c >> 10),\n surrogate2 = 0xdc00 + (c & 0x3ff);\n\n return String.fromCharCode(surrogate1, surrogate2);\n }\n return String.fromCharCode(c);\n}\n\n\nvar UNESCAPE_MD_RE = /\\\\([!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~])/g;\nvar ENTITY_RE = /&([a-z#][a-z0-9]{1,31});/gi;\nvar UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source, 'gi');\n\nvar DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;\n\nvar entities = __webpack_require__(/*! ./entities */ \"./node_modules/markdown-it/lib/common/entities.js\");\n\nfunction replaceEntityPattern(match, name) {\n var code;\n\n if (has(entities, name)) {\n return entities[name];\n }\n\n if (name.charCodeAt(0) === 0x23/* # */ && DIGITAL_ENTITY_TEST_RE.test(name)) {\n code = name[1].toLowerCase() === 'x' ?\n parseInt(name.slice(2), 16) : parseInt(name.slice(1), 10);\n\n if (isValidEntityCode(code)) {\n return fromCodePoint(code);\n }\n }\n\n return match;\n}\n\n/*function replaceEntities(str) {\n if (str.indexOf('&') < 0) { return str; }\n\n return str.replace(ENTITY_RE, replaceEntityPattern);\n}*/\n\nfunction unescapeMd(str) {\n if (str.indexOf('\\\\') < 0) { return str; }\n return str.replace(UNESCAPE_MD_RE, '$1');\n}\n\nfunction unescapeAll(str) {\n if (str.indexOf('\\\\') < 0 && str.indexOf('&') < 0) { return str; }\n\n return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {\n if (escaped) { return escaped; }\n return replaceEntityPattern(match, entity);\n });\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar HTML_ESCAPE_TEST_RE = /[&<>\"]/;\nvar HTML_ESCAPE_REPLACE_RE = /[&<>\"]/g;\nvar HTML_REPLACEMENTS = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;'\n};\n\nfunction replaceUnsafeChar(ch) {\n return HTML_REPLACEMENTS[ch];\n}\n\nfunction escapeHtml(str) {\n if (HTML_ESCAPE_TEST_RE.test(str)) {\n return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar);\n }\n return str;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar REGEXP_ESCAPE_RE = /[.?*+^$[\\]\\\\(){}|-]/g;\n\nfunction escapeRE(str) {\n return str.replace(REGEXP_ESCAPE_RE, '\\\\$&');\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isSpace(code) {\n switch (code) {\n case 0x09:\n case 0x20:\n return true;\n }\n return false;\n}\n\n// Zs (unicode class) || [\\t\\f\\v\\r\\n]\nfunction isWhiteSpace(code) {\n if (code >= 0x2000 && code <= 0x200A) { return true; }\n switch (code) {\n case 0x09: // \\t\n case 0x0A: // \\n\n case 0x0B: // \\v\n case 0x0C: // \\f\n case 0x0D: // \\r\n case 0x20:\n case 0xA0:\n case 0x1680:\n case 0x202F:\n case 0x205F:\n case 0x3000:\n return true;\n }\n return false;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n/*eslint-disable max-len*/\nvar UNICODE_PUNCT_RE = __webpack_require__(/*! uc.micro/categories/P/regex */ \"./node_modules/uc.micro/categories/P/regex.js\");\n\n// Currently without astral characters support.\nfunction isPunctChar(ch) {\n return UNICODE_PUNCT_RE.test(ch);\n}\n\n\n// Markdown ASCII punctuation characters.\n//\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\n//\n// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.\n//\nfunction isMdAsciiPunct(ch) {\n switch (ch) {\n case 0x21/* ! */:\n case 0x22/* \" */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x27/* ' */:\n case 0x28/* ( */:\n case 0x29/* ) */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2C/* , */:\n case 0x2D/* - */:\n case 0x2E/* . */:\n case 0x2F/* / */:\n case 0x3A/* : */:\n case 0x3B/* ; */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x3F/* ? */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7C/* | */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true;\n default:\n return false;\n }\n}\n\n// Hepler to unify [reference labels].\n//\nfunction normalizeReference(str) {\n // Trim and collapse whitespace\n //\n str = str.trim().replace(/\\s+/g, ' ');\n\n // In node v10 'ẞ'.toLowerCase() === 'Ṿ', which is presumed to be a bug\n // fixed in v12 (couldn't find any details).\n //\n // So treat this one as a special case\n // (remove this when node v10 is no longer supported).\n //\n if ('ẞ'.toLowerCase() === 'Ṿ') {\n str = str.replace(/ẞ/g, 'ß');\n }\n\n // .toLowerCase().toUpperCase() should get rid of all differences\n // between letter variants.\n //\n // Simple .toLowerCase() doesn't normalize 125 code points correctly,\n // and .toUpperCase doesn't normalize 6 of them (list of exceptions:\n // İ, ϴ, ẞ, Ω, , Å - those are already uppercased, but have differently\n // uppercased versions).\n //\n // Here's an example showing how it happens. Lets take greek letter omega:\n // uppercase U+0398 (Θ), U+03f4 (ϴ) and lowercase U+03b8 (θ), U+03d1 (ϑ)\n //\n // Unicode entries:\n // 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;\n // 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398\n // 03D1;GREEK THETA SYMBOL;Ll;0;L;<compat> 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398\n // 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L;<compat> 0398;;;;N;;;;03B8;\n //\n // Case-insensitive comparison should treat all of them as equivalent.\n //\n // But .toLowerCase() doesn't change ϑ (it's already lowercase),\n // and .toUpperCase() doesn't change ϴ (already uppercase).\n //\n // Applying first lower then upper case normalizes any character:\n // '\\u0398\\u03f4\\u03b8\\u03d1'.toLowerCase().toUpperCase() === '\\u0398\\u0398\\u0398\\u0398'\n //\n // Note: this is equivalent to unicode case folding; unicode normalization\n // is a different step that is not required here.\n //\n // Final result should be uppercased, because it's later stored in an object\n // (this avoid a conflict with Object.prototype members,\n // most notably, `__proto__`)\n //\n return str.toLowerCase().toUpperCase();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n// Re-export libraries commonly used in both markdown-it and its plugins,\n// so plugins won't have to depend on them explicitly, which reduces their\n// bundled size (e.g. a browser build).\n//\nexports.lib = {};\nexports.lib.mdurl = __webpack_require__(/*! mdurl */ \"./node_modules/mdurl/index.js\");\nexports.lib.ucmicro = __webpack_require__(/*! uc.micro */ \"./node_modules/uc.micro/index.js\");\n\nexports.assign = assign;\nexports.isString = isString;\nexports.has = has;\nexports.unescapeMd = unescapeMd;\nexports.unescapeAll = unescapeAll;\nexports.isValidEntityCode = isValidEntityCode;\nexports.fromCodePoint = fromCodePoint;\n// exports.replaceEntities = replaceEntities;\nexports.escapeHtml = escapeHtml;\nexports.arrayReplaceAt = arrayReplaceAt;\nexports.isSpace = isSpace;\nexports.isWhiteSpace = isWhiteSpace;\nexports.isMdAsciiPunct = isMdAsciiPunct;\nexports.isPunctChar = isPunctChar;\nexports.escapeRE = escapeRE;\nexports.normalizeReference = normalizeReference;\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/common/utils.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/helpers/index.js":
/*!*******************************************************!*\
!*** ./node_modules/markdown-it/lib/helpers/index.js ***!
\*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Just a shortcut for bulk export\n\n\n\nexports.parseLinkLabel = __webpack_require__(/*! ./parse_link_label */ \"./node_modules/markdown-it/lib/helpers/parse_link_label.js\");\nexports.parseLinkDestination = __webpack_require__(/*! ./parse_link_destination */ \"./node_modules/markdown-it/lib/helpers/parse_link_destination.js\");\nexports.parseLinkTitle = __webpack_require__(/*! ./parse_link_title */ \"./node_modules/markdown-it/lib/helpers/parse_link_title.js\");\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/helpers/index.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/helpers/parse_link_destination.js":
/*!************************************************************************!*\
!*** ./node_modules/markdown-it/lib/helpers/parse_link_destination.js ***!
\************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Parse link destination\n//\n\n\n\nvar unescapeAll = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").unescapeAll;\n\n\nmodule.exports = function parseLinkDestination(str, start, max) {\n var code, level,\n pos = start,\n result = {\n ok: false,\n pos: 0,\n lines: 0,\n str: ''\n };\n\n if (str.charCodeAt(pos) === 0x3C /* < */) {\n pos++;\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === 0x0A /* \\n */) { return result; }\n if (code === 0x3C /* < */) { return result; }\n if (code === 0x3E /* > */) {\n result.pos = pos + 1;\n result.str = unescapeAll(str.slice(start + 1, pos));\n result.ok = true;\n return result;\n }\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos += 2;\n continue;\n }\n\n pos++;\n }\n\n // no closing '>'\n return result;\n }\n\n // this should be ... } else { ... branch\n\n level = 0;\n while (pos < max) {\n code = str.charCodeAt(pos);\n\n if (code === 0x20) { break; }\n\n // ascii control characters\n if (code < 0x20 || code === 0x7F) { break; }\n\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n if (str.charCodeAt(pos + 1) === 0x20) { break; }\n pos += 2;\n continue;\n }\n\n if (code === 0x28 /* ( */) {\n level++;\n if (level > 32) { return result; }\n }\n\n if (code === 0x29 /* ) */) {\n if (level === 0) { break; }\n level--;\n }\n\n pos++;\n }\n\n if (start === pos) { return result; }\n if (level !== 0) { return result; }\n\n result.str = unescapeAll(str.slice(start, pos));\n result.pos = pos;\n result.ok = true;\n return result;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/helpers/parse_link_destination.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/helpers/parse_link_label.js":
/*!******************************************************************!*\
!*** ./node_modules/markdown-it/lib/helpers/parse_link_label.js ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Parse link label\n//\n// this function assumes that first character (\"[\") already matches;\n// returns the end of the label\n//\n\n\nmodule.exports = function parseLinkLabel(state, start, disableNested) {\n var level, found, marker, prevPos,\n labelEnd = -1,\n max = state.posMax,\n oldPos = state.pos;\n\n state.pos = start + 1;\n level = 1;\n\n while (state.pos < max) {\n marker = state.src.charCodeAt(state.pos);\n if (marker === 0x5D /* ] */) {\n level--;\n if (level === 0) {\n found = true;\n break;\n }\n }\n\n prevPos = state.pos;\n state.md.inline.skipToken(state);\n if (marker === 0x5B /* [ */) {\n if (prevPos === state.pos - 1) {\n // increase level if we find text `[`, which is not a part of any token\n level++;\n } else if (disableNested) {\n state.pos = oldPos;\n return -1;\n }\n }\n }\n\n if (found) {\n labelEnd = state.pos;\n }\n\n // restore old state\n state.pos = oldPos;\n\n return labelEnd;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/helpers/parse_link_label.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/helpers/parse_link_title.js":
/*!******************************************************************!*\
!*** ./node_modules/markdown-it/lib/helpers/parse_link_title.js ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Parse link title\n//\n\n\n\nvar unescapeAll = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").unescapeAll;\n\n\nmodule.exports = function parseLinkTitle(str, start, max) {\n var code,\n marker,\n lines = 0,\n pos = start,\n result = {\n ok: false,\n pos: 0,\n lines: 0,\n str: ''\n };\n\n if (pos >= max) { return result; }\n\n marker = str.charCodeAt(pos);\n\n if (marker !== 0x22 /* \" */ && marker !== 0x27 /* ' */ && marker !== 0x28 /* ( */) { return result; }\n\n pos++;\n\n // if opening marker is \"(\", switch it to closing marker \")\"\n if (marker === 0x28) { marker = 0x29; }\n\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === marker) {\n result.pos = pos + 1;\n result.lines = lines;\n result.str = unescapeAll(str.slice(start + 1, pos));\n result.ok = true;\n return result;\n } else if (code === 0x28 /* ( */ && marker === 0x29 /* ) */) {\n return result;\n } else if (code === 0x0A) {\n lines++;\n } else if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos++;\n if (str.charCodeAt(pos) === 0x0A) {\n lines++;\n }\n }\n\n pos++;\n }\n\n return result;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/helpers/parse_link_title.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/index.js":
/*!***********************************************!*\
!*** ./node_modules/markdown-it/lib/index.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Main parser class\n\n\n\n\nvar utils = __webpack_require__(/*! ./common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\");\nvar helpers = __webpack_require__(/*! ./helpers */ \"./node_modules/markdown-it/lib/helpers/index.js\");\nvar Renderer = __webpack_require__(/*! ./renderer */ \"./node_modules/markdown-it/lib/renderer.js\");\nvar ParserCore = __webpack_require__(/*! ./parser_core */ \"./node_modules/markdown-it/lib/parser_core.js\");\nvar ParserBlock = __webpack_require__(/*! ./parser_block */ \"./node_modules/markdown-it/lib/parser_block.js\");\nvar ParserInline = __webpack_require__(/*! ./parser_inline */ \"./node_modules/markdown-it/lib/parser_inline.js\");\nvar LinkifyIt = __webpack_require__(/*! linkify-it */ \"./node_modules/linkify-it/index.js\");\nvar mdurl = __webpack_require__(/*! mdurl */ \"./node_modules/mdurl/index.js\");\nvar punycode = __webpack_require__(/*! punycode */ \"./node_modules/node-libs-browser/node_modules/punycode/punycode.js\");\n\n\nvar config = {\n default: __webpack_require__(/*! ./presets/default */ \"./node_modules/markdown-it/lib/presets/default.js\"),\n zero: __webpack_require__(/*! ./presets/zero */ \"./node_modules/markdown-it/lib/presets/zero.js\"),\n commonmark: __webpack_require__(/*! ./presets/commonmark */ \"./node_modules/markdown-it/lib/presets/commonmark.js\")\n};\n\n////////////////////////////////////////////////////////////////////////////////\n//\n// This validator can prohibit more than really needed to prevent XSS. It's a\n// tradeoff to keep code simple and to be secure by default.\n//\n// If you need different setup - override validator method as you wish. Or\n// replace it with dummy function and use external sanitizer.\n//\n\nvar BAD_PROTO_RE = /^(vbscript|javascript|file|data):/;\nvar GOOD_DATA_RE = /^data:image\\/(gif|png|jpeg|webp);/;\n\nfunction validateLink(url) {\n // url should be normalized at this point, and existing entities are decoded\n var str = url.trim().toLowerCase();\n\n return BAD_PROTO_RE.test(str) ? (GOOD_DATA_RE.test(str) ? true : false) : true;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar RECODE_HOSTNAME_FOR = [ 'http:', 'https:', 'mailto:' ];\n\nfunction normalizeLink(url) {\n var parsed = mdurl.parse(url, true);\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toASCII(parsed.hostname);\n } catch (er) { /**/ }\n }\n }\n\n return mdurl.encode(mdurl.format(parsed));\n}\n\nfunction normalizeLinkText(url) {\n var parsed = mdurl.parse(url, true);\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toUnicode(parsed.hostname);\n } catch (er) { /**/ }\n }\n }\n\n // add '%' to exclude list because of https://github.com/markdown-it/markdown-it/issues/720\n return mdurl.decode(mdurl.format(parsed), mdurl.decode.defaultChars + '%');\n}\n\n\n/**\n * class MarkdownIt\n *\n * Main parser/renderer class.\n *\n * ##### Usage\n *\n * ```javascript\n * // node.js, \"classic\" way:\n * var MarkdownIt = require('markdown-it'),\n * md = new MarkdownIt();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // node.js, the same, but with sugar:\n * var md = require('markdown-it')();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // browser without AMD, added to \"window\" on script load\n * // Note, there are no dash.\n * var md = window.markdownit();\n * var result = md.render('# markdown-it rulezz!');\n * ```\n *\n * Single line rendering, without paragraph wrap:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * var result = md.renderInline('__markdown-it__ rulezz!');\n * ```\n **/\n\n/**\n * new MarkdownIt([presetName, options])\n * - presetName (String): optional, `commonmark` / `zero`\n * - options (Object)\n *\n * Creates parser instanse with given config. Can be called without `new`.\n *\n * ##### presetName\n *\n * MarkdownIt provides named presets as a convenience to quickly\n * enable/disable active syntax rules and options for common use cases.\n *\n * - [\"commonmark\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/commonmark.js) -\n * configures parser to strict [CommonMark](http://commonmark.org/) mode.\n * - [default](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/default.js) -\n * similar to GFM, used when no preset name given. Enables all available rules,\n * but still without html, typographer & autolinker.\n * - [\"zero\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/zero.js) -\n * all rules disabled. Useful to quickly setup your config via `.enable()`.\n * For example, when you need only `bold` and `italic` markup and nothing else.\n *\n * ##### options:\n *\n * - __html__ - `false`. Set `true` to enable HTML tags in source. Be careful!\n * That's not safe! You may need external sanitizer to protect output from XSS.\n * It's better to extend features via plugins, instead of enabling HTML.\n * - __xhtmlOut__ - `false`. Set `true` to add '/' when closing single tags\n * (`<br />`). This is needed only for full CommonMark compatibility. In real\n * world you will need HTML output.\n * - __breaks__ - `false`. Set `true` to convert `\\n` in paragraphs into `<br>`.\n * - __langPrefix__ - `language-`. CSS language class prefix for fenced blocks.\n * Can be useful for external highlighters.\n * - __linkify__ - `false`. Set `true` to autoconvert URL-like text to links.\n * - __typographer__ - `false`. Set `true` to enable [some language-neutral\n * replacement](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.js) +\n * quotes beautification (smartquotes).\n * - __quotes__ - `“”‘’`, String or Array. Double + single quotes replacement\n * pairs, when typographer enabled and smartquotes on. For example, you can\n * use `'«»„“'` for Russian, `'„“‚‘'` for German, and\n * `['«\\xA0', '\\xA0»', '\\xA0', '\\xA0']` for French (including nbsp).\n * - __highlight__ - `null`. Highlighter function for fenced code blocks.\n * Highlighter `function (str, lang)` should return escaped HTML. It can also\n * return empty string if the source was not changed and should be escaped\n * externaly. If result starts with <pre... internal wrapper is skipped.\n *\n * ##### Example\n *\n * ```javascript\n * // commonmark mode\n * var md = require('markdown-it')('commonmark');\n *\n * // default mode\n * var md = require('markdown-it')();\n *\n * // enable everything\n * var md = require('markdown-it')({\n * html: true,\n * linkify: true,\n * typographer: true\n * });\n * ```\n *\n * ##### Syntax highlighting\n *\n * ```js\n * var hljs = require('highlight.js') // https://highlightjs.org/\n *\n * var md = require('markdown-it')({\n * highlight: function (str, lang) {\n * if (lang && hljs.getLanguage(lang)) {\n * try {\n * return hljs.highlight(str, { language: lang, ignoreIllegals: true }).value;\n * } catch (__) {}\n * }\n *\n * return ''; // use external default escaping\n * }\n * });\n * ```\n *\n * Or with full wrapper override (if you need assign class to `<pre>`):\n *\n * ```javascript\n * var hljs = require('highlight.js') // https://highlightjs.org/\n *\n * // Actual default values\n * var md = require('markdown-it')({\n * highlight: function (str, lang) {\n * if (lang && hljs.getLanguage(lang)) {\n * try {\n * return '<pre class=\"hljs\"><code>' +\n * hljs.highlight(str, { language: lang, ignoreIllegals: true }).value +\n * '</code></pre>';\n * } catch (__) {}\n * }\n *\n * return '<pre class=\"hljs\"><code>' + md.utils.escapeHtml(str) + '</code></pre>';\n * }\n * });\n * ```\n *\n **/\nfunction MarkdownIt(presetName, options) {\n if (!(this instanceof MarkdownIt)) {\n return new MarkdownIt(presetName, options);\n }\n\n if (!options) {\n if (!utils.isString(presetName)) {\n options = presetName || {};\n presetName = 'default';\n }\n }\n\n /**\n * MarkdownIt#inline -> ParserInline\n *\n * Instance of [[ParserInline]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.inline = new ParserInline();\n\n /**\n * MarkdownIt#block -> ParserBlock\n *\n * Instance of [[ParserBlock]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.block = new ParserBlock();\n\n /**\n * MarkdownIt#core -> Core\n *\n * Instance of [[Core]] chain executor. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.core = new ParserCore();\n\n /**\n * MarkdownIt#renderer -> Renderer\n *\n * Instance of [[Renderer]]. Use it to modify output look. Or to add rendering\n * rules for new token types, generated by plugins.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * function myToken(tokens, idx, options, env, self) {\n * //...\n * return result;\n * };\n *\n * md.renderer.rules['my_token'] = myToken\n * ```\n *\n * See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js).\n **/\n this.renderer = new Renderer();\n\n /**\n * MarkdownIt#linkify -> LinkifyIt\n *\n * [linkify-it](https://github.com/markdown-it/linkify-it) instance.\n * Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.js)\n * rule.\n **/\n this.linkify = new LinkifyIt();\n\n /**\n * MarkdownIt#validateLink(url) -> Boolean\n *\n * Link validation function. CommonMark allows too much in links. By default\n * we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas\n * except some embedded image types.\n *\n * You can change this behaviour:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * // enable everything\n * md.validateLink = function () { return true; }\n * ```\n **/\n this.validateLink = validateLink;\n\n /**\n * MarkdownIt#normalizeLink(url) -> String\n *\n * Function used to encode link url to a machine-readable format,\n * which includes url-encoding, punycode, etc.\n **/\n this.normalizeLink = normalizeLink;\n\n /**\n * MarkdownIt#normalizeLinkText(url) -> String\n *\n * Function used to decode link url to a human-readable format`\n **/\n this.normalizeLinkText = normalizeLinkText;\n\n\n // Expose utils & helpers for easy acces from plugins\n\n /**\n * MarkdownIt#utils -> utils\n *\n * Assorted utility functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.js).\n **/\n this.utils = utils;\n\n /**\n * MarkdownIt#helpers -> helpers\n *\n * Link components parser functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers).\n **/\n this.helpers = utils.assign({}, helpers);\n\n\n this.options = {};\n this.configure(presetName);\n\n if (options) { this.set(options); }\n}\n\n\n/** chainable\n * MarkdownIt.set(options)\n *\n * Set parser options (in the same format as in constructor). Probably, you\n * will never need it, but you can change options after constructor call.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .set({ html: true, breaks: true })\n * .set({ typographer, true });\n * ```\n *\n * __Note:__ To achieve the best possible performance, don't modify a\n * `markdown-it` instance options on the fly. If you need multiple configurations\n * it's best to create multiple instances and initialize each with separate\n * config.\n **/\nMarkdownIt.prototype.set = function (options) {\n utils.assign(this.options, options);\n return this;\n};\n\n\n/** chainable, internal\n * MarkdownIt.configure(presets)\n *\n * Batch load of all options and compenent settings. This is internal method,\n * and you probably will not need it. But if you will - see available presets\n * and data structure [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets)\n *\n * We strongly recommend to use presets instead of direct config loads. That\n * will give better compatibility with next versions.\n **/\nMarkdownIt.prototype.configure = function (presets) {\n var self = this, presetName;\n\n if (utils.isString(presets)) {\n presetName = presets;\n presets = config[presetName];\n if (!presets) { throw new Error('Wrong `markdown-it` preset \"' + presetName + '\", check name'); }\n }\n\n if (!presets) { throw new Error('Wrong `markdown-it` preset, can\\'t be empty'); }\n\n if (presets.options) { self.set(presets.options); }\n\n if (presets.components) {\n Object.keys(presets.components).forEach(function (name) {\n if (presets.components[name].rules) {\n self[name].ruler.enableOnly(presets.components[name].rules);\n }\n if (presets.components[name].rules2) {\n self[name].ruler2.enableOnly(presets.components[name].rules2);\n }\n });\n }\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.enable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to enable\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable list or rules. It will automatically find appropriate components,\n * containing rules with given names. If rule not found, and `ignoreInvalid`\n * not set - throws exception.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .enable(['sub', 'sup'])\n * .disable('smartquotes');\n * ```\n **/\nMarkdownIt.prototype.enable = function (list, ignoreInvalid) {\n var result = [];\n\n if (!Array.isArray(list)) { list = [ list ]; }\n\n [ 'core', 'block', 'inline' ].forEach(function (chain) {\n result = result.concat(this[chain].ruler.enable(list, true));\n }, this);\n\n result = result.concat(this.inline.ruler2.enable(list, true));\n\n var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to enable unknown rule(s): ' + missed);\n }\n\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.disable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * The same as [[MarkdownIt.enable]], but turn specified rules off.\n **/\nMarkdownIt.prototype.disable = function (list, ignoreInvalid) {\n var result = [];\n\n if (!Array.isArray(list)) { list = [ list ]; }\n\n [ 'core', 'block', 'inline' ].forEach(function (chain) {\n result = result.concat(this[chain].ruler.disable(list, true));\n }, this);\n\n result = result.concat(this.inline.ruler2.disable(list, true));\n\n var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to disable unknown rule(s): ' + missed);\n }\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.use(plugin, params)\n *\n * Load specified plugin with given params into current parser instance.\n * It's just a sugar to call `plugin(md, params)` with curring.\n *\n * ##### Example\n *\n * ```javascript\n * var iterator = require('markdown-it-for-inline');\n * var md = require('markdown-it')()\n * .use(iterator, 'foo_replace', 'text', function (tokens, idx) {\n * tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');\n * });\n * ```\n **/\nMarkdownIt.prototype.use = function (plugin /*, params, ... */) {\n var args = [ this ].concat(Array.prototype.slice.call(arguments, 1));\n plugin.apply(plugin, args);\n return this;\n};\n\n\n/** internal\n * MarkdownIt.parse(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Parse input string and return list of block tokens (special token type\n * \"inline\" will contain list of inline tokens). You should not call this\n * method directly, until you write custom renderer (for example, to produce\n * AST).\n *\n * `env` is used to pass data between \"distributed\" rules and return additional\n * metadata like reference info, needed for the renderer. It also can be used to\n * inject data in specific cases. Usually, you will be ok to pass `{}`,\n * and then pass updated object to renderer.\n **/\nMarkdownIt.prototype.parse = function (src, env) {\n if (typeof src !== 'string') {\n throw new Error('Input data should be a String');\n }\n\n var state = new this.core.State(src, this, env);\n\n this.core.process(state);\n\n return state.tokens;\n};\n\n\n/**\n * MarkdownIt.render(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Render markdown string into html. It does all magic for you :).\n *\n * `env` can be used to inject additional metadata (`{}` by default).\n * But you will not need it with high probability. See also comment\n * in [[MarkdownIt.parse]].\n **/\nMarkdownIt.prototype.render = function (src, env) {\n env = env || {};\n\n return this.renderer.render(this.parse(src, env), this.options, env);\n};\n\n\n/** internal\n * MarkdownIt.parseInline(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * The same as [[MarkdownIt.parse]] but skip all block rules. It returns the\n * block tokens list with the single `inline` element, containing parsed inline\n * tokens in `children` property. Also updates `env` object.\n **/\nMarkdownIt.prototype.parseInline = function (src, env) {\n var state = new this.core.State(src, this, env);\n\n state.inlineMode = true;\n this.core.process(state);\n\n return state.tokens;\n};\n\n\n/**\n * MarkdownIt.renderInline(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Similar to [[MarkdownIt.render]] but for single paragraph content. Result\n * will NOT be wrapped into `<p>` tags.\n **/\nMarkdownIt.prototype.renderInline = function (src, env) {\n env = env || {};\n\n return this.renderer.render(this.parseInline(src, env), this.options, env);\n};\n\n\nmodule.exports = MarkdownIt;\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/index.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/parser_block.js":
/*!******************************************************!*\
!*** ./node_modules/markdown-it/lib/parser_block.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("/** internal\n * class ParserBlock\n *\n * Block-level tokenizer.\n **/\n\n\n\nvar Ruler = __webpack_require__(/*! ./ruler */ \"./node_modules/markdown-it/lib/ruler.js\");\n\n\nvar _rules = [\n // First 2 params - rule name & source. Secondary array - list of rules,\n // which can be terminated by this one.\n [ 'table', __webpack_require__(/*! ./rules_block/table */ \"./node_modules/markdown-it/lib/rules_block/table.js\"), [ 'paragraph', 'reference' ] ],\n [ 'code', __webpack_require__(/*! ./rules_block/code */ \"./node_modules/markdown-it/lib/rules_block/code.js\") ],\n [ 'fence', __webpack_require__(/*! ./rules_block/fence */ \"./node_modules/markdown-it/lib/rules_block/fence.js\"), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n [ 'blockquote', __webpack_require__(/*! ./rules_block/blockquote */ \"./node_modules/markdown-it/lib/rules_block/blockquote.js\"), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n [ 'hr', __webpack_require__(/*! ./rules_block/hr */ \"./node_modules/markdown-it/lib/rules_block/hr.js\"), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n [ 'list', __webpack_require__(/*! ./rules_block/list */ \"./node_modules/markdown-it/lib/rules_block/list.js\"), [ 'paragraph', 'reference', 'blockquote' ] ],\n [ 'reference', __webpack_require__(/*! ./rules_block/reference */ \"./node_modules/markdown-it/lib/rules_block/reference.js\") ],\n [ 'html_block', __webpack_require__(/*! ./rules_block/html_block */ \"./node_modules/markdown-it/lib/rules_block/html_block.js\"), [ 'paragraph', 'reference', 'blockquote' ] ],\n [ 'heading', __webpack_require__(/*! ./rules_block/heading */ \"./node_modules/markdown-it/lib/rules_block/heading.js\"), [ 'paragraph', 'reference', 'blockquote' ] ],\n [ 'lheading', __webpack_require__(/*! ./rules_block/lheading */ \"./node_modules/markdown-it/lib/rules_block/lheading.js\") ],\n [ 'paragraph', __webpack_require__(/*! ./rules_block/paragraph */ \"./node_modules/markdown-it/lib/rules_block/paragraph.js\") ]\n];\n\n\n/**\n * new ParserBlock()\n **/\nfunction ParserBlock() {\n /**\n * ParserBlock#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of block rules.\n **/\n this.ruler = new Ruler();\n\n for (var i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1], { alt: (_rules[i][2] || []).slice() });\n }\n}\n\n\n// Generate tokens for input range\n//\nParserBlock.prototype.tokenize = function (state, startLine, endLine) {\n var ok, i, prevLine,\n rules = this.ruler.getRules(''),\n len = rules.length,\n line = startLine,\n hasEmptyLines = false,\n maxNesting = state.md.options.maxNesting;\n\n while (line < endLine) {\n state.line = line = state.skipEmptyLines(line);\n if (line >= endLine) { break; }\n\n // Termination condition for nested calls.\n // Nested calls currently used for blockquotes & lists\n if (state.sCount[line] < state.blkIndent) { break; }\n\n // If nesting level exceeded - skip tail to the end. That's not ordinary\n // situation and we should not care about content.\n if (state.level >= maxNesting) {\n state.line = endLine;\n break;\n }\n\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.line`\n // - update `state.tokens`\n // - return true\n prevLine = state.line;\n\n for (i = 0; i < len; i++) {\n ok = rules[i](state, line, endLine, false);\n if (ok) {\n if (prevLine >= state.line) {\n throw new Error(\"block rule didn't increment state.line\");\n }\n break;\n }\n }\n\n // this can only happen if user disables paragraph rule\n if (!ok) throw new Error('none of the block rules matched');\n\n // set state.tight if we had an empty line before current tag\n // i.e. latest empty line should not count\n state.tight = !hasEmptyLines;\n\n // paragraph might \"eat\" one newline after it in nested lists\n if (state.isEmpty(state.line - 1)) {\n hasEmptyLines = true;\n }\n\n line = state.line;\n\n if (line < endLine && state.isEmpty(line)) {\n hasEmptyLines = true;\n line++;\n state.line = line;\n }\n }\n};\n\n\n/**\n * ParserBlock.parse(str, md, env, outTokens)\n *\n * Process input string and push block tokens into `outTokens`\n **/\nParserBlock.prototype.parse = function (src, md, env, outTokens) {\n var state;\n\n if (!src) { return; }\n\n state = new this.State(src, md, env, outTokens);\n\n this.tokenize(state, state.line, state.lineMax);\n};\n\n\nParserBlock.prototype.State = __webpack_require__(/*! ./rules_block/state_block */ \"./node_modules/markdown-it/lib/rules_block/state_block.js\");\n\n\nmodule.exports = ParserBlock;\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/parser_block.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/parser_core.js":
/*!*****************************************************!*\
!*** ./node_modules/markdown-it/lib/parser_core.js ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("/** internal\n * class Core\n *\n * Top-level rules executor. Glues block/inline parsers and does intermediate\n * transformations.\n **/\n\n\n\nvar Ruler = __webpack_require__(/*! ./ruler */ \"./node_modules/markdown-it/lib/ruler.js\");\n\n\nvar _rules = [\n [ 'normalize', __webpack_require__(/*! ./rules_core/normalize */ \"./node_modules/markdown-it/lib/rules_core/normalize.js\") ],\n [ 'block', __webpack_require__(/*! ./rules_core/block */ \"./node_modules/markdown-it/lib/rules_core/block.js\") ],\n [ 'inline', __webpack_require__(/*! ./rules_core/inline */ \"./node_modules/markdown-it/lib/rules_core/inline.js\") ],\n [ 'linkify', __webpack_require__(/*! ./rules_core/linkify */ \"./node_modules/markdown-it/lib/rules_core/linkify.js\") ],\n [ 'replacements', __webpack_require__(/*! ./rules_core/replacements */ \"./node_modules/markdown-it/lib/rules_core/replacements.js\") ],\n [ 'smartquotes', __webpack_require__(/*! ./rules_core/smartquotes */ \"./node_modules/markdown-it/lib/rules_core/smartquotes.js\") ],\n // `text_join` finds `text_special` tokens (for escape sequences)\n // and joins them with the rest of the text\n [ 'text_join', __webpack_require__(/*! ./rules_core/text_join */ \"./node_modules/markdown-it/lib/rules_core/text_join.js\") ]\n];\n\n\n/**\n * new Core()\n **/\nfunction Core() {\n /**\n * Core#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of core rules.\n **/\n this.ruler = new Ruler();\n\n for (var i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1]);\n }\n}\n\n\n/**\n * Core.process(state)\n *\n * Executes core chain rules.\n **/\nCore.prototype.process = function (state) {\n var i, l, rules;\n\n rules = this.ruler.getRules('');\n\n for (i = 0, l = rules.length; i < l; i++) {\n rules[i](state);\n }\n};\n\nCore.prototype.State = __webpack_require__(/*! ./rules_core/state_core */ \"./node_modules/markdown-it/lib/rules_core/state_core.js\");\n\n\nmodule.exports = Core;\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/parser_core.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/parser_inline.js":
/*!*******************************************************!*\
!*** ./node_modules/markdown-it/lib/parser_inline.js ***!
\*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("/** internal\n * class ParserInline\n *\n * Tokenizes paragraph content.\n **/\n\n\n\nvar Ruler = __webpack_require__(/*! ./ruler */ \"./node_modules/markdown-it/lib/ruler.js\");\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Parser rules\n\nvar _rules = [\n [ 'text', __webpack_require__(/*! ./rules_inline/text */ \"./node_modules/markdown-it/lib/rules_inline/text.js\") ],\n [ 'linkify', __webpack_require__(/*! ./rules_inline/linkify */ \"./node_modules/markdown-it/lib/rules_inline/linkify.js\") ],\n [ 'newline', __webpack_require__(/*! ./rules_inline/newline */ \"./node_modules/markdown-it/lib/rules_inline/newline.js\") ],\n [ 'escape', __webpack_require__(/*! ./rules_inline/escape */ \"./node_modules/markdown-it/lib/rules_inline/escape.js\") ],\n [ 'backticks', __webpack_require__(/*! ./rules_inline/backticks */ \"./node_modules/markdown-it/lib/rules_inline/backticks.js\") ],\n [ 'strikethrough', __webpack_require__(/*! ./rules_inline/strikethrough */ \"./node_modules/markdown-it/lib/rules_inline/strikethrough.js\").tokenize ],\n [ 'emphasis', __webpack_require__(/*! ./rules_inline/emphasis */ \"./node_modules/markdown-it/lib/rules_inline/emphasis.js\").tokenize ],\n [ 'link', __webpack_require__(/*! ./rules_inline/link */ \"./node_modules/markdown-it/lib/rules_inline/link.js\") ],\n [ 'image', __webpack_require__(/*! ./rules_inline/image */ \"./node_modules/markdown-it/lib/rules_inline/image.js\") ],\n [ 'autolink', __webpack_require__(/*! ./rules_inline/autolink */ \"./node_modules/markdown-it/lib/rules_inline/autolink.js\") ],\n [ 'html_inline', __webpack_require__(/*! ./rules_inline/html_inline */ \"./node_modules/markdown-it/lib/rules_inline/html_inline.js\") ],\n [ 'entity', __webpack_require__(/*! ./rules_inline/entity */ \"./node_modules/markdown-it/lib/rules_inline/entity.js\") ]\n];\n\n// `rule2` ruleset was created specifically for emphasis/strikethrough\n// post-processing and may be changed in the future.\n//\n// Don't use this for anything except pairs (plugins working with `balance_pairs`).\n//\nvar _rules2 = [\n [ 'balance_pairs', __webpack_require__(/*! ./rules_inline/balance_pairs */ \"./node_modules/markdown-it/lib/rules_inline/balance_pairs.js\") ],\n [ 'strikethrough', __webpack_require__(/*! ./rules_inline/strikethrough */ \"./node_modules/markdown-it/lib/rules_inline/strikethrough.js\").postProcess ],\n [ 'emphasis', __webpack_require__(/*! ./rules_inline/emphasis */ \"./node_modules/markdown-it/lib/rules_inline/emphasis.js\").postProcess ],\n // rules for pairs separate '**' into its own text tokens, which may be left unused,\n // rule below merges unused segments back with the rest of the text\n [ 'fragments_join', __webpack_require__(/*! ./rules_inline/fragments_join */ \"./node_modules/markdown-it/lib/rules_inline/fragments_join.js\") ]\n];\n\n\n/**\n * new ParserInline()\n **/\nfunction ParserInline() {\n var i;\n\n /**\n * ParserInline#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of inline rules.\n **/\n this.ruler = new Ruler();\n\n for (i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1]);\n }\n\n /**\n * ParserInline#ruler2 -> Ruler\n *\n * [[Ruler]] instance. Second ruler used for post-processing\n * (e.g. in emphasis-like rules).\n **/\n this.ruler2 = new Ruler();\n\n for (i = 0; i < _rules2.length; i++) {\n this.ruler2.push(_rules2[i][0], _rules2[i][1]);\n }\n}\n\n\n// Skip single token by running all rules in validation mode;\n// returns `true` if any rule reported success\n//\nParserInline.prototype.skipToken = function (state) {\n var ok, i, pos = state.pos,\n rules = this.ruler.getRules(''),\n len = rules.length,\n maxNesting = state.md.options.maxNesting,\n cache = state.cache;\n\n\n if (typeof cache[pos] !== 'undefined') {\n state.pos = cache[pos];\n return;\n }\n\n if (state.level < maxNesting) {\n for (i = 0; i < len; i++) {\n // Increment state.level and decrement it later to limit recursion.\n // It's harmless to do here, because no tokens are created. But ideally,\n // we'd need a separate private state variable for this purpose.\n //\n state.level++;\n ok = rules[i](state, true);\n state.level--;\n\n if (ok) {\n if (pos >= state.pos) { throw new Error(\"inline rule didn't increment state.pos\"); }\n break;\n }\n }\n } else {\n // Too much nesting, just skip until the end of the paragraph.\n //\n // NOTE: this will cause links to behave incorrectly in the following case,\n // when an amount of `[` is exactly equal to `maxNesting + 1`:\n //\n // [[[[[[[[[[[[[[[[[[[[[foo]()\n //\n // TODO: remove this workaround when CM standard will allow nested links\n // (we can replace it by preventing links from being parsed in\n // validation mode)\n //\n state.pos = state.posMax;\n }\n\n if (!ok) { state.pos++; }\n cache[pos] = state.pos;\n};\n\n\n// Generate tokens for input range\n//\nParserInline.prototype.tokenize = function (state) {\n var ok, i, prevPos,\n rules = this.ruler.getRules(''),\n len = rules.length,\n end = state.posMax,\n maxNesting = state.md.options.maxNesting;\n\n while (state.pos < end) {\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.pos`\n // - update `state.tokens`\n // - return true\n prevPos = state.pos;\n\n if (state.level < maxNesting) {\n for (i = 0; i < len; i++) {\n ok = rules[i](state, false);\n if (ok) {\n if (prevPos >= state.pos) { throw new Error(\"inline rule didn't increment state.pos\"); }\n break;\n }\n }\n }\n\n if (ok) {\n if (state.pos >= end) { break; }\n continue;\n }\n\n state.pending += state.src[state.pos++];\n }\n\n if (state.pending) {\n state.pushPending();\n }\n};\n\n\n/**\n * ParserInline.parse(str, md, env, outTokens)\n *\n * Process input string and push inline tokens into `outTokens`\n **/\nParserInline.prototype.parse = function (str, md, env, outTokens) {\n var i, rules, len;\n var state = new this.State(str, md, env, outTokens);\n\n this.tokenize(state);\n\n rules = this.ruler2.getRules('');\n len = rules.length;\n\n for (i = 0; i < len; i++) {\n rules[i](state);\n }\n};\n\n\nParserInline.prototype.State = __webpack_require__(/*! ./rules_inline/state_inline */ \"./node_modules/markdown-it/lib/rules_inline/state_inline.js\");\n\n\nmodule.exports = ParserInline;\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/parser_inline.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/presets/commonmark.js":
/*!************************************************************!*\
!*** ./node_modules/markdown-it/lib/presets/commonmark.js ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Commonmark default options\n\n\n\n\nmodule.exports = {\n options: {\n html: true, // Enable HTML tags in source\n xhtmlOut: true, // Use '/' to close single tags (<br />)\n breaks: false, // Convert '\\n' in paragraphs into <br>\n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '\\xA0', '\\xA0'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with <pre... internal wrapper is skipped.\n //\n // function (/*str, lang*/) { return ''; }\n //\n highlight: null,\n\n maxNesting: 20 // Internal protection, recursion limit\n },\n\n components: {\n\n core: {\n rules: [\n 'normalize',\n 'block',\n 'inline',\n 'text_join'\n ]\n },\n\n block: {\n rules: [\n 'blockquote',\n 'code',\n 'fence',\n 'heading',\n 'hr',\n 'html_block',\n 'lheading',\n 'list',\n 'reference',\n 'paragraph'\n ]\n },\n\n inline: {\n rules: [\n 'autolink',\n 'backticks',\n 'emphasis',\n 'entity',\n 'escape',\n 'html_inline',\n 'image',\n 'link',\n 'newline',\n 'text'\n ],\n rules2: [\n 'balance_pairs',\n 'emphasis',\n 'fragments_join'\n ]\n }\n }\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/presets/commonmark.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/presets/default.js":
/*!*********************************************************!*\
!*** ./node_modules/markdown-it/lib/presets/default.js ***!
\*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// markdown-it default options\n\n\n\n\nmodule.exports = {\n options: {\n html: false, // Enable HTML tags in source\n xhtmlOut: false, // Use '/' to close single tags (<br />)\n breaks: false, // Convert '\\n' in paragraphs into <br>\n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '\\xA0', '\\xA0'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with <pre... internal wrapper is skipped.\n //\n // function (/*str, lang*/) { return ''; }\n //\n highlight: null,\n\n maxNesting: 100 // Internal protection, recursion limit\n },\n\n components: {\n\n core: {},\n block: {},\n inline: {}\n }\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/presets/default.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/presets/zero.js":
/*!******************************************************!*\
!*** ./node_modules/markdown-it/lib/presets/zero.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// \"Zero\" preset, with nothing enabled. Useful for manual configuring of simple\n// modes. For example, to parse bold/italic only.\n\n\n\n\nmodule.exports = {\n options: {\n html: false, // Enable HTML tags in source\n xhtmlOut: false, // Use '/' to close single tags (<br />)\n breaks: false, // Convert '\\n' in paragraphs into <br>\n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '\\xA0', '\\xA0'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with <pre... internal wrapper is skipped.\n //\n // function (/*str, lang*/) { return ''; }\n //\n highlight: null,\n\n maxNesting: 20 // Internal protection, recursion limit\n },\n\n components: {\n\n core: {\n rules: [\n 'normalize',\n 'block',\n 'inline',\n 'text_join'\n ]\n },\n\n block: {\n rules: [\n 'paragraph'\n ]\n },\n\n inline: {\n rules: [\n 'text'\n ],\n rules2: [\n 'balance_pairs',\n 'fragments_join'\n ]\n }\n }\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/presets/zero.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/renderer.js":
/*!**************************************************!*\
!*** ./node_modules/markdown-it/lib/renderer.js ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("/**\n * class Renderer\n *\n * Generates HTML from parsed token stream. Each instance has independent\n * copy of rules. Those can be rewritten with ease. Also, you can add new\n * rules if you create plugin and adds new token types.\n **/\n\n\n\nvar assign = __webpack_require__(/*! ./common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").assign;\nvar unescapeAll = __webpack_require__(/*! ./common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").unescapeAll;\nvar escapeHtml = __webpack_require__(/*! ./common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").escapeHtml;\n\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar default_rules = {};\n\n\ndefault_rules.code_inline = function (tokens, idx, options, env, slf) {\n var token = tokens[idx];\n\n return '<code' + slf.renderAttrs(token) + '>' +\n escapeHtml(token.content) +\n '</code>';\n};\n\n\ndefault_rules.code_block = function (tokens, idx, options, env, slf) {\n var token = tokens[idx];\n\n return '<pre' + slf.renderAttrs(token) + '><code>' +\n escapeHtml(tokens[idx].content) +\n '</code></pre>\\n';\n};\n\n\ndefault_rules.fence = function (tokens, idx, options, env, slf) {\n var token = tokens[idx],\n info = token.info ? unescapeAll(token.info).trim() : '',\n langName = '',\n langAttrs = '',\n highlighted, i, arr, tmpAttrs, tmpToken;\n\n if (info) {\n arr = info.split(/(\\s+)/g);\n langName = arr[0];\n langAttrs = arr.slice(2).join('');\n }\n\n if (options.highlight) {\n highlighted = options.highlight(token.content, langName, langAttrs) || escapeHtml(token.content);\n } else {\n highlighted = escapeHtml(token.content);\n }\n\n if (highlighted.indexOf('<pre') === 0) {\n return highlighted + '\\n';\n }\n\n // If language exists, inject class gently, without modifying original token.\n // May be, one day we will add .deepClone() for token and simplify this part, but\n // now we prefer to keep things local.\n if (info) {\n i = token.attrIndex('class');\n tmpAttrs = token.attrs ? token.attrs.slice() : [];\n\n if (i < 0) {\n tmpAttrs.push([ 'class', options.langPrefix + langName ]);\n } else {\n tmpAttrs[i] = tmpAttrs[i].slice();\n tmpAttrs[i][1] += ' ' + options.langPrefix + langName;\n }\n\n // Fake token just to render attributes\n tmpToken = {\n attrs: tmpAttrs\n };\n\n return '<pre><code' + slf.renderAttrs(tmpToken) + '>'\n + highlighted\n + '</code></pre>\\n';\n }\n\n\n return '<pre><code' + slf.renderAttrs(token) + '>'\n + highlighted\n + '</code></pre>\\n';\n};\n\n\ndefault_rules.image = function (tokens, idx, options, env, slf) {\n var token = tokens[idx];\n\n // \"alt\" attr MUST be set, even if empty. Because it's mandatory and\n // should be placed on proper position for tests.\n //\n // Replace content with actual value\n\n token.attrs[token.attrIndex('alt')][1] =\n slf.renderInlineAsText(token.children, options, env);\n\n return slf.renderToken(tokens, idx, options);\n};\n\n\ndefault_rules.hardbreak = function (tokens, idx, options /*, env */) {\n return options.xhtmlOut ? '<br />\\n' : '<br>\\n';\n};\ndefault_rules.softbreak = function (tokens, idx, options /*, env */) {\n return options.breaks ? (options.xhtmlOut ? '<br />\\n' : '<br>\\n') : '\\n';\n};\n\n\ndefault_rules.text = function (tokens, idx /*, options, env */) {\n return escapeHtml(tokens[idx].content);\n};\n\n\ndefault_rules.html_block = function (tokens, idx /*, options, env */) {\n return tokens[idx].content;\n};\ndefault_rules.html_inline = function (tokens, idx /*, options, env */) {\n return tokens[idx].content;\n};\n\n\n/**\n * new Renderer()\n *\n * Creates new [[Renderer]] instance and fill [[Renderer#rules]] with defaults.\n **/\nfunction Renderer() {\n\n /**\n * Renderer#rules -> Object\n *\n * Contains render rules for tokens. Can be updated and extended.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.renderer.rules.strong_open = function () { return '<b>'; };\n * md.renderer.rules.strong_close = function () { return '</b>'; };\n *\n * var result = md.renderInline(...);\n * ```\n *\n * Each rule is called as independent static function with fixed signature:\n *\n * ```javascript\n * function my_token_render(tokens, idx, options, env, renderer) {\n * // ...\n * return renderedHTML;\n * }\n * ```\n *\n * See [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js)\n * for more details and examples.\n **/\n this.rules = assign({}, default_rules);\n}\n\n\n/**\n * Renderer.renderAttrs(token) -> String\n *\n * Render token attributes to string.\n **/\nRenderer.prototype.renderAttrs = function renderAttrs(token) {\n var i, l, result;\n\n if (!token.attrs) { return ''; }\n\n result = '';\n\n for (i = 0, l = token.attrs.length; i < l; i++) {\n result += ' ' + escapeHtml(token.attrs[i][0]) + '=\"' + escapeHtml(token.attrs[i][1]) + '\"';\n }\n\n return result;\n};\n\n\n/**\n * Renderer.renderToken(tokens, idx, options) -> String\n * - tokens (Array): list of tokens\n * - idx (Numbed): token index to render\n * - options (Object): params of parser instance\n *\n * Default token renderer. Can be overriden by custom function\n * in [[Renderer#rules]].\n **/\nRenderer.prototype.renderToken = function renderToken(tokens, idx, options) {\n var nextToken,\n result = '',\n needLf = false,\n token = tokens[idx];\n\n // Tight list paragraphs\n if (token.hidden) {\n return '';\n }\n\n // Insert a newline between hidden paragraph and subsequent opening\n // block-level tag.\n //\n // For example, here we should insert a newline before blockquote:\n // - a\n // >\n //\n if (token.block && token.nesting !== -1 && idx && tokens[idx - 1].hidden) {\n result += '\\n';\n }\n\n // Add token name, e.g. `<img`\n result += (token.nesting === -1 ? '</' : '<') + token.tag;\n\n // Encode attributes, e.g. `<img src=\"foo\"`\n result += this.renderAttrs(token);\n\n // Add a slash for self-closing tags, e.g. `<img src=\"foo\" /`\n if (token.nesting === 0 && options.xhtmlOut) {\n result += ' /';\n }\n\n // Check if we need to add a newline after this tag\n if (token.block) {\n needLf = true;\n\n if (token.nesting === 1) {\n if (idx + 1 < tokens.length) {\n nextToken = tokens[idx + 1];\n\n if (nextToken.type === 'inline' || nextToken.hidden) {\n // Block-level tag containing an inline tag.\n //\n needLf = false;\n\n } else if (nextToken.nesting === -1 && nextToken.tag === token.tag) {\n // Opening tag + closing tag of the same type. E.g. `<li></li>`.\n //\n needLf = false;\n }\n }\n }\n }\n\n result += needLf ? '>\\n' : '>';\n\n return result;\n};\n\n\n/**\n * Renderer.renderInline(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * The same as [[Renderer.render]], but for single token of `inline` type.\n **/\nRenderer.prototype.renderInline = function (tokens, options, env) {\n var type,\n result = '',\n rules = this.rules;\n\n for (var i = 0, len = tokens.length; i < len; i++) {\n type = tokens[i].type;\n\n if (typeof rules[type] !== 'undefined') {\n result += rules[type](tokens, i, options, env, this);\n } else {\n result += this.renderToken(tokens, i, options);\n }\n }\n\n return result;\n};\n\n\n/** internal\n * Renderer.renderInlineAsText(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Special kludge for image `alt` attributes to conform CommonMark spec.\n * Don't try to use it! Spec requires to show `alt` content with stripped markup,\n * instead of simple escaping.\n **/\nRenderer.prototype.renderInlineAsText = function (tokens, options, env) {\n var result = '';\n\n for (var i = 0, len = tokens.length; i < len; i++) {\n if (tokens[i].type === 'text') {\n result += tokens[i].content;\n } else if (tokens[i].type === 'image') {\n result += this.renderInlineAsText(tokens[i].children, options, env);\n } else if (tokens[i].type === 'softbreak') {\n result += '\\n';\n }\n }\n\n return result;\n};\n\n\n/**\n * Renderer.render(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Takes token stream and generates HTML. Probably, you will never need to call\n * this method directly.\n **/\nRenderer.prototype.render = function (tokens, options, env) {\n var i, len, type,\n result = '',\n rules = this.rules;\n\n for (i = 0, len = tokens.length; i < len; i++) {\n type = tokens[i].type;\n\n if (type === 'inline') {\n result += this.renderInline(tokens[i].children, options, env);\n } else if (typeof rules[type] !== 'undefined') {\n result += rules[type](tokens, i, options, env, this);\n } else {\n result += this.renderToken(tokens, i, options, env);\n }\n }\n\n return result;\n};\n\nmodule.exports = Renderer;\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/renderer.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/ruler.js":
/*!***********************************************!*\
!*** ./node_modules/markdown-it/lib/ruler.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("/**\n * class Ruler\n *\n * Helper class, used by [[MarkdownIt#core]], [[MarkdownIt#block]] and\n * [[MarkdownIt#inline]] to manage sequences of functions (rules):\n *\n * - keep rules in defined order\n * - assign the name to each rule\n * - enable/disable rules\n * - add/replace rules\n * - allow assign rules to additional named chains (in the same)\n * - cacheing lists of active rules\n *\n * You will not need use this class directly until write plugins. For simple\n * rules control use [[MarkdownIt.disable]], [[MarkdownIt.enable]] and\n * [[MarkdownIt.use]].\n **/\n\n\n\n/**\n * new Ruler()\n **/\nfunction Ruler() {\n // List of added rules. Each element is:\n //\n // {\n // name: XXX,\n // enabled: Boolean,\n // fn: Function(),\n // alt: [ name2, name3 ]\n // }\n //\n this.__rules__ = [];\n\n // Cached rule chains.\n //\n // First level - chain name, '' for default.\n // Second level - diginal anchor for fast filtering by charcodes.\n //\n this.__cache__ = null;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Helper methods, should not be used directly\n\n\n// Find rule index by name\n//\nRuler.prototype.__find__ = function (name) {\n for (var i = 0; i < this.__rules__.length; i++) {\n if (this.__rules__[i].name === name) {\n return i;\n }\n }\n return -1;\n};\n\n\n// Build rules lookup cache\n//\nRuler.prototype.__compile__ = function () {\n var self = this;\n var chains = [ '' ];\n\n // collect unique names\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return; }\n\n rule.alt.forEach(function (altName) {\n if (chains.indexOf(altName) < 0) {\n chains.push(altName);\n }\n });\n });\n\n self.__cache__ = {};\n\n chains.forEach(function (chain) {\n self.__cache__[chain] = [];\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return; }\n\n if (chain && rule.alt.indexOf(chain) < 0) { return; }\n\n self.__cache__[chain].push(rule.fn);\n });\n });\n};\n\n\n/**\n * Ruler.at(name, fn [, options])\n * - name (String): rule name to replace.\n * - fn (Function): new rule function.\n * - options (Object): new rule options (not mandatory).\n *\n * Replace rule by name with new function & options. Throws error if name not\n * found.\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * Replace existing typographer replacement rule with new one:\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.at('replacements', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.at = function (name, fn, options) {\n var index = this.__find__(name);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + name); }\n\n this.__rules__[index].fn = fn;\n this.__rules__[index].alt = opt.alt || [];\n this.__cache__ = null;\n};\n\n\n/**\n * Ruler.before(beforeName, ruleName, fn [, options])\n * - beforeName (String): new rule will be added before this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain before one with given name. See also\n * [[Ruler.after]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.block.ruler.before('paragraph', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.before = function (beforeName, ruleName, fn, options) {\n var index = this.__find__(beforeName);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + beforeName); }\n\n this.__rules__.splice(index, 0, {\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n\n\n/**\n * Ruler.after(afterName, ruleName, fn [, options])\n * - afterName (String): new rule will be added after this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain after one with given name. See also\n * [[Ruler.before]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.inline.ruler.after('text', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.after = function (afterName, ruleName, fn, options) {\n var index = this.__find__(afterName);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + afterName); }\n\n this.__rules__.splice(index + 1, 0, {\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n\n/**\n * Ruler.push(ruleName, fn [, options])\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Push new rule to the end of chain. See also\n * [[Ruler.before]], [[Ruler.after]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.push('my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.push = function (ruleName, fn, options) {\n var opt = options || {};\n\n this.__rules__.push({\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n\n\n/**\n * Ruler.enable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to enable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.disable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.enable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n var result = [];\n\n // Search by name and enable\n list.forEach(function (name) {\n var idx = this.__find__(name);\n\n if (idx < 0) {\n if (ignoreInvalid) { return; }\n throw new Error('Rules manager: invalid rule name ' + name);\n }\n this.__rules__[idx].enabled = true;\n result.push(name);\n }, this);\n\n this.__cache__ = null;\n return result;\n};\n\n\n/**\n * Ruler.enableOnly(list [, ignoreInvalid])\n * - list (String|Array): list of rule names to enable (whitelist).\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names, and disable everything else. If any rule name\n * not found - throw Error. Errors can be disabled by second param.\n *\n * See also [[Ruler.disable]], [[Ruler.enable]].\n **/\nRuler.prototype.enableOnly = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n this.__rules__.forEach(function (rule) { rule.enabled = false; });\n\n this.enable(list, ignoreInvalid);\n};\n\n\n/**\n * Ruler.disable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Disable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.enable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.disable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n var result = [];\n\n // Search by name and disable\n list.forEach(function (name) {\n var idx = this.__find__(name);\n\n if (idx < 0) {\n if (ignoreInvalid) { return; }\n throw new Error('Rules manager: invalid rule name ' + name);\n }\n this.__rules__[idx].enabled = false;\n result.push(name);\n }, this);\n\n this.__cache__ = null;\n return result;\n};\n\n\n/**\n * Ruler.getRules(chainName) -> Array\n *\n * Return array of active functions (rules) for given chain name. It analyzes\n * rules configuration, compiles caches if not exists and returns result.\n *\n * Default chain name is `''` (empty string). It can't be skipped. That's\n * done intentionally, to keep signature monomorphic for high speed.\n **/\nRuler.prototype.getRules = function (chainName) {\n if (this.__cache__ === null) {\n this.__compile__();\n }\n\n // Chain can be empty, if rules disabled. But we still have to return Array.\n return this.__cache__[chainName] || [];\n};\n\nmodule.exports = Ruler;\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/ruler.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_block/blockquote.js":
/*!****************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_block/blockquote.js ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Block quotes\n\n\n\nvar isSpace = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isSpace;\n\n\nmodule.exports = function blockquote(state, startLine, endLine, silent) {\n var adjustTab,\n ch,\n i,\n initial,\n l,\n lastLineEmpty,\n lines,\n nextLine,\n offset,\n oldBMarks,\n oldBSCount,\n oldIndent,\n oldParentType,\n oldSCount,\n oldTShift,\n spaceAfterMarker,\n terminate,\n terminatorRules,\n token,\n isOutdented,\n oldLineMax = state.lineMax,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n // check the block quote marker\n if (state.src.charCodeAt(pos) !== 0x3E/* > */) { return false; }\n\n // we know that it's going to be a valid blockquote,\n // so no point trying to find the end of it in silent mode\n if (silent) { return true; }\n\n oldBMarks = [];\n oldBSCount = [];\n oldSCount = [];\n oldTShift = [];\n\n terminatorRules = state.md.block.ruler.getRules('blockquote');\n\n oldParentType = state.parentType;\n state.parentType = 'blockquote';\n\n // Search the end of the block\n //\n // Block ends with either:\n // 1. an empty line outside:\n // ```\n // > test\n //\n // ```\n // 2. an empty line inside:\n // ```\n // >\n // test\n // ```\n // 3. another tag:\n // ```\n // > test\n // - - -\n // ```\n for (nextLine = startLine; nextLine < endLine; nextLine++) {\n // check if it's outdented, i.e. it's inside list item and indented\n // less than said list item:\n //\n // ```\n // 1. anything\n // > current blockquote\n // 2. checking this line\n // ```\n isOutdented = state.sCount[nextLine] < state.blkIndent;\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n\n if (pos >= max) {\n // Case 1: line is not inside the blockquote, and this line is empty.\n break;\n }\n\n if (state.src.charCodeAt(pos++) === 0x3E/* > */ && !isOutdented) {\n // This line is inside the blockquote.\n\n // set offset past spaces and \">\"\n initial = state.sCount[nextLine] + 1;\n\n // skip one optional space after '>'\n if (state.src.charCodeAt(pos) === 0x20 /* space */) {\n // ' > test '\n // ^ -- position start of line here:\n pos++;\n initial++;\n adjustTab = false;\n spaceAfterMarker = true;\n } else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {\n spaceAfterMarker = true;\n\n if ((state.bsCount[nextLine] + initial) % 4 === 3) {\n // ' >\\t test '\n // ^ -- position start of line here (tab has width===1)\n pos++;\n initial++;\n adjustTab = false;\n } else {\n // ' >\\t test '\n // ^ -- position start of line here + shift bsCount slightly\n // to make extra space appear\n adjustTab = true;\n }\n } else {\n spaceAfterMarker = false;\n }\n\n offset = initial;\n oldBMarks.push(state.bMarks[nextLine]);\n state.bMarks[nextLine] = pos;\n\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[nextLine] + (adjustTab ? 1 : 0)) % 4;\n } else {\n offset++;\n }\n } else {\n break;\n }\n\n pos++;\n }\n\n lastLineEmpty = pos >= max;\n\n oldBSCount.push(state.bsCount[nextLine]);\n state.bsCount[nextLine] = state.sCount[nextLine] + 1 + (spaceAfterMarker ? 1 : 0);\n\n oldSCount.push(state.sCount[nextLine]);\n state.sCount[nextLine] = offset - initial;\n\n oldTShift.push(state.tShift[nextLine]);\n state.tShift[nextLine] = pos - state.bMarks[nextLine];\n continue;\n }\n\n // Case 2: line is not inside the blockquote, and the last line was empty.\n if (lastLineEmpty) { break; }\n\n // Case 3: another tag found.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n\n if (terminate) {\n // Quirk to enforce \"hard termination mode\" for paragraphs;\n // normally if you call `tokenize(state, startLine, nextLine)`,\n // paragraphs will look below nextLine for paragraph continuation,\n // but if blockquote is terminated by another tag, they shouldn't\n state.lineMax = nextLine;\n\n if (state.blkIndent !== 0) {\n // state.blkIndent was non-zero, we now set it to zero,\n // so we need to re-calculate all offsets to appear as\n // if indent wasn't changed\n oldBMarks.push(state.bMarks[nextLine]);\n oldBSCount.push(state.bsCount[nextLine]);\n oldTShift.push(state.tShift[nextLine]);\n oldSCount.push(state.sCount[nextLine]);\n state.sCount[nextLine] -= state.blkIndent;\n }\n\n break;\n }\n\n oldBMarks.push(state.bMarks[nextLine]);\n oldBSCount.push(state.bsCount[nextLine]);\n oldTShift.push(state.tShift[nextLine]);\n oldSCount.push(state.sCount[nextLine]);\n\n // A negative indentation means that this is a paragraph continuation\n //\n state.sCount[nextLine] = -1;\n }\n\n oldIndent = state.blkIndent;\n state.blkIndent = 0;\n\n token = state.push('blockquote_open', 'blockquote', 1);\n token.markup = '>';\n token.map = lines = [ startLine, 0 ];\n\n state.md.block.tokenize(state, startLine, nextLine);\n\n token = state.push('blockquote_close', 'blockquote', -1);\n token.markup = '>';\n\n state.lineMax = oldLineMax;\n state.parentType = oldParentType;\n lines[1] = state.line;\n\n // Restore original tShift; this might not be necessary since the parser\n // has already been here, but just to make sure we can do that.\n for (i = 0; i < oldTShift.length; i++) {\n state.bMarks[i + startLine] = oldBMarks[i];\n state.tShift[i + startLine] = oldTShift[i];\n state.sCount[i + startLine] = oldSCount[i];\n state.bsCount[i + startLine] = oldBSCount[i];\n }\n state.blkIndent = oldIndent;\n\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_block/blockquote.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_block/code.js":
/*!**********************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_block/code.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Code block (4 spaces padded)\n\n\n\n\nmodule.exports = function code(state, startLine, endLine/*, silent*/) {\n var nextLine, last, token;\n\n if (state.sCount[startLine] - state.blkIndent < 4) { return false; }\n\n last = nextLine = startLine + 1;\n\n while (nextLine < endLine) {\n if (state.isEmpty(nextLine)) {\n nextLine++;\n continue;\n }\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n nextLine++;\n last = nextLine;\n continue;\n }\n break;\n }\n\n state.line = last;\n\n token = state.push('code_block', 'code', 0);\n token.content = state.getLines(startLine, last, 4 + state.blkIndent, false) + '\\n';\n token.map = [ startLine, state.line ];\n\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_block/code.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_block/fence.js":
/*!***********************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_block/fence.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// fences (``` lang, ~~~ lang)\n\n\n\n\nmodule.exports = function fence(state, startLine, endLine, silent) {\n var marker, len, params, nextLine, mem, token, markup,\n haveEndMarker = false,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n if (pos + 3 > max) { return false; }\n\n marker = state.src.charCodeAt(pos);\n\n if (marker !== 0x7E/* ~ */ && marker !== 0x60 /* ` */) {\n return false;\n }\n\n // scan marker length\n mem = pos;\n pos = state.skipChars(pos, marker);\n\n len = pos - mem;\n\n if (len < 3) { return false; }\n\n markup = state.src.slice(mem, pos);\n params = state.src.slice(pos, max);\n\n if (marker === 0x60 /* ` */) {\n if (params.indexOf(String.fromCharCode(marker)) >= 0) {\n return false;\n }\n }\n\n // Since start is found, we can report success here in validation mode\n if (silent) { return true; }\n\n // search end of block\n nextLine = startLine;\n\n for (;;) {\n nextLine++;\n if (nextLine >= endLine) {\n // unclosed block should be autoclosed by end of document.\n // also block seems to be autoclosed by end of parent\n break;\n }\n\n pos = mem = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n\n if (pos < max && state.sCount[nextLine] < state.blkIndent) {\n // non-empty line with negative indent should stop the list:\n // - ```\n // test\n break;\n }\n\n if (state.src.charCodeAt(pos) !== marker) { continue; }\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n // closing fence should be indented less than 4 spaces\n continue;\n }\n\n pos = state.skipChars(pos, marker);\n\n // closing code fence must be at least as long as the opening one\n if (pos - mem < len) { continue; }\n\n // make sure tail has spaces only\n pos = state.skipSpaces(pos);\n\n if (pos < max) { continue; }\n\n haveEndMarker = true;\n // found!\n break;\n }\n\n // If a fence has heading spaces, they should be removed from its inner block\n len = state.sCount[startLine];\n\n state.line = nextLine + (haveEndMarker ? 1 : 0);\n\n token = state.push('fence', 'code', 0);\n token.info = params;\n token.content = state.getLines(startLine + 1, nextLine, len, true);\n token.markup = markup;\n token.map = [ startLine, state.line ];\n\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_block/fence.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_block/heading.js":
/*!*************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_block/heading.js ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// heading (#, ##, ...)\n\n\n\nvar isSpace = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isSpace;\n\n\nmodule.exports = function heading(state, startLine, endLine, silent) {\n var ch, level, tmp, token,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n ch = state.src.charCodeAt(pos);\n\n if (ch !== 0x23/* # */ || pos >= max) { return false; }\n\n // count heading level\n level = 1;\n ch = state.src.charCodeAt(++pos);\n while (ch === 0x23/* # */ && pos < max && level <= 6) {\n level++;\n ch = state.src.charCodeAt(++pos);\n }\n\n if (level > 6 || (pos < max && !isSpace(ch))) { return false; }\n\n if (silent) { return true; }\n\n // Let's cut tails like ' ### ' from the end of string\n\n max = state.skipSpacesBack(max, pos);\n tmp = state.skipCharsBack(max, 0x23, pos); // #\n if (tmp > pos && isSpace(state.src.charCodeAt(tmp - 1))) {\n max = tmp;\n }\n\n state.line = startLine + 1;\n\n token = state.push('heading_open', 'h' + String(level), 1);\n token.markup = '########'.slice(0, level);\n token.map = [ startLine, state.line ];\n\n token = state.push('inline', '', 0);\n token.content = state.src.slice(pos, max).trim();\n token.map = [ startLine, state.line ];\n token.children = [];\n\n token = state.push('heading_close', 'h' + String(level), -1);\n token.markup = '########'.slice(0, level);\n\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_block/heading.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_block/hr.js":
/*!********************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_block/hr.js ***!
\********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Horizontal rule\n\n\n\nvar isSpace = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isSpace;\n\n\nmodule.exports = function hr(state, startLine, endLine, silent) {\n var marker, cnt, ch, token,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n marker = state.src.charCodeAt(pos++);\n\n // Check hr marker\n if (marker !== 0x2A/* * */ &&\n marker !== 0x2D/* - */ &&\n marker !== 0x5F/* _ */) {\n return false;\n }\n\n // markers can be mixed with spaces, but there should be at least 3 of them\n\n cnt = 1;\n while (pos < max) {\n ch = state.src.charCodeAt(pos++);\n if (ch !== marker && !isSpace(ch)) { return false; }\n if (ch === marker) { cnt++; }\n }\n\n if (cnt < 3) { return false; }\n\n if (silent) { return true; }\n\n state.line = startLine + 1;\n\n token = state.push('hr', 'hr', 0);\n token.map = [ startLine, state.line ];\n token.markup = Array(cnt + 1).join(String.fromCharCode(marker));\n\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_block/hr.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_block/html_block.js":
/*!****************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_block/html_block.js ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// HTML block\n\n\n\n\nvar block_names = __webpack_require__(/*! ../common/html_blocks */ \"./node_modules/markdown-it/lib/common/html_blocks.js\");\nvar HTML_OPEN_CLOSE_TAG_RE = __webpack_require__(/*! ../common/html_re */ \"./node_modules/markdown-it/lib/common/html_re.js\").HTML_OPEN_CLOSE_TAG_RE;\n\n// An array of opening and corresponding closing sequences for html tags,\n// last argument defines whether it can terminate a paragraph or not\n//\nvar HTML_SEQUENCES = [\n [ /^<(script|pre|style|textarea)(?=(\\s|>|$))/i, /<\\/(script|pre|style|textarea)>/i, true ],\n [ /^<!--/, /-->/, true ],\n [ /^<\\?/, /\\?>/, true ],\n [ /^<![A-Z]/, />/, true ],\n [ /^<!\\[CDATA\\[/, /\\]\\]>/, true ],\n [ new RegExp('^</?(' + block_names.join('|') + ')(?=(\\\\s|/?>|$))', 'i'), /^$/, true ],\n [ new RegExp(HTML_OPEN_CLOSE_TAG_RE.source + '\\\\s*$'), /^$/, false ]\n];\n\n\nmodule.exports = function html_block(state, startLine, endLine, silent) {\n var i, nextLine, token, lineText,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n if (!state.md.options.html) { return false; }\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; }\n\n lineText = state.src.slice(pos, max);\n\n for (i = 0; i < HTML_SEQUENCES.length; i++) {\n if (HTML_SEQUENCES[i][0].test(lineText)) { break; }\n }\n\n if (i === HTML_SEQUENCES.length) { return false; }\n\n if (silent) {\n // true if this sequence can be a terminator, false otherwise\n return HTML_SEQUENCES[i][2];\n }\n\n nextLine = startLine + 1;\n\n // If we are here - we detected HTML block.\n // Let's roll down till block end.\n if (!HTML_SEQUENCES[i][1].test(lineText)) {\n for (; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n lineText = state.src.slice(pos, max);\n\n if (HTML_SEQUENCES[i][1].test(lineText)) {\n if (lineText.length !== 0) { nextLine++; }\n break;\n }\n }\n }\n\n state.line = nextLine;\n\n token = state.push('html_block', '', 0);\n token.map = [ startLine, nextLine ];\n token.content = state.getLines(startLine, nextLine, state.blkIndent, true);\n\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_block/html_block.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_block/lheading.js":
/*!**************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_block/lheading.js ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// lheading (---, ===)\n\n\n\n\nmodule.exports = function lheading(state, startLine, endLine/*, silent*/) {\n var content, terminate, i, l, token, pos, max, level, marker,\n nextLine = startLine + 1, oldParentType,\n terminatorRules = state.md.block.ruler.getRules('paragraph');\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n oldParentType = state.parentType;\n state.parentType = 'paragraph'; // use paragraph to match terminatorRules\n\n // jump line-by-line until empty one or EOF\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n //\n // Check for underline in setext header\n //\n if (state.sCount[nextLine] >= state.blkIndent) {\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n\n if (pos < max) {\n marker = state.src.charCodeAt(pos);\n\n if (marker === 0x2D/* - */ || marker === 0x3D/* = */) {\n pos = state.skipChars(pos, marker);\n pos = state.skipSpaces(pos);\n\n if (pos >= max) {\n level = (marker === 0x3D/* = */ ? 1 : 2);\n break;\n }\n }\n }\n }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue; }\n\n // Some tags can terminate paragraph without empty line.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n }\n\n if (!level) {\n // Didn't find valid underline\n return false;\n }\n\n content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n\n state.line = nextLine + 1;\n\n token = state.push('heading_open', 'h' + String(level), 1);\n token.markup = String.fromCharCode(marker);\n token.map = [ startLine, state.line ];\n\n token = state.push('inline', '', 0);\n token.content = content;\n token.map = [ startLine, state.line - 1 ];\n token.children = [];\n\n token = state.push('heading_close', 'h' + String(level), -1);\n token.markup = String.fromCharCode(marker);\n\n state.parentType = oldParentType;\n\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_block/lheading.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_block/list.js":
/*!**********************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_block/list.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Lists\n\n\n\nvar isSpace = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isSpace;\n\n\n// Search `[-+*][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipBulletListMarker(state, startLine) {\n var marker, pos, max, ch;\n\n pos = state.bMarks[startLine] + state.tShift[startLine];\n max = state.eMarks[startLine];\n\n marker = state.src.charCodeAt(pos++);\n // Check bullet\n if (marker !== 0x2A/* * */ &&\n marker !== 0x2D/* - */ &&\n marker !== 0x2B/* + */) {\n return -1;\n }\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (!isSpace(ch)) {\n // \" -test \" - is not a list item\n return -1;\n }\n }\n\n return pos;\n}\n\n// Search `\\d+[.)][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipOrderedListMarker(state, startLine) {\n var ch,\n start = state.bMarks[startLine] + state.tShift[startLine],\n pos = start,\n max = state.eMarks[startLine];\n\n // List marker should have at least 2 chars (digit + dot)\n if (pos + 1 >= max) { return -1; }\n\n ch = state.src.charCodeAt(pos++);\n\n if (ch < 0x30/* 0 */ || ch > 0x39/* 9 */) { return -1; }\n\n for (;;) {\n // EOL -> fail\n if (pos >= max) { return -1; }\n\n ch = state.src.charCodeAt(pos++);\n\n if (ch >= 0x30/* 0 */ && ch <= 0x39/* 9 */) {\n\n // List marker should have no more than 9 digits\n // (prevents integer overflow in browsers)\n if (pos - start >= 10) { return -1; }\n\n continue;\n }\n\n // found valid marker\n if (ch === 0x29/* ) */ || ch === 0x2e/* . */) {\n break;\n }\n\n return -1;\n }\n\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (!isSpace(ch)) {\n // \" 1.test \" - is not a list item\n return -1;\n }\n }\n return pos;\n}\n\nfunction markTightParagraphs(state, idx) {\n var i, l,\n level = state.level + 2;\n\n for (i = idx + 2, l = state.tokens.length - 2; i < l; i++) {\n if (state.tokens[i].level === level && state.tokens[i].type === 'paragraph_open') {\n state.tokens[i + 2].hidden = true;\n state.tokens[i].hidden = true;\n i += 2;\n }\n }\n}\n\n\nmodule.exports = function list(state, startLine, endLine, silent) {\n var ch,\n contentStart,\n i,\n indent,\n indentAfterMarker,\n initial,\n isOrdered,\n itemLines,\n l,\n listLines,\n listTokIdx,\n markerCharCode,\n markerValue,\n max,\n offset,\n oldListIndent,\n oldParentType,\n oldSCount,\n oldTShift,\n oldTight,\n pos,\n posAfterMarker,\n prevEmptyEnd,\n start,\n terminate,\n terminatorRules,\n token,\n nextLine = startLine,\n isTerminatingParagraph = false,\n tight = true;\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) { return false; }\n\n // Special case:\n // - item 1\n // - item 2\n // - item 3\n // - item 4\n // - this one is a paragraph continuation\n if (state.listIndent >= 0 &&\n state.sCount[nextLine] - state.listIndent >= 4 &&\n state.sCount[nextLine] < state.blkIndent) {\n return false;\n }\n\n // limit conditions when list can interrupt\n // a paragraph (validation mode only)\n if (silent && state.parentType === 'paragraph') {\n // Next list item should still terminate previous list item;\n //\n // This code can fail if plugins use blkIndent as well as lists,\n // but I hope the spec gets fixed long before that happens.\n //\n if (state.sCount[nextLine] >= state.blkIndent) {\n isTerminatingParagraph = true;\n }\n }\n\n // Detect list type and position after marker\n if ((posAfterMarker = skipOrderedListMarker(state, nextLine)) >= 0) {\n isOrdered = true;\n start = state.bMarks[nextLine] + state.tShift[nextLine];\n markerValue = Number(state.src.slice(start, posAfterMarker - 1));\n\n // If we're starting a new ordered list right after\n // a paragraph, it should start with 1.\n if (isTerminatingParagraph && markerValue !== 1) return false;\n\n } else if ((posAfterMarker = skipBulletListMarker(state, nextLine)) >= 0) {\n isOrdered = false;\n\n } else {\n return false;\n }\n\n // If we're starting a new unordered list right after\n // a paragraph, first line should not be empty.\n if (isTerminatingParagraph) {\n if (state.skipSpaces(posAfterMarker) >= state.eMarks[nextLine]) return false;\n }\n\n // For validation mode we can terminate immediately\n if (silent) { return true; }\n\n // We should terminate list on style change. Remember first one to compare.\n markerCharCode = state.src.charCodeAt(posAfterMarker - 1);\n\n // Start list\n listTokIdx = state.tokens.length;\n\n if (isOrdered) {\n token = state.push('ordered_list_open', 'ol', 1);\n if (markerValue !== 1) {\n token.attrs = [ [ 'start', markerValue ] ];\n }\n\n } else {\n token = state.push('bullet_list_open', 'ul', 1);\n }\n\n token.map = listLines = [ nextLine, 0 ];\n token.markup = String.fromCharCode(markerCharCode);\n\n //\n // Iterate list items\n //\n\n prevEmptyEnd = false;\n terminatorRules = state.md.block.ruler.getRules('list');\n\n oldParentType = state.parentType;\n state.parentType = 'list';\n\n while (nextLine < endLine) {\n pos = posAfterMarker;\n max = state.eMarks[nextLine];\n\n initial = offset = state.sCount[nextLine] + posAfterMarker - (state.bMarks[nextLine] + state.tShift[nextLine]);\n\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[nextLine]) % 4;\n } else if (ch === 0x20) {\n offset++;\n } else {\n break;\n }\n\n pos++;\n }\n\n contentStart = pos;\n\n if (contentStart >= max) {\n // trimming space in \"- \\n 3\" case, indent is 1 here\n indentAfterMarker = 1;\n } else {\n indentAfterMarker = offset - initial;\n }\n\n // If we have more than 4 spaces, the indent is 1\n // (the rest is just indented code block)\n if (indentAfterMarker > 4) { indentAfterMarker = 1; }\n\n // \" - test\"\n // ^^^^^ - calculating total length of this thing\n indent = initial + indentAfterMarker;\n\n // Run subparser & write tokens\n token = state.push('list_item_open', 'li', 1);\n token.markup = String.fromCharCode(markerCharCode);\n token.map = itemLines = [ nextLine, 0 ];\n if (isOrdered) {\n token.info = state.src.slice(start, posAfterMarker - 1);\n }\n\n // change current state, then restore it after parser subcall\n oldTight = state.tight;\n oldTShift = state.tShift[nextLine];\n oldSCount = state.sCount[nextLine];\n\n // - example list\n // ^ listIndent position will be here\n // ^ blkIndent position will be here\n //\n oldListIndent = state.listIndent;\n state.listIndent = state.blkIndent;\n state.blkIndent = indent;\n\n state.tight = true;\n state.tShift[nextLine] = contentStart - state.bMarks[nextLine];\n state.sCount[nextLine] = offset;\n\n if (contentStart >= max && state.isEmpty(nextLine + 1)) {\n // workaround for this case\n // (list item is empty, list terminates before \"foo\"):\n // ~~~~~~~~\n // -\n //\n // foo\n // ~~~~~~~~\n state.line = Math.min(state.line + 2, endLine);\n } else {\n state.md.block.tokenize(state, nextLine, endLine, true);\n }\n\n // If any of list item is tight, mark list as tight\n if (!state.tight || prevEmptyEnd) {\n tight = false;\n }\n // Item become loose if finish with empty line,\n // but we should filter last element, because it means list finish\n prevEmptyEnd = (state.line - nextLine) > 1 && state.isEmpty(state.line - 1);\n\n state.blkIndent = state.listIndent;\n state.listIndent = oldListIndent;\n state.tShift[nextLine] = oldTShift;\n state.sCount[nextLine] = oldSCount;\n state.tight = oldTight;\n\n token = state.push('list_item_close', 'li', -1);\n token.markup = String.fromCharCode(markerCharCode);\n\n nextLine = state.line;\n itemLines[1] = nextLine;\n\n if (nextLine >= endLine) { break; }\n\n //\n // Try to check if list is terminated or continued.\n //\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) { break; }\n\n // fail if terminating block found\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n\n // fail if list has another type\n if (isOrdered) {\n posAfterMarker = skipOrderedListMarker(state, nextLine);\n if (posAfterMarker < 0) { break; }\n start = state.bMarks[nextLine] + state.tShift[nextLine];\n } else {\n posAfterMarker = skipBulletListMarker(state, nextLine);\n if (posAfterMarker < 0) { break; }\n }\n\n if (markerCharCode !== state.src.charCodeAt(posAfterMarker - 1)) { break; }\n }\n\n // Finalize list\n if (isOrdered) {\n token = state.push('ordered_list_close', 'ol', -1);\n } else {\n token = state.push('bullet_list_close', 'ul', -1);\n }\n token.markup = String.fromCharCode(markerCharCode);\n\n listLines[1] = nextLine;\n state.line = nextLine;\n\n state.parentType = oldParentType;\n\n // mark paragraphs tight if needed\n if (tight) {\n markTightParagraphs(state, listTokIdx);\n }\n\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_block/list.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_block/paragraph.js":
/*!***************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_block/paragraph.js ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Paragraph\n\n\n\n\nmodule.exports = function paragraph(state, startLine, endLine) {\n var content, terminate, i, l, token, oldParentType,\n nextLine = startLine + 1,\n terminatorRules = state.md.block.ruler.getRules('paragraph');\n\n oldParentType = state.parentType;\n state.parentType = 'paragraph';\n\n // jump line-by-line until empty one or EOF\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue; }\n\n // Some tags can terminate paragraph without empty line.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n }\n\n content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n\n state.line = nextLine;\n\n token = state.push('paragraph_open', 'p', 1);\n token.map = [ startLine, state.line ];\n\n token = state.push('inline', '', 0);\n token.content = content;\n token.map = [ startLine, state.line ];\n token.children = [];\n\n token = state.push('paragraph_close', 'p', -1);\n\n state.parentType = oldParentType;\n\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_block/paragraph.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_block/reference.js":
/*!***************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_block/reference.js ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\n\nvar normalizeReference = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").normalizeReference;\nvar isSpace = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isSpace;\n\n\nmodule.exports = function reference(state, startLine, _endLine, silent) {\n var ch,\n destEndPos,\n destEndLineNo,\n endLine,\n href,\n i,\n l,\n label,\n labelEnd,\n oldParentType,\n res,\n start,\n str,\n terminate,\n terminatorRules,\n title,\n lines = 0,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine],\n nextLine = startLine + 1;\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n if (state.src.charCodeAt(pos) !== 0x5B/* [ */) { return false; }\n\n // Simple check to quickly interrupt scan on [link](url) at the start of line.\n // Can be useful on practice: https://github.com/markdown-it/markdown-it/issues/54\n while (++pos < max) {\n if (state.src.charCodeAt(pos) === 0x5D /* ] */ &&\n state.src.charCodeAt(pos - 1) !== 0x5C/* \\ */) {\n if (pos + 1 === max) { return false; }\n if (state.src.charCodeAt(pos + 1) !== 0x3A/* : */) { return false; }\n break;\n }\n }\n\n endLine = state.lineMax;\n\n // jump line-by-line until empty one or EOF\n terminatorRules = state.md.block.ruler.getRules('reference');\n\n oldParentType = state.parentType;\n state.parentType = 'reference';\n\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue; }\n\n // Some tags can terminate paragraph without empty line.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n }\n\n str = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n max = str.length;\n\n for (pos = 1; pos < max; pos++) {\n ch = str.charCodeAt(pos);\n if (ch === 0x5B /* [ */) {\n return false;\n } else if (ch === 0x5D /* ] */) {\n labelEnd = pos;\n break;\n } else if (ch === 0x0A /* \\n */) {\n lines++;\n } else if (ch === 0x5C /* \\ */) {\n pos++;\n if (pos < max && str.charCodeAt(pos) === 0x0A) {\n lines++;\n }\n }\n }\n\n if (labelEnd < 0 || str.charCodeAt(labelEnd + 1) !== 0x3A/* : */) { return false; }\n\n // [label]: destination 'title'\n // ^^^ skip optional whitespace here\n for (pos = labelEnd + 2; pos < max; pos++) {\n ch = str.charCodeAt(pos);\n if (ch === 0x0A) {\n lines++;\n } else if (isSpace(ch)) {\n /*eslint no-empty:0*/\n } else {\n break;\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^^^^^ parse this\n res = state.md.helpers.parseLinkDestination(str, pos, max);\n if (!res.ok) { return false; }\n\n href = state.md.normalizeLink(res.str);\n if (!state.md.validateLink(href)) { return false; }\n\n pos = res.pos;\n lines += res.lines;\n\n // save cursor state, we could require to rollback later\n destEndPos = pos;\n destEndLineNo = lines;\n\n // [label]: destination 'title'\n // ^^^ skipping those spaces\n start = pos;\n for (; pos < max; pos++) {\n ch = str.charCodeAt(pos);\n if (ch === 0x0A) {\n lines++;\n } else if (isSpace(ch)) {\n /*eslint no-empty:0*/\n } else {\n break;\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^ parse this\n res = state.md.helpers.parseLinkTitle(str, pos, max);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n lines += res.lines;\n } else {\n title = '';\n pos = destEndPos;\n lines = destEndLineNo;\n }\n\n // skip trailing spaces until the rest of the line\n while (pos < max) {\n ch = str.charCodeAt(pos);\n if (!isSpace(ch)) { break; }\n pos++;\n }\n\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n if (title) {\n // garbage at the end of the line after title,\n // but it could still be a valid reference if we roll back\n title = '';\n pos = destEndPos;\n lines = destEndLineNo;\n while (pos < max) {\n ch = str.charCodeAt(pos);\n if (!isSpace(ch)) { break; }\n pos++;\n }\n }\n }\n\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n // garbage at the end of the line\n return false;\n }\n\n label = normalizeReference(str.slice(1, labelEnd));\n if (!label) {\n // CommonMark 0.20 disallows empty labels\n return false;\n }\n\n // Reference can not terminate anything. This check is for safety only.\n /*istanbul ignore if*/\n if (silent) { return true; }\n\n if (typeof state.env.references === 'undefined') {\n state.env.references = {};\n }\n if (typeof state.env.references[label] === 'undefined') {\n state.env.references[label] = { title: title, href: href };\n }\n\n state.parentType = oldParentType;\n\n state.line = startLine + lines + 1;\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_block/reference.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_block/state_block.js":
/*!*****************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_block/state_block.js ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Parser state class\n\n\n\nvar Token = __webpack_require__(/*! ../token */ \"./node_modules/markdown-it/lib/token.js\");\nvar isSpace = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isSpace;\n\n\nfunction StateBlock(src, md, env, tokens) {\n var ch, s, start, pos, len, indent, offset, indent_found;\n\n this.src = src;\n\n // link to parser instance\n this.md = md;\n\n this.env = env;\n\n //\n // Internal state vartiables\n //\n\n this.tokens = tokens;\n\n this.bMarks = []; // line begin offsets for fast jumps\n this.eMarks = []; // line end offsets for fast jumps\n this.tShift = []; // offsets of the first non-space characters (tabs not expanded)\n this.sCount = []; // indents for each line (tabs expanded)\n\n // An amount of virtual spaces (tabs expanded) between beginning\n // of each line (bMarks) and real beginning of that line.\n //\n // It exists only as a hack because blockquotes override bMarks\n // losing information in the process.\n //\n // It's used only when expanding tabs, you can think about it as\n // an initial tab length, e.g. bsCount=21 applied to string `\\t123`\n // means first tab should be expanded to 4-21%4 === 3 spaces.\n //\n this.bsCount = [];\n\n // block parser variables\n this.blkIndent = 0; // required block content indent (for example, if we are\n // inside a list, it would be positioned after list marker)\n this.line = 0; // line index in src\n this.lineMax = 0; // lines count\n this.tight = false; // loose/tight mode for lists\n this.ddIndent = -1; // indent of the current dd block (-1 if there isn't any)\n this.listIndent = -1; // indent of the current list block (-1 if there isn't any)\n\n // can be 'blockquote', 'list', 'root', 'paragraph' or 'reference'\n // used in lists to determine if they interrupt a paragraph\n this.parentType = 'root';\n\n this.level = 0;\n\n // renderer\n this.result = '';\n\n // Create caches\n // Generate markers.\n s = this.src;\n indent_found = false;\n\n for (start = pos = indent = offset = 0, len = s.length; pos < len; pos++) {\n ch = s.charCodeAt(pos);\n\n if (!indent_found) {\n if (isSpace(ch)) {\n indent++;\n\n if (ch === 0x09) {\n offset += 4 - offset % 4;\n } else {\n offset++;\n }\n continue;\n } else {\n indent_found = true;\n }\n }\n\n if (ch === 0x0A || pos === len - 1) {\n if (ch !== 0x0A) { pos++; }\n this.bMarks.push(start);\n this.eMarks.push(pos);\n this.tShift.push(indent);\n this.sCount.push(offset);\n this.bsCount.push(0);\n\n indent_found = false;\n indent = 0;\n offset = 0;\n start = pos + 1;\n }\n }\n\n // Push fake entry to simplify cache bounds checks\n this.bMarks.push(s.length);\n this.eMarks.push(s.length);\n this.tShift.push(0);\n this.sCount.push(0);\n this.bsCount.push(0);\n\n this.lineMax = this.bMarks.length - 1; // don't count last fake line\n}\n\n// Push new token to \"stream\".\n//\nStateBlock.prototype.push = function (type, tag, nesting) {\n var token = new Token(type, tag, nesting);\n token.block = true;\n\n if (nesting < 0) this.level--; // closing tag\n token.level = this.level;\n if (nesting > 0) this.level++; // opening tag\n\n this.tokens.push(token);\n return token;\n};\n\nStateBlock.prototype.isEmpty = function isEmpty(line) {\n return this.bMarks[line] + this.tShift[line] >= this.eMarks[line];\n};\n\nStateBlock.prototype.skipEmptyLines = function skipEmptyLines(from) {\n for (var max = this.lineMax; from < max; from++) {\n if (this.bMarks[from] + this.tShift[from] < this.eMarks[from]) {\n break;\n }\n }\n return from;\n};\n\n// Skip spaces from given position.\nStateBlock.prototype.skipSpaces = function skipSpaces(pos) {\n var ch;\n\n for (var max = this.src.length; pos < max; pos++) {\n ch = this.src.charCodeAt(pos);\n if (!isSpace(ch)) { break; }\n }\n return pos;\n};\n\n// Skip spaces from given position in reverse.\nStateBlock.prototype.skipSpacesBack = function skipSpacesBack(pos, min) {\n if (pos <= min) { return pos; }\n\n while (pos > min) {\n if (!isSpace(this.src.charCodeAt(--pos))) { return pos + 1; }\n }\n return pos;\n};\n\n// Skip char codes from given position\nStateBlock.prototype.skipChars = function skipChars(pos, code) {\n for (var max = this.src.length; pos < max; pos++) {\n if (this.src.charCodeAt(pos) !== code) { break; }\n }\n return pos;\n};\n\n// Skip char codes reverse from given position - 1\nStateBlock.prototype.skipCharsBack = function skipCharsBack(pos, code, min) {\n if (pos <= min) { return pos; }\n\n while (pos > min) {\n if (code !== this.src.charCodeAt(--pos)) { return pos + 1; }\n }\n return pos;\n};\n\n// cut lines range from source.\nStateBlock.prototype.getLines = function getLines(begin, end, indent, keepLastLF) {\n var i, lineIndent, ch, first, last, queue, lineStart,\n line = begin;\n\n if (begin >= end) {\n return '';\n }\n\n queue = new Array(end - begin);\n\n for (i = 0; line < end; line++, i++) {\n lineIndent = 0;\n lineStart = first = this.bMarks[line];\n\n if (line + 1 < end || keepLastLF) {\n // No need for bounds check because we have fake entry on tail.\n last = this.eMarks[line] + 1;\n } else {\n last = this.eMarks[line];\n }\n\n while (first < last && lineIndent < indent) {\n ch = this.src.charCodeAt(first);\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n lineIndent += 4 - (lineIndent + this.bsCount[line]) % 4;\n } else {\n lineIndent++;\n }\n } else if (first - lineStart < this.tShift[line]) {\n // patched tShift masked characters to look like spaces (blockquotes, list markers)\n lineIndent++;\n } else {\n break;\n }\n\n first++;\n }\n\n if (lineIndent > indent) {\n // partially expanding tabs in code blocks, e.g '\\t\\tfoobar'\n // with indent=2 becomes ' \\tfoobar'\n queue[i] = new Array(lineIndent - indent + 1).join(' ') + this.src.slice(first, last);\n } else {\n queue[i] = this.src.slice(first, last);\n }\n }\n\n return queue.join('');\n};\n\n// re-export Token class to use in block rules\nStateBlock.prototype.Token = Token;\n\n\nmodule.exports = StateBlock;\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_block/state_block.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_block/table.js":
/*!***********************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_block/table.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// GFM table, https://github.github.com/gfm/#tables-extension-\n\n\n\nvar isSpace = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isSpace;\n\n\nfunction getLine(state, line) {\n var pos = state.bMarks[line] + state.tShift[line],\n max = state.eMarks[line];\n\n return state.src.slice(pos, max);\n}\n\nfunction escapedSplit(str) {\n var result = [],\n pos = 0,\n max = str.length,\n ch,\n isEscaped = false,\n lastPos = 0,\n current = '';\n\n ch = str.charCodeAt(pos);\n\n while (pos < max) {\n if (ch === 0x7c/* | */) {\n if (!isEscaped) {\n // pipe separating cells, '|'\n result.push(current + str.substring(lastPos, pos));\n current = '';\n lastPos = pos + 1;\n } else {\n // escaped pipe, '\\|'\n current += str.substring(lastPos, pos - 1);\n lastPos = pos;\n }\n }\n\n isEscaped = (ch === 0x5c/* \\ */);\n pos++;\n\n ch = str.charCodeAt(pos);\n }\n\n result.push(current + str.substring(lastPos));\n\n return result;\n}\n\n\nmodule.exports = function table(state, startLine, endLine, silent) {\n var ch, lineText, pos, i, l, nextLine, columns, columnCount, token,\n aligns, t, tableLines, tbodyLines, oldParentType, terminate,\n terminatorRules, firstCh, secondCh;\n\n // should have at least two lines\n if (startLine + 2 > endLine) { return false; }\n\n nextLine = startLine + 1;\n\n if (state.sCount[nextLine] < state.blkIndent) { return false; }\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) { return false; }\n\n // first character of the second line should be '|', '-', ':',\n // and no other characters are allowed but spaces;\n // basically, this is the equivalent of /^[-:|][-:|\\s]*$/ regexp\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n if (pos >= state.eMarks[nextLine]) { return false; }\n\n firstCh = state.src.charCodeAt(pos++);\n if (firstCh !== 0x7C/* | */ && firstCh !== 0x2D/* - */ && firstCh !== 0x3A/* : */) { return false; }\n\n if (pos >= state.eMarks[nextLine]) { return false; }\n\n secondCh = state.src.charCodeAt(pos++);\n if (secondCh !== 0x7C/* | */ && secondCh !== 0x2D/* - */ && secondCh !== 0x3A/* : */ && !isSpace(secondCh)) {\n return false;\n }\n\n // if first character is '-', then second character must not be a space\n // (due to parsing ambiguity with list)\n if (firstCh === 0x2D/* - */ && isSpace(secondCh)) { return false; }\n\n while (pos < state.eMarks[nextLine]) {\n ch = state.src.charCodeAt(pos);\n\n if (ch !== 0x7C/* | */ && ch !== 0x2D/* - */ && ch !== 0x3A/* : */ && !isSpace(ch)) { return false; }\n\n pos++;\n }\n\n lineText = getLine(state, startLine + 1);\n\n columns = lineText.split('|');\n aligns = [];\n for (i = 0; i < columns.length; i++) {\n t = columns[i].trim();\n if (!t) {\n // allow empty columns before and after table, but not in between columns;\n // e.g. allow ` |---| `, disallow ` ---||--- `\n if (i === 0 || i === columns.length - 1) {\n continue;\n } else {\n return false;\n }\n }\n\n if (!/^:?-+:?$/.test(t)) { return false; }\n if (t.charCodeAt(t.length - 1) === 0x3A/* : */) {\n aligns.push(t.charCodeAt(0) === 0x3A/* : */ ? 'center' : 'right');\n } else if (t.charCodeAt(0) === 0x3A/* : */) {\n aligns.push('left');\n } else {\n aligns.push('');\n }\n }\n\n lineText = getLine(state, startLine).trim();\n if (lineText.indexOf('|') === -1) { return false; }\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n columns = escapedSplit(lineText);\n if (columns.length && columns[0] === '') columns.shift();\n if (columns.length && columns[columns.length - 1] === '') columns.pop();\n\n // header row will define an amount of columns in the entire table,\n // and align row should be exactly the same (the rest of the rows can differ)\n columnCount = columns.length;\n if (columnCount === 0 || columnCount !== aligns.length) { return false; }\n\n if (silent) { return true; }\n\n oldParentType = state.parentType;\n state.parentType = 'table';\n\n // use 'blockquote' lists for termination because it's\n // the most similar to tables\n terminatorRules = state.md.block.ruler.getRules('blockquote');\n\n token = state.push('table_open', 'table', 1);\n token.map = tableLines = [ startLine, 0 ];\n\n token = state.push('thead_open', 'thead', 1);\n token.map = [ startLine, startLine + 1 ];\n\n token = state.push('tr_open', 'tr', 1);\n token.map = [ startLine, startLine + 1 ];\n\n for (i = 0; i < columns.length; i++) {\n token = state.push('th_open', 'th', 1);\n if (aligns[i]) {\n token.attrs = [ [ 'style', 'text-align:' + aligns[i] ] ];\n }\n\n token = state.push('inline', '', 0);\n token.content = columns[i].trim();\n token.children = [];\n\n token = state.push('th_close', 'th', -1);\n }\n\n token = state.push('tr_close', 'tr', -1);\n token = state.push('thead_close', 'thead', -1);\n\n for (nextLine = startLine + 2; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n\n if (terminate) { break; }\n lineText = getLine(state, nextLine).trim();\n if (!lineText) { break; }\n if (state.sCount[nextLine] - state.blkIndent >= 4) { break; }\n columns = escapedSplit(lineText);\n if (columns.length && columns[0] === '') columns.shift();\n if (columns.length && columns[columns.length - 1] === '') columns.pop();\n\n if (nextLine === startLine + 2) {\n token = state.push('tbody_open', 'tbody', 1);\n token.map = tbodyLines = [ startLine + 2, 0 ];\n }\n\n token = state.push('tr_open', 'tr', 1);\n token.map = [ nextLine, nextLine + 1 ];\n\n for (i = 0; i < columnCount; i++) {\n token = state.push('td_open', 'td', 1);\n if (aligns[i]) {\n token.attrs = [ [ 'style', 'text-align:' + aligns[i] ] ];\n }\n\n token = state.push('inline', '', 0);\n token.content = columns[i] ? columns[i].trim() : '';\n token.children = [];\n\n token = state.push('td_close', 'td', -1);\n }\n token = state.push('tr_close', 'tr', -1);\n }\n\n if (tbodyLines) {\n token = state.push('tbody_close', 'tbody', -1);\n tbodyLines[1] = nextLine;\n }\n\n token = state.push('table_close', 'table', -1);\n tableLines[1] = nextLine;\n\n state.parentType = oldParentType;\n state.line = nextLine;\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_block/table.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_core/block.js":
/*!**********************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_core/block.js ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\n\nmodule.exports = function block(state) {\n var token;\n\n if (state.inlineMode) {\n token = new state.Token('inline', '', 0);\n token.content = state.src;\n token.map = [ 0, 1 ];\n token.children = [];\n state.tokens.push(token);\n } else {\n state.md.block.parse(state.src, state.md, state.env, state.tokens);\n }\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_core/block.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_core/inline.js":
/*!***********************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_core/inline.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nmodule.exports = function inline(state) {\n var tokens = state.tokens, tok, i, l;\n\n // Parse inlines\n for (i = 0, l = tokens.length; i < l; i++) {\n tok = tokens[i];\n if (tok.type === 'inline') {\n state.md.inline.parse(tok.content, state.md, state.env, tok.children);\n }\n }\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_core/inline.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_core/linkify.js":
/*!************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_core/linkify.js ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Replace link-like texts with link nodes.\n//\n// Currently restricted by `md.validateLink()` to http/https/ftp\n//\n\n\n\nvar arrayReplaceAt = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").arrayReplaceAt;\n\n\nfunction isLinkOpen(str) {\n return /^<a[>\\s]/i.test(str);\n}\nfunction isLinkClose(str) {\n return /^<\\/a\\s*>/i.test(str);\n}\n\n\nmodule.exports = function linkify(state) {\n var i, j, l, tokens, token, currentToken, nodes, ln, text, pos, lastPos,\n level, htmlLinkLevel, url, fullUrl, urlText,\n blockTokens = state.tokens,\n links;\n\n if (!state.md.options.linkify) { return; }\n\n for (j = 0, l = blockTokens.length; j < l; j++) {\n if (blockTokens[j].type !== 'inline' ||\n !state.md.linkify.pretest(blockTokens[j].content)) {\n continue;\n }\n\n tokens = blockTokens[j].children;\n\n htmlLinkLevel = 0;\n\n // We scan from the end, to keep position when new tags added.\n // Use reversed logic in links start/end match\n for (i = tokens.length - 1; i >= 0; i--) {\n currentToken = tokens[i];\n\n // Skip content of markdown links\n if (currentToken.type === 'link_close') {\n i--;\n while (tokens[i].level !== currentToken.level && tokens[i].type !== 'link_open') {\n i--;\n }\n continue;\n }\n\n // Skip content of html tag links\n if (currentToken.type === 'html_inline') {\n if (isLinkOpen(currentToken.content) && htmlLinkLevel > 0) {\n htmlLinkLevel--;\n }\n if (isLinkClose(currentToken.content)) {\n htmlLinkLevel++;\n }\n }\n if (htmlLinkLevel > 0) { continue; }\n\n if (currentToken.type === 'text' && state.md.linkify.test(currentToken.content)) {\n\n text = currentToken.content;\n links = state.md.linkify.match(text);\n\n // Now split string to nodes\n nodes = [];\n level = currentToken.level;\n lastPos = 0;\n\n // forbid escape sequence at the start of the string,\n // this avoids http\\://example.com/ from being linkified as\n // http:<a href=\"//example.com/\">//example.com/</a>\n if (links.length > 0 &&\n links[0].index === 0 &&\n i > 0 &&\n tokens[i - 1].type === 'text_special') {\n links = links.slice(1);\n }\n\n for (ln = 0; ln < links.length; ln++) {\n url = links[ln].url;\n fullUrl = state.md.normalizeLink(url);\n if (!state.md.validateLink(fullUrl)) { continue; }\n\n urlText = links[ln].text;\n\n // Linkifier might send raw hostnames like \"example.com\", where url\n // starts with domain name. So we prepend http:// in those cases,\n // and remove it afterwards.\n //\n if (!links[ln].schema) {\n urlText = state.md.normalizeLinkText('http://' + urlText).replace(/^http:\\/\\//, '');\n } else if (links[ln].schema === 'mailto:' && !/^mailto:/i.test(urlText)) {\n urlText = state.md.normalizeLinkText('mailto:' + urlText).replace(/^mailto:/, '');\n } else {\n urlText = state.md.normalizeLinkText(urlText);\n }\n\n pos = links[ln].index;\n\n if (pos > lastPos) {\n token = new state.Token('text', '', 0);\n token.content = text.slice(lastPos, pos);\n token.level = level;\n nodes.push(token);\n }\n\n token = new state.Token('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.level = level++;\n token.markup = 'linkify';\n token.info = 'auto';\n nodes.push(token);\n\n token = new state.Token('text', '', 0);\n token.content = urlText;\n token.level = level;\n nodes.push(token);\n\n token = new state.Token('link_close', 'a', -1);\n token.level = --level;\n token.markup = 'linkify';\n token.info = 'auto';\n nodes.push(token);\n\n lastPos = links[ln].lastIndex;\n }\n if (lastPos < text.length) {\n token = new state.Token('text', '', 0);\n token.content = text.slice(lastPos);\n token.level = level;\n nodes.push(token);\n }\n\n // replace current node\n blockTokens[j].children = tokens = arrayReplaceAt(tokens, i, nodes);\n }\n }\n }\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_core/linkify.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_core/normalize.js":
/*!**************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_core/normalize.js ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Normalize input string\n\n\n\n\n// https://spec.commonmark.org/0.29/#line-ending\nvar NEWLINES_RE = /\\r\\n?|\\n/g;\nvar NULL_RE = /\\0/g;\n\n\nmodule.exports = function normalize(state) {\n var str;\n\n // Normalize newlines\n str = state.src.replace(NEWLINES_RE, '\\n');\n\n // Replace NULL characters\n str = str.replace(NULL_RE, '\\uFFFD');\n\n state.src = str;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_core/normalize.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_core/replacements.js":
/*!*****************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_core/replacements.js ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Simple typographic replacements\n//\n// (c) (C) → ©\n// (tm) (TM) → ™\n// (r) (R) → ®\n// +- → ±\n// ... → … (also ?.... → ?.., !.... → !..)\n// ???????? → ???, !!!!! → !!!, `,,` → `,`\n// -- → &ndash;, --- → &mdash;\n//\n\n\n// TODO:\n// - fractionals 1/2, 1/4, 3/4 -> ½, ¼, ¾\n// - multiplications 2 x 4 -> 2 × 4\n\nvar RARE_RE = /\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/;\n\n// Workaround for phantomjs - need regex without /g flag,\n// or root check will fail every second time\nvar SCOPED_ABBR_TEST_RE = /\\((c|tm|r)\\)/i;\n\nvar SCOPED_ABBR_RE = /\\((c|tm|r)\\)/ig;\nvar SCOPED_ABBR = {\n c: '©',\n r: '®',\n tm: '™'\n};\n\nfunction replaceFn(match, name) {\n return SCOPED_ABBR[name.toLowerCase()];\n}\n\nfunction replace_scoped(inlineTokens) {\n var i, token, inside_autolink = 0;\n\n for (i = inlineTokens.length - 1; i >= 0; i--) {\n token = inlineTokens[i];\n\n if (token.type === 'text' && !inside_autolink) {\n token.content = token.content.replace(SCOPED_ABBR_RE, replaceFn);\n }\n\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--;\n }\n\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++;\n }\n }\n}\n\nfunction replace_rare(inlineTokens) {\n var i, token, inside_autolink = 0;\n\n for (i = inlineTokens.length - 1; i >= 0; i--) {\n token = inlineTokens[i];\n\n if (token.type === 'text' && !inside_autolink) {\n if (RARE_RE.test(token.content)) {\n token.content = token.content\n .replace(/\\+-/g, '±')\n // .., ..., ....... -> …\n // but ?..... & !..... -> ?.. & !..\n .replace(/\\.{2,}/g, '…').replace(/([?!])…/g, '$1..')\n .replace(/([?!]){4,}/g, '$1$1$1').replace(/,{2,}/g, ',')\n // em-dash\n .replace(/(^|[^-])---(?=[^-]|$)/mg, '$1\\u2014')\n // en-dash\n .replace(/(^|\\s)--(?=\\s|$)/mg, '$1\\u2013')\n .replace(/(^|[^-\\s])--(?=[^-\\s]|$)/mg, '$1\\u2013');\n }\n }\n\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--;\n }\n\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++;\n }\n }\n}\n\n\nmodule.exports = function replace(state) {\n var blkIdx;\n\n if (!state.md.options.typographer) { return; }\n\n for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n\n if (state.tokens[blkIdx].type !== 'inline') { continue; }\n\n if (SCOPED_ABBR_TEST_RE.test(state.tokens[blkIdx].content)) {\n replace_scoped(state.tokens[blkIdx].children);\n }\n\n if (RARE_RE.test(state.tokens[blkIdx].content)) {\n replace_rare(state.tokens[blkIdx].children);\n }\n\n }\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_core/replacements.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_core/smartquotes.js":
/*!****************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_core/smartquotes.js ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Convert straight quotation marks to typographic ones\n//\n\n\n\nvar isWhiteSpace = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isWhiteSpace;\nvar isPunctChar = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isPunctChar;\nvar isMdAsciiPunct = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isMdAsciiPunct;\n\nvar QUOTE_TEST_RE = /['\"]/;\nvar QUOTE_RE = /['\"]/g;\nvar APOSTROPHE = '\\u2019'; /* */\n\n\nfunction replaceAt(str, index, ch) {\n return str.slice(0, index) + ch + str.slice(index + 1);\n}\n\nfunction process_inlines(tokens, state) {\n var i, token, text, t, pos, max, thisLevel, item, lastChar, nextChar,\n isLastPunctChar, isNextPunctChar, isLastWhiteSpace, isNextWhiteSpace,\n canOpen, canClose, j, isSingle, stack, openQuote, closeQuote;\n\n stack = [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n\n thisLevel = tokens[i].level;\n\n for (j = stack.length - 1; j >= 0; j--) {\n if (stack[j].level <= thisLevel) { break; }\n }\n stack.length = j + 1;\n\n if (token.type !== 'text') { continue; }\n\n text = token.content;\n pos = 0;\n max = text.length;\n\n /*eslint no-labels:0,block-scoped-var:0*/\n OUTER:\n while (pos < max) {\n QUOTE_RE.lastIndex = pos;\n t = QUOTE_RE.exec(text);\n if (!t) { break; }\n\n canOpen = canClose = true;\n pos = t.index + 1;\n isSingle = (t[0] === \"'\");\n\n // Find previous character,\n // default to space if it's the beginning of the line\n //\n lastChar = 0x20;\n\n if (t.index - 1 >= 0) {\n lastChar = text.charCodeAt(t.index - 1);\n } else {\n for (j = i - 1; j >= 0; j--) {\n if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break; // lastChar defaults to 0x20\n if (!tokens[j].content) continue; // should skip all tokens except 'text', 'html_inline' or 'code_inline'\n\n lastChar = tokens[j].content.charCodeAt(tokens[j].content.length - 1);\n break;\n }\n }\n\n // Find next character,\n // default to space if it's the end of the line\n //\n nextChar = 0x20;\n\n if (pos < max) {\n nextChar = text.charCodeAt(pos);\n } else {\n for (j = i + 1; j < tokens.length; j++) {\n if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break; // nextChar defaults to 0x20\n if (!tokens[j].content) continue; // should skip all tokens except 'text', 'html_inline' or 'code_inline'\n\n nextChar = tokens[j].content.charCodeAt(0);\n break;\n }\n }\n\n isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n\n isLastWhiteSpace = isWhiteSpace(lastChar);\n isNextWhiteSpace = isWhiteSpace(nextChar);\n\n if (isNextWhiteSpace) {\n canOpen = false;\n } else if (isNextPunctChar) {\n if (!(isLastWhiteSpace || isLastPunctChar)) {\n canOpen = false;\n }\n }\n\n if (isLastWhiteSpace) {\n canClose = false;\n } else if (isLastPunctChar) {\n if (!(isNextWhiteSpace || isNextPunctChar)) {\n canClose = false;\n }\n }\n\n if (nextChar === 0x22 /* \" */ && t[0] === '\"') {\n if (lastChar >= 0x30 /* 0 */ && lastChar <= 0x39 /* 9 */) {\n // special case: 1\"\" - count first quote as an inch\n canClose = canOpen = false;\n }\n }\n\n if (canOpen && canClose) {\n // Replace quotes in the middle of punctuation sequence, but not\n // in the middle of the words, i.e.:\n //\n // 1. foo \" bar \" baz - not replaced\n // 2. foo-\"-bar-\"-baz - replaced\n // 3. foo\"bar\"baz - not replaced\n //\n canOpen = isLastPunctChar;\n canClose = isNextPunctChar;\n }\n\n if (!canOpen && !canClose) {\n // middle of word\n if (isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE);\n }\n continue;\n }\n\n if (canClose) {\n // this could be a closing quote, rewind the stack to get a match\n for (j = stack.length - 1; j >= 0; j--) {\n item = stack[j];\n if (stack[j].level < thisLevel) { break; }\n if (item.single === isSingle && stack[j].level === thisLevel) {\n item = stack[j];\n\n if (isSingle) {\n openQuote = state.md.options.quotes[2];\n closeQuote = state.md.options.quotes[3];\n } else {\n openQuote = state.md.options.quotes[0];\n closeQuote = state.md.options.quotes[1];\n }\n\n // replace token.content *before* tokens[item.token].content,\n // because, if they are pointing at the same token, replaceAt\n // could mess up indices when quote length != 1\n token.content = replaceAt(token.content, t.index, closeQuote);\n tokens[item.token].content = replaceAt(\n tokens[item.token].content, item.pos, openQuote);\n\n pos += closeQuote.length - 1;\n if (item.token === i) { pos += openQuote.length - 1; }\n\n text = token.content;\n max = text.length;\n\n stack.length = j;\n continue OUTER;\n }\n }\n }\n\n if (canOpen) {\n stack.push({\n token: i,\n pos: t.index,\n single: isSingle,\n level: thisLevel\n });\n } else if (canClose && isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE);\n }\n }\n }\n}\n\n\nmodule.exports = function smartquotes(state) {\n /*eslint max-depth:0*/\n var blkIdx;\n\n if (!state.md.options.typographer) { return; }\n\n for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n\n if (state.tokens[blkIdx].type !== 'inline' ||\n !QUOTE_TEST_RE.test(state.tokens[blkIdx].content)) {\n continue;\n }\n\n process_inlines(state.tokens[blkIdx].children, state);\n }\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_core/smartquotes.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_core/state_core.js":
/*!***************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_core/state_core.js ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Core state object\n//\n\n\nvar Token = __webpack_require__(/*! ../token */ \"./node_modules/markdown-it/lib/token.js\");\n\n\nfunction StateCore(src, md, env) {\n this.src = src;\n this.env = env;\n this.tokens = [];\n this.inlineMode = false;\n this.md = md; // link to parser instance\n}\n\n// re-export Token class to use in core rules\nStateCore.prototype.Token = Token;\n\n\nmodule.exports = StateCore;\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_core/state_core.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_core/text_join.js":
/*!**************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_core/text_join.js ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Join raw text tokens with the rest of the text\n//\n// This is set as a separate rule to provide an opportunity for plugins\n// to run text replacements after text join, but before escape join.\n//\n// For example, `\\:)` shouldn't be replaced with an emoji.\n//\n\n\n\nmodule.exports = function text_join(state) {\n var j, l, tokens, curr, max, last,\n blockTokens = state.tokens;\n\n for (j = 0, l = blockTokens.length; j < l; j++) {\n if (blockTokens[j].type !== 'inline') continue;\n\n tokens = blockTokens[j].children;\n max = tokens.length;\n\n for (curr = 0; curr < max; curr++) {\n if (tokens[curr].type === 'text_special') {\n tokens[curr].type = 'text';\n }\n }\n\n for (curr = last = 0; curr < max; curr++) {\n if (tokens[curr].type === 'text' &&\n curr + 1 < max &&\n tokens[curr + 1].type === 'text') {\n\n // collapse two adjacent text nodes\n tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content;\n } else {\n if (curr !== last) { tokens[last] = tokens[curr]; }\n\n last++;\n }\n }\n\n if (curr !== last) {\n tokens.length = last;\n }\n }\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_core/text_join.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_inline/autolink.js":
/*!***************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_inline/autolink.js ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Process autolinks '<protocol:...>'\n\n\n\n\n/*eslint max-len:0*/\nvar EMAIL_RE = /^([a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/;\nvar AUTOLINK_RE = /^([a-zA-Z][a-zA-Z0-9+.\\-]{1,31}):([^<>\\x00-\\x20]*)$/;\n\n\nmodule.exports = function autolink(state, silent) {\n var url, fullUrl, token, ch, start, max,\n pos = state.pos;\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; }\n\n start = state.pos;\n max = state.posMax;\n\n for (;;) {\n if (++pos >= max) return false;\n\n ch = state.src.charCodeAt(pos);\n\n if (ch === 0x3C /* < */) return false;\n if (ch === 0x3E /* > */) break;\n }\n\n url = state.src.slice(start + 1, pos);\n\n if (AUTOLINK_RE.test(url)) {\n fullUrl = state.md.normalizeLink(url);\n if (!state.md.validateLink(fullUrl)) { return false; }\n\n if (!silent) {\n token = state.push('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.markup = 'autolink';\n token.info = 'auto';\n\n token = state.push('text', '', 0);\n token.content = state.md.normalizeLinkText(url);\n\n token = state.push('link_close', 'a', -1);\n token.markup = 'autolink';\n token.info = 'auto';\n }\n\n state.pos += url.length + 2;\n return true;\n }\n\n if (EMAIL_RE.test(url)) {\n fullUrl = state.md.normalizeLink('mailto:' + url);\n if (!state.md.validateLink(fullUrl)) { return false; }\n\n if (!silent) {\n token = state.push('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.markup = 'autolink';\n token.info = 'auto';\n\n token = state.push('text', '', 0);\n token.content = state.md.normalizeLinkText(url);\n\n token = state.push('link_close', 'a', -1);\n token.markup = 'autolink';\n token.info = 'auto';\n }\n\n state.pos += url.length + 2;\n return true;\n }\n\n return false;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_inline/autolink.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_inline/backticks.js":
/*!****************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_inline/backticks.js ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Parse backticks\n\n\n\n\nmodule.exports = function backtick(state, silent) {\n var start, max, marker, token, matchStart, matchEnd, openerLength, closerLength,\n pos = state.pos,\n ch = state.src.charCodeAt(pos);\n\n if (ch !== 0x60/* ` */) { return false; }\n\n start = pos;\n pos++;\n max = state.posMax;\n\n // scan marker length\n while (pos < max && state.src.charCodeAt(pos) === 0x60/* ` */) { pos++; }\n\n marker = state.src.slice(start, pos);\n openerLength = marker.length;\n\n if (state.backticksScanned && (state.backticks[openerLength] || 0) <= start) {\n if (!silent) state.pending += marker;\n state.pos += openerLength;\n return true;\n }\n\n matchEnd = pos;\n\n // Nothing found in the cache, scan until the end of the line (or until marker is found)\n while ((matchStart = state.src.indexOf('`', matchEnd)) !== -1) {\n matchEnd = matchStart + 1;\n\n // scan marker length\n while (matchEnd < max && state.src.charCodeAt(matchEnd) === 0x60/* ` */) { matchEnd++; }\n\n closerLength = matchEnd - matchStart;\n\n if (closerLength === openerLength) {\n // Found matching closer length.\n if (!silent) {\n token = state.push('code_inline', 'code', 0);\n token.markup = marker;\n token.content = state.src.slice(pos, matchStart)\n .replace(/\\n/g, ' ')\n .replace(/^ (.+) $/, '$1');\n }\n state.pos = matchEnd;\n return true;\n }\n\n // Some different length found, put it in cache as upper limit of where closer can be found\n state.backticks[closerLength] = matchStart;\n }\n\n // Scanned through the end, didn't find anything\n state.backticksScanned = true;\n\n if (!silent) state.pending += marker;\n state.pos += openerLength;\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_inline/backticks.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_inline/balance_pairs.js":
/*!********************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_inline/balance_pairs.js ***!
\********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// For each opening emphasis-like marker find a matching closing one\n//\n\n\n\nfunction processDelimiters(delimiters) {\n var closerIdx, openerIdx, closer, opener, minOpenerIdx, newMinOpenerIdx,\n isOddMatch, lastJump,\n openersBottom = {},\n max = delimiters.length;\n\n if (!max) return;\n\n // headerIdx is the first delimiter of the current (where closer is) delimiter run\n var headerIdx = 0;\n var lastTokenIdx = -2; // needs any value lower than -1\n var jumps = [];\n\n for (closerIdx = 0; closerIdx < max; closerIdx++) {\n closer = delimiters[closerIdx];\n\n jumps.push(0);\n\n // markers belong to same delimiter run if:\n // - they have adjacent tokens\n // - AND markers are the same\n //\n if (delimiters[headerIdx].marker !== closer.marker || lastTokenIdx !== closer.token - 1) {\n headerIdx = closerIdx;\n }\n\n lastTokenIdx = closer.token;\n\n // Length is only used for emphasis-specific \"rule of 3\",\n // if it's not defined (in strikethrough or 3rd party plugins),\n // we can default it to 0 to disable those checks.\n //\n closer.length = closer.length || 0;\n\n if (!closer.close) continue;\n\n // Previously calculated lower bounds (previous fails)\n // for each marker, each delimiter length modulo 3,\n // and for whether this closer can be an opener;\n // https://github.com/commonmark/cmark/commit/34250e12ccebdc6372b8b49c44fab57c72443460\n if (!openersBottom.hasOwnProperty(closer.marker)) {\n openersBottom[closer.marker] = [ -1, -1, -1, -1, -1, -1 ];\n }\n\n minOpenerIdx = openersBottom[closer.marker][(closer.open ? 3 : 0) + (closer.length % 3)];\n\n openerIdx = headerIdx - jumps[headerIdx] - 1;\n\n newMinOpenerIdx = openerIdx;\n\n for (; openerIdx > minOpenerIdx; openerIdx -= jumps[openerIdx] + 1) {\n opener = delimiters[openerIdx];\n\n if (opener.marker !== closer.marker) continue;\n\n if (opener.open && opener.end < 0) {\n\n isOddMatch = false;\n\n // from spec:\n //\n // If one of the delimiters can both open and close emphasis, then the\n // sum of the lengths of the delimiter runs containing the opening and\n // closing delimiters must not be a multiple of 3 unless both lengths\n // are multiples of 3.\n //\n if (opener.close || closer.open) {\n if ((opener.length + closer.length) % 3 === 0) {\n if (opener.length % 3 !== 0 || closer.length % 3 !== 0) {\n isOddMatch = true;\n }\n }\n }\n\n if (!isOddMatch) {\n // If previous delimiter cannot be an opener, we can safely skip\n // the entire sequence in future checks. This is required to make\n // sure algorithm has linear complexity (see *_*_*_*_*_... case).\n //\n lastJump = openerIdx > 0 && !delimiters[openerIdx - 1].open ?\n jumps[openerIdx - 1] + 1 :\n 0;\n\n jumps[closerIdx] = closerIdx - openerIdx + lastJump;\n jumps[openerIdx] = lastJump;\n\n closer.open = false;\n opener.end = closerIdx;\n opener.close = false;\n newMinOpenerIdx = -1;\n // treat next token as start of run,\n // it optimizes skips in **<...>**a**<...>** pathological case\n lastTokenIdx = -2;\n break;\n }\n }\n }\n\n if (newMinOpenerIdx !== -1) {\n // If match for this delimiter run failed, we want to set lower bound for\n // future lookups. This is required to make sure algorithm has linear\n // complexity.\n //\n // See details here:\n // https://github.com/commonmark/cmark/issues/178#issuecomment-270417442\n //\n openersBottom[closer.marker][(closer.open ? 3 : 0) + ((closer.length || 0) % 3)] = newMinOpenerIdx;\n }\n }\n}\n\n\nmodule.exports = function link_pairs(state) {\n var curr,\n tokens_meta = state.tokens_meta,\n max = state.tokens_meta.length;\n\n processDelimiters(state.delimiters);\n\n for (curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n processDelimiters(tokens_meta[curr].delimiters);\n }\n }\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_inline/balance_pairs.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_inline/emphasis.js":
/*!***************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_inline/emphasis.js ***!
\***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Process *this* and _that_\n//\n\n\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nmodule.exports.tokenize = function emphasis(state, silent) {\n var i, scanned, token,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x5F /* _ */ && marker !== 0x2A /* * */) { return false; }\n\n scanned = state.scanDelims(state.pos, marker === 0x2A);\n\n for (i = 0; i < scanned.length; i++) {\n token = state.push('text', '', 0);\n token.content = String.fromCharCode(marker);\n\n state.delimiters.push({\n // Char code of the starting marker (number).\n //\n marker: marker,\n\n // Total length of these series of delimiters.\n //\n length: scanned.length,\n\n // A position of the token this delimiter corresponds to.\n //\n token: state.tokens.length - 1,\n\n // If this delimiter is matched as a valid opener, `end` will be\n // equal to its position, otherwise it's `-1`.\n //\n end: -1,\n\n // Boolean flags that determine if this delimiter could open or close\n // an emphasis.\n //\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n};\n\n\nfunction postProcess(state, delimiters) {\n var i,\n startDelim,\n endDelim,\n token,\n ch,\n isStrong,\n max = delimiters.length;\n\n for (i = max - 1; i >= 0; i--) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x5F/* _ */ && startDelim.marker !== 0x2A/* * */) {\n continue;\n }\n\n // Process only opening markers\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n // If the previous delimiter has the same marker and is adjacent to this one,\n // merge those into one strong delimiter.\n //\n // `<em><em>whatever</em></em>` -> `<strong>whatever</strong>`\n //\n isStrong = i > 0 &&\n delimiters[i - 1].end === startDelim.end + 1 &&\n // check that first two markers match and adjacent\n delimiters[i - 1].marker === startDelim.marker &&\n delimiters[i - 1].token === startDelim.token - 1 &&\n // check that last two markers are adjacent (we can safely assume they match)\n delimiters[startDelim.end + 1].token === endDelim.token + 1;\n\n ch = String.fromCharCode(startDelim.marker);\n\n token = state.tokens[startDelim.token];\n token.type = isStrong ? 'strong_open' : 'em_open';\n token.tag = isStrong ? 'strong' : 'em';\n token.nesting = 1;\n token.markup = isStrong ? ch + ch : ch;\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = isStrong ? 'strong_close' : 'em_close';\n token.tag = isStrong ? 'strong' : 'em';\n token.nesting = -1;\n token.markup = isStrong ? ch + ch : ch;\n token.content = '';\n\n if (isStrong) {\n state.tokens[delimiters[i - 1].token].content = '';\n state.tokens[delimiters[startDelim.end + 1].token].content = '';\n i--;\n }\n }\n}\n\n\n// Walk through delimiter list and replace text tokens with tags\n//\nmodule.exports.postProcess = function emphasis(state) {\n var curr,\n tokens_meta = state.tokens_meta,\n max = state.tokens_meta.length;\n\n postProcess(state, state.delimiters);\n\n for (curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters);\n }\n }\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_inline/emphasis.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_inline/entity.js":
/*!*************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_inline/entity.js ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Process html entity - &#123;, &#xAF;, &quot;, ...\n\n\n\nvar entities = __webpack_require__(/*! ../common/entities */ \"./node_modules/markdown-it/lib/common/entities.js\");\nvar has = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").has;\nvar isValidEntityCode = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isValidEntityCode;\nvar fromCodePoint = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").fromCodePoint;\n\n\nvar DIGITAL_RE = /^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i;\nvar NAMED_RE = /^&([a-z][a-z0-9]{1,31});/i;\n\n\nmodule.exports = function entity(state, silent) {\n var ch, code, match, token, pos = state.pos, max = state.posMax;\n\n if (state.src.charCodeAt(pos) !== 0x26/* & */) return false;\n\n if (pos + 1 >= max) return false;\n\n ch = state.src.charCodeAt(pos + 1);\n\n if (ch === 0x23 /* # */) {\n match = state.src.slice(pos).match(DIGITAL_RE);\n if (match) {\n if (!silent) {\n code = match[1][0].toLowerCase() === 'x' ? parseInt(match[1].slice(1), 16) : parseInt(match[1], 10);\n\n token = state.push('text_special', '', 0);\n token.content = isValidEntityCode(code) ? fromCodePoint(code) : fromCodePoint(0xFFFD);\n token.markup = match[0];\n token.info = 'entity';\n }\n state.pos += match[0].length;\n return true;\n }\n } else {\n match = state.src.slice(pos).match(NAMED_RE);\n if (match) {\n if (has(entities, match[1])) {\n if (!silent) {\n token = state.push('text_special', '', 0);\n token.content = entities[match[1]];\n token.markup = match[0];\n token.info = 'entity';\n }\n state.pos += match[0].length;\n return true;\n }\n }\n }\n\n return false;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_inline/entity.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_inline/escape.js":
/*!*************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_inline/escape.js ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Process escaped chars and hardbreaks\n\n\n\nvar isSpace = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isSpace;\n\nvar ESCAPED = [];\n\nfor (var i = 0; i < 256; i++) { ESCAPED.push(0); }\n\n'\\\\!\"#$%&\\'()*+,./:;<=>?@[]^_`{|}~-'\n .split('').forEach(function (ch) { ESCAPED[ch.charCodeAt(0)] = 1; });\n\n\nmodule.exports = function escape(state, silent) {\n var ch1, ch2, origStr, escapedStr, token, pos = state.pos, max = state.posMax;\n\n if (state.src.charCodeAt(pos) !== 0x5C/* \\ */) return false;\n pos++;\n\n // '\\' at the end of the inline block\n if (pos >= max) return false;\n\n ch1 = state.src.charCodeAt(pos);\n\n if (ch1 === 0x0A) {\n if (!silent) {\n state.push('hardbreak', 'br', 0);\n }\n\n pos++;\n // skip leading whitespaces from next line\n while (pos < max) {\n ch1 = state.src.charCodeAt(pos);\n if (!isSpace(ch1)) break;\n pos++;\n }\n\n state.pos = pos;\n return true;\n }\n\n escapedStr = state.src[pos];\n\n if (ch1 >= 0xD800 && ch1 <= 0xDBFF && pos + 1 < max) {\n ch2 = state.src.charCodeAt(pos + 1);\n\n if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) {\n escapedStr += state.src[pos + 1];\n pos++;\n }\n }\n\n origStr = '\\\\' + escapedStr;\n\n if (!silent) {\n token = state.push('text_special', '', 0);\n\n if (ch1 < 256 && ESCAPED[ch1] !== 0) {\n token.content = escapedStr;\n } else {\n token.content = origStr;\n }\n\n token.markup = origStr;\n token.info = 'escape';\n }\n\n state.pos = pos + 1;\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_inline/escape.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_inline/fragments_join.js":
/*!*********************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_inline/fragments_join.js ***!
\*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Clean up tokens after emphasis and strikethrough postprocessing:\n// merge adjacent text nodes into one and re-calculate all token levels\n//\n// This is necessary because initially emphasis delimiter markers (*, _, ~)\n// are treated as their own separate text tokens. Then emphasis rule either\n// leaves them as text (needed to merge with adjacent text) or turns them\n// into opening/closing tags (which messes up levels inside).\n//\n\n\n\nmodule.exports = function fragments_join(state) {\n var curr, last,\n level = 0,\n tokens = state.tokens,\n max = state.tokens.length;\n\n for (curr = last = 0; curr < max; curr++) {\n // re-calculate levels after emphasis/strikethrough turns some text nodes\n // into opening/closing tags\n if (tokens[curr].nesting < 0) level--; // closing tag\n tokens[curr].level = level;\n if (tokens[curr].nesting > 0) level++; // opening tag\n\n if (tokens[curr].type === 'text' &&\n curr + 1 < max &&\n tokens[curr + 1].type === 'text') {\n\n // collapse two adjacent text nodes\n tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content;\n } else {\n if (curr !== last) { tokens[last] = tokens[curr]; }\n\n last++;\n }\n }\n\n if (curr !== last) {\n tokens.length = last;\n }\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_inline/fragments_join.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_inline/html_inline.js":
/*!******************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_inline/html_inline.js ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Process html tags\n\n\n\n\nvar HTML_TAG_RE = __webpack_require__(/*! ../common/html_re */ \"./node_modules/markdown-it/lib/common/html_re.js\").HTML_TAG_RE;\n\n\nfunction isLinkOpen(str) {\n return /^<a[>\\s]/i.test(str);\n}\nfunction isLinkClose(str) {\n return /^<\\/a\\s*>/i.test(str);\n}\n\n\nfunction isLetter(ch) {\n /*eslint no-bitwise:0*/\n var lc = ch | 0x20; // to lower case\n return (lc >= 0x61/* a */) && (lc <= 0x7a/* z */);\n}\n\n\nmodule.exports = function html_inline(state, silent) {\n var ch, match, max, token,\n pos = state.pos;\n\n if (!state.md.options.html) { return false; }\n\n // Check start\n max = state.posMax;\n if (state.src.charCodeAt(pos) !== 0x3C/* < */ ||\n pos + 2 >= max) {\n return false;\n }\n\n // Quick fail on second char\n ch = state.src.charCodeAt(pos + 1);\n if (ch !== 0x21/* ! */ &&\n ch !== 0x3F/* ? */ &&\n ch !== 0x2F/* / */ &&\n !isLetter(ch)) {\n return false;\n }\n\n match = state.src.slice(pos).match(HTML_TAG_RE);\n if (!match) { return false; }\n\n if (!silent) {\n token = state.push('html_inline', '', 0);\n token.content = match[0];\n\n if (isLinkOpen(token.content)) state.linkLevel++;\n if (isLinkClose(token.content)) state.linkLevel--;\n }\n state.pos += match[0].length;\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_inline/html_inline.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_inline/image.js":
/*!************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_inline/image.js ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Process ![image](<src> \"title\")\n\n\n\nvar normalizeReference = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").normalizeReference;\nvar isSpace = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isSpace;\n\n\nmodule.exports = function image(state, silent) {\n var attrs,\n code,\n content,\n label,\n labelEnd,\n labelStart,\n pos,\n ref,\n res,\n title,\n token,\n tokens,\n start,\n href = '',\n oldPos = state.pos,\n max = state.posMax;\n\n if (state.src.charCodeAt(state.pos) !== 0x21/* ! */) { return false; }\n if (state.src.charCodeAt(state.pos + 1) !== 0x5B/* [ */) { return false; }\n\n labelStart = state.pos + 2;\n labelEnd = state.md.helpers.parseLinkLabel(state, state.pos + 1, false);\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false; }\n\n pos = labelEnd + 1;\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // [link]( <href> \"title\" )\n // ^^ skipping these spaces\n pos++;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n if (pos >= max) { return false; }\n\n // [link]( <href> \"title\" )\n // ^^^^^^ parsing link destination\n start = pos;\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax);\n if (res.ok) {\n href = state.md.normalizeLink(res.str);\n if (state.md.validateLink(href)) {\n pos = res.pos;\n } else {\n href = '';\n }\n }\n\n // [link]( <href> \"title\" )\n // ^^ skipping these spaces\n start = pos;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n\n // [link]( <href> \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n\n // [link]( <href> \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n } else {\n title = '';\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n state.pos = oldPos;\n return false;\n }\n pos++;\n } else {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false; }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1;\n pos = state.md.helpers.parseLinkLabel(state, pos);\n if (pos >= 0) {\n label = state.src.slice(start, pos++);\n } else {\n pos = labelEnd + 1;\n }\n } else {\n pos = labelEnd + 1;\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd); }\n\n ref = state.env.references[normalizeReference(label)];\n if (!ref) {\n state.pos = oldPos;\n return false;\n }\n href = ref.href;\n title = ref.title;\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n content = state.src.slice(labelStart, labelEnd);\n\n state.md.inline.parse(\n content,\n state.md,\n state.env,\n tokens = []\n );\n\n token = state.push('image', 'img', 0);\n token.attrs = attrs = [ [ 'src', href ], [ 'alt', '' ] ];\n token.children = tokens;\n token.content = content;\n\n if (title) {\n attrs.push([ 'title', title ]);\n }\n }\n\n state.pos = pos;\n state.posMax = max;\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_inline/image.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_inline/link.js":
/*!***********************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_inline/link.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Process [link](<to> \"stuff\")\n\n\n\nvar normalizeReference = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").normalizeReference;\nvar isSpace = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isSpace;\n\n\nmodule.exports = function link(state, silent) {\n var attrs,\n code,\n label,\n labelEnd,\n labelStart,\n pos,\n res,\n ref,\n token,\n href = '',\n title = '',\n oldPos = state.pos,\n max = state.posMax,\n start = state.pos,\n parseReference = true;\n\n if (state.src.charCodeAt(state.pos) !== 0x5B/* [ */) { return false; }\n\n labelStart = state.pos + 1;\n labelEnd = state.md.helpers.parseLinkLabel(state, state.pos, true);\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false; }\n\n pos = labelEnd + 1;\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // might have found a valid shortcut link, disable reference parsing\n parseReference = false;\n\n // [link]( <href> \"title\" )\n // ^^ skipping these spaces\n pos++;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n if (pos >= max) { return false; }\n\n // [link]( <href> \"title\" )\n // ^^^^^^ parsing link destination\n start = pos;\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax);\n if (res.ok) {\n href = state.md.normalizeLink(res.str);\n if (state.md.validateLink(href)) {\n pos = res.pos;\n } else {\n href = '';\n }\n\n // [link]( <href> \"title\" )\n // ^^ skipping these spaces\n start = pos;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n\n // [link]( <href> \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n\n // [link]( <href> \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n }\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n // parsing a valid shortcut link failed, fallback to reference\n parseReference = true;\n }\n pos++;\n }\n\n if (parseReference) {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false; }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1;\n pos = state.md.helpers.parseLinkLabel(state, pos);\n if (pos >= 0) {\n label = state.src.slice(start, pos++);\n } else {\n pos = labelEnd + 1;\n }\n } else {\n pos = labelEnd + 1;\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd); }\n\n ref = state.env.references[normalizeReference(label)];\n if (!ref) {\n state.pos = oldPos;\n return false;\n }\n href = ref.href;\n title = ref.title;\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n state.pos = labelStart;\n state.posMax = labelEnd;\n\n token = state.push('link_open', 'a', 1);\n token.attrs = attrs = [ [ 'href', href ] ];\n if (title) {\n attrs.push([ 'title', title ]);\n }\n\n state.linkLevel++;\n state.md.inline.tokenize(state);\n state.linkLevel--;\n\n token = state.push('link_close', 'a', -1);\n }\n\n state.pos = pos;\n state.posMax = max;\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_inline/link.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_inline/linkify.js":
/*!**************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_inline/linkify.js ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Process links like https://example.org/\n\n\n\n\n// RFC3986: scheme = ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\nvar SCHEME_RE = /(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i;\n\n\nmodule.exports = function linkify(state, silent) {\n var pos, max, match, proto, link, url, fullUrl, token;\n\n if (!state.md.options.linkify) return false;\n if (state.linkLevel > 0) return false;\n\n pos = state.pos;\n max = state.posMax;\n\n if (pos + 3 > max) return false;\n if (state.src.charCodeAt(pos) !== 0x3A/* : */) return false;\n if (state.src.charCodeAt(pos + 1) !== 0x2F/* / */) return false;\n if (state.src.charCodeAt(pos + 2) !== 0x2F/* / */) return false;\n\n match = state.pending.match(SCHEME_RE);\n if (!match) return false;\n\n proto = match[1];\n\n link = state.md.linkify.matchAtStart(state.src.slice(pos - proto.length));\n if (!link) return false;\n\n url = link.url;\n\n // invalid link, but still detected by linkify somehow;\n // need to check to prevent infinite loop below\n if (url.length <= proto.length) return false;\n\n // disallow '*' at the end of the link (conflicts with emphasis)\n url = url.replace(/\\*+$/, '');\n\n fullUrl = state.md.normalizeLink(url);\n if (!state.md.validateLink(fullUrl)) return false;\n\n if (!silent) {\n state.pending = state.pending.slice(0, -proto.length);\n\n token = state.push('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.markup = 'linkify';\n token.info = 'auto';\n\n token = state.push('text', '', 0);\n token.content = state.md.normalizeLinkText(url);\n\n token = state.push('link_close', 'a', -1);\n token.markup = 'linkify';\n token.info = 'auto';\n }\n\n state.pos += url.length - proto.length;\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_inline/linkify.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_inline/newline.js":
/*!**************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_inline/newline.js ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Proceess '\\n'\n\n\n\nvar isSpace = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isSpace;\n\n\nmodule.exports = function newline(state, silent) {\n var pmax, max, ws, pos = state.pos;\n\n if (state.src.charCodeAt(pos) !== 0x0A/* \\n */) { return false; }\n\n pmax = state.pending.length - 1;\n max = state.posMax;\n\n // ' \\n' -> hardbreak\n // Lookup in pending chars is bad practice! Don't copy to other rules!\n // Pending string is stored in concat mode, indexed lookups will cause\n // convertion to flat mode.\n if (!silent) {\n if (pmax >= 0 && state.pending.charCodeAt(pmax) === 0x20) {\n if (pmax >= 1 && state.pending.charCodeAt(pmax - 1) === 0x20) {\n // Find whitespaces tail of pending chars.\n ws = pmax - 1;\n while (ws >= 1 && state.pending.charCodeAt(ws - 1) === 0x20) ws--;\n\n state.pending = state.pending.slice(0, ws);\n state.push('hardbreak', 'br', 0);\n } else {\n state.pending = state.pending.slice(0, -1);\n state.push('softbreak', 'br', 0);\n }\n\n } else {\n state.push('softbreak', 'br', 0);\n }\n }\n\n pos++;\n\n // skip heading spaces for next line\n while (pos < max && isSpace(state.src.charCodeAt(pos))) { pos++; }\n\n state.pos = pos;\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_inline/newline.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_inline/state_inline.js":
/*!*******************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_inline/state_inline.js ***!
\*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Inline parser state\n\n\n\n\nvar Token = __webpack_require__(/*! ../token */ \"./node_modules/markdown-it/lib/token.js\");\nvar isWhiteSpace = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isWhiteSpace;\nvar isPunctChar = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isPunctChar;\nvar isMdAsciiPunct = __webpack_require__(/*! ../common/utils */ \"./node_modules/markdown-it/lib/common/utils.js\").isMdAsciiPunct;\n\n\nfunction StateInline(src, md, env, outTokens) {\n this.src = src;\n this.env = env;\n this.md = md;\n this.tokens = outTokens;\n this.tokens_meta = Array(outTokens.length);\n\n this.pos = 0;\n this.posMax = this.src.length;\n this.level = 0;\n this.pending = '';\n this.pendingLevel = 0;\n\n // Stores { start: end } pairs. Useful for backtrack\n // optimization of pairs parse (emphasis, strikes).\n this.cache = {};\n\n // List of emphasis-like delimiters for current tag\n this.delimiters = [];\n\n // Stack of delimiter lists for upper level tags\n this._prev_delimiters = [];\n\n // backtick length => last seen position\n this.backticks = {};\n this.backticksScanned = false;\n\n // Counter used to disable inline linkify-it execution\n // inside <a> and markdown links\n this.linkLevel = 0;\n}\n\n\n// Flush pending text\n//\nStateInline.prototype.pushPending = function () {\n var token = new Token('text', '', 0);\n token.content = this.pending;\n token.level = this.pendingLevel;\n this.tokens.push(token);\n this.pending = '';\n return token;\n};\n\n\n// Push new token to \"stream\".\n// If pending text exists - flush it as text token\n//\nStateInline.prototype.push = function (type, tag, nesting) {\n if (this.pending) {\n this.pushPending();\n }\n\n var token = new Token(type, tag, nesting);\n var token_meta = null;\n\n if (nesting < 0) {\n // closing tag\n this.level--;\n this.delimiters = this._prev_delimiters.pop();\n }\n\n token.level = this.level;\n\n if (nesting > 0) {\n // opening tag\n this.level++;\n this._prev_delimiters.push(this.delimiters);\n this.delimiters = [];\n token_meta = { delimiters: this.delimiters };\n }\n\n this.pendingLevel = this.level;\n this.tokens.push(token);\n this.tokens_meta.push(token_meta);\n return token;\n};\n\n\n// Scan a sequence of emphasis-like markers, and determine whether\n// it can start an emphasis sequence or end an emphasis sequence.\n//\n// - start - position to scan from (it should point at a valid marker);\n// - canSplitWord - determine if these markers can be found inside a word\n//\nStateInline.prototype.scanDelims = function (start, canSplitWord) {\n var pos = start, lastChar, nextChar, count, can_open, can_close,\n isLastWhiteSpace, isLastPunctChar,\n isNextWhiteSpace, isNextPunctChar,\n left_flanking = true,\n right_flanking = true,\n max = this.posMax,\n marker = this.src.charCodeAt(start);\n\n // treat beginning of the line as a whitespace\n lastChar = start > 0 ? this.src.charCodeAt(start - 1) : 0x20;\n\n while (pos < max && this.src.charCodeAt(pos) === marker) { pos++; }\n\n count = pos - start;\n\n // treat end of the line as a whitespace\n nextChar = pos < max ? this.src.charCodeAt(pos) : 0x20;\n\n isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n\n isLastWhiteSpace = isWhiteSpace(lastChar);\n isNextWhiteSpace = isWhiteSpace(nextChar);\n\n if (isNextWhiteSpace) {\n left_flanking = false;\n } else if (isNextPunctChar) {\n if (!(isLastWhiteSpace || isLastPunctChar)) {\n left_flanking = false;\n }\n }\n\n if (isLastWhiteSpace) {\n right_flanking = false;\n } else if (isLastPunctChar) {\n if (!(isNextWhiteSpace || isNextPunctChar)) {\n right_flanking = false;\n }\n }\n\n if (!canSplitWord) {\n can_open = left_flanking && (!right_flanking || isLastPunctChar);\n can_close = right_flanking && (!left_flanking || isNextPunctChar);\n } else {\n can_open = left_flanking;\n can_close = right_flanking;\n }\n\n return {\n can_open: can_open,\n can_close: can_close,\n length: count\n };\n};\n\n\n// re-export Token class to use in block rules\nStateInline.prototype.Token = Token;\n\n\nmodule.exports = StateInline;\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_inline/state_inline.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_inline/strikethrough.js":
/*!********************************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_inline/strikethrough.js ***!
\********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// ~~strike through~~\n//\n\n\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nmodule.exports.tokenize = function strikethrough(state, silent) {\n var i, scanned, token, len, ch,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x7E/* ~ */) { return false; }\n\n scanned = state.scanDelims(state.pos, true);\n len = scanned.length;\n ch = String.fromCharCode(marker);\n\n if (len < 2) { return false; }\n\n if (len % 2) {\n token = state.push('text', '', 0);\n token.content = ch;\n len--;\n }\n\n for (i = 0; i < len; i += 2) {\n token = state.push('text', '', 0);\n token.content = ch + ch;\n\n state.delimiters.push({\n marker: marker,\n length: 0, // disable \"rule of 3\" length checks meant for emphasis\n token: state.tokens.length - 1,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n};\n\n\nfunction postProcess(state, delimiters) {\n var i, j,\n startDelim,\n endDelim,\n token,\n loneMarkers = [],\n max = delimiters.length;\n\n for (i = 0; i < max; i++) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x7E/* ~ */) {\n continue;\n }\n\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n token = state.tokens[startDelim.token];\n token.type = 's_open';\n token.tag = 's';\n token.nesting = 1;\n token.markup = '~~';\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = 's_close';\n token.tag = 's';\n token.nesting = -1;\n token.markup = '~~';\n token.content = '';\n\n if (state.tokens[endDelim.token - 1].type === 'text' &&\n state.tokens[endDelim.token - 1].content === '~') {\n\n loneMarkers.push(endDelim.token - 1);\n }\n }\n\n // If a marker sequence has an odd number of characters, it's splitted\n // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n // start of the sequence.\n //\n // So, we have to move all those markers after subsequent s_close tags.\n //\n while (loneMarkers.length) {\n i = loneMarkers.pop();\n j = i + 1;\n\n while (j < state.tokens.length && state.tokens[j].type === 's_close') {\n j++;\n }\n\n j--;\n\n if (i !== j) {\n token = state.tokens[j];\n state.tokens[j] = state.tokens[i];\n state.tokens[i] = token;\n }\n }\n}\n\n\n// Walk through delimiter list and replace text tokens with tags\n//\nmodule.exports.postProcess = function strikethrough(state) {\n var curr,\n tokens_meta = state.tokens_meta,\n max = state.tokens_meta.length;\n\n postProcess(state, state.delimiters);\n\n for (curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters);\n }\n }\n};\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_inline/strikethrough.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/rules_inline/text.js":
/*!***********************************************************!*\
!*** ./node_modules/markdown-it/lib/rules_inline/text.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Skip text characters for text token, place those to pending buffer\n// and increment current pos\n\n\n\n\n// Rule to skip pure text\n// '{}$%@~+=:' reserved for extentions\n\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n\n// !!!! Don't confuse with \"Markdown ASCII Punctuation\" chars\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\nfunction isTerminatorChar(ch) {\n switch (ch) {\n case 0x0A/* \\n */:\n case 0x21/* ! */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2D/* - */:\n case 0x3A/* : */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true;\n default:\n return false;\n }\n}\n\nmodule.exports = function text(state, silent) {\n var pos = state.pos;\n\n while (pos < state.posMax && !isTerminatorChar(state.src.charCodeAt(pos))) {\n pos++;\n }\n\n if (pos === state.pos) { return false; }\n\n if (!silent) { state.pending += state.src.slice(state.pos, pos); }\n\n state.pos = pos;\n\n return true;\n};\n\n// Alternative implementation, for memory.\n//\n// It costs 10% of performance, but allows extend terminators list, if place it\n// to `ParcerInline` property. Probably, will switch to it sometime, such\n// flexibility required.\n\n/*\nvar TERMINATOR_RE = /[\\n!#$%&*+\\-:<=>@[\\\\\\]^_`{}~]/;\n\nmodule.exports = function text(state, silent) {\n var pos = state.pos,\n idx = state.src.slice(pos).search(TERMINATOR_RE);\n\n // first char is terminator -> empty text\n if (idx === 0) { return false; }\n\n // no terminator -> text till end of string\n if (idx < 0) {\n if (!silent) { state.pending += state.src.slice(pos); }\n state.pos = state.src.length;\n return true;\n }\n\n if (!silent) { state.pending += state.src.slice(pos, pos + idx); }\n\n state.pos += idx;\n\n return true;\n};*/\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/rules_inline/text.js?");
/***/ }),
/***/ "./node_modules/markdown-it/lib/token.js":
/*!***********************************************!*\
!*** ./node_modules/markdown-it/lib/token.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Token class\n\n\n\n\n/**\n * class Token\n **/\n\n/**\n * new Token(type, tag, nesting)\n *\n * Create new token and fill passed properties.\n **/\nfunction Token(type, tag, nesting) {\n /**\n * Token#type -> String\n *\n * Type of the token (string, e.g. \"paragraph_open\")\n **/\n this.type = type;\n\n /**\n * Token#tag -> String\n *\n * html tag name, e.g. \"p\"\n **/\n this.tag = tag;\n\n /**\n * Token#attrs -> Array\n *\n * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]`\n **/\n this.attrs = null;\n\n /**\n * Token#map -> Array\n *\n * Source map info. Format: `[ line_begin, line_end ]`\n **/\n this.map = null;\n\n /**\n * Token#nesting -> Number\n *\n * Level change (number in {-1, 0, 1} set), where:\n *\n * - `1` means the tag is opening\n * - `0` means the tag is self-closing\n * - `-1` means the tag is closing\n **/\n this.nesting = nesting;\n\n /**\n * Token#level -> Number\n *\n * nesting level, the same as `state.level`\n **/\n this.level = 0;\n\n /**\n * Token#children -> Array\n *\n * An array of child nodes (inline and img tokens)\n **/\n this.children = null;\n\n /**\n * Token#content -> String\n *\n * In a case of self-closing tag (code, html, fence, etc.),\n * it has contents of this tag.\n **/\n this.content = '';\n\n /**\n * Token#markup -> String\n *\n * '*' or '_' for emphasis, fence string for fence, etc.\n **/\n this.markup = '';\n\n /**\n * Token#info -> String\n *\n * Additional information:\n *\n * - Info string for \"fence\" tokens\n * - The value \"auto\" for autolink \"link_open\" and \"link_close\" tokens\n * - The string value of the item marker for ordered-list \"list_item_open\" tokens\n **/\n this.info = '';\n\n /**\n * Token#meta -> Object\n *\n * A place for plugins to store an arbitrary data\n **/\n this.meta = null;\n\n /**\n * Token#block -> Boolean\n *\n * True for block-level tokens, false for inline tokens.\n * Used in renderer to calculate line breaks\n **/\n this.block = false;\n\n /**\n * Token#hidden -> Boolean\n *\n * If it's true, ignore this element when rendering. Used for tight lists\n * to hide paragraphs.\n **/\n this.hidden = false;\n}\n\n\n/**\n * Token.attrIndex(name) -> Number\n *\n * Search attribute index by name.\n **/\nToken.prototype.attrIndex = function attrIndex(name) {\n var attrs, i, len;\n\n if (!this.attrs) { return -1; }\n\n attrs = this.attrs;\n\n for (i = 0, len = attrs.length; i < len; i++) {\n if (attrs[i][0] === name) { return i; }\n }\n return -1;\n};\n\n\n/**\n * Token.attrPush(attrData)\n *\n * Add `[ name, value ]` attribute to list. Init attrs if necessary\n **/\nToken.prototype.attrPush = function attrPush(attrData) {\n if (this.attrs) {\n this.attrs.push(attrData);\n } else {\n this.attrs = [ attrData ];\n }\n};\n\n\n/**\n * Token.attrSet(name, value)\n *\n * Set `name` attribute to `value`. Override old value if exists.\n **/\nToken.prototype.attrSet = function attrSet(name, value) {\n var idx = this.attrIndex(name),\n attrData = [ name, value ];\n\n if (idx < 0) {\n this.attrPush(attrData);\n } else {\n this.attrs[idx] = attrData;\n }\n};\n\n\n/**\n * Token.attrGet(name)\n *\n * Get the value of attribute `name`, or null if it does not exist.\n **/\nToken.prototype.attrGet = function attrGet(name) {\n var idx = this.attrIndex(name), value = null;\n if (idx >= 0) {\n value = this.attrs[idx][1];\n }\n return value;\n};\n\n\n/**\n * Token.attrJoin(name, value)\n *\n * Join value to existing attribute via space. Or create new attribute if not\n * exists. Useful to operate with token classes.\n **/\nToken.prototype.attrJoin = function attrJoin(name, value) {\n var idx = this.attrIndex(name);\n\n if (idx < 0) {\n this.attrPush([ name, value ]);\n } else {\n this.attrs[idx][1] = this.attrs[idx][1] + ' ' + value;\n }\n};\n\n\nmodule.exports = Token;\n\n\n//# sourceURL=webpack:///./node_modules/markdown-it/lib/token.js?");
/***/ }),
/***/ "./node_modules/markdown-it/node_modules/entities/lib/maps/entities.json":
/*!*******************************************************************************!*\
!*** ./node_modules/markdown-it/node_modules/entities/lib/maps/entities.json ***!
\*******************************************************************************/
/*! exports provided: Aacute, aacute, Abreve, abreve, ac, acd, acE, Acirc, acirc, acute, Acy, acy, AElig, aelig, af, Afr, afr, Agrave, agrave, alefsym, aleph, Alpha, alpha, Amacr, amacr, amalg, amp, AMP, andand, And, and, andd, andslope, andv, ang, ange, angle, angmsdaa, angmsdab, angmsdac, angmsdad, angmsdae, angmsdaf, angmsdag, angmsdah, angmsd, angrt, angrtvb, angrtvbd, angsph, angst, angzarr, Aogon, aogon, Aopf, aopf, apacir, ap, apE, ape, apid, apos, ApplyFunction, approx, approxeq, Aring, aring, Ascr, ascr, Assign, ast, asymp, asympeq, Atilde, atilde, Auml, auml, awconint, awint, backcong, backepsilon, backprime, backsim, backsimeq, Backslash, Barv, barvee, barwed, Barwed, barwedge, bbrk, bbrktbrk, bcong, Bcy, bcy, bdquo, becaus, because, Because, bemptyv, bepsi, bernou, Bernoullis, Beta, beta, beth, between, Bfr, bfr, bigcap, bigcirc, bigcup, bigodot, bigoplus, bigotimes, bigsqcup, bigstar, bigtriangledown, bigtriangleup, biguplus, bigvee, bigwedge, bkarow, blacklozenge, blacksquare, blacktriangle, blacktriangledown, blacktriangleleft, blacktriangleright, blank, blk12, blk14, blk34, block, bne, bnequiv, bNot, bnot, Bopf, bopf, bot, bottom, bowtie, boxbox, boxdl, boxdL, boxDl, boxDL, boxdr, boxdR, boxDr, boxDR, boxh, boxH, boxhd, boxHd, boxhD, boxHD, boxhu, boxHu, boxhU, boxHU, boxminus, boxplus, boxtimes, boxul, boxuL, boxUl, boxUL, boxur, boxuR, boxUr, boxUR, boxv, boxV, boxvh, boxvH, boxVh, boxVH, boxvl, boxvL, boxVl, boxVL, boxvr, boxvR, boxVr, boxVR, bprime, breve, Breve, brvbar, bscr, Bscr, bsemi, bsim, bsime, bsolb, bsol, bsolhsub, bull, bullet, bump, bumpE, bumpe, Bumpeq, bumpeq, Cacute, cacute, capand, capbrcup, capcap, cap, Cap, capcup, capdot, CapitalDifferentialD, caps, caret, caron, Cayleys, ccaps, Ccaron, ccaron, Ccedil, ccedil, Ccirc, ccirc, Cconint, ccups, ccupssm, Cdot, cdot, cedil, Cedilla, cemptyv, cent, centerdot, CenterDot, cfr, Cfr, CHcy, chcy, check, checkmark, Chi, chi, circ, circeq, circlearrowleft, circlearrowright, circledast, circledcirc, circleddash, CircleDot, circledR, circledS, CircleMinus, CirclePlus, CircleTimes, cir, cirE, cire, cirfnint, cirmid, cirscir, ClockwiseContourIntegral, CloseCurlyDoubleQuote, CloseCurlyQuote, clubs, clubsuit, colon, Colon, Colone, colone, coloneq, comma, commat, comp, compfn, complement, complexes, cong, congdot, Congruent, conint, Conint, ContourIntegral, copf, Copf, coprod, Coproduct, copy, COPY, copysr, CounterClockwiseContourIntegral, crarr, cross, Cross, Cscr, cscr, csub, csube, csup, csupe, ctdot, cudarrl, cudarrr, cuepr, cuesc, cularr, cularrp, cupbrcap, cupcap, CupCap, cup, Cup, cupcup, cupdot, cupor, cups, curarr, curarrm, curlyeqprec, curlyeqsucc, curlyvee, curlywedge, curren, curvearrowleft, curvearrowright, cuvee, cuwed, cwconint, cwint, cylcty, dagger, Dagger, daleth, darr, Darr, dArr, dash, Dashv, dashv, dbkarow, dblac, Dcaron, dcaron, Dcy, dcy, ddagger, ddarr, DD, dd, DDotrahd, ddotseq, deg, Del, Delta, delta, demptyv, dfisht, Dfr, dfr, dHar, dharl, dharr, DiacriticalAcute, DiacriticalDot, DiacriticalDoubleAcute, DiacriticalGrave, DiacriticalTilde, diam, diamond, Diamond, diamondsuit, diams, die, DifferentialD, digamma, disin, div, divide, divideontimes, divonx, DJcy, djcy, dlcorn, dlcrop, dollar, Dopf, dopf, Dot, dot, DotDot, doteq, doteqdot, DotEqual, dotminus, dotplus, dotsquare, doublebarwedge, DoubleContourIntegral, DoubleDot, DoubleDownArrow, DoubleLeftArrow, DoubleLeftRightArrow, DoubleLeftTee, DoubleLongLeftArrow, DoubleLongLeftRightArrow, DoubleLongRightArrow, DoubleRightArrow, DoubleRightTee, DoubleUpArrow, DoubleUpDownArrow, DoubleVerticalBar, DownArrowBar, downarrow, DownArrow, Downarrow, DownArrowUpArrow, DownBreve, downdownarrows, downharpoonleft, downharpoonright, DownLeftRightVector, DownLeftTeeVector, DownLeftVectorBar, DownLeftVector, DownRightTeeVector, DownRightVectorBar, DownRightVector, DownTeeArrow, DownTee, drbkarow, drcorn, drcrop, Dscr, dscr, DScy, dscy, dsol, Dstrok, dstrok, dtdot, dtri, dtrif, duarr, duhar, dwangle, DZcy, dzcy, dzigrarr, Eacute, eacute, easter, Ecaron, ecaron, Ecirc, ecirc, ecir, ecolon, Ecy, ecy, eDDot, Edot, edot, eDot, ee, efDot, Efr, efr, eg, Egrave, egrave, egs, egsdot, el, Element, elinters, ell, els, elsdot, Emacr, emacr, empty, emptyset, EmptySmallSquare, emptyv, EmptyVerySmallSquare, emsp13, emsp14, emsp, ENG, eng, ensp, Eogon, eogon, Eopf, eopf, epar, eparsl, eplus, epsi, Epsilon, epsilon, epsiv, eqcirc, eqcolon, eqsim, eqslantgtr, eqslantless, Equal, equals, EqualTilde, equest, Equilibrium, equiv, equivDD, eqvparsl, erarr, erDot, escr, Escr, esdot, Esim, esim, Eta, eta, ETH, eth, Euml, euml, euro, excl, exist, Exists, expectation, exponentiale, ExponentialE, fallingdotseq, Fcy, fcy, female, ffilig, fflig, ffllig, Ffr, ffr, filig, FilledSmallSquare, FilledVerySmallSquare, fjlig, flat, fllig, fltns, fnof, Fopf, fopf, forall, ForAll, fork, forkv, Fouriertrf, fpartint, frac12, frac13, frac14, frac15, frac16, frac18, frac23, frac25, frac34, frac35, frac38, frac45, frac56, frac58, frac78, frasl, frown, fscr, Fscr, gacute, Gamma, gamma, Gammad, gammad, gap, Gbreve, gbreve, Gcedil, Gcirc, gcirc, Gcy, gcy, Gdot, gdot, ge, gE, gEl, gel, geq, geqq, geqslant, gescc, ges, gesdot, gesdoto, gesdotol, gesl, gesles, Gfr, gfr, gg, Gg, ggg, gimel, GJcy, gjcy, gla, gl, glE, glj, gnap, gnapprox, gne, gnE, gneq, gneqq, gnsim, Gopf, gopf, grave, GreaterEqual, GreaterEqualLess, GreaterFullEqual, GreaterGreater, GreaterLess, GreaterSlantEqual, GreaterTilde, Gscr, gscr, gsim, gsime, gsiml, gtcc, gtcir, gt, GT, Gt, gtdot, gtlPar, gtquest, gtrapprox, gtrarr, gtrdot, gtreqless, gtreqqless, gtrless, gtrsim, gvertneqq, gvnE, Hacek, hairsp, half, hamilt, HARDcy, hardcy, harrcir, harr, hArr, harrw, Hat, hbar, Hcirc, hcirc, hearts, heartsuit, hellip, hercon, hfr, Hfr, HilbertSpace, hksearow, hkswarow, hoarr, homtht, hookleftarrow, hookrightarrow, hopf, Hopf, horbar, HorizontalLine, hscr, Hscr, hslash, Hstrok, hstrok, HumpDownHump, HumpEqual, hybull, hyphen, Iacute, iacute, ic, Icirc, icirc, Icy, icy, Idot, IEcy, iecy, iexcl, iff, ifr, Ifr, Igrave, igrave, ii, iiiint, iiint, iinfin, iiota, IJlig, ijlig, Imacr, imacr, image, ImaginaryI, imagline, imagpart, imath, Im, imof, imped, Implies, incare, in, infin, infintie, inodot, intcal, int, Int, integers, Integral, intercal, Intersection, intlarhk, intprod, InvisibleComma, InvisibleTimes, IOcy, iocy, Iogon, iogon, Iopf, iopf, Iota, iota, iprod, iquest, iscr, Iscr, isin, isindot, isinE, isins, isinsv, isinv, it, Itilde, itilde, Iukcy, iukcy, Iuml, iuml, Jcirc, jcirc, Jcy, jcy, Jfr, jfr, jmath, Jopf, jopf, Jscr, jscr, Jsercy, jsercy, Jukcy, jukcy, Kappa, kappa, kappav, Kcedil, kcedil, Kcy, kcy, Kfr, kfr, kgreen, KHcy, khcy, KJcy, kjcy, Kopf, kopf, Kscr, kscr, lAarr, Lacute, lacute, laemptyv, lagran, Lambda, lambda, lang, Lang, langd, langle, lap, Laplacetrf, laquo, larrb, larrbfs, larr, Larr, lArr, larrfs, larrhk, larrlp, larrpl, larrsim, larrtl, latail, lAtail, lat, late, lates, lbarr, lBarr, lbbrk, lbrace, lbrack, lbrke, lbrksld, lbrkslu, Lcaron, lcaron, Lcedil, lcedil, lceil, lcub, Lcy, lcy, ldca, ldquo, ldquor, ldrdhar, ldrushar, ldsh, le, lE, LeftAngleBracket, LeftArrowBar, leftarrow, LeftArrow, Leftarrow, LeftArrowRightArrow, leftarrowtail, LeftCeiling, LeftDoubleBracket, LeftDownTeeVector, LeftDownVectorBar, LeftDownVector, LeftFloor, leftharpoondown, leftharpoonup, leftleftarrows, leftrightarrow, LeftRightArrow, Leftrightarrow, leftrightarrows, leftrightharpoons, leftrightsquigarrow, LeftRightVector, LeftTeeArrow, LeftTee, LeftTeeVector, leftthreetimes, LeftTriangleBar, LeftTriangle, LeftTriangleEqual, LeftUpDownVector, LeftUpTeeVector, LeftUpVectorBar, LeftUpVector, LeftVectorBar, LeftVector, lEg, leg, leq, leqq, leqslant, lescc, les, lesdot, lesdoto, lesdotor, lesg, lesges, lessapprox, lessdot, lesseqgtr, lesseqqgtr, LessEqualGreater, LessFullEqual, LessGreater, lessgtr, LessLess, lesssim, LessSlantEqual, LessTilde, lfisht, lfloor, Lfr, lfr, lg, lgE, lHar, lhard, lharu, lharul, lhblk, LJcy, ljcy, llarr, ll, Ll, llcorner, Lleftarrow, llhard, lltri, Lmidot, lmidot, lmoustache, lmoust, lnap, lnapprox, lne, lnE, lneq, lneqq, lnsim, loang, loarr, lobrk, longleftarrow, LongLeftArrow, Longleftarrow, longleftrightarrow, LongLeftRightArrow, Longleftrightarrow, longmapsto, longrightarrow, LongRightArrow, Longrightarrow, looparrowleft, looparrowright, lopar, Lopf, lopf, loplus, lotimes, lowast, lowbar, LowerLeftArrow, LowerRightArrow, loz, lozenge, lozf, lpar, lparlt, lrarr, lrcorner, lrhar, lrhard, lrm, lrtri, lsaquo, lscr, Lscr, lsh, Lsh, lsim, lsime, lsimg, lsqb, lsquo, lsquor, Lstrok, lstrok, ltcc, ltcir, lt, LT, Lt, ltdot, lthree, ltimes, ltlarr, ltquest, ltri, ltrie, ltrif, ltrPar, lurdshar, luruhar, lvertneqq, lvnE, macr, male, malt, maltese, Map, map, mapsto, mapstodown, mapstoleft, mapstoup, marker, mcomma, Mcy, mcy, mdash, mDDot, measuredangle, MediumSpace, Mellintrf, Mfr, mfr, mho, micro, midast, midcir, mid, middot, minusb, minus, minusd, minusdu, MinusPlus, mlcp, mldr, mnplus, models, Mopf, mopf, mp, mscr, Mscr, mstpos, Mu, mu, multimap, mumap, nabla, Nacute, nacute, nang, nap, napE, napid, napos, napprox, natural, naturals, natur, nbsp, nbump, nbumpe, ncap, Ncaron, ncaron, Ncedil, ncedil, ncong, ncongdot, ncup, Ncy, ncy, ndash, nearhk, nearr, neArr, nearrow, ne, nedot, NegativeMediumSpace, NegativeThickSpace, NegativeThinSpace, NegativeVeryThinSpace, nequiv, nesear, nesim, NestedGreaterGreater, NestedLessLess, NewLine, nexist, nexists, Nfr, nfr, ngE, nge, ngeq, ngeqq, ngeqslant, nges, nGg, ngsim, nGt, ngt, ngtr, nGtv, nharr, nhArr, nhpar, ni, nis, nisd, niv, NJcy, njcy, nlarr, nlArr, nldr, nlE, nle, nleftarrow, nLeftarrow, nleftrightarrow, nLeftrightarrow, nleq, nleqq, nleqslant, nles, nless, nLl, nlsim, nLt, nlt, nltri, nltrie, nLtv, nmid, NoBreak, NonBreakingSpace, nopf, Nopf, Not, not, NotCongruent, NotCupCap, NotDoubleVerticalBar, NotElement, NotEqual, NotEqualTilde, NotExists, NotGreater, NotGreaterEqual, NotGreaterFullEqual, NotGreaterGreater, NotGreaterLess, NotGreaterSlantEqual, NotGreaterTilde, NotHumpDownHump, NotHumpEqual, notin, notindot, notinE, notinva, notinvb, notinvc, NotLeftTriangleBar, NotLeftTriangle, NotLeftTriangleEqual, NotLess, NotLessEqual, NotLessGreater, NotLessLess, NotLessSlantEqual, NotLessTilde, NotNestedGreaterGreater, NotNestedLessLess, notni, notniva, notnivb, notnivc, NotPrecedes, NotPrecedesEqual, NotPrecedesSlantEqual, NotReverseElement, NotRightTriangleBar, NotRightTriangle, NotRightTriangleEqual, NotSquareSubset, NotSquareSubsetEqual, NotSquareSuperset, NotSquareSupersetEqual, NotSubset, NotSubsetEqual, NotSucceeds, NotSucceedsEqual, NotSucceedsSlantEqual, NotSucceedsTilde, NotSuperset, NotSupersetEqual, NotTilde, NotTildeEqual, NotTildeFullEqual, NotTildeTilde, NotVerticalBar, nparallel, npar, nparsl, npart, npolint, npr, nprcue, nprec, npreceq, npre, nrarrc, nrarr, nrArr, nrarrw, nrightarrow, nRightarrow, nrtri, nrtrie, nsc, nsccue, nsce, Nscr, nscr, nshortmid, nshortparallel, nsim, nsime, nsimeq, nsmid, nspar, nsqsube, nsqsupe, nsub, nsubE, nsube, nsubset, nsubseteq, nsubseteqq, nsucc, nsucceq, nsup, nsupE, nsupe, nsupset, nsupseteq, nsupseteqq, ntgl, Ntilde, ntilde, ntlg, ntriangleleft, ntrianglelefteq, ntriangleright, ntrianglerighteq, Nu, nu, num, numero, numsp, nvap, nvdash, nvDash, nVdash, nVDash, nvge, nvgt, nvHarr, nvinfin, nvlArr, nvle, nvlt, nvltrie, nvrArr, nvrtrie, nvsim, nwarhk, nwarr, nwArr, nwarrow, nwnear, Oacute, oacute, oast, Ocirc, ocirc, ocir, Ocy, ocy, odash, Odblac, odblac, odiv, odot, odsold, OElig, oelig, ofcir, Ofr, ofr, ogon, Ograve, ograve, ogt, ohbar, ohm, oint, olarr, olcir, olcross, oline, olt, Omacr, omacr, Omega, omega, Omicron, omicron, omid, ominus, Oopf, oopf, opar, OpenCurlyDoubleQuote, OpenCurlyQuote, operp, oplus, orarr, Or, or, ord, order, orderof, ordf, ordm, origof, oror, orslope, orv, oS, Oscr, oscr, Oslash, oslash, osol, Otilde, otilde, otimesas, Otimes, otimes, Ouml, ouml, ovbar, OverBar, OverBrace, OverBracket, OverParenthesis, para, parallel, par, parsim, parsl, part, PartialD, Pcy, pcy, percnt, period, permil, perp, pertenk, Pfr, pfr, Phi, phi, phiv, phmmat, phone, Pi, pi, pitchfork, piv, planck, planckh, plankv, plusacir, plusb, pluscir, plus, plusdo, plusdu, pluse, PlusMinus, plusmn, plussim, plustwo, pm, Poincareplane, pointint, popf, Popf, pound, prap, Pr, pr, prcue, precapprox, prec, preccurlyeq, Precedes, PrecedesEqual, PrecedesSlantEqual, PrecedesTilde, preceq, precnapprox, precneqq, precnsim, pre, prE, precsim, prime, Prime, primes, prnap, prnE, prnsim, prod, Product, profalar, profline, profsurf, prop, Proportional, Proportion, propto, prsim, prurel, Pscr, pscr, Psi, psi, puncsp, Qfr, qfr, qint, qopf, Qopf, qprime, Qscr, qscr, quaternions, quatint, quest, questeq, quot, QUOT, rAarr, race, Racute, racute, radic, raemptyv, rang, Rang, rangd, range, rangle, raquo, rarrap, rarrb, rarrbfs, rarrc, rarr, Rarr, rArr, rarrfs, rarrhk, rarrlp, rarrpl, rarrsim, Rarrtl, rarrtl, rarrw, ratail, rAtail, ratio, rationals, rbarr, rBarr, RBarr, rbbrk, rbrace, rbrack, rbrke, rbrksld, rbrkslu, Rcaron, rcaron, Rcedil, rcedil, rceil, rcub, Rcy, rcy, rdca, rdldhar, rdquo, rdquor, rdsh, real, realine, realpart, reals, Re, rect, reg, REG, ReverseElement, ReverseEquilibrium, ReverseUpEquilibrium, rfisht, rfloor, rfr, Rfr, rHar, rhard, rharu, rharul, Rho, rho, rhov, RightAngleBracket, RightArrowBar, rightarrow, RightArrow, Rightarrow, RightArrowLeftArrow, rightarrowtail, RightCeiling, RightDoubleBracket, RightDownTeeVector, RightDownVectorBar, RightDownVector, RightFloor, rightharpoondown, rightharpoonup, rightleftarrows, rightleftharpoons, rightrightarrows, rightsquigarrow, RightTeeArrow, RightTee, RightTeeVector, rightthreetimes, RightTriangleBar, RightTriangle, RightTriangleEqual, RightUpDownVector, RightUpTeeVector, RightUpVectorBar, RightUpVector, RightVectorBar, RightVector, ring, risingdotseq, rlarr, rlhar, rlm, rmoustache, rmoust, rnmid, roang, roarr, robrk, ropar, ropf, Ropf, roplus, rotimes, RoundImplies, rpar, rpargt, rppolint, rrarr, Rrightarrow, rsaquo, rscr, Rscr, rsh, Rsh, rsqb, rsquo, rsquor, rthree, rtimes, rtri, rtrie, rtrif, rtriltri, RuleDelayed, ruluhar, rx, Sacute, sacute, sbquo, scap, Scaron, scaron, Sc, sc, sccue, sce, scE, Scedil, scedil, Scirc, scirc, scnap, scnE, scnsim, scpolint, scsim, Scy, scy, sdotb, sdot, sdote, searhk, searr, seArr, searrow, sect, semi, seswar, setminus, setmn, sext, Sfr, sfr, sfrown, sharp, SHCHcy, shchcy, SHcy, shcy, ShortDownArrow, ShortLeftArrow, shortmid, shortparallel, ShortRightArrow, ShortUpArrow, shy, Sigma, sigma, sigmaf, sigmav, sim, simdot, sime, simeq, simg, simgE, siml, simlE, simne, simplus, simrarr, slarr, SmallCircle, smallsetminus, smashp, smeparsl, smid, smile, smt, smte, smtes, SOFTcy, softcy, solbar, solb, sol, Sopf, sopf, spades, spadesuit, spar, sqcap, sqcaps, sqcup, sqcups, Sqrt, sqsub, sqsube, sqsubset, sqsubseteq, sqsup, sqsupe, sqsupset, sqsupseteq, square, Square, SquareIntersection, SquareSubset, SquareSubsetEqual, SquareSuperset, SquareSupersetEqual, SquareUnion, squarf, squ, squf, srarr, Sscr, sscr, ssetmn, ssmile, sstarf, Star, star, starf, straightepsilon, straightphi, strns, sub, Sub, subdot, subE, sube, subedot, submult, subnE, subne, subplus, subrarr, subset, Subset, subseteq, subseteqq, SubsetEqual, subsetneq, subsetneqq, subsim, subsub, subsup, succapprox, succ, succcurlyeq, Succeeds, SucceedsEqual, SucceedsSlantEqual, SucceedsTilde, succeq, succnapprox, succneqq, succnsim, succsim, SuchThat, sum, Sum, sung, sup1, sup2, sup3, sup, Sup, supdot, supdsub, supE, supe, supedot, Superset, SupersetEqual, suphsol, suphsub, suplarr, supmult, supnE, supne, supplus, supset, Supset, supseteq, supseteqq, supsetneq, supsetneqq, supsim, supsub, supsup, swarhk, swarr, swArr, swarrow, swnwar, szlig, Tab, target, Tau, tau, tbrk, Tcaron, tcaron, Tcedil, tcedil, Tcy, tcy, tdot, telrec, Tfr, tfr, there4, therefore, Therefore, Theta, theta, thetasym, thetav, thickapprox, thicksim, ThickSpace, ThinSpace, thinsp, thkap, thksim, THORN, thorn, tilde, Tilde, TildeEqual, TildeFullEqual, TildeTilde, timesbar, timesb, times, timesd, tint, toea, topbot, topcir, top, Topf, topf, topfork, tosa, tprime, trade, TRADE, triangle, triangledown, triangleleft, trianglelefteq, triangleq, triangleright, trianglerighteq, tridot, trie, triminus, TripleDot, triplus, trisb, tritime, trpezium, Tscr, tscr, TScy, tscy, TSHcy, tshcy, Tstrok, tstrok, twixt, twoheadleftarrow, twoheadrightarrow, Uacute, uacute, uarr, Uarr, uArr, Uarrocir, Ubrcy, ubrcy, Ubreve, ubreve, Ucirc, ucirc, Ucy, ucy, udarr, Udblac, udblac, udhar, ufisht, Ufr, ufr, Ugrave, ugrave, uHar, uharl, uharr, uhblk, ulcorn, ulcorner, ulcrop, ultri, Umacr, umacr, uml, UnderBar, UnderBrace, UnderBracket, UnderParenthesis, Union, UnionPlus, Uogon, uogon, Uopf, uopf, UpArrowBar, uparrow, UpArrow, Uparrow, UpArrowDownArrow, updownarrow, UpDownArrow, Updownarrow, UpEquilibrium, upharpoonleft, upharpoonright, uplus, UpperLeftArrow, UpperRightArrow, upsi, Upsi, upsih, Upsilon, upsilon, UpTeeArrow, UpTee, upuparrows, urcorn, urcorner, urcrop, Uring, uring, urtri, Uscr, uscr, utdot, Utilde, utilde, utri, utrif, uuarr, Uuml, uuml, uwangle, vangrt, varepsilon, varkappa, varnothing, varphi, varpi, varpropto, varr, vArr, varrho, varsigma, varsubsetneq, varsubsetneqq, varsupsetneq, varsupsetneqq, vartheta, vartriangleleft, vartriangleright, vBar, Vbar, vBarv, Vcy, vcy, vdash, vDash, Vdash, VDash, Vdashl, veebar, vee, Vee, veeeq, vellip, verbar, Verbar, vert, Vert, VerticalBar, VerticalLine, VerticalSeparator, VerticalTilde, VeryThinSpace, Vfr, vfr, vltri, vnsub, vnsup, Vopf, vopf, vprop, vrtri, Vscr, vscr, vsubnE, vsubne, vsupnE, vsupne, Vvdash, vzigzag, Wcirc, wcirc, wedbar, wedge, Wedge, wedgeq, weierp, Wfr, wfr, Wopf, wopf, wp, wr, wreath, Wscr, wscr, xcap, xcirc, xcup, xdtri, Xfr, xfr, xharr, xhArr, Xi, xi, xlarr, xlArr, xmap, xnis, xodot, Xopf, xopf, xoplus, xotime, xrarr, xrArr, Xscr, xscr, xsqcup, xuplus, xutri, xvee, xwedge, Yacute, yacute, YAcy, yacy, Ycirc, ycirc, Ycy, ycy, yen, Yfr, yfr, YIcy, yicy, Yopf, yopf, Yscr, yscr, YUcy, yucy, yuml, Yuml, Zacute, zacute, Zcaron, zcaron, Zcy, zcy, Zdot, zdot, zeetrf, ZeroWidthSpace, Zeta, zeta, zfr, Zfr, ZHcy, zhcy, zigrarr, zopf, Zopf, Zscr, zscr, zwj, zwnj, default */
/***/ (function(module) {
eval("module.exports = JSON.parse(\"{\\\"Aacute\\\":\\\"Á\\\",\\\"aacute\\\":\\\"á\\\",\\\"Abreve\\\":\\\"Ă\\\",\\\"abreve\\\":\\\"ă\\\",\\\"ac\\\":\\\"∾\\\",\\\"acd\\\":\\\"∿\\\",\\\"acE\\\":\\\"∾̳\\\",\\\"Acirc\\\":\\\"Â\\\",\\\"acirc\\\":\\\"â\\\",\\\"acute\\\":\\\"´\\\",\\\"Acy\\\":\\\"А\\\",\\\"acy\\\":\\\"а\\\",\\\"AElig\\\":\\\"Æ\\\",\\\"aelig\\\":\\\"æ\\\",\\\"af\\\":\\\"\\\",\\\"Afr\\\":\\\"𝔄\\\",\\\"afr\\\":\\\"𝔞\\\",\\\"Agrave\\\":\\\"À\\\",\\\"agrave\\\":\\\"à\\\",\\\"alefsym\\\":\\\"ℵ\\\",\\\"aleph\\\":\\\"ℵ\\\",\\\"Alpha\\\":\\\"Α\\\",\\\"alpha\\\":\\\"α\\\",\\\"Amacr\\\":\\\"Ā\\\",\\\"amacr\\\":\\\"ā\\\",\\\"amalg\\\":\\\"⨿\\\",\\\"amp\\\":\\\"&\\\",\\\"AMP\\\":\\\"&\\\",\\\"andand\\\":\\\"⩕\\\",\\\"And\\\":\\\"⩓\\\",\\\"and\\\":\\\"∧\\\",\\\"andd\\\":\\\"⩜\\\",\\\"andslope\\\":\\\"⩘\\\",\\\"andv\\\":\\\"⩚\\\",\\\"ang\\\":\\\"∠\\\",\\\"ange\\\":\\\"⦤\\\",\\\"angle\\\":\\\"∠\\\",\\\"angmsdaa\\\":\\\"⦨\\\",\\\"angmsdab\\\":\\\"⦩\\\",\\\"angmsdac\\\":\\\"⦪\\\",\\\"angmsdad\\\":\\\"⦫\\\",\\\"angmsdae\\\":\\\"⦬\\\",\\\"angmsdaf\\\":\\\"⦭\\\",\\\"angmsdag\\\":\\\"⦮\\\",\\\"angmsdah\\\":\\\"⦯\\\",\\\"angmsd\\\":\\\"∡\\\",\\\"angrt\\\":\\\"∟\\\",\\\"angrtvb\\\":\\\"⊾\\\",\\\"angrtvbd\\\":\\\"⦝\\\",\\\"angsph\\\":\\\"∢\\\",\\\"angst\\\":\\\"Å\\\",\\\"angzarr\\\":\\\"⍼\\\",\\\"Aogon\\\":\\\"Ą\\\",\\\"aogon\\\":\\\"ą\\\",\\\"Aopf\\\":\\\"𝔸\\\",\\\"aopf\\\":\\\"𝕒\\\",\\\"apacir\\\":\\\"⩯\\\",\\\"ap\\\":\\\"≈\\\",\\\"apE\\\":\\\"⩰\\\",\\\"ape\\\":\\\"≊\\\",\\\"apid\\\":\\\"≋\\\",\\\"apos\\\":\\\"'\\\",\\\"ApplyFunction\\\":\\\"\\\",\\\"approx\\\":\\\"≈\\\",\\\"approxeq\\\":\\\"≊\\\",\\\"Aring\\\":\\\"Å\\\",\\\"aring\\\":\\\"å\\\",\\\"Ascr\\\":\\\"𝒜\\\",\\\"ascr\\\":\\\"𝒶\\\",\\\"Assign\\\":\\\"≔\\\",\\\"ast\\\":\\\"*\\\",\\\"asymp\\\":\\\"≈\\\",\\\"asympeq\\\":\\\"≍\\\",\\\"Atilde\\\":\\\"Ã\\\",\\\"atilde\\\":\\\"ã\\\",\\\"Auml\\\":\\\"Ä\\\",\\\"auml\\\":\\\"ä\\\",\\\"awconint\\\":\\\"∳\\\",\\\"awint\\\":\\\"⨑\\\",\\\"backcong\\\":\\\"≌\\\",\\\"backepsilon\\\":\\\"϶\\\",\\\"backprime\\\":\\\"\\\",\\\"backsim\\\":\\\"∽\\\",\\\"backsimeq\\\":\\\"⋍\\\",\\\"Backslash\\\":\\\"\\\",\\\"Barv\\\":\\\"⫧\\\",\\\"barvee\\\":\\\"⊽\\\",\\\"barwed\\\":\\\"⌅\\\",\\\"Barwed\\\":\\\"⌆\\\",\\\"barwedge\\\":\\\"⌅\\\",\\\"bbrk\\\":\\\"⎵\\\",\\\"bbrktbrk\\\":\\\"⎶\\\",\\\"bcong\\\":\\\"≌\\\",\\\"Bcy\\\":\\\"Б\\\",\\\"bcy\\\":\\\"б\\\",\\\"bdquo\\\":\\\"„\\\",\\\"becaus\\\":\\\"∵\\\",\\\"because\\\":\\\"∵\\\",\\\"Because\\\":\\\"∵\\\",\\\"bemptyv\\\":\\\"⦰\\\",\\\"bepsi\\\":\\\"϶\\\",\\\"bernou\\\":\\\"\\\",\\\"Bernoullis\\\":\\\"\\\",\\\"Beta\\\":\\\"Β\\\",\\\"beta\\\":\\\"β\\\",\\\"beth\\\":\\\"ℶ\\\",\\\"between\\\":\\\"≬\\\",\\\"Bfr\\\":\\\"𝔅\\\",\\\"bfr\\\":\\\"𝔟\\\",\\\"bigcap\\\":\\\"⋂\\\",\\\"bigcirc\\\":\\\"◯\\\",\\\"bigcup\\\":\\\"\\\",\\\"bigodot\\\":\\\"⨀\\\",\\\"bigoplus\\\":\\\"⨁\\\",\\\"bigotimes\\\":\\\"⨂\\\",\\\"bigsqcup\\\":\\\"⨆\\\",\\\"bigstar\\\":\\\"★\\\",\\\"bigtriangledown\\\":\\\"▽\\\",\\\"bigtriangleup\\\":\\\"△\\\",\\\"biguplus\\\":\\\"⨄\\\",\\\"bigvee\\\":\\\"\\\",\\\"bigwedge\\\":\\\"⋀\\\",\\\"bkarow\\\":\\\"⤍\\\",\\\"blacklozenge\\\":\\\"⧫\\\",\\\"blacksquare\\\":\\\"▪\\\",\\\"blacktriangle\\\":\\\"▴\\\",\\\"blacktriangledown\\\":\\\"▾\\\",\\\"blacktriangleleft\\\":\\\"◂\\\",\\\"blacktriangleright\\\":\\\"▸\\\",\\\"blank\\\":\\\"␣\\\",\\\"blk12\\\":\\\"▒\\\",\\\"blk14\\\":\\\"░\\\",\\\"blk34\\\":\\\"▓\\\",\\\"block\\\":\\\"█\\\",\\\"bne\\\":\\\"=⃥\\\",\\\"bnequiv\\\":\\\"≡⃥\\\",\\\"bNot\\\":\\\"⫭\\\",\\\"bnot\\\":\\\"⌐\\\",\\\"Bopf\\\":\\\"𝔹\\\",\\\"bopf\\\":\\\"𝕓\\\",\\\"bot\\\":\\\"⊥\\\",\\\"bottom\\\":\\\"⊥\\\",\\\"bowtie\\\":\\\"⋈\\\",\\\"boxbox\\\":\\\"⧉\\\",\\\"boxdl\\\":\\\"┐\\\",\\\"boxdL\\\":\\\"╕\\\",\\\"boxDl\\\":\\\"╖\\\",\\\"boxDL\\\":\\\"╗\\\",\\\"boxdr\\\":\\\"┌\\\",\\\"boxdR\\\":\\\"╒\\\",\\\"boxDr\\\":\\\"╓\\\",\\\"boxDR\\\":\\\"╔\\\",\\\"boxh\\\":\\\"─\\\",\\\"boxH\\\":\\\"═\\\",\\\"boxhd\\\":\\\"┬\\\",\\\"boxHd\\\":\\\"╤\\\",\\\"boxhD\\\":\\\"╥\\\",\\\"boxHD\\\":\\\"╦\\\",\\\"boxhu\\\":\\\"┴\\\",\\\"boxHu\\\":\\\"╧\\\",\\\"boxhU\\\":\\\"╨\\\",\\\"boxHU\\\":\\\"╩\\\",\\\"boxminus\\\":\\\"⊟\\\",\\\"boxplus\\\":\\\"⊞\\\",\\\"boxtimes\\\":\\\"⊠\\\",\\\"boxul\\\":\\\"┘\\\",\\\"boxuL\\\":\\\"╛\\\",\\\"boxUl\\\":\\\"╜\\\",\\\"boxUL\\\":\\\"╝\\\",\\\"boxur\\\":\\\"└\\\",\\\"boxuR\\\":\\\"╘\\\",\\\"boxUr\\\":\\\"╙\\\",\\\"boxUR\\\":\\\"╚\\\",\\\"boxv\\\":\\\"│\\\",\\\"boxV\\\":\\\"║\\\",\\\"boxvh\\\":\\\"┼\\\",\\\"boxvH\\\":\\\"╪\\\",\\\"boxVh\\\":\\\"╫\\\",\\\"boxVH\\\":\\\"╬\\\",\\\"boxvl\\\":\\\"┤\\\",\\\"boxvL\\\":\\\"╡\\\",\\\"boxVl\\\":\\\"╢\\\",\\\"boxVL\\\":\\\"╣\\\",\\\"boxvr\\\":\\\"├\\\",\\\"boxvR\\\":\\\"╞\\\",\\\"boxVr\\\":\\\"╟\\\",\\\"boxVR\\\":\\\"╠\\\",\\\"bprime\\\":\\\"\\\",\\\"breve\\\":\\\"˘\\\",\\\"Breve\\\":\\\"˘\\\",\\\"brvbar\\\":\\\"¦\\\",\\\"bscr\\\":\\\"𝒷\\\",\\\"Bscr\\\":\\\"\\\",\\\"bsemi\\\":\\\"⁏\\\",\\\"bsim\\\":\\\"∽\\\",\\\"bsime\\\":\\\"⋍\\\",\\\"bsolb\\\":\\\"⧅\\\",\\\"bsol\\\":\\\"\\\\\\\\\\\",\\\"bsolhsub\\\":\\\"⟈\\\",\\\"bull\\\":\\\"•\\\",\\\"bullet\\\":\\\"•\\\",\\\"bump\\\":\\\"≎\\\",\\\"bumpE\\\":\\\"⪮\\\",\\\"bumpe\\\":\\\"≏\\\",\\\"Bumpeq\\\":\\\"≎\\\",\\\"bumpeq\\\":\\\"≏\\\",\\\"Cacute\\\":\\\"Ć\\\",\\\"cacute\\\":\\\"ć\\\",\\\"capand\\\":\\\"⩄\\\",\\\"capbrcup\\\":\\\"⩉\\\",\\\"capcap\\\":\\\"⩋\\\",\\\"cap\\\":\\\"∩\\\",\\\"Cap\\\":\\\"⋒\\\",\\\"capcup\\\":\\\"⩇\\\",\\\"capdot\\\":\\\"⩀\\\",\\\"CapitalDifferentialD\\\":\\\"\\\",\\\"caps\\\":\\\"∩︀\\\",\\\"caret\\\":\\\"\\\",\\\"caron\\\":\\\"ˇ\\\",\\\"Cayleys\\\":\\\"\\\",\\\"ccaps\\\":\\\"⩍\\\",\\\"Ccaron\\\":\\\"Č\\\",\\\"ccaron\\\":\\\"č\\\",\\\"Ccedil\\\":\\\"Ç\\\",\\\"ccedil\\\":\\\"ç\\\",\\\"Ccirc\\\":\\\"Ĉ\\\",\\\"ccirc\\\":\\\"ĉ\\\",\\\"Cconint\\\":\\\"∰\\\",\\\"ccups\\\":\\\"⩌\\\",\\\"ccupssm\\\":\\\"⩐\\\",\\\"Cdot\\\":\\\"Ċ\\\",\\\"cdot\\\":\\\"ċ\\\",\\\"cedil\\\":\\\"¸\\\",\\\"Cedilla\\\":\\\"¸\\\",\\\"cemptyv\\\":\\\"⦲\\\",\\\"cent\\\":\\\"¢\\\",\\\"centerdot\\\":\\\"·\\\",\\\"CenterDot\\\":\\\"·\\\",\\\"cfr\\\":\\\"𝔠\\\",\\\"Cfr\\\":\\\"\\\",\\\"CHcy\\\":\\\"Ч\\\",\\\"chcy\\\":\\\"ч\\\",\\\"check\\\":\\\"✓\\\",\\\"checkmark\\\":\\\"✓\\\",\\\"Chi\\\":\\\"Χ\\\",\\\"chi\\\":\\\"χ\\\",\\\"circ\\\":\\\"ˆ\\\",\\\"circeq\\\":\\\"≗\\\",\\\"circlearrowleft\\\":\\\"↺\\\",\\\"circlearrowright\\\":\\\"↻\\\",\\\"circledast\\\":\\\"⊛\\\",\\\"circledcirc\\\":\\\"⊚\\\",\\\"circleddash\\\":\\\"⊝\\\",\\\"CircleDot\\\":\\\"⊙\\\",\\\"circledR\\\":\\\"®\\\",\\\"circledS\\\":\\\"Ⓢ\\\",\\\"CircleMinus\\\":\\\"⊖\\\",\\\"CirclePlus\\\":\\\"⊕\\\",\\\"CircleTimes\\\":\\\"⊗\\\",\\\"cir\\\":\\\"○\\\",\\\"cirE\\\":\\\"⧃\\\",\\\"cire\\\":\\\"≗\\\",\\\"cirfnint\\\":\\\"⨐\\\",\\\"cirmid\\\":\\\"⫯\\\",\\\"cirscir\\\":\\\"⧂\\\",\\\"ClockwiseContourIntegral\\\":\\\"∲\\\",\\\"CloseCurlyDoubleQuote\\\":\\\"”\\\",\\\"CloseCurlyQuote\\\":\\\"\\\",\\\"clubs\\\":\\\"♣\\\",\\\"clubsuit\\\":\\\"♣\\\",\\\"colon\\\":\\\":\\\",\\\"Colon\\\":\\\"∷\\\",\\\"Colone\\\":\\\"⩴\\\",\\\"colone\\\":\\\"≔\\\",\\\"coloneq\\\":\\\"≔\\\",\\\"comma\\\":\\\",\\\",\\\"commat\\\":\\\"@\\\",\\\"comp\\\":\\\"∁\\\",\\\"compfn\\\":\\\"∘\\\",\\\"complement\\\":\\\"∁\\\",\\\"complexes\\\":\\\"\\\",\\\"cong\\\":\\\"≅\\\",\\\"congdot\\\":\\\"⩭\\\",\\\"Congruent\\\":\\\"≡\\\",\\\"conint\\\":\\\"∮\\\",\\\"Conint\\\":\\\"∯\\\",\\\"ContourIntegral\\\":\\\"∮\\\",\\\"copf\\\":\\\"𝕔\\\",\\\"Copf\\\":\\\"\\\",\\\"coprod\\\":\\\"∐\\\",\\\"Coproduct\\\":\\\"∐\\\",\\\"copy\\\":\\\"©\\\",\\\"COPY\\\":\\\"©\\\",\\\"copysr\\\":\\\"℗\\\",\\\"CounterClockwiseContourIntegral\\\":\\\"∳\\\",\\\"crarr\\\":\\\"↵\\\",\\\"cross\\\":\\\"✗\\\",\\\"Cross\\\":\\\"\\\",\\\"Cscr\\\":\\\"𝒞\\\",\\\"cscr\\\":\\\"𝒸\\\",\\\"csub\\\":\\\"⫏\\\",\\\"csube\\\":\\\"⫑\\\",\\\"csup\\\":\\\"⫐\\\",\\\"csupe\\\":\\\"⫒\\\",\\\"ctdot\\\":\\\"⋯\\\",\\\"cudarrl\\\":\\\"⤸\\\",\\\"cudarrr\\\":\\\"⤵\\\",\\\"cuepr\\\":\\\"⋞\\\",\\\"cuesc\\\":\\\"⋟\\\",\\\"cularr\\\":\\\"↶\\\",\\\"cularrp\\\":\\\"⤽\\\",\\\"cupbrcap\\\":\\\"⩈\\\",\\\"cupcap\\\":\\\"⩆\\\",\\\"CupCap\\\":\\\"≍\\\",\\\"cup\\\":\\\"\\\",\\\"Cup\\\":\\\"⋓\\\",\\\"cupcup\\\":\\\"⩊\\\",\\\"cupdot\\\":\\\"⊍\\\",\\\"cupor\\\":\\\"⩅\\\",\\\"cups\\\":\\\"︀\\\",\\\"curarr\\\":\\\"↷\\\",\\\"curarrm\\\":\\\"⤼\\\",\\\"curlyeqprec\\\":\\\"⋞\\\",\\\"curlyeqsucc\\\":\\\"⋟\\\",\\\"curlyvee\\\":\\\"⋎\\\",\\\"curlywedge\\\":\\\"⋏\\\",\\\"curren\\\":\\\"¤\\\",\\\"curvearrowleft\\\":\\\"↶\\\",\\\"curvearrowright\\\":\\\"↷\\\",\\\"cuvee\\\":\\\"⋎\\\",\\\"cuwed\\\":\\\"⋏\\\",\\\"cwconint\\\":\\\"∲\\\",\\\"cwint\\\":\\\"∱\\\",\\\"cylcty\\\":\\\"⌭\\\",\\\"dagger\\\":\\\"†\\\",\\\"Dagger\\\":\\\"‡\\\",\\\"daleth\\\":\\\"ℸ\\\",\\\"darr\\\":\\\"↓\\\",\\\"Darr\\\":\\\"↡\\\",\\\"dArr\\\":\\\"⇓\\\",\\\"dash\\\":\\\"\\\",\\\"Dashv\\\":\\\"⫤\\\",\\\"dashv\\\":\\\"⊣\\\",\\\"dbkarow\\\":\\\"⤏\\\",\\\"dblac\\\":\\\"˝\\\",\\\"Dcaron\\\":\\\"Ď\\\",\\\"dcaron\\\":\\\"ď\\\",\\\"Dcy\\\":\\\"Д\\\",\\\"dcy\\\":\\\"д\\\",\\\"ddagger\\\":\\\"‡\\\",\\\"ddarr\\\":\\\"⇊\\\",\\\"DD\\\":\\\"\\\",\\\"dd\\\":\\\"\\\",\\\"DDotrahd\\\":\\\"⤑\\\",\\\"ddotseq\\\":\\\"⩷\\\",\\\"deg\\\":\\\"°\\\",\\\"Del\\\":\\\"∇\\\",\\\"Delta\\\":\\\"Δ\\\",\\\"delta\\\":\\\"δ\\\",\\\"demptyv\\\":\\\"⦱\\\",\\\"dfisht\\\":\\\"⥿\\\",\\\"Dfr\\\":\\\"𝔇\\\",\\\"dfr\\\":\\\"𝔡\\\",\\\"dHar\\\":\\\"⥥\\\",\\\"dharl\\\":\\\"⇃\\\",\\\"dharr\\\":\\\"⇂\\\",\\\"DiacriticalAcute\\\":\\\"´\\\",\\\"DiacriticalDot\\\":\\\"˙\\\",\\\"DiacriticalDoubleAcute\\\":\\\"˝\\\",\\\"DiacriticalGrave\\\":\\\"`\\\",\\\"DiacriticalTilde\\\":\\\"˜\\\",\\\"diam\\\":\\\"⋄\\\",\\\"diamond\\\":\\\"⋄\\\",\\\"Diamond\\\":\\\"⋄\\\",\\\"diamondsuit\\\":\\\"♦\\\",\\\"diams\\\":\\\"♦\\\",\\\"die\\\":\\\"¨\\\",\\\"DifferentialD\\\":\\\"\\\",\\\"digamma\\\":\\\"ϝ\\\",\\\"disin\\\":\\\"⋲\\\",\\\"div\\\":\\\"÷\\\",\\\"divide\\\":\\\"÷\\\",\\\"divideontimes\\\":\\\"⋇\\\",\\\"divonx\\\":\\\"⋇\\\",\\\"DJcy\\\":\\\"Ђ\\\",\\\"djcy\\\":\\\"ђ\\\",\\\"dlcorn\\\":\\\"⌞\\\",\\\"dlcrop\\\":\\\"⌍\\\",\\\"dollar\\\":\\\"$\\\",\\\"Dopf\\\":\\\"𝔻\\\",\\\"dopf\\\":\\\"𝕕\\\",\\\"Dot\\\":\\\"¨\\\",\\\"dot\\\":\\\"˙\\\",\\\"DotDot\\\":\\\"⃜\\\",\\\"doteq\\\":\\\"≐\\\",\\\"doteqdot\\\":\\\"≑\\\",\\\"DotEqual\\\":\\\"≐\\\",\\\"dotminus\\\":\\\"∸\\\",\\\"dotplus\\\":\\\"∔\\\",\\\"dotsquare\\\":\\\"⊡\\\",\\\"doublebarwedge\\\":\\\"⌆\\\",\\\"DoubleContourIntegral\\\":\\\"∯\\\",\\\"DoubleDot\\\":\\\"¨\\\",\\\"DoubleDownArrow\\\":\\\"⇓\\\",\\\"DoubleLeftArrow\\\":\\\"⇐\\\",\\\"DoubleLeftRightArrow\\\":\\\"⇔\\\",\\\"DoubleLeftTee\\\":\\\"⫤\\\",\\\"DoubleLongLeftArrow\\\":\\\"⟸\\\",\\\"DoubleLongLeftRightArrow\\\":\\\"⟺\\\",\\\"DoubleLongRightArrow\\\":\\\"⟹\\\",\\\"DoubleRightArrow\\\":\\\"⇒\\\",\\\"DoubleRightTee\\\":\\\"⊨\\\",\\\"DoubleUpArrow\\\":\\\"⇑\\\",\\\"DoubleUpDownArrow\\\":\\\"⇕\\\",\\\"DoubleVerticalBar\\\":\\\"∥\\\",\\\"DownArrowBar\\\":\\\"⤓\\\",\\\"downarrow\\\":\\\"↓\\\",\\\"DownArrow\\\":\\\"↓\\\",\\\"Downarrow\\\":\\\"⇓\\\",\\\"DownArrowUpArrow\\\":\\\"⇵\\\",\\\"DownBreve\\\":\\\"̑\\\",\\\"downdownarrows\\\":\\\"⇊\\\",\\\"downharpoonleft\\\":\\\"⇃\\\",\\\"downharpoonright\\\":\\\"⇂\\\",\\\"DownLeftRightVector\\\":\\\"⥐\\\",\\\"DownLeftTeeVector\\\":\\\"⥞\\\",\\\"DownLeftVectorBar\\\":\\\"⥖\\\",\\\"DownLeftVector\\\":\\\"↽\\\",\\\"DownRightTeeVector\\\":\\\"⥟\\\",\\\"DownRightVectorBar\\\":\\\"⥗\\\",\\\"DownRightVector\\\":\\\"⇁\\\",\\\"DownTeeArrow\\\":\\\"↧\\\",\\\"DownTee\\\":\\\"\\\",\\\"drbkarow\\\":\\\"⤐\\\",\\\"drcorn\\\":\\\"⌟\\\",\\\"drcrop\\\":\\\"⌌\\\",\\\"Dscr\\\":\\\"𝒟\\\",\\\"dscr\\\":\\\"𝒹\\\",\\\"DScy\\\":\\\"Ѕ\\\",\\\"dscy\\\":\\\"ѕ\\\",\\\"dsol\\\":\\\"⧶\\\",\\\"Dstrok\\\":\\\"Đ\\\",\\\"dstrok\\\":\\\"đ\\\",\\\"dtdot\\\":\\\"⋱\\\",\\\"dtri\\\":\\\"▿\\\",\\\"dtrif\\\":\\\"▾\\\",\\\"duarr\\\":\\\"⇵\\\",\\\"duhar\\\":\\\"⥯\\\",\\\"dwangle\\\":\\\"⦦\\\",\\\"DZcy\\\":\\\"Џ\\\",\\\"dzcy\\\":\\\"џ\\\",\\\"dzigrarr\\\":\\\"⟿\\\",\\\"Eacute\\\":\\\"É\\\",\\\"eacute\\\":\\\"é\\\",\\\"easter\\\":\\\"⩮\\\",\\\"Ecaron\\\":\\\"Ě\\\",\\\"ecaron\\\":\\\"ě\\\",\\\"Ecirc\\\":\\\"Ê\\\",\\\"ecirc\\\":\\\"ê\\\",\\\"ecir\\\":\\\"≖\\\",\\\"ecolon\\\":\\\"≕\\\",\\\"Ecy\\\":\\\"Э\\\",\\\"ecy\\\":\\\"э\\\",\\\"eDDot\\\":\\\"⩷\\\",\\\"Edot\\\":\\\"Ė\\\",\\\"edot\\\":\\\"ė\\\",\\\"eDot\\\":\\\"≑\\\",\\\"ee\\\":\\\"\\\",\\\"efDot\\\":\\\"≒\\\",\\\"Efr\\\":\\\"𝔈\\\",\\\"efr\\\":\\\"𝔢\\\",\\\"eg\\\":\\\"⪚\\\",\\\"Egrave\\\":\\\"È\\\",\\\"egrave\\\":\\\"è\\\",\\\"egs\\\":\\\"⪖\\\",\\\"egsdot\\\":\\\"⪘\\\",\\\"el\\\":\\\"⪙\\\",\\\"Element\\\":\\\"∈\\\",\\\"elinters\\\":\\\"⏧\\\",\\\"ell\\\":\\\"\\\",\\\"els\\\":\\\"⪕\\\",\\\"elsdot\\\":\\\"⪗\\\",\\\"Emacr\\\":\\\"Ē\\\",\\\"emacr\\\":\\\"ē\\\",\\\"empty\\\":\\\"∅\\\",\\\"emptyset\\\":\\\"∅\\\",\\\"EmptySmallSquare\\\":\\\"◻\\\",\\\"emptyv\\\":\\\"∅\\\",\\\"EmptyVerySmallSquare\\\":\\\"▫\\\",\\\"emsp13\\\":\\\"\\\",\\\"emsp14\\\":\\\"\\\",\\\"emsp\\\":\\\"\\\",\\\"ENG\\\":\\\"Ŋ\\\",\\\"eng\\\":\\\"ŋ\\\",\\\"ensp\\\":\\\"\\\",\\\"Eogon\\\":\\\"Ę\\\",\\\"eogon\\\":\\\"ę\\\",\\\"Eopf\\\":\\\"𝔼\\\",\\\"eopf\\\":\\\"𝕖\\\",\\\"epar\\\":\\\"⋕\\\",\\\"eparsl\\\":\\\"⧣\\\",\\\"eplus\\\":\\\"⩱\\\",\\\"epsi\\\":\\\"ε\\\",\\\"Epsilon\\\":\\\"Ε\\\",\\\"epsilon\\\":\\\"ε\\\",\\\"epsiv\\\":\\\"ϵ\\\",\\\"eqcirc\\\":\\\"≖\\\",\\\"eqcolon\\\":\\\"≕\\\",\\\"eqsim\\\":\\\"≂\\\",\\\"eqslantgtr\\\":\\\"⪖\\\",\\\"eqslantless\\\":\\\"⪕\\\",\\\"Equal\\\":\\\"⩵\\\",\\\"equals\\\":\\\"=\\\",\\\"EqualTilde\\\":\\\"≂\\\",\\\"equest\\\":\\\"≟\\\",\\\"Equilibrium\\\":\\\"⇌\\\",\\\"equiv\\\":\\\"≡\\\",\\\"equivDD\\\":\\\"⩸\\\",\\\"eqvparsl\\\":\\\"⧥\\\",\\\"erarr\\\":\\\"⥱\\\",\\\"erDot\\\":\\\"≓\\\",\\\"escr\\\":\\\"\\\",\\\"Escr\\\":\\\"\\\",\\\"esdot\\\":\\\"≐\\\",\\\"Esim\\\":\\\"⩳\\\",\\\"esim\\\":\\\"≂\\\",\\\"Eta\\\":\\\"Η\\\",\\\"eta\\\":\\\"η\\\",\\\"ETH\\\":\\\"Ð\\\",\\\"eth\\\":\\\"ð\\\",\\\"Euml\\\":\\\"Ë\\\",\\\"euml\\\":\\\"ë\\\",\\\"euro\\\":\\\"€\\\",\\\"excl\\\":\\\"!\\\",\\\"exist\\\":\\\"∃\\\",\\\"Exists\\\":\\\"∃\\\",\\\"expectation\\\":\\\"\\\",\\\"exponentiale\\\":\\\"\\\",\\\"ExponentialE\\\":\\\"\\\",\\\"fallingdotseq\\\":\\\"≒\\\",\\\"Fcy\\\":\\\"Ф\\\",\\\"fcy\\\":\\\"ф\\\",\\\"female\\\":\\\"♀\\\",\\\"ffilig\\\":\\\"ffi\\\",\\\"fflig\\\":\\\"ff\\\",\\\"ffllig\\\":\\\"ffl\\\",\\\"Ffr\\\":\\\"𝔉\\\",\\\"ffr\\\":\\\"𝔣\\\",\\\"filig\\\":\\\"fi\\\",\\\"FilledSmallSquare\\\":\\\"◼\\\",\\\"FilledVerySmallSquare\\\":\\\"▪\\\",\\\"fjlig\\\":\\\"fj\\\",\\\"flat\\\":\\\"♭\\\",\\\"fllig\\\":\\\"fl\\\",\\\"fltns\\\":\\\"▱\\\",\\\"fnof\\\":\\\"ƒ\\\",\\\"Fopf\\\":\\\"𝔽\\\",\\\"fopf\\\":\\\"𝕗\\\",\\\"forall\\\":\\\"∀\\\",\\\"ForAll\\\":\\\"∀\\\",\\\"fork\\\":\\\"⋔\\\",\\\"forkv\\\":\\\"⫙\\\",\\\"Fouriertrf\\\":\\\"\\\",\\\"fpartint\\\":\\\"⨍\\\",\\\"frac12\\\":\\\"½\\\",\\\"frac13\\\":\\\"⅓\\\",\\\"frac14\\\":\\\"¼\\\",\\\"frac15\\\":\\\"⅕\\\",\\\"frac16\\\":\\\"⅙\\\",\\\"frac18\\\":\\\"⅛\\\",\\\"frac23\\\":\\\"⅔\\\",\\\"frac25\\\":\\\"⅖\\\",\\\"frac34\\\":\\\"¾\\\",\\\"frac35\\\":\\\"⅗\\\",\\\"frac38\\\":\\\"⅜\\\",\\\"frac45\\\":\\\"⅘\\\",\\\"frac56\\\":\\\"⅚\\\",\\\"frac58\\\":\\\"⅝\\\",\\\"frac78\\\":\\\"⅞\\\",\\\"frasl\\\":\\\"\\\",\\\"frown\\\":\\\"⌢\\\",\\\"fscr\\\":\\\"𝒻\\\",\\\"Fscr\\\":\\\"\\\",\\\"gacute\\\":\\\"ǵ\\\",\\\"Gamma\\\":\\\"Γ\\\",\\\"gamma\\\":\\\"γ\\\",\\\"Gammad\\\":\\\"Ϝ\\\",\\\"gammad\\\":\\\"ϝ\\\",\\\"gap\\\":\\\"⪆\\\",\\\"Gbreve\\\":\\\"Ğ\\\",\\\"gbreve\\\":\\\"ğ\\\",\\\"Gcedil\\\":\\\"Ģ\\\",\\\"Gcirc\\\":\\\"Ĝ\\\",\\\"gcirc\\\":\\\"ĝ\\\",\\\"Gcy\\\":\\\"Г\\\",\\\"gcy\\\":\\\"г\\\",\\\"Gdot\\\":\\\"Ġ\\\",\\\"gdot\\\":\\\"ġ\\\",\\\"ge\\\":\\\"≥\\\",\\\"gE\\\":\\\"≧\\\",\\\"gEl\\\":\\\"⪌\\\",\\\"gel\\\":\\\"⋛\\\",\\\"geq\\\":\\\"≥\\\",\\\"geqq\\\":\\\"≧\\\",\\\"geqslant\\\":\\\"⩾\\\",\\\"gescc\\\":\\\"⪩\\\",\\\"ges\\\":\\\"⩾\\\",\\\"gesdot\\\":\\\"⪀\\\",\\\"gesdoto\\\":\\\"⪂\\\",\\\"gesdotol\\\":\\\"⪄\\\",\\\"gesl\\\":\\\"⋛︀\\\",\\\"gesles\\\":\\\"⪔\\\",\\\"Gfr\\\":\\\"𝔊\\\",\\\"gfr\\\":\\\"𝔤\\\",\\\"gg\\\":\\\"≫\\\",\\\"Gg\\\":\\\"⋙\\\",\\\"ggg\\\":\\\"⋙\\\",\\\"gimel\\\":\\\"ℷ\\\",\\\"GJcy\\\":\\\"Ѓ\\\",\\\"gjcy\\\":\\\"ѓ\\\",\\\"gla\\\":\\\"⪥\\\",\\\"gl\\\":\\\"≷\\\",\\\"glE\\\":\\\"⪒\\\",\\\"glj\\\":\\\"⪤\\\",\\\"gnap\\\":\\\"⪊\\\",\\\"gnapprox\\\":\\\"⪊\\\",\\\"gne\\\":\\\"⪈\\\",\\\"gnE\\\":\\\"≩\\\",\\\"gneq\\\":\\\"⪈\\\",\\\"gneqq\\\":\\\"≩\\\",\\\"gnsim\\\":\\\"⋧\\\",\\\"Gopf\\\":\\\"𝔾\\\",\\\"gopf\\\":\\\"𝕘\\\",\\\"grave\\\":\\\"`\\\",\\\"GreaterEqual\\\":\\\"≥\\\",\\\"GreaterEqualLess\\\":\\\"⋛\\\",\\\"GreaterFullEqual\\\":\\\"≧\\\",\\\"GreaterGreater\\\":\\\"⪢\\\",\\\"GreaterLess\\\":\\\"≷\\\",\\\"GreaterSlantEqual\\\":\\\"⩾\\\",\\\"GreaterTilde\\\":\\\"≳\\\",\\\"Gscr\\\":\\\"𝒢\\\",\\\"gscr\\\":\\\"\\\",\\\"gsim\\\":\\\"≳\\\",\\\"gsime\\\":\\\"⪎\\\",\\\"gsiml\\\":\\\"⪐\\\",\\\"gtcc\\\":\\\"⪧\\\",\\\"gtcir\\\":\\\"⩺\\\",\\\"gt\\\":\\\">\\\",\\\"GT\\\":\\\">\\\",\\\"Gt\\\":\\\"≫\\\",\\\"gtdot\\\":\\\"⋗\\\",\\\"gtlPar\\\":\\\"⦕\\\",\\\"gtquest\\\":\\\"⩼\\\",\\\"gtrapprox\\\":\\\"⪆\\\",\\\"gtrarr\\\":\\\"⥸\\\",\\\"gtrdot\\\":\\\"⋗\\\",\\\"gtreqless\\\":\\\"⋛\\\",\\\"gtreqqless\\\":\\\"⪌\\\",\\\"gtrless\\\":\\\"≷\\\",\\\"gtrsim\\\":\\\"≳\\\",\\\"gvertneqq\\\":\\\"≩︀\\\",\\\"gvnE\\\":\\\"≩︀\\\",\\\"Hacek\\\":\\\"ˇ\\\",\\\"hairsp\\\":\\\"\\\",\\\"half\\\":\\\"½\\\",\\\"hamilt\\\":\\\"\\\",\\\"HARDcy\\\":\\\"Ъ\\\",\\\"hardcy\\\":\\\"ъ\\\",\\\"harrcir\\\":\\\"⥈\\\",\\\"harr\\\":\\\"↔\\\",\\\"hArr\\\":\\\"⇔\\\",\\\"harrw\\\":\\\"↭\\\",\\\"Hat\\\":\\\"^\\\",\\\"hbar\\\":\\\"ℏ\\\",\\\"Hcirc\\\":\\\"Ĥ\\\",\\\"hcirc\\\":\\\"ĥ\\\",\\\"hearts\\\":\\\"♥\\\",\\\"heartsuit\\\":\\\"♥\\\",\\\"hellip\\\":\\\"…\\\",\\\"hercon\\\":\\\"⊹\\\",\\\"hfr\\\":\\\"𝔥\\\",\\\"Hfr\\\":\\\"\\\",\\\"HilbertSpace\\\":\\\"\\\",\\\"hksearow\\\":\\\"⤥\\\",\\\"hkswarow\\\":\\\"⤦\\\",\\\"hoarr\\\":\\\"⇿\\\",\\\"homtht\\\":\\\"∻\\\",\\\"hookleftarrow\\\":\\\"↩\\\",\\\"hookrightarrow\\\":\\\"↪\\\",\\\"hopf\\\":\\\"𝕙\\\",\\\"Hopf\\\":\\\"\\\",\\\"horbar\\\":\\\"―\\\",\\\"HorizontalLine\\\":\\\"─\\\",\\\"hscr\\\":\\\"𝒽\\\",\\\"Hscr\\\":\\\"\\\",\\\"hslash\\\":\\\"ℏ\\\",\\\"Hstrok\\\":\\\"Ħ\\\",\\\"hstrok\\\":\\\"ħ\\\",\\\"HumpDownHump\\\":\\\"≎\\\",\\\"HumpEqual\\\":\\\"≏\\\",\\\"hybull\\\":\\\"\\\",\\\"hyphen\\\":\\\"\\\",\\\"Iacute\\\":\\\"Í\\\",\\\"iacute\\\":\\\"í\\\",\\\"ic\\\":\\\"\\\",\\\"Icirc\\\":\\\"Î\\\",\\\"icirc\\\":\\\"î\\\",\\\"Icy\\\":\\\"И\\\",\\\"icy\\\":\\\"и\\\",\\\"Idot\\\":\\\"İ\\\",\\\"IEcy\\\":\\\"Е\\\",\\\"iecy\\\":\\\"е\\\",\\\"iexcl\\\":\\\"¡\\\",\\\"iff\\\":\\\"⇔\\\",\\\"ifr\\\":\\\"𝔦\\\",\\\"Ifr\\\":\\\"\\\",\\\"Igrave\\\":\\\"Ì\\\",\\\"igrave\\\":\\\"ì\\\",\\\"ii\\\":\\\"\\\",\\\"iiiint\\\":\\\"⨌\\\",\\\"iiint\\\":\\\"∭\\\",\\\"iinfin\\\":\\\"⧜\\\",\\\"iiota\\\":\\\"℩\\\",\\\"IJlig\\\":\\\"IJ\\\",\\\"ijlig\\\":\\\"ij\\\",\\\"Imacr\\\":\\\"Ī\\\",\\\"imacr\\\":\\\"ī\\\",\\\"image\\\":\\\"\\\",\\\"ImaginaryI\\\":\\\"\\\",\\\"imagline\\\":\\\"\\\",\\\"imagpart\\\":\\\"\\\",\\\"imath\\\":\\\"ı\\\",\\\"Im\\\":\\\"\\\",\\\"imof\\\":\\\"⊷\\\",\\\"imped\\\":\\\"Ƶ\\\",\\\"Implies\\\":\\\"⇒\\\",\\\"incare\\\":\\\"℅\\\",\\\"in\\\":\\\"∈\\\",\\\"infin\\\":\\\"∞\\\",\\\"infintie\\\":\\\"⧝\\\",\\\"inodot\\\":\\\"ı\\\",\\\"intcal\\\":\\\"⊺\\\",\\\"int\\\":\\\"∫\\\",\\\"Int\\\":\\\"∬\\\",\\\"integers\\\":\\\"\\\",\\\"Integral\\\":\\\"∫\\\",\\\"intercal\\\":\\\"⊺\\\",\\\"Intersection\\\":\\\"⋂\\\",\\\"intlarhk\\\":\\\"⨗\\\",\\\"intprod\\\":\\\"⨼\\\",\\\"InvisibleComma\\\":\\\"\\\",\\\"InvisibleTimes\\\":\\\"\\\",\\\"IOcy\\\":\\\"Ё\\\",\\\"iocy\\\":\\\"ё\\\",\\\"Iogon\\\":\\\"Į\\\",\\\"iogon\\\":\\\"į\\\",\\\"Iopf\\\":\\\"𝕀\\\",\\\"iopf\\\":\\\"𝕚\\\",\\\"Iota\\\":\\\"Ι\\\",\\\"iota\\\":\\\"ι\\\",\\\"iprod\\\":\\\"⨼\\\",\\\"iquest\\\":\\\"¿\\\",\\\"iscr\\\":\\\"𝒾\\\",\\\"Iscr\\\":\\\"\\\",\\\"isin\\\":\\\"∈\\\",\\\"isindot\\\":\\\"⋵\\\",\\\"isinE\\\":\\\"⋹\\\",\\\"isins\\\":\\\"⋴\\\",\\\"isinsv\\\":\\\"⋳\\\",\\\"isinv\\\":\\\"∈\\\",\\\"it\\\":\\\"\\\",\\\"Itilde\\\":\\\"Ĩ\\\",\\\"itilde\\\":\\\"ĩ\\\",\\\"Iukcy\\\":\\\"І\\\",\\\"iukcy\\\":\\\"і\\\",\\\"Iuml\\\":\\\"Ï\\\",\\\"iuml\\\":\\\"ï\\\",\\\"Jcirc\\\":\\\"Ĵ\\\",\\\"jcirc\\\":\\\"ĵ\\\",\\\"Jcy\\\":\\\"Й\\\",\\\"jcy\\\":\\\"й\\\",\\\"Jfr\\\":\\\"𝔍\\\",\\\"jfr\\\":\\\"𝔧\\\",\\\"jmath\\\":\\\"ȷ\\\",\\\"Jopf\\\":\\\"𝕁\\\",\\\"jopf\\\":\\\"𝕛\\\",\\\"Jscr\\\":\\\"𝒥\\\",\\\"jscr\\\":\\\"𝒿\\\",\\\"Jsercy\\\":\\\"Ј\\\",\\\"jsercy\\\":\\\"ј\\\",\\\"Jukcy\\\":\\\"Є\\\",\\\"jukcy\\\":\\\"є\\\",\\\"Kappa\\\":\\\"Κ\\\",\\\"kappa\\\":\\\"κ\\\",\\\"kappav\\\":\\\"ϰ\\\",\\\"Kcedil\\\":\\\"Ķ\\\",\\\"kcedil\\\":\\\"ķ\\\",\\\"Kcy\\\":\\\"К\\\",\\\"kcy\\\":\\\"к\\\",\\\"Kfr\\\":\\\"𝔎\\\",\\\"kfr\\\":\\\"𝔨\\\",\\\"kgreen\\\":\\\"ĸ\\\",\\\"KHcy\\\":\\\"Х\\\",\\\"khcy\\\":\\\"х\\\",\\\"KJcy\\\":\\\"Ќ\\\",\\\"kjcy\\\":\\\"ќ\\\",\\\"Kopf\\\":\\\"𝕂\\\",\\\"kopf\\\":\\\"𝕜\\\",\\\"Kscr\\\":\\\"𝒦\\\",\\\"kscr\\\":\\\"𝓀\\\",\\\"lAarr\\\":\\\"⇚\\\",\\\"Lacute\\\":\\\"Ĺ\\\",\\\"lacute\\\":\\\"ĺ\\\",\\\"laemptyv\\\":\\\"⦴\\\",\\\"lagran\\\":\\\"\\\",\\\"Lambda\\\":\\\"Λ\\\",\\\"lambda\\\":\\\"λ\\\",\\\"lang\\\":\\\"⟨\\\",\\\"Lang\\\":\\\"⟪\\\",\\\"langd\\\":\\\"⦑\\\",\\\"langle\\\":\\\"⟨\\\",\\\"lap\\\":\\\"⪅\\\",\\\"Laplacetrf\\\":\\\"\\\",\\\"laquo\\\":\\\"«\\\",\\\"larrb\\\":\\\"⇤\\\",\\\"larrbfs\\\":\\\"⤟\\\",\\\"larr\\\":\\\"←\\\",\\\"Larr\\\":\\\"↞\\\",\\\"lArr\\\":\\\"⇐\\\",\\\"larrfs\\\":\\\"⤝\\\",\\\"larrhk\\\":\\\"↩\\\",\\\"larrlp\\\":\\\"↫\\\",\\\"larrpl\\\":\\\"⤹\\\",\\\"larrsim\\\":\\\"⥳\\\",\\\"larrtl\\\":\\\"↢\\\",\\\"latail\\\":\\\"⤙\\\",\\\"lAtail\\\":\\\"⤛\\\",\\\"lat\\\":\\\"⪫\\\",\\\"late\\\":\\\"⪭\\\",\\\"lates\\\":\\\"⪭︀\\\",\\\"lbarr\\\":\\\"⤌\\\",\\\"lBarr\\\":\\\"⤎\\\",\\\"lbbrk\\\":\\\"\\\",\\\"lbrace\\\":\\\"{\\\",\\\"lbrack\\\":\\\"[\\\",\\\"lbrke\\\":\\\"⦋\\\",\\\"lbrksld\\\":\\\"⦏\\\",\\\"lbrkslu\\\":\\\"⦍\\\",\\\"Lcaron\\\":\\\"Ľ\\\",\\\"lcaron\\\":\\\"ľ\\\",\\\"Lcedil\\\":\\\"Ļ\\\",\\\"lcedil\\\":\\\"ļ\\\",\\\"lceil\\\":\\\"⌈\\\",\\\"lcub\\\":\\\"{\\\",\\\"Lcy\\\":\\\"Л\\\",\\\"lcy\\\":\\\"л\\\",\\\"ldca\\\":\\\"⤶\\\",\\\"ldquo\\\":\\\"“\\\",\\\"ldquor\\\":\\\"„\\\",\\\"ldrdhar\\\":\\\"⥧\\\",\\\"ldrushar\\\":\\\"⥋\\\",\\\"ldsh\\\":\\\"↲\\\",\\\"le\\\":\\\"≤\\\",\\\"lE\\\":\\\"≦\\\",\\\"LeftAngleBracket\\\":\\\"⟨\\\",\\\"LeftArrowBar\\\":\\\"⇤\\\",\\\"leftarrow\\\":\\\"←\\\",\\\"LeftArrow\\\":\\\"←\\\",\\\"Leftarrow\\\":\\\"⇐\\\",\\\"LeftArrowRightArrow\\\":\\\"⇆\\\",\\\"leftarrowtail\\\":\\\"↢\\\",\\\"LeftCeiling\\\":\\\"⌈\\\",\\\"LeftDoubleBracket\\\":\\\"⟦\\\",\\\"LeftDownTeeVector\\\":\\\"⥡\\\",\\\"LeftDownVectorBar\\\":\\\"⥙\\\",\\\"LeftDownVector\\\":\\\"⇃\\\",\\\"LeftFloor\\\":\\\"⌊\\\",\\\"leftharpoondown\\\":\\\"↽\\\",\\\"leftharpoonup\\\":\\\"↼\\\",\\\"leftleftarrows\\\":\\\"⇇\\\",\\\"leftrightarrow\\\":\\\"↔\\\",\\\"LeftRightArrow\\\":\\\"↔\\\",\\\"Leftrightarrow\\\":\\\"⇔\\\",\\\"leftrightarrows\\\":\\\"⇆\\\",\\\"leftrightharpoons\\\":\\\"⇋\\\",\\\"leftrightsquigarrow\\\":\\\"↭\\\",\\\"LeftRightVector\\\":\\\"⥎\\\",\\\"LeftTeeArrow\\\":\\\"↤\\\",\\\"LeftTee\\\":\\\"⊣\\\",\\\"LeftTeeVector\\\":\\\"⥚\\\",\\\"leftthreetimes\\\":\\\"⋋\\\",\\\"LeftTriangleBar\\\":\\\"⧏\\\",\\\"LeftTriangle\\\":\\\"⊲\\\",\\\"LeftTriangleEqual\\\":\\\"⊴\\\",\\\"LeftUpDownVector\\\":\\\"⥑\\\",\\\"LeftUpTeeVector\\\":\\\"⥠\\\",\\\"LeftUpVectorBar\\\":\\\"⥘\\\",\\\"LeftUpVector\\\":\\\"↿\\\",\\\"LeftVectorBar\\\":\\\"⥒\\\",\\\"LeftVector\\\":\\\"↼\\\",\\\"lEg\\\":\\\"⪋\\\",\\\"leg\\\":\\\"⋚\\\",\\\"leq\\\":\\\"≤\\\",\\\"leqq\\\":\\\"≦\\\",\\\"leqslant\\\":\\\"⩽\\\",\\\"lescc\\\":\\\"⪨\\\",\\\"les\\\":\\\"⩽\\\",\\\"lesdot\\\":\\\"⩿\\\",\\\"lesdoto\\\":\\\"⪁\\\",\\\"lesdotor\\\":\\\"⪃\\\",\\\"lesg\\\":\\\"⋚︀\\\",\\\"lesges\\\":\\\"⪓\\\",\\\"lessapprox\\\":\\\"⪅\\\",\\\"lessdot\\\":\\\"⋖\\\",\\\"lesseqgtr\\\":\\\"⋚\\\",\\\"lesseqqgtr\\\":\\\"⪋\\\",\\\"LessEqualGreater\\\":\\\"⋚\\\",\\\"LessFullEqual\\\":\\\"≦\\\",\\\"LessGreater\\\":\\\"≶\\\",\\\"lessgtr\\\":\\\"≶\\\",\\\"LessLess\\\":\\\"⪡\\\",\\\"lesssim\\\":\\\"≲\\\",\\\"LessSlantEqual\\\":\\\"⩽\\\",\\\"LessTilde\\\":\\\"≲\\\",\\\"lfisht\\\":\\\"⥼\\\",\\\"lfloor\\\":\\\"⌊\\\",\\\"Lfr\\\":\\\"𝔏\\\",\\\"lfr\\\":\\\"𝔩\\\",\\\"lg\\\":\\\"≶\\\",\\\"lgE\\\":\\\"⪑\\\",\\\"lHar\\\":\\\"⥢\\\",\\\"lhard\\\":\\\"↽\\\",\\\"lharu\\\":\\\"↼\\\",\\\"lharul\\\":\\\"⥪\\\",\\\"lhblk\\\":\\\"▄\\\",\\\"LJcy\\\":\\\"Љ\\\",\\\"ljcy\\\":\\\"љ\\\",\\\"llarr\\\":\\\"⇇\\\",\\\"ll\\\":\\\"≪\\\",\\\"Ll\\\":\\\"⋘\\\",\\\"llcorner\\\":\\\"⌞\\\",\\\"Lleftarrow\\\":\\\"⇚\\\",\\\"llhard\\\":\\\"⥫\\\",\\\"lltri\\\":\\\"◺\\\",\\\"Lmidot\\\":\\\"Ŀ\\\",\\\"lmidot\\\":\\\"ŀ\\\",\\\"lmoustache\\\":\\\"⎰\\\",\\\"lmoust\\\":\\\"⎰\\\",\\\"lnap\\\":\\\"⪉\\\",\\\"lnapprox\\\":\\\"⪉\\\",\\\"lne\\\":\\\"⪇\\\",\\\"lnE\\\":\\\"≨\\\",\\\"lneq\\\":\\\"⪇\\\",\\\"lneqq\\\":\\\"≨\\\",\\\"lnsim\\\":\\\"⋦\\\",\\\"loang\\\":\\\"⟬\\\",\\\"loarr\\\":\\\"⇽\\\",\\\"lobrk\\\":\\\"⟦\\\",\\\"longleftarrow\\\":\\\"⟵\\\",\\\"LongLeftArrow\\\":\\\"⟵\\\",\\\"Longleftarrow\\\":\\\"⟸\\\",\\\"longleftrightarrow\\\":\\\"⟷\\\",\\\"LongLeftRightArrow\\\":\\\"⟷\\\",\\\"Longleftrightarrow\\\":\\\"⟺\\\",\\\"longmapsto\\\":\\\"⟼\\\",\\\"longrightarrow\\\":\\\"⟶\\\",\\\"LongRightArrow\\\":\\\"⟶\\\",\\\"Longrightarrow\\\":\\\"⟹\\\",\\\"looparrowleft\\\":\\\"↫\\\",\\\"looparrowright\\\":\\\"↬\\\",\\\"lopar\\\":\\\"⦅\\\",\\\"Lopf\\\":\\\"𝕃\\\",\\\"lopf\\\":\\\"𝕝\\\",\\\"loplus\\\":\\\"⨭\\\",\\\"lotimes\\\":\\\"⨴\\\",\\\"lowast\\\":\\\"\\\",\\\"lowbar\\\":\\\"_\\\",\\\"LowerLeftArrow\\\":\\\"↙\\\",\\\"LowerRightArrow\\\":\\\"↘\\\",\\\"loz\\\":\\\"◊\\\",\\\"lozenge\\\":\\\"◊\\\",\\\"lozf\\\":\\\"⧫\\\",\\\"lpar\\\":\\\"(\\\",\\\"lparlt\\\":\\\"⦓\\\",\\\"lrarr\\\":\\\"⇆\\\",\\\"lrcorner\\\":\\\"⌟\\\",\\\"lrhar\\\":\\\"⇋\\\",\\\"lrhard\\\":\\\"⥭\\\",\\\"lrm\\\":\\\"\\\",\\\"lrtri\\\":\\\"⊿\\\",\\\"lsaquo\\\":\\\"\\\",\\\"lscr\\\":\\\"𝓁\\\",\\\"Lscr\\\":\\\"\\\",\\\"lsh\\\":\\\"↰\\\",\\\"Lsh\\\":\\\"↰\\\",\\\"lsim\\\":\\\"≲\\\",\\\"lsime\\\":\\\"⪍\\\",\\\"lsimg\\\":\\\"⪏\\\",\\\"lsqb\\\":\\\"[\\\",\\\"lsquo\\\":\\\"\\\",\\\"lsquor\\\":\\\"\\\",\\\"Lstrok\\\":\\\"Ł\\\",\\\"lstrok\\\":\\\"ł\\\",\\\"ltcc\\\":\\\"⪦\\\",\\\"ltcir\\\":\\\"⩹\\\",\\\"lt\\\":\\\"<\\\",\\\"LT\\\":\\\"<\\\",\\\"Lt\\\":\\\"≪\\\",\\\"ltdot\\\":\\\"⋖\\\",\\\"lthree\\\":\\\"⋋\\\",\\\"ltimes\\\":\\\"⋉\\\",\\\"ltlarr\\\":\\\"⥶\\\",\\\"ltquest\\\":\\\"⩻\\\",\\\"ltri\\\":\\\"◃\\\",\\\"ltrie\\\":\\\"⊴\\\",\\\"ltrif\\\":\\\"◂\\\",\\\"ltrPar\\\":\\\"⦖\\\",\\\"lurdshar\\\":\\\"⥊\\\",\\\"luruhar\\\":\\\"⥦\\\",\\\"lvertneqq\\\":\\\"≨︀\\\",\\\"lvnE\\\":\\\"≨︀\\\",\\\"macr\\\":\\\"¯\\\",\\\"male\\\":\\\"♂\\\",\\\"malt\\\":\\\"✠\\\",\\\"maltese\\\":\\\"✠\\\",\\\"Map\\\":\\\"⤅\\\",\\\"map\\\":\\\"↦\\\",\\\"mapsto\\\":\\\"↦\\\",\\\"mapstodown\\\":\\\"↧\\\",\\\"mapstoleft\\\":\\\"↤\\\",\\\"mapstoup\\\":\\\"↥\\\",\\\"marker\\\":\\\"▮\\\",\\\"mcomma\\\":\\\"⨩\\\",\\\"Mcy\\\":\\\"М\\\",\\\"mcy\\\":\\\"м\\\",\\\"mdash\\\":\\\"—\\\",\\\"mDDot\\\":\\\"∺\\\",\\\"measuredangle\\\":\\\"∡\\\",\\\"MediumSpace\\\":\\\"\\\",\\\"Mellintrf\\\":\\\"\\\",\\\"Mfr\\\":\\\"𝔐\\\",\\\"mfr\\\":\\\"𝔪\\\",\\\"mho\\\":\\\"℧\\\",\\\"micro\\\":\\\"µ\\\",\\\"midast\\\":\\\"*\\\",\\\"midcir\\\":\\\"⫰\\\",\\\"mid\\\":\\\"\\\",\\\"middot\\\":\\\"·\\\",\\\"minusb\\\":\\\"⊟\\\",\\\"minus\\\":\\\"\\\",\\\"minusd\\\":\\\"∸\\\",\\\"minusdu\\\":\\\"⨪\\\",\\\"MinusPlus\\\":\\\"∓\\\",\\\"mlcp\\\":\\\"⫛\\\",\\\"mldr\\\":\\\"…\\\",\\\"mnplus\\\":\\\"∓\\\",\\\"models\\\":\\\"⊧\\\",\\\"Mopf\\\":\\\"𝕄\\\",\\\"mopf\\\":\\\"𝕞\\\",\\\"mp\\\":\\\"∓\\\",\\\"mscr\\\":\\\"𝓂\\\",\\\"Mscr\\\":\\\"\\\",\\\"mstpos\\\":\\\"∾\\\",\\\"Mu\\\":\\\"Μ\\\",\\\"mu\\\":\\\"μ\\\",\\\"multimap\\\":\\\"⊸\\\",\\\"mumap\\\":\\\"⊸\\\",\\\"nabla\\\":\\\"∇\\\",\\\"Nacute\\\":\\\"Ń\\\",\\\"nacute\\\":\\\"ń\\\",\\\"nang\\\":\\\"∠⃒\\\",\\\"nap\\\":\\\"≉\\\",\\\"napE\\\":\\\"⩰̸\\\",\\\"napid\\\":\\\"≋̸\\\",\\\"napos\\\":\\\"ʼn\\\",\\\"napprox\\\":\\\"≉\\\",\\\"natural\\\":\\\"♮\\\",\\\"naturals\\\":\\\"\\\",\\\"natur\\\":\\\"♮\\\",\\\"nbsp\\\":\\\" \\\",\\\"nbump\\\":\\\"≎̸\\\",\\\"nbumpe\\\":\\\"≏̸\\\",\\\"ncap\\\":\\\"⩃\\\",\\\"Ncaron\\\":\\\"Ň\\\",\\\"ncaron\\\":\\\"ň\\\",\\\"Ncedil\\\":\\\"Ņ\\\",\\\"ncedil\\\":\\\"ņ\\\",\\\"ncong\\\":\\\"≇\\\",\\\"ncongdot\\\":\\\"⩭̸\\\",\\\"ncup\\\":\\\"⩂\\\",\\\"Ncy\\\":\\\"Н\\\",\\\"ncy\\\":\\\"н\\\",\\\"ndash\\\":\\\"\\\",\\\"nearhk\\\":\\\"⤤\\\",\\\"nearr\\\":\\\"↗\\\",\\\"neArr\\\":\\\"⇗\\\",\\\"nearrow\\\":\\\"↗\\\",\\\"ne\\\":\\\"≠\\\",\\\"nedot\\\":\\\"≐̸\\\",\\\"NegativeMediumSpace\\\":\\\"\\\",\\\"NegativeThickSpace\\\":\\\"\\\",\\\"NegativeThinSpace\\\":\\\"\\\",\\\"NegativeVeryThinSpace\\\":\\\"\\\",\\\"nequiv\\\":\\\"≢\\\",\\\"nesear\\\":\\\"⤨\\\",\\\"nesim\\\":\\\"≂̸\\\",\\\"NestedGreaterGreater\\\":\\\"≫\\\",\\\"NestedLessLess\\\":\\\"≪\\\",\\\"NewLine\\\":\\\"\\\\n\\\",\\\"nexist\\\":\\\"∄\\\",\\\"nexists\\\":\\\"∄\\\",\\\"Nfr\\\":\\\"𝔑\\\",\\\"nfr\\\":\\\"𝔫\\\",\\\"ngE\\\":\\\"≧̸\\\",\\\"nge\\\":\\\"≱\\\",\\\"ngeq\\\":\\\"≱\\\",\\\"ngeqq\\\":\\\"≧̸\\\",\\\"ngeqslant\\\":\\\"⩾̸\\\",\\\"nges\\\":\\\"⩾̸\\\",\\\"nGg\\\":\\\"⋙̸\\\",\\\"ngsim\\\":\\\"≵\\\",\\\"nGt\\\":\\\"≫⃒\\\",\\\"ngt\\\":\\\"≯\\\",\\\"ngtr\\\":\\\"≯\\\",\\\"nGtv\\\":\\\"≫̸\\\",\\\"nharr\\\":\\\"↮\\\",\\\"nhArr\\\":\\\"⇎\\\",\\\"nhpar\\\":\\\"⫲\\\",\\\"ni\\\":\\\"∋\\\",\\\"nis\\\":\\\"⋼\\\",\\\"nisd\\\":\\\"⋺\\\",\\\"niv\\\":\\\"∋\\\",\\\"NJcy\\\":\\\"Њ\\\",\\\"njcy\\\":\\\"њ\\\",\\\"nlarr\\\":\\\"↚\\\",\\\"nlArr\\\":\\\"⇍\\\",\\\"nldr\\\":\\\"‥\\\",\\\"nlE\\\":\\\"≦̸\\\",\\\"nle\\\":\\\"≰\\\",\\\"nleftarrow\\\":\\\"↚\\\",\\\"nLeftarrow\\\":\\\"⇍\\\",\\\"nleftrightarrow\\\":\\\"↮\\\",\\\"nLeftrightarrow\\\":\\\"⇎\\\",\\\"nleq\\\":\\\"≰\\\",\\\"nleqq\\\":\\\"≦̸\\\",\\\"nleqslant\\\":\\\"⩽̸\\\",\\\"nles\\\":\\\"⩽̸\\\",\\\"nless\\\":\\\"≮\\\",\\\"nLl\\\":\\\"⋘̸\\\",\\\"nlsim\\\":\\\"≴\\\",\\\"nLt\\\":\\\"≪⃒\\\",\\\"nlt\\\":\\\"≮\\\",\\\"nltri\\\":\\\"⋪\\\",\\\"nltrie\\\":\\\"⋬\\\",\\\"nLtv\\\":\\\"≪̸\\\",\\\"nmid\\\":\\\"∤\\\",\\\"NoBreak\\\":\\\"\\\",\\\"NonBreakingSpace\\\":\\\" \\\",\\\"nopf\\\":\\\"𝕟\\\",\\\"Nopf\\\":\\\"\\\",\\\"Not\\\":\\\"⫬\\\",\\\"not\\\":\\\"¬\\\",\\\"NotCongruent\\\":\\\"≢\\\",\\\"NotCupCap\\\":\\\"≭\\\",\\\"NotDoubleVerticalBar\\\":\\\"∦\\\",\\\"NotElement\\\":\\\"∉\\\",\\\"NotEqual\\\":\\\"≠\\\",\\\"NotEqualTilde\\\":\\\"≂̸\\\",\\\"NotExists\\\":\\\"∄\\\",\\\"NotGreater\\\":\\\"≯\\\",\\\"NotGreaterEqual\\\":\\\"≱\\\",\\\"NotGreaterFullEqual\\\":\\\"≧̸\\\",\\\"NotGreaterGreater\\\":\\\"≫̸\\\",\\\"NotGreaterLess\\\":\\\"≹\\\",\\\"NotGreaterSlantEqual\\\":\\\"⩾̸\\\",\\\"NotGreaterTilde\\\":\\\"≵\\\",\\\"NotHumpDownHump\\\":\\\"≎̸\\\",\\\"NotHumpEqual\\\":\\\"≏̸\\\",\\\"notin\\\":\\\"∉\\\",\\\"notindot\\\":\\\"⋵̸\\\",\\\"notinE\\\":\\\"⋹̸\\\",\\\"notinva\\\":\\\"∉\\\",\\\"notinvb\\\":\\\"⋷\\\",\\\"notinvc\\\":\\\"⋶\\\",\\\"NotLeftTriangleBar\\\":\\\"⧏̸\\\",\\\"NotLeftTriangle\\\":\\\"⋪\\\",\\\"NotLeftTriangleEqual\\\":\\\"⋬\\\",\\\"NotLess\\\":\\\"≮\\\",\\\"NotLessEqual\\\":\\\"≰\\\",\\\"NotLessGreater\\\":\\\"≸\\\",\\\"NotLessLess\\\":\\\"≪̸\\\",\\\"NotLessSlantEqual\\\":\\\"⩽̸\\\",\\\"NotLessTilde\\\":\\\"≴\\\",\\\"NotNestedGreaterGreater\\\":\\\"⪢̸\\\",\\\"NotNestedLessLess\\\":\\\"⪡̸\\\",\\\"notni\\\":\\\"∌\\\",\\\"notniva\\\":\\\"∌\\\",\\\"notnivb\\\":\\\"⋾\\\",\\\"notnivc\\\":\\\"⋽\\\",\\\"NotPrecedes\\\":\\\"⊀\\\",\\\"NotPrecedesEqual\\\":\\\"⪯̸\\\",\\\"NotPrecedesSlantEqual\\\":\\\"⋠\\\",\\\"NotReverseElement\\\":\\\"∌\\\",\\\"NotRightTriangleBar\\\":\\\"⧐̸\\\",\\\"NotRightTriangle\\\":\\\"⋫\\\",\\\"NotRightTriangleEqual\\\":\\\"⋭\\\",\\\"NotSquareSubset\\\":\\\"⊏̸\\\",\\\"NotSquareSubsetEqual\\\":\\\"⋢\\\",\\\"NotSquareSuperset\\\":\\\"⊐̸\\\",\\\"NotSquareSupersetEqual\\\":\\\"⋣\\\",\\\"NotSubset\\\":\\\"⊂⃒\\\",\\\"NotSubsetEqual\\\":\\\"⊈\\\",\\\"NotSucceeds\\\":\\\"⊁\\\",\\\"NotSucceedsEqual\\\":\\\"⪰̸\\\",\\\"NotSucceedsSlantEqual\\\":\\\"⋡\\\",\\\"NotSucceedsTilde\\\":\\\"≿̸\\\",\\\"NotSuperset\\\":\\\"⊃⃒\\\",\\\"NotSupersetEqual\\\":\\\"⊉\\\",\\\"NotTilde\\\":\\\"≁\\\",\\\"NotTildeEqual\\\":\\\"≄\\\",\\\"NotTildeFullEqual\\\":\\\"≇\\\",\\\"NotTildeTilde\\\":\\\"≉\\\",\\\"NotVerticalBar\\\":\\\"∤\\\",\\\"nparallel\\\":\\\"∦\\\",\\\"npar\\\":\\\"∦\\\",\\\"nparsl\\\":\\\"⫽⃥\\\",\\\"npart\\\":\\\"∂̸\\\",\\\"npolint\\\":\\\"⨔\\\",\\\"npr\\\":\\\"⊀\\\",\\\"nprcue\\\":\\\"⋠\\\",\\\"nprec\\\":\\\"⊀\\\",\\\"npreceq\\\":\\\"⪯̸\\\",\\\"npre\\\":\\\"⪯̸\\\",\\\"nrarrc\\\":\\\"⤳̸\\\",\\\"nrarr\\\":\\\"↛\\\",\\\"nrArr\\\":\\\"⇏\\\",\\\"nrarrw\\\":\\\"↝̸\\\",\\\"nrightarrow\\\":\\\"↛\\\",\\\"nRightarrow\\\":\\\"⇏\\\",\\\"nrtri\\\":\\\"⋫\\\",\\\"nrtrie\\\":\\\"⋭\\\",\\\"nsc\\\":\\\"⊁\\\",\\\"nsccue\\\":\\\"⋡\\\",\\\"nsce\\\":\\\"⪰̸\\\",\\\"Nscr\\\":\\\"𝒩\\\",\\\"nscr\\\":\\\"𝓃\\\",\\\"nshortmid\\\":\\\"∤\\\",\\\"nshortparallel\\\":\\\"∦\\\",\\\"nsim\\\":\\\"≁\\\",\\\"nsime\\\":\\\"≄\\\",\\\"nsimeq\\\":\\\"≄\\\",\\\"nsmid\\\":\\\"∤\\\",\\\"nspar\\\":\\\"∦\\\",\\\"nsqsube\\\":\\\"⋢\\\",\\\"nsqsupe\\\":\\\"⋣\\\",\\\"nsub\\\":\\\"⊄\\\",\\\"nsubE\\\":\\\"⫅̸\\\",\\\"nsube\\\":\\\"⊈\\\",\\\"nsubset\\\":\\\"⊂⃒\\\",\\\"nsubseteq\\\":\\\"⊈\\\",\\\"nsubseteqq\\\":\\\"⫅̸\\\",\\\"nsucc\\\":\\\"⊁\\\",\\\"nsucceq\\\":\\\"⪰̸\\\",\\\"nsup\\\":\\\"⊅\\\",\\\"nsupE\\\":\\\"⫆̸\\\",\\\"nsupe\\\":\\\"⊉\\\",\\\"nsupset\\\":\\\"⊃⃒\\\",\\\"nsupseteq\\\":\\\"⊉\\\",\\\"nsupseteqq\\\":\\\"⫆̸\\\",\\\"ntgl\\\":\\\"≹\\\",\\\"Ntilde\\\":\\\"Ñ\\\",\\\"ntilde\\\":\\\"ñ\\\",\\\"ntlg\\\":\\\"≸\\\",\\\"ntriangleleft\\\":\\\"⋪\\\",\\\"ntrianglelefteq\\\":\\\"⋬\\\",\\\"ntriangleright\\\":\\\"⋫\\\",\\\"ntrianglerighteq\\\":\\\"⋭\\\",\\\"Nu\\\":\\\"Ν\\\",\\\"nu\\\":\\\"ν\\\",\\\"num\\\":\\\"#\\\",\\\"numero\\\":\\\"№\\\",\\\"numsp\\\":\\\"\\\",\\\"nvap\\\":\\\"≍⃒\\\",\\\"nvdash\\\":\\\"⊬\\\",\\\"nvDash\\\":\\\"⊭\\\",\\\"nVdash\\\":\\\"⊮\\\",\\\"nVDash\\\":\\\"⊯\\\",\\\"nvge\\\":\\\"≥⃒\\\",\\\"nvgt\\\":\\\">⃒\\\",\\\"nvHarr\\\":\\\"⤄\\\",\\\"nvinfin\\\":\\\"⧞\\\",\\\"nvlArr\\\":\\\"⤂\\\",\\\"nvle\\\":\\\"≤⃒\\\",\\\"nvlt\\\":\\\"<⃒\\\",\\\"nvltrie\\\":\\\"⊴⃒\\\",\\\"nvrArr\\\":\\\"⤃\\\",\\\"nvrtrie\\\":\\\"⊵⃒\\\",\\\"nvsim\\\":\\\"∼⃒\\\",\\\"nwarhk\\\":\\\"⤣\\\",\\\"nwarr\\\":\\\"↖\\\",\\\"nwArr\\\":\\\"⇖\\\",\\\"nwarrow\\\":\\\"↖\\\",\\\"nwnear\\\":\\\"⤧\\\",\\\"Oacute\\\":\\\"Ó\\\",\\\"oacute\\\":\\\"ó\\\",\\\"oast\\\":\\\"⊛\\\",\\\"Ocirc\\\":\\\"Ô\\\",\\\"ocirc\\\":\\\"ô\\\",\\\"ocir\\\":\\\"⊚\\\",\\\"Ocy\\\":\\\"О\\\",\\\"ocy\\\":\\\"о\\\",\\\"odash\\\":\\\"⊝\\\",\\\"Odblac\\\":\\\"Ő\\\",\\\"odblac\\\":\\\"ő\\\",\\\"odiv\\\":\\\"⨸\\\",\\\"odot\\\":\\\"⊙\\\",\\\"odsold\\\":\\\"⦼\\\",\\\"OElig\\\":\\\"Œ\\\",\\\"oelig\\\":\\\"œ\\\",\\\"ofcir\\\":\\\"⦿\\\",\\\"Ofr\\\":\\\"𝔒\\\",\\\"ofr\\\":\\\"𝔬\\\",\\\"ogon\\\":\\\"˛\\\",\\\"Ograve\\\":\\\"Ò\\\",\\\"ograve\\\":\\\"ò\\\",\\\"ogt\\\":\\\"⧁\\\",\\\"ohbar\\\":\\\"⦵\\\",\\\"ohm\\\":\\\"Ω\\\",\\\"oint\\\":\\\"∮\\\",\\\"olarr\\\":\\\"↺\\\",\\\"olcir\\\":\\\"⦾\\\",\\\"olcross\\\":\\\"⦻\\\",\\\"oline\\\":\\\"‾\\\",\\\"olt\\\":\\\"⧀\\\",\\\"Omacr\\\":\\\"Ō\\\",\\\"omacr\\\":\\\"ō\\\",\\\"Omega\\\":\\\"Ω\\\",\\\"omega\\\":\\\"ω\\\",\\\"Omicron\\\":\\\"Ο\\\",\\\"omicron\\\":\\\"ο\\\",\\\"omid\\\":\\\"⦶\\\",\\\"ominus\\\":\\\"⊖\\\",\\\"Oopf\\\":\\\"𝕆\\\",\\\"oopf\\\":\\\"𝕠\\\",\\\"opar\\\":\\\"⦷\\\",\\\"OpenCurlyDoubleQuote\\\":\\\"“\\\",\\\"OpenCurlyQuote\\\":\\\"\\\",\\\"operp\\\":\\\"⦹\\\",\\\"oplus\\\":\\\"⊕\\\",\\\"orarr\\\":\\\"↻\\\",\\\"Or\\\":\\\"⩔\\\",\\\"or\\\":\\\"\\\",\\\"ord\\\":\\\"⩝\\\",\\\"order\\\":\\\"\\\",\\\"orderof\\\":\\\"\\\",\\\"ordf\\\":\\\"ª\\\",\\\"ordm\\\":\\\"º\\\",\\\"origof\\\":\\\"⊶\\\",\\\"oror\\\":\\\"⩖\\\",\\\"orslope\\\":\\\"⩗\\\",\\\"orv\\\":\\\"⩛\\\",\\\"oS\\\":\\\"Ⓢ\\\",\\\"Oscr\\\":\\\"𝒪\\\",\\\"oscr\\\":\\\"\\\",\\\"Oslash\\\":\\\"Ø\\\",\\\"oslash\\\":\\\"ø\\\",\\\"osol\\\":\\\"⊘\\\",\\\"Otilde\\\":\\\"Õ\\\",\\\"otilde\\\":\\\"õ\\\",\\\"otimesas\\\":\\\"⨶\\\",\\\"Otimes\\\":\\\"⨷\\\",\\\"otimes\\\":\\\"⊗\\\",\\\"Ouml\\\":\\\"Ö\\\",\\\"ouml\\\":\\\"ö\\\",\\\"ovbar\\\":\\\"⌽\\\",\\\"OverBar\\\":\\\"‾\\\",\\\"OverBrace\\\":\\\"⏞\\\",\\\"OverBracket\\\":\\\"⎴\\\",\\\"OverParenthesis\\\":\\\"⏜\\\",\\\"para\\\":\\\"¶\\\",\\\"parallel\\\":\\\"∥\\\",\\\"par\\\":\\\"∥\\\",\\\"parsim\\\":\\\"⫳\\\",\\\"parsl\\\":\\\"⫽\\\",\\\"part\\\":\\\"∂\\\",\\\"PartialD\\\":\\\"∂\\\",\\\"Pcy\\\":\\\"П\\\",\\\"pcy\\\":\\\"п\\\",\\\"percnt\\\":\\\"%\\\",\\\"period\\\":\\\".\\\",\\\"permil\\\":\\\"‰\\\",\\\"perp\\\":\\\"⊥\\\",\\\"pertenk\\\":\\\"‱\\\",\\\"Pfr\\\":\\\"𝔓\\\",\\\"pfr\\\":\\\"𝔭\\\",\\\"Phi\\\":\\\"Φ\\\",\\\"phi\\\":\\\"φ\\\",\\\"phiv\\\":\\\"ϕ\\\",\\\"phmmat\\\":\\\"\\\",\\\"phone\\\":\\\"☎\\\",\\\"Pi\\\":\\\"Π\\\",\\\"pi\\\":\\\"π\\\",\\\"pitchfork\\\":\\\"⋔\\\",\\\"piv\\\":\\\"ϖ\\\",\\\"planck\\\":\\\"ℏ\\\",\\\"planckh\\\":\\\"\\\",\\\"plankv\\\":\\\"ℏ\\\",\\\"plusacir\\\":\\\"⨣\\\",\\\"plusb\\\":\\\"⊞\\\",\\\"pluscir\\\":\\\"⨢\\\",\\\"plus\\\":\\\"+\\\",\\\"plusdo\\\":\\\"∔\\\",\\\"plusdu\\\":\\\"⨥\\\",\\\"pluse\\\":\\\"⩲\\\",\\\"PlusMinus\\\":\\\"±\\\",\\\"plusmn\\\":\\\"±\\\",\\\"plussim\\\":\\\"⨦\\\",\\\"plustwo\\\":\\\"⨧\\\",\\\"pm\\\":\\\"±\\\",\\\"Poincareplane\\\":\\\"\\\",\\\"pointint\\\":\\\"⨕\\\",\\\"popf\\\":\\\"𝕡\\\",\\\"Popf\\\":\\\"\\\",\\\"pound\\\":\\\"£\\\",\\\"prap\\\":\\\"⪷\\\",\\\"Pr\\\":\\\"⪻\\\",\\\"pr\\\":\\\"≺\\\",\\\"prcue\\\":\\\"≼\\\",\\\"precapprox\\\":\\\"⪷\\\",\\\"prec\\\":\\\"≺\\\",\\\"preccurlyeq\\\":\\\"≼\\\",\\\"Precedes\\\":\\\"≺\\\",\\\"PrecedesEqual\\\":\\\"⪯\\\",\\\"PrecedesSlantEqual\\\":\\\"≼\\\",\\\"PrecedesTilde\\\":\\\"≾\\\",\\\"preceq\\\":\\\"⪯\\\",\\\"precnapprox\\\":\\\"⪹\\\",\\\"precneqq\\\":\\\"⪵\\\",\\\"precnsim\\\":\\\"⋨\\\",\\\"pre\\\":\\\"⪯\\\",\\\"prE\\\":\\\"⪳\\\",\\\"precsim\\\":\\\"≾\\\",\\\"prime\\\":\\\"\\\",\\\"Prime\\\":\\\"″\\\",\\\"primes\\\":\\\"\\\",\\\"prnap\\\":\\\"⪹\\\",\\\"prnE\\\":\\\"⪵\\\",\\\"prnsim\\\":\\\"⋨\\\",\\\"prod\\\":\\\"∏\\\",\\\"Product\\\":\\\"∏\\\",\\\"profalar\\\":\\\"⌮\\\",\\\"profline\\\":\\\"⌒\\\",\\\"profsurf\\\":\\\"⌓\\\",\\\"prop\\\":\\\"∝\\\",\\\"Proportional\\\":\\\"∝\\\",\\\"Proportion\\\":\\\"∷\\\",\\\"propto\\\":\\\"∝\\\",\\\"prsim\\\":\\\"≾\\\",\\\"prurel\\\":\\\"⊰\\\",\\\"Pscr\\\":\\\"𝒫\\\",\\\"pscr\\\":\\\"𝓅\\\",\\\"Psi\\\":\\\"Ψ\\\",\\\"psi\\\":\\\"ψ\\\",\\\"puncsp\\\":\\\"\\\",\\\"Qfr\\\":\\\"𝔔\\\",\\\"qfr\\\":\\\"𝔮\\\",\\\"qint\\\":\\\"⨌\\\",\\\"qopf\\\":\\\"𝕢\\\",\\\"Qopf\\\":\\\"\\\",\\\"qprime\\\":\\\"⁗\\\",\\\"Qscr\\\":\\\"𝒬\\\",\\\"qscr\\\":\\\"𝓆\\\",\\\"quaternions\\\":\\\"\\\",\\\"quatint\\\":\\\"⨖\\\",\\\"quest\\\":\\\"?\\\",\\\"questeq\\\":\\\"≟\\\",\\\"quot\\\":\\\"\\\\\\\"\\\",\\\"QUOT\\\":\\\"\\\\\\\"\\\",\\\"rAarr\\\":\\\"⇛\\\",\\\"race\\\":\\\"∽̱\\\",\\\"Racute\\\":\\\"Ŕ\\\",\\\"racute\\\":\\\"ŕ\\\",\\\"radic\\\":\\\"√\\\",\\\"raemptyv\\\":\\\"⦳\\\",\\\"rang\\\":\\\"⟩\\\",\\\"Rang\\\":\\\"⟫\\\",\\\"rangd\\\":\\\"⦒\\\",\\\"range\\\":\\\"⦥\\\",\\\"rangle\\\":\\\"⟩\\\",\\\"raquo\\\":\\\"»\\\",\\\"rarrap\\\":\\\"⥵\\\",\\\"rarrb\\\":\\\"⇥\\\",\\\"rarrbfs\\\":\\\"⤠\\\",\\\"rarrc\\\":\\\"⤳\\\",\\\"rarr\\\":\\\"→\\\",\\\"Rarr\\\":\\\"↠\\\",\\\"rArr\\\":\\\"⇒\\\",\\\"rarrfs\\\":\\\"⤞\\\",\\\"rarrhk\\\":\\\"↪\\\",\\\"rarrlp\\\":\\\"↬\\\",\\\"rarrpl\\\":\\\"⥅\\\",\\\"rarrsim\\\":\\\"⥴\\\",\\\"Rarrtl\\\":\\\"⤖\\\",\\\"rarrtl\\\":\\\"↣\\\",\\\"rarrw\\\":\\\"↝\\\",\\\"ratail\\\":\\\"⤚\\\",\\\"rAtail\\\":\\\"⤜\\\",\\\"ratio\\\":\\\"\\\",\\\"rationals\\\":\\\"\\\",\\\"rbarr\\\":\\\"⤍\\\",\\\"rBarr\\\":\\\"⤏\\\",\\\"RBarr\\\":\\\"⤐\\\",\\\"rbbrk\\\":\\\"\\\",\\\"rbrace\\\":\\\"}\\\",\\\"rbrack\\\":\\\"]\\\",\\\"rbrke\\\":\\\"⦌\\\",\\\"rbrksld\\\":\\\"⦎\\\",\\\"rbrkslu\\\":\\\"⦐\\\",\\\"Rcaron\\\":\\\"Ř\\\",\\\"rcaron\\\":\\\"ř\\\",\\\"Rcedil\\\":\\\"Ŗ\\\",\\\"rcedil\\\":\\\"ŗ\\\",\\\"rceil\\\":\\\"⌉\\\",\\\"rcub\\\":\\\"}\\\",\\\"Rcy\\\":\\\"Р\\\",\\\"rcy\\\":\\\"р\\\",\\\"rdca\\\":\\\"⤷\\\",\\\"rdldhar\\\":\\\"⥩\\\",\\\"rdquo\\\":\\\"”\\\",\\\"rdquor\\\":\\\"”\\\",\\\"rdsh\\\":\\\"↳\\\",\\\"real\\\":\\\"\\\",\\\"realine\\\":\\\"\\\",\\\"realpart\\\":\\\"\\\",\\\"reals\\\":\\\"\\\",\\\"Re\\\":\\\"\\\",\\\"rect\\\":\\\"▭\\\",\\\"reg\\\":\\\"®\\\",\\\"REG\\\":\\\"®\\\",\\\"ReverseElement\\\":\\\"∋\\\",\\\"ReverseEquilibrium\\\":\\\"⇋\\\",\\\"ReverseUpEquilibrium\\\":\\\"⥯\\\",\\\"rfisht\\\":\\\"⥽\\\",\\\"rfloor\\\":\\\"⌋\\\",\\\"rfr\\\":\\\"𝔯\\\",\\\"Rfr\\\":\\\"\\\",\\\"rHar\\\":\\\"⥤\\\",\\\"rhard\\\":\\\"⇁\\\",\\\"rharu\\\":\\\"⇀\\\",\\\"rharul\\\":\\\"⥬\\\",\\\"Rho\\\":\\\"Ρ\\\",\\\"rho\\\":\\\"ρ\\\",\\\"rhov\\\":\\\"ϱ\\\",\\\"RightAngleBracket\\\":\\\"⟩\\\",\\\"RightArrowBar\\\":\\\"⇥\\\",\\\"rightarrow\\\":\\\"→\\\",\\\"RightArrow\\\":\\\"→\\\",\\\"Rightarrow\\\":\\\"⇒\\\",\\\"RightArrowLeftArrow\\\":\\\"⇄\\\",\\\"rightarrowtail\\\":\\\"↣\\\",\\\"RightCeiling\\\":\\\"⌉\\\",\\\"RightDoubleBracket\\\":\\\"⟧\\\",\\\"RightDownTeeVector\\\":\\\"⥝\\\",\\\"RightDownVectorBar\\\":\\\"⥕\\\",\\\"RightDownVector\\\":\\\"⇂\\\",\\\"RightFloor\\\":\\\"⌋\\\",\\\"rightharpoondown\\\":\\\"⇁\\\",\\\"rightharpoonup\\\":\\\"⇀\\\",\\\"rightleftarrows\\\":\\\"⇄\\\",\\\"rightleftharpoons\\\":\\\"⇌\\\",\\\"rightrightarrows\\\":\\\"⇉\\\",\\\"rightsquigarrow\\\":\\\"↝\\\",\\\"RightTeeArrow\\\":\\\"↦\\\",\\\"RightTee\\\":\\\"⊢\\\",\\\"RightTeeVector\\\":\\\"⥛\\\",\\\"rightthreetimes\\\":\\\"⋌\\\",\\\"RightTriangleBar\\\":\\\"⧐\\\",\\\"RightTriangle\\\":\\\"⊳\\\",\\\"RightTriangleEqual\\\":\\\"⊵\\\",\\\"RightUpDownVector\\\":\\\"⥏\\\",\\\"RightUpTeeVector\\\":\\\"⥜\\\",\\\"RightUpVectorBar\\\":\\\"⥔\\\",\\\"RightUpVector\\\":\\\"↾\\\",\\\"RightVectorBar\\\":\\\"⥓\\\",\\\"RightVector\\\":\\\"⇀\\\",\\\"ring\\\":\\\"˚\\\",\\\"risingdotseq\\\":\\\"≓\\\",\\\"rlarr\\\":\\\"⇄\\\",\\\"rlhar\\\":\\\"⇌\\\",\\\"rlm\\\":\\\"\\\",\\\"rmoustache\\\":\\\"⎱\\\",\\\"rmoust\\\":\\\"⎱\\\",\\\"rnmid\\\":\\\"⫮\\\",\\\"roang\\\":\\\"⟭\\\",\\\"roarr\\\":\\\"⇾\\\",\\\"robrk\\\":\\\"⟧\\\",\\\"ropar\\\":\\\"⦆\\\",\\\"ropf\\\":\\\"𝕣\\\",\\\"Ropf\\\":\\\"\\\",\\\"roplus\\\":\\\"⨮\\\",\\\"rotimes\\\":\\\"⨵\\\",\\\"RoundImplies\\\":\\\"⥰\\\",\\\"rpar\\\":\\\")\\\",\\\"rpargt\\\":\\\"⦔\\\",\\\"rppolint\\\":\\\"⨒\\\",\\\"rrarr\\\":\\\"⇉\\\",\\\"Rrightarrow\\\":\\\"⇛\\\",\\\"rsaquo\\\":\\\"\\\",\\\"rscr\\\":\\\"𝓇\\\",\\\"Rscr\\\":\\\"\\\",\\\"rsh\\\":\\\"↱\\\",\\\"Rsh\\\":\\\"↱\\\",\\\"rsqb\\\":\\\"]\\\",\\\"rsquo\\\":\\\"\\\",\\\"rsquor\\\":\\\"\\\",\\\"rthree\\\":\\\"⋌\\\",\\\"rtimes\\\":\\\"⋊\\\",\\\"rtri\\\":\\\"▹\\\",\\\"rtrie\\\":\\\"⊵\\\",\\\"rtrif\\\":\\\"▸\\\",\\\"rtriltri\\\":\\\"⧎\\\",\\\"RuleDelayed\\\":\\\"⧴\\\",\\\"ruluhar\\\":\\\"⥨\\\",\\\"rx\\\":\\\"℞\\\",\\\"Sacute\\\":\\\"Ś\\\",\\\"sacute\\\":\\\"ś\\\",\\\"sbquo\\\":\\\"\\\",\\\"scap\\\":\\\"⪸\\\",\\\"Scaron\\\":\\\"Š\\\",\\\"scaron\\\":\\\"š\\\",\\\"Sc\\\":\\\"⪼\\\",\\\"sc\\\":\\\"≻\\\",\\\"sccue\\\":\\\"≽\\\",\\\"sce\\\":\\\"⪰\\\",\\\"scE\\\":\\\"⪴\\\",\\\"Scedil\\\":\\\"Ş\\\",\\\"scedil\\\":\\\"ş\\\",\\\"Scirc\\\":\\\"Ŝ\\\",\\\"scirc\\\":\\\"ŝ\\\",\\\"scnap\\\":\\\"⪺\\\",\\\"scnE\\\":\\\"⪶\\\",\\\"scnsim\\\":\\\"⋩\\\",\\\"scpolint\\\":\\\"⨓\\\",\\\"scsim\\\":\\\"≿\\\",\\\"Scy\\\":\\\"С\\\",\\\"scy\\\":\\\"с\\\",\\\"sdotb\\\":\\\"⊡\\\",\\\"sdot\\\":\\\"⋅\\\",\\\"sdote\\\":\\\"⩦\\\",\\\"searhk\\\":\\\"⤥\\\",\\\"searr\\\":\\\"↘\\\",\\\"seArr\\\":\\\"⇘\\\",\\\"searrow\\\":\\\"↘\\\",\\\"sect\\\":\\\"§\\\",\\\"semi\\\":\\\";\\\",\\\"seswar\\\":\\\"⤩\\\",\\\"setminus\\\":\\\"\\\",\\\"setmn\\\":\\\"\\\",\\\"sext\\\":\\\"✶\\\",\\\"Sfr\\\":\\\"𝔖\\\",\\\"sfr\\\":\\\"𝔰\\\",\\\"sfrown\\\":\\\"⌢\\\",\\\"sharp\\\":\\\"♯\\\",\\\"SHCHcy\\\":\\\"Щ\\\",\\\"shchcy\\\":\\\"щ\\\",\\\"SHcy\\\":\\\"Ш\\\",\\\"shcy\\\":\\\"ш\\\",\\\"ShortDownArrow\\\":\\\"↓\\\",\\\"ShortLeftArrow\\\":\\\"←\\\",\\\"shortmid\\\":\\\"\\\",\\\"shortparallel\\\":\\\"∥\\\",\\\"ShortRightArrow\\\":\\\"→\\\",\\\"ShortUpArrow\\\":\\\"↑\\\",\\\"shy\\\":\\\"­\\\",\\\"Sigma\\\":\\\"Σ\\\",\\\"sigma\\\":\\\"σ\\\",\\\"sigmaf\\\":\\\"ς\\\",\\\"sigmav\\\":\\\"ς\\\",\\\"sim\\\":\\\"\\\",\\\"simdot\\\":\\\"⩪\\\",\\\"sime\\\":\\\"≃\\\",\\\"simeq\\\":\\\"≃\\\",\\\"simg\\\":\\\"⪞\\\",\\\"simgE\\\":\\\"⪠\\\",\\\"siml\\\":\\\"⪝\\\",\\\"simlE\\\":\\\"⪟\\\",\\\"simne\\\":\\\"≆\\\",\\\"simplus\\\":\\\"⨤\\\",\\\"simrarr\\\":\\\"⥲\\\",\\\"slarr\\\":\\\"←\\\",\\\"SmallCircle\\\":\\\"∘\\\",\\\"smallsetminus\\\":\\\"\\\",\\\"smashp\\\":\\\"⨳\\\",\\\"smeparsl\\\":\\\"⧤\\\",\\\"smid\\\":\\\"\\\",\\\"smile\\\":\\\"⌣\\\",\\\"smt\\\":\\\"⪪\\\",\\\"smte\\\":\\\"⪬\\\",\\\"smtes\\\":\\\"⪬︀\\\",\\\"SOFTcy\\\":\\\"Ь\\\",\\\"softcy\\\":\\\"ь\\\",\\\"solbar\\\":\\\"⌿\\\",\\\"solb\\\":\\\"⧄\\\",\\\"sol\\\":\\\"/\\\",\\\"Sopf\\\":\\\"𝕊\\\",\\\"sopf\\\":\\\"𝕤\\\",\\\"spades\\\":\\\"♠\\\",\\\"spadesuit\\\":\\\"♠\\\",\\\"spar\\\":\\\"∥\\\",\\\"sqcap\\\":\\\"⊓\\\",\\\"sqcaps\\\":\\\"⊓︀\\\",\\\"sqcup\\\":\\\"⊔\\\",\\\"sqcups\\\":\\\"⊔︀\\\",\\\"Sqrt\\\":\\\"√\\\",\\\"sqsub\\\":\\\"⊏\\\",\\\"sqsube\\\":\\\"⊑\\\",\\\"sqsubset\\\":\\\"⊏\\\",\\\"sqsubseteq\\\":\\\"⊑\\\",\\\"sqsup\\\":\\\"⊐\\\",\\\"sqsupe\\\":\\\"⊒\\\",\\\"sqsupset\\\":\\\"⊐\\\",\\\"sqsupseteq\\\":\\\"⊒\\\",\\\"square\\\":\\\"□\\\",\\\"Square\\\":\\\"□\\\",\\\"SquareIntersection\\\":\\\"⊓\\\",\\\"SquareSubset\\\":\\\"⊏\\\",\\\"SquareSubsetEqual\\\":\\\"⊑\\\",\\\"SquareSuperset\\\":\\\"⊐\\\",\\\"SquareSupersetEqual\\\":\\\"⊒\\\",\\\"SquareUnion\\\":\\\"⊔\\\",\\\"squarf\\\":\\\"▪\\\",\\\"squ\\\":\\\"□\\\",\\\"squf\\\":\\\"▪\\\",\\\"srarr\\\":\\\"→\\\",\\\"Sscr\\\":\\\"𝒮\\\",\\\"sscr\\\":\\\"𝓈\\\",\\\"ssetmn\\\":\\\"\\\",\\\"ssmile\\\":\\\"⌣\\\",\\\"sstarf\\\":\\\"⋆\\\",\\\"Star\\\":\\\"⋆\\\",\\\"star\\\":\\\"☆\\\",\\\"starf\\\":\\\"★\\\",\\\"straightepsilon\\\":\\\"ϵ\\\",\\\"straightphi\\\":\\\"ϕ\\\",\\\"strns\\\":\\\"¯\\\",\\\"sub\\\":\\\"⊂\\\",\\\"Sub\\\":\\\"⋐\\\",\\\"subdot\\\":\\\"⪽\\\",\\\"subE\\\":\\\"⫅\\\",\\\"sube\\\":\\\"⊆\\\",\\\"subedot\\\":\\\"⫃\\\",\\\"submult\\\":\\\"⫁\\\",\\\"subnE\\\":\\\"⫋\\\",\\\"subne\\\":\\\"⊊\\\",\\\"subplus\\\":\\\"⪿\\\",\\\"subrarr\\\":\\\"⥹\\\",\\\"subset\\\":\\\"⊂\\\",\\\"Subset\\\":\\\"⋐\\\",\\\"subseteq\\\":\\\"⊆\\\",\\\"subseteqq\\\":\\\"⫅\\\",\\\"SubsetEqual\\\":\\\"⊆\\\",\\\"subsetneq\\\":\\\"⊊\\\",\\\"subsetneqq\\\":\\\"⫋\\\",\\\"subsim\\\":\\\"⫇\\\",\\\"subsub\\\":\\\"⫕\\\",\\\"subsup\\\":\\\"⫓\\\",\\\"succapprox\\\":\\\"⪸\\\",\\\"succ\\\":\\\"≻\\\",\\\"succcurlyeq\\\":\\\"≽\\\",\\\"Succeeds\\\":\\\"≻\\\",\\\"SucceedsEqual\\\":\\\"⪰\\\",\\\"SucceedsSlantEqual\\\":\\\"≽\\\",\\\"SucceedsTilde\\\":\\\"≿\\\",\\\"succeq\\\":\\\"⪰\\\",\\\"succnapprox\\\":\\\"⪺\\\",\\\"succneqq\\\":\\\"⪶\\\",\\\"succnsim\\\":\\\"⋩\\\",\\\"succsim\\\":\\\"≿\\\",\\\"SuchThat\\\":\\\"∋\\\",\\\"sum\\\":\\\"∑\\\",\\\"Sum\\\":\\\"∑\\\",\\\"sung\\\":\\\"♪\\\",\\\"sup1\\\":\\\"¹\\\",\\\"sup2\\\":\\\"²\\\",\\\"sup3\\\":\\\"³\\\",\\\"sup\\\":\\\"⊃\\\",\\\"Sup\\\":\\\"⋑\\\",\\\"supdot\\\":\\\"⪾\\\",\\\"supdsub\\\":\\\"⫘\\\",\\\"supE\\\":\\\"⫆\\\",\\\"supe\\\":\\\"⊇\\\",\\\"supedot\\\":\\\"⫄\\\",\\\"Superset\\\":\\\"⊃\\\",\\\"SupersetEqual\\\":\\\"⊇\\\",\\\"suphsol\\\":\\\"⟉\\\",\\\"suphsub\\\":\\\"⫗\\\",\\\"suplarr\\\":\\\"⥻\\\",\\\"supmult\\\":\\\"⫂\\\",\\\"supnE\\\":\\\"⫌\\\",\\\"supne\\\":\\\"⊋\\\",\\\"supplus\\\":\\\"⫀\\\",\\\"supset\\\":\\\"⊃\\\",\\\"Supset\\\":\\\"⋑\\\",\\\"supseteq\\\":\\\"⊇\\\",\\\"supseteqq\\\":\\\"⫆\\\",\\\"supsetneq\\\":\\\"⊋\\\",\\\"supsetneqq\\\":\\\"⫌\\\",\\\"supsim\\\":\\\"⫈\\\",\\\"supsub\\\":\\\"⫔\\\",\\\"supsup\\\":\\\"⫖\\\",\\\"swarhk\\\":\\\"⤦\\\",\\\"swarr\\\":\\\"↙\\\",\\\"swArr\\\":\\\"⇙\\\",\\\"swarrow\\\":\\\"↙\\\",\\\"swnwar\\\":\\\"⤪\\\",\\\"szlig\\\":\\\"ß\\\",\\\"Tab\\\":\\\"\\\\t\\\",\\\"target\\\":\\\"⌖\\\",\\\"Tau\\\":\\\"Τ\\\",\\\"tau\\\":\\\"τ\\\",\\\"tbrk\\\":\\\"⎴\\\",\\\"Tcaron\\\":\\\"Ť\\\",\\\"tcaron\\\":\\\"ť\\\",\\\"Tcedil\\\":\\\"Ţ\\\",\\\"tcedil\\\":\\\"ţ\\\",\\\"Tcy\\\":\\\"Т\\\",\\\"tcy\\\":\\\"т\\\",\\\"tdot\\\":\\\"⃛\\\",\\\"telrec\\\":\\\"⌕\\\",\\\"Tfr\\\":\\\"𝔗\\\",\\\"tfr\\\":\\\"𝔱\\\",\\\"there4\\\":\\\"∴\\\",\\\"therefore\\\":\\\"∴\\\",\\\"Therefore\\\":\\\"∴\\\",\\\"Theta\\\":\\\"Θ\\\",\\\"theta\\\":\\\"θ\\\",\\\"thetasym\\\":\\\"ϑ\\\",\\\"thetav\\\":\\\"ϑ\\\",\\\"thickapprox\\\":\\\"≈\\\",\\\"thicksim\\\":\\\"\\\",\\\"ThickSpace\\\":\\\"\\\",\\\"ThinSpace\\\":\\\"\\\",\\\"thinsp\\\":\\\"\\\",\\\"thkap\\\":\\\"≈\\\",\\\"thksim\\\":\\\"\\\",\\\"THORN\\\":\\\"Þ\\\",\\\"thorn\\\":\\\"þ\\\",\\\"tilde\\\":\\\"˜\\\",\\\"Tilde\\\":\\\"\\\",\\\"TildeEqual\\\":\\\"≃\\\",\\\"TildeFullEqual\\\":\\\"≅\\\",\\\"TildeTilde\\\":\\\"≈\\\",\\\"timesbar\\\":\\\"⨱\\\",\\\"timesb\\\":\\\"⊠\\\",\\\"times\\\":\\\"×\\\",\\\"timesd\\\":\\\"⨰\\\",\\\"tint\\\":\\\"∭\\\",\\\"toea\\\":\\\"⤨\\\",\\\"topbot\\\":\\\"⌶\\\",\\\"topcir\\\":\\\"⫱\\\",\\\"top\\\":\\\"\\\",\\\"Topf\\\":\\\"𝕋\\\",\\\"topf\\\":\\\"𝕥\\\",\\\"topfork\\\":\\\"⫚\\\",\\\"tosa\\\":\\\"⤩\\\",\\\"tprime\\\":\\\"‴\\\",\\\"trade\\\":\\\"™\\\",\\\"TRADE\\\":\\\"™\\\",\\\"triangle\\\":\\\"▵\\\",\\\"triangledown\\\":\\\"▿\\\",\\\"triangleleft\\\":\\\"◃\\\",\\\"trianglelefteq\\\":\\\"⊴\\\",\\\"triangleq\\\":\\\"≜\\\",\\\"triangleright\\\":\\\"▹\\\",\\\"trianglerighteq\\\":\\\"⊵\\\",\\\"tridot\\\":\\\"◬\\\",\\\"trie\\\":\\\"≜\\\",\\\"triminus\\\":\\\"⨺\\\",\\\"TripleDot\\\":\\\"⃛\\\",\\\"triplus\\\":\\\"⨹\\\",\\\"trisb\\\":\\\"⧍\\\",\\\"tritime\\\":\\\"⨻\\\",\\\"trpezium\\\":\\\"⏢\\\",\\\"Tscr\\\":\\\"𝒯\\\",\\\"tscr\\\":\\\"𝓉\\\",\\\"TScy\\\":\\\"Ц\\\",\\\"tscy\\\":\\\"ц\\\",\\\"TSHcy\\\":\\\"Ћ\\\",\\\"tshcy\\\":\\\"ћ\\\",\\\"Tstrok\\\":\\\"Ŧ\\\",\\\"tstrok\\\":\\\"ŧ\\\",\\\"twixt\\\":\\\"≬\\\",\\\"twoheadleftarrow\\\":\\\"↞\\\",\\\"twoheadrightarrow\\\":\\\"↠\\\",\\\"Uacute\\\":\\\"Ú\\\",\\\"uacute\\\":\\\"ú\\\",\\\"uarr\\\":\\\"↑\\\",\\\"Uarr\\\":\\\"↟\\\",\\\"uArr\\\":\\\"⇑\\\",\\\"Uarrocir\\\":\\\"⥉\\\",\\\"Ubrcy\\\":\\\"Ў\\\",\\\"ubrcy\\\":\\\"ў\\\",\\\"Ubreve\\\":\\\"Ŭ\\\",\\\"ubreve\\\":\\\"ŭ\\\",\\\"Ucirc\\\":\\\"Û\\\",\\\"ucirc\\\":\\\"û\\\",\\\"Ucy\\\":\\\"У\\\",\\\"ucy\\\":\\\"у\\\",\\\"udarr\\\":\\\"⇅\\\",\\\"Udblac\\\":\\\"Ű\\\",\\\"udblac\\\":\\\"ű\\\",\\\"udhar\\\":\\\"⥮\\\",\\\"ufisht\\\":\\\"⥾\\\",\\\"Ufr\\\":\\\"𝔘\\\",\\\"ufr\\\":\\\"𝔲\\\",\\\"Ugrave\\\":\\\"Ù\\\",\\\"ugrave\\\":\\\"ù\\\",\\\"uHar\\\":\\\"⥣\\\",\\\"uharl\\\":\\\"↿\\\",\\\"uharr\\\":\\\"↾\\\",\\\"uhblk\\\":\\\"▀\\\",\\\"ulcorn\\\":\\\"⌜\\\",\\\"ulcorner\\\":\\\"⌜\\\",\\\"ulcrop\\\":\\\"⌏\\\",\\\"ultri\\\":\\\"◸\\\",\\\"Umacr\\\":\\\"Ū\\\",\\\"umacr\\\":\\\"ū\\\",\\\"uml\\\":\\\"¨\\\",\\\"UnderBar\\\":\\\"_\\\",\\\"UnderBrace\\\":\\\"⏟\\\",\\\"UnderBracket\\\":\\\"⎵\\\",\\\"UnderParenthesis\\\":\\\"⏝\\\",\\\"Union\\\":\\\"\\\",\\\"UnionPlus\\\":\\\"⊎\\\",\\\"Uogon\\\":\\\"Ų\\\",\\\"uogon\\\":\\\"ų\\\",\\\"Uopf\\\":\\\"𝕌\\\",\\\"uopf\\\":\\\"𝕦\\\",\\\"UpArrowBar\\\":\\\"⤒\\\",\\\"uparrow\\\":\\\"↑\\\",\\\"UpArrow\\\":\\\"↑\\\",\\\"Uparrow\\\":\\\"⇑\\\",\\\"UpArrowDownArrow\\\":\\\"⇅\\\",\\\"updownarrow\\\":\\\"↕\\\",\\\"UpDownArrow\\\":\\\"↕\\\",\\\"Updownarrow\\\":\\\"⇕\\\",\\\"UpEquilibrium\\\":\\\"⥮\\\",\\\"upharpoonleft\\\":\\\"↿\\\",\\\"upharpoonright\\\":\\\"↾\\\",\\\"uplus\\\":\\\"⊎\\\",\\\"UpperLeftArrow\\\":\\\"↖\\\",\\\"UpperRightArrow\\\":\\\"↗\\\",\\\"upsi\\\":\\\"υ\\\",\\\"Upsi\\\":\\\"ϒ\\\",\\\"upsih\\\":\\\"ϒ\\\",\\\"Upsilon\\\":\\\"Υ\\\",\\\"upsilon\\\":\\\"υ\\\",\\\"UpTeeArrow\\\":\\\"↥\\\",\\\"UpTee\\\":\\\"⊥\\\",\\\"upuparrows\\\":\\\"⇈\\\",\\\"urcorn\\\":\\\"⌝\\\",\\\"urcorner\\\":\\\"⌝\\\",\\\"urcrop\\\":\\\"⌎\\\",\\\"Uring\\\":\\\"Ů\\\",\\\"uring\\\":\\\"ů\\\",\\\"urtri\\\":\\\"◹\\\",\\\"Uscr\\\":\\\"𝒰\\\",\\\"uscr\\\":\\\"𝓊\\\",\\\"utdot\\\":\\\"⋰\\\",\\\"Utilde\\\":\\\"Ũ\\\",\\\"utilde\\\":\\\"ũ\\\",\\\"utri\\\":\\\"▵\\\",\\\"utrif\\\":\\\"▴\\\",\\\"uuarr\\\":\\\"⇈\\\",\\\"Uuml\\\":\\\"Ü\\\",\\\"uuml\\\":\\\"ü\\\",\\\"uwangle\\\":\\\"⦧\\\",\\\"vangrt\\\":\\\"⦜\\\",\\\"varepsilon\\\":\\\"ϵ\\\",\\\"varkappa\\\":\\\"ϰ\\\",\\\"varnothing\\\":\\\"∅\\\",\\\"varphi\\\":\\\"ϕ\\\",\\\"varpi\\\":\\\"ϖ\\\",\\\"varpropto\\\":\\\"∝\\\",\\\"varr\\\":\\\"↕\\\",\\\"vArr\\\":\\\"⇕\\\",\\\"varrho\\\":\\\"ϱ\\\",\\\"varsigma\\\":\\\"ς\\\",\\\"varsubsetneq\\\":\\\"⊊︀\\\",\\\"varsubsetneqq\\\":\\\"⫋︀\\\",\\\"varsupsetneq\\\":\\\"⊋︀\\\",\\\"varsupsetneqq\\\":\\\"⫌︀\\\",\\\"vartheta\\\":\\\"ϑ\\\",\\\"vartriangleleft\\\":\\\"⊲\\\",\\\"vartriangleright\\\":\\\"⊳\\\",\\\"vBar\\\":\\\"⫨\\\",\\\"Vbar\\\":\\\"⫫\\\",\\\"vBarv\\\":\\\"⫩\\\",\\\"Vcy\\\":\\\"В\\\",\\\"vcy\\\":\\\"в\\\",\\\"vdash\\\":\\\"⊢\\\",\\\"vDash\\\":\\\"⊨\\\",\\\"Vdash\\\":\\\"⊩\\\",\\\"VDash\\\":\\\"⊫\\\",\\\"Vdashl\\\":\\\"⫦\\\",\\\"veebar\\\":\\\"⊻\\\",\\\"vee\\\":\\\"\\\",\\\"Vee\\\":\\\"\\\",\\\"veeeq\\\":\\\"≚\\\",\\\"vellip\\\":\\\"⋮\\\",\\\"verbar\\\":\\\"|\\\",\\\"Verbar\\\":\\\"‖\\\",\\\"vert\\\":\\\"|\\\",\\\"Vert\\\":\\\"‖\\\",\\\"VerticalBar\\\":\\\"\\\",\\\"VerticalLine\\\":\\\"|\\\",\\\"VerticalSeparator\\\":\\\"❘\\\",\\\"VerticalTilde\\\":\\\"≀\\\",\\\"VeryThinSpace\\\":\\\"\\\",\\\"Vfr\\\":\\\"𝔙\\\",\\\"vfr\\\":\\\"𝔳\\\",\\\"vltri\\\":\\\"⊲\\\",\\\"vnsub\\\":\\\"⊂⃒\\\",\\\"vnsup\\\":\\\"⊃⃒\\\",\\\"Vopf\\\":\\\"𝕍\\\",\\\"vopf\\\":\\\"𝕧\\\",\\\"vprop\\\":\\\"∝\\\",\\\"vrtri\\\":\\\"⊳\\\",\\\"Vscr\\\":\\\"𝒱\\\",\\\"vscr\\\":\\\"𝓋\\\",\\\"vsubnE\\\":\\\"⫋︀\\\",\\\"vsubne\\\":\\\"⊊︀\\\",\\\"vsupnE\\\":\\\"⫌︀\\\",\\\"vsupne\\\":\\\"⊋︀\\\",\\\"Vvdash\\\":\\\"⊪\\\",\\\"vzigzag\\\":\\\"⦚\\\",\\\"Wcirc\\\":\\\"Ŵ\\\",\\\"wcirc\\\":\\\"ŵ\\\",\\\"wedbar\\\":\\\"⩟\\\",\\\"wedge\\\":\\\"∧\\\",\\\"Wedge\\\":\\\"⋀\\\",\\\"wedgeq\\\":\\\"≙\\\",\\\"weierp\\\":\\\"℘\\\",\\\"Wfr\\\":\\\"𝔚\\\",\\\"wfr\\\":\\\"𝔴\\\",\\\"Wopf\\\":\\\"𝕎\\\",\\\"wopf\\\":\\\"𝕨\\\",\\\"wp\\\":\\\"℘\\\",\\\"wr\\\":\\\"≀\\\",\\\"wreath\\\":\\\"≀\\\",\\\"Wscr\\\":\\\"𝒲\\\",\\\"wscr\\\":\\\"𝓌\\\",\\\"xcap\\\":\\\"⋂\\\",\\\"xcirc\\\":\\\"◯\\\",\\\"xcup\\\":\\\"\\\",\\\"xdtri\\\":\\\"▽\\\",\\\"Xfr\\\":\\\"𝔛\\\",\\\"xfr\\\":\\\"𝔵\\\",\\\"xharr\\\":\\\"⟷\\\",\\\"xhArr\\\":\\\"⟺\\\",\\\"Xi\\\":\\\"Ξ\\\",\\\"xi\\\":\\\"ξ\\\",\\\"xlarr\\\":\\\"⟵\\\",\\\"xlArr\\\":\\\"⟸\\\",\\\"xmap\\\":\\\"⟼\\\",\\\"xnis\\\":\\\"⋻\\\",\\\"xodot\\\":\\\"⨀\\\",\\\"Xopf\\\":\\\"𝕏\\\",\\\"xopf\\\":\\\"𝕩\\\",\\\"xoplus\\\":\\\"⨁\\\",\\\"xotime\\\":\\\"⨂\\\",\\\"xrarr\\\":\\\"⟶\\\",\\\"xrArr\\\":\\\"⟹\\\",\\\"Xscr\\\":\\\"𝒳\\\",\\\"xscr\\\":\\\"𝓍\\\",\\\"xsqcup\\\":\\\"⨆\\\",\\\"xuplus\\\":\\\"⨄\\\",\\\"xutri\\\":\\\"△\\\",\\\"xvee\\\":\\\"\\\",\\\"xwedge\\\":\\\"⋀\\\",\\\"Yacute\\\":\\\"Ý\\\",\\\"yacute\\\":\\\"ý\\\",\\\"YAcy\\\":\\\"Я\\\",\\\"yacy\\\":\\\"я\\\",\\\"Ycirc\\\":\\\"Ŷ\\\",\\\"ycirc\\\":\\\"ŷ\\\",\\\"Ycy\\\":\\\"Ы\\\",\\\"ycy\\\":\\\"ы\\\",\\\"yen\\\":\\\"¥\\\",\\\"Yfr\\\":\\\"𝔜\\\",\\\"yfr\\\":\\\"𝔶\\\",\\\"YIcy\\\":\\\"Ї\\\",\\\"yicy\\\":\\\"ї\\\",\\\"Yopf\\\":\\\"𝕐\\\",\\\"yopf\\\":\\\"𝕪\\\",\\\"Yscr\\\":\\\"𝒴\\\",\\\"yscr\\\":\\\"𝓎\\\",\\\"YUcy\\\":\\\"Ю\\\",\\\"yucy\\\":\\\"ю\\\",\\\"yuml\\\":\\\"ÿ\\\",\\\"Yuml\\\":\\\"Ÿ\\\",\\\"Zacute\\\":\\\"Ź\\\",\\\"zacute\\\":\\\"ź\\\",\\\"Zcaron\\\":\\\"Ž\\\",\\\"zcaron\\\":\\\"ž\\\",\\\"Zcy\\\":\\\"З\\\",\\\"zcy\\\":\\\"з\\\",\\\"Zdot\\\":\\\"Ż\\\",\\\"zdot\\\":\\\"ż\\\",\\\"zeetrf\\\":\\\"\\\",\\\"ZeroWidthSpace\\\":\\\"\\\",\\\"Zeta\\\":\\\"Ζ\\\",\\\"zeta\\\":\\\"ζ\\\",\\\"zfr\\\":\\\"𝔷\\\",\\\"Zfr\\\":\\\"\\\",\\\"ZHcy\\\":\\\"Ж\\\",\\\"zhcy\\\":\\\"ж\\\",\\\"zigrarr\\\":\\\"⇝\\\",\\\"zopf\\\":\\\"𝕫\\\",\\\"Zopf\\\":\\\"\\\",\\\"Zscr\\\":\\\"𝒵\\\",\\\"zscr\\\":\\\"𝓏\\\",\\\"zwj\\\":\\\"\\\",\\\"zwnj\\\":\\\"\\\"}\");\n\n//# sourceURL=webpack:///./node_modules/markdown-it/node_modules/entities/lib/maps/entities.json?");
/***/ }),
/***/ "./node_modules/mdurl/decode.js":
/*!**************************************!*\
!*** ./node_modules/mdurl/decode.js ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\n\n\n/* eslint-disable no-bitwise */\n\nvar decodeCache = {};\n\nfunction getDecodeCache(exclude) {\n var i, ch, cache = decodeCache[exclude];\n if (cache) { return cache; }\n\n cache = decodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n cache.push(ch);\n }\n\n for (i = 0; i < exclude.length; i++) {\n ch = exclude.charCodeAt(i);\n cache[ch] = '%' + ('0' + ch.toString(16).toUpperCase()).slice(-2);\n }\n\n return cache;\n}\n\n\n// Decode percent-encoded string.\n//\nfunction decode(string, exclude) {\n var cache;\n\n if (typeof exclude !== 'string') {\n exclude = decode.defaultChars;\n }\n\n cache = getDecodeCache(exclude);\n\n return string.replace(/(%[a-f0-9]{2})+/gi, function(seq) {\n var i, l, b1, b2, b3, b4, chr,\n result = '';\n\n for (i = 0, l = seq.length; i < l; i += 3) {\n b1 = parseInt(seq.slice(i + 1, i + 3), 16);\n\n if (b1 < 0x80) {\n result += cache[b1];\n continue;\n }\n\n if ((b1 & 0xE0) === 0xC0 && (i + 3 < l)) {\n // 110xxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n\n if ((b2 & 0xC0) === 0x80) {\n chr = ((b1 << 6) & 0x7C0) | (b2 & 0x3F);\n\n if (chr < 0x80) {\n result += '\\ufffd\\ufffd';\n } else {\n result += String.fromCharCode(chr);\n }\n\n i += 3;\n continue;\n }\n }\n\n if ((b1 & 0xF0) === 0xE0 && (i + 6 < l)) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n chr = ((b1 << 12) & 0xF000) | ((b2 << 6) & 0xFC0) | (b3 & 0x3F);\n\n if (chr < 0x800 || (chr >= 0xD800 && chr <= 0xDFFF)) {\n result += '\\ufffd\\ufffd\\ufffd';\n } else {\n result += String.fromCharCode(chr);\n }\n\n i += 6;\n continue;\n }\n }\n\n if ((b1 & 0xF8) === 0xF0 && (i + 9 < l)) {\n // 111110xx 10xxxxxx 10xxxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n b4 = parseInt(seq.slice(i + 10, i + 12), 16);\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80 && (b4 & 0xC0) === 0x80) {\n chr = ((b1 << 18) & 0x1C0000) | ((b2 << 12) & 0x3F000) | ((b3 << 6) & 0xFC0) | (b4 & 0x3F);\n\n if (chr < 0x10000 || chr > 0x10FFFF) {\n result += '\\ufffd\\ufffd\\ufffd\\ufffd';\n } else {\n chr -= 0x10000;\n result += String.fromCharCode(0xD800 + (chr >> 10), 0xDC00 + (chr & 0x3FF));\n }\n\n i += 9;\n continue;\n }\n }\n\n result += '\\ufffd';\n }\n\n return result;\n });\n}\n\n\ndecode.defaultChars = ';/?:@&=+$,#';\ndecode.componentChars = '';\n\n\nmodule.exports = decode;\n\n\n//# sourceURL=webpack:///./node_modules/mdurl/decode.js?");
/***/ }),
/***/ "./node_modules/mdurl/encode.js":
/*!**************************************!*\
!*** ./node_modules/mdurl/encode.js ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\n\n\nvar encodeCache = {};\n\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) { return cache; }\n\n cache = encodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache;\n}\n\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache,\n result = '';\n\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n cache = getEncodeCache(exclude);\n\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue;\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result;\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\n\n\nmodule.exports = encode;\n\n\n//# sourceURL=webpack:///./node_modules/mdurl/encode.js?");
/***/ }),
/***/ "./node_modules/mdurl/format.js":
/*!**************************************!*\
!*** ./node_modules/mdurl/format.js ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\n\n\nmodule.exports = function format(url) {\n var result = '';\n\n result += url.protocol || '';\n result += url.slashes ? '//' : '';\n result += url.auth ? url.auth + '@' : '';\n\n if (url.hostname && url.hostname.indexOf(':') !== -1) {\n // ipv6 address\n result += '[' + url.hostname + ']';\n } else {\n result += url.hostname || '';\n }\n\n result += url.port ? ':' + url.port : '';\n result += url.pathname || '';\n result += url.search || '';\n result += url.hash || '';\n\n return result;\n};\n\n\n//# sourceURL=webpack:///./node_modules/mdurl/format.js?");
/***/ }),
/***/ "./node_modules/mdurl/index.js":
/*!*************************************!*\
!*** ./node_modules/mdurl/index.js ***!
\*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\n\nmodule.exports.encode = __webpack_require__(/*! ./encode */ \"./node_modules/mdurl/encode.js\");\nmodule.exports.decode = __webpack_require__(/*! ./decode */ \"./node_modules/mdurl/decode.js\");\nmodule.exports.format = __webpack_require__(/*! ./format */ \"./node_modules/mdurl/format.js\");\nmodule.exports.parse = __webpack_require__(/*! ./parse */ \"./node_modules/mdurl/parse.js\");\n\n\n//# sourceURL=webpack:///./node_modules/mdurl/index.js?");
/***/ }),
/***/ "./node_modules/mdurl/parse.js":
/*!*************************************!*\
!*** ./node_modules/mdurl/parse.js ***!
\*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\n//\n// Changes from joyent/node:\n//\n// 1. No leading slash in paths,\n// e.g. in `url.parse('http://foo?bar')` pathname is ``, not `/`\n//\n// 2. Backslashes are not replaced with slashes,\n// so `http:\\\\example.org\\` is treated like a relative path\n//\n// 3. Trailing colon is treated like a part of the path,\n// i.e. in `http://example.org:foo` pathname is `:foo`\n//\n// 4. Nothing is URL-encoded in the resulting object,\n// (in joyent/node some chars in auth and paths are encoded)\n//\n// 5. `url.parse()` does not have `parseQueryString` argument\n//\n// 6. Removed extraneous result properties: `host`, `path`, `query`, etc.,\n// which can be constructed using other parts of the url.\n//\n\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.pathname = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = [ '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t' ],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = [ '{', '}', '|', '\\\\', '^', '`' ].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = [ '\\'' ].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = [ '%', '/', '?', ';', '#' ].concat(autoEscape),\n hostEndingChars = [ '/', '?', '#' ],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n /* eslint-disable no-script-url */\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n };\n /* eslint-enable no-script-url */\n\nfunction urlParse(url, slashesDenoteHost) {\n if (url && url instanceof Url) { return url; }\n\n var u = new Url();\n u.parse(url, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, slashesDenoteHost) {\n var i, l, lowerProto, hec, slashes,\n rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n lowerProto = proto.toLowerCase();\n this.protocol = proto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (i = 0; i < hostEndingChars.length; i++) {\n hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec;\n }\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = auth;\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (i = 0; i < nonHostChars.length; i++) {\n hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec;\n }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) {\n hostEnd = rest.length;\n }\n\n if (rest[hostEnd - 1] === ':') { hostEnd--; }\n var host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost(host);\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) { continue; }\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n }\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n }\n }\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n rest = rest.slice(0, qm);\n }\n if (rest) { this.pathname = rest; }\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '';\n }\n\n return this;\n};\n\nUrl.prototype.parseHost = function(host) {\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) { this.hostname = host; }\n};\n\nmodule.exports = urlParse;\n\n\n//# sourceURL=webpack:///./node_modules/mdurl/parse.js?");
/***/ }),
/***/ "./node_modules/nanoid/index.browser.js":
/*!**********************************************!*\
!*** ./node_modules/nanoid/index.browser.js ***!
\**********************************************/
/*! exports provided: urlAlphabet, random, customRandom, customAlphabet, nanoid */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"random\", function() { return random; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"customRandom\", function() { return customRandom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"customAlphabet\", function() { return customAlphabet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"nanoid\", function() { return nanoid; });\n/* harmony import */ var _url_alphabet_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./url-alphabet/index.js */ \"./node_modules/nanoid/url-alphabet/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"urlAlphabet\", function() { return _url_alphabet_index_js__WEBPACK_IMPORTED_MODULE_0__[\"urlAlphabet\"]; });\n\n/* @ts-self-types=\"./index.d.ts\" */\n\n\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << Math.log2(alphabet.length - 1)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step | 0\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length >= size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size | 0, random)\nlet nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)))\n while (size--) {\n id += _url_alphabet_index_js__WEBPACK_IMPORTED_MODULE_0__[\"urlAlphabet\"][bytes[size] & 63]\n }\n return id\n}\n\n\n//# sourceURL=webpack:///./node_modules/nanoid/index.browser.js?");
/***/ }),
/***/ "./node_modules/nanoid/url-alphabet/index.js":
/*!***************************************************!*\
!*** ./node_modules/nanoid/url-alphabet/index.js ***!
\***************************************************/
/*! exports provided: urlAlphabet */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"urlAlphabet\", function() { return urlAlphabet; });\nconst urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n\n\n//# sourceURL=webpack:///./node_modules/nanoid/url-alphabet/index.js?");
/***/ }),
/***/ "./node_modules/node-libs-browser/node_modules/punycode/punycode.js":
/*!**************************************************************************!*\
!*** ./node_modules/node-libs-browser/node_modules/punycode/punycode.js ***!
\**************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = true && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = true && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttrue\n\t) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n\t\t\treturn punycode;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n\n}(this));\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module), __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js?");
/***/ }),
/***/ "./node_modules/orderedmap/dist/index.js":
/*!***********************************************!*\
!*** ./node_modules/orderedmap/dist/index.js ***!
\***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n// ::- Persistent data structure representing an ordered mapping from\n// strings to values, with some convenient update methods.\nfunction OrderedMap(content) {\n this.content = content;\n}\n\nOrderedMap.prototype = {\n constructor: OrderedMap,\n\n find: function(key) {\n for (var i = 0; i < this.content.length; i += 2)\n if (this.content[i] === key) return i\n return -1\n },\n\n // :: (string) → ?any\n // Retrieve the value stored under `key`, or return undefined when\n // no such key exists.\n get: function(key) {\n var found = this.find(key);\n return found == -1 ? undefined : this.content[found + 1]\n },\n\n // :: (string, any, ?string) → OrderedMap\n // Create a new map by replacing the value of `key` with a new\n // value, or adding a binding to the end of the map. If `newKey` is\n // given, the key of the binding will be replaced with that key.\n update: function(key, value, newKey) {\n var self = newKey && newKey != key ? this.remove(newKey) : this;\n var found = self.find(key), content = self.content.slice();\n if (found == -1) {\n content.push(newKey || key, value);\n } else {\n content[found + 1] = value;\n if (newKey) content[found] = newKey;\n }\n return new OrderedMap(content)\n },\n\n // :: (string) → OrderedMap\n // Return a map with the given key removed, if it existed.\n remove: function(key) {\n var found = this.find(key);\n if (found == -1) return this\n var content = this.content.slice();\n content.splice(found, 2);\n return new OrderedMap(content)\n },\n\n // :: (string, any) → OrderedMap\n // Add a new key to the start of the map.\n addToStart: function(key, value) {\n return new OrderedMap([key, value].concat(this.remove(key).content))\n },\n\n // :: (string, any) → OrderedMap\n // Add a new key to the end of the map.\n addToEnd: function(key, value) {\n var content = this.remove(key).content.slice();\n content.push(key, value);\n return new OrderedMap(content)\n },\n\n // :: (string, string, any) → OrderedMap\n // Add a key after the given key. If `place` is not found, the new\n // key is added to the end.\n addBefore: function(place, key, value) {\n var without = this.remove(key), content = without.content.slice();\n var found = without.find(place);\n content.splice(found == -1 ? content.length : found, 0, key, value);\n return new OrderedMap(content)\n },\n\n // :: ((key: string, value: any))\n // Call the given function for each key/value pair in the map, in\n // order.\n forEach: function(f) {\n for (var i = 0; i < this.content.length; i += 2)\n f(this.content[i], this.content[i + 1]);\n },\n\n // :: (union<Object, OrderedMap>) → OrderedMap\n // Create a new map by prepending the keys in this map that don't\n // appear in `map` before the keys in `map`.\n prepend: function(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this\n return new OrderedMap(map.content.concat(this.subtract(map).content))\n },\n\n // :: (union<Object, OrderedMap>) → OrderedMap\n // Create a new map by appending the keys in this map that don't\n // appear in `map` after the keys in `map`.\n append: function(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this\n return new OrderedMap(this.subtract(map).content.concat(map.content))\n },\n\n // :: (union<Object, OrderedMap>) → OrderedMap\n // Create a map containing all the keys in this map that don't\n // appear in `map`.\n subtract: function(map) {\n var result = this;\n map = OrderedMap.from(map);\n for (var i = 0; i < map.content.length; i += 2)\n result = result.remove(map.content[i]);\n return result\n },\n\n // :: () → Object\n // Turn ordered map into a plain object.\n toObject: function() {\n var result = {};\n this.forEach(function(key, value) { result[key] = value; });\n return result\n },\n\n // :: number\n // The amount of keys in this map.\n get size() {\n return this.content.length >> 1\n }\n};\n\n// :: (?union<Object, OrderedMap>) → OrderedMap\n// Return a map with the given content. If null, create an empty\n// map. If given an ordered map, return that map itself. If given an\n// object, create a map from the object's properties.\nOrderedMap.from = function(value) {\n if (value instanceof OrderedMap) return value\n var content = [];\n if (value) for (var prop in value) content.push(prop, value[prop]);\n return new OrderedMap(content)\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (OrderedMap);\n\n\n//# sourceURL=webpack:///./node_modules/orderedmap/dist/index.js?");
/***/ }),
/***/ "./node_modules/prosemirror-commands/dist/index.js":
/*!*********************************************************!*\
!*** ./node_modules/prosemirror-commands/dist/index.js ***!
\*********************************************************/
/*! exports provided: autoJoin, baseKeymap, chainCommands, createParagraphNear, deleteSelection, exitCode, joinBackward, joinDown, joinForward, joinTextblockBackward, joinTextblockForward, joinUp, lift, liftEmptyBlock, macBaseKeymap, newlineInCode, pcBaseKeymap, selectAll, selectNodeBackward, selectNodeForward, selectParentNode, selectTextblockEnd, selectTextblockStart, setBlockType, splitBlock, splitBlockAs, splitBlockKeepMarks, toggleMark, wrapIn */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoJoin\", function() { return autoJoin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"baseKeymap\", function() { return baseKeymap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"chainCommands\", function() { return chainCommands; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createParagraphNear\", function() { return createParagraphNear; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deleteSelection\", function() { return deleteSelection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"exitCode\", function() { return exitCode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"joinBackward\", function() { return joinBackward; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"joinDown\", function() { return joinDown; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"joinForward\", function() { return joinForward; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"joinTextblockBackward\", function() { return joinTextblockBackward; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"joinTextblockForward\", function() { return joinTextblockForward; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"joinUp\", function() { return joinUp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lift\", function() { return lift; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"liftEmptyBlock\", function() { return liftEmptyBlock; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"macBaseKeymap\", function() { return macBaseKeymap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"newlineInCode\", function() { return newlineInCode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pcBaseKeymap\", function() { return pcBaseKeymap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"selectAll\", function() { return selectAll; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"selectNodeBackward\", function() { return selectNodeBackward; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"selectNodeForward\", function() { return selectNodeForward; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"selectParentNode\", function() { return selectParentNode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"selectTextblockEnd\", function() { return selectTextblockEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"selectTextblockStart\", function() { return selectTextblockStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setBlockType\", function() { return setBlockType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"splitBlock\", function() { return splitBlock; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"splitBlockAs\", function() { return splitBlockAs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"splitBlockKeepMarks\", function() { return splitBlockKeepMarks; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toggleMark\", function() { return toggleMark; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wrapIn\", function() { return wrapIn; });\n/* harmony import */ var prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prosemirror-transform */ \"./node_modules/prosemirror-transform/dist/index.js\");\n/* harmony import */ var prosemirror_model__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prosemirror-model */ \"./node_modules/prosemirror-model/dist/index.js\");\n/* harmony import */ var prosemirror_state__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prosemirror-state */ \"./node_modules/prosemirror-state/dist/index.js\");\n\n\n\n\n/**\nDelete the selection, if there is one.\n*/\nconst deleteSelection = (state, dispatch) => {\n if (state.selection.empty)\n return false;\n if (dispatch)\n dispatch(state.tr.deleteSelection().scrollIntoView());\n return true;\n};\nfunction atBlockStart(state, view) {\n let { $cursor } = state.selection;\n if (!$cursor || (view ? !view.endOfTextblock(\"backward\", state)\n : $cursor.parentOffset > 0))\n return null;\n return $cursor;\n}\n/**\nIf the selection is empty and at the start of a textblock, try to\nreduce the distance between that block and the one before it—if\nthere's a block directly before it that can be joined, join them.\nIf not, try to move the selected block closer to the next one in\nthe document structure by lifting it out of its parent or moving it\ninto a parent of the previous block. Will use the view for accurate\n(bidi-aware) start-of-textblock detection if given.\n*/\nconst joinBackward = (state, dispatch, view) => {\n let $cursor = atBlockStart(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutBefore($cursor);\n // If there is no node before this, try to lift\n if (!$cut) {\n let range = $cursor.blockRange(), target = range && Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"liftTarget\"])(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n }\n let before = $cut.nodeBefore;\n // Apply the joining algorithm\n if (!before.type.spec.isolating && deleteBarrier(state, $cut, dispatch))\n return true;\n // If the node below has no content and the node above is\n // selectable, delete the node below and select the one above.\n if ($cursor.parent.content.size == 0 &&\n (textblockAt(before, \"end\") || prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"NodeSelection\"].isSelectable(before))) {\n let delStep = Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"replaceStep\"])(state.doc, $cursor.before(), $cursor.after(), prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Slice\"].empty);\n if (delStep && delStep.slice.size < delStep.to - delStep.from) {\n if (dispatch) {\n let tr = state.tr.step(delStep);\n tr.setSelection(textblockAt(before, \"end\") ? prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"Selection\"].findFrom(tr.doc.resolve(tr.mapping.map($cut.pos, -1)), -1)\n : prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"NodeSelection\"].create(tr.doc, $cut.pos - before.nodeSize));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n // If the node before is an atom, delete it\n if (before.isAtom && $cut.depth == $cursor.depth - 1) {\n if (dispatch)\n dispatch(state.tr.delete($cut.pos - before.nodeSize, $cut.pos).scrollIntoView());\n return true;\n }\n return false;\n};\n/**\nA more limited form of [`joinBackward`]($commands.joinBackward)\nthat only tries to join the current textblock to the one before\nit, if the cursor is at the start of a textblock.\n*/\nconst joinTextblockBackward = (state, dispatch, view) => {\n let $cursor = atBlockStart(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutBefore($cursor);\n return $cut ? joinTextblocksAround(state, $cut, dispatch) : false;\n};\n/**\nA more limited form of [`joinForward`]($commands.joinForward)\nthat only tries to join the current textblock to the one after\nit, if the cursor is at the end of a textblock.\n*/\nconst joinTextblockForward = (state, dispatch, view) => {\n let $cursor = atBlockEnd(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutAfter($cursor);\n return $cut ? joinTextblocksAround(state, $cut, dispatch) : false;\n};\nfunction joinTextblocksAround(state, $cut, dispatch) {\n let before = $cut.nodeBefore, beforeText = before, beforePos = $cut.pos - 1;\n for (; !beforeText.isTextblock; beforePos--) {\n if (beforeText.type.spec.isolating)\n return false;\n let child = beforeText.lastChild;\n if (!child)\n return false;\n beforeText = child;\n }\n let after = $cut.nodeAfter, afterText = after, afterPos = $cut.pos + 1;\n for (; !afterText.isTextblock; afterPos++) {\n if (afterText.type.spec.isolating)\n return false;\n let child = afterText.firstChild;\n if (!child)\n return false;\n afterText = child;\n }\n let step = Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"replaceStep\"])(state.doc, beforePos, afterPos, prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Slice\"].empty);\n if (!step || step.from != beforePos ||\n step instanceof prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"ReplaceStep\"] && step.slice.size >= afterPos - beforePos)\n return false;\n if (dispatch) {\n let tr = state.tr.step(step);\n tr.setSelection(prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"TextSelection\"].create(tr.doc, beforePos));\n dispatch(tr.scrollIntoView());\n }\n return true;\n}\nfunction textblockAt(node, side, only = false) {\n for (let scan = node; scan; scan = (side == \"start\" ? scan.firstChild : scan.lastChild)) {\n if (scan.isTextblock)\n return true;\n if (only && scan.childCount != 1)\n return false;\n }\n return false;\n}\n/**\nWhen the selection is empty and at the start of a textblock, select\nthe node before that textblock, if possible. This is intended to be\nbound to keys like backspace, after\n[`joinBackward`](https://prosemirror.net/docs/ref/#commands.joinBackward) or other deleting\ncommands, as a fall-back behavior when the schema doesn't allow\ndeletion at the selected point.\n*/\nconst selectNodeBackward = (state, dispatch, view) => {\n let { $head, empty } = state.selection, $cut = $head;\n if (!empty)\n return false;\n if ($head.parent.isTextblock) {\n if (view ? !view.endOfTextblock(\"backward\", state) : $head.parentOffset > 0)\n return false;\n $cut = findCutBefore($head);\n }\n let node = $cut && $cut.nodeBefore;\n if (!node || !prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"NodeSelection\"].isSelectable(node))\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"NodeSelection\"].create(state.doc, $cut.pos - node.nodeSize)).scrollIntoView());\n return true;\n};\nfunction findCutBefore($pos) {\n if (!$pos.parent.type.spec.isolating)\n for (let i = $pos.depth - 1; i >= 0; i--) {\n if ($pos.index(i) > 0)\n return $pos.doc.resolve($pos.before(i + 1));\n if ($pos.node(i).type.spec.isolating)\n break;\n }\n return null;\n}\nfunction atBlockEnd(state, view) {\n let { $cursor } = state.selection;\n if (!$cursor || (view ? !view.endOfTextblock(\"forward\", state)\n : $cursor.parentOffset < $cursor.parent.content.size))\n return null;\n return $cursor;\n}\n/**\nIf the selection is empty and the cursor is at the end of a\ntextblock, try to reduce or remove the boundary between that block\nand the one after it, either by joining them or by moving the other\nblock closer to this one in the tree structure. Will use the view\nfor accurate start-of-textblock detection if given.\n*/\nconst joinForward = (state, dispatch, view) => {\n let $cursor = atBlockEnd(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutAfter($cursor);\n // If there is no node after this, there's nothing to do\n if (!$cut)\n return false;\n let after = $cut.nodeAfter;\n // Try the joining algorithm\n if (deleteBarrier(state, $cut, dispatch))\n return true;\n // If the node above has no content and the node below is\n // selectable, delete the node above and select the one below.\n if ($cursor.parent.content.size == 0 &&\n (textblockAt(after, \"start\") || prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"NodeSelection\"].isSelectable(after))) {\n let delStep = Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"replaceStep\"])(state.doc, $cursor.before(), $cursor.after(), prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Slice\"].empty);\n if (delStep && delStep.slice.size < delStep.to - delStep.from) {\n if (dispatch) {\n let tr = state.tr.step(delStep);\n tr.setSelection(textblockAt(after, \"start\") ? prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"Selection\"].findFrom(tr.doc.resolve(tr.mapping.map($cut.pos)), 1)\n : prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"NodeSelection\"].create(tr.doc, tr.mapping.map($cut.pos)));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n // If the next node is an atom, delete it\n if (after.isAtom && $cut.depth == $cursor.depth - 1) {\n if (dispatch)\n dispatch(state.tr.delete($cut.pos, $cut.pos + after.nodeSize).scrollIntoView());\n return true;\n }\n return false;\n};\n/**\nWhen the selection is empty and at the end of a textblock, select\nthe node coming after that textblock, if possible. This is intended\nto be bound to keys like delete, after\n[`joinForward`](https://prosemirror.net/docs/ref/#commands.joinForward) and similar deleting\ncommands, to provide a fall-back behavior when the schema doesn't\nallow deletion at the selected point.\n*/\nconst selectNodeForward = (state, dispatch, view) => {\n let { $head, empty } = state.selection, $cut = $head;\n if (!empty)\n return false;\n if ($head.parent.isTextblock) {\n if (view ? !view.endOfTextblock(\"forward\", state) : $head.parentOffset < $head.parent.content.size)\n return false;\n $cut = findCutAfter($head);\n }\n let node = $cut && $cut.nodeAfter;\n if (!node || !prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"NodeSelection\"].isSelectable(node))\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"NodeSelection\"].create(state.doc, $cut.pos)).scrollIntoView());\n return true;\n};\nfunction findCutAfter($pos) {\n if (!$pos.parent.type.spec.isolating)\n for (let i = $pos.depth - 1; i >= 0; i--) {\n let parent = $pos.node(i);\n if ($pos.index(i) + 1 < parent.childCount)\n return $pos.doc.resolve($pos.after(i + 1));\n if (parent.type.spec.isolating)\n break;\n }\n return null;\n}\n/**\nJoin the selected block or, if there is a text selection, the\nclosest ancestor block of the selection that can be joined, with\nthe sibling above it.\n*/\nconst joinUp = (state, dispatch) => {\n let sel = state.selection, nodeSel = sel instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"NodeSelection\"], point;\n if (nodeSel) {\n if (sel.node.isTextblock || !Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"canJoin\"])(state.doc, sel.from))\n return false;\n point = sel.from;\n }\n else {\n point = Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"joinPoint\"])(state.doc, sel.from, -1);\n if (point == null)\n return false;\n }\n if (dispatch) {\n let tr = state.tr.join(point);\n if (nodeSel)\n tr.setSelection(prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"NodeSelection\"].create(tr.doc, point - state.doc.resolve(point).nodeBefore.nodeSize));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nJoin the selected block, or the closest ancestor of the selection\nthat can be joined, with the sibling after it.\n*/\nconst joinDown = (state, dispatch) => {\n let sel = state.selection, point;\n if (sel instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"NodeSelection\"]) {\n if (sel.node.isTextblock || !Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"canJoin\"])(state.doc, sel.to))\n return false;\n point = sel.to;\n }\n else {\n point = Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"joinPoint\"])(state.doc, sel.to, 1);\n if (point == null)\n return false;\n }\n if (dispatch)\n dispatch(state.tr.join(point).scrollIntoView());\n return true;\n};\n/**\nLift the selected block, or the closest ancestor block of the\nselection that can be lifted, out of its parent node.\n*/\nconst lift = (state, dispatch) => {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to), target = range && Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"liftTarget\"])(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n};\n/**\nIf the selection is in a node whose type has a truthy\n[`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) property in its spec, replace the\nselection with a newline character.\n*/\nconst newlineInCode = (state, dispatch) => {\n let { $head, $anchor } = state.selection;\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor))\n return false;\n if (dispatch)\n dispatch(state.tr.insertText(\"\\n\").scrollIntoView());\n return true;\n};\nfunction defaultBlockAt(match) {\n for (let i = 0; i < match.edgeCount; i++) {\n let { type } = match.edge(i);\n if (type.isTextblock && !type.hasRequiredAttrs())\n return type;\n }\n return null;\n}\n/**\nWhen the selection is in a node with a truthy\n[`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) property in its spec, create a\ndefault block after the code block, and move the cursor there.\n*/\nconst exitCode = (state, dispatch) => {\n let { $head, $anchor } = state.selection;\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor))\n return false;\n let above = $head.node(-1), after = $head.indexAfter(-1), type = defaultBlockAt(above.contentMatchAt(after));\n if (!type || !above.canReplaceWith(after, after, type))\n return false;\n if (dispatch) {\n let pos = $head.after(), tr = state.tr.replaceWith(pos, pos, type.createAndFill());\n tr.setSelection(prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"Selection\"].near(tr.doc.resolve(pos), 1));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nIf a block node is selected, create an empty paragraph before (if\nit is its parent's first child) or after it.\n*/\nconst createParagraphNear = (state, dispatch) => {\n let sel = state.selection, { $from, $to } = sel;\n if (sel instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"AllSelection\"] || $from.parent.inlineContent || $to.parent.inlineContent)\n return false;\n let type = defaultBlockAt($to.parent.contentMatchAt($to.indexAfter()));\n if (!type || !type.isTextblock)\n return false;\n if (dispatch) {\n let side = (!$from.parentOffset && $to.index() < $to.parent.childCount ? $from : $to).pos;\n let tr = state.tr.insert(side, type.createAndFill());\n tr.setSelection(prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"TextSelection\"].create(tr.doc, side + 1));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nIf the cursor is in an empty textblock that can be lifted, lift the\nblock.\n*/\nconst liftEmptyBlock = (state, dispatch) => {\n let { $cursor } = state.selection;\n if (!$cursor || $cursor.parent.content.size)\n return false;\n if ($cursor.depth > 1 && $cursor.after() != $cursor.end(-1)) {\n let before = $cursor.before();\n if (Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"canSplit\"])(state.doc, before)) {\n if (dispatch)\n dispatch(state.tr.split(before).scrollIntoView());\n return true;\n }\n }\n let range = $cursor.blockRange(), target = range && Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"liftTarget\"])(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n};\n/**\nCreate a variant of [`splitBlock`](https://prosemirror.net/docs/ref/#commands.splitBlock) that uses\na custom function to determine the type of the newly split off block.\n*/\nfunction splitBlockAs(splitNode) {\n return (state, dispatch) => {\n let { $from, $to } = state.selection;\n if (state.selection instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"NodeSelection\"] && state.selection.node.isBlock) {\n if (!$from.parentOffset || !Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"canSplit\"])(state.doc, $from.pos))\n return false;\n if (dispatch)\n dispatch(state.tr.split($from.pos).scrollIntoView());\n return true;\n }\n if (!$from.parent.isBlock)\n return false;\n if (dispatch) {\n let atEnd = $to.parentOffset == $to.parent.content.size;\n let tr = state.tr;\n if (state.selection instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"TextSelection\"] || state.selection instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"AllSelection\"])\n tr.deleteSelection();\n let deflt = $from.depth == 0 ? null : defaultBlockAt($from.node(-1).contentMatchAt($from.indexAfter(-1)));\n let splitType = splitNode && splitNode($to.parent, atEnd);\n let types = splitType ? [splitType] : atEnd && deflt ? [{ type: deflt }] : undefined;\n let can = Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"canSplit\"])(tr.doc, tr.mapping.map($from.pos), 1, types);\n if (!types && !can && Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"canSplit\"])(tr.doc, tr.mapping.map($from.pos), 1, deflt ? [{ type: deflt }] : undefined)) {\n if (deflt)\n types = [{ type: deflt }];\n can = true;\n }\n if (can) {\n tr.split(tr.mapping.map($from.pos), 1, types);\n if (!atEnd && !$from.parentOffset && $from.parent.type != deflt) {\n let first = tr.mapping.map($from.before()), $first = tr.doc.resolve(first);\n if (deflt && $from.node(-1).canReplaceWith($first.index(), $first.index() + 1, deflt))\n tr.setNodeMarkup(tr.mapping.map($from.before()), deflt);\n }\n }\n dispatch(tr.scrollIntoView());\n }\n return true;\n };\n}\n/**\nSplit the parent block of the selection. If the selection is a text\nselection, also delete its content.\n*/\nconst splitBlock = splitBlockAs();\n/**\nActs like [`splitBlock`](https://prosemirror.net/docs/ref/#commands.splitBlock), but without\nresetting the set of active marks at the cursor.\n*/\nconst splitBlockKeepMarks = (state, dispatch) => {\n return splitBlock(state, dispatch && (tr => {\n let marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());\n if (marks)\n tr.ensureMarks(marks);\n dispatch(tr);\n }));\n};\n/**\nMove the selection to the node wrapping the current selection, if\nany. (Will not select the document node.)\n*/\nconst selectParentNode = (state, dispatch) => {\n let { $from, to } = state.selection, pos;\n let same = $from.sharedDepth(to);\n if (same == 0)\n return false;\n pos = $from.before(same);\n if (dispatch)\n dispatch(state.tr.setSelection(prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"NodeSelection\"].create(state.doc, pos)));\n return true;\n};\n/**\nSelect the whole document.\n*/\nconst selectAll = (state, dispatch) => {\n if (dispatch)\n dispatch(state.tr.setSelection(new prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"AllSelection\"](state.doc)));\n return true;\n};\nfunction joinMaybeClear(state, $pos, dispatch) {\n let before = $pos.nodeBefore, after = $pos.nodeAfter, index = $pos.index();\n if (!before || !after || !before.type.compatibleContent(after.type))\n return false;\n if (!before.content.size && $pos.parent.canReplace(index - 1, index)) {\n if (dispatch)\n dispatch(state.tr.delete($pos.pos - before.nodeSize, $pos.pos).scrollIntoView());\n return true;\n }\n if (!$pos.parent.canReplace(index, index + 1) || !(after.isTextblock || Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"canJoin\"])(state.doc, $pos.pos)))\n return false;\n if (dispatch)\n dispatch(state.tr\n .clearIncompatible($pos.pos, before.type, before.contentMatchAt(before.childCount))\n .join($pos.pos)\n .scrollIntoView());\n return true;\n}\nfunction deleteBarrier(state, $cut, dispatch) {\n let before = $cut.nodeBefore, after = $cut.nodeAfter, conn, match;\n if (before.type.spec.isolating || after.type.spec.isolating)\n return false;\n if (joinMaybeClear(state, $cut, dispatch))\n return true;\n let canDelAfter = $cut.parent.canReplace($cut.index(), $cut.index() + 1);\n if (canDelAfter &&\n (conn = (match = before.contentMatchAt(before.childCount)).findWrapping(after.type)) &&\n match.matchType(conn[0] || after.type).validEnd) {\n if (dispatch) {\n let end = $cut.pos + after.nodeSize, wrap = prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Fragment\"].empty;\n for (let i = conn.length - 1; i >= 0; i--)\n wrap = prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Fragment\"].from(conn[i].create(null, wrap));\n wrap = prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Fragment\"].from(before.copy(wrap));\n let tr = state.tr.step(new prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"ReplaceAroundStep\"]($cut.pos - 1, end, $cut.pos, end, new prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Slice\"](wrap, 1, 0), conn.length, true));\n let joinAt = end + 2 * conn.length;\n if (Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"canJoin\"])(tr.doc, joinAt))\n tr.join(joinAt);\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n let selAfter = prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"Selection\"].findFrom($cut, 1);\n let range = selAfter && selAfter.$from.blockRange(selAfter.$to), target = range && Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"liftTarget\"])(range);\n if (target != null && target >= $cut.depth) {\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n }\n if (canDelAfter && textblockAt(after, \"start\", true) && textblockAt(before, \"end\")) {\n let at = before, wrap = [];\n for (;;) {\n wrap.push(at);\n if (at.isTextblock)\n break;\n at = at.lastChild;\n }\n let afterText = after, afterDepth = 1;\n for (; !afterText.isTextblock; afterText = afterText.firstChild)\n afterDepth++;\n if (at.canReplace(at.childCount, at.childCount, afterText.content)) {\n if (dispatch) {\n let end = prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Fragment\"].empty;\n for (let i = wrap.length - 1; i >= 0; i--)\n end = prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Fragment\"].from(wrap[i].copy(end));\n let tr = state.tr.step(new prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"ReplaceAroundStep\"]($cut.pos - wrap.length, $cut.pos + after.nodeSize, $cut.pos + afterDepth, $cut.pos + after.nodeSize - afterDepth, new prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Slice\"](end, wrap.length, 0), 0, true));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n return false;\n}\nfunction selectTextblockSide(side) {\n return function (state, dispatch) {\n let sel = state.selection, $pos = side < 0 ? sel.$from : sel.$to;\n let depth = $pos.depth;\n while ($pos.node(depth).isInline) {\n if (!depth)\n return false;\n depth--;\n }\n if (!$pos.node(depth).isTextblock)\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"TextSelection\"].create(state.doc, side < 0 ? $pos.start(depth) : $pos.end(depth))));\n return true;\n };\n}\n/**\nMoves the cursor to the start of current text block.\n*/\nconst selectTextblockStart = selectTextblockSide(-1);\n/**\nMoves the cursor to the end of current text block.\n*/\nconst selectTextblockEnd = selectTextblockSide(1);\n// Parameterized commands\n/**\nWrap the selection in a node of the given type with the given\nattributes.\n*/\nfunction wrapIn(nodeType, attrs = null) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to), wrapping = range && Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"findWrapping\"])(range, nodeType, attrs);\n if (!wrapping)\n return false;\n if (dispatch)\n dispatch(state.tr.wrap(range, wrapping).scrollIntoView());\n return true;\n };\n}\n/**\nReturns a command that tries to set the selected textblocks to the\ngiven node type with the given attributes.\n*/\nfunction setBlockType(nodeType, attrs = null) {\n return function (state, dispatch) {\n let applicable = false;\n for (let i = 0; i < state.selection.ranges.length && !applicable; i++) {\n let { $from: { pos: from }, $to: { pos: to } } = state.selection.ranges[i];\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (applicable)\n return false;\n if (!node.isTextblock || node.hasMarkup(nodeType, attrs))\n return;\n if (node.type == nodeType) {\n applicable = true;\n }\n else {\n let $pos = state.doc.resolve(pos), index = $pos.index();\n applicable = $pos.parent.canReplaceWith(index, index + 1, nodeType);\n }\n });\n }\n if (!applicable)\n return false;\n if (dispatch) {\n let tr = state.tr;\n for (let i = 0; i < state.selection.ranges.length; i++) {\n let { $from: { pos: from }, $to: { pos: to } } = state.selection.ranges[i];\n tr.setBlockType(from, to, nodeType, attrs);\n }\n dispatch(tr.scrollIntoView());\n }\n return true;\n };\n}\nfunction markApplies(doc, ranges, type) {\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n let can = $from.depth == 0 ? doc.inlineContent && doc.type.allowsMarkType(type) : false;\n doc.nodesBetween($from.pos, $to.pos, node => {\n if (can)\n return false;\n can = node.inlineContent && node.type.allowsMarkType(type);\n });\n if (can)\n return true;\n }\n return false;\n}\n/**\nCreate a command function that toggles the given mark with the\ngiven attributes. Will return `false` when the current selection\ndoesn't support that mark. This will remove the mark if any marks\nof that type exist in the selection, or add it otherwise. If the\nselection is empty, this applies to the [stored\nmarks](https://prosemirror.net/docs/ref/#state.EditorState.storedMarks) instead of a range of the\ndocument.\n*/\nfunction toggleMark(markType, attrs = null) {\n return function (state, dispatch) {\n let { empty, $cursor, ranges } = state.selection;\n if ((empty && !$cursor) || !markApplies(state.doc, ranges, markType))\n return false;\n if (dispatch) {\n if ($cursor) {\n if (markType.isInSet(state.storedMarks || $cursor.marks()))\n dispatch(state.tr.removeStoredMark(markType));\n else\n dispatch(state.tr.addStoredMark(markType.create(attrs)));\n }\n else {\n let has = false, tr = state.tr;\n for (let i = 0; !has && i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n has = state.doc.rangeHasMark($from.pos, $to.pos, markType);\n }\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n if (has) {\n tr.removeMark($from.pos, $to.pos, markType);\n }\n else {\n let from = $from.pos, to = $to.pos, start = $from.nodeAfter, end = $to.nodeBefore;\n let spaceStart = start && start.isText ? /^\\s*/.exec(start.text)[0].length : 0;\n let spaceEnd = end && end.isText ? /\\s*$/.exec(end.text)[0].length : 0;\n if (from + spaceStart < to) {\n from += spaceStart;\n to -= spaceEnd;\n }\n tr.addMark(from, to, markType.create(attrs));\n }\n }\n dispatch(tr.scrollIntoView());\n }\n }\n return true;\n };\n}\nfunction wrapDispatchForJoin(dispatch, isJoinable) {\n return (tr) => {\n if (!tr.isGeneric)\n return dispatch(tr);\n let ranges = [];\n for (let i = 0; i < tr.mapping.maps.length; i++) {\n let map = tr.mapping.maps[i];\n for (let j = 0; j < ranges.length; j++)\n ranges[j] = map.map(ranges[j]);\n map.forEach((_s, _e, from, to) => ranges.push(from, to));\n }\n // Figure out which joinable points exist inside those ranges,\n // by checking all node boundaries in their parent nodes.\n let joinable = [];\n for (let i = 0; i < ranges.length; i += 2) {\n let from = ranges[i], to = ranges[i + 1];\n let $from = tr.doc.resolve(from), depth = $from.sharedDepth(to), parent = $from.node(depth);\n for (let index = $from.indexAfter(depth), pos = $from.after(depth + 1); pos <= to; ++index) {\n let after = parent.maybeChild(index);\n if (!after)\n break;\n if (index && joinable.indexOf(pos) == -1) {\n let before = parent.child(index - 1);\n if (before.type == after.type && isJoinable(before, after))\n joinable.push(pos);\n }\n pos += after.nodeSize;\n }\n }\n // Join the joinable points\n joinable.sort((a, b) => a - b);\n for (let i = joinable.length - 1; i >= 0; i--) {\n if (Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_0__[\"canJoin\"])(tr.doc, joinable[i]))\n tr.join(joinable[i]);\n }\n dispatch(tr);\n };\n}\n/**\nWrap a command so that, when it produces a transform that causes\ntwo joinable nodes to end up next to each other, those are joined.\nNodes are considered joinable when they are of the same type and\nwhen the `isJoinable` predicate returns true for them or, if an\narray of strings was passed, if their node type name is in that\narray.\n*/\nfunction autoJoin(command, isJoinable) {\n let canJoin = Array.isArray(isJoinable) ? (node) => isJoinable.indexOf(node.type.name) > -1\n : isJoinable;\n return (state, dispatch, view) => command(state, dispatch && wrapDispatchForJoin(dispatch, canJoin), view);\n}\n/**\nCombine a number of command functions into a single function (which\ncalls them one by one until one returns true).\n*/\nfunction chainCommands(...commands) {\n return function (state, dispatch, view) {\n for (let i = 0; i < commands.length; i++)\n if (commands[i](state, dispatch, view))\n return true;\n return false;\n };\n}\nlet backspace = chainCommands(deleteSelection, joinBackward, selectNodeBackward);\nlet del = chainCommands(deleteSelection, joinForward, selectNodeForward);\n/**\nA basic keymap containing bindings not specific to any schema.\nBinds the following keys (when multiple commands are listed, they\nare chained with [`chainCommands`](https://prosemirror.net/docs/ref/#commands.chainCommands)):\n\n* **Enter** to `newlineInCode`, `createParagraphNear`, `liftEmptyBlock`, `splitBlock`\n* **Mod-Enter** to `exitCode`\n* **Backspace** and **Mod-Backspace** to `deleteSelection`, `joinBackward`, `selectNodeBackward`\n* **Delete** and **Mod-Delete** to `deleteSelection`, `joinForward`, `selectNodeForward`\n* **Mod-Delete** to `deleteSelection`, `joinForward`, `selectNodeForward`\n* **Mod-a** to `selectAll`\n*/\nconst pcBaseKeymap = {\n \"Enter\": chainCommands(newlineInCode, createParagraphNear, liftEmptyBlock, splitBlock),\n \"Mod-Enter\": exitCode,\n \"Backspace\": backspace,\n \"Mod-Backspace\": backspace,\n \"Shift-Backspace\": backspace,\n \"Delete\": del,\n \"Mod-Delete\": del,\n \"Mod-a\": selectAll\n};\n/**\nA copy of `pcBaseKeymap` that also binds **Ctrl-h** like Backspace,\n**Ctrl-d** like Delete, **Alt-Backspace** like Ctrl-Backspace, and\n**Ctrl-Alt-Backspace**, **Alt-Delete**, and **Alt-d** like\nCtrl-Delete.\n*/\nconst macBaseKeymap = {\n \"Ctrl-h\": pcBaseKeymap[\"Backspace\"],\n \"Alt-Backspace\": pcBaseKeymap[\"Mod-Backspace\"],\n \"Ctrl-d\": pcBaseKeymap[\"Delete\"],\n \"Ctrl-Alt-Backspace\": pcBaseKeymap[\"Mod-Delete\"],\n \"Alt-Delete\": pcBaseKeymap[\"Mod-Delete\"],\n \"Alt-d\": pcBaseKeymap[\"Mod-Delete\"],\n \"Ctrl-a\": selectTextblockStart,\n \"Ctrl-e\": selectTextblockEnd\n};\nfor (let key in pcBaseKeymap)\n macBaseKeymap[key] = pcBaseKeymap[key];\nconst mac = typeof navigator != \"undefined\" ? /Mac|iP(hone|[oa]d)/.test(navigator.platform)\n // @ts-ignore\n : typeof os != \"undefined\" && os.platform ? os.platform() == \"darwin\" : false;\n/**\nDepending on the detected platform, this will hold\n[`pcBasekeymap`](https://prosemirror.net/docs/ref/#commands.pcBaseKeymap) or\n[`macBaseKeymap`](https://prosemirror.net/docs/ref/#commands.macBaseKeymap).\n*/\nconst baseKeymap = mac ? macBaseKeymap : pcBaseKeymap;\n\n\n\n\n//# sourceURL=webpack:///./node_modules/prosemirror-commands/dist/index.js?");
/***/ }),
/***/ "./node_modules/prosemirror-history/dist/index.js":
/*!********************************************************!*\
!*** ./node_modules/prosemirror-history/dist/index.js ***!
\********************************************************/
/*! exports provided: closeHistory, history, redo, redoDepth, redoNoScroll, undo, undoDepth, undoNoScroll */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"closeHistory\", function() { return closeHistory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"history\", function() { return history; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"redo\", function() { return redo; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"redoDepth\", function() { return redoDepth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"redoNoScroll\", function() { return redoNoScroll; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"undo\", function() { return undo; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"undoDepth\", function() { return undoDepth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"undoNoScroll\", function() { return undoNoScroll; });\n/* harmony import */ var rope_sequence__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rope-sequence */ \"./node_modules/rope-sequence/dist/index.js\");\n/* harmony import */ var prosemirror_transform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prosemirror-transform */ \"./node_modules/prosemirror-transform/dist/index.js\");\n/* harmony import */ var prosemirror_state__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prosemirror-state */ \"./node_modules/prosemirror-state/dist/index.js\");\n\n\n\n\n// ProseMirror's history isn't simply a way to roll back to a previous\n// state, because ProseMirror supports applying changes without adding\n// them to the history (for example during collaboration).\n//\n// To this end, each 'Branch' (one for the undo history and one for\n// the redo history) keeps an array of 'Items', which can optionally\n// hold a step (an actual undoable change), and always hold a position\n// map (which is needed to move changes below them to apply to the\n// current document).\n//\n// An item that has both a step and a selection bookmark is the start\n// of an 'event' — a group of changes that will be undone or redone at\n// once. (It stores only the bookmark, since that way we don't have to\n// provide a document until the selection is actually applied, which\n// is useful when compressing.)\n// Used to schedule history compression\nconst max_empty_items = 500;\nclass Branch {\n constructor(items, eventCount) {\n this.items = items;\n this.eventCount = eventCount;\n }\n // Pop the latest event off the branch's history and apply it\n // to a document transform.\n popEvent(state, preserveItems) {\n if (this.eventCount == 0)\n return null;\n let end = this.items.length;\n for (;; end--) {\n let next = this.items.get(end - 1);\n if (next.selection) {\n --end;\n break;\n }\n }\n let remap, mapFrom;\n if (preserveItems) {\n remap = this.remapping(end, this.items.length);\n mapFrom = remap.maps.length;\n }\n let transform = state.tr;\n let selection, remaining;\n let addAfter = [], addBefore = [];\n this.items.forEach((item, i) => {\n if (!item.step) {\n if (!remap) {\n remap = this.remapping(end, i + 1);\n mapFrom = remap.maps.length;\n }\n mapFrom--;\n addBefore.push(item);\n return;\n }\n if (remap) {\n addBefore.push(new Item(item.map));\n let step = item.step.map(remap.slice(mapFrom)), map;\n if (step && transform.maybeStep(step).doc) {\n map = transform.mapping.maps[transform.mapping.maps.length - 1];\n addAfter.push(new Item(map, undefined, undefined, addAfter.length + addBefore.length));\n }\n mapFrom--;\n if (map)\n remap.appendMap(map, mapFrom);\n }\n else {\n transform.maybeStep(item.step);\n }\n if (item.selection) {\n selection = remap ? item.selection.map(remap.slice(mapFrom)) : item.selection;\n remaining = new Branch(this.items.slice(0, end).append(addBefore.reverse().concat(addAfter)), this.eventCount - 1);\n return false;\n }\n }, this.items.length, 0);\n return { remaining: remaining, transform, selection: selection };\n }\n // Create a new branch with the given transform added.\n addTransform(transform, selection, histOptions, preserveItems) {\n let newItems = [], eventCount = this.eventCount;\n let oldItems = this.items, lastItem = !preserveItems && oldItems.length ? oldItems.get(oldItems.length - 1) : null;\n for (let i = 0; i < transform.steps.length; i++) {\n let step = transform.steps[i].invert(transform.docs[i]);\n let item = new Item(transform.mapping.maps[i], step, selection), merged;\n if (merged = lastItem && lastItem.merge(item)) {\n item = merged;\n if (i)\n newItems.pop();\n else\n oldItems = oldItems.slice(0, oldItems.length - 1);\n }\n newItems.push(item);\n if (selection) {\n eventCount++;\n selection = undefined;\n }\n if (!preserveItems)\n lastItem = item;\n }\n let overflow = eventCount - histOptions.depth;\n if (overflow > DEPTH_OVERFLOW) {\n oldItems = cutOffEvents(oldItems, overflow);\n eventCount -= overflow;\n }\n return new Branch(oldItems.append(newItems), eventCount);\n }\n remapping(from, to) {\n let maps = new prosemirror_transform__WEBPACK_IMPORTED_MODULE_1__[\"Mapping\"];\n this.items.forEach((item, i) => {\n let mirrorPos = item.mirrorOffset != null && i - item.mirrorOffset >= from\n ? maps.maps.length - item.mirrorOffset : undefined;\n maps.appendMap(item.map, mirrorPos);\n }, from, to);\n return maps;\n }\n addMaps(array) {\n if (this.eventCount == 0)\n return this;\n return new Branch(this.items.append(array.map(map => new Item(map))), this.eventCount);\n }\n // When the collab module receives remote changes, the history has\n // to know about those, so that it can adjust the steps that were\n // rebased on top of the remote changes, and include the position\n // maps for the remote changes in its array of items.\n rebased(rebasedTransform, rebasedCount) {\n if (!this.eventCount)\n return this;\n let rebasedItems = [], start = Math.max(0, this.items.length - rebasedCount);\n let mapping = rebasedTransform.mapping;\n let newUntil = rebasedTransform.steps.length;\n let eventCount = this.eventCount;\n this.items.forEach(item => { if (item.selection)\n eventCount--; }, start);\n let iRebased = rebasedCount;\n this.items.forEach(item => {\n let pos = mapping.getMirror(--iRebased);\n if (pos == null)\n return;\n newUntil = Math.min(newUntil, pos);\n let map = mapping.maps[pos];\n if (item.step) {\n let step = rebasedTransform.steps[pos].invert(rebasedTransform.docs[pos]);\n let selection = item.selection && item.selection.map(mapping.slice(iRebased + 1, pos));\n if (selection)\n eventCount++;\n rebasedItems.push(new Item(map, step, selection));\n }\n else {\n rebasedItems.push(new Item(map));\n }\n }, start);\n let newMaps = [];\n for (let i = rebasedCount; i < newUntil; i++)\n newMaps.push(new Item(mapping.maps[i]));\n let items = this.items.slice(0, start).append(newMaps).append(rebasedItems);\n let branch = new Branch(items, eventCount);\n if (branch.emptyItemCount() > max_empty_items)\n branch = branch.compress(this.items.length - rebasedItems.length);\n return branch;\n }\n emptyItemCount() {\n let count = 0;\n this.items.forEach(item => { if (!item.step)\n count++; });\n return count;\n }\n // Compressing a branch means rewriting it to push the air (map-only\n // items) out. During collaboration, these naturally accumulate\n // because each remote change adds one. The `upto` argument is used\n // to ensure that only the items below a given level are compressed,\n // because `rebased` relies on a clean, untouched set of items in\n // order to associate old items with rebased steps.\n compress(upto = this.items.length) {\n let remap = this.remapping(0, upto), mapFrom = remap.maps.length;\n let items = [], events = 0;\n this.items.forEach((item, i) => {\n if (i >= upto) {\n items.push(item);\n if (item.selection)\n events++;\n }\n else if (item.step) {\n let step = item.step.map(remap.slice(mapFrom)), map = step && step.getMap();\n mapFrom--;\n if (map)\n remap.appendMap(map, mapFrom);\n if (step) {\n let selection = item.selection && item.selection.map(remap.slice(mapFrom));\n if (selection)\n events++;\n let newItem = new Item(map.invert(), step, selection), merged, last = items.length - 1;\n if (merged = items.length && items[last].merge(newItem))\n items[last] = merged;\n else\n items.push(newItem);\n }\n }\n else if (item.map) {\n mapFrom--;\n }\n }, this.items.length, 0);\n return new Branch(rope_sequence__WEBPACK_IMPORTED_MODULE_0__[\"default\"].from(items.reverse()), events);\n }\n}\nBranch.empty = new Branch(rope_sequence__WEBPACK_IMPORTED_MODULE_0__[\"default\"].empty, 0);\nfunction cutOffEvents(items, n) {\n let cutPoint;\n items.forEach((item, i) => {\n if (item.selection && (n-- == 0)) {\n cutPoint = i;\n return false;\n }\n });\n return items.slice(cutPoint);\n}\nclass Item {\n constructor(\n // The (forward) step map for this item.\n map, \n // The inverted step\n step, \n // If this is non-null, this item is the start of a group, and\n // this selection is the starting selection for the group (the one\n // that was active before the first step was applied)\n selection, \n // If this item is the inverse of a previous mapping on the stack,\n // this points at the inverse's offset\n mirrorOffset) {\n this.map = map;\n this.step = step;\n this.selection = selection;\n this.mirrorOffset = mirrorOffset;\n }\n merge(other) {\n if (this.step && other.step && !other.selection) {\n let step = other.step.merge(this.step);\n if (step)\n return new Item(step.getMap().invert(), step, this.selection);\n }\n }\n}\n// The value of the state field that tracks undo/redo history for that\n// state. Will be stored in the plugin state when the history plugin\n// is active.\nclass HistoryState {\n constructor(done, undone, prevRanges, prevTime, prevComposition) {\n this.done = done;\n this.undone = undone;\n this.prevRanges = prevRanges;\n this.prevTime = prevTime;\n this.prevComposition = prevComposition;\n }\n}\nconst DEPTH_OVERFLOW = 20;\n// Record a transformation in undo history.\nfunction applyTransaction(history, state, tr, options) {\n let historyTr = tr.getMeta(historyKey), rebased;\n if (historyTr)\n return historyTr.historyState;\n if (tr.getMeta(closeHistoryKey))\n history = new HistoryState(history.done, history.undone, null, 0, -1);\n let appended = tr.getMeta(\"appendedTransaction\");\n if (tr.steps.length == 0) {\n return history;\n }\n else if (appended && appended.getMeta(historyKey)) {\n if (appended.getMeta(historyKey).redo)\n return new HistoryState(history.done.addTransform(tr, undefined, options, mustPreserveItems(state)), history.undone, rangesFor(tr.mapping.maps[tr.steps.length - 1]), history.prevTime, history.prevComposition);\n else\n return new HistoryState(history.done, history.undone.addTransform(tr, undefined, options, mustPreserveItems(state)), null, history.prevTime, history.prevComposition);\n }\n else if (tr.getMeta(\"addToHistory\") !== false && !(appended && appended.getMeta(\"addToHistory\") === false)) {\n // Group transforms that occur in quick succession into one event.\n let composition = tr.getMeta(\"composition\");\n let newGroup = history.prevTime == 0 ||\n (!appended && history.prevComposition != composition &&\n (history.prevTime < (tr.time || 0) - options.newGroupDelay || !isAdjacentTo(tr, history.prevRanges)));\n let prevRanges = appended ? mapRanges(history.prevRanges, tr.mapping) : rangesFor(tr.mapping.maps[tr.steps.length - 1]);\n return new HistoryState(history.done.addTransform(tr, newGroup ? state.selection.getBookmark() : undefined, options, mustPreserveItems(state)), Branch.empty, prevRanges, tr.time, composition == null ? history.prevComposition : composition);\n }\n else if (rebased = tr.getMeta(\"rebased\")) {\n // Used by the collab module to tell the history that some of its\n // content has been rebased.\n return new HistoryState(history.done.rebased(tr, rebased), history.undone.rebased(tr, rebased), mapRanges(history.prevRanges, tr.mapping), history.prevTime, history.prevComposition);\n }\n else {\n return new HistoryState(history.done.addMaps(tr.mapping.maps), history.undone.addMaps(tr.mapping.maps), mapRanges(history.prevRanges, tr.mapping), history.prevTime, history.prevComposition);\n }\n}\nfunction isAdjacentTo(transform, prevRanges) {\n if (!prevRanges)\n return false;\n if (!transform.docChanged)\n return true;\n let adjacent = false;\n transform.mapping.maps[0].forEach((start, end) => {\n for (let i = 0; i < prevRanges.length; i += 2)\n if (start <= prevRanges[i + 1] && end >= prevRanges[i])\n adjacent = true;\n });\n return adjacent;\n}\nfunction rangesFor(map) {\n let result = [];\n map.forEach((_from, _to, from, to) => result.push(from, to));\n return result;\n}\nfunction mapRanges(ranges, mapping) {\n if (!ranges)\n return null;\n let result = [];\n for (let i = 0; i < ranges.length; i += 2) {\n let from = mapping.map(ranges[i], 1), to = mapping.map(ranges[i + 1], -1);\n if (from <= to)\n result.push(from, to);\n }\n return result;\n}\n// Apply the latest event from one branch to the document and shift the event\n// onto the other branch.\nfunction histTransaction(history, state, redo) {\n let preserveItems = mustPreserveItems(state);\n let histOptions = historyKey.get(state).spec.config;\n let pop = (redo ? history.undone : history.done).popEvent(state, preserveItems);\n if (!pop)\n return null;\n let selection = pop.selection.resolve(pop.transform.doc);\n let added = (redo ? history.done : history.undone).addTransform(pop.transform, state.selection.getBookmark(), histOptions, preserveItems);\n let newHist = new HistoryState(redo ? added : pop.remaining, redo ? pop.remaining : added, null, 0, -1);\n return pop.transform.setSelection(selection).setMeta(historyKey, { redo, historyState: newHist });\n}\nlet cachedPreserveItems = false, cachedPreserveItemsPlugins = null;\n// Check whether any plugin in the given state has a\n// `historyPreserveItems` property in its spec, in which case we must\n// preserve steps exactly as they came in, so that they can be\n// rebased.\nfunction mustPreserveItems(state) {\n let plugins = state.plugins;\n if (cachedPreserveItemsPlugins != plugins) {\n cachedPreserveItems = false;\n cachedPreserveItemsPlugins = plugins;\n for (let i = 0; i < plugins.length; i++)\n if (plugins[i].spec.historyPreserveItems) {\n cachedPreserveItems = true;\n break;\n }\n }\n return cachedPreserveItems;\n}\n/**\nSet a flag on the given transaction that will prevent further steps\nfrom being appended to an existing history event (so that they\nrequire a separate undo command to undo).\n*/\nfunction closeHistory(tr) {\n return tr.setMeta(closeHistoryKey, true);\n}\nconst historyKey = new prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"PluginKey\"](\"history\");\nconst closeHistoryKey = new prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"PluginKey\"](\"closeHistory\");\n/**\nReturns a plugin that enables the undo history for an editor. The\nplugin will track undo and redo stacks, which can be used with the\n[`undo`](https://prosemirror.net/docs/ref/#history.undo) and [`redo`](https://prosemirror.net/docs/ref/#history.redo) commands.\n\nYou can set an `\"addToHistory\"` [metadata\nproperty](https://prosemirror.net/docs/ref/#state.Transaction.setMeta) of `false` on a transaction\nto prevent it from being rolled back by undo.\n*/\nfunction history(config = {}) {\n config = { depth: config.depth || 100,\n newGroupDelay: config.newGroupDelay || 500 };\n return new prosemirror_state__WEBPACK_IMPORTED_MODULE_2__[\"Plugin\"]({\n key: historyKey,\n state: {\n init() {\n return new HistoryState(Branch.empty, Branch.empty, null, 0, -1);\n },\n apply(tr, hist, state) {\n return applyTransaction(hist, state, tr, config);\n }\n },\n config,\n props: {\n handleDOMEvents: {\n beforeinput(view, e) {\n let inputType = e.inputType;\n let command = inputType == \"historyUndo\" ? undo : inputType == \"historyRedo\" ? redo : null;\n if (!command)\n return false;\n e.preventDefault();\n return command(view.state, view.dispatch);\n }\n }\n }\n });\n}\nfunction buildCommand(redo, scroll) {\n return (state, dispatch) => {\n let hist = historyKey.getState(state);\n if (!hist || (redo ? hist.undone : hist.done).eventCount == 0)\n return false;\n if (dispatch) {\n let tr = histTransaction(hist, state, redo);\n if (tr)\n dispatch(scroll ? tr.scrollIntoView() : tr);\n }\n return true;\n };\n}\n/**\nA command function that undoes the last change, if any.\n*/\nconst undo = buildCommand(false, true);\n/**\nA command function that redoes the last undone change, if any.\n*/\nconst redo = buildCommand(true, true);\n/**\nA command function that undoes the last change. Don't scroll the\nselection into view.\n*/\nconst undoNoScroll = buildCommand(false, false);\n/**\nA command function that redoes the last undone change. Don't\nscroll the selection into view.\n*/\nconst redoNoScroll = buildCommand(true, false);\n/**\nThe amount of undoable events available in a given state.\n*/\nfunction undoDepth(state) {\n let hist = historyKey.getState(state);\n return hist ? hist.done.eventCount : 0;\n}\n/**\nThe amount of redoable events available in a given editor state.\n*/\nfunction redoDepth(state) {\n let hist = historyKey.getState(state);\n return hist ? hist.undone.eventCount : 0;\n}\n\n\n\n\n//# sourceURL=webpack:///./node_modules/prosemirror-history/dist/index.js?");
/***/ }),
/***/ "./node_modules/prosemirror-inputrules/dist/index.js":
/*!***********************************************************!*\
!*** ./node_modules/prosemirror-inputrules/dist/index.js ***!
\***********************************************************/
/*! exports provided: InputRule, closeDoubleQuote, closeSingleQuote, ellipsis, emDash, inputRules, openDoubleQuote, openSingleQuote, smartQuotes, textblockTypeInputRule, undoInputRule, wrappingInputRule */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InputRule\", function() { return InputRule; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"closeDoubleQuote\", function() { return closeDoubleQuote; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"closeSingleQuote\", function() { return closeSingleQuote; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ellipsis\", function() { return ellipsis; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"emDash\", function() { return emDash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"inputRules\", function() { return inputRules; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"openDoubleQuote\", function() { return openDoubleQuote; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"openSingleQuote\", function() { return openSingleQuote; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"smartQuotes\", function() { return smartQuotes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"textblockTypeInputRule\", function() { return textblockTypeInputRule; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"undoInputRule\", function() { return undoInputRule; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wrappingInputRule\", function() { return wrappingInputRule; });\n/* harmony import */ var prosemirror_state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prosemirror-state */ \"./node_modules/prosemirror-state/dist/index.js\");\n/* harmony import */ var prosemirror_transform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prosemirror-transform */ \"./node_modules/prosemirror-transform/dist/index.js\");\n\n\n\n/**\nInput rules are regular expressions describing a piece of text\nthat, when typed, causes something to happen. This might be\nchanging two dashes into an emdash, wrapping a paragraph starting\nwith `\"> \"` into a blockquote, or something entirely different.\n*/\nclass InputRule {\n // :: (RegExp, union<string, (state: EditorState, match: [string], start: number, end: number) → ?Transaction>)\n /**\n Create an input rule. The rule applies when the user typed\n something and the text directly in front of the cursor matches\n `match`, which should end with `$`.\n \n The `handler` can be a string, in which case the matched text, or\n the first matched group in the regexp, is replaced by that\n string.\n \n Or a it can be a function, which will be called with the match\n array produced by\n [`RegExp.exec`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec),\n as well as the start and end of the matched range, and which can\n return a [transaction](https://prosemirror.net/docs/ref/#state.Transaction) that describes the\n rule's effect, or null to indicate the input was not handled.\n */\n constructor(\n /**\n @internal\n */\n match, handler, options = {}) {\n this.match = match;\n this.match = match;\n this.handler = typeof handler == \"string\" ? stringHandler(handler) : handler;\n this.undoable = options.undoable !== false;\n this.inCode = options.inCode || false;\n }\n}\nfunction stringHandler(string) {\n return function (state, match, start, end) {\n let insert = string;\n if (match[1]) {\n let offset = match[0].lastIndexOf(match[1]);\n insert += match[0].slice(offset + match[1].length);\n start += offset;\n let cutOff = start - end;\n if (cutOff > 0) {\n insert = match[0].slice(offset - cutOff, offset) + insert;\n start = end;\n }\n }\n return state.tr.insertText(insert, start, end);\n };\n}\nconst MAX_MATCH = 500;\n/**\nCreate an input rules plugin. When enabled, it will cause text\ninput that matches any of the given rules to trigger the rule's\naction.\n*/\nfunction inputRules({ rules }) {\n let plugin = new prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"Plugin\"]({\n state: {\n init() { return null; },\n apply(tr, prev) {\n let stored = tr.getMeta(this);\n if (stored)\n return stored;\n return tr.selectionSet || tr.docChanged ? null : prev;\n }\n },\n props: {\n handleTextInput(view, from, to, text) {\n return run(view, from, to, text, rules, plugin);\n },\n handleDOMEvents: {\n compositionend: (view) => {\n setTimeout(() => {\n let { $cursor } = view.state.selection;\n if ($cursor)\n run(view, $cursor.pos, $cursor.pos, \"\", rules, plugin);\n });\n }\n }\n },\n isInputRules: true\n });\n return plugin;\n}\nfunction run(view, from, to, text, rules, plugin) {\n if (view.composing)\n return false;\n let state = view.state, $from = state.doc.resolve(from);\n let textBefore = $from.parent.textBetween(Math.max(0, $from.parentOffset - MAX_MATCH), $from.parentOffset, null, \"\\ufffc\") + text;\n for (let i = 0; i < rules.length; i++) {\n let rule = rules[i];\n if ($from.parent.type.spec.code) {\n if (!rule.inCode)\n continue;\n }\n else if (rule.inCode === \"only\") {\n continue;\n }\n let match = rule.match.exec(textBefore);\n let tr = match && rule.handler(state, match, from - (match[0].length - text.length), to);\n if (!tr)\n continue;\n if (rule.undoable)\n tr.setMeta(plugin, { transform: tr, from, to, text });\n view.dispatch(tr);\n return true;\n }\n return false;\n}\n/**\nThis is a command that will undo an input rule, if applying such a\nrule was the last thing that the user did.\n*/\nconst undoInputRule = (state, dispatch) => {\n let plugins = state.plugins;\n for (let i = 0; i < plugins.length; i++) {\n let plugin = plugins[i], undoable;\n if (plugin.spec.isInputRules && (undoable = plugin.getState(state))) {\n if (dispatch) {\n let tr = state.tr, toUndo = undoable.transform;\n for (let j = toUndo.steps.length - 1; j >= 0; j--)\n tr.step(toUndo.steps[j].invert(toUndo.docs[j]));\n if (undoable.text) {\n let marks = tr.doc.resolve(undoable.from).marks();\n tr.replaceWith(undoable.from, undoable.to, state.schema.text(undoable.text, marks));\n }\n else {\n tr.delete(undoable.from, undoable.to);\n }\n dispatch(tr);\n }\n return true;\n }\n }\n return false;\n};\n\n/**\nConverts double dashes to an emdash.\n*/\nconst emDash = new InputRule(/--$/, \"—\");\n/**\nConverts three dots to an ellipsis character.\n*/\nconst ellipsis = new InputRule(/\\.\\.\\.$/, \"…\");\n/**\n“Smart” opening double quotes.\n*/\nconst openDoubleQuote = new InputRule(/(?:^|[\\s\\{\\[\\(\\<'\"\\u2018\\u201C])(\")$/, \"“\");\n/**\n“Smart” closing double quotes.\n*/\nconst closeDoubleQuote = new InputRule(/\"$/, \"”\");\n/**\n“Smart” opening single quotes.\n*/\nconst openSingleQuote = new InputRule(/(?:^|[\\s\\{\\[\\(\\<'\"\\u2018\\u201C])(')$/, \"\");\n/**\n“Smart” closing single quotes.\n*/\nconst closeSingleQuote = new InputRule(/'$/, \"\");\n/**\nSmart-quote related input rules.\n*/\nconst smartQuotes = [openDoubleQuote, closeDoubleQuote, openSingleQuote, closeSingleQuote];\n\n/**\nBuild an input rule for automatically wrapping a textblock when a\ngiven string is typed. The `regexp` argument is\ndirectly passed through to the `InputRule` constructor. You'll\nprobably want the regexp to start with `^`, so that the pattern can\nonly occur at the start of a textblock.\n\n`nodeType` is the type of node to wrap in. If it needs attributes,\nyou can either pass them directly, or pass a function that will\ncompute them from the regular expression match.\n\nBy default, if there's a node with the same type above the newly\nwrapped node, the rule will try to [join](https://prosemirror.net/docs/ref/#transform.Transform.join) those\ntwo nodes. You can pass a join predicate, which takes a regular\nexpression match and the node before the wrapped node, and can\nreturn a boolean to indicate whether a join should happen.\n*/\nfunction wrappingInputRule(regexp, nodeType, getAttrs = null, joinPredicate) {\n return new InputRule(regexp, (state, match, start, end) => {\n let attrs = getAttrs instanceof Function ? getAttrs(match) : getAttrs;\n let tr = state.tr.delete(start, end);\n let $start = tr.doc.resolve(start), range = $start.blockRange(), wrapping = range && Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_1__[\"findWrapping\"])(range, nodeType, attrs);\n if (!wrapping)\n return null;\n tr.wrap(range, wrapping);\n let before = tr.doc.resolve(start - 1).nodeBefore;\n if (before && before.type == nodeType && Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_1__[\"canJoin\"])(tr.doc, start - 1) &&\n (!joinPredicate || joinPredicate(match, before)))\n tr.join(start - 1);\n return tr;\n });\n}\n/**\nBuild an input rule that changes the type of a textblock when the\nmatched text is typed into it. You'll usually want to start your\nregexp with `^` to that it is only matched at the start of a\ntextblock. The optional `getAttrs` parameter can be used to compute\nthe new node's attributes, and works the same as in the\n`wrappingInputRule` function.\n*/\nfunction textblockTypeInputRule(regexp, nodeType, getAttrs = null) {\n return new InputRule(regexp, (state, match, start, end) => {\n let $start = state.doc.resolve(start);\n let attrs = getAttrs instanceof Function ? getAttrs(match) : getAttrs;\n if (!$start.node(-1).canReplaceWith($start.index(-1), $start.indexAfter(-1), nodeType))\n return null;\n return state.tr\n .delete(start, end)\n .setBlockType(start, start, nodeType, attrs);\n });\n}\n\n\n\n\n//# sourceURL=webpack:///./node_modules/prosemirror-inputrules/dist/index.js?");
/***/ }),
/***/ "./node_modules/prosemirror-keymap/dist/index.js":
/*!*******************************************************!*\
!*** ./node_modules/prosemirror-keymap/dist/index.js ***!
\*******************************************************/
/*! exports provided: keydownHandler, keymap */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keydownHandler\", function() { return keydownHandler; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keymap\", function() { return keymap; });\n/* harmony import */ var w3c_keyname__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! w3c-keyname */ \"./node_modules/w3c-keyname/index.js\");\n/* harmony import */ var prosemirror_state__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prosemirror-state */ \"./node_modules/prosemirror-state/dist/index.js\");\n\n\n\nconst mac = typeof navigator != \"undefined\" ? /Mac|iP(hone|[oa]d)/.test(navigator.platform) : false;\nfunction normalizeKeyName(name) {\n let parts = name.split(/-(?!$)/), result = parts[parts.length - 1];\n if (result == \"Space\")\n result = \" \";\n let alt, ctrl, shift, meta;\n for (let i = 0; i < parts.length - 1; i++) {\n let mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod))\n meta = true;\n else if (/^a(lt)?$/i.test(mod))\n alt = true;\n else if (/^(c|ctrl|control)$/i.test(mod))\n ctrl = true;\n else if (/^s(hift)?$/i.test(mod))\n shift = true;\n else if (/^mod$/i.test(mod)) {\n if (mac)\n meta = true;\n else\n ctrl = true;\n }\n else\n throw new Error(\"Unrecognized modifier name: \" + mod);\n }\n if (alt)\n result = \"Alt-\" + result;\n if (ctrl)\n result = \"Ctrl-\" + result;\n if (meta)\n result = \"Meta-\" + result;\n if (shift)\n result = \"Shift-\" + result;\n return result;\n}\nfunction normalize(map) {\n let copy = Object.create(null);\n for (let prop in map)\n copy[normalizeKeyName(prop)] = map[prop];\n return copy;\n}\nfunction modifiers(name, event, shift = true) {\n if (event.altKey)\n name = \"Alt-\" + name;\n if (event.ctrlKey)\n name = \"Ctrl-\" + name;\n if (event.metaKey)\n name = \"Meta-\" + name;\n if (shift && event.shiftKey)\n name = \"Shift-\" + name;\n return name;\n}\n/**\nCreate a keymap plugin for the given set of bindings.\n\nBindings should map key names to [command](https://prosemirror.net/docs/ref/#commands)-style\nfunctions, which will be called with `(EditorState, dispatch,\nEditorView)` arguments, and should return true when they've handled\nthe key. Note that the view argument isn't part of the command\nprotocol, but can be used as an escape hatch if a binding needs to\ndirectly interact with the UI.\n\nKey names may be strings like `\"Shift-Ctrl-Enter\"`—a key\nidentifier prefixed with zero or more modifiers. Key identifiers\nare based on the strings that can appear in\n[`KeyEvent.key`](https:developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key).\nUse lowercase letters to refer to letter keys (or uppercase letters\nif you want shift to be held). You may use `\"Space\"` as an alias\nfor the `\" \"` name.\n\nModifiers can be given in any order. `Shift-` (or `s-`), `Alt-` (or\n`a-`), `Ctrl-` (or `c-` or `Control-`) and `Cmd-` (or `m-` or\n`Meta-`) are recognized. For characters that are created by holding\nshift, the `Shift-` prefix is implied, and should not be added\nexplicitly.\n\nYou can use `Mod-` as a shorthand for `Cmd-` on Mac and `Ctrl-` on\nother platforms.\n\nYou can add multiple keymap plugins to an editor. The order in\nwhich they appear determines their precedence (the ones early in\nthe array get to dispatch first).\n*/\nfunction keymap(bindings) {\n return new prosemirror_state__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]({ props: { handleKeyDown: keydownHandler(bindings) } });\n}\n/**\nGiven a set of bindings (using the same format as\n[`keymap`](https://prosemirror.net/docs/ref/#keymap.keymap)), return a [keydown\nhandler](https://prosemirror.net/docs/ref/#view.EditorProps.handleKeyDown) that handles them.\n*/\nfunction keydownHandler(bindings) {\n let map = normalize(bindings);\n return function (view, event) {\n let name = Object(w3c_keyname__WEBPACK_IMPORTED_MODULE_0__[\"keyName\"])(event), baseName, direct = map[modifiers(name, event)];\n if (direct && direct(view.state, view.dispatch, view))\n return true;\n // A character key\n if (name.length == 1 && name != \" \") {\n if (event.shiftKey) {\n // In case the name was already modified by shift, try looking\n // it up without its shift modifier\n let noShift = map[modifiers(name, event, false)];\n if (noShift && noShift(view.state, view.dispatch, view))\n return true;\n }\n if ((event.shiftKey || event.altKey || event.metaKey || name.charCodeAt(0) > 127) &&\n (baseName = w3c_keyname__WEBPACK_IMPORTED_MODULE_0__[\"base\"][event.keyCode]) && baseName != name) {\n // Try falling back to the keyCode when there's a modifier\n // active or the character produced isn't ASCII, and our table\n // produces a different name from the the keyCode. See #668,\n // #1060\n let fromCode = map[modifiers(baseName, event)];\n if (fromCode && fromCode(view.state, view.dispatch, view))\n return true;\n }\n }\n return false;\n };\n}\n\n\n\n\n//# sourceURL=webpack:///./node_modules/prosemirror-keymap/dist/index.js?");
/***/ }),
/***/ "./node_modules/prosemirror-model/dist/index.js":
/*!******************************************************!*\
!*** ./node_modules/prosemirror-model/dist/index.js ***!
\******************************************************/
/*! exports provided: ContentMatch, DOMParser, DOMSerializer, Fragment, Mark, MarkType, Node, NodeRange, NodeType, ReplaceError, ResolvedPos, Schema, Slice */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ContentMatch\", function() { return ContentMatch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DOMParser\", function() { return DOMParser; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DOMSerializer\", function() { return DOMSerializer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Fragment\", function() { return Fragment; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Mark\", function() { return Mark; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MarkType\", function() { return MarkType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Node\", function() { return Node; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NodeRange\", function() { return NodeRange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NodeType\", function() { return NodeType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ReplaceError\", function() { return ReplaceError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ResolvedPos\", function() { return ResolvedPos; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Schema\", function() { return Schema; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Slice\", function() { return Slice; });\n/* harmony import */ var orderedmap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! orderedmap */ \"./node_modules/orderedmap/dist/index.js\");\n\n\nfunction findDiffStart(a, b, pos) {\n for (let i = 0;; i++) {\n if (i == a.childCount || i == b.childCount)\n return a.childCount == b.childCount ? null : pos;\n let childA = a.child(i), childB = b.child(i);\n if (childA == childB) {\n pos += childA.nodeSize;\n continue;\n }\n if (!childA.sameMarkup(childB))\n return pos;\n if (childA.isText && childA.text != childB.text) {\n for (let j = 0; childA.text[j] == childB.text[j]; j++)\n pos++;\n return pos;\n }\n if (childA.content.size || childB.content.size) {\n let inner = findDiffStart(childA.content, childB.content, pos + 1);\n if (inner != null)\n return inner;\n }\n pos += childA.nodeSize;\n }\n}\nfunction findDiffEnd(a, b, posA, posB) {\n for (let iA = a.childCount, iB = b.childCount;;) {\n if (iA == 0 || iB == 0)\n return iA == iB ? null : { a: posA, b: posB };\n let childA = a.child(--iA), childB = b.child(--iB), size = childA.nodeSize;\n if (childA == childB) {\n posA -= size;\n posB -= size;\n continue;\n }\n if (!childA.sameMarkup(childB))\n return { a: posA, b: posB };\n if (childA.isText && childA.text != childB.text) {\n let same = 0, minSize = Math.min(childA.text.length, childB.text.length);\n while (same < minSize && childA.text[childA.text.length - same - 1] == childB.text[childB.text.length - same - 1]) {\n same++;\n posA--;\n posB--;\n }\n return { a: posA, b: posB };\n }\n if (childA.content.size || childB.content.size) {\n let inner = findDiffEnd(childA.content, childB.content, posA - 1, posB - 1);\n if (inner)\n return inner;\n }\n posA -= size;\n posB -= size;\n }\n}\n\n/**\nA fragment represents a node's collection of child nodes.\n\nLike nodes, fragments are persistent data structures, and you\nshould not mutate them or their content. Rather, you create new\ninstances whenever needed. The API tries to make this easy.\n*/\nclass Fragment {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n content, size) {\n this.content = content;\n this.size = size || 0;\n if (size == null)\n for (let i = 0; i < content.length; i++)\n this.size += content[i].nodeSize;\n }\n /**\n Invoke a callback for all descendant nodes between the given two\n positions (relative to start of this fragment). Doesn't descend\n into a node when the callback returns `false`.\n */\n nodesBetween(from, to, f, nodeStart = 0, parent) {\n for (let i = 0, pos = 0; pos < to; i++) {\n let child = this.content[i], end = pos + child.nodeSize;\n if (end > from && f(child, nodeStart + pos, parent || null, i) !== false && child.content.size) {\n let start = pos + 1;\n child.nodesBetween(Math.max(0, from - start), Math.min(child.content.size, to - start), f, nodeStart + start);\n }\n pos = end;\n }\n }\n /**\n Call the given callback for every descendant node. `pos` will be\n relative to the start of the fragment. The callback may return\n `false` to prevent traversal of a given node's children.\n */\n descendants(f) {\n this.nodesBetween(0, this.size, f);\n }\n /**\n Extract the text between `from` and `to`. See the same method on\n [`Node`](https://prosemirror.net/docs/ref/#model.Node.textBetween).\n */\n textBetween(from, to, blockSeparator, leafText) {\n let text = \"\", first = true;\n this.nodesBetween(from, to, (node, pos) => {\n let nodeText = node.isText ? node.text.slice(Math.max(from, pos) - pos, to - pos)\n : !node.isLeaf ? \"\"\n : leafText ? (typeof leafText === \"function\" ? leafText(node) : leafText)\n : node.type.spec.leafText ? node.type.spec.leafText(node)\n : \"\";\n if (node.isBlock && (node.isLeaf && nodeText || node.isTextblock) && blockSeparator) {\n if (first)\n first = false;\n else\n text += blockSeparator;\n }\n text += nodeText;\n }, 0);\n return text;\n }\n /**\n Create a new fragment containing the combined content of this\n fragment and the other.\n */\n append(other) {\n if (!other.size)\n return this;\n if (!this.size)\n return other;\n let last = this.lastChild, first = other.firstChild, content = this.content.slice(), i = 0;\n if (last.isText && last.sameMarkup(first)) {\n content[content.length - 1] = last.withText(last.text + first.text);\n i = 1;\n }\n for (; i < other.content.length; i++)\n content.push(other.content[i]);\n return new Fragment(content, this.size + other.size);\n }\n /**\n Cut out the sub-fragment between the two given positions.\n */\n cut(from, to = this.size) {\n if (from == 0 && to == this.size)\n return this;\n let result = [], size = 0;\n if (to > from)\n for (let i = 0, pos = 0; pos < to; i++) {\n let child = this.content[i], end = pos + child.nodeSize;\n if (end > from) {\n if (pos < from || end > to) {\n if (child.isText)\n child = child.cut(Math.max(0, from - pos), Math.min(child.text.length, to - pos));\n else\n child = child.cut(Math.max(0, from - pos - 1), Math.min(child.content.size, to - pos - 1));\n }\n result.push(child);\n size += child.nodeSize;\n }\n pos = end;\n }\n return new Fragment(result, size);\n }\n /**\n @internal\n */\n cutByIndex(from, to) {\n if (from == to)\n return Fragment.empty;\n if (from == 0 && to == this.content.length)\n return this;\n return new Fragment(this.content.slice(from, to));\n }\n /**\n Create a new fragment in which the node at the given index is\n replaced by the given node.\n */\n replaceChild(index, node) {\n let current = this.content[index];\n if (current == node)\n return this;\n let copy = this.content.slice();\n let size = this.size + node.nodeSize - current.nodeSize;\n copy[index] = node;\n return new Fragment(copy, size);\n }\n /**\n Create a new fragment by prepending the given node to this\n fragment.\n */\n addToStart(node) {\n return new Fragment([node].concat(this.content), this.size + node.nodeSize);\n }\n /**\n Create a new fragment by appending the given node to this\n fragment.\n */\n addToEnd(node) {\n return new Fragment(this.content.concat(node), this.size + node.nodeSize);\n }\n /**\n Compare this fragment to another one.\n */\n eq(other) {\n if (this.content.length != other.content.length)\n return false;\n for (let i = 0; i < this.content.length; i++)\n if (!this.content[i].eq(other.content[i]))\n return false;\n return true;\n }\n /**\n The first child of the fragment, or `null` if it is empty.\n */\n get firstChild() { return this.content.length ? this.content[0] : null; }\n /**\n The last child of the fragment, or `null` if it is empty.\n */\n get lastChild() { return this.content.length ? this.content[this.content.length - 1] : null; }\n /**\n The number of child nodes in this fragment.\n */\n get childCount() { return this.content.length; }\n /**\n Get the child node at the given index. Raise an error when the\n index is out of range.\n */\n child(index) {\n let found = this.content[index];\n if (!found)\n throw new RangeError(\"Index \" + index + \" out of range for \" + this);\n return found;\n }\n /**\n Get the child node at the given index, if it exists.\n */\n maybeChild(index) {\n return this.content[index] || null;\n }\n /**\n Call `f` for every child node, passing the node, its offset\n into this parent node, and its index.\n */\n forEach(f) {\n for (let i = 0, p = 0; i < this.content.length; i++) {\n let child = this.content[i];\n f(child, p, i);\n p += child.nodeSize;\n }\n }\n /**\n Find the first position at which this fragment and another\n fragment differ, or `null` if they are the same.\n */\n findDiffStart(other, pos = 0) {\n return findDiffStart(this, other, pos);\n }\n /**\n Find the first position, searching from the end, at which this\n fragment and the given fragment differ, or `null` if they are\n the same. Since this position will not be the same in both\n nodes, an object with two separate positions is returned.\n */\n findDiffEnd(other, pos = this.size, otherPos = other.size) {\n return findDiffEnd(this, other, pos, otherPos);\n }\n /**\n Find the index and inner offset corresponding to a given relative\n position in this fragment. The result object will be reused\n (overwritten) the next time the function is called. @internal\n */\n findIndex(pos, round = -1) {\n if (pos == 0)\n return retIndex(0, pos);\n if (pos == this.size)\n return retIndex(this.content.length, pos);\n if (pos > this.size || pos < 0)\n throw new RangeError(`Position ${pos} outside of fragment (${this})`);\n for (let i = 0, curPos = 0;; i++) {\n let cur = this.child(i), end = curPos + cur.nodeSize;\n if (end >= pos) {\n if (end == pos || round > 0)\n return retIndex(i + 1, end);\n return retIndex(i, curPos);\n }\n curPos = end;\n }\n }\n /**\n Return a debugging string that describes this fragment.\n */\n toString() { return \"<\" + this.toStringInner() + \">\"; }\n /**\n @internal\n */\n toStringInner() { return this.content.join(\", \"); }\n /**\n Create a JSON-serializeable representation of this fragment.\n */\n toJSON() {\n return this.content.length ? this.content.map(n => n.toJSON()) : null;\n }\n /**\n Deserialize a fragment from its JSON representation.\n */\n static fromJSON(schema, value) {\n if (!value)\n return Fragment.empty;\n if (!Array.isArray(value))\n throw new RangeError(\"Invalid input for Fragment.fromJSON\");\n return new Fragment(value.map(schema.nodeFromJSON));\n }\n /**\n Build a fragment from an array of nodes. Ensures that adjacent\n text nodes with the same marks are joined together.\n */\n static fromArray(array) {\n if (!array.length)\n return Fragment.empty;\n let joined, size = 0;\n for (let i = 0; i < array.length; i++) {\n let node = array[i];\n size += node.nodeSize;\n if (i && node.isText && array[i - 1].sameMarkup(node)) {\n if (!joined)\n joined = array.slice(0, i);\n joined[joined.length - 1] = node\n .withText(joined[joined.length - 1].text + node.text);\n }\n else if (joined) {\n joined.push(node);\n }\n }\n return new Fragment(joined || array, size);\n }\n /**\n Create a fragment from something that can be interpreted as a\n set of nodes. For `null`, it returns the empty fragment. For a\n fragment, the fragment itself. For a node or array of nodes, a\n fragment containing those nodes.\n */\n static from(nodes) {\n if (!nodes)\n return Fragment.empty;\n if (nodes instanceof Fragment)\n return nodes;\n if (Array.isArray(nodes))\n return this.fromArray(nodes);\n if (nodes.attrs)\n return new Fragment([nodes], nodes.nodeSize);\n throw new RangeError(\"Can not convert \" + nodes + \" to a Fragment\" +\n (nodes.nodesBetween ? \" (looks like multiple versions of prosemirror-model were loaded)\" : \"\"));\n }\n}\n/**\nAn empty fragment. Intended to be reused whenever a node doesn't\ncontain anything (rather than allocating a new empty fragment for\neach leaf node).\n*/\nFragment.empty = new Fragment([], 0);\nconst found = { index: 0, offset: 0 };\nfunction retIndex(index, offset) {\n found.index = index;\n found.offset = offset;\n return found;\n}\n\nfunction compareDeep(a, b) {\n if (a === b)\n return true;\n if (!(a && typeof a == \"object\") ||\n !(b && typeof b == \"object\"))\n return false;\n let array = Array.isArray(a);\n if (Array.isArray(b) != array)\n return false;\n if (array) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!compareDeep(a[i], b[i]))\n return false;\n }\n else {\n for (let p in a)\n if (!(p in b) || !compareDeep(a[p], b[p]))\n return false;\n for (let p in b)\n if (!(p in a))\n return false;\n }\n return true;\n}\n\n/**\nA mark is a piece of information that can be attached to a node,\nsuch as it being emphasized, in code font, or a link. It has a\ntype and optionally a set of attributes that provide further\ninformation (such as the target of the link). Marks are created\nthrough a `Schema`, which controls which types exist and which\nattributes they have.\n*/\nclass Mark {\n /**\n @internal\n */\n constructor(\n /**\n The type of this mark.\n */\n type, \n /**\n The attributes associated with this mark.\n */\n attrs) {\n this.type = type;\n this.attrs = attrs;\n }\n /**\n Given a set of marks, create a new set which contains this one as\n well, in the right position. If this mark is already in the set,\n the set itself is returned. If any marks that are set to be\n [exclusive](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) with this mark are present,\n those are replaced by this one.\n */\n addToSet(set) {\n let copy, placed = false;\n for (let i = 0; i < set.length; i++) {\n let other = set[i];\n if (this.eq(other))\n return set;\n if (this.type.excludes(other.type)) {\n if (!copy)\n copy = set.slice(0, i);\n }\n else if (other.type.excludes(this.type)) {\n return set;\n }\n else {\n if (!placed && other.type.rank > this.type.rank) {\n if (!copy)\n copy = set.slice(0, i);\n copy.push(this);\n placed = true;\n }\n if (copy)\n copy.push(other);\n }\n }\n if (!copy)\n copy = set.slice();\n if (!placed)\n copy.push(this);\n return copy;\n }\n /**\n Remove this mark from the given set, returning a new set. If this\n mark is not in the set, the set itself is returned.\n */\n removeFromSet(set) {\n for (let i = 0; i < set.length; i++)\n if (this.eq(set[i]))\n return set.slice(0, i).concat(set.slice(i + 1));\n return set;\n }\n /**\n Test whether this mark is in the given set of marks.\n */\n isInSet(set) {\n for (let i = 0; i < set.length; i++)\n if (this.eq(set[i]))\n return true;\n return false;\n }\n /**\n Test whether this mark has the same type and attributes as\n another mark.\n */\n eq(other) {\n return this == other ||\n (this.type == other.type && compareDeep(this.attrs, other.attrs));\n }\n /**\n Convert this mark to a JSON-serializeable representation.\n */\n toJSON() {\n let obj = { type: this.type.name };\n for (let _ in this.attrs) {\n obj.attrs = this.attrs;\n break;\n }\n return obj;\n }\n /**\n Deserialize a mark from JSON.\n */\n static fromJSON(schema, json) {\n if (!json)\n throw new RangeError(\"Invalid input for Mark.fromJSON\");\n let type = schema.marks[json.type];\n if (!type)\n throw new RangeError(`There is no mark type ${json.type} in this schema`);\n return type.create(json.attrs);\n }\n /**\n Test whether two sets of marks are identical.\n */\n static sameSet(a, b) {\n if (a == b)\n return true;\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!a[i].eq(b[i]))\n return false;\n return true;\n }\n /**\n Create a properly sorted mark set from null, a single mark, or an\n unsorted array of marks.\n */\n static setFrom(marks) {\n if (!marks || Array.isArray(marks) && marks.length == 0)\n return Mark.none;\n if (marks instanceof Mark)\n return [marks];\n let copy = marks.slice();\n copy.sort((a, b) => a.type.rank - b.type.rank);\n return copy;\n }\n}\n/**\nThe empty set of marks.\n*/\nMark.none = [];\n\n/**\nError type raised by [`Node.replace`](https://prosemirror.net/docs/ref/#model.Node.replace) when\ngiven an invalid replacement.\n*/\nclass ReplaceError extends Error {\n}\n/*\nReplaceError = function(this: any, message: string) {\n let err = Error.call(this, message)\n ;(err as any).__proto__ = ReplaceError.prototype\n return err\n} as any\n\nReplaceError.prototype = Object.create(Error.prototype)\nReplaceError.prototype.constructor = ReplaceError\nReplaceError.prototype.name = \"ReplaceError\"\n*/\n/**\nA slice represents a piece cut out of a larger document. It\nstores not only a fragment, but also the depth up to which nodes on\nboth side are open (cut through).\n*/\nclass Slice {\n /**\n Create a slice. When specifying a non-zero open depth, you must\n make sure that there are nodes of at least that depth at the\n appropriate side of the fragment—i.e. if the fragment is an\n empty paragraph node, `openStart` and `openEnd` can't be greater\n than 1.\n \n It is not necessary for the content of open nodes to conform to\n the schema's content constraints, though it should be a valid\n start/end/middle for such a node, depending on which sides are\n open.\n */\n constructor(\n /**\n The slice's content.\n */\n content, \n /**\n The open depth at the start of the fragment.\n */\n openStart, \n /**\n The open depth at the end.\n */\n openEnd) {\n this.content = content;\n this.openStart = openStart;\n this.openEnd = openEnd;\n }\n /**\n The size this slice would add when inserted into a document.\n */\n get size() {\n return this.content.size - this.openStart - this.openEnd;\n }\n /**\n @internal\n */\n insertAt(pos, fragment) {\n let content = insertInto(this.content, pos + this.openStart, fragment);\n return content && new Slice(content, this.openStart, this.openEnd);\n }\n /**\n @internal\n */\n removeBetween(from, to) {\n return new Slice(removeRange(this.content, from + this.openStart, to + this.openStart), this.openStart, this.openEnd);\n }\n /**\n Tests whether this slice is equal to another slice.\n */\n eq(other) {\n return this.content.eq(other.content) && this.openStart == other.openStart && this.openEnd == other.openEnd;\n }\n /**\n @internal\n */\n toString() {\n return this.content + \"(\" + this.openStart + \",\" + this.openEnd + \")\";\n }\n /**\n Convert a slice to a JSON-serializable representation.\n */\n toJSON() {\n if (!this.content.size)\n return null;\n let json = { content: this.content.toJSON() };\n if (this.openStart > 0)\n json.openStart = this.openStart;\n if (this.openEnd > 0)\n json.openEnd = this.openEnd;\n return json;\n }\n /**\n Deserialize a slice from its JSON representation.\n */\n static fromJSON(schema, json) {\n if (!json)\n return Slice.empty;\n let openStart = json.openStart || 0, openEnd = json.openEnd || 0;\n if (typeof openStart != \"number\" || typeof openEnd != \"number\")\n throw new RangeError(\"Invalid input for Slice.fromJSON\");\n return new Slice(Fragment.fromJSON(schema, json.content), openStart, openEnd);\n }\n /**\n Create a slice from a fragment by taking the maximum possible\n open value on both side of the fragment.\n */\n static maxOpen(fragment, openIsolating = true) {\n let openStart = 0, openEnd = 0;\n for (let n = fragment.firstChild; n && !n.isLeaf && (openIsolating || !n.type.spec.isolating); n = n.firstChild)\n openStart++;\n for (let n = fragment.lastChild; n && !n.isLeaf && (openIsolating || !n.type.spec.isolating); n = n.lastChild)\n openEnd++;\n return new Slice(fragment, openStart, openEnd);\n }\n}\n/**\nThe empty slice.\n*/\nSlice.empty = new Slice(Fragment.empty, 0, 0);\nfunction removeRange(content, from, to) {\n let { index, offset } = content.findIndex(from), child = content.maybeChild(index);\n let { index: indexTo, offset: offsetTo } = content.findIndex(to);\n if (offset == from || child.isText) {\n if (offsetTo != to && !content.child(indexTo).isText)\n throw new RangeError(\"Removing non-flat range\");\n return content.cut(0, from).append(content.cut(to));\n }\n if (index != indexTo)\n throw new RangeError(\"Removing non-flat range\");\n return content.replaceChild(index, child.copy(removeRange(child.content, from - offset - 1, to - offset - 1)));\n}\nfunction insertInto(content, dist, insert, parent) {\n let { index, offset } = content.findIndex(dist), child = content.maybeChild(index);\n if (offset == dist || child.isText) {\n if (parent && !parent.canReplace(index, index, insert))\n return null;\n return content.cut(0, dist).append(insert).append(content.cut(dist));\n }\n let inner = insertInto(child.content, dist - offset - 1, insert);\n return inner && content.replaceChild(index, child.copy(inner));\n}\nfunction replace($from, $to, slice) {\n if (slice.openStart > $from.depth)\n throw new ReplaceError(\"Inserted content deeper than insertion position\");\n if ($from.depth - slice.openStart != $to.depth - slice.openEnd)\n throw new ReplaceError(\"Inconsistent open depths\");\n return replaceOuter($from, $to, slice, 0);\n}\nfunction replaceOuter($from, $to, slice, depth) {\n let index = $from.index(depth), node = $from.node(depth);\n if (index == $to.index(depth) && depth < $from.depth - slice.openStart) {\n let inner = replaceOuter($from, $to, slice, depth + 1);\n return node.copy(node.content.replaceChild(index, inner));\n }\n else if (!slice.content.size) {\n return close(node, replaceTwoWay($from, $to, depth));\n }\n else if (!slice.openStart && !slice.openEnd && $from.depth == depth && $to.depth == depth) { // Simple, flat case\n let parent = $from.parent, content = parent.content;\n return close(parent, content.cut(0, $from.parentOffset).append(slice.content).append(content.cut($to.parentOffset)));\n }\n else {\n let { start, end } = prepareSliceForReplace(slice, $from);\n return close(node, replaceThreeWay($from, start, end, $to, depth));\n }\n}\nfunction checkJoin(main, sub) {\n if (!sub.type.compatibleContent(main.type))\n throw new ReplaceError(\"Cannot join \" + sub.type.name + \" onto \" + main.type.name);\n}\nfunction joinable($before, $after, depth) {\n let node = $before.node(depth);\n checkJoin(node, $after.node(depth));\n return node;\n}\nfunction addNode(child, target) {\n let last = target.length - 1;\n if (last >= 0 && child.isText && child.sameMarkup(target[last]))\n target[last] = child.withText(target[last].text + child.text);\n else\n target.push(child);\n}\nfunction addRange($start, $end, depth, target) {\n let node = ($end || $start).node(depth);\n let startIndex = 0, endIndex = $end ? $end.index(depth) : node.childCount;\n if ($start) {\n startIndex = $start.index(depth);\n if ($start.depth > depth) {\n startIndex++;\n }\n else if ($start.textOffset) {\n addNode($start.nodeAfter, target);\n startIndex++;\n }\n }\n for (let i = startIndex; i < endIndex; i++)\n addNode(node.child(i), target);\n if ($end && $end.depth == depth && $end.textOffset)\n addNode($end.nodeBefore, target);\n}\nfunction close(node, content) {\n node.type.checkContent(content);\n return node.copy(content);\n}\nfunction replaceThreeWay($from, $start, $end, $to, depth) {\n let openStart = $from.depth > depth && joinable($from, $start, depth + 1);\n let openEnd = $to.depth > depth && joinable($end, $to, depth + 1);\n let content = [];\n addRange(null, $from, depth, content);\n if (openStart && openEnd && $start.index(depth) == $end.index(depth)) {\n checkJoin(openStart, openEnd);\n addNode(close(openStart, replaceThreeWay($from, $start, $end, $to, depth + 1)), content);\n }\n else {\n if (openStart)\n addNode(close(openStart, replaceTwoWay($from, $start, depth + 1)), content);\n addRange($start, $end, depth, content);\n if (openEnd)\n addNode(close(openEnd, replaceTwoWay($end, $to, depth + 1)), content);\n }\n addRange($to, null, depth, content);\n return new Fragment(content);\n}\nfunction replaceTwoWay($from, $to, depth) {\n let content = [];\n addRange(null, $from, depth, content);\n if ($from.depth > depth) {\n let type = joinable($from, $to, depth + 1);\n addNode(close(type, replaceTwoWay($from, $to, depth + 1)), content);\n }\n addRange($to, null, depth, content);\n return new Fragment(content);\n}\nfunction prepareSliceForReplace(slice, $along) {\n let extra = $along.depth - slice.openStart, parent = $along.node(extra);\n let node = parent.copy(slice.content);\n for (let i = extra - 1; i >= 0; i--)\n node = $along.node(i).copy(Fragment.from(node));\n return { start: node.resolveNoCache(slice.openStart + extra),\n end: node.resolveNoCache(node.content.size - slice.openEnd - extra) };\n}\n\n/**\nYou can [_resolve_](https://prosemirror.net/docs/ref/#model.Node.resolve) a position to get more\ninformation about it. Objects of this class represent such a\nresolved position, providing various pieces of context\ninformation, and some helper methods.\n\nThroughout this interface, methods that take an optional `depth`\nparameter will interpret undefined as `this.depth` and negative\nnumbers as `this.depth + value`.\n*/\nclass ResolvedPos {\n /**\n @internal\n */\n constructor(\n /**\n The position that was resolved.\n */\n pos, \n /**\n @internal\n */\n path, \n /**\n The offset this position has into its parent node.\n */\n parentOffset) {\n this.pos = pos;\n this.path = path;\n this.parentOffset = parentOffset;\n this.depth = path.length / 3 - 1;\n }\n /**\n @internal\n */\n resolveDepth(val) {\n if (val == null)\n return this.depth;\n if (val < 0)\n return this.depth + val;\n return val;\n }\n /**\n The parent node that the position points into. Note that even if\n a position points into a text node, that node is not considered\n the parent—text nodes are flat in this model, and have no content.\n */\n get parent() { return this.node(this.depth); }\n /**\n The root node in which the position was resolved.\n */\n get doc() { return this.node(0); }\n /**\n The ancestor node at the given level. `p.node(p.depth)` is the\n same as `p.parent`.\n */\n node(depth) { return this.path[this.resolveDepth(depth) * 3]; }\n /**\n The index into the ancestor at the given level. If this points\n at the 3rd node in the 2nd paragraph on the top level, for\n example, `p.index(0)` is 1 and `p.index(1)` is 2.\n */\n index(depth) { return this.path[this.resolveDepth(depth) * 3 + 1]; }\n /**\n The index pointing after this position into the ancestor at the\n given level.\n */\n indexAfter(depth) {\n depth = this.resolveDepth(depth);\n return this.index(depth) + (depth == this.depth && !this.textOffset ? 0 : 1);\n }\n /**\n The (absolute) position at the start of the node at the given\n level.\n */\n start(depth) {\n depth = this.resolveDepth(depth);\n return depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n }\n /**\n The (absolute) position at the end of the node at the given\n level.\n */\n end(depth) {\n depth = this.resolveDepth(depth);\n return this.start(depth) + this.node(depth).content.size;\n }\n /**\n The (absolute) position directly before the wrapping node at the\n given level, or, when `depth` is `this.depth + 1`, the original\n position.\n */\n before(depth) {\n depth = this.resolveDepth(depth);\n if (!depth)\n throw new RangeError(\"There is no position before the top-level node\");\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1];\n }\n /**\n The (absolute) position directly after the wrapping node at the\n given level, or the original position when `depth` is `this.depth + 1`.\n */\n after(depth) {\n depth = this.resolveDepth(depth);\n if (!depth)\n throw new RangeError(\"There is no position after the top-level node\");\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1] + this.path[depth * 3].nodeSize;\n }\n /**\n When this position points into a text node, this returns the\n distance between the position and the start of the text node.\n Will be zero for positions that point between nodes.\n */\n get textOffset() { return this.pos - this.path[this.path.length - 1]; }\n /**\n Get the node directly after the position, if any. If the position\n points into a text node, only the part of that node after the\n position is returned.\n */\n get nodeAfter() {\n let parent = this.parent, index = this.index(this.depth);\n if (index == parent.childCount)\n return null;\n let dOff = this.pos - this.path[this.path.length - 1], child = parent.child(index);\n return dOff ? parent.child(index).cut(dOff) : child;\n }\n /**\n Get the node directly before the position, if any. If the\n position points into a text node, only the part of that node\n before the position is returned.\n */\n get nodeBefore() {\n let index = this.index(this.depth);\n let dOff = this.pos - this.path[this.path.length - 1];\n if (dOff)\n return this.parent.child(index).cut(0, dOff);\n return index == 0 ? null : this.parent.child(index - 1);\n }\n /**\n Get the position at the given index in the parent node at the\n given depth (which defaults to `this.depth`).\n */\n posAtIndex(index, depth) {\n depth = this.resolveDepth(depth);\n let node = this.path[depth * 3], pos = depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n for (let i = 0; i < index; i++)\n pos += node.child(i).nodeSize;\n return pos;\n }\n /**\n Get the marks at this position, factoring in the surrounding\n marks' [`inclusive`](https://prosemirror.net/docs/ref/#model.MarkSpec.inclusive) property. If the\n position is at the start of a non-empty node, the marks of the\n node after it (if any) are returned.\n */\n marks() {\n let parent = this.parent, index = this.index();\n // In an empty parent, return the empty array\n if (parent.content.size == 0)\n return Mark.none;\n // When inside a text node, just return the text node's marks\n if (this.textOffset)\n return parent.child(index).marks;\n let main = parent.maybeChild(index - 1), other = parent.maybeChild(index);\n // If the `after` flag is true of there is no node before, make\n // the node after this position the main reference.\n if (!main) {\n let tmp = main;\n main = other;\n other = tmp;\n }\n // Use all marks in the main node, except those that have\n // `inclusive` set to false and are not present in the other node.\n let marks = main.marks;\n for (var i = 0; i < marks.length; i++)\n if (marks[i].type.spec.inclusive === false && (!other || !marks[i].isInSet(other.marks)))\n marks = marks[i--].removeFromSet(marks);\n return marks;\n }\n /**\n Get the marks after the current position, if any, except those\n that are non-inclusive and not present at position `$end`. This\n is mostly useful for getting the set of marks to preserve after a\n deletion. Will return `null` if this position is at the end of\n its parent node or its parent node isn't a textblock (in which\n case no marks should be preserved).\n */\n marksAcross($end) {\n let after = this.parent.maybeChild(this.index());\n if (!after || !after.isInline)\n return null;\n let marks = after.marks, next = $end.parent.maybeChild($end.index());\n for (var i = 0; i < marks.length; i++)\n if (marks[i].type.spec.inclusive === false && (!next || !marks[i].isInSet(next.marks)))\n marks = marks[i--].removeFromSet(marks);\n return marks;\n }\n /**\n The depth up to which this position and the given (non-resolved)\n position share the same parent nodes.\n */\n sharedDepth(pos) {\n for (let depth = this.depth; depth > 0; depth--)\n if (this.start(depth) <= pos && this.end(depth) >= pos)\n return depth;\n return 0;\n }\n /**\n Returns a range based on the place where this position and the\n given position diverge around block content. If both point into\n the same textblock, for example, a range around that textblock\n will be returned. If they point into different blocks, the range\n around those blocks in their shared ancestor is returned. You can\n pass in an optional predicate that will be called with a parent\n node to see if a range into that parent is acceptable.\n */\n blockRange(other = this, pred) {\n if (other.pos < this.pos)\n return other.blockRange(this);\n for (let d = this.depth - (this.parent.inlineContent || this.pos == other.pos ? 1 : 0); d >= 0; d--)\n if (other.pos <= this.end(d) && (!pred || pred(this.node(d))))\n return new NodeRange(this, other, d);\n return null;\n }\n /**\n Query whether the given position shares the same parent node.\n */\n sameParent(other) {\n return this.pos - this.parentOffset == other.pos - other.parentOffset;\n }\n /**\n Return the greater of this and the given position.\n */\n max(other) {\n return other.pos > this.pos ? other : this;\n }\n /**\n Return the smaller of this and the given position.\n */\n min(other) {\n return other.pos < this.pos ? other : this;\n }\n /**\n @internal\n */\n toString() {\n let str = \"\";\n for (let i = 1; i <= this.depth; i++)\n str += (str ? \"/\" : \"\") + this.node(i).type.name + \"_\" + this.index(i - 1);\n return str + \":\" + this.parentOffset;\n }\n /**\n @internal\n */\n static resolve(doc, pos) {\n if (!(pos >= 0 && pos <= doc.content.size))\n throw new RangeError(\"Position \" + pos + \" out of range\");\n let path = [];\n let start = 0, parentOffset = pos;\n for (let node = doc;;) {\n let { index, offset } = node.content.findIndex(parentOffset);\n let rem = parentOffset - offset;\n path.push(node, index, start + offset);\n if (!rem)\n break;\n node = node.child(index);\n if (node.isText)\n break;\n parentOffset = rem - 1;\n start += offset + 1;\n }\n return new ResolvedPos(pos, path, parentOffset);\n }\n /**\n @internal\n */\n static resolveCached(doc, pos) {\n let cache = resolveCache.get(doc);\n if (cache) {\n for (let i = 0; i < cache.elts.length; i++) {\n let elt = cache.elts[i];\n if (elt.pos == pos)\n return elt;\n }\n }\n else {\n resolveCache.set(doc, cache = new ResolveCache);\n }\n let result = cache.elts[cache.i] = ResolvedPos.resolve(doc, pos);\n cache.i = (cache.i + 1) % resolveCacheSize;\n return result;\n }\n}\nclass ResolveCache {\n constructor() {\n this.elts = [];\n this.i = 0;\n }\n}\nconst resolveCacheSize = 12, resolveCache = new WeakMap();\n/**\nRepresents a flat range of content, i.e. one that starts and\nends in the same node.\n*/\nclass NodeRange {\n /**\n Construct a node range. `$from` and `$to` should point into the\n same node until at least the given `depth`, since a node range\n denotes an adjacent set of nodes in a single parent node.\n */\n constructor(\n /**\n A resolved position along the start of the content. May have a\n `depth` greater than this object's `depth` property, since\n these are the positions that were used to compute the range,\n not re-resolved positions directly at its boundaries.\n */\n $from, \n /**\n A position along the end of the content. See\n caveat for [`$from`](https://prosemirror.net/docs/ref/#model.NodeRange.$from).\n */\n $to, \n /**\n The depth of the node that this range points into.\n */\n depth) {\n this.$from = $from;\n this.$to = $to;\n this.depth = depth;\n }\n /**\n The position at the start of the range.\n */\n get start() { return this.$from.before(this.depth + 1); }\n /**\n The position at the end of the range.\n */\n get end() { return this.$to.after(this.depth + 1); }\n /**\n The parent node that the range points into.\n */\n get parent() { return this.$from.node(this.depth); }\n /**\n The start index of the range in the parent node.\n */\n get startIndex() { return this.$from.index(this.depth); }\n /**\n The end index of the range in the parent node.\n */\n get endIndex() { return this.$to.indexAfter(this.depth); }\n}\n\nconst emptyAttrs = Object.create(null);\n/**\nThis class represents a node in the tree that makes up a\nProseMirror document. So a document is an instance of `Node`, with\nchildren that are also instances of `Node`.\n\nNodes are persistent data structures. Instead of changing them, you\ncreate new ones with the content you want. Old ones keep pointing\nat the old document shape. This is made cheaper by sharing\nstructure between the old and new data as much as possible, which a\ntree shape like this (without back pointers) makes easy.\n\n**Do not** directly mutate the properties of a `Node` object. See\n[the guide](/docs/guide/#doc) for more information.\n*/\nclass Node {\n /**\n @internal\n */\n constructor(\n /**\n The type of node that this is.\n */\n type, \n /**\n An object mapping attribute names to values. The kind of\n attributes allowed and required are\n [determined](https://prosemirror.net/docs/ref/#model.NodeSpec.attrs) by the node type.\n */\n attrs, \n // A fragment holding the node's children.\n content, \n /**\n The marks (things like whether it is emphasized or part of a\n link) applied to this node.\n */\n marks = Mark.none) {\n this.type = type;\n this.attrs = attrs;\n this.marks = marks;\n this.content = content || Fragment.empty;\n }\n /**\n The size of this node, as defined by the integer-based [indexing\n scheme](/docs/guide/#doc.indexing). For text nodes, this is the\n amount of characters. For other leaf nodes, it is one. For\n non-leaf nodes, it is the size of the content plus two (the\n start and end token).\n */\n get nodeSize() { return this.isLeaf ? 1 : 2 + this.content.size; }\n /**\n The number of children that the node has.\n */\n get childCount() { return this.content.childCount; }\n /**\n Get the child node at the given index. Raises an error when the\n index is out of range.\n */\n child(index) { return this.content.child(index); }\n /**\n Get the child node at the given index, if it exists.\n */\n maybeChild(index) { return this.content.maybeChild(index); }\n /**\n Call `f` for every child node, passing the node, its offset\n into this parent node, and its index.\n */\n forEach(f) { this.content.forEach(f); }\n /**\n Invoke a callback for all descendant nodes recursively between\n the given two positions that are relative to start of this\n node's content. The callback is invoked with the node, its\n position relative to the original node (method receiver),\n its parent node, and its child index. When the callback returns\n false for a given node, that node's children will not be\n recursed over. The last parameter can be used to specify a\n starting position to count from.\n */\n nodesBetween(from, to, f, startPos = 0) {\n this.content.nodesBetween(from, to, f, startPos, this);\n }\n /**\n Call the given callback for every descendant node. Doesn't\n descend into a node when the callback returns `false`.\n */\n descendants(f) {\n this.nodesBetween(0, this.content.size, f);\n }\n /**\n Concatenates all the text nodes found in this fragment and its\n children.\n */\n get textContent() {\n return (this.isLeaf && this.type.spec.leafText)\n ? this.type.spec.leafText(this)\n : this.textBetween(0, this.content.size, \"\");\n }\n /**\n Get all text between positions `from` and `to`. When\n `blockSeparator` is given, it will be inserted to separate text\n from different block nodes. If `leafText` is given, it'll be\n inserted for every non-text leaf node encountered, otherwise\n [`leafText`](https://prosemirror.net/docs/ref/#model.NodeSpec^leafText) will be used.\n */\n textBetween(from, to, blockSeparator, leafText) {\n return this.content.textBetween(from, to, blockSeparator, leafText);\n }\n /**\n Returns this node's first child, or `null` if there are no\n children.\n */\n get firstChild() { return this.content.firstChild; }\n /**\n Returns this node's last child, or `null` if there are no\n children.\n */\n get lastChild() { return this.content.lastChild; }\n /**\n Test whether two nodes represent the same piece of document.\n */\n eq(other) {\n return this == other || (this.sameMarkup(other) && this.content.eq(other.content));\n }\n /**\n Compare the markup (type, attributes, and marks) of this node to\n those of another. Returns `true` if both have the same markup.\n */\n sameMarkup(other) {\n return this.hasMarkup(other.type, other.attrs, other.marks);\n }\n /**\n Check whether this node's markup correspond to the given type,\n attributes, and marks.\n */\n hasMarkup(type, attrs, marks) {\n return this.type == type &&\n compareDeep(this.attrs, attrs || type.defaultAttrs || emptyAttrs) &&\n Mark.sameSet(this.marks, marks || Mark.none);\n }\n /**\n Create a new node with the same markup as this node, containing\n the given content (or empty, if no content is given).\n */\n copy(content = null) {\n if (content == this.content)\n return this;\n return new Node(this.type, this.attrs, content, this.marks);\n }\n /**\n Create a copy of this node, with the given set of marks instead\n of the node's own marks.\n */\n mark(marks) {\n return marks == this.marks ? this : new Node(this.type, this.attrs, this.content, marks);\n }\n /**\n Create a copy of this node with only the content between the\n given positions. If `to` is not given, it defaults to the end of\n the node.\n */\n cut(from, to = this.content.size) {\n if (from == 0 && to == this.content.size)\n return this;\n return this.copy(this.content.cut(from, to));\n }\n /**\n Cut out the part of the document between the given positions, and\n return it as a `Slice` object.\n */\n slice(from, to = this.content.size, includeParents = false) {\n if (from == to)\n return Slice.empty;\n let $from = this.resolve(from), $to = this.resolve(to);\n let depth = includeParents ? 0 : $from.sharedDepth(to);\n let start = $from.start(depth), node = $from.node(depth);\n let content = node.content.cut($from.pos - start, $to.pos - start);\n return new Slice(content, $from.depth - depth, $to.depth - depth);\n }\n /**\n Replace the part of the document between the given positions with\n the given slice. The slice must 'fit', meaning its open sides\n must be able to connect to the surrounding content, and its\n content nodes must be valid children for the node they are placed\n into. If any of this is violated, an error of type\n [`ReplaceError`](https://prosemirror.net/docs/ref/#model.ReplaceError) is thrown.\n */\n replace(from, to, slice) {\n return replace(this.resolve(from), this.resolve(to), slice);\n }\n /**\n Find the node directly after the given position.\n */\n nodeAt(pos) {\n for (let node = this;;) {\n let { index, offset } = node.content.findIndex(pos);\n node = node.maybeChild(index);\n if (!node)\n return null;\n if (offset == pos || node.isText)\n return node;\n pos -= offset + 1;\n }\n }\n /**\n Find the (direct) child node after the given offset, if any,\n and return it along with its index and offset relative to this\n node.\n */\n childAfter(pos) {\n let { index, offset } = this.content.findIndex(pos);\n return { node: this.content.maybeChild(index), index, offset };\n }\n /**\n Find the (direct) child node before the given offset, if any,\n and return it along with its index and offset relative to this\n node.\n */\n childBefore(pos) {\n if (pos == 0)\n return { node: null, index: 0, offset: 0 };\n let { index, offset } = this.content.findIndex(pos);\n if (offset < pos)\n return { node: this.content.child(index), index, offset };\n let node = this.content.child(index - 1);\n return { node, index: index - 1, offset: offset - node.nodeSize };\n }\n /**\n Resolve the given position in the document, returning an\n [object](https://prosemirror.net/docs/ref/#model.ResolvedPos) with information about its context.\n */\n resolve(pos) { return ResolvedPos.resolveCached(this, pos); }\n /**\n @internal\n */\n resolveNoCache(pos) { return ResolvedPos.resolve(this, pos); }\n /**\n Test whether a given mark or mark type occurs in this document\n between the two given positions.\n */\n rangeHasMark(from, to, type) {\n let found = false;\n if (to > from)\n this.nodesBetween(from, to, node => {\n if (type.isInSet(node.marks))\n found = true;\n return !found;\n });\n return found;\n }\n /**\n True when this is a block (non-inline node)\n */\n get isBlock() { return this.type.isBlock; }\n /**\n True when this is a textblock node, a block node with inline\n content.\n */\n get isTextblock() { return this.type.isTextblock; }\n /**\n True when this node allows inline content.\n */\n get inlineContent() { return this.type.inlineContent; }\n /**\n True when this is an inline node (a text node or a node that can\n appear among text).\n */\n get isInline() { return this.type.isInline; }\n /**\n True when this is a text node.\n */\n get isText() { return this.type.isText; }\n /**\n True when this is a leaf node.\n */\n get isLeaf() { return this.type.isLeaf; }\n /**\n True when this is an atom, i.e. when it does not have directly\n editable content. This is usually the same as `isLeaf`, but can\n be configured with the [`atom` property](https://prosemirror.net/docs/ref/#model.NodeSpec.atom)\n on a node's spec (typically used when the node is displayed as\n an uneditable [node view](https://prosemirror.net/docs/ref/#view.NodeView)).\n */\n get isAtom() { return this.type.isAtom; }\n /**\n Return a string representation of this node for debugging\n purposes.\n */\n toString() {\n if (this.type.spec.toDebugString)\n return this.type.spec.toDebugString(this);\n let name = this.type.name;\n if (this.content.size)\n name += \"(\" + this.content.toStringInner() + \")\";\n return wrapMarks(this.marks, name);\n }\n /**\n Get the content match in this node at the given index.\n */\n contentMatchAt(index) {\n let match = this.type.contentMatch.matchFragment(this.content, 0, index);\n if (!match)\n throw new Error(\"Called contentMatchAt on a node with invalid content\");\n return match;\n }\n /**\n Test whether replacing the range between `from` and `to` (by\n child index) with the given replacement fragment (which defaults\n to the empty fragment) would leave the node's content valid. You\n can optionally pass `start` and `end` indices into the\n replacement fragment.\n */\n canReplace(from, to, replacement = Fragment.empty, start = 0, end = replacement.childCount) {\n let one = this.contentMatchAt(from).matchFragment(replacement, start, end);\n let two = one && one.matchFragment(this.content, to);\n if (!two || !two.validEnd)\n return false;\n for (let i = start; i < end; i++)\n if (!this.type.allowsMarks(replacement.child(i).marks))\n return false;\n return true;\n }\n /**\n Test whether replacing the range `from` to `to` (by index) with\n a node of the given type would leave the node's content valid.\n */\n canReplaceWith(from, to, type, marks) {\n if (marks && !this.type.allowsMarks(marks))\n return false;\n let start = this.contentMatchAt(from).matchType(type);\n let end = start && start.matchFragment(this.content, to);\n return end ? end.validEnd : false;\n }\n /**\n Test whether the given node's content could be appended to this\n node. If that node is empty, this will only return true if there\n is at least one node type that can appear in both nodes (to avoid\n merging completely incompatible nodes).\n */\n canAppend(other) {\n if (other.content.size)\n return this.canReplace(this.childCount, this.childCount, other.content);\n else\n return this.type.compatibleContent(other.type);\n }\n /**\n Check whether this node and its descendants conform to the\n schema, and raise error when they do not.\n */\n check() {\n this.type.checkContent(this.content);\n let copy = Mark.none;\n for (let i = 0; i < this.marks.length; i++)\n copy = this.marks[i].addToSet(copy);\n if (!Mark.sameSet(copy, this.marks))\n throw new RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(m => m.type.name)}`);\n this.content.forEach(node => node.check());\n }\n /**\n Return a JSON-serializeable representation of this node.\n */\n toJSON() {\n let obj = { type: this.type.name };\n for (let _ in this.attrs) {\n obj.attrs = this.attrs;\n break;\n }\n if (this.content.size)\n obj.content = this.content.toJSON();\n if (this.marks.length)\n obj.marks = this.marks.map(n => n.toJSON());\n return obj;\n }\n /**\n Deserialize a node from its JSON representation.\n */\n static fromJSON(schema, json) {\n if (!json)\n throw new RangeError(\"Invalid input for Node.fromJSON\");\n let marks = undefined;\n if (json.marks) {\n if (!Array.isArray(json.marks))\n throw new RangeError(\"Invalid mark data for Node.fromJSON\");\n marks = json.marks.map(schema.markFromJSON);\n }\n if (json.type == \"text\") {\n if (typeof json.text != \"string\")\n throw new RangeError(\"Invalid text node in JSON\");\n return schema.text(json.text, marks);\n }\n let content = Fragment.fromJSON(schema, json.content);\n return schema.nodeType(json.type).create(json.attrs, content, marks);\n }\n}\nNode.prototype.text = undefined;\nclass TextNode extends Node {\n /**\n @internal\n */\n constructor(type, attrs, content, marks) {\n super(type, attrs, null, marks);\n if (!content)\n throw new RangeError(\"Empty text nodes are not allowed\");\n this.text = content;\n }\n toString() {\n if (this.type.spec.toDebugString)\n return this.type.spec.toDebugString(this);\n return wrapMarks(this.marks, JSON.stringify(this.text));\n }\n get textContent() { return this.text; }\n textBetween(from, to) { return this.text.slice(from, to); }\n get nodeSize() { return this.text.length; }\n mark(marks) {\n return marks == this.marks ? this : new TextNode(this.type, this.attrs, this.text, marks);\n }\n withText(text) {\n if (text == this.text)\n return this;\n return new TextNode(this.type, this.attrs, text, this.marks);\n }\n cut(from = 0, to = this.text.length) {\n if (from == 0 && to == this.text.length)\n return this;\n return this.withText(this.text.slice(from, to));\n }\n eq(other) {\n return this.sameMarkup(other) && this.text == other.text;\n }\n toJSON() {\n let base = super.toJSON();\n base.text = this.text;\n return base;\n }\n}\nfunction wrapMarks(marks, str) {\n for (let i = marks.length - 1; i >= 0; i--)\n str = marks[i].type.name + \"(\" + str + \")\";\n return str;\n}\n\n/**\nInstances of this class represent a match state of a node type's\n[content expression](https://prosemirror.net/docs/ref/#model.NodeSpec.content), and can be used to\nfind out whether further content matches here, and whether a given\nposition is a valid end of the node.\n*/\nclass ContentMatch {\n /**\n @internal\n */\n constructor(\n /**\n True when this match state represents a valid end of the node.\n */\n validEnd) {\n this.validEnd = validEnd;\n /**\n @internal\n */\n this.next = [];\n /**\n @internal\n */\n this.wrapCache = [];\n }\n /**\n @internal\n */\n static parse(string, nodeTypes) {\n let stream = new TokenStream(string, nodeTypes);\n if (stream.next == null)\n return ContentMatch.empty;\n let expr = parseExpr(stream);\n if (stream.next)\n stream.err(\"Unexpected trailing text\");\n let match = dfa(nfa(expr));\n checkForDeadEnds(match, stream);\n return match;\n }\n /**\n Match a node type, returning a match after that node if\n successful.\n */\n matchType(type) {\n for (let i = 0; i < this.next.length; i++)\n if (this.next[i].type == type)\n return this.next[i].next;\n return null;\n }\n /**\n Try to match a fragment. Returns the resulting match when\n successful.\n */\n matchFragment(frag, start = 0, end = frag.childCount) {\n let cur = this;\n for (let i = start; cur && i < end; i++)\n cur = cur.matchType(frag.child(i).type);\n return cur;\n }\n /**\n @internal\n */\n get inlineContent() {\n return this.next.length != 0 && this.next[0].type.isInline;\n }\n /**\n Get the first matching node type at this match position that can\n be generated.\n */\n get defaultType() {\n for (let i = 0; i < this.next.length; i++) {\n let { type } = this.next[i];\n if (!(type.isText || type.hasRequiredAttrs()))\n return type;\n }\n return null;\n }\n /**\n @internal\n */\n compatible(other) {\n for (let i = 0; i < this.next.length; i++)\n for (let j = 0; j < other.next.length; j++)\n if (this.next[i].type == other.next[j].type)\n return true;\n return false;\n }\n /**\n Try to match the given fragment, and if that fails, see if it can\n be made to match by inserting nodes in front of it. When\n successful, return a fragment of inserted nodes (which may be\n empty if nothing had to be inserted). When `toEnd` is true, only\n return a fragment if the resulting match goes to the end of the\n content expression.\n */\n fillBefore(after, toEnd = false, startIndex = 0) {\n let seen = [this];\n function search(match, types) {\n let finished = match.matchFragment(after, startIndex);\n if (finished && (!toEnd || finished.validEnd))\n return Fragment.from(types.map(tp => tp.createAndFill()));\n for (let i = 0; i < match.next.length; i++) {\n let { type, next } = match.next[i];\n if (!(type.isText || type.hasRequiredAttrs()) && seen.indexOf(next) == -1) {\n seen.push(next);\n let found = search(next, types.concat(type));\n if (found)\n return found;\n }\n }\n return null;\n }\n return search(this, []);\n }\n /**\n Find a set of wrapping node types that would allow a node of the\n given type to appear at this position. The result may be empty\n (when it fits directly) and will be null when no such wrapping\n exists.\n */\n findWrapping(target) {\n for (let i = 0; i < this.wrapCache.length; i += 2)\n if (this.wrapCache[i] == target)\n return this.wrapCache[i + 1];\n let computed = this.computeWrapping(target);\n this.wrapCache.push(target, computed);\n return computed;\n }\n /**\n @internal\n */\n computeWrapping(target) {\n let seen = Object.create(null), active = [{ match: this, type: null, via: null }];\n while (active.length) {\n let current = active.shift(), match = current.match;\n if (match.matchType(target)) {\n let result = [];\n for (let obj = current; obj.type; obj = obj.via)\n result.push(obj.type);\n return result.reverse();\n }\n for (let i = 0; i < match.next.length; i++) {\n let { type, next } = match.next[i];\n if (!type.isLeaf && !type.hasRequiredAttrs() && !(type.name in seen) && (!current.type || next.validEnd)) {\n active.push({ match: type.contentMatch, type, via: current });\n seen[type.name] = true;\n }\n }\n }\n return null;\n }\n /**\n The number of outgoing edges this node has in the finite\n automaton that describes the content expression.\n */\n get edgeCount() {\n return this.next.length;\n }\n /**\n Get the _n_th outgoing edge from this node in the finite\n automaton that describes the content expression.\n */\n edge(n) {\n if (n >= this.next.length)\n throw new RangeError(`There's no ${n}th edge in this content match`);\n return this.next[n];\n }\n /**\n @internal\n */\n toString() {\n let seen = [];\n function scan(m) {\n seen.push(m);\n for (let i = 0; i < m.next.length; i++)\n if (seen.indexOf(m.next[i].next) == -1)\n scan(m.next[i].next);\n }\n scan(this);\n return seen.map((m, i) => {\n let out = i + (m.validEnd ? \"*\" : \" \") + \" \";\n for (let i = 0; i < m.next.length; i++)\n out += (i ? \", \" : \"\") + m.next[i].type.name + \"->\" + seen.indexOf(m.next[i].next);\n return out;\n }).join(\"\\n\");\n }\n}\n/**\n@internal\n*/\nContentMatch.empty = new ContentMatch(true);\nclass TokenStream {\n constructor(string, nodeTypes) {\n this.string = string;\n this.nodeTypes = nodeTypes;\n this.inline = null;\n this.pos = 0;\n this.tokens = string.split(/\\s*(?=\\b|\\W|$)/);\n if (this.tokens[this.tokens.length - 1] == \"\")\n this.tokens.pop();\n if (this.tokens[0] == \"\")\n this.tokens.shift();\n }\n get next() { return this.tokens[this.pos]; }\n eat(tok) { return this.next == tok && (this.pos++ || true); }\n err(str) { throw new SyntaxError(str + \" (in content expression '\" + this.string + \"')\"); }\n}\nfunction parseExpr(stream) {\n let exprs = [];\n do {\n exprs.push(parseExprSeq(stream));\n } while (stream.eat(\"|\"));\n return exprs.length == 1 ? exprs[0] : { type: \"choice\", exprs };\n}\nfunction parseExprSeq(stream) {\n let exprs = [];\n do {\n exprs.push(parseExprSubscript(stream));\n } while (stream.next && stream.next != \")\" && stream.next != \"|\");\n return exprs.length == 1 ? exprs[0] : { type: \"seq\", exprs };\n}\nfunction parseExprSubscript(stream) {\n let expr = parseExprAtom(stream);\n for (;;) {\n if (stream.eat(\"+\"))\n expr = { type: \"plus\", expr };\n else if (stream.eat(\"*\"))\n expr = { type: \"star\", expr };\n else if (stream.eat(\"?\"))\n expr = { type: \"opt\", expr };\n else if (stream.eat(\"{\"))\n expr = parseExprRange(stream, expr);\n else\n break;\n }\n return expr;\n}\nfunction parseNum(stream) {\n if (/\\D/.test(stream.next))\n stream.err(\"Expected number, got '\" + stream.next + \"'\");\n let result = Number(stream.next);\n stream.pos++;\n return result;\n}\nfunction parseExprRange(stream, expr) {\n let min = parseNum(stream), max = min;\n if (stream.eat(\",\")) {\n if (stream.next != \"}\")\n max = parseNum(stream);\n else\n max = -1;\n }\n if (!stream.eat(\"}\"))\n stream.err(\"Unclosed braced range\");\n return { type: \"range\", min, max, expr };\n}\nfunction resolveName(stream, name) {\n let types = stream.nodeTypes, type = types[name];\n if (type)\n return [type];\n let result = [];\n for (let typeName in types) {\n let type = types[typeName];\n if (type.groups.indexOf(name) > -1)\n result.push(type);\n }\n if (result.length == 0)\n stream.err(\"No node type or group '\" + name + \"' found\");\n return result;\n}\nfunction parseExprAtom(stream) {\n if (stream.eat(\"(\")) {\n let expr = parseExpr(stream);\n if (!stream.eat(\")\"))\n stream.err(\"Missing closing paren\");\n return expr;\n }\n else if (!/\\W/.test(stream.next)) {\n let exprs = resolveName(stream, stream.next).map(type => {\n if (stream.inline == null)\n stream.inline = type.isInline;\n else if (stream.inline != type.isInline)\n stream.err(\"Mixing inline and block content\");\n return { type: \"name\", value: type };\n });\n stream.pos++;\n return exprs.length == 1 ? exprs[0] : { type: \"choice\", exprs };\n }\n else {\n stream.err(\"Unexpected token '\" + stream.next + \"'\");\n }\n}\n/**\nConstruct an NFA from an expression as returned by the parser. The\nNFA is represented as an array of states, which are themselves\narrays of edges, which are `{term, to}` objects. The first state is\nthe entry state and the last node is the success state.\n\nNote that unlike typical NFAs, the edge ordering in this one is\nsignificant, in that it is used to contruct filler content when\nnecessary.\n*/\nfunction nfa(expr) {\n let nfa = [[]];\n connect(compile(expr, 0), node());\n return nfa;\n function node() { return nfa.push([]) - 1; }\n function edge(from, to, term) {\n let edge = { term, to };\n nfa[from].push(edge);\n return edge;\n }\n function connect(edges, to) {\n edges.forEach(edge => edge.to = to);\n }\n function compile(expr, from) {\n if (expr.type == \"choice\") {\n return expr.exprs.reduce((out, expr) => out.concat(compile(expr, from)), []);\n }\n else if (expr.type == \"seq\") {\n for (let i = 0;; i++) {\n let next = compile(expr.exprs[i], from);\n if (i == expr.exprs.length - 1)\n return next;\n connect(next, from = node());\n }\n }\n else if (expr.type == \"star\") {\n let loop = node();\n edge(from, loop);\n connect(compile(expr.expr, loop), loop);\n return [edge(loop)];\n }\n else if (expr.type == \"plus\") {\n let loop = node();\n connect(compile(expr.expr, from), loop);\n connect(compile(expr.expr, loop), loop);\n return [edge(loop)];\n }\n else if (expr.type == \"opt\") {\n return [edge(from)].concat(compile(expr.expr, from));\n }\n else if (expr.type == \"range\") {\n let cur = from;\n for (let i = 0; i < expr.min; i++) {\n let next = node();\n connect(compile(expr.expr, cur), next);\n cur = next;\n }\n if (expr.max == -1) {\n connect(compile(expr.expr, cur), cur);\n }\n else {\n for (let i = expr.min; i < expr.max; i++) {\n let next = node();\n edge(cur, next);\n connect(compile(expr.expr, cur), next);\n cur = next;\n }\n }\n return [edge(cur)];\n }\n else if (expr.type == \"name\") {\n return [edge(from, undefined, expr.value)];\n }\n else {\n throw new Error(\"Unknown expr type\");\n }\n }\n}\nfunction cmp(a, b) { return b - a; }\n// Get the set of nodes reachable by null edges from `node`. Omit\n// nodes with only a single null-out-edge, since they may lead to\n// needless duplicated nodes.\nfunction nullFrom(nfa, node) {\n let result = [];\n scan(node);\n return result.sort(cmp);\n function scan(node) {\n let edges = nfa[node];\n if (edges.length == 1 && !edges[0].term)\n return scan(edges[0].to);\n result.push(node);\n for (let i = 0; i < edges.length; i++) {\n let { term, to } = edges[i];\n if (!term && result.indexOf(to) == -1)\n scan(to);\n }\n }\n}\n// Compiles an NFA as produced by `nfa` into a DFA, modeled as a set\n// of state objects (`ContentMatch` instances) with transitions\n// between them.\nfunction dfa(nfa) {\n let labeled = Object.create(null);\n return explore(nullFrom(nfa, 0));\n function explore(states) {\n let out = [];\n states.forEach(node => {\n nfa[node].forEach(({ term, to }) => {\n if (!term)\n return;\n let set;\n for (let i = 0; i < out.length; i++)\n if (out[i][0] == term)\n set = out[i][1];\n nullFrom(nfa, to).forEach(node => {\n if (!set)\n out.push([term, set = []]);\n if (set.indexOf(node) == -1)\n set.push(node);\n });\n });\n });\n let state = labeled[states.join(\",\")] = new ContentMatch(states.indexOf(nfa.length - 1) > -1);\n for (let i = 0; i < out.length; i++) {\n let states = out[i][1].sort(cmp);\n state.next.push({ type: out[i][0], next: labeled[states.join(\",\")] || explore(states) });\n }\n return state;\n }\n}\nfunction checkForDeadEnds(match, stream) {\n for (let i = 0, work = [match]; i < work.length; i++) {\n let state = work[i], dead = !state.validEnd, nodes = [];\n for (let j = 0; j < state.next.length; j++) {\n let { type, next } = state.next[j];\n nodes.push(type.name);\n if (dead && !(type.isText || type.hasRequiredAttrs()))\n dead = false;\n if (work.indexOf(next) == -1)\n work.push(next);\n }\n if (dead)\n stream.err(\"Only non-generatable nodes (\" + nodes.join(\", \") + \") in a required position (see https://prosemirror.net/docs/guide/#generatable)\");\n }\n}\n\n// For node types where all attrs have a default value (or which don't\n// have any attributes), build up a single reusable default attribute\n// object, and use it for all nodes that don't specify specific\n// attributes.\nfunction defaultAttrs(attrs) {\n let defaults = Object.create(null);\n for (let attrName in attrs) {\n let attr = attrs[attrName];\n if (!attr.hasDefault)\n return null;\n defaults[attrName] = attr.default;\n }\n return defaults;\n}\nfunction computeAttrs(attrs, value) {\n let built = Object.create(null);\n for (let name in attrs) {\n let given = value && value[name];\n if (given === undefined) {\n let attr = attrs[name];\n if (attr.hasDefault)\n given = attr.default;\n else\n throw new RangeError(\"No value supplied for attribute \" + name);\n }\n built[name] = given;\n }\n return built;\n}\nfunction initAttrs(attrs) {\n let result = Object.create(null);\n if (attrs)\n for (let name in attrs)\n result[name] = new Attribute(attrs[name]);\n return result;\n}\n/**\nNode types are objects allocated once per `Schema` and used to\n[tag](https://prosemirror.net/docs/ref/#model.Node.type) `Node` instances. They contain information\nabout the node type, such as its name and what kind of node it\nrepresents.\n*/\nclass NodeType {\n /**\n @internal\n */\n constructor(\n /**\n The name the node type has in this schema.\n */\n name, \n /**\n A link back to the `Schema` the node type belongs to.\n */\n schema, \n /**\n The spec that this type is based on\n */\n spec) {\n this.name = name;\n this.schema = schema;\n this.spec = spec;\n /**\n The set of marks allowed in this node. `null` means all marks\n are allowed.\n */\n this.markSet = null;\n this.groups = spec.group ? spec.group.split(\" \") : [];\n this.attrs = initAttrs(spec.attrs);\n this.defaultAttrs = defaultAttrs(this.attrs);\n this.contentMatch = null;\n this.inlineContent = null;\n this.isBlock = !(spec.inline || name == \"text\");\n this.isText = name == \"text\";\n }\n /**\n True if this is an inline type.\n */\n get isInline() { return !this.isBlock; }\n /**\n True if this is a textblock type, a block that contains inline\n content.\n */\n get isTextblock() { return this.isBlock && this.inlineContent; }\n /**\n True for node types that allow no content.\n */\n get isLeaf() { return this.contentMatch == ContentMatch.empty; }\n /**\n True when this node is an atom, i.e. when it does not have\n directly editable content.\n */\n get isAtom() { return this.isLeaf || !!this.spec.atom; }\n /**\n The node type's [whitespace](https://prosemirror.net/docs/ref/#model.NodeSpec.whitespace) option.\n */\n get whitespace() {\n return this.spec.whitespace || (this.spec.code ? \"pre\" : \"normal\");\n }\n /**\n Tells you whether this node type has any required attributes.\n */\n hasRequiredAttrs() {\n for (let n in this.attrs)\n if (this.attrs[n].isRequired)\n return true;\n return false;\n }\n /**\n Indicates whether this node allows some of the same content as\n the given node type.\n */\n compatibleContent(other) {\n return this == other || this.contentMatch.compatible(other.contentMatch);\n }\n /**\n @internal\n */\n computeAttrs(attrs) {\n if (!attrs && this.defaultAttrs)\n return this.defaultAttrs;\n else\n return computeAttrs(this.attrs, attrs);\n }\n /**\n Create a `Node` of this type. The given attributes are\n checked and defaulted (you can pass `null` to use the type's\n defaults entirely, if no required attributes exist). `content`\n may be a `Fragment`, a node, an array of nodes, or\n `null`. Similarly `marks` may be `null` to default to the empty\n set of marks.\n */\n create(attrs = null, content, marks) {\n if (this.isText)\n throw new Error(\"NodeType.create can't construct text nodes\");\n return new Node(this, this.computeAttrs(attrs), Fragment.from(content), Mark.setFrom(marks));\n }\n /**\n Like [`create`](https://prosemirror.net/docs/ref/#model.NodeType.create), but check the given content\n against the node type's content restrictions, and throw an error\n if it doesn't match.\n */\n createChecked(attrs = null, content, marks) {\n content = Fragment.from(content);\n this.checkContent(content);\n return new Node(this, this.computeAttrs(attrs), content, Mark.setFrom(marks));\n }\n /**\n Like [`create`](https://prosemirror.net/docs/ref/#model.NodeType.create), but see if it is\n necessary to add nodes to the start or end of the given fragment\n to make it fit the node. If no fitting wrapping can be found,\n return null. Note that, due to the fact that required nodes can\n always be created, this will always succeed if you pass null or\n `Fragment.empty` as content.\n */\n createAndFill(attrs = null, content, marks) {\n attrs = this.computeAttrs(attrs);\n content = Fragment.from(content);\n if (content.size) {\n let before = this.contentMatch.fillBefore(content);\n if (!before)\n return null;\n content = before.append(content);\n }\n let matched = this.contentMatch.matchFragment(content);\n let after = matched && matched.fillBefore(Fragment.empty, true);\n if (!after)\n return null;\n return new Node(this, attrs, content.append(after), Mark.setFrom(marks));\n }\n /**\n Returns true if the given fragment is valid content for this node\n type.\n */\n validContent(content) {\n let result = this.contentMatch.matchFragment(content);\n if (!result || !result.validEnd)\n return false;\n for (let i = 0; i < content.childCount; i++)\n if (!this.allowsMarks(content.child(i).marks))\n return false;\n return true;\n }\n /**\n Throws a RangeError if the given fragment is not valid content for this\n node type.\n @internal\n */\n checkContent(content) {\n if (!this.validContent(content))\n throw new RangeError(`Invalid content for node ${this.name}: ${content.toString().slice(0, 50)}`);\n }\n /**\n Check whether the given mark type is allowed in this node.\n */\n allowsMarkType(markType) {\n return this.markSet == null || this.markSet.indexOf(markType) > -1;\n }\n /**\n Test whether the given set of marks are allowed in this node.\n */\n allowsMarks(marks) {\n if (this.markSet == null)\n return true;\n for (let i = 0; i < marks.length; i++)\n if (!this.allowsMarkType(marks[i].type))\n return false;\n return true;\n }\n /**\n Removes the marks that are not allowed in this node from the given set.\n */\n allowedMarks(marks) {\n if (this.markSet == null)\n return marks;\n let copy;\n for (let i = 0; i < marks.length; i++) {\n if (!this.allowsMarkType(marks[i].type)) {\n if (!copy)\n copy = marks.slice(0, i);\n }\n else if (copy) {\n copy.push(marks[i]);\n }\n }\n return !copy ? marks : copy.length ? copy : Mark.none;\n }\n /**\n @internal\n */\n static compile(nodes, schema) {\n let result = Object.create(null);\n nodes.forEach((name, spec) => result[name] = new NodeType(name, schema, spec));\n let topType = schema.spec.topNode || \"doc\";\n if (!result[topType])\n throw new RangeError(\"Schema is missing its top node type ('\" + topType + \"')\");\n if (!result.text)\n throw new RangeError(\"Every schema needs a 'text' type\");\n for (let _ in result.text.attrs)\n throw new RangeError(\"The text node type should not have attributes\");\n return result;\n }\n}\n// Attribute descriptors\nclass Attribute {\n constructor(options) {\n this.hasDefault = Object.prototype.hasOwnProperty.call(options, \"default\");\n this.default = options.default;\n }\n get isRequired() {\n return !this.hasDefault;\n }\n}\n// Marks\n/**\nLike nodes, marks (which are associated with nodes to signify\nthings like emphasis or being part of a link) are\n[tagged](https://prosemirror.net/docs/ref/#model.Mark.type) with type objects, which are\ninstantiated once per `Schema`.\n*/\nclass MarkType {\n /**\n @internal\n */\n constructor(\n /**\n The name of the mark type.\n */\n name, \n /**\n @internal\n */\n rank, \n /**\n The schema that this mark type instance is part of.\n */\n schema, \n /**\n The spec on which the type is based.\n */\n spec) {\n this.name = name;\n this.rank = rank;\n this.schema = schema;\n this.spec = spec;\n this.attrs = initAttrs(spec.attrs);\n this.excluded = null;\n let defaults = defaultAttrs(this.attrs);\n this.instance = defaults ? new Mark(this, defaults) : null;\n }\n /**\n Create a mark of this type. `attrs` may be `null` or an object\n containing only some of the mark's attributes. The others, if\n they have defaults, will be added.\n */\n create(attrs = null) {\n if (!attrs && this.instance)\n return this.instance;\n return new Mark(this, computeAttrs(this.attrs, attrs));\n }\n /**\n @internal\n */\n static compile(marks, schema) {\n let result = Object.create(null), rank = 0;\n marks.forEach((name, spec) => result[name] = new MarkType(name, rank++, schema, spec));\n return result;\n }\n /**\n When there is a mark of this type in the given set, a new set\n without it is returned. Otherwise, the input set is returned.\n */\n removeFromSet(set) {\n for (var i = 0; i < set.length; i++)\n if (set[i].type == this) {\n set = set.slice(0, i).concat(set.slice(i + 1));\n i--;\n }\n return set;\n }\n /**\n Tests whether there is a mark of this type in the given set.\n */\n isInSet(set) {\n for (let i = 0; i < set.length; i++)\n if (set[i].type == this)\n return set[i];\n }\n /**\n Queries whether a given mark type is\n [excluded](https://prosemirror.net/docs/ref/#model.MarkSpec.excludes) by this one.\n */\n excludes(other) {\n return this.excluded.indexOf(other) > -1;\n }\n}\n/**\nA document schema. Holds [node](https://prosemirror.net/docs/ref/#model.NodeType) and [mark\ntype](https://prosemirror.net/docs/ref/#model.MarkType) objects for the nodes and marks that may\noccur in conforming documents, and provides functionality for\ncreating and deserializing such documents.\n\nWhen given, the type parameters provide the names of the nodes and\nmarks in this schema.\n*/\nclass Schema {\n /**\n Construct a schema from a schema [specification](https://prosemirror.net/docs/ref/#model.SchemaSpec).\n */\n constructor(spec) {\n /**\n The [linebreak\n replacement](https://prosemirror.net/docs/ref/#model.NodeSpec.linebreakReplacement) node defined\n in this schema, if any.\n */\n this.linebreakReplacement = null;\n /**\n An object for storing whatever values modules may want to\n compute and cache per schema. (If you want to store something\n in it, try to use property names unlikely to clash.)\n */\n this.cached = Object.create(null);\n let instanceSpec = this.spec = {};\n for (let prop in spec)\n instanceSpec[prop] = spec[prop];\n instanceSpec.nodes = orderedmap__WEBPACK_IMPORTED_MODULE_0__[\"default\"].from(spec.nodes),\n instanceSpec.marks = orderedmap__WEBPACK_IMPORTED_MODULE_0__[\"default\"].from(spec.marks || {}),\n this.nodes = NodeType.compile(this.spec.nodes, this);\n this.marks = MarkType.compile(this.spec.marks, this);\n let contentExprCache = Object.create(null);\n for (let prop in this.nodes) {\n if (prop in this.marks)\n throw new RangeError(prop + \" can not be both a node and a mark\");\n let type = this.nodes[prop], contentExpr = type.spec.content || \"\", markExpr = type.spec.marks;\n type.contentMatch = contentExprCache[contentExpr] ||\n (contentExprCache[contentExpr] = ContentMatch.parse(contentExpr, this.nodes));\n type.inlineContent = type.contentMatch.inlineContent;\n if (type.spec.linebreakReplacement) {\n if (this.linebreakReplacement)\n throw new RangeError(\"Multiple linebreak nodes defined\");\n if (!type.isInline || !type.isLeaf)\n throw new RangeError(\"Linebreak replacement nodes must be inline leaf nodes\");\n this.linebreakReplacement = type;\n }\n type.markSet = markExpr == \"_\" ? null :\n markExpr ? gatherMarks(this, markExpr.split(\" \")) :\n markExpr == \"\" || !type.inlineContent ? [] : null;\n }\n for (let prop in this.marks) {\n let type = this.marks[prop], excl = type.spec.excludes;\n type.excluded = excl == null ? [type] : excl == \"\" ? [] : gatherMarks(this, excl.split(\" \"));\n }\n this.nodeFromJSON = this.nodeFromJSON.bind(this);\n this.markFromJSON = this.markFromJSON.bind(this);\n this.topNodeType = this.nodes[this.spec.topNode || \"doc\"];\n this.cached.wrappings = Object.create(null);\n }\n /**\n Create a node in this schema. The `type` may be a string or a\n `NodeType` instance. Attributes will be extended with defaults,\n `content` may be a `Fragment`, `null`, a `Node`, or an array of\n nodes.\n */\n node(type, attrs = null, content, marks) {\n if (typeof type == \"string\")\n type = this.nodeType(type);\n else if (!(type instanceof NodeType))\n throw new RangeError(\"Invalid node type: \" + type);\n else if (type.schema != this)\n throw new RangeError(\"Node type from different schema used (\" + type.name + \")\");\n return type.createChecked(attrs, content, marks);\n }\n /**\n Create a text node in the schema. Empty text nodes are not\n allowed.\n */\n text(text, marks) {\n let type = this.nodes.text;\n return new TextNode(type, type.defaultAttrs, text, Mark.setFrom(marks));\n }\n /**\n Create a mark with the given type and attributes.\n */\n mark(type, attrs) {\n if (typeof type == \"string\")\n type = this.marks[type];\n return type.create(attrs);\n }\n /**\n Deserialize a node from its JSON representation. This method is\n bound.\n */\n nodeFromJSON(json) {\n return Node.fromJSON(this, json);\n }\n /**\n Deserialize a mark from its JSON representation. This method is\n bound.\n */\n markFromJSON(json) {\n return Mark.fromJSON(this, json);\n }\n /**\n @internal\n */\n nodeType(name) {\n let found = this.nodes[name];\n if (!found)\n throw new RangeError(\"Unknown node type: \" + name);\n return found;\n }\n}\nfunction gatherMarks(schema, marks) {\n let found = [];\n for (let i = 0; i < marks.length; i++) {\n let name = marks[i], mark = schema.marks[name], ok = mark;\n if (mark) {\n found.push(mark);\n }\n else {\n for (let prop in schema.marks) {\n let mark = schema.marks[prop];\n if (name == \"_\" || (mark.spec.group && mark.spec.group.split(\" \").indexOf(name) > -1))\n found.push(ok = mark);\n }\n }\n if (!ok)\n throw new SyntaxError(\"Unknown mark type: '\" + marks[i] + \"'\");\n }\n return found;\n}\n\nfunction isTagRule(rule) { return rule.tag != null; }\nfunction isStyleRule(rule) { return rule.style != null; }\n/**\nA DOM parser represents a strategy for parsing DOM content into a\nProseMirror document conforming to a given schema. Its behavior is\ndefined by an array of [rules](https://prosemirror.net/docs/ref/#model.ParseRule).\n*/\nclass DOMParser {\n /**\n Create a parser that targets the given schema, using the given\n parsing rules.\n */\n constructor(\n /**\n The schema into which the parser parses.\n */\n schema, \n /**\n The set of [parse rules](https://prosemirror.net/docs/ref/#model.ParseRule) that the parser\n uses, in order of precedence.\n */\n rules) {\n this.schema = schema;\n this.rules = rules;\n /**\n @internal\n */\n this.tags = [];\n /**\n @internal\n */\n this.styles = [];\n let matchedStyles = this.matchedStyles = [];\n rules.forEach(rule => {\n if (isTagRule(rule)) {\n this.tags.push(rule);\n }\n else if (isStyleRule(rule)) {\n let prop = /[^=]*/.exec(rule.style)[0];\n if (matchedStyles.indexOf(prop) < 0)\n matchedStyles.push(prop);\n this.styles.push(rule);\n }\n });\n // Only normalize list elements when lists in the schema can't directly contain themselves\n this.normalizeLists = !this.tags.some(r => {\n if (!/^(ul|ol)\\b/.test(r.tag) || !r.node)\n return false;\n let node = schema.nodes[r.node];\n return node.contentMatch.matchType(node);\n });\n }\n /**\n Parse a document from the content of a DOM node.\n */\n parse(dom, options = {}) {\n let context = new ParseContext(this, options, false);\n context.addAll(dom, options.from, options.to);\n return context.finish();\n }\n /**\n Parses the content of the given DOM node, like\n [`parse`](https://prosemirror.net/docs/ref/#model.DOMParser.parse), and takes the same set of\n options. But unlike that method, which produces a whole node,\n this one returns a slice that is open at the sides, meaning that\n the schema constraints aren't applied to the start of nodes to\n the left of the input and the end of nodes at the end.\n */\n parseSlice(dom, options = {}) {\n let context = new ParseContext(this, options, true);\n context.addAll(dom, options.from, options.to);\n return Slice.maxOpen(context.finish());\n }\n /**\n @internal\n */\n matchTag(dom, context, after) {\n for (let i = after ? this.tags.indexOf(after) + 1 : 0; i < this.tags.length; i++) {\n let rule = this.tags[i];\n if (matches(dom, rule.tag) &&\n (rule.namespace === undefined || dom.namespaceURI == rule.namespace) &&\n (!rule.context || context.matchesContext(rule.context))) {\n if (rule.getAttrs) {\n let result = rule.getAttrs(dom);\n if (result === false)\n continue;\n rule.attrs = result || undefined;\n }\n return rule;\n }\n }\n }\n /**\n @internal\n */\n matchStyle(prop, value, context, after) {\n for (let i = after ? this.styles.indexOf(after) + 1 : 0; i < this.styles.length; i++) {\n let rule = this.styles[i], style = rule.style;\n if (style.indexOf(prop) != 0 ||\n rule.context && !context.matchesContext(rule.context) ||\n // Test that the style string either precisely matches the prop,\n // or has an '=' sign after the prop, followed by the given\n // value.\n style.length > prop.length &&\n (style.charCodeAt(prop.length) != 61 || style.slice(prop.length + 1) != value))\n continue;\n if (rule.getAttrs) {\n let result = rule.getAttrs(value);\n if (result === false)\n continue;\n rule.attrs = result || undefined;\n }\n return rule;\n }\n }\n /**\n @internal\n */\n static schemaRules(schema) {\n let result = [];\n function insert(rule) {\n let priority = rule.priority == null ? 50 : rule.priority, i = 0;\n for (; i < result.length; i++) {\n let next = result[i], nextPriority = next.priority == null ? 50 : next.priority;\n if (nextPriority < priority)\n break;\n }\n result.splice(i, 0, rule);\n }\n for (let name in schema.marks) {\n let rules = schema.marks[name].spec.parseDOM;\n if (rules)\n rules.forEach(rule => {\n insert(rule = copy(rule));\n if (!(rule.mark || rule.ignore || rule.clearMark))\n rule.mark = name;\n });\n }\n for (let name in schema.nodes) {\n let rules = schema.nodes[name].spec.parseDOM;\n if (rules)\n rules.forEach(rule => {\n insert(rule = copy(rule));\n if (!(rule.node || rule.ignore || rule.mark))\n rule.node = name;\n });\n }\n return result;\n }\n /**\n Construct a DOM parser using the parsing rules listed in a\n schema's [node specs](https://prosemirror.net/docs/ref/#model.NodeSpec.parseDOM), reordered by\n [priority](https://prosemirror.net/docs/ref/#model.ParseRule.priority).\n */\n static fromSchema(schema) {\n return schema.cached.domParser ||\n (schema.cached.domParser = new DOMParser(schema, DOMParser.schemaRules(schema)));\n }\n}\nconst blockTags = {\n address: true, article: true, aside: true, blockquote: true, canvas: true,\n dd: true, div: true, dl: true, fieldset: true, figcaption: true, figure: true,\n footer: true, form: true, h1: true, h2: true, h3: true, h4: true, h5: true,\n h6: true, header: true, hgroup: true, hr: true, li: true, noscript: true, ol: true,\n output: true, p: true, pre: true, section: true, table: true, tfoot: true, ul: true\n};\nconst ignoreTags = {\n head: true, noscript: true, object: true, script: true, style: true, title: true\n};\nconst listTags = { ol: true, ul: true };\n// Using a bitfield for node context options\nconst OPT_PRESERVE_WS = 1, OPT_PRESERVE_WS_FULL = 2, OPT_OPEN_LEFT = 4;\nfunction wsOptionsFor(type, preserveWhitespace, base) {\n if (preserveWhitespace != null)\n return (preserveWhitespace ? OPT_PRESERVE_WS : 0) |\n (preserveWhitespace === \"full\" ? OPT_PRESERVE_WS_FULL : 0);\n return type && type.whitespace == \"pre\" ? OPT_PRESERVE_WS | OPT_PRESERVE_WS_FULL : base & ~OPT_OPEN_LEFT;\n}\nclass NodeContext {\n constructor(type, attrs, \n // Marks applied to this node itself\n marks, \n // Marks that can't apply here, but will be used in children if possible\n pendingMarks, solid, match, options) {\n this.type = type;\n this.attrs = attrs;\n this.marks = marks;\n this.pendingMarks = pendingMarks;\n this.solid = solid;\n this.options = options;\n this.content = [];\n // Marks applied to the node's children\n this.activeMarks = Mark.none;\n // Nested Marks with same type\n this.stashMarks = [];\n this.match = match || (options & OPT_OPEN_LEFT ? null : type.contentMatch);\n }\n findWrapping(node) {\n if (!this.match) {\n if (!this.type)\n return [];\n let fill = this.type.contentMatch.fillBefore(Fragment.from(node));\n if (fill) {\n this.match = this.type.contentMatch.matchFragment(fill);\n }\n else {\n let start = this.type.contentMatch, wrap;\n if (wrap = start.findWrapping(node.type)) {\n this.match = start;\n return wrap;\n }\n else {\n return null;\n }\n }\n }\n return this.match.findWrapping(node.type);\n }\n finish(openEnd) {\n if (!(this.options & OPT_PRESERVE_WS)) { // Strip trailing whitespace\n let last = this.content[this.content.length - 1], m;\n if (last && last.isText && (m = /[ \\t\\r\\n\\u000c]+$/.exec(last.text))) {\n let text = last;\n if (last.text.length == m[0].length)\n this.content.pop();\n else\n this.content[this.content.length - 1] = text.withText(text.text.slice(0, text.text.length - m[0].length));\n }\n }\n let content = Fragment.from(this.content);\n if (!openEnd && this.match)\n content = content.append(this.match.fillBefore(Fragment.empty, true));\n return this.type ? this.type.create(this.attrs, content, this.marks) : content;\n }\n popFromStashMark(mark) {\n for (let i = this.stashMarks.length - 1; i >= 0; i--)\n if (mark.eq(this.stashMarks[i]))\n return this.stashMarks.splice(i, 1)[0];\n }\n applyPending(nextType) {\n for (let i = 0, pending = this.pendingMarks; i < pending.length; i++) {\n let mark = pending[i];\n if ((this.type ? this.type.allowsMarkType(mark.type) : markMayApply(mark.type, nextType)) &&\n !mark.isInSet(this.activeMarks)) {\n this.activeMarks = mark.addToSet(this.activeMarks);\n this.pendingMarks = mark.removeFromSet(this.pendingMarks);\n }\n }\n }\n inlineContext(node) {\n if (this.type)\n return this.type.inlineContent;\n if (this.content.length)\n return this.content[0].isInline;\n return node.parentNode && !blockTags.hasOwnProperty(node.parentNode.nodeName.toLowerCase());\n }\n}\nclass ParseContext {\n constructor(\n // The parser we are using.\n parser, \n // The options passed to this parse.\n options, isOpen) {\n this.parser = parser;\n this.options = options;\n this.isOpen = isOpen;\n this.open = 0;\n let topNode = options.topNode, topContext;\n let topOptions = wsOptionsFor(null, options.preserveWhitespace, 0) | (isOpen ? OPT_OPEN_LEFT : 0);\n if (topNode)\n topContext = new NodeContext(topNode.type, topNode.attrs, Mark.none, Mark.none, true, options.topMatch || topNode.type.contentMatch, topOptions);\n else if (isOpen)\n topContext = new NodeContext(null, null, Mark.none, Mark.none, true, null, topOptions);\n else\n topContext = new NodeContext(parser.schema.topNodeType, null, Mark.none, Mark.none, true, null, topOptions);\n this.nodes = [topContext];\n this.find = options.findPositions;\n this.needsBlock = false;\n }\n get top() {\n return this.nodes[this.open];\n }\n // Add a DOM node to the content. Text is inserted as text node,\n // otherwise, the node is passed to `addElement` or, if it has a\n // `style` attribute, `addElementWithStyles`.\n addDOM(dom) {\n if (dom.nodeType == 3)\n this.addTextNode(dom);\n else if (dom.nodeType == 1)\n this.addElement(dom);\n }\n withStyleRules(dom, f) {\n let style = dom.style;\n if (!style || !style.length)\n return f();\n let marks = this.readStyles(dom.style);\n if (!marks)\n return; // A style with ignore: true\n let [addMarks, removeMarks] = marks, top = this.top;\n for (let i = 0; i < removeMarks.length; i++)\n this.removePendingMark(removeMarks[i], top);\n for (let i = 0; i < addMarks.length; i++)\n this.addPendingMark(addMarks[i]);\n f();\n for (let i = 0; i < addMarks.length; i++)\n this.removePendingMark(addMarks[i], top);\n for (let i = 0; i < removeMarks.length; i++)\n this.addPendingMark(removeMarks[i]);\n }\n addTextNode(dom) {\n let value = dom.nodeValue;\n let top = this.top;\n if (top.options & OPT_PRESERVE_WS_FULL ||\n top.inlineContext(dom) ||\n /[^ \\t\\r\\n\\u000c]/.test(value)) {\n if (!(top.options & OPT_PRESERVE_WS)) {\n value = value.replace(/[ \\t\\r\\n\\u000c]+/g, \" \");\n // If this starts with whitespace, and there is no node before it, or\n // a hard break, or a text node that ends with whitespace, strip the\n // leading space.\n if (/^[ \\t\\r\\n\\u000c]/.test(value) && this.open == this.nodes.length - 1) {\n let nodeBefore = top.content[top.content.length - 1];\n let domNodeBefore = dom.previousSibling;\n if (!nodeBefore ||\n (domNodeBefore && domNodeBefore.nodeName == 'BR') ||\n (nodeBefore.isText && /[ \\t\\r\\n\\u000c]$/.test(nodeBefore.text)))\n value = value.slice(1);\n }\n }\n else if (!(top.options & OPT_PRESERVE_WS_FULL)) {\n value = value.replace(/\\r?\\n|\\r/g, \" \");\n }\n else {\n value = value.replace(/\\r\\n?/g, \"\\n\");\n }\n if (value)\n this.insertNode(this.parser.schema.text(value));\n this.findInText(dom);\n }\n else {\n this.findInside(dom);\n }\n }\n // Try to find a handler for the given tag and use that to parse. If\n // none is found, the element's content nodes are added directly.\n addElement(dom, matchAfter) {\n let name = dom.nodeName.toLowerCase(), ruleID;\n if (listTags.hasOwnProperty(name) && this.parser.normalizeLists)\n normalizeList(dom);\n let rule = (this.options.ruleFromNode && this.options.ruleFromNode(dom)) ||\n (ruleID = this.parser.matchTag(dom, this, matchAfter));\n if (rule ? rule.ignore : ignoreTags.hasOwnProperty(name)) {\n this.findInside(dom);\n this.ignoreFallback(dom);\n }\n else if (!rule || rule.skip || rule.closeParent) {\n if (rule && rule.closeParent)\n this.open = Math.max(0, this.open - 1);\n else if (rule && rule.skip.nodeType)\n dom = rule.skip;\n let sync, top = this.top, oldNeedsBlock = this.needsBlock;\n if (blockTags.hasOwnProperty(name)) {\n if (top.content.length && top.content[0].isInline && this.open) {\n this.open--;\n top = this.top;\n }\n sync = true;\n if (!top.type)\n this.needsBlock = true;\n }\n else if (!dom.firstChild) {\n this.leafFallback(dom);\n return;\n }\n if (rule && rule.skip)\n this.addAll(dom);\n else\n this.withStyleRules(dom, () => this.addAll(dom));\n if (sync)\n this.sync(top);\n this.needsBlock = oldNeedsBlock;\n }\n else {\n this.withStyleRules(dom, () => {\n this.addElementByRule(dom, rule, rule.consuming === false ? ruleID : undefined);\n });\n }\n }\n // Called for leaf DOM nodes that would otherwise be ignored\n leafFallback(dom) {\n if (dom.nodeName == \"BR\" && this.top.type && this.top.type.inlineContent)\n this.addTextNode(dom.ownerDocument.createTextNode(\"\\n\"));\n }\n // Called for ignored nodes\n ignoreFallback(dom) {\n // Ignored BR nodes should at least create an inline context\n if (dom.nodeName == \"BR\" && (!this.top.type || !this.top.type.inlineContent))\n this.findPlace(this.parser.schema.text(\"-\"));\n }\n // Run any style parser associated with the node's styles. Either\n // return an array of marks, or null to indicate some of the styles\n // had a rule with `ignore` set.\n readStyles(styles) {\n let add = Mark.none, remove = Mark.none;\n // Because many properties will only show up in 'normalized' form\n // in `style.item` (i.e. text-decoration becomes\n // text-decoration-line, text-decoration-color, etc), we directly\n // query the styles mentioned in our rules instead of iterating\n // over the items.\n if (styles.length)\n for (let i = 0; i < this.parser.matchedStyles.length; i++) {\n let name = this.parser.matchedStyles[i], value = styles.getPropertyValue(name);\n if (value)\n for (let after = undefined;;) {\n let rule = this.parser.matchStyle(name, value, this, after);\n if (!rule)\n break;\n if (rule.ignore)\n return null;\n if (rule.clearMark) {\n this.top.pendingMarks.concat(this.top.activeMarks).forEach(m => {\n if (rule.clearMark(m))\n remove = m.addToSet(remove);\n });\n }\n else {\n add = this.parser.schema.marks[rule.mark].create(rule.attrs).addToSet(add);\n }\n if (rule.consuming === false)\n after = rule;\n else\n break;\n }\n }\n return [add, remove];\n }\n // Look up a handler for the given node. If none are found, return\n // false. Otherwise, apply it, use its return value to drive the way\n // the node's content is wrapped, and return true.\n addElementByRule(dom, rule, continueAfter) {\n let sync, nodeType, mark;\n if (rule.node) {\n nodeType = this.parser.schema.nodes[rule.node];\n if (!nodeType.isLeaf) {\n sync = this.enter(nodeType, rule.attrs || null, rule.preserveWhitespace);\n }\n else if (!this.insertNode(nodeType.create(rule.attrs))) {\n this.leafFallback(dom);\n }\n }\n else {\n let markType = this.parser.schema.marks[rule.mark];\n mark = markType.create(rule.attrs);\n this.addPendingMark(mark);\n }\n let startIn = this.top;\n if (nodeType && nodeType.isLeaf) {\n this.findInside(dom);\n }\n else if (continueAfter) {\n this.addElement(dom, continueAfter);\n }\n else if (rule.getContent) {\n this.findInside(dom);\n rule.getContent(dom, this.parser.schema).forEach(node => this.insertNode(node));\n }\n else {\n let contentDOM = dom;\n if (typeof rule.contentElement == \"string\")\n contentDOM = dom.querySelector(rule.contentElement);\n else if (typeof rule.contentElement == \"function\")\n contentDOM = rule.contentElement(dom);\n else if (rule.contentElement)\n contentDOM = rule.contentElement;\n this.findAround(dom, contentDOM, true);\n this.addAll(contentDOM);\n }\n if (sync && this.sync(startIn))\n this.open--;\n if (mark)\n this.removePendingMark(mark, startIn);\n }\n // Add all child nodes between `startIndex` and `endIndex` (or the\n // whole node, if not given). If `sync` is passed, use it to\n // synchronize after every block element.\n addAll(parent, startIndex, endIndex) {\n let index = startIndex || 0;\n for (let dom = startIndex ? parent.childNodes[startIndex] : parent.firstChild, end = endIndex == null ? null : parent.childNodes[endIndex]; dom != end; dom = dom.nextSibling, ++index) {\n this.findAtPoint(parent, index);\n this.addDOM(dom);\n }\n this.findAtPoint(parent, index);\n }\n // Try to find a way to fit the given node type into the current\n // context. May add intermediate wrappers and/or leave non-solid\n // nodes that we're in.\n findPlace(node) {\n let route, sync;\n for (let depth = this.open; depth >= 0; depth--) {\n let cx = this.nodes[depth];\n let found = cx.findWrapping(node);\n if (found && (!route || route.length > found.length)) {\n route = found;\n sync = cx;\n if (!found.length)\n break;\n }\n if (cx.solid)\n break;\n }\n if (!route)\n return false;\n this.sync(sync);\n for (let i = 0; i < route.length; i++)\n this.enterInner(route[i], null, false);\n return true;\n }\n // Try to insert the given node, adjusting the context when needed.\n insertNode(node) {\n if (node.isInline && this.needsBlock && !this.top.type) {\n let block = this.textblockFromContext();\n if (block)\n this.enterInner(block);\n }\n if (this.findPlace(node)) {\n this.closeExtra();\n let top = this.top;\n top.applyPending(node.type);\n if (top.match)\n top.match = top.match.matchType(node.type);\n let marks = top.activeMarks;\n for (let i = 0; i < node.marks.length; i++)\n if (!top.type || top.type.allowsMarkType(node.marks[i].type))\n marks = node.marks[i].addToSet(marks);\n top.content.push(node.mark(marks));\n return true;\n }\n return false;\n }\n // Try to start a node of the given type, adjusting the context when\n // necessary.\n enter(type, attrs, preserveWS) {\n let ok = this.findPlace(type.create(attrs));\n if (ok)\n this.enterInner(type, attrs, true, preserveWS);\n return ok;\n }\n // Open a node of the given type\n enterInner(type, attrs = null, solid = false, preserveWS) {\n this.closeExtra();\n let top = this.top;\n top.applyPending(type);\n top.match = top.match && top.match.matchType(type);\n let options = wsOptionsFor(type, preserveWS, top.options);\n if ((top.options & OPT_OPEN_LEFT) && top.content.length == 0)\n options |= OPT_OPEN_LEFT;\n this.nodes.push(new NodeContext(type, attrs, top.activeMarks, top.pendingMarks, solid, null, options));\n this.open++;\n }\n // Make sure all nodes above this.open are finished and added to\n // their parents\n closeExtra(openEnd = false) {\n let i = this.nodes.length - 1;\n if (i > this.open) {\n for (; i > this.open; i--)\n this.nodes[i - 1].content.push(this.nodes[i].finish(openEnd));\n this.nodes.length = this.open + 1;\n }\n }\n finish() {\n this.open = 0;\n this.closeExtra(this.isOpen);\n return this.nodes[0].finish(this.isOpen || this.options.topOpen);\n }\n sync(to) {\n for (let i = this.open; i >= 0; i--)\n if (this.nodes[i] == to) {\n this.open = i;\n return true;\n }\n return false;\n }\n get currentPos() {\n this.closeExtra();\n let pos = 0;\n for (let i = this.open; i >= 0; i--) {\n let content = this.nodes[i].content;\n for (let j = content.length - 1; j >= 0; j--)\n pos += content[j].nodeSize;\n if (i)\n pos++;\n }\n return pos;\n }\n findAtPoint(parent, offset) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].node == parent && this.find[i].offset == offset)\n this.find[i].pos = this.currentPos;\n }\n }\n findInside(parent) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node))\n this.find[i].pos = this.currentPos;\n }\n }\n findAround(parent, content, before) {\n if (parent != content && this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node)) {\n let pos = content.compareDocumentPosition(this.find[i].node);\n if (pos & (before ? 2 : 4))\n this.find[i].pos = this.currentPos;\n }\n }\n }\n findInText(textNode) {\n if (this.find)\n for (let i = 0; i < this.find.length; i++) {\n if (this.find[i].node == textNode)\n this.find[i].pos = this.currentPos - (textNode.nodeValue.length - this.find[i].offset);\n }\n }\n // Determines whether the given context string matches this context.\n matchesContext(context) {\n if (context.indexOf(\"|\") > -1)\n return context.split(/\\s*\\|\\s*/).some(this.matchesContext, this);\n let parts = context.split(\"/\");\n let option = this.options.context;\n let useRoot = !this.isOpen && (!option || option.parent.type == this.nodes[0].type);\n let minDepth = -(option ? option.depth + 1 : 0) + (useRoot ? 0 : 1);\n let match = (i, depth) => {\n for (; i >= 0; i--) {\n let part = parts[i];\n if (part == \"\") {\n if (i == parts.length - 1 || i == 0)\n continue;\n for (; depth >= minDepth; depth--)\n if (match(i - 1, depth))\n return true;\n return false;\n }\n else {\n let next = depth > 0 || (depth == 0 && useRoot) ? this.nodes[depth].type\n : option && depth >= minDepth ? option.node(depth - minDepth).type\n : null;\n if (!next || (next.name != part && next.groups.indexOf(part) == -1))\n return false;\n depth--;\n }\n }\n return true;\n };\n return match(parts.length - 1, this.open);\n }\n textblockFromContext() {\n let $context = this.options.context;\n if ($context)\n for (let d = $context.depth; d >= 0; d--) {\n let deflt = $context.node(d).contentMatchAt($context.indexAfter(d)).defaultType;\n if (deflt && deflt.isTextblock && deflt.defaultAttrs)\n return deflt;\n }\n for (let name in this.parser.schema.nodes) {\n let type = this.parser.schema.nodes[name];\n if (type.isTextblock && type.defaultAttrs)\n return type;\n }\n }\n addPendingMark(mark) {\n let found = findSameMarkInSet(mark, this.top.pendingMarks);\n if (found)\n this.top.stashMarks.push(found);\n this.top.pendingMarks = mark.addToSet(this.top.pendingMarks);\n }\n removePendingMark(mark, upto) {\n for (let depth = this.open; depth >= 0; depth--) {\n let level = this.nodes[depth];\n let found = level.pendingMarks.lastIndexOf(mark);\n if (found > -1) {\n level.pendingMarks = mark.removeFromSet(level.pendingMarks);\n }\n else {\n level.activeMarks = mark.removeFromSet(level.activeMarks);\n let stashMark = level.popFromStashMark(mark);\n if (stashMark && level.type && level.type.allowsMarkType(stashMark.type))\n level.activeMarks = stashMark.addToSet(level.activeMarks);\n }\n if (level == upto)\n break;\n }\n }\n}\n// Kludge to work around directly nested list nodes produced by some\n// tools and allowed by browsers to mean that the nested list is\n// actually part of the list item above it.\nfunction normalizeList(dom) {\n for (let child = dom.firstChild, prevItem = null; child; child = child.nextSibling) {\n let name = child.nodeType == 1 ? child.nodeName.toLowerCase() : null;\n if (name && listTags.hasOwnProperty(name) && prevItem) {\n prevItem.appendChild(child);\n child = prevItem;\n }\n else if (name == \"li\") {\n prevItem = child;\n }\n else if (name) {\n prevItem = null;\n }\n }\n}\n// Apply a CSS selector.\nfunction matches(dom, selector) {\n return (dom.matches || dom.msMatchesSelector || dom.webkitMatchesSelector || dom.mozMatchesSelector).call(dom, selector);\n}\nfunction copy(obj) {\n let copy = {};\n for (let prop in obj)\n copy[prop] = obj[prop];\n return copy;\n}\n// Used when finding a mark at the top level of a fragment parse.\n// Checks whether it would be reasonable to apply a given mark type to\n// a given node, by looking at the way the mark occurs in the schema.\nfunction markMayApply(markType, nodeType) {\n let nodes = nodeType.schema.nodes;\n for (let name in nodes) {\n let parent = nodes[name];\n if (!parent.allowsMarkType(markType))\n continue;\n let seen = [], scan = (match) => {\n seen.push(match);\n for (let i = 0; i < match.edgeCount; i++) {\n let { type, next } = match.edge(i);\n if (type == nodeType)\n return true;\n if (seen.indexOf(next) < 0 && scan(next))\n return true;\n }\n };\n if (scan(parent.contentMatch))\n return true;\n }\n}\nfunction findSameMarkInSet(mark, set) {\n for (let i = 0; i < set.length; i++) {\n if (mark.eq(set[i]))\n return set[i];\n }\n}\n\n/**\nA DOM serializer knows how to convert ProseMirror nodes and\nmarks of various types to DOM nodes.\n*/\nclass DOMSerializer {\n /**\n Create a serializer. `nodes` should map node names to functions\n that take a node and return a description of the corresponding\n DOM. `marks` does the same for mark names, but also gets an\n argument that tells it whether the mark's content is block or\n inline content (for typical use, it'll always be inline). A mark\n serializer may be `null` to indicate that marks of that type\n should not be serialized.\n */\n constructor(\n /**\n The node serialization functions.\n */\n nodes, \n /**\n The mark serialization functions.\n */\n marks) {\n this.nodes = nodes;\n this.marks = marks;\n }\n /**\n Serialize the content of this fragment to a DOM fragment. When\n not in the browser, the `document` option, containing a DOM\n document, should be passed so that the serializer can create\n nodes.\n */\n serializeFragment(fragment, options = {}, target) {\n if (!target)\n target = doc(options).createDocumentFragment();\n let top = target, active = [];\n fragment.forEach(node => {\n if (active.length || node.marks.length) {\n let keep = 0, rendered = 0;\n while (keep < active.length && rendered < node.marks.length) {\n let next = node.marks[rendered];\n if (!this.marks[next.type.name]) {\n rendered++;\n continue;\n }\n if (!next.eq(active[keep][0]) || next.type.spec.spanning === false)\n break;\n keep++;\n rendered++;\n }\n while (keep < active.length)\n top = active.pop()[1];\n while (rendered < node.marks.length) {\n let add = node.marks[rendered++];\n let markDOM = this.serializeMark(add, node.isInline, options);\n if (markDOM) {\n active.push([add, top]);\n top.appendChild(markDOM.dom);\n top = markDOM.contentDOM || markDOM.dom;\n }\n }\n }\n top.appendChild(this.serializeNodeInner(node, options));\n });\n return target;\n }\n /**\n @internal\n */\n serializeNodeInner(node, options) {\n let { dom, contentDOM } = DOMSerializer.renderSpec(doc(options), this.nodes[node.type.name](node));\n if (contentDOM) {\n if (node.isLeaf)\n throw new RangeError(\"Content hole not allowed in a leaf node spec\");\n this.serializeFragment(node.content, options, contentDOM);\n }\n return dom;\n }\n /**\n Serialize this node to a DOM node. This can be useful when you\n need to serialize a part of a document, as opposed to the whole\n document. To serialize a whole document, use\n [`serializeFragment`](https://prosemirror.net/docs/ref/#model.DOMSerializer.serializeFragment) on\n its [content](https://prosemirror.net/docs/ref/#model.Node.content).\n */\n serializeNode(node, options = {}) {\n let dom = this.serializeNodeInner(node, options);\n for (let i = node.marks.length - 1; i >= 0; i--) {\n let wrap = this.serializeMark(node.marks[i], node.isInline, options);\n if (wrap) {\n (wrap.contentDOM || wrap.dom).appendChild(dom);\n dom = wrap.dom;\n }\n }\n return dom;\n }\n /**\n @internal\n */\n serializeMark(mark, inline, options = {}) {\n let toDOM = this.marks[mark.type.name];\n return toDOM && DOMSerializer.renderSpec(doc(options), toDOM(mark, inline));\n }\n /**\n Render an [output spec](https://prosemirror.net/docs/ref/#model.DOMOutputSpec) to a DOM node. If\n the spec has a hole (zero) in it, `contentDOM` will point at the\n node with the hole.\n */\n static renderSpec(doc, structure, xmlNS = null) {\n if (typeof structure == \"string\")\n return { dom: doc.createTextNode(structure) };\n if (structure.nodeType != null)\n return { dom: structure };\n if (structure.dom && structure.dom.nodeType != null)\n return structure;\n let tagName = structure[0], space = tagName.indexOf(\" \");\n if (space > 0) {\n xmlNS = tagName.slice(0, space);\n tagName = tagName.slice(space + 1);\n }\n let contentDOM;\n let dom = (xmlNS ? doc.createElementNS(xmlNS, tagName) : doc.createElement(tagName));\n let attrs = structure[1], start = 1;\n if (attrs && typeof attrs == \"object\" && attrs.nodeType == null && !Array.isArray(attrs)) {\n start = 2;\n for (let name in attrs)\n if (attrs[name] != null) {\n let space = name.indexOf(\" \");\n if (space > 0)\n dom.setAttributeNS(name.slice(0, space), name.slice(space + 1), attrs[name]);\n else\n dom.setAttribute(name, attrs[name]);\n }\n }\n for (let i = start; i < structure.length; i++) {\n let child = structure[i];\n if (child === 0) {\n if (i < structure.length - 1 || i > start)\n throw new RangeError(\"Content hole must be the only child of its parent node\");\n return { dom, contentDOM: dom };\n }\n else {\n let { dom: inner, contentDOM: innerContent } = DOMSerializer.renderSpec(doc, child, xmlNS);\n dom.appendChild(inner);\n if (innerContent) {\n if (contentDOM)\n throw new RangeError(\"Multiple content holes\");\n contentDOM = innerContent;\n }\n }\n }\n return { dom, contentDOM };\n }\n /**\n Build a serializer using the [`toDOM`](https://prosemirror.net/docs/ref/#model.NodeSpec.toDOM)\n properties in a schema's node and mark specs.\n */\n static fromSchema(schema) {\n return schema.cached.domSerializer ||\n (schema.cached.domSerializer = new DOMSerializer(this.nodesFromSchema(schema), this.marksFromSchema(schema)));\n }\n /**\n Gather the serializers in a schema's node specs into an object.\n This can be useful as a base to build a custom serializer from.\n */\n static nodesFromSchema(schema) {\n let result = gatherToDOM(schema.nodes);\n if (!result.text)\n result.text = node => node.text;\n return result;\n }\n /**\n Gather the serializers in a schema's mark specs into an object.\n */\n static marksFromSchema(schema) {\n return gatherToDOM(schema.marks);\n }\n}\nfunction gatherToDOM(obj) {\n let result = {};\n for (let name in obj) {\n let toDOM = obj[name].spec.toDOM;\n if (toDOM)\n result[name] = toDOM;\n }\n return result;\n}\nfunction doc(options) {\n return options.document || window.document;\n}\n\n\n\n\n//# sourceURL=webpack:///./node_modules/prosemirror-model/dist/index.js?");
/***/ }),
/***/ "./node_modules/prosemirror-state/dist/index.js":
/*!******************************************************!*\
!*** ./node_modules/prosemirror-state/dist/index.js ***!
\******************************************************/
/*! exports provided: AllSelection, EditorState, NodeSelection, Plugin, PluginKey, Selection, SelectionRange, TextSelection, Transaction */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AllSelection\", function() { return AllSelection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EditorState\", function() { return EditorState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NodeSelection\", function() { return NodeSelection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Plugin\", function() { return Plugin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PluginKey\", function() { return PluginKey; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Selection\", function() { return Selection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SelectionRange\", function() { return SelectionRange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TextSelection\", function() { return TextSelection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Transaction\", function() { return Transaction; });\n/* harmony import */ var prosemirror_model__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prosemirror-model */ \"./node_modules/prosemirror-model/dist/index.js\");\n/* harmony import */ var prosemirror_transform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prosemirror-transform */ \"./node_modules/prosemirror-transform/dist/index.js\");\n\n\n\nconst classesById = Object.create(null);\n/**\nSuperclass for editor selections. Every selection type should\nextend this. Should not be instantiated directly.\n*/\nclass Selection {\n /**\n Initialize a selection with the head and anchor and ranges. If no\n ranges are given, constructs a single range across `$anchor` and\n `$head`.\n */\n constructor(\n /**\n The resolved anchor of the selection (the side that stays in\n place when the selection is modified).\n */\n $anchor, \n /**\n The resolved head of the selection (the side that moves when\n the selection is modified).\n */\n $head, ranges) {\n this.$anchor = $anchor;\n this.$head = $head;\n this.ranges = ranges || [new SelectionRange($anchor.min($head), $anchor.max($head))];\n }\n /**\n The selection's anchor, as an unresolved position.\n */\n get anchor() { return this.$anchor.pos; }\n /**\n The selection's head.\n */\n get head() { return this.$head.pos; }\n /**\n The lower bound of the selection's main range.\n */\n get from() { return this.$from.pos; }\n /**\n The upper bound of the selection's main range.\n */\n get to() { return this.$to.pos; }\n /**\n The resolved lower bound of the selection's main range.\n */\n get $from() {\n return this.ranges[0].$from;\n }\n /**\n The resolved upper bound of the selection's main range.\n */\n get $to() {\n return this.ranges[0].$to;\n }\n /**\n Indicates whether the selection contains any content.\n */\n get empty() {\n let ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++)\n if (ranges[i].$from.pos != ranges[i].$to.pos)\n return false;\n return true;\n }\n /**\n Get the content of this selection as a slice.\n */\n content() {\n return this.$from.doc.slice(this.from, this.to, true);\n }\n /**\n Replace the selection with a slice or, if no slice is given,\n delete the selection. Will append to the given transaction.\n */\n replace(tr, content = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"].empty) {\n // Put the new selection at the position after the inserted\n // content. When that ended in an inline node, search backwards,\n // to get the position after that node. If not, search forward.\n let lastNode = content.content.lastChild, lastParent = null;\n for (let i = 0; i < content.openEnd; i++) {\n lastParent = lastNode;\n lastNode = lastNode.lastChild;\n }\n let mapFrom = tr.steps.length, ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i], mapping = tr.mapping.slice(mapFrom);\n tr.replaceRange(mapping.map($from.pos), mapping.map($to.pos), i ? prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"].empty : content);\n if (i == 0)\n selectionToInsertionEnd(tr, mapFrom, (lastNode ? lastNode.isInline : lastParent && lastParent.isTextblock) ? -1 : 1);\n }\n }\n /**\n Replace the selection with the given node, appending the changes\n to the given transaction.\n */\n replaceWith(tr, node) {\n let mapFrom = tr.steps.length, ranges = this.ranges;\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i], mapping = tr.mapping.slice(mapFrom);\n let from = mapping.map($from.pos), to = mapping.map($to.pos);\n if (i) {\n tr.deleteRange(from, to);\n }\n else {\n tr.replaceRangeWith(from, to, node);\n selectionToInsertionEnd(tr, mapFrom, node.isInline ? -1 : 1);\n }\n }\n }\n /**\n Find a valid cursor or leaf node selection starting at the given\n position and searching back if `dir` is negative, and forward if\n positive. When `textOnly` is true, only consider cursor\n selections. Will return null when no valid selection position is\n found.\n */\n static findFrom($pos, dir, textOnly = false) {\n let inner = $pos.parent.inlineContent ? new TextSelection($pos)\n : findSelectionIn($pos.node(0), $pos.parent, $pos.pos, $pos.index(), dir, textOnly);\n if (inner)\n return inner;\n for (let depth = $pos.depth - 1; depth >= 0; depth--) {\n let found = dir < 0\n ? findSelectionIn($pos.node(0), $pos.node(depth), $pos.before(depth + 1), $pos.index(depth), dir, textOnly)\n : findSelectionIn($pos.node(0), $pos.node(depth), $pos.after(depth + 1), $pos.index(depth) + 1, dir, textOnly);\n if (found)\n return found;\n }\n return null;\n }\n /**\n Find a valid cursor or leaf node selection near the given\n position. Searches forward first by default, but if `bias` is\n negative, it will search backwards first.\n */\n static near($pos, bias = 1) {\n return this.findFrom($pos, bias) || this.findFrom($pos, -bias) || new AllSelection($pos.node(0));\n }\n /**\n Find the cursor or leaf node selection closest to the start of\n the given document. Will return an\n [`AllSelection`](https://prosemirror.net/docs/ref/#state.AllSelection) if no valid position\n exists.\n */\n static atStart(doc) {\n return findSelectionIn(doc, doc, 0, 0, 1) || new AllSelection(doc);\n }\n /**\n Find the cursor or leaf node selection closest to the end of the\n given document.\n */\n static atEnd(doc) {\n return findSelectionIn(doc, doc, doc.content.size, doc.childCount, -1) || new AllSelection(doc);\n }\n /**\n Deserialize the JSON representation of a selection. Must be\n implemented for custom classes (as a static class method).\n */\n static fromJSON(doc, json) {\n if (!json || !json.type)\n throw new RangeError(\"Invalid input for Selection.fromJSON\");\n let cls = classesById[json.type];\n if (!cls)\n throw new RangeError(`No selection type ${json.type} defined`);\n return cls.fromJSON(doc, json);\n }\n /**\n To be able to deserialize selections from JSON, custom selection\n classes must register themselves with an ID string, so that they\n can be disambiguated. Try to pick something that's unlikely to\n clash with classes from other modules.\n */\n static jsonID(id, selectionClass) {\n if (id in classesById)\n throw new RangeError(\"Duplicate use of selection JSON ID \" + id);\n classesById[id] = selectionClass;\n selectionClass.prototype.jsonID = id;\n return selectionClass;\n }\n /**\n Get a [bookmark](https://prosemirror.net/docs/ref/#state.SelectionBookmark) for this selection,\n which is a value that can be mapped without having access to a\n current document, and later resolved to a real selection for a\n given document again. (This is used mostly by the history to\n track and restore old selections.) The default implementation of\n this method just converts the selection to a text selection and\n returns the bookmark for that.\n */\n getBookmark() {\n return TextSelection.between(this.$anchor, this.$head).getBookmark();\n }\n}\nSelection.prototype.visible = true;\n/**\nRepresents a selected range in a document.\n*/\nclass SelectionRange {\n /**\n Create a range.\n */\n constructor(\n /**\n The lower bound of the range.\n */\n $from, \n /**\n The upper bound of the range.\n */\n $to) {\n this.$from = $from;\n this.$to = $to;\n }\n}\nlet warnedAboutTextSelection = false;\nfunction checkTextSelection($pos) {\n if (!warnedAboutTextSelection && !$pos.parent.inlineContent) {\n warnedAboutTextSelection = true;\n console[\"warn\"](\"TextSelection endpoint not pointing into a node with inline content (\" + $pos.parent.type.name + \")\");\n }\n}\n/**\nA text selection represents a classical editor selection, with a\nhead (the moving side) and anchor (immobile side), both of which\npoint into textblock nodes. It can be empty (a regular cursor\nposition).\n*/\nclass TextSelection extends Selection {\n /**\n Construct a text selection between the given points.\n */\n constructor($anchor, $head = $anchor) {\n checkTextSelection($anchor);\n checkTextSelection($head);\n super($anchor, $head);\n }\n /**\n Returns a resolved position if this is a cursor selection (an\n empty text selection), and null otherwise.\n */\n get $cursor() { return this.$anchor.pos == this.$head.pos ? this.$head : null; }\n map(doc, mapping) {\n let $head = doc.resolve(mapping.map(this.head));\n if (!$head.parent.inlineContent)\n return Selection.near($head);\n let $anchor = doc.resolve(mapping.map(this.anchor));\n return new TextSelection($anchor.parent.inlineContent ? $anchor : $head, $head);\n }\n replace(tr, content = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"].empty) {\n super.replace(tr, content);\n if (content == prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"].empty) {\n let marks = this.$from.marksAcross(this.$to);\n if (marks)\n tr.ensureMarks(marks);\n }\n }\n eq(other) {\n return other instanceof TextSelection && other.anchor == this.anchor && other.head == this.head;\n }\n getBookmark() {\n return new TextBookmark(this.anchor, this.head);\n }\n toJSON() {\n return { type: \"text\", anchor: this.anchor, head: this.head };\n }\n /**\n @internal\n */\n static fromJSON(doc, json) {\n if (typeof json.anchor != \"number\" || typeof json.head != \"number\")\n throw new RangeError(\"Invalid input for TextSelection.fromJSON\");\n return new TextSelection(doc.resolve(json.anchor), doc.resolve(json.head));\n }\n /**\n Create a text selection from non-resolved positions.\n */\n static create(doc, anchor, head = anchor) {\n let $anchor = doc.resolve(anchor);\n return new this($anchor, head == anchor ? $anchor : doc.resolve(head));\n }\n /**\n Return a text selection that spans the given positions or, if\n they aren't text positions, find a text selection near them.\n `bias` determines whether the method searches forward (default)\n or backwards (negative number) first. Will fall back to calling\n [`Selection.near`](https://prosemirror.net/docs/ref/#state.Selection^near) when the document\n doesn't contain a valid text position.\n */\n static between($anchor, $head, bias) {\n let dPos = $anchor.pos - $head.pos;\n if (!bias || dPos)\n bias = dPos >= 0 ? 1 : -1;\n if (!$head.parent.inlineContent) {\n let found = Selection.findFrom($head, bias, true) || Selection.findFrom($head, -bias, true);\n if (found)\n $head = found.$head;\n else\n return Selection.near($head, bias);\n }\n if (!$anchor.parent.inlineContent) {\n if (dPos == 0) {\n $anchor = $head;\n }\n else {\n $anchor = (Selection.findFrom($anchor, -bias, true) || Selection.findFrom($anchor, bias, true)).$anchor;\n if (($anchor.pos < $head.pos) != (dPos < 0))\n $anchor = $head;\n }\n }\n return new TextSelection($anchor, $head);\n }\n}\nSelection.jsonID(\"text\", TextSelection);\nclass TextBookmark {\n constructor(anchor, head) {\n this.anchor = anchor;\n this.head = head;\n }\n map(mapping) {\n return new TextBookmark(mapping.map(this.anchor), mapping.map(this.head));\n }\n resolve(doc) {\n return TextSelection.between(doc.resolve(this.anchor), doc.resolve(this.head));\n }\n}\n/**\nA node selection is a selection that points at a single node. All\nnodes marked [selectable](https://prosemirror.net/docs/ref/#model.NodeSpec.selectable) can be the\ntarget of a node selection. In such a selection, `from` and `to`\npoint directly before and after the selected node, `anchor` equals\n`from`, and `head` equals `to`..\n*/\nclass NodeSelection extends Selection {\n /**\n Create a node selection. Does not verify the validity of its\n argument.\n */\n constructor($pos) {\n let node = $pos.nodeAfter;\n let $end = $pos.node(0).resolve($pos.pos + node.nodeSize);\n super($pos, $end);\n this.node = node;\n }\n map(doc, mapping) {\n let { deleted, pos } = mapping.mapResult(this.anchor);\n let $pos = doc.resolve(pos);\n if (deleted)\n return Selection.near($pos);\n return new NodeSelection($pos);\n }\n content() {\n return new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(this.node), 0, 0);\n }\n eq(other) {\n return other instanceof NodeSelection && other.anchor == this.anchor;\n }\n toJSON() {\n return { type: \"node\", anchor: this.anchor };\n }\n getBookmark() { return new NodeBookmark(this.anchor); }\n /**\n @internal\n */\n static fromJSON(doc, json) {\n if (typeof json.anchor != \"number\")\n throw new RangeError(\"Invalid input for NodeSelection.fromJSON\");\n return new NodeSelection(doc.resolve(json.anchor));\n }\n /**\n Create a node selection from non-resolved positions.\n */\n static create(doc, from) {\n return new NodeSelection(doc.resolve(from));\n }\n /**\n Determines whether the given node may be selected as a node\n selection.\n */\n static isSelectable(node) {\n return !node.isText && node.type.spec.selectable !== false;\n }\n}\nNodeSelection.prototype.visible = false;\nSelection.jsonID(\"node\", NodeSelection);\nclass NodeBookmark {\n constructor(anchor) {\n this.anchor = anchor;\n }\n map(mapping) {\n let { deleted, pos } = mapping.mapResult(this.anchor);\n return deleted ? new TextBookmark(pos, pos) : new NodeBookmark(pos);\n }\n resolve(doc) {\n let $pos = doc.resolve(this.anchor), node = $pos.nodeAfter;\n if (node && NodeSelection.isSelectable(node))\n return new NodeSelection($pos);\n return Selection.near($pos);\n }\n}\n/**\nA selection type that represents selecting the whole document\n(which can not necessarily be expressed with a text selection, when\nthere are for example leaf block nodes at the start or end of the\ndocument).\n*/\nclass AllSelection extends Selection {\n /**\n Create an all-selection over the given document.\n */\n constructor(doc) {\n super(doc.resolve(0), doc.resolve(doc.content.size));\n }\n replace(tr, content = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"].empty) {\n if (content == prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"].empty) {\n tr.delete(0, tr.doc.content.size);\n let sel = Selection.atStart(tr.doc);\n if (!sel.eq(tr.selection))\n tr.setSelection(sel);\n }\n else {\n super.replace(tr, content);\n }\n }\n toJSON() { return { type: \"all\" }; }\n /**\n @internal\n */\n static fromJSON(doc) { return new AllSelection(doc); }\n map(doc) { return new AllSelection(doc); }\n eq(other) { return other instanceof AllSelection; }\n getBookmark() { return AllBookmark; }\n}\nSelection.jsonID(\"all\", AllSelection);\nconst AllBookmark = {\n map() { return this; },\n resolve(doc) { return new AllSelection(doc); }\n};\n// FIXME we'll need some awareness of text direction when scanning for selections\n// Try to find a selection inside the given node. `pos` points at the\n// position where the search starts. When `text` is true, only return\n// text selections.\nfunction findSelectionIn(doc, node, pos, index, dir, text = false) {\n if (node.inlineContent)\n return TextSelection.create(doc, pos);\n for (let i = index - (dir > 0 ? 0 : 1); dir > 0 ? i < node.childCount : i >= 0; i += dir) {\n let child = node.child(i);\n if (!child.isAtom) {\n let inner = findSelectionIn(doc, child, pos + dir, dir < 0 ? child.childCount : 0, dir, text);\n if (inner)\n return inner;\n }\n else if (!text && NodeSelection.isSelectable(child)) {\n return NodeSelection.create(doc, pos - (dir < 0 ? child.nodeSize : 0));\n }\n pos += child.nodeSize * dir;\n }\n return null;\n}\nfunction selectionToInsertionEnd(tr, startLen, bias) {\n let last = tr.steps.length - 1;\n if (last < startLen)\n return;\n let step = tr.steps[last];\n if (!(step instanceof prosemirror_transform__WEBPACK_IMPORTED_MODULE_1__[\"ReplaceStep\"] || step instanceof prosemirror_transform__WEBPACK_IMPORTED_MODULE_1__[\"ReplaceAroundStep\"]))\n return;\n let map = tr.mapping.maps[last], end;\n map.forEach((_from, _to, _newFrom, newTo) => { if (end == null)\n end = newTo; });\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias));\n}\n\nconst UPDATED_SEL = 1, UPDATED_MARKS = 2, UPDATED_SCROLL = 4;\n/**\nAn editor state transaction, which can be applied to a state to\ncreate an updated state. Use\n[`EditorState.tr`](https://prosemirror.net/docs/ref/#state.EditorState.tr) to create an instance.\n\nTransactions track changes to the document (they are a subclass of\n[`Transform`](https://prosemirror.net/docs/ref/#transform.Transform)), but also other state changes,\nlike selection updates and adjustments of the set of [stored\nmarks](https://prosemirror.net/docs/ref/#state.EditorState.storedMarks). In addition, you can store\nmetadata properties in a transaction, which are extra pieces of\ninformation that client code or plugins can use to describe what a\ntransaction represents, so that they can update their [own\nstate](https://prosemirror.net/docs/ref/#state.StateField) accordingly.\n\nThe [editor view](https://prosemirror.net/docs/ref/#view.EditorView) uses a few metadata\nproperties: it will attach a property `\"pointer\"` with the value\n`true` to selection transactions directly caused by mouse or touch\ninput, a `\"composition\"` property holding an ID identifying the\ncomposition that caused it to transactions caused by composed DOM\ninput, and a `\"uiEvent\"` property of that may be `\"paste\"`,\n`\"cut\"`, or `\"drop\"`.\n*/\nclass Transaction extends prosemirror_transform__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"] {\n /**\n @internal\n */\n constructor(state) {\n super(state.doc);\n // The step count for which the current selection is valid.\n this.curSelectionFor = 0;\n // Bitfield to track which aspects of the state were updated by\n // this transaction.\n this.updated = 0;\n // Object used to store metadata properties for the transaction.\n this.meta = Object.create(null);\n this.time = Date.now();\n this.curSelection = state.selection;\n this.storedMarks = state.storedMarks;\n }\n /**\n The transaction's current selection. This defaults to the editor\n selection [mapped](https://prosemirror.net/docs/ref/#state.Selection.map) through the steps in the\n transaction, but can be overwritten with\n [`setSelection`](https://prosemirror.net/docs/ref/#state.Transaction.setSelection).\n */\n get selection() {\n if (this.curSelectionFor < this.steps.length) {\n this.curSelection = this.curSelection.map(this.doc, this.mapping.slice(this.curSelectionFor));\n this.curSelectionFor = this.steps.length;\n }\n return this.curSelection;\n }\n /**\n Update the transaction's current selection. Will determine the\n selection that the editor gets when the transaction is applied.\n */\n setSelection(selection) {\n if (selection.$from.doc != this.doc)\n throw new RangeError(\"Selection passed to setSelection must point at the current document\");\n this.curSelection = selection;\n this.curSelectionFor = this.steps.length;\n this.updated = (this.updated | UPDATED_SEL) & ~UPDATED_MARKS;\n this.storedMarks = null;\n return this;\n }\n /**\n Whether the selection was explicitly updated by this transaction.\n */\n get selectionSet() {\n return (this.updated & UPDATED_SEL) > 0;\n }\n /**\n Set the current stored marks.\n */\n setStoredMarks(marks) {\n this.storedMarks = marks;\n this.updated |= UPDATED_MARKS;\n return this;\n }\n /**\n Make sure the current stored marks or, if that is null, the marks\n at the selection, match the given set of marks. Does nothing if\n this is already the case.\n */\n ensureMarks(marks) {\n if (!prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Mark\"].sameSet(this.storedMarks || this.selection.$from.marks(), marks))\n this.setStoredMarks(marks);\n return this;\n }\n /**\n Add a mark to the set of stored marks.\n */\n addStoredMark(mark) {\n return this.ensureMarks(mark.addToSet(this.storedMarks || this.selection.$head.marks()));\n }\n /**\n Remove a mark or mark type from the set of stored marks.\n */\n removeStoredMark(mark) {\n return this.ensureMarks(mark.removeFromSet(this.storedMarks || this.selection.$head.marks()));\n }\n /**\n Whether the stored marks were explicitly set for this transaction.\n */\n get storedMarksSet() {\n return (this.updated & UPDATED_MARKS) > 0;\n }\n /**\n @internal\n */\n addStep(step, doc) {\n super.addStep(step, doc);\n this.updated = this.updated & ~UPDATED_MARKS;\n this.storedMarks = null;\n }\n /**\n Update the timestamp for the transaction.\n */\n setTime(time) {\n this.time = time;\n return this;\n }\n /**\n Replace the current selection with the given slice.\n */\n replaceSelection(slice) {\n this.selection.replace(this, slice);\n return this;\n }\n /**\n Replace the selection with the given node. When `inheritMarks` is\n true and the content is inline, it inherits the marks from the\n place where it is inserted.\n */\n replaceSelectionWith(node, inheritMarks = true) {\n let selection = this.selection;\n if (inheritMarks)\n node = node.mark(this.storedMarks || (selection.empty ? selection.$from.marks() : (selection.$from.marksAcross(selection.$to) || prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Mark\"].none)));\n selection.replaceWith(this, node);\n return this;\n }\n /**\n Delete the selection.\n */\n deleteSelection() {\n this.selection.replace(this);\n return this;\n }\n /**\n Replace the given range, or the selection if no range is given,\n with a text node containing the given string.\n */\n insertText(text, from, to) {\n let schema = this.doc.type.schema;\n if (from == null) {\n if (!text)\n return this.deleteSelection();\n return this.replaceSelectionWith(schema.text(text), true);\n }\n else {\n if (to == null)\n to = from;\n to = to == null ? from : to;\n if (!text)\n return this.deleteRange(from, to);\n let marks = this.storedMarks;\n if (!marks) {\n let $from = this.doc.resolve(from);\n marks = to == from ? $from.marks() : $from.marksAcross(this.doc.resolve(to));\n }\n this.replaceRangeWith(from, to, schema.text(text, marks));\n if (!this.selection.empty)\n this.setSelection(Selection.near(this.selection.$to));\n return this;\n }\n }\n /**\n Store a metadata property in this transaction, keyed either by\n name or by plugin.\n */\n setMeta(key, value) {\n this.meta[typeof key == \"string\" ? key : key.key] = value;\n return this;\n }\n /**\n Retrieve a metadata property for a given name or plugin.\n */\n getMeta(key) {\n return this.meta[typeof key == \"string\" ? key : key.key];\n }\n /**\n Returns true if this transaction doesn't contain any metadata,\n and can thus safely be extended.\n */\n get isGeneric() {\n for (let _ in this.meta)\n return false;\n return true;\n }\n /**\n Indicate that the editor should scroll the selection into view\n when updated to the state produced by this transaction.\n */\n scrollIntoView() {\n this.updated |= UPDATED_SCROLL;\n return this;\n }\n /**\n True when this transaction has had `scrollIntoView` called on it.\n */\n get scrolledIntoView() {\n return (this.updated & UPDATED_SCROLL) > 0;\n }\n}\n\nfunction bind(f, self) {\n return !self || !f ? f : f.bind(self);\n}\nclass FieldDesc {\n constructor(name, desc, self) {\n this.name = name;\n this.init = bind(desc.init, self);\n this.apply = bind(desc.apply, self);\n }\n}\nconst baseFields = [\n new FieldDesc(\"doc\", {\n init(config) { return config.doc || config.schema.topNodeType.createAndFill(); },\n apply(tr) { return tr.doc; }\n }),\n new FieldDesc(\"selection\", {\n init(config, instance) { return config.selection || Selection.atStart(instance.doc); },\n apply(tr) { return tr.selection; }\n }),\n new FieldDesc(\"storedMarks\", {\n init(config) { return config.storedMarks || null; },\n apply(tr, _marks, _old, state) { return state.selection.$cursor ? tr.storedMarks : null; }\n }),\n new FieldDesc(\"scrollToSelection\", {\n init() { return 0; },\n apply(tr, prev) { return tr.scrolledIntoView ? prev + 1 : prev; }\n })\n];\n// Object wrapping the part of a state object that stays the same\n// across transactions. Stored in the state's `config` property.\nclass Configuration {\n constructor(schema, plugins) {\n this.schema = schema;\n this.plugins = [];\n this.pluginsByKey = Object.create(null);\n this.fields = baseFields.slice();\n if (plugins)\n plugins.forEach(plugin => {\n if (this.pluginsByKey[plugin.key])\n throw new RangeError(\"Adding different instances of a keyed plugin (\" + plugin.key + \")\");\n this.plugins.push(plugin);\n this.pluginsByKey[plugin.key] = plugin;\n if (plugin.spec.state)\n this.fields.push(new FieldDesc(plugin.key, plugin.spec.state, plugin));\n });\n }\n}\n/**\nThe state of a ProseMirror editor is represented by an object of\nthis type. A state is a persistent data structure—it isn't\nupdated, but rather a new state value is computed from an old one\nusing the [`apply`](https://prosemirror.net/docs/ref/#state.EditorState.apply) method.\n\nA state holds a number of built-in fields, and plugins can\n[define](https://prosemirror.net/docs/ref/#state.PluginSpec.state) additional fields.\n*/\nclass EditorState {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n config) {\n this.config = config;\n }\n /**\n The schema of the state's document.\n */\n get schema() {\n return this.config.schema;\n }\n /**\n The plugins that are active in this state.\n */\n get plugins() {\n return this.config.plugins;\n }\n /**\n Apply the given transaction to produce a new state.\n */\n apply(tr) {\n return this.applyTransaction(tr).state;\n }\n /**\n @internal\n */\n filterTransaction(tr, ignore = -1) {\n for (let i = 0; i < this.config.plugins.length; i++)\n if (i != ignore) {\n let plugin = this.config.plugins[i];\n if (plugin.spec.filterTransaction && !plugin.spec.filterTransaction.call(plugin, tr, this))\n return false;\n }\n return true;\n }\n /**\n Verbose variant of [`apply`](https://prosemirror.net/docs/ref/#state.EditorState.apply) that\n returns the precise transactions that were applied (which might\n be influenced by the [transaction\n hooks](https://prosemirror.net/docs/ref/#state.PluginSpec.filterTransaction) of\n plugins) along with the new state.\n */\n applyTransaction(rootTr) {\n if (!this.filterTransaction(rootTr))\n return { state: this, transactions: [] };\n let trs = [rootTr], newState = this.applyInner(rootTr), seen = null;\n // This loop repeatedly gives plugins a chance to respond to\n // transactions as new transactions are added, making sure to only\n // pass the transactions the plugin did not see before.\n for (;;) {\n let haveNew = false;\n for (let i = 0; i < this.config.plugins.length; i++) {\n let plugin = this.config.plugins[i];\n if (plugin.spec.appendTransaction) {\n let n = seen ? seen[i].n : 0, oldState = seen ? seen[i].state : this;\n let tr = n < trs.length &&\n plugin.spec.appendTransaction.call(plugin, n ? trs.slice(n) : trs, oldState, newState);\n if (tr && newState.filterTransaction(tr, i)) {\n tr.setMeta(\"appendedTransaction\", rootTr);\n if (!seen) {\n seen = [];\n for (let j = 0; j < this.config.plugins.length; j++)\n seen.push(j < i ? { state: newState, n: trs.length } : { state: this, n: 0 });\n }\n trs.push(tr);\n newState = newState.applyInner(tr);\n haveNew = true;\n }\n if (seen)\n seen[i] = { state: newState, n: trs.length };\n }\n }\n if (!haveNew)\n return { state: newState, transactions: trs };\n }\n }\n /**\n @internal\n */\n applyInner(tr) {\n if (!tr.before.eq(this.doc))\n throw new RangeError(\"Applying a mismatched transaction\");\n let newInstance = new EditorState(this.config), fields = this.config.fields;\n for (let i = 0; i < fields.length; i++) {\n let field = fields[i];\n newInstance[field.name] = field.apply(tr, this[field.name], this, newInstance);\n }\n return newInstance;\n }\n /**\n Start a [transaction](https://prosemirror.net/docs/ref/#state.Transaction) from this state.\n */\n get tr() { return new Transaction(this); }\n /**\n Create a new state.\n */\n static create(config) {\n let $config = new Configuration(config.doc ? config.doc.type.schema : config.schema, config.plugins);\n let instance = new EditorState($config);\n for (let i = 0; i < $config.fields.length; i++)\n instance[$config.fields[i].name] = $config.fields[i].init(config, instance);\n return instance;\n }\n /**\n Create a new state based on this one, but with an adjusted set\n of active plugins. State fields that exist in both sets of\n plugins are kept unchanged. Those that no longer exist are\n dropped, and those that are new are initialized using their\n [`init`](https://prosemirror.net/docs/ref/#state.StateField.init) method, passing in the new\n configuration object..\n */\n reconfigure(config) {\n let $config = new Configuration(this.schema, config.plugins);\n let fields = $config.fields, instance = new EditorState($config);\n for (let i = 0; i < fields.length; i++) {\n let name = fields[i].name;\n instance[name] = this.hasOwnProperty(name) ? this[name] : fields[i].init(config, instance);\n }\n return instance;\n }\n /**\n Serialize this state to JSON. If you want to serialize the state\n of plugins, pass an object mapping property names to use in the\n resulting JSON object to plugin objects. The argument may also be\n a string or number, in which case it is ignored, to support the\n way `JSON.stringify` calls `toString` methods.\n */\n toJSON(pluginFields) {\n let result = { doc: this.doc.toJSON(), selection: this.selection.toJSON() };\n if (this.storedMarks)\n result.storedMarks = this.storedMarks.map(m => m.toJSON());\n if (pluginFields && typeof pluginFields == 'object')\n for (let prop in pluginFields) {\n if (prop == \"doc\" || prop == \"selection\")\n throw new RangeError(\"The JSON fields `doc` and `selection` are reserved\");\n let plugin = pluginFields[prop], state = plugin.spec.state;\n if (state && state.toJSON)\n result[prop] = state.toJSON.call(plugin, this[plugin.key]);\n }\n return result;\n }\n /**\n Deserialize a JSON representation of a state. `config` should\n have at least a `schema` field, and should contain array of\n plugins to initialize the state with. `pluginFields` can be used\n to deserialize the state of plugins, by associating plugin\n instances with the property names they use in the JSON object.\n */\n static fromJSON(config, json, pluginFields) {\n if (!json)\n throw new RangeError(\"Invalid input for EditorState.fromJSON\");\n if (!config.schema)\n throw new RangeError(\"Required config field 'schema' missing\");\n let $config = new Configuration(config.schema, config.plugins);\n let instance = new EditorState($config);\n $config.fields.forEach(field => {\n if (field.name == \"doc\") {\n instance.doc = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Node\"].fromJSON(config.schema, json.doc);\n }\n else if (field.name == \"selection\") {\n instance.selection = Selection.fromJSON(instance.doc, json.selection);\n }\n else if (field.name == \"storedMarks\") {\n if (json.storedMarks)\n instance.storedMarks = json.storedMarks.map(config.schema.markFromJSON);\n }\n else {\n if (pluginFields)\n for (let prop in pluginFields) {\n let plugin = pluginFields[prop], state = plugin.spec.state;\n if (plugin.key == field.name && state && state.fromJSON &&\n Object.prototype.hasOwnProperty.call(json, prop)) {\n instance[field.name] = state.fromJSON.call(plugin, config, json[prop], instance);\n return;\n }\n }\n instance[field.name] = field.init(config, instance);\n }\n });\n return instance;\n }\n}\n\nfunction bindProps(obj, self, target) {\n for (let prop in obj) {\n let val = obj[prop];\n if (val instanceof Function)\n val = val.bind(self);\n else if (prop == \"handleDOMEvents\")\n val = bindProps(val, self, {});\n target[prop] = val;\n }\n return target;\n}\n/**\nPlugins bundle functionality that can be added to an editor.\nThey are part of the [editor state](https://prosemirror.net/docs/ref/#state.EditorState) and\nmay influence that state and the view that contains it.\n*/\nclass Plugin {\n /**\n Create a plugin.\n */\n constructor(\n /**\n The plugin's [spec object](https://prosemirror.net/docs/ref/#state.PluginSpec).\n */\n spec) {\n this.spec = spec;\n /**\n The [props](https://prosemirror.net/docs/ref/#view.EditorProps) exported by this plugin.\n */\n this.props = {};\n if (spec.props)\n bindProps(spec.props, this, this.props);\n this.key = spec.key ? spec.key.key : createKey(\"plugin\");\n }\n /**\n Extract the plugin's state field from an editor state.\n */\n getState(state) { return state[this.key]; }\n}\nconst keys = Object.create(null);\nfunction createKey(name) {\n if (name in keys)\n return name + \"$\" + ++keys[name];\n keys[name] = 0;\n return name + \"$\";\n}\n/**\nA key is used to [tag](https://prosemirror.net/docs/ref/#state.PluginSpec.key) plugins in a way\nthat makes it possible to find them, given an editor state.\nAssigning a key does mean only one plugin of that type can be\nactive in a state.\n*/\nclass PluginKey {\n /**\n Create a plugin key.\n */\n constructor(name = \"key\") { this.key = createKey(name); }\n /**\n Get the active plugin with this key, if any, from an editor\n state.\n */\n get(state) { return state.config.pluginsByKey[this.key]; }\n /**\n Get the plugin's state from an editor state.\n */\n getState(state) { return state[this.key]; }\n}\n\n\n\n\n//# sourceURL=webpack:///./node_modules/prosemirror-state/dist/index.js?");
/***/ }),
/***/ "./node_modules/prosemirror-transform/dist/index.js":
/*!**********************************************************!*\
!*** ./node_modules/prosemirror-transform/dist/index.js ***!
\**********************************************************/
/*! exports provided: AddMarkStep, AddNodeMarkStep, AttrStep, DocAttrStep, MapResult, Mapping, RemoveMarkStep, RemoveNodeMarkStep, ReplaceAroundStep, ReplaceStep, Step, StepMap, StepResult, Transform, TransformError, canJoin, canSplit, dropPoint, findWrapping, insertPoint, joinPoint, liftTarget, replaceStep */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AddMarkStep\", function() { return AddMarkStep; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AddNodeMarkStep\", function() { return AddNodeMarkStep; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AttrStep\", function() { return AttrStep; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DocAttrStep\", function() { return DocAttrStep; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MapResult\", function() { return MapResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Mapping\", function() { return Mapping; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RemoveMarkStep\", function() { return RemoveMarkStep; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RemoveNodeMarkStep\", function() { return RemoveNodeMarkStep; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ReplaceAroundStep\", function() { return ReplaceAroundStep; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ReplaceStep\", function() { return ReplaceStep; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Step\", function() { return Step; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"StepMap\", function() { return StepMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"StepResult\", function() { return StepResult; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Transform\", function() { return Transform; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TransformError\", function() { return TransformError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"canJoin\", function() { return canJoin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"canSplit\", function() { return canSplit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dropPoint\", function() { return dropPoint; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findWrapping\", function() { return findWrapping; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertPoint\", function() { return insertPoint; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"joinPoint\", function() { return joinPoint; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"liftTarget\", function() { return liftTarget; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"replaceStep\", function() { return replaceStep; });\n/* harmony import */ var prosemirror_model__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prosemirror-model */ \"./node_modules/prosemirror-model/dist/index.js\");\n\n\n// Recovery values encode a range index and an offset. They are\n// represented as numbers, because tons of them will be created when\n// mapping, for example, a large number of decorations. The number's\n// lower 16 bits provide the index, the remaining bits the offset.\n//\n// Note: We intentionally don't use bit shift operators to en- and\n// decode these, since those clip to 32 bits, which we might in rare\n// cases want to overflow. A 64-bit float can represent 48-bit\n// integers precisely.\nconst lower16 = 0xffff;\nconst factor16 = Math.pow(2, 16);\nfunction makeRecover(index, offset) { return index + offset * factor16; }\nfunction recoverIndex(value) { return value & lower16; }\nfunction recoverOffset(value) { return (value - (value & lower16)) / factor16; }\nconst DEL_BEFORE = 1, DEL_AFTER = 2, DEL_ACROSS = 4, DEL_SIDE = 8;\n/**\nAn object representing a mapped position with extra\ninformation.\n*/\nclass MapResult {\n /**\n @internal\n */\n constructor(\n /**\n The mapped version of the position.\n */\n pos, \n /**\n @internal\n */\n delInfo, \n /**\n @internal\n */\n recover) {\n this.pos = pos;\n this.delInfo = delInfo;\n this.recover = recover;\n }\n /**\n Tells you whether the position was deleted, that is, whether the\n step removed the token on the side queried (via the `assoc`)\n argument from the document.\n */\n get deleted() { return (this.delInfo & DEL_SIDE) > 0; }\n /**\n Tells you whether the token before the mapped position was deleted.\n */\n get deletedBefore() { return (this.delInfo & (DEL_BEFORE | DEL_ACROSS)) > 0; }\n /**\n True when the token after the mapped position was deleted.\n */\n get deletedAfter() { return (this.delInfo & (DEL_AFTER | DEL_ACROSS)) > 0; }\n /**\n Tells whether any of the steps mapped through deletes across the\n position (including both the token before and after the\n position).\n */\n get deletedAcross() { return (this.delInfo & DEL_ACROSS) > 0; }\n}\n/**\nA map describing the deletions and insertions made by a step, which\ncan be used to find the correspondence between positions in the\npre-step version of a document and the same position in the\npost-step version.\n*/\nclass StepMap {\n /**\n Create a position map. The modifications to the document are\n represented as an array of numbers, in which each group of three\n represents a modified chunk as `[start, oldSize, newSize]`.\n */\n constructor(\n /**\n @internal\n */\n ranges, \n /**\n @internal\n */\n inverted = false) {\n this.ranges = ranges;\n this.inverted = inverted;\n if (!ranges.length && StepMap.empty)\n return StepMap.empty;\n }\n /**\n @internal\n */\n recover(value) {\n let diff = 0, index = recoverIndex(value);\n if (!this.inverted)\n for (let i = 0; i < index; i++)\n diff += this.ranges[i * 3 + 2] - this.ranges[i * 3 + 1];\n return this.ranges[index * 3] + diff + recoverOffset(value);\n }\n mapResult(pos, assoc = 1) { return this._map(pos, assoc, false); }\n map(pos, assoc = 1) { return this._map(pos, assoc, true); }\n /**\n @internal\n */\n _map(pos, assoc, simple) {\n let diff = 0, oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos)\n break;\n let oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex], end = start + oldSize;\n if (pos <= end) {\n let side = !oldSize ? assoc : pos == start ? -1 : pos == end ? 1 : assoc;\n let result = start + diff + (side < 0 ? 0 : newSize);\n if (simple)\n return result;\n let recover = pos == (assoc < 0 ? start : end) ? null : makeRecover(i / 3, pos - start);\n let del = pos == start ? DEL_AFTER : pos == end ? DEL_BEFORE : DEL_ACROSS;\n if (assoc < 0 ? pos != start : pos != end)\n del |= DEL_SIDE;\n return new MapResult(result, del, recover);\n }\n diff += newSize - oldSize;\n }\n return simple ? pos + diff : new MapResult(pos + diff, 0, null);\n }\n /**\n @internal\n */\n touches(pos, recover) {\n let diff = 0, index = recoverIndex(recover);\n let oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos)\n break;\n let oldSize = this.ranges[i + oldIndex], end = start + oldSize;\n if (pos <= end && i == index * 3)\n return true;\n diff += this.ranges[i + newIndex] - oldSize;\n }\n return false;\n }\n /**\n Calls the given function on each of the changed ranges included in\n this map.\n */\n forEach(f) {\n let oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (let i = 0, diff = 0; i < this.ranges.length; i += 3) {\n let start = this.ranges[i], oldStart = start - (this.inverted ? diff : 0), newStart = start + (this.inverted ? 0 : diff);\n let oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex];\n f(oldStart, oldStart + oldSize, newStart, newStart + newSize);\n diff += newSize - oldSize;\n }\n }\n /**\n Create an inverted version of this map. The result can be used to\n map positions in the post-step document to the pre-step document.\n */\n invert() {\n return new StepMap(this.ranges, !this.inverted);\n }\n /**\n @internal\n */\n toString() {\n return (this.inverted ? \"-\" : \"\") + JSON.stringify(this.ranges);\n }\n /**\n Create a map that moves all positions by offset `n` (which may be\n negative). This can be useful when applying steps meant for a\n sub-document to a larger document, or vice-versa.\n */\n static offset(n) {\n return n == 0 ? StepMap.empty : new StepMap(n < 0 ? [0, -n, 0] : [0, 0, n]);\n }\n}\n/**\nA StepMap that contains no changed ranges.\n*/\nStepMap.empty = new StepMap([]);\n/**\nA mapping represents a pipeline of zero or more [step\nmaps](https://prosemirror.net/docs/ref/#transform.StepMap). It has special provisions for losslessly\nhandling mapping positions through a series of steps in which some\nsteps are inverted versions of earlier steps. (This comes up when\n[rebasing](/docs/guide/#transform.rebasing) steps for\ncollaboration or history management.)\n*/\nclass Mapping {\n /**\n Create a new mapping with the given position maps.\n */\n constructor(\n /**\n The step maps in this mapping.\n */\n maps = [], \n /**\n @internal\n */\n mirror, \n /**\n The starting position in the `maps` array, used when `map` or\n `mapResult` is called.\n */\n from = 0, \n /**\n The end position in the `maps` array.\n */\n to = maps.length) {\n this.maps = maps;\n this.mirror = mirror;\n this.from = from;\n this.to = to;\n }\n /**\n Create a mapping that maps only through a part of this one.\n */\n slice(from = 0, to = this.maps.length) {\n return new Mapping(this.maps, this.mirror, from, to);\n }\n /**\n @internal\n */\n copy() {\n return new Mapping(this.maps.slice(), this.mirror && this.mirror.slice(), this.from, this.to);\n }\n /**\n Add a step map to the end of this mapping. If `mirrors` is\n given, it should be the index of the step map that is the mirror\n image of this one.\n */\n appendMap(map, mirrors) {\n this.to = this.maps.push(map);\n if (mirrors != null)\n this.setMirror(this.maps.length - 1, mirrors);\n }\n /**\n Add all the step maps in a given mapping to this one (preserving\n mirroring information).\n */\n appendMapping(mapping) {\n for (let i = 0, startSize = this.maps.length; i < mapping.maps.length; i++) {\n let mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i], mirr != null && mirr < i ? startSize + mirr : undefined);\n }\n }\n /**\n Finds the offset of the step map that mirrors the map at the\n given offset, in this mapping (as per the second argument to\n `appendMap`).\n */\n getMirror(n) {\n if (this.mirror)\n for (let i = 0; i < this.mirror.length; i++)\n if (this.mirror[i] == n)\n return this.mirror[i + (i % 2 ? -1 : 1)];\n }\n /**\n @internal\n */\n setMirror(n, m) {\n if (!this.mirror)\n this.mirror = [];\n this.mirror.push(n, m);\n }\n /**\n Append the inverse of the given mapping to this one.\n */\n appendMappingInverted(mapping) {\n for (let i = mapping.maps.length - 1, totalSize = this.maps.length + mapping.maps.length; i >= 0; i--) {\n let mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i].invert(), mirr != null && mirr > i ? totalSize - mirr - 1 : undefined);\n }\n }\n /**\n Create an inverted version of this mapping.\n */\n invert() {\n let inverse = new Mapping;\n inverse.appendMappingInverted(this);\n return inverse;\n }\n /**\n Map a position through this mapping.\n */\n map(pos, assoc = 1) {\n if (this.mirror)\n return this._map(pos, assoc, true);\n for (let i = this.from; i < this.to; i++)\n pos = this.maps[i].map(pos, assoc);\n return pos;\n }\n /**\n Map a position through this mapping, returning a mapping\n result.\n */\n mapResult(pos, assoc = 1) { return this._map(pos, assoc, false); }\n /**\n @internal\n */\n _map(pos, assoc, simple) {\n let delInfo = 0;\n for (let i = this.from; i < this.to; i++) {\n let map = this.maps[i], result = map.mapResult(pos, assoc);\n if (result.recover != null) {\n let corr = this.getMirror(i);\n if (corr != null && corr > i && corr < this.to) {\n i = corr;\n pos = this.maps[corr].recover(result.recover);\n continue;\n }\n }\n delInfo |= result.delInfo;\n pos = result.pos;\n }\n return simple ? pos : new MapResult(pos, delInfo, null);\n }\n}\n\nconst stepsByID = Object.create(null);\n/**\nA step object represents an atomic change. It generally applies\nonly to the document it was created for, since the positions\nstored in it will only make sense for that document.\n\nNew steps are defined by creating classes that extend `Step`,\noverriding the `apply`, `invert`, `map`, `getMap` and `fromJSON`\nmethods, and registering your class with a unique\nJSON-serialization identifier using\n[`Step.jsonID`](https://prosemirror.net/docs/ref/#transform.Step^jsonID).\n*/\nclass Step {\n /**\n Get the step map that represents the changes made by this step,\n and which can be used to transform between positions in the old\n and the new document.\n */\n getMap() { return StepMap.empty; }\n /**\n Try to merge this step with another one, to be applied directly\n after it. Returns the merged step when possible, null if the\n steps can't be merged.\n */\n merge(other) { return null; }\n /**\n Deserialize a step from its JSON representation. Will call\n through to the step class' own implementation of this method.\n */\n static fromJSON(schema, json) {\n if (!json || !json.stepType)\n throw new RangeError(\"Invalid input for Step.fromJSON\");\n let type = stepsByID[json.stepType];\n if (!type)\n throw new RangeError(`No step type ${json.stepType} defined`);\n return type.fromJSON(schema, json);\n }\n /**\n To be able to serialize steps to JSON, each step needs a string\n ID to attach to its JSON representation. Use this method to\n register an ID for your step classes. Try to pick something\n that's unlikely to clash with steps from other modules.\n */\n static jsonID(id, stepClass) {\n if (id in stepsByID)\n throw new RangeError(\"Duplicate use of step JSON ID \" + id);\n stepsByID[id] = stepClass;\n stepClass.prototype.jsonID = id;\n return stepClass;\n }\n}\n/**\nThe result of [applying](https://prosemirror.net/docs/ref/#transform.Step.apply) a step. Contains either a\nnew document or a failure value.\n*/\nclass StepResult {\n /**\n @internal\n */\n constructor(\n /**\n The transformed document, if successful.\n */\n doc, \n /**\n The failure message, if unsuccessful.\n */\n failed) {\n this.doc = doc;\n this.failed = failed;\n }\n /**\n Create a successful step result.\n */\n static ok(doc) { return new StepResult(doc, null); }\n /**\n Create a failed step result.\n */\n static fail(message) { return new StepResult(null, message); }\n /**\n Call [`Node.replace`](https://prosemirror.net/docs/ref/#model.Node.replace) with the given\n arguments. Create a successful result if it succeeds, and a\n failed one if it throws a `ReplaceError`.\n */\n static fromReplace(doc, from, to, slice) {\n try {\n return StepResult.ok(doc.replace(from, to, slice));\n }\n catch (e) {\n if (e instanceof prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"ReplaceError\"])\n return StepResult.fail(e.message);\n throw e;\n }\n }\n}\n\nfunction mapFragment(fragment, f, parent) {\n let mapped = [];\n for (let i = 0; i < fragment.childCount; i++) {\n let child = fragment.child(i);\n if (child.content.size)\n child = child.copy(mapFragment(child.content, f, child));\n if (child.isInline)\n child = f(child, parent, i);\n mapped.push(child);\n }\n return prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].fromArray(mapped);\n}\n/**\nAdd a mark to all inline content between two positions.\n*/\nclass AddMarkStep extends Step {\n /**\n Create a mark step.\n */\n constructor(\n /**\n The start of the marked range.\n */\n from, \n /**\n The end of the marked range.\n */\n to, \n /**\n The mark to add.\n */\n mark) {\n super();\n this.from = from;\n this.to = to;\n this.mark = mark;\n }\n apply(doc) {\n let oldSlice = doc.slice(this.from, this.to), $from = doc.resolve(this.from);\n let parent = $from.node($from.sharedDepth(this.to));\n let slice = new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](mapFragment(oldSlice.content, (node, parent) => {\n if (!node.isAtom || !parent.type.allowsMarkType(this.mark.type))\n return node;\n return node.mark(this.mark.addToSet(node.marks));\n }, parent), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice);\n }\n invert() {\n return new RemoveMarkStep(this.from, this.to, this.mark);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos)\n return null;\n return new AddMarkStep(from.pos, to.pos, this.mark);\n }\n merge(other) {\n if (other instanceof AddMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n return new AddMarkStep(Math.min(this.from, other.from), Math.max(this.to, other.to), this.mark);\n return null;\n }\n toJSON() {\n return { stepType: \"addMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for AddMarkStep.fromJSON\");\n return new AddMarkStep(json.from, json.to, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"addMark\", AddMarkStep);\n/**\nRemove a mark from all inline content between two positions.\n*/\nclass RemoveMarkStep extends Step {\n /**\n Create a mark-removing step.\n */\n constructor(\n /**\n The start of the unmarked range.\n */\n from, \n /**\n The end of the unmarked range.\n */\n to, \n /**\n The mark to remove.\n */\n mark) {\n super();\n this.from = from;\n this.to = to;\n this.mark = mark;\n }\n apply(doc) {\n let oldSlice = doc.slice(this.from, this.to);\n let slice = new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](mapFragment(oldSlice.content, node => {\n return node.mark(this.mark.removeFromSet(node.marks));\n }, doc), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice);\n }\n invert() {\n return new AddMarkStep(this.from, this.to, this.mark);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos)\n return null;\n return new RemoveMarkStep(from.pos, to.pos, this.mark);\n }\n merge(other) {\n if (other instanceof RemoveMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n return new RemoveMarkStep(Math.min(this.from, other.from), Math.max(this.to, other.to), this.mark);\n return null;\n }\n toJSON() {\n return { stepType: \"removeMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for RemoveMarkStep.fromJSON\");\n return new RemoveMarkStep(json.from, json.to, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"removeMark\", RemoveMarkStep);\n/**\nAdd a mark to a specific node.\n*/\nclass AddNodeMarkStep extends Step {\n /**\n Create a node mark step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The mark to add.\n */\n mark) {\n super();\n this.pos = pos;\n this.mark = mark;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at mark step's position\");\n let updated = node.type.create(node.attrs, null, this.mark.addToSet(node.marks));\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(updated), 0, node.isLeaf ? 0 : 1));\n }\n invert(doc) {\n let node = doc.nodeAt(this.pos);\n if (node) {\n let newSet = this.mark.addToSet(node.marks);\n if (newSet.length == node.marks.length) {\n for (let i = 0; i < node.marks.length; i++)\n if (!node.marks[i].isInSet(newSet))\n return new AddNodeMarkStep(this.pos, node.marks[i]);\n return new AddNodeMarkStep(this.pos, this.mark);\n }\n }\n return new RemoveNodeMarkStep(this.pos, this.mark);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new AddNodeMarkStep(pos.pos, this.mark);\n }\n toJSON() {\n return { stepType: \"addNodeMark\", pos: this.pos, mark: this.mark.toJSON() };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\")\n throw new RangeError(\"Invalid input for AddNodeMarkStep.fromJSON\");\n return new AddNodeMarkStep(json.pos, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"addNodeMark\", AddNodeMarkStep);\n/**\nRemove a mark from a specific node.\n*/\nclass RemoveNodeMarkStep extends Step {\n /**\n Create a mark-removing step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The mark to remove.\n */\n mark) {\n super();\n this.pos = pos;\n this.mark = mark;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at mark step's position\");\n let updated = node.type.create(node.attrs, null, this.mark.removeFromSet(node.marks));\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(updated), 0, node.isLeaf ? 0 : 1));\n }\n invert(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node || !this.mark.isInSet(node.marks))\n return this;\n return new AddNodeMarkStep(this.pos, this.mark);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new RemoveNodeMarkStep(pos.pos, this.mark);\n }\n toJSON() {\n return { stepType: \"removeNodeMark\", pos: this.pos, mark: this.mark.toJSON() };\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\")\n throw new RangeError(\"Invalid input for RemoveNodeMarkStep.fromJSON\");\n return new RemoveNodeMarkStep(json.pos, schema.markFromJSON(json.mark));\n }\n}\nStep.jsonID(\"removeNodeMark\", RemoveNodeMarkStep);\n\n/**\nReplace a part of the document with a slice of new content.\n*/\nclass ReplaceStep extends Step {\n /**\n The given `slice` should fit the 'gap' between `from` and\n `to`—the depths must line up, and the surrounding nodes must be\n able to be joined with the open sides of the slice. When\n `structure` is true, the step will fail if the content between\n from and to is not just a sequence of closing and then opening\n tokens (this is to guard against rebased replace steps\n overwriting something they weren't supposed to).\n */\n constructor(\n /**\n The start position of the replaced range.\n */\n from, \n /**\n The end position of the replaced range.\n */\n to, \n /**\n The slice to insert.\n */\n slice, \n /**\n @internal\n */\n structure = false) {\n super();\n this.from = from;\n this.to = to;\n this.slice = slice;\n this.structure = structure;\n }\n apply(doc) {\n if (this.structure && contentBetween(doc, this.from, this.to))\n return StepResult.fail(\"Structure replace would overwrite content\");\n return StepResult.fromReplace(doc, this.from, this.to, this.slice);\n }\n getMap() {\n return new StepMap([this.from, this.to - this.from, this.slice.size]);\n }\n invert(doc) {\n return new ReplaceStep(this.from, this.from + this.slice.size, doc.slice(this.from, this.to));\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deletedAcross && to.deletedAcross)\n return null;\n return new ReplaceStep(from.pos, Math.max(from.pos, to.pos), this.slice);\n }\n merge(other) {\n if (!(other instanceof ReplaceStep) || other.structure || this.structure)\n return null;\n if (this.from + this.slice.size == other.from && !this.slice.openEnd && !other.slice.openStart) {\n let slice = this.slice.size + other.slice.size == 0 ? prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"].empty\n : new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](this.slice.content.append(other.slice.content), this.slice.openStart, other.slice.openEnd);\n return new ReplaceStep(this.from, this.to + (other.to - other.from), slice, this.structure);\n }\n else if (other.to == this.from && !this.slice.openStart && !other.slice.openEnd) {\n let slice = this.slice.size + other.slice.size == 0 ? prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"].empty\n : new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](other.slice.content.append(this.slice.content), other.slice.openStart, this.slice.openEnd);\n return new ReplaceStep(other.from, this.to, slice, this.structure);\n }\n else {\n return null;\n }\n }\n toJSON() {\n let json = { stepType: \"replace\", from: this.from, to: this.to };\n if (this.slice.size)\n json.slice = this.slice.toJSON();\n if (this.structure)\n json.structure = true;\n return json;\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n throw new RangeError(\"Invalid input for ReplaceStep.fromJSON\");\n return new ReplaceStep(json.from, json.to, prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"].fromJSON(schema, json.slice), !!json.structure);\n }\n}\nStep.jsonID(\"replace\", ReplaceStep);\n/**\nReplace a part of the document with a slice of content, but\npreserve a range of the replaced content by moving it into the\nslice.\n*/\nclass ReplaceAroundStep extends Step {\n /**\n Create a replace-around step with the given range and gap.\n `insert` should be the point in the slice into which the content\n of the gap should be moved. `structure` has the same meaning as\n it has in the [`ReplaceStep`](https://prosemirror.net/docs/ref/#transform.ReplaceStep) class.\n */\n constructor(\n /**\n The start position of the replaced range.\n */\n from, \n /**\n The end position of the replaced range.\n */\n to, \n /**\n The start of preserved range.\n */\n gapFrom, \n /**\n The end of preserved range.\n */\n gapTo, \n /**\n The slice to insert.\n */\n slice, \n /**\n The position in the slice where the preserved range should be\n inserted.\n */\n insert, \n /**\n @internal\n */\n structure = false) {\n super();\n this.from = from;\n this.to = to;\n this.gapFrom = gapFrom;\n this.gapTo = gapTo;\n this.slice = slice;\n this.insert = insert;\n this.structure = structure;\n }\n apply(doc) {\n if (this.structure && (contentBetween(doc, this.from, this.gapFrom) ||\n contentBetween(doc, this.gapTo, this.to)))\n return StepResult.fail(\"Structure gap-replace would overwrite content\");\n let gap = doc.slice(this.gapFrom, this.gapTo);\n if (gap.openStart || gap.openEnd)\n return StepResult.fail(\"Gap is not a flat range\");\n let inserted = this.slice.insertAt(this.insert, gap.content);\n if (!inserted)\n return StepResult.fail(\"Content does not fit in gap\");\n return StepResult.fromReplace(doc, this.from, this.to, inserted);\n }\n getMap() {\n return new StepMap([this.from, this.gapFrom - this.from, this.insert,\n this.gapTo, this.to - this.gapTo, this.slice.size - this.insert]);\n }\n invert(doc) {\n let gap = this.gapTo - this.gapFrom;\n return new ReplaceAroundStep(this.from, this.from + this.slice.size + gap, this.from + this.insert, this.from + this.insert + gap, doc.slice(this.from, this.to).removeBetween(this.gapFrom - this.from, this.gapTo - this.from), this.gapFrom - this.from, this.structure);\n }\n map(mapping) {\n let from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n let gapFrom = this.from == this.gapFrom ? from.pos : mapping.map(this.gapFrom, -1);\n let gapTo = this.to == this.gapTo ? to.pos : mapping.map(this.gapTo, 1);\n if ((from.deletedAcross && to.deletedAcross) || gapFrom < from.pos || gapTo > to.pos)\n return null;\n return new ReplaceAroundStep(from.pos, to.pos, gapFrom, gapTo, this.slice, this.insert, this.structure);\n }\n toJSON() {\n let json = { stepType: \"replaceAround\", from: this.from, to: this.to,\n gapFrom: this.gapFrom, gapTo: this.gapTo, insert: this.insert };\n if (this.slice.size)\n json.slice = this.slice.toJSON();\n if (this.structure)\n json.structure = true;\n return json;\n }\n /**\n @internal\n */\n static fromJSON(schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\" ||\n typeof json.gapFrom != \"number\" || typeof json.gapTo != \"number\" || typeof json.insert != \"number\")\n throw new RangeError(\"Invalid input for ReplaceAroundStep.fromJSON\");\n return new ReplaceAroundStep(json.from, json.to, json.gapFrom, json.gapTo, prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"].fromJSON(schema, json.slice), json.insert, !!json.structure);\n }\n}\nStep.jsonID(\"replaceAround\", ReplaceAroundStep);\nfunction contentBetween(doc, from, to) {\n let $from = doc.resolve(from), dist = to - from, depth = $from.depth;\n while (dist > 0 && depth > 0 && $from.indexAfter(depth) == $from.node(depth).childCount) {\n depth--;\n dist--;\n }\n if (dist > 0) {\n let next = $from.node(depth).maybeChild($from.indexAfter(depth));\n while (dist > 0) {\n if (!next || next.isLeaf)\n return true;\n next = next.firstChild;\n dist--;\n }\n }\n return false;\n}\n\nfunction addMark(tr, from, to, mark) {\n let removed = [], added = [];\n let removing, adding;\n tr.doc.nodesBetween(from, to, (node, pos, parent) => {\n if (!node.isInline)\n return;\n let marks = node.marks;\n if (!mark.isInSet(marks) && parent.type.allowsMarkType(mark.type)) {\n let start = Math.max(pos, from), end = Math.min(pos + node.nodeSize, to);\n let newSet = mark.addToSet(marks);\n for (let i = 0; i < marks.length; i++) {\n if (!marks[i].isInSet(newSet)) {\n if (removing && removing.to == start && removing.mark.eq(marks[i]))\n removing.to = end;\n else\n removed.push(removing = new RemoveMarkStep(start, end, marks[i]));\n }\n }\n if (adding && adding.to == start)\n adding.to = end;\n else\n added.push(adding = new AddMarkStep(start, end, mark));\n }\n });\n removed.forEach(s => tr.step(s));\n added.forEach(s => tr.step(s));\n}\nfunction removeMark(tr, from, to, mark) {\n let matched = [], step = 0;\n tr.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isInline)\n return;\n step++;\n let toRemove = null;\n if (mark instanceof prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"MarkType\"]) {\n let set = node.marks, found;\n while (found = mark.isInSet(set)) {\n (toRemove || (toRemove = [])).push(found);\n set = found.removeFromSet(set);\n }\n }\n else if (mark) {\n if (mark.isInSet(node.marks))\n toRemove = [mark];\n }\n else {\n toRemove = node.marks;\n }\n if (toRemove && toRemove.length) {\n let end = Math.min(pos + node.nodeSize, to);\n for (let i = 0; i < toRemove.length; i++) {\n let style = toRemove[i], found;\n for (let j = 0; j < matched.length; j++) {\n let m = matched[j];\n if (m.step == step - 1 && style.eq(matched[j].style))\n found = m;\n }\n if (found) {\n found.to = end;\n found.step = step;\n }\n else {\n matched.push({ style, from: Math.max(pos, from), to: end, step });\n }\n }\n }\n });\n matched.forEach(m => tr.step(new RemoveMarkStep(m.from, m.to, m.style)));\n}\nfunction clearIncompatible(tr, pos, parentType, match = parentType.contentMatch, clearNewlines = true) {\n let node = tr.doc.nodeAt(pos);\n let replSteps = [], cur = pos + 1;\n for (let i = 0; i < node.childCount; i++) {\n let child = node.child(i), end = cur + child.nodeSize;\n let allowed = match.matchType(child.type);\n if (!allowed) {\n replSteps.push(new ReplaceStep(cur, end, prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"].empty));\n }\n else {\n match = allowed;\n for (let j = 0; j < child.marks.length; j++)\n if (!parentType.allowsMarkType(child.marks[j].type))\n tr.step(new RemoveMarkStep(cur, end, child.marks[j]));\n if (clearNewlines && child.isText && parentType.whitespace != \"pre\") {\n let m, newline = /\\r?\\n|\\r/g, slice;\n while (m = newline.exec(child.text)) {\n if (!slice)\n slice = new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(parentType.schema.text(\" \", parentType.allowedMarks(child.marks))), 0, 0);\n replSteps.push(new ReplaceStep(cur + m.index, cur + m.index + m[0].length, slice));\n }\n }\n }\n cur = end;\n }\n if (!match.validEnd) {\n let fill = match.fillBefore(prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty, true);\n tr.replace(cur, cur, new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](fill, 0, 0));\n }\n for (let i = replSteps.length - 1; i >= 0; i--)\n tr.step(replSteps[i]);\n}\n\nfunction canCut(node, start, end) {\n return (start == 0 || node.canReplace(start, node.childCount)) &&\n (end == node.childCount || node.canReplace(0, end));\n}\n/**\nTry to find a target depth to which the content in the given range\ncan be lifted. Will not go across\n[isolating](https://prosemirror.net/docs/ref/#model.NodeSpec.isolating) parent nodes.\n*/\nfunction liftTarget(range) {\n let parent = range.parent;\n let content = parent.content.cutByIndex(range.startIndex, range.endIndex);\n for (let depth = range.depth;; --depth) {\n let node = range.$from.node(depth);\n let index = range.$from.index(depth), endIndex = range.$to.indexAfter(depth);\n if (depth < range.depth && node.canReplace(index, endIndex, content))\n return depth;\n if (depth == 0 || node.type.spec.isolating || !canCut(node, index, endIndex))\n break;\n }\n return null;\n}\nfunction lift(tr, range, target) {\n let { $from, $to, depth } = range;\n let gapStart = $from.before(depth + 1), gapEnd = $to.after(depth + 1);\n let start = gapStart, end = gapEnd;\n let before = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty, openStart = 0;\n for (let d = depth, splitting = false; d > target; d--)\n if (splitting || $from.index(d) > 0) {\n splitting = true;\n before = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from($from.node(d).copy(before));\n openStart++;\n }\n else {\n start--;\n }\n let after = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty, openEnd = 0;\n for (let d = depth, splitting = false; d > target; d--)\n if (splitting || $to.after(d + 1) < $to.end(d)) {\n splitting = true;\n after = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from($to.node(d).copy(after));\n openEnd++;\n }\n else {\n end++;\n }\n tr.step(new ReplaceAroundStep(start, end, gapStart, gapEnd, new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](before.append(after), openStart, openEnd), before.size - openStart, true));\n}\n/**\nTry to find a valid way to wrap the content in the given range in a\nnode of the given type. May introduce extra nodes around and inside\nthe wrapper node, if necessary. Returns null if no valid wrapping\ncould be found. When `innerRange` is given, that range's content is\nused as the content to fit into the wrapping, instead of the\ncontent of `range`.\n*/\nfunction findWrapping(range, nodeType, attrs = null, innerRange = range) {\n let around = findWrappingOutside(range, nodeType);\n let inner = around && findWrappingInside(innerRange, nodeType);\n if (!inner)\n return null;\n return around.map(withAttrs)\n .concat({ type: nodeType, attrs }).concat(inner.map(withAttrs));\n}\nfunction withAttrs(type) { return { type, attrs: null }; }\nfunction findWrappingOutside(range, type) {\n let { parent, startIndex, endIndex } = range;\n let around = parent.contentMatchAt(startIndex).findWrapping(type);\n if (!around)\n return null;\n let outer = around.length ? around[0] : type;\n return parent.canReplaceWith(startIndex, endIndex, outer) ? around : null;\n}\nfunction findWrappingInside(range, type) {\n let { parent, startIndex, endIndex } = range;\n let inner = parent.child(startIndex);\n let inside = type.contentMatch.findWrapping(inner.type);\n if (!inside)\n return null;\n let lastType = inside.length ? inside[inside.length - 1] : type;\n let innerMatch = lastType.contentMatch;\n for (let i = startIndex; innerMatch && i < endIndex; i++)\n innerMatch = innerMatch.matchType(parent.child(i).type);\n if (!innerMatch || !innerMatch.validEnd)\n return null;\n return inside;\n}\nfunction wrap(tr, range, wrappers) {\n let content = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty;\n for (let i = wrappers.length - 1; i >= 0; i--) {\n if (content.size) {\n let match = wrappers[i].type.contentMatch.matchFragment(content);\n if (!match || !match.validEnd)\n throw new RangeError(\"Wrapper type given to Transform.wrap does not form valid content of its parent wrapper\");\n }\n content = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(wrappers[i].type.create(wrappers[i].attrs, content));\n }\n let start = range.start, end = range.end;\n tr.step(new ReplaceAroundStep(start, end, start, end, new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](content, 0, 0), wrappers.length, true));\n}\nfunction setBlockType(tr, from, to, type, attrs) {\n if (!type.isTextblock)\n throw new RangeError(\"Type given to setBlockType should be a textblock\");\n let mapFrom = tr.steps.length;\n tr.doc.nodesBetween(from, to, (node, pos) => {\n if (node.isTextblock && !node.hasMarkup(type, attrs) && canChangeType(tr.doc, tr.mapping.slice(mapFrom).map(pos), type)) {\n let convertNewlines = null;\n if (type.schema.linebreakReplacement) {\n let pre = type.whitespace == \"pre\", supportLinebreak = !!type.contentMatch.matchType(type.schema.linebreakReplacement);\n if (pre && !supportLinebreak)\n convertNewlines = false;\n else if (!pre && supportLinebreak)\n convertNewlines = true;\n }\n // Ensure all markup that isn't allowed in the new node type is cleared\n if (convertNewlines === false)\n replaceLinebreaks(tr, node, pos, mapFrom);\n clearIncompatible(tr, tr.mapping.slice(mapFrom).map(pos, 1), type, undefined, convertNewlines === null);\n let mapping = tr.mapping.slice(mapFrom);\n let startM = mapping.map(pos, 1), endM = mapping.map(pos + node.nodeSize, 1);\n tr.step(new ReplaceAroundStep(startM, endM, startM + 1, endM - 1, new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(type.create(attrs, null, node.marks)), 0, 0), 1, true));\n if (convertNewlines === true)\n replaceNewlines(tr, node, pos, mapFrom);\n return false;\n }\n });\n}\nfunction replaceNewlines(tr, node, pos, mapFrom) {\n node.forEach((child, offset) => {\n if (child.isText) {\n let m, newline = /\\r?\\n|\\r/g;\n while (m = newline.exec(child.text)) {\n let start = tr.mapping.slice(mapFrom).map(pos + 1 + offset + m.index);\n tr.replaceWith(start, start + 1, node.type.schema.linebreakReplacement.create());\n }\n }\n });\n}\nfunction replaceLinebreaks(tr, node, pos, mapFrom) {\n node.forEach((child, offset) => {\n if (child.type == child.type.schema.linebreakReplacement) {\n let start = tr.mapping.slice(mapFrom).map(pos + 1 + offset);\n tr.replaceWith(start, start + 1, node.type.schema.text(\"\\n\"));\n }\n });\n}\nfunction canChangeType(doc, pos, type) {\n let $pos = doc.resolve(pos), index = $pos.index();\n return $pos.parent.canReplaceWith(index, index + 1, type);\n}\n/**\nChange the type, attributes, and/or marks of the node at `pos`.\nWhen `type` isn't given, the existing node type is preserved,\n*/\nfunction setNodeMarkup(tr, pos, type, attrs, marks) {\n let node = tr.doc.nodeAt(pos);\n if (!node)\n throw new RangeError(\"No node at given position\");\n if (!type)\n type = node.type;\n let newNode = type.create(attrs, null, marks || node.marks);\n if (node.isLeaf)\n return tr.replaceWith(pos, pos + node.nodeSize, newNode);\n if (!type.validContent(node.content))\n throw new RangeError(\"Invalid content for node type \" + type.name);\n tr.step(new ReplaceAroundStep(pos, pos + node.nodeSize, pos + 1, pos + node.nodeSize - 1, new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(newNode), 0, 0), 1, true));\n}\n/**\nCheck whether splitting at the given position is allowed.\n*/\nfunction canSplit(doc, pos, depth = 1, typesAfter) {\n let $pos = doc.resolve(pos), base = $pos.depth - depth;\n let innerType = (typesAfter && typesAfter[typesAfter.length - 1]) || $pos.parent;\n if (base < 0 || $pos.parent.type.spec.isolating ||\n !$pos.parent.canReplace($pos.index(), $pos.parent.childCount) ||\n !innerType.type.validContent($pos.parent.content.cutByIndex($pos.index(), $pos.parent.childCount)))\n return false;\n for (let d = $pos.depth - 1, i = depth - 2; d > base; d--, i--) {\n let node = $pos.node(d), index = $pos.index(d);\n if (node.type.spec.isolating)\n return false;\n let rest = node.content.cutByIndex(index, node.childCount);\n let overrideChild = typesAfter && typesAfter[i + 1];\n if (overrideChild)\n rest = rest.replaceChild(0, overrideChild.type.create(overrideChild.attrs));\n let after = (typesAfter && typesAfter[i]) || node;\n if (!node.canReplace(index + 1, node.childCount) || !after.type.validContent(rest))\n return false;\n }\n let index = $pos.indexAfter(base);\n let baseType = typesAfter && typesAfter[0];\n return $pos.node(base).canReplaceWith(index, index, baseType ? baseType.type : $pos.node(base + 1).type);\n}\nfunction split(tr, pos, depth = 1, typesAfter) {\n let $pos = tr.doc.resolve(pos), before = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty, after = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty;\n for (let d = $pos.depth, e = $pos.depth - depth, i = depth - 1; d > e; d--, i--) {\n before = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from($pos.node(d).copy(before));\n let typeAfter = typesAfter && typesAfter[i];\n after = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(typeAfter ? typeAfter.type.create(typeAfter.attrs, after) : $pos.node(d).copy(after));\n }\n tr.step(new ReplaceStep(pos, pos, new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](before.append(after), depth, depth), true));\n}\n/**\nTest whether the blocks before and after a given position can be\njoined.\n*/\nfunction canJoin(doc, pos) {\n let $pos = doc.resolve(pos), index = $pos.index();\n return joinable($pos.nodeBefore, $pos.nodeAfter) &&\n $pos.parent.canReplace(index, index + 1);\n}\nfunction joinable(a, b) {\n return !!(a && b && !a.isLeaf && a.canAppend(b));\n}\n/**\nFind an ancestor of the given position that can be joined to the\nblock before (or after if `dir` is positive). Returns the joinable\npoint, if any.\n*/\nfunction joinPoint(doc, pos, dir = -1) {\n let $pos = doc.resolve(pos);\n for (let d = $pos.depth;; d--) {\n let before, after, index = $pos.index(d);\n if (d == $pos.depth) {\n before = $pos.nodeBefore;\n after = $pos.nodeAfter;\n }\n else if (dir > 0) {\n before = $pos.node(d + 1);\n index++;\n after = $pos.node(d).maybeChild(index);\n }\n else {\n before = $pos.node(d).maybeChild(index - 1);\n after = $pos.node(d + 1);\n }\n if (before && !before.isTextblock && joinable(before, after) &&\n $pos.node(d).canReplace(index, index + 1))\n return pos;\n if (d == 0)\n break;\n pos = dir < 0 ? $pos.before(d) : $pos.after(d);\n }\n}\nfunction join(tr, pos, depth) {\n let step = new ReplaceStep(pos - depth, pos + depth, prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"].empty, true);\n tr.step(step);\n}\n/**\nTry to find a point where a node of the given type can be inserted\nnear `pos`, by searching up the node hierarchy when `pos` itself\nisn't a valid place but is at the start or end of a node. Return\nnull if no position was found.\n*/\nfunction insertPoint(doc, pos, nodeType) {\n let $pos = doc.resolve(pos);\n if ($pos.parent.canReplaceWith($pos.index(), $pos.index(), nodeType))\n return pos;\n if ($pos.parentOffset == 0)\n for (let d = $pos.depth - 1; d >= 0; d--) {\n let index = $pos.index(d);\n if ($pos.node(d).canReplaceWith(index, index, nodeType))\n return $pos.before(d + 1);\n if (index > 0)\n return null;\n }\n if ($pos.parentOffset == $pos.parent.content.size)\n for (let d = $pos.depth - 1; d >= 0; d--) {\n let index = $pos.indexAfter(d);\n if ($pos.node(d).canReplaceWith(index, index, nodeType))\n return $pos.after(d + 1);\n if (index < $pos.node(d).childCount)\n return null;\n }\n return null;\n}\n/**\nFinds a position at or around the given position where the given\nslice can be inserted. Will look at parent nodes' nearest boundary\nand try there, even if the original position wasn't directly at the\nstart or end of that node. Returns null when no position was found.\n*/\nfunction dropPoint(doc, pos, slice) {\n let $pos = doc.resolve(pos);\n if (!slice.content.size)\n return pos;\n let content = slice.content;\n for (let i = 0; i < slice.openStart; i++)\n content = content.firstChild.content;\n for (let pass = 1; pass <= (slice.openStart == 0 && slice.size ? 2 : 1); pass++) {\n for (let d = $pos.depth; d >= 0; d--) {\n let bias = d == $pos.depth ? 0 : $pos.pos <= ($pos.start(d + 1) + $pos.end(d + 1)) / 2 ? -1 : 1;\n let insertPos = $pos.index(d) + (bias > 0 ? 1 : 0);\n let parent = $pos.node(d), fits = false;\n if (pass == 1) {\n fits = parent.canReplace(insertPos, insertPos, content);\n }\n else {\n let wrapping = parent.contentMatchAt(insertPos).findWrapping(content.firstChild.type);\n fits = wrapping && parent.canReplaceWith(insertPos, insertPos, wrapping[0]);\n }\n if (fits)\n return bias == 0 ? $pos.pos : bias < 0 ? $pos.before(d + 1) : $pos.after(d + 1);\n }\n }\n return null;\n}\n\n/**\nFit a slice into a given position in the document, producing a\n[step](https://prosemirror.net/docs/ref/#transform.Step) that inserts it. Will return null if\nthere's no meaningful way to insert the slice here, or inserting it\nwould be a no-op (an empty slice over an empty range).\n*/\nfunction replaceStep(doc, from, to = from, slice = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"].empty) {\n if (from == to && !slice.size)\n return null;\n let $from = doc.resolve(from), $to = doc.resolve(to);\n // Optimization -- avoid work if it's obvious that it's not needed.\n if (fitsTrivially($from, $to, slice))\n return new ReplaceStep(from, to, slice);\n return new Fitter($from, $to, slice).fit();\n}\nfunction fitsTrivially($from, $to, slice) {\n return !slice.openStart && !slice.openEnd && $from.start() == $to.start() &&\n $from.parent.canReplace($from.index(), $to.index(), slice.content);\n}\n// Algorithm for 'placing' the elements of a slice into a gap:\n//\n// We consider the content of each node that is open to the left to be\n// independently placeable. I.e. in <p(\"foo\"), p(\"bar\")>, when the\n// paragraph on the left is open, \"foo\" can be placed (somewhere on\n// the left side of the replacement gap) independently from p(\"bar\").\n//\n// This class tracks the state of the placement progress in the\n// following properties:\n//\n// - `frontier` holds a stack of `{type, match}` objects that\n// represent the open side of the replacement. It starts at\n// `$from`, then moves forward as content is placed, and is finally\n// reconciled with `$to`.\n//\n// - `unplaced` is a slice that represents the content that hasn't\n// been placed yet.\n//\n// - `placed` is a fragment of placed content. Its open-start value\n// is implicit in `$from`, and its open-end value in `frontier`.\nclass Fitter {\n constructor($from, $to, unplaced) {\n this.$from = $from;\n this.$to = $to;\n this.unplaced = unplaced;\n this.frontier = [];\n this.placed = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty;\n for (let i = 0; i <= $from.depth; i++) {\n let node = $from.node(i);\n this.frontier.push({\n type: node.type,\n match: node.contentMatchAt($from.indexAfter(i))\n });\n }\n for (let i = $from.depth; i > 0; i--)\n this.placed = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from($from.node(i).copy(this.placed));\n }\n get depth() { return this.frontier.length - 1; }\n fit() {\n // As long as there's unplaced content, try to place some of it.\n // If that fails, either increase the open score of the unplaced\n // slice, or drop nodes from it, and then try again.\n while (this.unplaced.size) {\n let fit = this.findFittable();\n if (fit)\n this.placeNodes(fit);\n else\n this.openMore() || this.dropNode();\n }\n // When there's inline content directly after the frontier _and_\n // directly after `this.$to`, we must generate a `ReplaceAround`\n // step that pulls that content into the node after the frontier.\n // That means the fitting must be done to the end of the textblock\n // node after `this.$to`, not `this.$to` itself.\n let moveInline = this.mustMoveInline(), placedSize = this.placed.size - this.depth - this.$from.depth;\n let $from = this.$from, $to = this.close(moveInline < 0 ? this.$to : $from.doc.resolve(moveInline));\n if (!$to)\n return null;\n // If closing to `$to` succeeded, create a step\n let content = this.placed, openStart = $from.depth, openEnd = $to.depth;\n while (openStart && openEnd && content.childCount == 1) { // Normalize by dropping open parent nodes\n content = content.firstChild.content;\n openStart--;\n openEnd--;\n }\n let slice = new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](content, openStart, openEnd);\n if (moveInline > -1)\n return new ReplaceAroundStep($from.pos, moveInline, this.$to.pos, this.$to.end(), slice, placedSize);\n if (slice.size || $from.pos != this.$to.pos) // Don't generate no-op steps\n return new ReplaceStep($from.pos, $to.pos, slice);\n return null;\n }\n // Find a position on the start spine of `this.unplaced` that has\n // content that can be moved somewhere on the frontier. Returns two\n // depths, one for the slice and one for the frontier.\n findFittable() {\n let startDepth = this.unplaced.openStart;\n for (let cur = this.unplaced.content, d = 0, openEnd = this.unplaced.openEnd; d < startDepth; d++) {\n let node = cur.firstChild;\n if (cur.childCount > 1)\n openEnd = 0;\n if (node.type.spec.isolating && openEnd <= d) {\n startDepth = d;\n break;\n }\n cur = node.content;\n }\n // Only try wrapping nodes (pass 2) after finding a place without\n // wrapping failed.\n for (let pass = 1; pass <= 2; pass++) {\n for (let sliceDepth = pass == 1 ? startDepth : this.unplaced.openStart; sliceDepth >= 0; sliceDepth--) {\n let fragment, parent = null;\n if (sliceDepth) {\n parent = contentAt(this.unplaced.content, sliceDepth - 1).firstChild;\n fragment = parent.content;\n }\n else {\n fragment = this.unplaced.content;\n }\n let first = fragment.firstChild;\n for (let frontierDepth = this.depth; frontierDepth >= 0; frontierDepth--) {\n let { type, match } = this.frontier[frontierDepth], wrap, inject = null;\n // In pass 1, if the next node matches, or there is no next\n // node but the parents look compatible, we've found a\n // place.\n if (pass == 1 && (first ? match.matchType(first.type) || (inject = match.fillBefore(prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(first), false))\n : parent && type.compatibleContent(parent.type)))\n return { sliceDepth, frontierDepth, parent, inject };\n // In pass 2, look for a set of wrapping nodes that make\n // `first` fit here.\n else if (pass == 2 && first && (wrap = match.findWrapping(first.type)))\n return { sliceDepth, frontierDepth, parent, wrap };\n // Don't continue looking further up if the parent node\n // would fit here.\n if (parent && match.matchType(parent.type))\n break;\n }\n }\n }\n }\n openMore() {\n let { content, openStart, openEnd } = this.unplaced;\n let inner = contentAt(content, openStart);\n if (!inner.childCount || inner.firstChild.isLeaf)\n return false;\n this.unplaced = new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](content, openStart + 1, Math.max(openEnd, inner.size + openStart >= content.size - openEnd ? openStart + 1 : 0));\n return true;\n }\n dropNode() {\n let { content, openStart, openEnd } = this.unplaced;\n let inner = contentAt(content, openStart);\n if (inner.childCount <= 1 && openStart > 0) {\n let openAtEnd = content.size - openStart <= openStart + inner.size;\n this.unplaced = new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](dropFromFragment(content, openStart - 1, 1), openStart - 1, openAtEnd ? openStart - 1 : openEnd);\n }\n else {\n this.unplaced = new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](dropFromFragment(content, openStart, 1), openStart, openEnd);\n }\n }\n // Move content from the unplaced slice at `sliceDepth` to the\n // frontier node at `frontierDepth`. Close that frontier node when\n // applicable.\n placeNodes({ sliceDepth, frontierDepth, parent, inject, wrap }) {\n while (this.depth > frontierDepth)\n this.closeFrontierNode();\n if (wrap)\n for (let i = 0; i < wrap.length; i++)\n this.openFrontierNode(wrap[i]);\n let slice = this.unplaced, fragment = parent ? parent.content : slice.content;\n let openStart = slice.openStart - sliceDepth;\n let taken = 0, add = [];\n let { match, type } = this.frontier[frontierDepth];\n if (inject) {\n for (let i = 0; i < inject.childCount; i++)\n add.push(inject.child(i));\n match = match.matchFragment(inject);\n }\n // Computes the amount of (end) open nodes at the end of the\n // fragment. When 0, the parent is open, but no more. When\n // negative, nothing is open.\n let openEndCount = (fragment.size + sliceDepth) - (slice.content.size - slice.openEnd);\n // Scan over the fragment, fitting as many child nodes as\n // possible.\n while (taken < fragment.childCount) {\n let next = fragment.child(taken), matches = match.matchType(next.type);\n if (!matches)\n break;\n taken++;\n if (taken > 1 || openStart == 0 || next.content.size) { // Drop empty open nodes\n match = matches;\n add.push(closeNodeStart(next.mark(type.allowedMarks(next.marks)), taken == 1 ? openStart : 0, taken == fragment.childCount ? openEndCount : -1));\n }\n }\n let toEnd = taken == fragment.childCount;\n if (!toEnd)\n openEndCount = -1;\n this.placed = addToFragment(this.placed, frontierDepth, prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(add));\n this.frontier[frontierDepth].match = match;\n // If the parent types match, and the entire node was moved, and\n // it's not open, close this frontier node right away.\n if (toEnd && openEndCount < 0 && parent && parent.type == this.frontier[this.depth].type && this.frontier.length > 1)\n this.closeFrontierNode();\n // Add new frontier nodes for any open nodes at the end.\n for (let i = 0, cur = fragment; i < openEndCount; i++) {\n let node = cur.lastChild;\n this.frontier.push({ type: node.type, match: node.contentMatchAt(node.childCount) });\n cur = node.content;\n }\n // Update `this.unplaced`. Drop the entire node from which we\n // placed it we got to its end, otherwise just drop the placed\n // nodes.\n this.unplaced = !toEnd ? new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](dropFromFragment(slice.content, sliceDepth, taken), slice.openStart, slice.openEnd)\n : sliceDepth == 0 ? prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"].empty\n : new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](dropFromFragment(slice.content, sliceDepth - 1, 1), sliceDepth - 1, openEndCount < 0 ? slice.openEnd : sliceDepth - 1);\n }\n mustMoveInline() {\n if (!this.$to.parent.isTextblock)\n return -1;\n let top = this.frontier[this.depth], level;\n if (!top.type.isTextblock || !contentAfterFits(this.$to, this.$to.depth, top.type, top.match, false) ||\n (this.$to.depth == this.depth && (level = this.findCloseLevel(this.$to)) && level.depth == this.depth))\n return -1;\n let { depth } = this.$to, after = this.$to.after(depth);\n while (depth > 1 && after == this.$to.end(--depth))\n ++after;\n return after;\n }\n findCloseLevel($to) {\n scan: for (let i = Math.min(this.depth, $to.depth); i >= 0; i--) {\n let { match, type } = this.frontier[i];\n let dropInner = i < $to.depth && $to.end(i + 1) == $to.pos + ($to.depth - (i + 1));\n let fit = contentAfterFits($to, i, type, match, dropInner);\n if (!fit)\n continue;\n for (let d = i - 1; d >= 0; d--) {\n let { match, type } = this.frontier[d];\n let matches = contentAfterFits($to, d, type, match, true);\n if (!matches || matches.childCount)\n continue scan;\n }\n return { depth: i, fit, move: dropInner ? $to.doc.resolve($to.after(i + 1)) : $to };\n }\n }\n close($to) {\n let close = this.findCloseLevel($to);\n if (!close)\n return null;\n while (this.depth > close.depth)\n this.closeFrontierNode();\n if (close.fit.childCount)\n this.placed = addToFragment(this.placed, close.depth, close.fit);\n $to = close.move;\n for (let d = close.depth + 1; d <= $to.depth; d++) {\n let node = $to.node(d), add = node.type.contentMatch.fillBefore(node.content, true, $to.index(d));\n this.openFrontierNode(node.type, node.attrs, add);\n }\n return $to;\n }\n openFrontierNode(type, attrs = null, content) {\n let top = this.frontier[this.depth];\n top.match = top.match.matchType(type);\n this.placed = addToFragment(this.placed, this.depth, prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(type.create(attrs, content)));\n this.frontier.push({ type, match: type.contentMatch });\n }\n closeFrontierNode() {\n let open = this.frontier.pop();\n let add = open.match.fillBefore(prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty, true);\n if (add.childCount)\n this.placed = addToFragment(this.placed, this.frontier.length, add);\n }\n}\nfunction dropFromFragment(fragment, depth, count) {\n if (depth == 0)\n return fragment.cutByIndex(count, fragment.childCount);\n return fragment.replaceChild(0, fragment.firstChild.copy(dropFromFragment(fragment.firstChild.content, depth - 1, count)));\n}\nfunction addToFragment(fragment, depth, content) {\n if (depth == 0)\n return fragment.append(content);\n return fragment.replaceChild(fragment.childCount - 1, fragment.lastChild.copy(addToFragment(fragment.lastChild.content, depth - 1, content)));\n}\nfunction contentAt(fragment, depth) {\n for (let i = 0; i < depth; i++)\n fragment = fragment.firstChild.content;\n return fragment;\n}\nfunction closeNodeStart(node, openStart, openEnd) {\n if (openStart <= 0)\n return node;\n let frag = node.content;\n if (openStart > 1)\n frag = frag.replaceChild(0, closeNodeStart(frag.firstChild, openStart - 1, frag.childCount == 1 ? openEnd - 1 : 0));\n if (openStart > 0) {\n frag = node.type.contentMatch.fillBefore(frag).append(frag);\n if (openEnd <= 0)\n frag = frag.append(node.type.contentMatch.matchFragment(frag).fillBefore(prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty, true));\n }\n return node.copy(frag);\n}\nfunction contentAfterFits($to, depth, type, match, open) {\n let node = $to.node(depth), index = open ? $to.indexAfter(depth) : $to.index(depth);\n if (index == node.childCount && !type.compatibleContent(node.type))\n return null;\n let fit = match.fillBefore(node.content, true, index);\n return fit && !invalidMarks(type, node.content, index) ? fit : null;\n}\nfunction invalidMarks(type, fragment, start) {\n for (let i = start; i < fragment.childCount; i++)\n if (!type.allowsMarks(fragment.child(i).marks))\n return true;\n return false;\n}\nfunction definesContent(type) {\n return type.spec.defining || type.spec.definingForContent;\n}\nfunction replaceRange(tr, from, to, slice) {\n if (!slice.size)\n return tr.deleteRange(from, to);\n let $from = tr.doc.resolve(from), $to = tr.doc.resolve(to);\n if (fitsTrivially($from, $to, slice))\n return tr.step(new ReplaceStep(from, to, slice));\n let targetDepths = coveredDepths($from, tr.doc.resolve(to));\n // Can't replace the whole document, so remove 0 if it's present\n if (targetDepths[targetDepths.length - 1] == 0)\n targetDepths.pop();\n // Negative numbers represent not expansion over the whole node at\n // that depth, but replacing from $from.before(-D) to $to.pos.\n let preferredTarget = -($from.depth + 1);\n targetDepths.unshift(preferredTarget);\n // This loop picks a preferred target depth, if one of the covering\n // depths is not outside of a defining node, and adds negative\n // depths for any depth that has $from at its start and does not\n // cross a defining node.\n for (let d = $from.depth, pos = $from.pos - 1; d > 0; d--, pos--) {\n let spec = $from.node(d).type.spec;\n if (spec.defining || spec.definingAsContext || spec.isolating)\n break;\n if (targetDepths.indexOf(d) > -1)\n preferredTarget = d;\n else if ($from.before(d) == pos)\n targetDepths.splice(1, 0, -d);\n }\n // Try to fit each possible depth of the slice into each possible\n // target depth, starting with the preferred depths.\n let preferredTargetIndex = targetDepths.indexOf(preferredTarget);\n let leftNodes = [], preferredDepth = slice.openStart;\n for (let content = slice.content, i = 0;; i++) {\n let node = content.firstChild;\n leftNodes.push(node);\n if (i == slice.openStart)\n break;\n content = node.content;\n }\n // Back up preferredDepth to cover defining textblocks directly\n // above it, possibly skipping a non-defining textblock.\n for (let d = preferredDepth - 1; d >= 0; d--) {\n let leftNode = leftNodes[d], def = definesContent(leftNode.type);\n if (def && !leftNode.sameMarkup($from.node(Math.abs(preferredTarget) - 1)))\n preferredDepth = d;\n else if (def || !leftNode.type.isTextblock)\n break;\n }\n for (let j = slice.openStart; j >= 0; j--) {\n let openDepth = (j + preferredDepth + 1) % (slice.openStart + 1);\n let insert = leftNodes[openDepth];\n if (!insert)\n continue;\n for (let i = 0; i < targetDepths.length; i++) {\n // Loop over possible expansion levels, starting with the\n // preferred one\n let targetDepth = targetDepths[(i + preferredTargetIndex) % targetDepths.length], expand = true;\n if (targetDepth < 0) {\n expand = false;\n targetDepth = -targetDepth;\n }\n let parent = $from.node(targetDepth - 1), index = $from.index(targetDepth - 1);\n if (parent.canReplaceWith(index, index, insert.type, insert.marks))\n return tr.replace($from.before(targetDepth), expand ? $to.after(targetDepth) : to, new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](closeFragment(slice.content, 0, slice.openStart, openDepth), openDepth, slice.openEnd));\n }\n }\n let startSteps = tr.steps.length;\n for (let i = targetDepths.length - 1; i >= 0; i--) {\n tr.replace(from, to, slice);\n if (tr.steps.length > startSteps)\n break;\n let depth = targetDepths[i];\n if (depth < 0)\n continue;\n from = $from.before(depth);\n to = $to.after(depth);\n }\n}\nfunction closeFragment(fragment, depth, oldOpen, newOpen, parent) {\n if (depth < oldOpen) {\n let first = fragment.firstChild;\n fragment = fragment.replaceChild(0, first.copy(closeFragment(first.content, depth + 1, oldOpen, newOpen, first)));\n }\n if (depth > newOpen) {\n let match = parent.contentMatchAt(0);\n let start = match.fillBefore(fragment).append(fragment);\n fragment = start.append(match.matchFragment(start).fillBefore(prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].empty, true));\n }\n return fragment;\n}\nfunction replaceRangeWith(tr, from, to, node) {\n if (!node.isInline && from == to && tr.doc.resolve(from).parent.content.size) {\n let point = insertPoint(tr.doc, from, node.type);\n if (point != null)\n from = to = point;\n }\n tr.replaceRange(from, to, new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(node), 0, 0));\n}\nfunction deleteRange(tr, from, to) {\n let $from = tr.doc.resolve(from), $to = tr.doc.resolve(to);\n let covered = coveredDepths($from, $to);\n for (let i = 0; i < covered.length; i++) {\n let depth = covered[i], last = i == covered.length - 1;\n if ((last && depth == 0) || $from.node(depth).type.contentMatch.validEnd)\n return tr.delete($from.start(depth), $to.end(depth));\n if (depth > 0 && (last || $from.node(depth - 1).canReplace($from.index(depth - 1), $to.indexAfter(depth - 1))))\n return tr.delete($from.before(depth), $to.after(depth));\n }\n for (let d = 1; d <= $from.depth && d <= $to.depth; d++) {\n if (from - $from.start(d) == $from.depth - d && to > $from.end(d) && $to.end(d) - to != $to.depth - d)\n return tr.delete($from.before(d), to);\n }\n tr.delete(from, to);\n}\n// Returns an array of all depths for which $from - $to spans the\n// whole content of the nodes at that depth.\nfunction coveredDepths($from, $to) {\n let result = [], minDepth = Math.min($from.depth, $to.depth);\n for (let d = minDepth; d >= 0; d--) {\n let start = $from.start(d);\n if (start < $from.pos - ($from.depth - d) ||\n $to.end(d) > $to.pos + ($to.depth - d) ||\n $from.node(d).type.spec.isolating ||\n $to.node(d).type.spec.isolating)\n break;\n if (start == $to.start(d) ||\n (d == $from.depth && d == $to.depth && $from.parent.inlineContent && $to.parent.inlineContent &&\n d && $to.start(d - 1) == start - 1))\n result.push(d);\n }\n return result;\n}\n\n/**\nUpdate an attribute in a specific node.\n*/\nclass AttrStep extends Step {\n /**\n Construct an attribute step.\n */\n constructor(\n /**\n The position of the target node.\n */\n pos, \n /**\n The attribute to set.\n */\n attr, \n // The attribute's new value.\n value) {\n super();\n this.pos = pos;\n this.attr = attr;\n this.value = value;\n }\n apply(doc) {\n let node = doc.nodeAt(this.pos);\n if (!node)\n return StepResult.fail(\"No node at attribute step's position\");\n let attrs = Object.create(null);\n for (let name in node.attrs)\n attrs[name] = node.attrs[name];\n attrs[this.attr] = this.value;\n let updated = node.type.create(attrs, null, node.marks);\n return StepResult.fromReplace(doc, this.pos, this.pos + 1, new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(updated), 0, node.isLeaf ? 0 : 1));\n }\n getMap() {\n return StepMap.empty;\n }\n invert(doc) {\n return new AttrStep(this.pos, this.attr, doc.nodeAt(this.pos).attrs[this.attr]);\n }\n map(mapping) {\n let pos = mapping.mapResult(this.pos, 1);\n return pos.deletedAfter ? null : new AttrStep(pos.pos, this.attr, this.value);\n }\n toJSON() {\n return { stepType: \"attr\", pos: this.pos, attr: this.attr, value: this.value };\n }\n static fromJSON(schema, json) {\n if (typeof json.pos != \"number\" || typeof json.attr != \"string\")\n throw new RangeError(\"Invalid input for AttrStep.fromJSON\");\n return new AttrStep(json.pos, json.attr, json.value);\n }\n}\nStep.jsonID(\"attr\", AttrStep);\n/**\nUpdate an attribute in the doc node.\n*/\nclass DocAttrStep extends Step {\n /**\n Construct an attribute step.\n */\n constructor(\n /**\n The attribute to set.\n */\n attr, \n // The attribute's new value.\n value) {\n super();\n this.attr = attr;\n this.value = value;\n }\n apply(doc) {\n let attrs = Object.create(null);\n for (let name in doc.attrs)\n attrs[name] = doc.attrs[name];\n attrs[this.attr] = this.value;\n let updated = doc.type.create(attrs, doc.content, doc.marks);\n return StepResult.ok(updated);\n }\n getMap() {\n return StepMap.empty;\n }\n invert(doc) {\n return new DocAttrStep(this.attr, doc.attrs[this.attr]);\n }\n map(mapping) {\n return this;\n }\n toJSON() {\n return { stepType: \"docAttr\", attr: this.attr, value: this.value };\n }\n static fromJSON(schema, json) {\n if (typeof json.attr != \"string\")\n throw new RangeError(\"Invalid input for DocAttrStep.fromJSON\");\n return new DocAttrStep(json.attr, json.value);\n }\n}\nStep.jsonID(\"docAttr\", DocAttrStep);\n\n/**\n@internal\n*/\nlet TransformError = class extends Error {\n};\nTransformError = function TransformError(message) {\n let err = Error.call(this, message);\n err.__proto__ = TransformError.prototype;\n return err;\n};\nTransformError.prototype = Object.create(Error.prototype);\nTransformError.prototype.constructor = TransformError;\nTransformError.prototype.name = \"TransformError\";\n/**\nAbstraction to build up and track an array of\n[steps](https://prosemirror.net/docs/ref/#transform.Step) representing a document transformation.\n\nMost transforming methods return the `Transform` object itself, so\nthat they can be chained.\n*/\nclass Transform {\n /**\n Create a transform that starts with the given document.\n */\n constructor(\n /**\n The current document (the result of applying the steps in the\n transform).\n */\n doc) {\n this.doc = doc;\n /**\n The steps in this transform.\n */\n this.steps = [];\n /**\n The documents before each of the steps.\n */\n this.docs = [];\n /**\n A mapping with the maps for each of the steps in this transform.\n */\n this.mapping = new Mapping;\n }\n /**\n The starting document.\n */\n get before() { return this.docs.length ? this.docs[0] : this.doc; }\n /**\n Apply a new step in this transform, saving the result. Throws an\n error when the step fails.\n */\n step(step) {\n let result = this.maybeStep(step);\n if (result.failed)\n throw new TransformError(result.failed);\n return this;\n }\n /**\n Try to apply a step in this transformation, ignoring it if it\n fails. Returns the step result.\n */\n maybeStep(step) {\n let result = step.apply(this.doc);\n if (!result.failed)\n this.addStep(step, result.doc);\n return result;\n }\n /**\n True when the document has been changed (when there are any\n steps).\n */\n get docChanged() {\n return this.steps.length > 0;\n }\n /**\n @internal\n */\n addStep(step, doc) {\n this.docs.push(this.doc);\n this.steps.push(step);\n this.mapping.appendMap(step.getMap());\n this.doc = doc;\n }\n /**\n Replace the part of the document between `from` and `to` with the\n given `slice`.\n */\n replace(from, to = from, slice = prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"].empty) {\n let step = replaceStep(this.doc, from, to, slice);\n if (step)\n this.step(step);\n return this;\n }\n /**\n Replace the given range with the given content, which may be a\n fragment, node, or array of nodes.\n */\n replaceWith(from, to, content) {\n return this.replace(from, to, new prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"](prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"].from(content), 0, 0));\n }\n /**\n Delete the content between the given positions.\n */\n delete(from, to) {\n return this.replace(from, to, prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Slice\"].empty);\n }\n /**\n Insert the given content at the given position.\n */\n insert(pos, content) {\n return this.replaceWith(pos, pos, content);\n }\n /**\n Replace a range of the document with a given slice, using\n `from`, `to`, and the slice's\n [`openStart`](https://prosemirror.net/docs/ref/#model.Slice.openStart) property as hints, rather\n than fixed start and end points. This method may grow the\n replaced area or close open nodes in the slice in order to get a\n fit that is more in line with WYSIWYG expectations, by dropping\n fully covered parent nodes of the replaced region when they are\n marked [non-defining as\n context](https://prosemirror.net/docs/ref/#model.NodeSpec.definingAsContext), or including an\n open parent node from the slice that _is_ marked as [defining\n its content](https://prosemirror.net/docs/ref/#model.NodeSpec.definingForContent).\n \n This is the method, for example, to handle paste. The similar\n [`replace`](https://prosemirror.net/docs/ref/#transform.Transform.replace) method is a more\n primitive tool which will _not_ move the start and end of its given\n range, and is useful in situations where you need more precise\n control over what happens.\n */\n replaceRange(from, to, slice) {\n replaceRange(this, from, to, slice);\n return this;\n }\n /**\n Replace the given range with a node, but use `from` and `to` as\n hints, rather than precise positions. When from and to are the same\n and are at the start or end of a parent node in which the given\n node doesn't fit, this method may _move_ them out towards a parent\n that does allow the given node to be placed. When the given range\n completely covers a parent node, this method may completely replace\n that parent node.\n */\n replaceRangeWith(from, to, node) {\n replaceRangeWith(this, from, to, node);\n return this;\n }\n /**\n Delete the given range, expanding it to cover fully covered\n parent nodes until a valid replace is found.\n */\n deleteRange(from, to) {\n deleteRange(this, from, to);\n return this;\n }\n /**\n Split the content in the given range off from its parent, if there\n is sibling content before or after it, and move it up the tree to\n the depth specified by `target`. You'll probably want to use\n [`liftTarget`](https://prosemirror.net/docs/ref/#transform.liftTarget) to compute `target`, to make\n sure the lift is valid.\n */\n lift(range, target) {\n lift(this, range, target);\n return this;\n }\n /**\n Join the blocks around the given position. If depth is 2, their\n last and first siblings are also joined, and so on.\n */\n join(pos, depth = 1) {\n join(this, pos, depth);\n return this;\n }\n /**\n Wrap the given [range](https://prosemirror.net/docs/ref/#model.NodeRange) in the given set of wrappers.\n The wrappers are assumed to be valid in this position, and should\n probably be computed with [`findWrapping`](https://prosemirror.net/docs/ref/#transform.findWrapping).\n */\n wrap(range, wrappers) {\n wrap(this, range, wrappers);\n return this;\n }\n /**\n Set the type of all textblocks (partly) between `from` and `to` to\n the given node type with the given attributes.\n */\n setBlockType(from, to = from, type, attrs = null) {\n setBlockType(this, from, to, type, attrs);\n return this;\n }\n /**\n Change the type, attributes, and/or marks of the node at `pos`.\n When `type` isn't given, the existing node type is preserved,\n */\n setNodeMarkup(pos, type, attrs = null, marks) {\n setNodeMarkup(this, pos, type, attrs, marks);\n return this;\n }\n /**\n Set a single attribute on a given node to a new value.\n The `pos` addresses the document content. Use `setDocAttribute`\n to set attributes on the document itself.\n */\n setNodeAttribute(pos, attr, value) {\n this.step(new AttrStep(pos, attr, value));\n return this;\n }\n /**\n Set a single attribute on the document to a new value.\n */\n setDocAttribute(attr, value) {\n this.step(new DocAttrStep(attr, value));\n return this;\n }\n /**\n Add a mark to the node at position `pos`.\n */\n addNodeMark(pos, mark) {\n this.step(new AddNodeMarkStep(pos, mark));\n return this;\n }\n /**\n Remove a mark (or a mark of the given type) from the node at\n position `pos`.\n */\n removeNodeMark(pos, mark) {\n if (!(mark instanceof prosemirror_model__WEBPACK_IMPORTED_MODULE_0__[\"Mark\"])) {\n let node = this.doc.nodeAt(pos);\n if (!node)\n throw new RangeError(\"No node at position \" + pos);\n mark = mark.isInSet(node.marks);\n if (!mark)\n return this;\n }\n this.step(new RemoveNodeMarkStep(pos, mark));\n return this;\n }\n /**\n Split the node at the given position, and optionally, if `depth` is\n greater than one, any number of nodes above that. By default, the\n parts split off will inherit the node type of the original node.\n This can be changed by passing an array of types and attributes to\n use after the split.\n */\n split(pos, depth = 1, typesAfter) {\n split(this, pos, depth, typesAfter);\n return this;\n }\n /**\n Add the given mark to the inline content between `from` and `to`.\n */\n addMark(from, to, mark) {\n addMark(this, from, to, mark);\n return this;\n }\n /**\n Remove marks from inline nodes between `from` and `to`. When\n `mark` is a single mark, remove precisely that mark. When it is\n a mark type, remove all marks of that type. When it is null,\n remove all marks of any type.\n */\n removeMark(from, to, mark) {\n removeMark(this, from, to, mark);\n return this;\n }\n /**\n Removes all marks and nodes from the content of the node at\n `pos` that don't match the given new parent node type. Accepts\n an optional starting [content match](https://prosemirror.net/docs/ref/#model.ContentMatch) as\n third argument.\n */\n clearIncompatible(pos, parentType, match) {\n clearIncompatible(this, pos, parentType, match);\n return this;\n }\n}\n\n\n\n\n//# sourceURL=webpack:///./node_modules/prosemirror-transform/dist/index.js?");
/***/ }),
/***/ "./node_modules/prosemirror-view/dist/index.js":
/*!*****************************************************!*\
!*** ./node_modules/prosemirror-view/dist/index.js ***!
\*****************************************************/
/*! exports provided: Decoration, DecorationSet, EditorView, __endComposition, __parseFromClipboard, __serializeForClipboard */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Decoration\", function() { return Decoration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DecorationSet\", function() { return DecorationSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EditorView\", function() { return EditorView; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__endComposition\", function() { return __endComposition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__parseFromClipboard\", function() { return __parseFromClipboard; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__serializeForClipboard\", function() { return __serializeForClipboard; });\n/* harmony import */ var prosemirror_state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prosemirror-state */ \"./node_modules/prosemirror-state/dist/index.js\");\n/* harmony import */ var prosemirror_model__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prosemirror-model */ \"./node_modules/prosemirror-model/dist/index.js\");\n/* harmony import */ var prosemirror_transform__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prosemirror-transform */ \"./node_modules/prosemirror-transform/dist/index.js\");\n\n\n\n\nconst domIndex = function (node) {\n for (var index = 0;; index++) {\n node = node.previousSibling;\n if (!node)\n return index;\n }\n};\nconst parentNode = function (node) {\n let parent = node.assignedSlot || node.parentNode;\n return parent && parent.nodeType == 11 ? parent.host : parent;\n};\nlet reusedRange = null;\n// Note that this will always return the same range, because DOM range\n// objects are every expensive, and keep slowing down subsequent DOM\n// updates, for some reason.\nconst textRange = function (node, from, to) {\n let range = reusedRange || (reusedRange = document.createRange());\n range.setEnd(node, to == null ? node.nodeValue.length : to);\n range.setStart(node, from || 0);\n return range;\n};\nconst clearReusedRange = function () {\n reusedRange = null;\n};\n// Scans forward and backward through DOM positions equivalent to the\n// given one to see if the two are in the same place (i.e. after a\n// text node vs at the end of that text node)\nconst isEquivalentPosition = function (node, off, targetNode, targetOff) {\n return targetNode && (scanFor(node, off, targetNode, targetOff, -1) ||\n scanFor(node, off, targetNode, targetOff, 1));\n};\nconst atomElements = /^(img|br|input|textarea|hr)$/i;\nfunction scanFor(node, off, targetNode, targetOff, dir) {\n for (;;) {\n if (node == targetNode && off == targetOff)\n return true;\n if (off == (dir < 0 ? 0 : nodeSize(node))) {\n let parent = node.parentNode;\n if (!parent || parent.nodeType != 1 || hasBlockDesc(node) || atomElements.test(node.nodeName) ||\n node.contentEditable == \"false\")\n return false;\n off = domIndex(node) + (dir < 0 ? 0 : 1);\n node = parent;\n }\n else if (node.nodeType == 1) {\n node = node.childNodes[off + (dir < 0 ? -1 : 0)];\n if (node.contentEditable == \"false\")\n return false;\n off = dir < 0 ? nodeSize(node) : 0;\n }\n else {\n return false;\n }\n }\n}\nfunction nodeSize(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length;\n}\nfunction textNodeBefore$1(node, offset) {\n for (;;) {\n if (node.nodeType == 3 && offset)\n return node;\n if (node.nodeType == 1 && offset > 0) {\n if (node.contentEditable == \"false\")\n return null;\n node = node.childNodes[offset - 1];\n offset = nodeSize(node);\n }\n else if (node.parentNode && !hasBlockDesc(node)) {\n offset = domIndex(node);\n node = node.parentNode;\n }\n else {\n return null;\n }\n }\n}\nfunction textNodeAfter$1(node, offset) {\n for (;;) {\n if (node.nodeType == 3 && offset < node.nodeValue.length)\n return node;\n if (node.nodeType == 1 && offset < node.childNodes.length) {\n if (node.contentEditable == \"false\")\n return null;\n node = node.childNodes[offset];\n offset = 0;\n }\n else if (node.parentNode && !hasBlockDesc(node)) {\n offset = domIndex(node) + 1;\n node = node.parentNode;\n }\n else {\n return null;\n }\n }\n}\nfunction isOnEdge(node, offset, parent) {\n for (let atStart = offset == 0, atEnd = offset == nodeSize(node); atStart || atEnd;) {\n if (node == parent)\n return true;\n let index = domIndex(node);\n node = node.parentNode;\n if (!node)\n return false;\n atStart = atStart && index == 0;\n atEnd = atEnd && index == nodeSize(node);\n }\n}\nfunction hasBlockDesc(dom) {\n let desc;\n for (let cur = dom; cur; cur = cur.parentNode)\n if (desc = cur.pmViewDesc)\n break;\n return desc && desc.node && desc.node.isBlock && (desc.dom == dom || desc.contentDOM == dom);\n}\n// Work around Chrome issue https://bugs.chromium.org/p/chromium/issues/detail?id=447523\n// (isCollapsed inappropriately returns true in shadow dom)\nconst selectionCollapsed = function (domSel) {\n return domSel.focusNode && isEquivalentPosition(domSel.focusNode, domSel.focusOffset, domSel.anchorNode, domSel.anchorOffset);\n};\nfunction keyEvent(keyCode, key) {\n let event = document.createEvent(\"Event\");\n event.initEvent(\"keydown\", true, true);\n event.keyCode = keyCode;\n event.key = event.code = key;\n return event;\n}\nfunction deepActiveElement(doc) {\n let elt = doc.activeElement;\n while (elt && elt.shadowRoot)\n elt = elt.shadowRoot.activeElement;\n return elt;\n}\nfunction caretFromPoint(doc, x, y) {\n if (doc.caretPositionFromPoint) {\n try { // Firefox throws for this call in hard-to-predict circumstances (#994)\n let pos = doc.caretPositionFromPoint(x, y);\n if (pos)\n return { node: pos.offsetNode, offset: pos.offset };\n }\n catch (_) { }\n }\n if (doc.caretRangeFromPoint) {\n let range = doc.caretRangeFromPoint(x, y);\n if (range)\n return { node: range.startContainer, offset: range.startOffset };\n }\n}\n\nconst nav = typeof navigator != \"undefined\" ? navigator : null;\nconst doc = typeof document != \"undefined\" ? document : null;\nconst agent = (nav && nav.userAgent) || \"\";\nconst ie_edge = /Edge\\/(\\d+)/.exec(agent);\nconst ie_upto10 = /MSIE \\d/.exec(agent);\nconst ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(agent);\nconst ie = !!(ie_upto10 || ie_11up || ie_edge);\nconst ie_version = ie_upto10 ? document.documentMode : ie_11up ? +ie_11up[1] : ie_edge ? +ie_edge[1] : 0;\nconst gecko = !ie && /gecko\\/(\\d+)/i.test(agent);\ngecko && +(/Firefox\\/(\\d+)/.exec(agent) || [0, 0])[1];\nconst _chrome = !ie && /Chrome\\/(\\d+)/.exec(agent);\nconst chrome = !!_chrome;\nconst chrome_version = _chrome ? +_chrome[1] : 0;\nconst safari = !ie && !!nav && /Apple Computer/.test(nav.vendor);\n// Is true for both iOS and iPadOS for convenience\nconst ios = safari && (/Mobile\\/\\w+/.test(agent) || !!nav && nav.maxTouchPoints > 2);\nconst mac = ios || (nav ? /Mac/.test(nav.platform) : false);\nconst windows = nav ? /Win/.test(nav.platform) : false;\nconst android = /Android \\d/.test(agent);\nconst webkit = !!doc && \"webkitFontSmoothing\" in doc.documentElement.style;\nconst webkit_version = webkit ? +(/\\bAppleWebKit\\/(\\d+)/.exec(navigator.userAgent) || [0, 0])[1] : 0;\n\nfunction windowRect(doc) {\n let vp = doc.defaultView && doc.defaultView.visualViewport;\n if (vp)\n return {\n left: 0, right: vp.width,\n top: 0, bottom: vp.height\n };\n return { left: 0, right: doc.documentElement.clientWidth,\n top: 0, bottom: doc.documentElement.clientHeight };\n}\nfunction getSide(value, side) {\n return typeof value == \"number\" ? value : value[side];\n}\nfunction clientRect(node) {\n let rect = node.getBoundingClientRect();\n // Adjust for elements with style \"transform: scale()\"\n let scaleX = (rect.width / node.offsetWidth) || 1;\n let scaleY = (rect.height / node.offsetHeight) || 1;\n // Make sure scrollbar width isn't included in the rectangle\n return { left: rect.left, right: rect.left + node.clientWidth * scaleX,\n top: rect.top, bottom: rect.top + node.clientHeight * scaleY };\n}\nfunction scrollRectIntoView(view, rect, startDOM) {\n let scrollThreshold = view.someProp(\"scrollThreshold\") || 0, scrollMargin = view.someProp(\"scrollMargin\") || 5;\n let doc = view.dom.ownerDocument;\n for (let parent = startDOM || view.dom;; parent = parentNode(parent)) {\n if (!parent)\n break;\n if (parent.nodeType != 1)\n continue;\n let elt = parent;\n let atTop = elt == doc.body;\n let bounding = atTop ? windowRect(doc) : clientRect(elt);\n let moveX = 0, moveY = 0;\n if (rect.top < bounding.top + getSide(scrollThreshold, \"top\"))\n moveY = -(bounding.top - rect.top + getSide(scrollMargin, \"top\"));\n else if (rect.bottom > bounding.bottom - getSide(scrollThreshold, \"bottom\"))\n moveY = rect.bottom - rect.top > bounding.bottom - bounding.top\n ? rect.top + getSide(scrollMargin, \"top\") - bounding.top\n : rect.bottom - bounding.bottom + getSide(scrollMargin, \"bottom\");\n if (rect.left < bounding.left + getSide(scrollThreshold, \"left\"))\n moveX = -(bounding.left - rect.left + getSide(scrollMargin, \"left\"));\n else if (rect.right > bounding.right - getSide(scrollThreshold, \"right\"))\n moveX = rect.right - bounding.right + getSide(scrollMargin, \"right\");\n if (moveX || moveY) {\n if (atTop) {\n doc.defaultView.scrollBy(moveX, moveY);\n }\n else {\n let startX = elt.scrollLeft, startY = elt.scrollTop;\n if (moveY)\n elt.scrollTop += moveY;\n if (moveX)\n elt.scrollLeft += moveX;\n let dX = elt.scrollLeft - startX, dY = elt.scrollTop - startY;\n rect = { left: rect.left - dX, top: rect.top - dY, right: rect.right - dX, bottom: rect.bottom - dY };\n }\n }\n if (atTop || /^(fixed|sticky)$/.test(getComputedStyle(parent).position))\n break;\n }\n}\n// Store the scroll position of the editor's parent nodes, along with\n// the top position of an element near the top of the editor, which\n// will be used to make sure the visible viewport remains stable even\n// when the size of the content above changes.\nfunction storeScrollPos(view) {\n let rect = view.dom.getBoundingClientRect(), startY = Math.max(0, rect.top);\n let refDOM, refTop;\n for (let x = (rect.left + rect.right) / 2, y = startY + 1; y < Math.min(innerHeight, rect.bottom); y += 5) {\n let dom = view.root.elementFromPoint(x, y);\n if (!dom || dom == view.dom || !view.dom.contains(dom))\n continue;\n let localRect = dom.getBoundingClientRect();\n if (localRect.top >= startY - 20) {\n refDOM = dom;\n refTop = localRect.top;\n break;\n }\n }\n return { refDOM: refDOM, refTop: refTop, stack: scrollStack(view.dom) };\n}\nfunction scrollStack(dom) {\n let stack = [], doc = dom.ownerDocument;\n for (let cur = dom; cur; cur = parentNode(cur)) {\n stack.push({ dom: cur, top: cur.scrollTop, left: cur.scrollLeft });\n if (dom == doc)\n break;\n }\n return stack;\n}\n// Reset the scroll position of the editor's parent nodes to that what\n// it was before, when storeScrollPos was called.\nfunction resetScrollPos({ refDOM, refTop, stack }) {\n let newRefTop = refDOM ? refDOM.getBoundingClientRect().top : 0;\n restoreScrollStack(stack, newRefTop == 0 ? 0 : newRefTop - refTop);\n}\nfunction restoreScrollStack(stack, dTop) {\n for (let i = 0; i < stack.length; i++) {\n let { dom, top, left } = stack[i];\n if (dom.scrollTop != top + dTop)\n dom.scrollTop = top + dTop;\n if (dom.scrollLeft != left)\n dom.scrollLeft = left;\n }\n}\nlet preventScrollSupported = null;\n// Feature-detects support for .focus({preventScroll: true}), and uses\n// a fallback kludge when not supported.\nfunction focusPreventScroll(dom) {\n if (dom.setActive)\n return dom.setActive(); // in IE\n if (preventScrollSupported)\n return dom.focus(preventScrollSupported);\n let stored = scrollStack(dom);\n dom.focus(preventScrollSupported == null ? {\n get preventScroll() {\n preventScrollSupported = { preventScroll: true };\n return true;\n }\n } : undefined);\n if (!preventScrollSupported) {\n preventScrollSupported = false;\n restoreScrollStack(stored, 0);\n }\n}\nfunction findOffsetInNode(node, coords) {\n let closest, dxClosest = 2e8, coordsClosest, offset = 0;\n let rowBot = coords.top, rowTop = coords.top;\n let firstBelow, coordsBelow;\n for (let child = node.firstChild, childIndex = 0; child; child = child.nextSibling, childIndex++) {\n let rects;\n if (child.nodeType == 1)\n rects = child.getClientRects();\n else if (child.nodeType == 3)\n rects = textRange(child).getClientRects();\n else\n continue;\n for (let i = 0; i < rects.length; i++) {\n let rect = rects[i];\n if (rect.top <= rowBot && rect.bottom >= rowTop) {\n rowBot = Math.max(rect.bottom, rowBot);\n rowTop = Math.min(rect.top, rowTop);\n let dx = rect.left > coords.left ? rect.left - coords.left\n : rect.right < coords.left ? coords.left - rect.right : 0;\n if (dx < dxClosest) {\n closest = child;\n dxClosest = dx;\n coordsClosest = dx && closest.nodeType == 3 ? {\n left: rect.right < coords.left ? rect.right : rect.left,\n top: coords.top\n } : coords;\n if (child.nodeType == 1 && dx)\n offset = childIndex + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0);\n continue;\n }\n }\n else if (rect.top > coords.top && !firstBelow && rect.left <= coords.left && rect.right >= coords.left) {\n firstBelow = child;\n coordsBelow = { left: Math.max(rect.left, Math.min(rect.right, coords.left)), top: rect.top };\n }\n if (!closest && (coords.left >= rect.right && coords.top >= rect.top ||\n coords.left >= rect.left && coords.top >= rect.bottom))\n offset = childIndex + 1;\n }\n }\n if (!closest && firstBelow) {\n closest = firstBelow;\n coordsClosest = coordsBelow;\n dxClosest = 0;\n }\n if (closest && closest.nodeType == 3)\n return findOffsetInText(closest, coordsClosest);\n if (!closest || (dxClosest && closest.nodeType == 1))\n return { node, offset };\n return findOffsetInNode(closest, coordsClosest);\n}\nfunction findOffsetInText(node, coords) {\n let len = node.nodeValue.length;\n let range = document.createRange();\n for (let i = 0; i < len; i++) {\n range.setEnd(node, i + 1);\n range.setStart(node, i);\n let rect = singleRect(range, 1);\n if (rect.top == rect.bottom)\n continue;\n if (inRect(coords, rect))\n return { node, offset: i + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0) };\n }\n return { node, offset: 0 };\n}\nfunction inRect(coords, rect) {\n return coords.left >= rect.left - 1 && coords.left <= rect.right + 1 &&\n coords.top >= rect.top - 1 && coords.top <= rect.bottom + 1;\n}\nfunction targetKludge(dom, coords) {\n let parent = dom.parentNode;\n if (parent && /^li$/i.test(parent.nodeName) && coords.left < dom.getBoundingClientRect().left)\n return parent;\n return dom;\n}\nfunction posFromElement(view, elt, coords) {\n let { node, offset } = findOffsetInNode(elt, coords), bias = -1;\n if (node.nodeType == 1 && !node.firstChild) {\n let rect = node.getBoundingClientRect();\n bias = rect.left != rect.right && coords.left > (rect.left + rect.right) / 2 ? 1 : -1;\n }\n return view.docView.posFromDOM(node, offset, bias);\n}\nfunction posFromCaret(view, node, offset, coords) {\n // Browser (in caretPosition/RangeFromPoint) will agressively\n // normalize towards nearby inline nodes. Since we are interested in\n // positions between block nodes too, we first walk up the hierarchy\n // of nodes to see if there are block nodes that the coordinates\n // fall outside of. If so, we take the position before/after that\n // block. If not, we call `posFromDOM` on the raw node/offset.\n let outsideBlock = -1;\n for (let cur = node, sawBlock = false;;) {\n if (cur == view.dom)\n break;\n let desc = view.docView.nearestDesc(cur, true);\n if (!desc)\n return null;\n if (desc.dom.nodeType == 1 && (desc.node.isBlock && desc.parent || !desc.contentDOM)) {\n let rect = desc.dom.getBoundingClientRect();\n if (desc.node.isBlock && desc.parent) {\n // Only apply the horizontal test to the innermost block. Vertical for any parent.\n if (!sawBlock && rect.left > coords.left || rect.top > coords.top)\n outsideBlock = desc.posBefore;\n else if (!sawBlock && rect.right < coords.left || rect.bottom < coords.top)\n outsideBlock = desc.posAfter;\n sawBlock = true;\n }\n if (!desc.contentDOM && outsideBlock < 0 && !desc.node.isText) {\n // If we are inside a leaf, return the side of the leaf closer to the coords\n let before = desc.node.isBlock ? coords.top < (rect.top + rect.bottom) / 2\n : coords.left < (rect.left + rect.right) / 2;\n return before ? desc.posBefore : desc.posAfter;\n }\n }\n cur = desc.dom.parentNode;\n }\n return outsideBlock > -1 ? outsideBlock : view.docView.posFromDOM(node, offset, -1);\n}\nfunction elementFromPoint(element, coords, box) {\n let len = element.childNodes.length;\n if (len && box.top < box.bottom) {\n for (let startI = Math.max(0, Math.min(len - 1, Math.floor(len * (coords.top - box.top) / (box.bottom - box.top)) - 2)), i = startI;;) {\n let child = element.childNodes[i];\n if (child.nodeType == 1) {\n let rects = child.getClientRects();\n for (let j = 0; j < rects.length; j++) {\n let rect = rects[j];\n if (inRect(coords, rect))\n return elementFromPoint(child, coords, rect);\n }\n }\n if ((i = (i + 1) % len) == startI)\n break;\n }\n }\n return element;\n}\n// Given an x,y position on the editor, get the position in the document.\nfunction posAtCoords(view, coords) {\n let doc = view.dom.ownerDocument, node, offset = 0;\n let caret = caretFromPoint(doc, coords.left, coords.top);\n if (caret)\n ({ node, offset } = caret);\n let elt = (view.root.elementFromPoint ? view.root : doc)\n .elementFromPoint(coords.left, coords.top);\n let pos;\n if (!elt || !view.dom.contains(elt.nodeType != 1 ? elt.parentNode : elt)) {\n let box = view.dom.getBoundingClientRect();\n if (!inRect(coords, box))\n return null;\n elt = elementFromPoint(view.dom, coords, box);\n if (!elt)\n return null;\n }\n // Safari's caretRangeFromPoint returns nonsense when on a draggable element\n if (safari) {\n for (let p = elt; node && p; p = parentNode(p))\n if (p.draggable)\n node = undefined;\n }\n elt = targetKludge(elt, coords);\n if (node) {\n if (gecko && node.nodeType == 1) {\n // Firefox will sometimes return offsets into <input> nodes, which\n // have no actual children, from caretPositionFromPoint (#953)\n offset = Math.min(offset, node.childNodes.length);\n // It'll also move the returned position before image nodes,\n // even if those are behind it.\n if (offset < node.childNodes.length) {\n let next = node.childNodes[offset], box;\n if (next.nodeName == \"IMG\" && (box = next.getBoundingClientRect()).right <= coords.left &&\n box.bottom > coords.top)\n offset++;\n }\n }\n let prev;\n // When clicking above the right side of an uneditable node, Chrome will report a cursor position after that node.\n if (webkit && offset && node.nodeType == 1 && (prev = node.childNodes[offset - 1]).nodeType == 1 &&\n prev.contentEditable == \"false\" && prev.getBoundingClientRect().top >= coords.top)\n offset--;\n // Suspiciously specific kludge to work around caret*FromPoint\n // never returning a position at the end of the document\n if (node == view.dom && offset == node.childNodes.length - 1 && node.lastChild.nodeType == 1 &&\n coords.top > node.lastChild.getBoundingClientRect().bottom)\n pos = view.state.doc.content.size;\n // Ignore positions directly after a BR, since caret*FromPoint\n // 'round up' positions that would be more accurately placed\n // before the BR node.\n else if (offset == 0 || node.nodeType != 1 || node.childNodes[offset - 1].nodeName != \"BR\")\n pos = posFromCaret(view, node, offset, coords);\n }\n if (pos == null)\n pos = posFromElement(view, elt, coords);\n let desc = view.docView.nearestDesc(elt, true);\n return { pos, inside: desc ? desc.posAtStart - desc.border : -1 };\n}\nfunction nonZero(rect) {\n return rect.top < rect.bottom || rect.left < rect.right;\n}\nfunction singleRect(target, bias) {\n let rects = target.getClientRects();\n if (rects.length) {\n let first = rects[bias < 0 ? 0 : rects.length - 1];\n if (nonZero(first))\n return first;\n }\n return Array.prototype.find.call(rects, nonZero) || target.getBoundingClientRect();\n}\nconst BIDI = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n// Given a position in the document model, get a bounding box of the\n// character at that position, relative to the window.\nfunction coordsAtPos(view, pos, side) {\n let { node, offset, atom } = view.docView.domFromPos(pos, side < 0 ? -1 : 1);\n let supportEmptyRange = webkit || gecko;\n if (node.nodeType == 3) {\n // These browsers support querying empty text ranges. Prefer that in\n // bidi context or when at the end of a node.\n if (supportEmptyRange && (BIDI.test(node.nodeValue) || (side < 0 ? !offset : offset == node.nodeValue.length))) {\n let rect = singleRect(textRange(node, offset, offset), side);\n // Firefox returns bad results (the position before the space)\n // when querying a position directly after line-broken\n // whitespace. Detect this situation and and kludge around it\n if (gecko && offset && /\\s/.test(node.nodeValue[offset - 1]) && offset < node.nodeValue.length) {\n let rectBefore = singleRect(textRange(node, offset - 1, offset - 1), -1);\n if (rectBefore.top == rect.top) {\n let rectAfter = singleRect(textRange(node, offset, offset + 1), -1);\n if (rectAfter.top != rect.top)\n return flattenV(rectAfter, rectAfter.left < rectBefore.left);\n }\n }\n return rect;\n }\n else {\n let from = offset, to = offset, takeSide = side < 0 ? 1 : -1;\n if (side < 0 && !offset) {\n to++;\n takeSide = -1;\n }\n else if (side >= 0 && offset == node.nodeValue.length) {\n from--;\n takeSide = 1;\n }\n else if (side < 0) {\n from--;\n }\n else {\n to++;\n }\n return flattenV(singleRect(textRange(node, from, to), takeSide), takeSide < 0);\n }\n }\n let $dom = view.state.doc.resolve(pos - (atom || 0));\n // Return a horizontal line in block context\n if (!$dom.parent.inlineContent) {\n if (atom == null && offset && (side < 0 || offset == nodeSize(node))) {\n let before = node.childNodes[offset - 1];\n if (before.nodeType == 1)\n return flattenH(before.getBoundingClientRect(), false);\n }\n if (atom == null && offset < nodeSize(node)) {\n let after = node.childNodes[offset];\n if (after.nodeType == 1)\n return flattenH(after.getBoundingClientRect(), true);\n }\n return flattenH(node.getBoundingClientRect(), side >= 0);\n }\n // Inline, not in text node (this is not Bidi-safe)\n if (atom == null && offset && (side < 0 || offset == nodeSize(node))) {\n let before = node.childNodes[offset - 1];\n let target = before.nodeType == 3 ? textRange(before, nodeSize(before) - (supportEmptyRange ? 0 : 1))\n // BR nodes tend to only return the rectangle before them.\n // Only use them if they are the last element in their parent\n : before.nodeType == 1 && (before.nodeName != \"BR\" || !before.nextSibling) ? before : null;\n if (target)\n return flattenV(singleRect(target, 1), false);\n }\n if (atom == null && offset < nodeSize(node)) {\n let after = node.childNodes[offset];\n while (after.pmViewDesc && after.pmViewDesc.ignoreForCoords)\n after = after.nextSibling;\n let target = !after ? null : after.nodeType == 3 ? textRange(after, 0, (supportEmptyRange ? 0 : 1))\n : after.nodeType == 1 ? after : null;\n if (target)\n return flattenV(singleRect(target, -1), true);\n }\n // All else failed, just try to get a rectangle for the target node\n return flattenV(singleRect(node.nodeType == 3 ? textRange(node) : node, -side), side >= 0);\n}\nfunction flattenV(rect, left) {\n if (rect.width == 0)\n return rect;\n let x = left ? rect.left : rect.right;\n return { top: rect.top, bottom: rect.bottom, left: x, right: x };\n}\nfunction flattenH(rect, top) {\n if (rect.height == 0)\n return rect;\n let y = top ? rect.top : rect.bottom;\n return { top: y, bottom: y, left: rect.left, right: rect.right };\n}\nfunction withFlushedState(view, state, f) {\n let viewState = view.state, active = view.root.activeElement;\n if (viewState != state)\n view.updateState(state);\n if (active != view.dom)\n view.focus();\n try {\n return f();\n }\n finally {\n if (viewState != state)\n view.updateState(viewState);\n if (active != view.dom && active)\n active.focus();\n }\n}\n// Whether vertical position motion in a given direction\n// from a position would leave a text block.\nfunction endOfTextblockVertical(view, state, dir) {\n let sel = state.selection;\n let $pos = dir == \"up\" ? sel.$from : sel.$to;\n return withFlushedState(view, state, () => {\n let { node: dom } = view.docView.domFromPos($pos.pos, dir == \"up\" ? -1 : 1);\n for (;;) {\n let nearest = view.docView.nearestDesc(dom, true);\n if (!nearest)\n break;\n if (nearest.node.isBlock) {\n dom = nearest.contentDOM || nearest.dom;\n break;\n }\n dom = nearest.dom.parentNode;\n }\n let coords = coordsAtPos(view, $pos.pos, 1);\n for (let child = dom.firstChild; child; child = child.nextSibling) {\n let boxes;\n if (child.nodeType == 1)\n boxes = child.getClientRects();\n else if (child.nodeType == 3)\n boxes = textRange(child, 0, child.nodeValue.length).getClientRects();\n else\n continue;\n for (let i = 0; i < boxes.length; i++) {\n let box = boxes[i];\n if (box.bottom > box.top + 1 &&\n (dir == \"up\" ? coords.top - box.top > (box.bottom - coords.top) * 2\n : box.bottom - coords.bottom > (coords.bottom - box.top) * 2))\n return false;\n }\n }\n return true;\n });\n}\nconst maybeRTL = /[\\u0590-\\u08ac]/;\nfunction endOfTextblockHorizontal(view, state, dir) {\n let { $head } = state.selection;\n if (!$head.parent.isTextblock)\n return false;\n let offset = $head.parentOffset, atStart = !offset, atEnd = offset == $head.parent.content.size;\n let sel = view.domSelection();\n // If the textblock is all LTR, or the browser doesn't support\n // Selection.modify (Edge), fall back to a primitive approach\n if (!maybeRTL.test($head.parent.textContent) || !sel.modify)\n return dir == \"left\" || dir == \"backward\" ? atStart : atEnd;\n return withFlushedState(view, state, () => {\n // This is a huge hack, but appears to be the best we can\n // currently do: use `Selection.modify` to move the selection by\n // one character, and see if that moves the cursor out of the\n // textblock (or doesn't move it at all, when at the start/end of\n // the document).\n let { focusNode: oldNode, focusOffset: oldOff, anchorNode, anchorOffset } = view.domSelectionRange();\n let oldBidiLevel = sel.caretBidiLevel // Only for Firefox\n ;\n sel.modify(\"move\", dir, \"character\");\n let parentDOM = $head.depth ? view.docView.domAfterPos($head.before()) : view.dom;\n let { focusNode: newNode, focusOffset: newOff } = view.domSelectionRange();\n let result = newNode && !parentDOM.contains(newNode.nodeType == 1 ? newNode : newNode.parentNode) ||\n (oldNode == newNode && oldOff == newOff);\n // Restore the previous selection\n try {\n sel.collapse(anchorNode, anchorOffset);\n if (oldNode && (oldNode != anchorNode || oldOff != anchorOffset) && sel.extend)\n sel.extend(oldNode, oldOff);\n }\n catch (_) { }\n if (oldBidiLevel != null)\n sel.caretBidiLevel = oldBidiLevel;\n return result;\n });\n}\nlet cachedState = null;\nlet cachedDir = null;\nlet cachedResult = false;\nfunction endOfTextblock(view, state, dir) {\n if (cachedState == state && cachedDir == dir)\n return cachedResult;\n cachedState = state;\n cachedDir = dir;\n return cachedResult = dir == \"up\" || dir == \"down\"\n ? endOfTextblockVertical(view, state, dir)\n : endOfTextblockHorizontal(view, state, dir);\n}\n\n// View descriptions are data structures that describe the DOM that is\n// used to represent the editor's content. They are used for:\n//\n// - Incremental redrawing when the document changes\n//\n// - Figuring out what part of the document a given DOM position\n// corresponds to\n//\n// - Wiring in custom implementations of the editing interface for a\n// given node\n//\n// They form a doubly-linked mutable tree, starting at `view.docView`.\nconst NOT_DIRTY = 0, CHILD_DIRTY = 1, CONTENT_DIRTY = 2, NODE_DIRTY = 3;\n// Superclass for the various kinds of descriptions. Defines their\n// basic structure and shared methods.\nclass ViewDesc {\n constructor(parent, children, dom, \n // This is the node that holds the child views. It may be null for\n // descs that don't have children.\n contentDOM) {\n this.parent = parent;\n this.children = children;\n this.dom = dom;\n this.contentDOM = contentDOM;\n this.dirty = NOT_DIRTY;\n // An expando property on the DOM node provides a link back to its\n // description.\n dom.pmViewDesc = this;\n }\n // Used to check whether a given description corresponds to a\n // widget/mark/node.\n matchesWidget(widget) { return false; }\n matchesMark(mark) { return false; }\n matchesNode(node, outerDeco, innerDeco) { return false; }\n matchesHack(nodeName) { return false; }\n // When parsing in-editor content (in domchange.js), we allow\n // descriptions to determine the parse rules that should be used to\n // parse them.\n parseRule() { return null; }\n // Used by the editor's event handler to ignore events that come\n // from certain descs.\n stopEvent(event) { return false; }\n // The size of the content represented by this desc.\n get size() {\n let size = 0;\n for (let i = 0; i < this.children.length; i++)\n size += this.children[i].size;\n return size;\n }\n // For block nodes, this represents the space taken up by their\n // start/end tokens.\n get border() { return 0; }\n destroy() {\n this.parent = undefined;\n if (this.dom.pmViewDesc == this)\n this.dom.pmViewDesc = undefined;\n for (let i = 0; i < this.children.length; i++)\n this.children[i].destroy();\n }\n posBeforeChild(child) {\n for (let i = 0, pos = this.posAtStart;; i++) {\n let cur = this.children[i];\n if (cur == child)\n return pos;\n pos += cur.size;\n }\n }\n get posBefore() {\n return this.parent.posBeforeChild(this);\n }\n get posAtStart() {\n return this.parent ? this.parent.posBeforeChild(this) + this.border : 0;\n }\n get posAfter() {\n return this.posBefore + this.size;\n }\n get posAtEnd() {\n return this.posAtStart + this.size - 2 * this.border;\n }\n localPosFromDOM(dom, offset, bias) {\n // If the DOM position is in the content, use the child desc after\n // it to figure out a position.\n if (this.contentDOM && this.contentDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode)) {\n if (bias < 0) {\n let domBefore, desc;\n if (dom == this.contentDOM) {\n domBefore = dom.childNodes[offset - 1];\n }\n else {\n while (dom.parentNode != this.contentDOM)\n dom = dom.parentNode;\n domBefore = dom.previousSibling;\n }\n while (domBefore && !((desc = domBefore.pmViewDesc) && desc.parent == this))\n domBefore = domBefore.previousSibling;\n return domBefore ? this.posBeforeChild(desc) + desc.size : this.posAtStart;\n }\n else {\n let domAfter, desc;\n if (dom == this.contentDOM) {\n domAfter = dom.childNodes[offset];\n }\n else {\n while (dom.parentNode != this.contentDOM)\n dom = dom.parentNode;\n domAfter = dom.nextSibling;\n }\n while (domAfter && !((desc = domAfter.pmViewDesc) && desc.parent == this))\n domAfter = domAfter.nextSibling;\n return domAfter ? this.posBeforeChild(desc) : this.posAtEnd;\n }\n }\n // Otherwise, use various heuristics, falling back on the bias\n // parameter, to determine whether to return the position at the\n // start or at the end of this view desc.\n let atEnd;\n if (dom == this.dom && this.contentDOM) {\n atEnd = offset > domIndex(this.contentDOM);\n }\n else if (this.contentDOM && this.contentDOM != this.dom && this.dom.contains(this.contentDOM)) {\n atEnd = dom.compareDocumentPosition(this.contentDOM) & 2;\n }\n else if (this.dom.firstChild) {\n if (offset == 0)\n for (let search = dom;; search = search.parentNode) {\n if (search == this.dom) {\n atEnd = false;\n break;\n }\n if (search.previousSibling)\n break;\n }\n if (atEnd == null && offset == dom.childNodes.length)\n for (let search = dom;; search = search.parentNode) {\n if (search == this.dom) {\n atEnd = true;\n break;\n }\n if (search.nextSibling)\n break;\n }\n }\n return (atEnd == null ? bias > 0 : atEnd) ? this.posAtEnd : this.posAtStart;\n }\n nearestDesc(dom, onlyNodes = false) {\n for (let first = true, cur = dom; cur; cur = cur.parentNode) {\n let desc = this.getDesc(cur), nodeDOM;\n if (desc && (!onlyNodes || desc.node)) {\n // If dom is outside of this desc's nodeDOM, don't count it.\n if (first && (nodeDOM = desc.nodeDOM) &&\n !(nodeDOM.nodeType == 1 ? nodeDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode) : nodeDOM == dom))\n first = false;\n else\n return desc;\n }\n }\n }\n getDesc(dom) {\n let desc = dom.pmViewDesc;\n for (let cur = desc; cur; cur = cur.parent)\n if (cur == this)\n return desc;\n }\n posFromDOM(dom, offset, bias) {\n for (let scan = dom; scan; scan = scan.parentNode) {\n let desc = this.getDesc(scan);\n if (desc)\n return desc.localPosFromDOM(dom, offset, bias);\n }\n return -1;\n }\n // Find the desc for the node after the given pos, if any. (When a\n // parent node overrode rendering, there might not be one.)\n descAt(pos) {\n for (let i = 0, offset = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (offset == pos && end != offset) {\n while (!child.border && child.children.length)\n child = child.children[0];\n return child;\n }\n if (pos < end)\n return child.descAt(pos - offset - child.border);\n offset = end;\n }\n }\n domFromPos(pos, side) {\n if (!this.contentDOM)\n return { node: this.dom, offset: 0, atom: pos + 1 };\n // First find the position in the child array\n let i = 0, offset = 0;\n for (let curPos = 0; i < this.children.length; i++) {\n let child = this.children[i], end = curPos + child.size;\n if (end > pos || child instanceof TrailingHackViewDesc) {\n offset = pos - curPos;\n break;\n }\n curPos = end;\n }\n // If this points into the middle of a child, call through\n if (offset)\n return this.children[i].domFromPos(offset - this.children[i].border, side);\n // Go back if there were any zero-length widgets with side >= 0 before this point\n for (let prev; i && !(prev = this.children[i - 1]).size && prev instanceof WidgetViewDesc && prev.side >= 0; i--) { }\n // Scan towards the first useable node\n if (side <= 0) {\n let prev, enter = true;\n for (;; i--, enter = false) {\n prev = i ? this.children[i - 1] : null;\n if (!prev || prev.dom.parentNode == this.contentDOM)\n break;\n }\n if (prev && side && enter && !prev.border && !prev.domAtom)\n return prev.domFromPos(prev.size, side);\n return { node: this.contentDOM, offset: prev ? domIndex(prev.dom) + 1 : 0 };\n }\n else {\n let next, enter = true;\n for (;; i++, enter = false) {\n next = i < this.children.length ? this.children[i] : null;\n if (!next || next.dom.parentNode == this.contentDOM)\n break;\n }\n if (next && enter && !next.border && !next.domAtom)\n return next.domFromPos(0, side);\n return { node: this.contentDOM, offset: next ? domIndex(next.dom) : this.contentDOM.childNodes.length };\n }\n }\n // Used to find a DOM range in a single parent for a given changed\n // range.\n parseRange(from, to, base = 0) {\n if (this.children.length == 0)\n return { node: this.contentDOM, from, to, fromOffset: 0, toOffset: this.contentDOM.childNodes.length };\n let fromOffset = -1, toOffset = -1;\n for (let offset = base, i = 0;; i++) {\n let child = this.children[i], end = offset + child.size;\n if (fromOffset == -1 && from <= end) {\n let childBase = offset + child.border;\n // FIXME maybe descend mark views to parse a narrower range?\n if (from >= childBase && to <= end - child.border && child.node &&\n child.contentDOM && this.contentDOM.contains(child.contentDOM))\n return child.parseRange(from, to, childBase);\n from = offset;\n for (let j = i; j > 0; j--) {\n let prev = this.children[j - 1];\n if (prev.size && prev.dom.parentNode == this.contentDOM && !prev.emptyChildAt(1)) {\n fromOffset = domIndex(prev.dom) + 1;\n break;\n }\n from -= prev.size;\n }\n if (fromOffset == -1)\n fromOffset = 0;\n }\n if (fromOffset > -1 && (end > to || i == this.children.length - 1)) {\n to = end;\n for (let j = i + 1; j < this.children.length; j++) {\n let next = this.children[j];\n if (next.size && next.dom.parentNode == this.contentDOM && !next.emptyChildAt(-1)) {\n toOffset = domIndex(next.dom);\n break;\n }\n to += next.size;\n }\n if (toOffset == -1)\n toOffset = this.contentDOM.childNodes.length;\n break;\n }\n offset = end;\n }\n return { node: this.contentDOM, from, to, fromOffset, toOffset };\n }\n emptyChildAt(side) {\n if (this.border || !this.contentDOM || !this.children.length)\n return false;\n let child = this.children[side < 0 ? 0 : this.children.length - 1];\n return child.size == 0 || child.emptyChildAt(side);\n }\n domAfterPos(pos) {\n let { node, offset } = this.domFromPos(pos, 0);\n if (node.nodeType != 1 || offset == node.childNodes.length)\n throw new RangeError(\"No node after pos \" + pos);\n return node.childNodes[offset];\n }\n // View descs are responsible for setting any selection that falls\n // entirely inside of them, so that custom implementations can do\n // custom things with the selection. Note that this falls apart when\n // a selection starts in such a node and ends in another, in which\n // case we just use whatever domFromPos produces as a best effort.\n setSelection(anchor, head, root, force = false) {\n // If the selection falls entirely in a child, give it to that child\n let from = Math.min(anchor, head), to = Math.max(anchor, head);\n for (let i = 0, offset = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (from > offset && to < end)\n return child.setSelection(anchor - offset - child.border, head - offset - child.border, root, force);\n offset = end;\n }\n let anchorDOM = this.domFromPos(anchor, anchor ? -1 : 1);\n let headDOM = head == anchor ? anchorDOM : this.domFromPos(head, head ? -1 : 1);\n let domSel = root.getSelection();\n let brKludge = false;\n // On Firefox, using Selection.collapse to put the cursor after a\n // BR node for some reason doesn't always work (#1073). On Safari,\n // the cursor sometimes inexplicable visually lags behind its\n // reported position in such situations (#1092).\n if ((gecko || safari) && anchor == head) {\n let { node, offset } = anchorDOM;\n if (node.nodeType == 3) {\n brKludge = !!(offset && node.nodeValue[offset - 1] == \"\\n\");\n // Issue #1128\n if (brKludge && offset == node.nodeValue.length) {\n for (let scan = node, after; scan; scan = scan.parentNode) {\n if (after = scan.nextSibling) {\n if (after.nodeName == \"BR\")\n anchorDOM = headDOM = { node: after.parentNode, offset: domIndex(after) + 1 };\n break;\n }\n let desc = scan.pmViewDesc;\n if (desc && desc.node && desc.node.isBlock)\n break;\n }\n }\n }\n else {\n let prev = node.childNodes[offset - 1];\n brKludge = prev && (prev.nodeName == \"BR\" || prev.contentEditable == \"false\");\n }\n }\n // Firefox can act strangely when the selection is in front of an\n // uneditable node. See #1163 and https://bugzilla.mozilla.org/show_bug.cgi?id=1709536\n if (gecko && domSel.focusNode && domSel.focusNode != headDOM.node && domSel.focusNode.nodeType == 1) {\n let after = domSel.focusNode.childNodes[domSel.focusOffset];\n if (after && after.contentEditable == \"false\")\n force = true;\n }\n if (!(force || brKludge && safari) &&\n isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset) &&\n isEquivalentPosition(headDOM.node, headDOM.offset, domSel.focusNode, domSel.focusOffset))\n return;\n // Selection.extend can be used to create an 'inverted' selection\n // (one where the focus is before the anchor), but not all\n // browsers support it yet.\n let domSelExtended = false;\n if ((domSel.extend || anchor == head) && !brKludge) {\n domSel.collapse(anchorDOM.node, anchorDOM.offset);\n try {\n if (anchor != head)\n domSel.extend(headDOM.node, headDOM.offset);\n domSelExtended = true;\n }\n catch (_) {\n // In some cases with Chrome the selection is empty after calling\n // collapse, even when it should be valid. This appears to be a bug, but\n // it is difficult to isolate. If this happens fallback to the old path\n // without using extend.\n // Similarly, this could crash on Safari if the editor is hidden, and\n // there was no selection.\n }\n }\n if (!domSelExtended) {\n if (anchor > head) {\n let tmp = anchorDOM;\n anchorDOM = headDOM;\n headDOM = tmp;\n }\n let range = document.createRange();\n range.setEnd(headDOM.node, headDOM.offset);\n range.setStart(anchorDOM.node, anchorDOM.offset);\n domSel.removeAllRanges();\n domSel.addRange(range);\n }\n }\n ignoreMutation(mutation) {\n return !this.contentDOM && mutation.type != \"selection\";\n }\n get contentLost() {\n return this.contentDOM && this.contentDOM != this.dom && !this.dom.contains(this.contentDOM);\n }\n // Remove a subtree of the element tree that has been touched\n // by a DOM change, so that the next update will redraw it.\n markDirty(from, to) {\n for (let offset = 0, i = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (offset == end ? from <= end && to >= offset : from < end && to > offset) {\n let startInside = offset + child.border, endInside = end - child.border;\n if (from >= startInside && to <= endInside) {\n this.dirty = from == offset || to == end ? CONTENT_DIRTY : CHILD_DIRTY;\n if (from == startInside && to == endInside &&\n (child.contentLost || child.dom.parentNode != this.contentDOM))\n child.dirty = NODE_DIRTY;\n else\n child.markDirty(from - startInside, to - startInside);\n return;\n }\n else {\n child.dirty = child.dom == child.contentDOM && child.dom.parentNode == this.contentDOM && !child.children.length\n ? CONTENT_DIRTY : NODE_DIRTY;\n }\n }\n offset = end;\n }\n this.dirty = CONTENT_DIRTY;\n }\n markParentsDirty() {\n let level = 1;\n for (let node = this.parent; node; node = node.parent, level++) {\n let dirty = level == 1 ? CONTENT_DIRTY : CHILD_DIRTY;\n if (node.dirty < dirty)\n node.dirty = dirty;\n }\n }\n get domAtom() { return false; }\n get ignoreForCoords() { return false; }\n isText(text) { return false; }\n}\n// A widget desc represents a widget decoration, which is a DOM node\n// drawn between the document nodes.\nclass WidgetViewDesc extends ViewDesc {\n constructor(parent, widget, view, pos) {\n let self, dom = widget.type.toDOM;\n if (typeof dom == \"function\")\n dom = dom(view, () => {\n if (!self)\n return pos;\n if (self.parent)\n return self.parent.posBeforeChild(self);\n });\n if (!widget.type.spec.raw) {\n if (dom.nodeType != 1) {\n let wrap = document.createElement(\"span\");\n wrap.appendChild(dom);\n dom = wrap;\n }\n dom.contentEditable = \"false\";\n dom.classList.add(\"ProseMirror-widget\");\n }\n super(parent, [], dom, null);\n this.widget = widget;\n this.widget = widget;\n self = this;\n }\n matchesWidget(widget) {\n return this.dirty == NOT_DIRTY && widget.type.eq(this.widget.type);\n }\n parseRule() { return { ignore: true }; }\n stopEvent(event) {\n let stop = this.widget.spec.stopEvent;\n return stop ? stop(event) : false;\n }\n ignoreMutation(mutation) {\n return mutation.type != \"selection\" || this.widget.spec.ignoreSelection;\n }\n destroy() {\n this.widget.type.destroy(this.dom);\n super.destroy();\n }\n get domAtom() { return true; }\n get side() { return this.widget.type.side; }\n}\nclass CompositionViewDesc extends ViewDesc {\n constructor(parent, dom, textDOM, text) {\n super(parent, [], dom, null);\n this.textDOM = textDOM;\n this.text = text;\n }\n get size() { return this.text.length; }\n localPosFromDOM(dom, offset) {\n if (dom != this.textDOM)\n return this.posAtStart + (offset ? this.size : 0);\n return this.posAtStart + offset;\n }\n domFromPos(pos) {\n return { node: this.textDOM, offset: pos };\n }\n ignoreMutation(mut) {\n return mut.type === 'characterData' && mut.target.nodeValue == mut.oldValue;\n }\n}\n// A mark desc represents a mark. May have multiple children,\n// depending on how the mark is split. Note that marks are drawn using\n// a fixed nesting order, for simplicity and predictability, so in\n// some cases they will be split more often than would appear\n// necessary.\nclass MarkViewDesc extends ViewDesc {\n constructor(parent, mark, dom, contentDOM) {\n super(parent, [], dom, contentDOM);\n this.mark = mark;\n }\n static create(parent, mark, inline, view) {\n let custom = view.nodeViews[mark.type.name];\n let spec = custom && custom(mark, view, inline);\n if (!spec || !spec.dom)\n spec = prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"DOMSerializer\"].renderSpec(document, mark.type.spec.toDOM(mark, inline));\n return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom);\n }\n parseRule() {\n if ((this.dirty & NODE_DIRTY) || this.mark.type.spec.reparseInView)\n return null;\n return { mark: this.mark.type.name, attrs: this.mark.attrs, contentElement: this.contentDOM };\n }\n matchesMark(mark) { return this.dirty != NODE_DIRTY && this.mark.eq(mark); }\n markDirty(from, to) {\n super.markDirty(from, to);\n // Move dirty info to nearest node view\n if (this.dirty != NOT_DIRTY) {\n let parent = this.parent;\n while (!parent.node)\n parent = parent.parent;\n if (parent.dirty < this.dirty)\n parent.dirty = this.dirty;\n this.dirty = NOT_DIRTY;\n }\n }\n slice(from, to, view) {\n let copy = MarkViewDesc.create(this.parent, this.mark, true, view);\n let nodes = this.children, size = this.size;\n if (to < size)\n nodes = replaceNodes(nodes, to, size, view);\n if (from > 0)\n nodes = replaceNodes(nodes, 0, from, view);\n for (let i = 0; i < nodes.length; i++)\n nodes[i].parent = copy;\n copy.children = nodes;\n return copy;\n }\n}\n// Node view descs are the main, most common type of view desc, and\n// correspond to an actual node in the document. Unlike mark descs,\n// they populate their child array themselves.\nclass NodeViewDesc extends ViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos) {\n super(parent, [], dom, contentDOM);\n this.node = node;\n this.outerDeco = outerDeco;\n this.innerDeco = innerDeco;\n this.nodeDOM = nodeDOM;\n }\n // By default, a node is rendered using the `toDOM` method from the\n // node type spec. But client code can use the `nodeViews` spec to\n // supply a custom node view, which can influence various aspects of\n // the way the node works.\n //\n // (Using subclassing for this was intentionally decided against,\n // since it'd require exposing a whole slew of finicky\n // implementation details to the user code that they probably will\n // never need.)\n static create(parent, node, outerDeco, innerDeco, view, pos) {\n let custom = view.nodeViews[node.type.name], descObj;\n let spec = custom && custom(node, view, () => {\n // (This is a function that allows the custom view to find its\n // own position)\n if (!descObj)\n return pos;\n if (descObj.parent)\n return descObj.parent.posBeforeChild(descObj);\n }, outerDeco, innerDeco);\n let dom = spec && spec.dom, contentDOM = spec && spec.contentDOM;\n if (node.isText) {\n if (!dom)\n dom = document.createTextNode(node.text);\n else if (dom.nodeType != 3)\n throw new RangeError(\"Text must be rendered as a DOM text node\");\n }\n else if (!dom) {\n ({ dom, contentDOM } = prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"DOMSerializer\"].renderSpec(document, node.type.spec.toDOM(node)));\n }\n if (!contentDOM && !node.isText && dom.nodeName != \"BR\") { // Chrome gets confused by <br contenteditable=false>\n if (!dom.hasAttribute(\"contenteditable\"))\n dom.contentEditable = \"false\";\n if (node.type.spec.draggable)\n dom.draggable = true;\n }\n let nodeDOM = dom;\n dom = applyOuterDeco(dom, outerDeco, node);\n if (spec)\n return descObj = new CustomNodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM || null, nodeDOM, spec, view, pos + 1);\n else if (node.isText)\n return new TextViewDesc(parent, node, outerDeco, innerDeco, dom, nodeDOM, view);\n else\n return new NodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM || null, nodeDOM, view, pos + 1);\n }\n parseRule() {\n // Experimental kludge to allow opt-in re-parsing of nodes\n if (this.node.type.spec.reparseInView)\n return null;\n // FIXME the assumption that this can always return the current\n // attrs means that if the user somehow manages to change the\n // attrs in the dom, that won't be picked up. Not entirely sure\n // whether this is a problem\n let rule = { node: this.node.type.name, attrs: this.node.attrs };\n if (this.node.type.whitespace == \"pre\")\n rule.preserveWhitespace = \"full\";\n if (!this.contentDOM) {\n rule.getContent = () => this.node.content;\n }\n else if (!this.contentLost) {\n rule.contentElement = this.contentDOM;\n }\n else {\n // Chrome likes to randomly recreate parent nodes when\n // backspacing things. When that happens, this tries to find the\n // new parent.\n for (let i = this.children.length - 1; i >= 0; i--) {\n let child = this.children[i];\n if (this.dom.contains(child.dom.parentNode)) {\n rule.contentElement = child.dom.parentNode;\n break;\n }\n }\n if (!rule.contentElement)\n rule.getContent = () => prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Fragment\"].empty;\n }\n return rule;\n }\n matchesNode(node, outerDeco, innerDeco) {\n return this.dirty == NOT_DIRTY && node.eq(this.node) &&\n sameOuterDeco(outerDeco, this.outerDeco) && innerDeco.eq(this.innerDeco);\n }\n get size() { return this.node.nodeSize; }\n get border() { return this.node.isLeaf ? 0 : 1; }\n // Syncs `this.children` to match `this.node.content` and the local\n // decorations, possibly introducing nesting for marks. Then, in a\n // separate step, syncs the DOM inside `this.contentDOM` to\n // `this.children`.\n updateChildren(view, pos) {\n let inline = this.node.inlineContent, off = pos;\n let composition = view.composing ? this.localCompositionInfo(view, pos) : null;\n let localComposition = composition && composition.pos > -1 ? composition : null;\n let compositionInChild = composition && composition.pos < 0;\n let updater = new ViewTreeUpdater(this, localComposition && localComposition.node, view);\n iterDeco(this.node, this.innerDeco, (widget, i, insideNode) => {\n if (widget.spec.marks)\n updater.syncToMarks(widget.spec.marks, inline, view);\n else if (widget.type.side >= 0 && !insideNode)\n updater.syncToMarks(i == this.node.childCount ? prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Mark\"].none : this.node.child(i).marks, inline, view);\n // If the next node is a desc matching this widget, reuse it,\n // otherwise insert the widget as a new view desc.\n updater.placeWidget(widget, view, off);\n }, (child, outerDeco, innerDeco, i) => {\n // Make sure the wrapping mark descs match the node's marks.\n updater.syncToMarks(child.marks, inline, view);\n // Try several strategies for drawing this node\n let compIndex;\n if (updater.findNodeMatch(child, outerDeco, innerDeco, i)) ;\n else if (compositionInChild && view.state.selection.from > off &&\n view.state.selection.to < off + child.nodeSize &&\n (compIndex = updater.findIndexWithChild(composition.node)) > -1 &&\n updater.updateNodeAt(child, outerDeco, innerDeco, compIndex, view)) ;\n else if (updater.updateNextNode(child, outerDeco, innerDeco, view, i, off)) ;\n else {\n // Add it as a new view\n updater.addNode(child, outerDeco, innerDeco, view, off);\n }\n off += child.nodeSize;\n });\n // Drop all remaining descs after the current position.\n updater.syncToMarks([], inline, view);\n if (this.node.isTextblock)\n updater.addTextblockHacks();\n updater.destroyRest();\n // Sync the DOM if anything changed\n if (updater.changed || this.dirty == CONTENT_DIRTY) {\n // May have to protect focused DOM from being changed if a composition is active\n if (localComposition)\n this.protectLocalComposition(view, localComposition);\n renderDescs(this.contentDOM, this.children, view);\n if (ios)\n iosHacks(this.dom);\n }\n }\n localCompositionInfo(view, pos) {\n // Only do something if both the selection and a focused text node\n // are inside of this node\n let { from, to } = view.state.selection;\n if (!(view.state.selection instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"TextSelection\"]) || from < pos || to > pos + this.node.content.size)\n return null;\n let textNode = view.input.compositionNode;\n if (!textNode || !this.dom.contains(textNode.parentNode))\n return null;\n if (this.node.inlineContent) {\n // Find the text in the focused node in the node, stop if it's not\n // there (may have been modified through other means, in which\n // case it should overwritten)\n let text = textNode.nodeValue;\n let textPos = findTextInFragment(this.node.content, text, from - pos, to - pos);\n return textPos < 0 ? null : { node: textNode, pos: textPos, text };\n }\n else {\n return { node: textNode, pos: -1, text: \"\" };\n }\n }\n protectLocalComposition(view, { node, pos, text }) {\n // The node is already part of a local view desc, leave it there\n if (this.getDesc(node))\n return;\n // Create a composition view for the orphaned nodes\n let topNode = node;\n for (;; topNode = topNode.parentNode) {\n if (topNode.parentNode == this.contentDOM)\n break;\n while (topNode.previousSibling)\n topNode.parentNode.removeChild(topNode.previousSibling);\n while (topNode.nextSibling)\n topNode.parentNode.removeChild(topNode.nextSibling);\n if (topNode.pmViewDesc)\n topNode.pmViewDesc = undefined;\n }\n let desc = new CompositionViewDesc(this, topNode, node, text);\n view.input.compositionNodes.push(desc);\n // Patch up this.children to contain the composition view\n this.children = replaceNodes(this.children, pos, pos + text.length, view, desc);\n }\n // If this desc must be updated to match the given node decoration,\n // do so and return true.\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY ||\n !node.sameMarkup(this.node))\n return false;\n this.updateInner(node, outerDeco, innerDeco, view);\n return true;\n }\n updateInner(node, outerDeco, innerDeco, view) {\n this.updateOuterDeco(outerDeco);\n this.node = node;\n this.innerDeco = innerDeco;\n if (this.contentDOM)\n this.updateChildren(view, this.posAtStart);\n this.dirty = NOT_DIRTY;\n }\n updateOuterDeco(outerDeco) {\n if (sameOuterDeco(outerDeco, this.outerDeco))\n return;\n let needsWrap = this.nodeDOM.nodeType != 1;\n let oldDOM = this.dom;\n this.dom = patchOuterDeco(this.dom, this.nodeDOM, computeOuterDeco(this.outerDeco, this.node, needsWrap), computeOuterDeco(outerDeco, this.node, needsWrap));\n if (this.dom != oldDOM) {\n oldDOM.pmViewDesc = undefined;\n this.dom.pmViewDesc = this;\n }\n this.outerDeco = outerDeco;\n }\n // Mark this node as being the selected node.\n selectNode() {\n if (this.nodeDOM.nodeType == 1)\n this.nodeDOM.classList.add(\"ProseMirror-selectednode\");\n if (this.contentDOM || !this.node.type.spec.draggable)\n this.dom.draggable = true;\n }\n // Remove selected node marking from this node.\n deselectNode() {\n if (this.nodeDOM.nodeType == 1) {\n this.nodeDOM.classList.remove(\"ProseMirror-selectednode\");\n if (this.contentDOM || !this.node.type.spec.draggable)\n this.dom.removeAttribute(\"draggable\");\n }\n }\n get domAtom() { return this.node.isAtom; }\n}\n// Create a view desc for the top-level document node, to be exported\n// and used by the view class.\nfunction docViewDesc(doc, outerDeco, innerDeco, dom, view) {\n applyOuterDeco(dom, outerDeco, doc);\n let docView = new NodeViewDesc(undefined, doc, outerDeco, innerDeco, dom, dom, dom, view, 0);\n if (docView.contentDOM)\n docView.updateChildren(view, 0);\n return docView;\n}\nclass TextViewDesc extends NodeViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, nodeDOM, view) {\n super(parent, node, outerDeco, innerDeco, dom, null, nodeDOM, view, 0);\n }\n parseRule() {\n let skip = this.nodeDOM.parentNode;\n while (skip && skip != this.dom && !skip.pmIsDeco)\n skip = skip.parentNode;\n return { skip: (skip || true) };\n }\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY || (this.dirty != NOT_DIRTY && !this.inParent()) ||\n !node.sameMarkup(this.node))\n return false;\n this.updateOuterDeco(outerDeco);\n if ((this.dirty != NOT_DIRTY || node.text != this.node.text) && node.text != this.nodeDOM.nodeValue) {\n this.nodeDOM.nodeValue = node.text;\n if (view.trackWrites == this.nodeDOM)\n view.trackWrites = null;\n }\n this.node = node;\n this.dirty = NOT_DIRTY;\n return true;\n }\n inParent() {\n let parentDOM = this.parent.contentDOM;\n for (let n = this.nodeDOM; n; n = n.parentNode)\n if (n == parentDOM)\n return true;\n return false;\n }\n domFromPos(pos) {\n return { node: this.nodeDOM, offset: pos };\n }\n localPosFromDOM(dom, offset, bias) {\n if (dom == this.nodeDOM)\n return this.posAtStart + Math.min(offset, this.node.text.length);\n return super.localPosFromDOM(dom, offset, bias);\n }\n ignoreMutation(mutation) {\n return mutation.type != \"characterData\" && mutation.type != \"selection\";\n }\n slice(from, to, view) {\n let node = this.node.cut(from, to), dom = document.createTextNode(node.text);\n return new TextViewDesc(this.parent, node, this.outerDeco, this.innerDeco, dom, dom, view);\n }\n markDirty(from, to) {\n super.markDirty(from, to);\n if (this.dom != this.nodeDOM && (from == 0 || to == this.nodeDOM.nodeValue.length))\n this.dirty = NODE_DIRTY;\n }\n get domAtom() { return false; }\n isText(text) { return this.node.text == text; }\n}\n// A dummy desc used to tag trailing BR or IMG nodes created to work\n// around contentEditable terribleness.\nclass TrailingHackViewDesc extends ViewDesc {\n parseRule() { return { ignore: true }; }\n matchesHack(nodeName) { return this.dirty == NOT_DIRTY && this.dom.nodeName == nodeName; }\n get domAtom() { return true; }\n get ignoreForCoords() { return this.dom.nodeName == \"IMG\"; }\n}\n// A separate subclass is used for customized node views, so that the\n// extra checks only have to be made for nodes that are actually\n// customized.\nclass CustomNodeViewDesc extends NodeViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, spec, view, pos) {\n super(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos);\n this.spec = spec;\n }\n // A custom `update` method gets to decide whether the update goes\n // through. If it does, and there's a `contentDOM` node, our logic\n // updates the children.\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY)\n return false;\n if (this.spec.update) {\n let result = this.spec.update(node, outerDeco, innerDeco);\n if (result)\n this.updateInner(node, outerDeco, innerDeco, view);\n return result;\n }\n else if (!this.contentDOM && !node.isLeaf) {\n return false;\n }\n else {\n return super.update(node, outerDeco, innerDeco, view);\n }\n }\n selectNode() {\n this.spec.selectNode ? this.spec.selectNode() : super.selectNode();\n }\n deselectNode() {\n this.spec.deselectNode ? this.spec.deselectNode() : super.deselectNode();\n }\n setSelection(anchor, head, root, force) {\n this.spec.setSelection ? this.spec.setSelection(anchor, head, root)\n : super.setSelection(anchor, head, root, force);\n }\n destroy() {\n if (this.spec.destroy)\n this.spec.destroy();\n super.destroy();\n }\n stopEvent(event) {\n return this.spec.stopEvent ? this.spec.stopEvent(event) : false;\n }\n ignoreMutation(mutation) {\n return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : super.ignoreMutation(mutation);\n }\n}\n// Sync the content of the given DOM node with the nodes associated\n// with the given array of view descs, recursing into mark descs\n// because this should sync the subtree for a whole node at a time.\nfunction renderDescs(parentDOM, descs, view) {\n let dom = parentDOM.firstChild, written = false;\n for (let i = 0; i < descs.length; i++) {\n let desc = descs[i], childDOM = desc.dom;\n if (childDOM.parentNode == parentDOM) {\n while (childDOM != dom) {\n dom = rm(dom);\n written = true;\n }\n dom = dom.nextSibling;\n }\n else {\n written = true;\n parentDOM.insertBefore(childDOM, dom);\n }\n if (desc instanceof MarkViewDesc) {\n let pos = dom ? dom.previousSibling : parentDOM.lastChild;\n renderDescs(desc.contentDOM, desc.children, view);\n dom = pos ? pos.nextSibling : parentDOM.firstChild;\n }\n }\n while (dom) {\n dom = rm(dom);\n written = true;\n }\n if (written && view.trackWrites == parentDOM)\n view.trackWrites = null;\n}\nconst OuterDecoLevel = function (nodeName) {\n if (nodeName)\n this.nodeName = nodeName;\n};\nOuterDecoLevel.prototype = Object.create(null);\nconst noDeco = [new OuterDecoLevel];\nfunction computeOuterDeco(outerDeco, node, needsWrap) {\n if (outerDeco.length == 0)\n return noDeco;\n let top = needsWrap ? noDeco[0] : new OuterDecoLevel, result = [top];\n for (let i = 0; i < outerDeco.length; i++) {\n let attrs = outerDeco[i].type.attrs;\n if (!attrs)\n continue;\n if (attrs.nodeName)\n result.push(top = new OuterDecoLevel(attrs.nodeName));\n for (let name in attrs) {\n let val = attrs[name];\n if (val == null)\n continue;\n if (needsWrap && result.length == 1)\n result.push(top = new OuterDecoLevel(node.isInline ? \"span\" : \"div\"));\n if (name == \"class\")\n top.class = (top.class ? top.class + \" \" : \"\") + val;\n else if (name == \"style\")\n top.style = (top.style ? top.style + \";\" : \"\") + val;\n else if (name != \"nodeName\")\n top[name] = val;\n }\n }\n return result;\n}\nfunction patchOuterDeco(outerDOM, nodeDOM, prevComputed, curComputed) {\n // Shortcut for trivial case\n if (prevComputed == noDeco && curComputed == noDeco)\n return nodeDOM;\n let curDOM = nodeDOM;\n for (let i = 0; i < curComputed.length; i++) {\n let deco = curComputed[i], prev = prevComputed[i];\n if (i) {\n let parent;\n if (prev && prev.nodeName == deco.nodeName && curDOM != outerDOM &&\n (parent = curDOM.parentNode) && parent.nodeName.toLowerCase() == deco.nodeName) {\n curDOM = parent;\n }\n else {\n parent = document.createElement(deco.nodeName);\n parent.pmIsDeco = true;\n parent.appendChild(curDOM);\n prev = noDeco[0];\n curDOM = parent;\n }\n }\n patchAttributes(curDOM, prev || noDeco[0], deco);\n }\n return curDOM;\n}\nfunction patchAttributes(dom, prev, cur) {\n for (let name in prev)\n if (name != \"class\" && name != \"style\" && name != \"nodeName\" && !(name in cur))\n dom.removeAttribute(name);\n for (let name in cur)\n if (name != \"class\" && name != \"style\" && name != \"nodeName\" && cur[name] != prev[name])\n dom.setAttribute(name, cur[name]);\n if (prev.class != cur.class) {\n let prevList = prev.class ? prev.class.split(\" \").filter(Boolean) : [];\n let curList = cur.class ? cur.class.split(\" \").filter(Boolean) : [];\n for (let i = 0; i < prevList.length; i++)\n if (curList.indexOf(prevList[i]) == -1)\n dom.classList.remove(prevList[i]);\n for (let i = 0; i < curList.length; i++)\n if (prevList.indexOf(curList[i]) == -1)\n dom.classList.add(curList[i]);\n if (dom.classList.length == 0)\n dom.removeAttribute(\"class\");\n }\n if (prev.style != cur.style) {\n if (prev.style) {\n let prop = /\\s*([\\w\\-\\xa1-\\uffff]+)\\s*:(?:\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|\\(.*?\\)|[^;])*/g, m;\n while (m = prop.exec(prev.style))\n dom.style.removeProperty(m[1]);\n }\n if (cur.style)\n dom.style.cssText += cur.style;\n }\n}\nfunction applyOuterDeco(dom, deco, node) {\n return patchOuterDeco(dom, dom, noDeco, computeOuterDeco(deco, node, dom.nodeType != 1));\n}\nfunction sameOuterDeco(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!a[i].type.eq(b[i].type))\n return false;\n return true;\n}\n// Remove a DOM node and return its next sibling.\nfunction rm(dom) {\n let next = dom.nextSibling;\n dom.parentNode.removeChild(dom);\n return next;\n}\n// Helper class for incrementally updating a tree of mark descs and\n// the widget and node descs inside of them.\nclass ViewTreeUpdater {\n constructor(top, lock, view) {\n this.lock = lock;\n this.view = view;\n // Index into `this.top`'s child array, represents the current\n // update position.\n this.index = 0;\n // When entering a mark, the current top and index are pushed\n // onto this.\n this.stack = [];\n // Tracks whether anything was changed\n this.changed = false;\n this.top = top;\n this.preMatch = preMatch(top.node.content, top);\n }\n // Destroy and remove the children between the given indices in\n // `this.top`.\n destroyBetween(start, end) {\n if (start == end)\n return;\n for (let i = start; i < end; i++)\n this.top.children[i].destroy();\n this.top.children.splice(start, end - start);\n this.changed = true;\n }\n // Destroy all remaining children in `this.top`.\n destroyRest() {\n this.destroyBetween(this.index, this.top.children.length);\n }\n // Sync the current stack of mark descs with the given array of\n // marks, reusing existing mark descs when possible.\n syncToMarks(marks, inline, view) {\n let keep = 0, depth = this.stack.length >> 1;\n let maxKeep = Math.min(depth, marks.length);\n while (keep < maxKeep &&\n (keep == depth - 1 ? this.top : this.stack[(keep + 1) << 1])\n .matchesMark(marks[keep]) && marks[keep].type.spec.spanning !== false)\n keep++;\n while (keep < depth) {\n this.destroyRest();\n this.top.dirty = NOT_DIRTY;\n this.index = this.stack.pop();\n this.top = this.stack.pop();\n depth--;\n }\n while (depth < marks.length) {\n this.stack.push(this.top, this.index + 1);\n let found = -1;\n for (let i = this.index; i < Math.min(this.index + 3, this.top.children.length); i++) {\n let next = this.top.children[i];\n if (next.matchesMark(marks[depth]) && !this.isLocked(next.dom)) {\n found = i;\n break;\n }\n }\n if (found > -1) {\n if (found > this.index) {\n this.changed = true;\n this.destroyBetween(this.index, found);\n }\n this.top = this.top.children[this.index];\n }\n else {\n let markDesc = MarkViewDesc.create(this.top, marks[depth], inline, view);\n this.top.children.splice(this.index, 0, markDesc);\n this.top = markDesc;\n this.changed = true;\n }\n this.index = 0;\n depth++;\n }\n }\n // Try to find a node desc matching the given data. Skip over it and\n // return true when successful.\n findNodeMatch(node, outerDeco, innerDeco, index) {\n let found = -1, targetDesc;\n if (index >= this.preMatch.index &&\n (targetDesc = this.preMatch.matches[index - this.preMatch.index]).parent == this.top &&\n targetDesc.matchesNode(node, outerDeco, innerDeco)) {\n found = this.top.children.indexOf(targetDesc, this.index);\n }\n else {\n for (let i = this.index, e = Math.min(this.top.children.length, i + 5); i < e; i++) {\n let child = this.top.children[i];\n if (child.matchesNode(node, outerDeco, innerDeco) && !this.preMatch.matched.has(child)) {\n found = i;\n break;\n }\n }\n }\n if (found < 0)\n return false;\n this.destroyBetween(this.index, found);\n this.index++;\n return true;\n }\n updateNodeAt(node, outerDeco, innerDeco, index, view) {\n let child = this.top.children[index];\n if (child.dirty == NODE_DIRTY && child.dom == child.contentDOM)\n child.dirty = CONTENT_DIRTY;\n if (!child.update(node, outerDeco, innerDeco, view))\n return false;\n this.destroyBetween(this.index, index);\n this.index++;\n return true;\n }\n findIndexWithChild(domNode) {\n for (;;) {\n let parent = domNode.parentNode;\n if (!parent)\n return -1;\n if (parent == this.top.contentDOM) {\n let desc = domNode.pmViewDesc;\n if (desc)\n for (let i = this.index; i < this.top.children.length; i++) {\n if (this.top.children[i] == desc)\n return i;\n }\n return -1;\n }\n domNode = parent;\n }\n }\n // Try to update the next node, if any, to the given data. Checks\n // pre-matches to avoid overwriting nodes that could still be used.\n updateNextNode(node, outerDeco, innerDeco, view, index, pos) {\n for (let i = this.index; i < this.top.children.length; i++) {\n let next = this.top.children[i];\n if (next instanceof NodeViewDesc) {\n let preMatch = this.preMatch.matched.get(next);\n if (preMatch != null && preMatch != index)\n return false;\n let nextDOM = next.dom, updated;\n // Can't update if nextDOM is or contains this.lock, except if\n // it's a text node whose content already matches the new text\n // and whose decorations match the new ones.\n let locked = this.isLocked(nextDOM) &&\n !(node.isText && next.node && next.node.isText && next.nodeDOM.nodeValue == node.text &&\n next.dirty != NODE_DIRTY && sameOuterDeco(outerDeco, next.outerDeco));\n if (!locked && next.update(node, outerDeco, innerDeco, view)) {\n this.destroyBetween(this.index, i);\n if (next.dom != nextDOM)\n this.changed = true;\n this.index++;\n return true;\n }\n else if (!locked && (updated = this.recreateWrapper(next, node, outerDeco, innerDeco, view, pos))) {\n this.top.children[this.index] = updated;\n if (updated.contentDOM) {\n updated.dirty = CONTENT_DIRTY;\n updated.updateChildren(view, pos + 1);\n updated.dirty = NOT_DIRTY;\n }\n this.changed = true;\n this.index++;\n return true;\n }\n break;\n }\n }\n return false;\n }\n // When a node with content is replaced by a different node with\n // identical content, move over its children.\n recreateWrapper(next, node, outerDeco, innerDeco, view, pos) {\n if (next.dirty || node.isAtom || !next.children.length ||\n !next.node.content.eq(node.content))\n return null;\n let wrapper = NodeViewDesc.create(this.top, node, outerDeco, innerDeco, view, pos);\n if (wrapper.contentDOM) {\n wrapper.children = next.children;\n next.children = [];\n for (let ch of wrapper.children)\n ch.parent = wrapper;\n }\n next.destroy();\n return wrapper;\n }\n // Insert the node as a newly created node desc.\n addNode(node, outerDeco, innerDeco, view, pos) {\n let desc = NodeViewDesc.create(this.top, node, outerDeco, innerDeco, view, pos);\n if (desc.contentDOM)\n desc.updateChildren(view, pos + 1);\n this.top.children.splice(this.index++, 0, desc);\n this.changed = true;\n }\n placeWidget(widget, view, pos) {\n let next = this.index < this.top.children.length ? this.top.children[this.index] : null;\n if (next && next.matchesWidget(widget) &&\n (widget == next.widget || !next.widget.type.toDOM.parentNode)) {\n this.index++;\n }\n else {\n let desc = new WidgetViewDesc(this.top, widget, view, pos);\n this.top.children.splice(this.index++, 0, desc);\n this.changed = true;\n }\n }\n // Make sure a textblock looks and behaves correctly in\n // contentEditable.\n addTextblockHacks() {\n let lastChild = this.top.children[this.index - 1], parent = this.top;\n while (lastChild instanceof MarkViewDesc) {\n parent = lastChild;\n lastChild = parent.children[parent.children.length - 1];\n }\n if (!lastChild || // Empty textblock\n !(lastChild instanceof TextViewDesc) ||\n /\\n$/.test(lastChild.node.text) ||\n (this.view.requiresGeckoHackNode && /\\s$/.test(lastChild.node.text))) {\n // Avoid bugs in Safari's cursor drawing (#1165) and Chrome's mouse selection (#1152)\n if ((safari || chrome) && lastChild && lastChild.dom.contentEditable == \"false\")\n this.addHackNode(\"IMG\", parent);\n this.addHackNode(\"BR\", this.top);\n }\n }\n addHackNode(nodeName, parent) {\n if (parent == this.top && this.index < parent.children.length && parent.children[this.index].matchesHack(nodeName)) {\n this.index++;\n }\n else {\n let dom = document.createElement(nodeName);\n if (nodeName == \"IMG\") {\n dom.className = \"ProseMirror-separator\";\n dom.alt = \"\";\n }\n if (nodeName == \"BR\")\n dom.className = \"ProseMirror-trailingBreak\";\n let hack = new TrailingHackViewDesc(this.top, [], dom, null);\n if (parent != this.top)\n parent.children.push(hack);\n else\n parent.children.splice(this.index++, 0, hack);\n this.changed = true;\n }\n }\n isLocked(node) {\n return this.lock && (node == this.lock || node.nodeType == 1 && node.contains(this.lock.parentNode));\n }\n}\n// Iterate from the end of the fragment and array of descs to find\n// directly matching ones, in order to avoid overeagerly reusing those\n// for other nodes. Returns the fragment index of the first node that\n// is part of the sequence of matched nodes at the end of the\n// fragment.\nfunction preMatch(frag, parentDesc) {\n let curDesc = parentDesc, descI = curDesc.children.length;\n let fI = frag.childCount, matched = new Map, matches = [];\n outer: while (fI > 0) {\n let desc;\n for (;;) {\n if (descI) {\n let next = curDesc.children[descI - 1];\n if (next instanceof MarkViewDesc) {\n curDesc = next;\n descI = next.children.length;\n }\n else {\n desc = next;\n descI--;\n break;\n }\n }\n else if (curDesc == parentDesc) {\n break outer;\n }\n else {\n // FIXME\n descI = curDesc.parent.children.indexOf(curDesc);\n curDesc = curDesc.parent;\n }\n }\n let node = desc.node;\n if (!node)\n continue;\n if (node != frag.child(fI - 1))\n break;\n --fI;\n matched.set(desc, fI);\n matches.push(desc);\n }\n return { index: fI, matched, matches: matches.reverse() };\n}\nfunction compareSide(a, b) {\n return a.type.side - b.type.side;\n}\n// This function abstracts iterating over the nodes and decorations in\n// a fragment. Calls `onNode` for each node, with its local and child\n// decorations. Splits text nodes when there is a decoration starting\n// or ending inside of them. Calls `onWidget` for each widget.\nfunction iterDeco(parent, deco, onWidget, onNode) {\n let locals = deco.locals(parent), offset = 0;\n // Simple, cheap variant for when there are no local decorations\n if (locals.length == 0) {\n for (let i = 0; i < parent.childCount; i++) {\n let child = parent.child(i);\n onNode(child, locals, deco.forChild(offset, child), i);\n offset += child.nodeSize;\n }\n return;\n }\n let decoIndex = 0, active = [], restNode = null;\n for (let parentIndex = 0;;) {\n let widget, widgets;\n while (decoIndex < locals.length && locals[decoIndex].to == offset) {\n let next = locals[decoIndex++];\n if (next.widget) {\n if (!widget)\n widget = next;\n else\n (widgets || (widgets = [widget])).push(next);\n }\n }\n if (widget) {\n if (widgets) {\n widgets.sort(compareSide);\n for (let i = 0; i < widgets.length; i++)\n onWidget(widgets[i], parentIndex, !!restNode);\n }\n else {\n onWidget(widget, parentIndex, !!restNode);\n }\n }\n let child, index;\n if (restNode) {\n index = -1;\n child = restNode;\n restNode = null;\n }\n else if (parentIndex < parent.childCount) {\n index = parentIndex;\n child = parent.child(parentIndex++);\n }\n else {\n break;\n }\n for (let i = 0; i < active.length; i++)\n if (active[i].to <= offset)\n active.splice(i--, 1);\n while (decoIndex < locals.length && locals[decoIndex].from <= offset && locals[decoIndex].to > offset)\n active.push(locals[decoIndex++]);\n let end = offset + child.nodeSize;\n if (child.isText) {\n let cutAt = end;\n if (decoIndex < locals.length && locals[decoIndex].from < cutAt)\n cutAt = locals[decoIndex].from;\n for (let i = 0; i < active.length; i++)\n if (active[i].to < cutAt)\n cutAt = active[i].to;\n if (cutAt < end) {\n restNode = child.cut(cutAt - offset);\n child = child.cut(0, cutAt - offset);\n end = cutAt;\n index = -1;\n }\n }\n else {\n while (decoIndex < locals.length && locals[decoIndex].to < end)\n decoIndex++;\n }\n let outerDeco = child.isInline && !child.isLeaf ? active.filter(d => !d.inline) : active.slice();\n onNode(child, outerDeco, deco.forChild(offset, child), index);\n offset = end;\n }\n}\n// List markers in Mobile Safari will mysteriously disappear\n// sometimes. This works around that.\nfunction iosHacks(dom) {\n if (dom.nodeName == \"UL\" || dom.nodeName == \"OL\") {\n let oldCSS = dom.style.cssText;\n dom.style.cssText = oldCSS + \"; list-style: square !important\";\n window.getComputedStyle(dom).listStyle;\n dom.style.cssText = oldCSS;\n }\n}\n// Find a piece of text in an inline fragment, overlapping from-to\nfunction findTextInFragment(frag, text, from, to) {\n for (let i = 0, pos = 0; i < frag.childCount && pos <= to;) {\n let child = frag.child(i++), childStart = pos;\n pos += child.nodeSize;\n if (!child.isText)\n continue;\n let str = child.text;\n while (i < frag.childCount) {\n let next = frag.child(i++);\n pos += next.nodeSize;\n if (!next.isText)\n break;\n str += next.text;\n }\n if (pos >= from) {\n if (pos >= to && str.slice(to - text.length - childStart, to - childStart) == text)\n return to - text.length;\n let found = childStart < to ? str.lastIndexOf(text, to - childStart - 1) : -1;\n if (found >= 0 && found + text.length + childStart >= from)\n return childStart + found;\n if (from == to && str.length >= (to + text.length) - childStart &&\n str.slice(to - childStart, to - childStart + text.length) == text)\n return to;\n }\n }\n return -1;\n}\n// Replace range from-to in an array of view descs with replacement\n// (may be null to just delete). This goes very much against the grain\n// of the rest of this code, which tends to create nodes with the\n// right shape in one go, rather than messing with them after\n// creation, but is necessary in the composition hack.\nfunction replaceNodes(nodes, from, to, view, replacement) {\n let result = [];\n for (let i = 0, off = 0; i < nodes.length; i++) {\n let child = nodes[i], start = off, end = off += child.size;\n if (start >= to || end <= from) {\n result.push(child);\n }\n else {\n if (start < from)\n result.push(child.slice(0, from - start, view));\n if (replacement) {\n result.push(replacement);\n replacement = undefined;\n }\n if (end > to)\n result.push(child.slice(to - start, child.size, view));\n }\n }\n return result;\n}\n\nfunction selectionFromDOM(view, origin = null) {\n let domSel = view.domSelectionRange(), doc = view.state.doc;\n if (!domSel.focusNode)\n return null;\n let nearestDesc = view.docView.nearestDesc(domSel.focusNode), inWidget = nearestDesc && nearestDesc.size == 0;\n let head = view.docView.posFromDOM(domSel.focusNode, domSel.focusOffset, 1);\n if (head < 0)\n return null;\n let $head = doc.resolve(head), $anchor, selection;\n if (selectionCollapsed(domSel)) {\n $anchor = $head;\n while (nearestDesc && !nearestDesc.node)\n nearestDesc = nearestDesc.parent;\n let nearestDescNode = nearestDesc.node;\n if (nearestDesc && nearestDescNode.isAtom && prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"].isSelectable(nearestDescNode) && nearestDesc.parent\n && !(nearestDescNode.isInline && isOnEdge(domSel.focusNode, domSel.focusOffset, nearestDesc.dom))) {\n let pos = nearestDesc.posBefore;\n selection = new prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"](head == pos ? $head : doc.resolve(pos));\n }\n }\n else {\n let anchor = view.docView.posFromDOM(domSel.anchorNode, domSel.anchorOffset, 1);\n if (anchor < 0)\n return null;\n $anchor = doc.resolve(anchor);\n }\n if (!selection) {\n let bias = origin == \"pointer\" || (view.state.selection.head < $head.pos && !inWidget) ? 1 : -1;\n selection = selectionBetween(view, $anchor, $head, bias);\n }\n return selection;\n}\nfunction editorOwnsSelection(view) {\n return view.editable ? view.hasFocus() :\n hasSelection(view) && document.activeElement && document.activeElement.contains(view.dom);\n}\nfunction selectionToDOM(view, force = false) {\n let sel = view.state.selection;\n syncNodeSelection(view, sel);\n if (!editorOwnsSelection(view))\n return;\n // The delayed drag selection causes issues with Cell Selections\n // in Safari. And the drag selection delay is to workarond issues\n // which only present in Chrome.\n if (!force && view.input.mouseDown && view.input.mouseDown.allowDefault && chrome) {\n let domSel = view.domSelectionRange(), curSel = view.domObserver.currentSelection;\n if (domSel.anchorNode && curSel.anchorNode &&\n isEquivalentPosition(domSel.anchorNode, domSel.anchorOffset, curSel.anchorNode, curSel.anchorOffset)) {\n view.input.mouseDown.delayedSelectionSync = true;\n view.domObserver.setCurSelection();\n return;\n }\n }\n view.domObserver.disconnectSelection();\n if (view.cursorWrapper) {\n selectCursorWrapper(view);\n }\n else {\n let { anchor, head } = sel, resetEditableFrom, resetEditableTo;\n if (brokenSelectBetweenUneditable && !(sel instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"TextSelection\"])) {\n if (!sel.$from.parent.inlineContent)\n resetEditableFrom = temporarilyEditableNear(view, sel.from);\n if (!sel.empty && !sel.$from.parent.inlineContent)\n resetEditableTo = temporarilyEditableNear(view, sel.to);\n }\n view.docView.setSelection(anchor, head, view.root, force);\n if (brokenSelectBetweenUneditable) {\n if (resetEditableFrom)\n resetEditable(resetEditableFrom);\n if (resetEditableTo)\n resetEditable(resetEditableTo);\n }\n if (sel.visible) {\n view.dom.classList.remove(\"ProseMirror-hideselection\");\n }\n else {\n view.dom.classList.add(\"ProseMirror-hideselection\");\n if (\"onselectionchange\" in document)\n removeClassOnSelectionChange(view);\n }\n }\n view.domObserver.setCurSelection();\n view.domObserver.connectSelection();\n}\n// Kludge to work around Webkit not allowing a selection to start/end\n// between non-editable block nodes. We briefly make something\n// editable, set the selection, then set it uneditable again.\nconst brokenSelectBetweenUneditable = safari || chrome && chrome_version < 63;\nfunction temporarilyEditableNear(view, pos) {\n let { node, offset } = view.docView.domFromPos(pos, 0);\n let after = offset < node.childNodes.length ? node.childNodes[offset] : null;\n let before = offset ? node.childNodes[offset - 1] : null;\n if (safari && after && after.contentEditable == \"false\")\n return setEditable(after);\n if ((!after || after.contentEditable == \"false\") &&\n (!before || before.contentEditable == \"false\")) {\n if (after)\n return setEditable(after);\n else if (before)\n return setEditable(before);\n }\n}\nfunction setEditable(element) {\n element.contentEditable = \"true\";\n if (safari && element.draggable) {\n element.draggable = false;\n element.wasDraggable = true;\n }\n return element;\n}\nfunction resetEditable(element) {\n element.contentEditable = \"false\";\n if (element.wasDraggable) {\n element.draggable = true;\n element.wasDraggable = null;\n }\n}\nfunction removeClassOnSelectionChange(view) {\n let doc = view.dom.ownerDocument;\n doc.removeEventListener(\"selectionchange\", view.input.hideSelectionGuard);\n let domSel = view.domSelectionRange();\n let node = domSel.anchorNode, offset = domSel.anchorOffset;\n doc.addEventListener(\"selectionchange\", view.input.hideSelectionGuard = () => {\n if (domSel.anchorNode != node || domSel.anchorOffset != offset) {\n doc.removeEventListener(\"selectionchange\", view.input.hideSelectionGuard);\n setTimeout(() => {\n if (!editorOwnsSelection(view) || view.state.selection.visible)\n view.dom.classList.remove(\"ProseMirror-hideselection\");\n }, 20);\n }\n });\n}\nfunction selectCursorWrapper(view) {\n let domSel = view.domSelection(), range = document.createRange();\n let node = view.cursorWrapper.dom, img = node.nodeName == \"IMG\";\n if (img)\n range.setEnd(node.parentNode, domIndex(node) + 1);\n else\n range.setEnd(node, 0);\n range.collapse(false);\n domSel.removeAllRanges();\n domSel.addRange(range);\n // Kludge to kill 'control selection' in IE11 when selecting an\n // invisible cursor wrapper, since that would result in those weird\n // resize handles and a selection that considers the absolutely\n // positioned wrapper, rather than the root editable node, the\n // focused element.\n if (!img && !view.state.selection.visible && ie && ie_version <= 11) {\n node.disabled = true;\n node.disabled = false;\n }\n}\nfunction syncNodeSelection(view, sel) {\n if (sel instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"]) {\n let desc = view.docView.descAt(sel.from);\n if (desc != view.lastSelectedViewDesc) {\n clearNodeSelection(view);\n if (desc)\n desc.selectNode();\n view.lastSelectedViewDesc = desc;\n }\n }\n else {\n clearNodeSelection(view);\n }\n}\n// Clear all DOM statefulness of the last node selection.\nfunction clearNodeSelection(view) {\n if (view.lastSelectedViewDesc) {\n if (view.lastSelectedViewDesc.parent)\n view.lastSelectedViewDesc.deselectNode();\n view.lastSelectedViewDesc = undefined;\n }\n}\nfunction selectionBetween(view, $anchor, $head, bias) {\n return view.someProp(\"createSelectionBetween\", f => f(view, $anchor, $head))\n || prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"TextSelection\"].between($anchor, $head, bias);\n}\nfunction hasFocusAndSelection(view) {\n if (view.editable && !view.hasFocus())\n return false;\n return hasSelection(view);\n}\nfunction hasSelection(view) {\n let sel = view.domSelectionRange();\n if (!sel.anchorNode)\n return false;\n try {\n // Firefox will raise 'permission denied' errors when accessing\n // properties of `sel.anchorNode` when it's in a generated CSS\n // element.\n return view.dom.contains(sel.anchorNode.nodeType == 3 ? sel.anchorNode.parentNode : sel.anchorNode) &&\n (view.editable || view.dom.contains(sel.focusNode.nodeType == 3 ? sel.focusNode.parentNode : sel.focusNode));\n }\n catch (_) {\n return false;\n }\n}\nfunction anchorInRightPlace(view) {\n let anchorDOM = view.docView.domFromPos(view.state.selection.anchor, 0);\n let domSel = view.domSelectionRange();\n return isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset);\n}\n\nfunction moveSelectionBlock(state, dir) {\n let { $anchor, $head } = state.selection;\n let $side = dir > 0 ? $anchor.max($head) : $anchor.min($head);\n let $start = !$side.parent.inlineContent ? $side : $side.depth ? state.doc.resolve(dir > 0 ? $side.after() : $side.before()) : null;\n return $start && prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"Selection\"].findFrom($start, dir);\n}\nfunction apply(view, sel) {\n view.dispatch(view.state.tr.setSelection(sel).scrollIntoView());\n return true;\n}\nfunction selectHorizontally(view, dir, mods) {\n let sel = view.state.selection;\n if (sel instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"TextSelection\"]) {\n if (mods.indexOf(\"s\") > -1) {\n let { $head } = sel, node = $head.textOffset ? null : dir < 0 ? $head.nodeBefore : $head.nodeAfter;\n if (!node || node.isText || !node.isLeaf)\n return false;\n let $newHead = view.state.doc.resolve($head.pos + node.nodeSize * (dir < 0 ? -1 : 1));\n return apply(view, new prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"TextSelection\"](sel.$anchor, $newHead));\n }\n else if (!sel.empty) {\n return false;\n }\n else if (view.endOfTextblock(dir > 0 ? \"forward\" : \"backward\")) {\n let next = moveSelectionBlock(view.state, dir);\n if (next && (next instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"]))\n return apply(view, next);\n return false;\n }\n else if (!(mac && mods.indexOf(\"m\") > -1)) {\n let $head = sel.$head, node = $head.textOffset ? null : dir < 0 ? $head.nodeBefore : $head.nodeAfter, desc;\n if (!node || node.isText)\n return false;\n let nodePos = dir < 0 ? $head.pos - node.nodeSize : $head.pos;\n if (!(node.isAtom || (desc = view.docView.descAt(nodePos)) && !desc.contentDOM))\n return false;\n if (prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"].isSelectable(node)) {\n return apply(view, new prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"](dir < 0 ? view.state.doc.resolve($head.pos - node.nodeSize) : $head));\n }\n else if (webkit) {\n // Chrome and Safari will introduce extra pointless cursor\n // positions around inline uneditable nodes, so we have to\n // take over and move the cursor past them (#937)\n return apply(view, new prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"TextSelection\"](view.state.doc.resolve(dir < 0 ? nodePos : nodePos + node.nodeSize)));\n }\n else {\n return false;\n }\n }\n }\n else if (sel instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"] && sel.node.isInline) {\n return apply(view, new prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"TextSelection\"](dir > 0 ? sel.$to : sel.$from));\n }\n else {\n let next = moveSelectionBlock(view.state, dir);\n if (next)\n return apply(view, next);\n return false;\n }\n}\nfunction nodeLen(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length;\n}\nfunction isIgnorable(dom, dir) {\n let desc = dom.pmViewDesc;\n return desc && desc.size == 0 && (dir < 0 || dom.nextSibling || dom.nodeName != \"BR\");\n}\nfunction skipIgnoredNodes(view, dir) {\n return dir < 0 ? skipIgnoredNodesBefore(view) : skipIgnoredNodesAfter(view);\n}\n// Make sure the cursor isn't directly after one or more ignored\n// nodes, which will confuse the browser's cursor motion logic.\nfunction skipIgnoredNodesBefore(view) {\n let sel = view.domSelectionRange();\n let node = sel.focusNode, offset = sel.focusOffset;\n if (!node)\n return;\n let moveNode, moveOffset, force = false;\n // Gecko will do odd things when the selection is directly in front\n // of a non-editable node, so in that case, move it into the next\n // node if possible. Issue prosemirror/prosemirror#832.\n if (gecko && node.nodeType == 1 && offset < nodeLen(node) && isIgnorable(node.childNodes[offset], -1))\n force = true;\n for (;;) {\n if (offset > 0) {\n if (node.nodeType != 1) {\n break;\n }\n else {\n let before = node.childNodes[offset - 1];\n if (isIgnorable(before, -1)) {\n moveNode = node;\n moveOffset = --offset;\n }\n else if (before.nodeType == 3) {\n node = before;\n offset = node.nodeValue.length;\n }\n else\n break;\n }\n }\n else if (isBlockNode(node)) {\n break;\n }\n else {\n let prev = node.previousSibling;\n while (prev && isIgnorable(prev, -1)) {\n moveNode = node.parentNode;\n moveOffset = domIndex(prev);\n prev = prev.previousSibling;\n }\n if (!prev) {\n node = node.parentNode;\n if (node == view.dom)\n break;\n offset = 0;\n }\n else {\n node = prev;\n offset = nodeLen(node);\n }\n }\n }\n if (force)\n setSelFocus(view, node, offset);\n else if (moveNode)\n setSelFocus(view, moveNode, moveOffset);\n}\n// Make sure the cursor isn't directly before one or more ignored\n// nodes.\nfunction skipIgnoredNodesAfter(view) {\n let sel = view.domSelectionRange();\n let node = sel.focusNode, offset = sel.focusOffset;\n if (!node)\n return;\n let len = nodeLen(node);\n let moveNode, moveOffset;\n for (;;) {\n if (offset < len) {\n if (node.nodeType != 1)\n break;\n let after = node.childNodes[offset];\n if (isIgnorable(after, 1)) {\n moveNode = node;\n moveOffset = ++offset;\n }\n else\n break;\n }\n else if (isBlockNode(node)) {\n break;\n }\n else {\n let next = node.nextSibling;\n while (next && isIgnorable(next, 1)) {\n moveNode = next.parentNode;\n moveOffset = domIndex(next) + 1;\n next = next.nextSibling;\n }\n if (!next) {\n node = node.parentNode;\n if (node == view.dom)\n break;\n offset = len = 0;\n }\n else {\n node = next;\n offset = 0;\n len = nodeLen(node);\n }\n }\n }\n if (moveNode)\n setSelFocus(view, moveNode, moveOffset);\n}\nfunction isBlockNode(dom) {\n let desc = dom.pmViewDesc;\n return desc && desc.node && desc.node.isBlock;\n}\nfunction textNodeAfter(node, offset) {\n while (node && offset == node.childNodes.length && !hasBlockDesc(node)) {\n offset = domIndex(node) + 1;\n node = node.parentNode;\n }\n while (node && offset < node.childNodes.length) {\n let next = node.childNodes[offset];\n if (next.nodeType == 3)\n return next;\n if (next.nodeType == 1 && next.contentEditable == \"false\")\n break;\n node = next;\n offset = 0;\n }\n}\nfunction textNodeBefore(node, offset) {\n while (node && !offset && !hasBlockDesc(node)) {\n offset = domIndex(node);\n node = node.parentNode;\n }\n while (node && offset) {\n let next = node.childNodes[offset - 1];\n if (next.nodeType == 3)\n return next;\n if (next.nodeType == 1 && next.contentEditable == \"false\")\n break;\n node = next;\n offset = node.childNodes.length;\n }\n}\nfunction setSelFocus(view, node, offset) {\n if (node.nodeType != 3) {\n let before, after;\n if (after = textNodeAfter(node, offset)) {\n node = after;\n offset = 0;\n }\n else if (before = textNodeBefore(node, offset)) {\n node = before;\n offset = before.nodeValue.length;\n }\n }\n let sel = view.domSelection();\n if (selectionCollapsed(sel)) {\n let range = document.createRange();\n range.setEnd(node, offset);\n range.setStart(node, offset);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n else if (sel.extend) {\n sel.extend(node, offset);\n }\n view.domObserver.setCurSelection();\n let { state } = view;\n // If no state update ends up happening, reset the selection.\n setTimeout(() => {\n if (view.state == state)\n selectionToDOM(view);\n }, 50);\n}\nfunction findDirection(view, pos) {\n let $pos = view.state.doc.resolve(pos);\n if (!(chrome || windows) && $pos.parent.inlineContent) {\n let coords = view.coordsAtPos(pos);\n if (pos > $pos.start()) {\n let before = view.coordsAtPos(pos - 1);\n let mid = (before.top + before.bottom) / 2;\n if (mid > coords.top && mid < coords.bottom && Math.abs(before.left - coords.left) > 1)\n return before.left < coords.left ? \"ltr\" : \"rtl\";\n }\n if (pos < $pos.end()) {\n let after = view.coordsAtPos(pos + 1);\n let mid = (after.top + after.bottom) / 2;\n if (mid > coords.top && mid < coords.bottom && Math.abs(after.left - coords.left) > 1)\n return after.left > coords.left ? \"ltr\" : \"rtl\";\n }\n }\n let computed = getComputedStyle(view.dom).direction;\n return computed == \"rtl\" ? \"rtl\" : \"ltr\";\n}\n// Check whether vertical selection motion would involve node\n// selections. If so, apply it (if not, the result is left to the\n// browser)\nfunction selectVertically(view, dir, mods) {\n let sel = view.state.selection;\n if (sel instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"TextSelection\"] && !sel.empty || mods.indexOf(\"s\") > -1)\n return false;\n if (mac && mods.indexOf(\"m\") > -1)\n return false;\n let { $from, $to } = sel;\n if (!$from.parent.inlineContent || view.endOfTextblock(dir < 0 ? \"up\" : \"down\")) {\n let next = moveSelectionBlock(view.state, dir);\n if (next && (next instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"]))\n return apply(view, next);\n }\n if (!$from.parent.inlineContent) {\n let side = dir < 0 ? $from : $to;\n let beyond = sel instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"AllSelection\"] ? prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"Selection\"].near(side, dir) : prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"Selection\"].findFrom(side, dir);\n return beyond ? apply(view, beyond) : false;\n }\n return false;\n}\nfunction stopNativeHorizontalDelete(view, dir) {\n if (!(view.state.selection instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"TextSelection\"]))\n return true;\n let { $head, $anchor, empty } = view.state.selection;\n if (!$head.sameParent($anchor))\n return true;\n if (!empty)\n return false;\n if (view.endOfTextblock(dir > 0 ? \"forward\" : \"backward\"))\n return true;\n let nextNode = !$head.textOffset && (dir < 0 ? $head.nodeBefore : $head.nodeAfter);\n if (nextNode && !nextNode.isText) {\n let tr = view.state.tr;\n if (dir < 0)\n tr.delete($head.pos - nextNode.nodeSize, $head.pos);\n else\n tr.delete($head.pos, $head.pos + nextNode.nodeSize);\n view.dispatch(tr);\n return true;\n }\n return false;\n}\nfunction switchEditable(view, node, state) {\n view.domObserver.stop();\n node.contentEditable = state;\n view.domObserver.start();\n}\n// Issue #867 / #1090 / https://bugs.chromium.org/p/chromium/issues/detail?id=903821\n// In which Safari (and at some point in the past, Chrome) does really\n// wrong things when the down arrow is pressed when the cursor is\n// directly at the start of a textblock and has an uneditable node\n// after it\nfunction safariDownArrowBug(view) {\n if (!safari || view.state.selection.$head.parentOffset > 0)\n return false;\n let { focusNode, focusOffset } = view.domSelectionRange();\n if (focusNode && focusNode.nodeType == 1 && focusOffset == 0 &&\n focusNode.firstChild && focusNode.firstChild.contentEditable == \"false\") {\n let child = focusNode.firstChild;\n switchEditable(view, child, \"true\");\n setTimeout(() => switchEditable(view, child, \"false\"), 20);\n }\n return false;\n}\n// A backdrop key mapping used to make sure we always suppress keys\n// that have a dangerous default effect, even if the commands they are\n// bound to return false, and to make sure that cursor-motion keys\n// find a cursor (as opposed to a node selection) when pressed. For\n// cursor-motion keys, the code in the handlers also takes care of\n// block selections.\nfunction getMods(event) {\n let result = \"\";\n if (event.ctrlKey)\n result += \"c\";\n if (event.metaKey)\n result += \"m\";\n if (event.altKey)\n result += \"a\";\n if (event.shiftKey)\n result += \"s\";\n return result;\n}\nfunction captureKeyDown(view, event) {\n let code = event.keyCode, mods = getMods(event);\n if (code == 8 || (mac && code == 72 && mods == \"c\")) { // Backspace, Ctrl-h on Mac\n return stopNativeHorizontalDelete(view, -1) || skipIgnoredNodes(view, -1);\n }\n else if ((code == 46 && !event.shiftKey) || (mac && code == 68 && mods == \"c\")) { // Delete, Ctrl-d on Mac\n return stopNativeHorizontalDelete(view, 1) || skipIgnoredNodes(view, 1);\n }\n else if (code == 13 || code == 27) { // Enter, Esc\n return true;\n }\n else if (code == 37 || (mac && code == 66 && mods == \"c\")) { // Left arrow, Ctrl-b on Mac\n let dir = code == 37 ? (findDirection(view, view.state.selection.from) == \"ltr\" ? -1 : 1) : -1;\n return selectHorizontally(view, dir, mods) || skipIgnoredNodes(view, dir);\n }\n else if (code == 39 || (mac && code == 70 && mods == \"c\")) { // Right arrow, Ctrl-f on Mac\n let dir = code == 39 ? (findDirection(view, view.state.selection.from) == \"ltr\" ? 1 : -1) : 1;\n return selectHorizontally(view, dir, mods) || skipIgnoredNodes(view, dir);\n }\n else if (code == 38 || (mac && code == 80 && mods == \"c\")) { // Up arrow, Ctrl-p on Mac\n return selectVertically(view, -1, mods) || skipIgnoredNodes(view, -1);\n }\n else if (code == 40 || (mac && code == 78 && mods == \"c\")) { // Down arrow, Ctrl-n on Mac\n return safariDownArrowBug(view) || selectVertically(view, 1, mods) || skipIgnoredNodes(view, 1);\n }\n else if (mods == (mac ? \"m\" : \"c\") &&\n (code == 66 || code == 73 || code == 89 || code == 90)) { // Mod-[biyz]\n return true;\n }\n return false;\n}\n\nfunction serializeForClipboard(view, slice) {\n view.someProp(\"transformCopied\", f => { slice = f(slice, view); });\n let context = [], { content, openStart, openEnd } = slice;\n while (openStart > 1 && openEnd > 1 && content.childCount == 1 && content.firstChild.childCount == 1) {\n openStart--;\n openEnd--;\n let node = content.firstChild;\n context.push(node.type.name, node.attrs != node.type.defaultAttrs ? node.attrs : null);\n content = node.content;\n }\n let serializer = view.someProp(\"clipboardSerializer\") || prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"DOMSerializer\"].fromSchema(view.state.schema);\n let doc = detachedDoc(), wrap = doc.createElement(\"div\");\n wrap.appendChild(serializer.serializeFragment(content, { document: doc }));\n let firstChild = wrap.firstChild, needsWrap, wrappers = 0;\n while (firstChild && firstChild.nodeType == 1 && (needsWrap = wrapMap[firstChild.nodeName.toLowerCase()])) {\n for (let i = needsWrap.length - 1; i >= 0; i--) {\n let wrapper = doc.createElement(needsWrap[i]);\n while (wrap.firstChild)\n wrapper.appendChild(wrap.firstChild);\n wrap.appendChild(wrapper);\n wrappers++;\n }\n firstChild = wrap.firstChild;\n }\n if (firstChild && firstChild.nodeType == 1)\n firstChild.setAttribute(\"data-pm-slice\", `${openStart} ${openEnd}${wrappers ? ` -${wrappers}` : \"\"} ${JSON.stringify(context)}`);\n let text = view.someProp(\"clipboardTextSerializer\", f => f(slice, view)) ||\n slice.content.textBetween(0, slice.content.size, \"\\n\\n\");\n return { dom: wrap, text, slice };\n}\n// Read a slice of content from the clipboard (or drop data).\nfunction parseFromClipboard(view, text, html, plainText, $context) {\n let inCode = $context.parent.type.spec.code;\n let dom, slice;\n if (!html && !text)\n return null;\n let asText = text && (plainText || inCode || !html);\n if (asText) {\n view.someProp(\"transformPastedText\", f => { text = f(text, inCode || plainText, view); });\n if (inCode)\n return text ? new prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Slice\"](prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Fragment\"].from(view.state.schema.text(text.replace(/\\r\\n?/g, \"\\n\"))), 0, 0) : prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Slice\"].empty;\n let parsed = view.someProp(\"clipboardTextParser\", f => f(text, $context, plainText, view));\n if (parsed) {\n slice = parsed;\n }\n else {\n let marks = $context.marks();\n let { schema } = view.state, serializer = prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"DOMSerializer\"].fromSchema(schema);\n dom = document.createElement(\"div\");\n text.split(/(?:\\r\\n?|\\n)+/).forEach(block => {\n let p = dom.appendChild(document.createElement(\"p\"));\n if (block)\n p.appendChild(serializer.serializeNode(schema.text(block, marks)));\n });\n }\n }\n else {\n view.someProp(\"transformPastedHTML\", f => { html = f(html, view); });\n dom = readHTML(html);\n if (webkit)\n restoreReplacedSpaces(dom);\n }\n let contextNode = dom && dom.querySelector(\"[data-pm-slice]\");\n let sliceData = contextNode && /^(\\d+) (\\d+)(?: -(\\d+))? (.*)/.exec(contextNode.getAttribute(\"data-pm-slice\") || \"\");\n if (sliceData && sliceData[3])\n for (let i = +sliceData[3]; i > 0; i--) {\n let child = dom.firstChild;\n while (child && child.nodeType != 1)\n child = child.nextSibling;\n if (!child)\n break;\n dom = child;\n }\n if (!slice) {\n let parser = view.someProp(\"clipboardParser\") || view.someProp(\"domParser\") || prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"DOMParser\"].fromSchema(view.state.schema);\n slice = parser.parseSlice(dom, {\n preserveWhitespace: !!(asText || sliceData),\n context: $context,\n ruleFromNode(dom) {\n if (dom.nodeName == \"BR\" && !dom.nextSibling &&\n dom.parentNode && !inlineParents.test(dom.parentNode.nodeName))\n return { ignore: true };\n return null;\n }\n });\n }\n if (sliceData) {\n slice = addContext(closeSlice(slice, +sliceData[1], +sliceData[2]), sliceData[4]);\n }\n else { // HTML wasn't created by ProseMirror. Make sure top-level siblings are coherent\n slice = prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Slice\"].maxOpen(normalizeSiblings(slice.content, $context), true);\n if (slice.openStart || slice.openEnd) {\n let openStart = 0, openEnd = 0;\n for (let node = slice.content.firstChild; openStart < slice.openStart && !node.type.spec.isolating; openStart++, node = node.firstChild) { }\n for (let node = slice.content.lastChild; openEnd < slice.openEnd && !node.type.spec.isolating; openEnd++, node = node.lastChild) { }\n slice = closeSlice(slice, openStart, openEnd);\n }\n }\n view.someProp(\"transformPasted\", f => { slice = f(slice, view); });\n return slice;\n}\nconst inlineParents = /^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;\n// Takes a slice parsed with parseSlice, which means there hasn't been\n// any content-expression checking done on the top nodes, tries to\n// find a parent node in the current context that might fit the nodes,\n// and if successful, rebuilds the slice so that it fits into that parent.\n//\n// This addresses the problem that Transform.replace expects a\n// coherent slice, and will fail to place a set of siblings that don't\n// fit anywhere in the schema.\nfunction normalizeSiblings(fragment, $context) {\n if (fragment.childCount < 2)\n return fragment;\n for (let d = $context.depth; d >= 0; d--) {\n let parent = $context.node(d);\n let match = parent.contentMatchAt($context.index(d));\n let lastWrap, result = [];\n fragment.forEach(node => {\n if (!result)\n return;\n let wrap = match.findWrapping(node.type), inLast;\n if (!wrap)\n return result = null;\n if (inLast = result.length && lastWrap.length && addToSibling(wrap, lastWrap, node, result[result.length - 1], 0)) {\n result[result.length - 1] = inLast;\n }\n else {\n if (result.length)\n result[result.length - 1] = closeRight(result[result.length - 1], lastWrap.length);\n let wrapped = withWrappers(node, wrap);\n result.push(wrapped);\n match = match.matchType(wrapped.type);\n lastWrap = wrap;\n }\n });\n if (result)\n return prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Fragment\"].from(result);\n }\n return fragment;\n}\nfunction withWrappers(node, wrap, from = 0) {\n for (let i = wrap.length - 1; i >= from; i--)\n node = wrap[i].create(null, prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Fragment\"].from(node));\n return node;\n}\n// Used to group adjacent nodes wrapped in similar parents by\n// normalizeSiblings into the same parent node\nfunction addToSibling(wrap, lastWrap, node, sibling, depth) {\n if (depth < wrap.length && depth < lastWrap.length && wrap[depth] == lastWrap[depth]) {\n let inner = addToSibling(wrap, lastWrap, node, sibling.lastChild, depth + 1);\n if (inner)\n return sibling.copy(sibling.content.replaceChild(sibling.childCount - 1, inner));\n let match = sibling.contentMatchAt(sibling.childCount);\n if (match.matchType(depth == wrap.length - 1 ? node.type : wrap[depth + 1]))\n return sibling.copy(sibling.content.append(prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Fragment\"].from(withWrappers(node, wrap, depth + 1))));\n }\n}\nfunction closeRight(node, depth) {\n if (depth == 0)\n return node;\n let fragment = node.content.replaceChild(node.childCount - 1, closeRight(node.lastChild, depth - 1));\n let fill = node.contentMatchAt(node.childCount).fillBefore(prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Fragment\"].empty, true);\n return node.copy(fragment.append(fill));\n}\nfunction closeRange(fragment, side, from, to, depth, openEnd) {\n let node = side < 0 ? fragment.firstChild : fragment.lastChild, inner = node.content;\n if (fragment.childCount > 1)\n openEnd = 0;\n if (depth < to - 1)\n inner = closeRange(inner, side, from, to, depth + 1, openEnd);\n if (depth >= from)\n inner = side < 0 ? node.contentMatchAt(0).fillBefore(inner, openEnd <= depth).append(inner)\n : inner.append(node.contentMatchAt(node.childCount).fillBefore(prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Fragment\"].empty, true));\n return fragment.replaceChild(side < 0 ? 0 : fragment.childCount - 1, node.copy(inner));\n}\nfunction closeSlice(slice, openStart, openEnd) {\n if (openStart < slice.openStart)\n slice = new prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Slice\"](closeRange(slice.content, -1, openStart, slice.openStart, 0, slice.openEnd), openStart, slice.openEnd);\n if (openEnd < slice.openEnd)\n slice = new prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Slice\"](closeRange(slice.content, 1, openEnd, slice.openEnd, 0, 0), slice.openStart, openEnd);\n return slice;\n}\n// Trick from jQuery -- some elements must be wrapped in other\n// elements for innerHTML to work. I.e. if you do `div.innerHTML =\n// \"<td>..</td>\"` the table cells are ignored.\nconst wrapMap = {\n thead: [\"table\"],\n tbody: [\"table\"],\n tfoot: [\"table\"],\n caption: [\"table\"],\n colgroup: [\"table\"],\n col: [\"table\", \"colgroup\"],\n tr: [\"table\", \"tbody\"],\n td: [\"table\", \"tbody\", \"tr\"],\n th: [\"table\", \"tbody\", \"tr\"]\n};\nlet _detachedDoc = null;\nfunction detachedDoc() {\n return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument(\"title\"));\n}\nfunction readHTML(html) {\n let metas = /^(\\s*<meta [^>]*>)*/.exec(html);\n if (metas)\n html = html.slice(metas[0].length);\n let elt = detachedDoc().createElement(\"div\");\n let firstTag = /<([a-z][^>\\s]+)/i.exec(html), wrap;\n if (wrap = firstTag && wrapMap[firstTag[1].toLowerCase()])\n html = wrap.map(n => \"<\" + n + \">\").join(\"\") + html + wrap.map(n => \"</\" + n + \">\").reverse().join(\"\");\n elt.innerHTML = html;\n if (wrap)\n for (let i = 0; i < wrap.length; i++)\n elt = elt.querySelector(wrap[i]) || elt;\n return elt;\n}\n// Webkit browsers do some hard-to-predict replacement of regular\n// spaces with non-breaking spaces when putting content on the\n// clipboard. This tries to convert such non-breaking spaces (which\n// will be wrapped in a plain span on Chrome, a span with class\n// Apple-converted-space on Safari) back to regular spaces.\nfunction restoreReplacedSpaces(dom) {\n let nodes = dom.querySelectorAll(chrome ? \"span:not([class]):not([style])\" : \"span.Apple-converted-space\");\n for (let i = 0; i < nodes.length; i++) {\n let node = nodes[i];\n if (node.childNodes.length == 1 && node.textContent == \"\\u00a0\" && node.parentNode)\n node.parentNode.replaceChild(dom.ownerDocument.createTextNode(\" \"), node);\n }\n}\nfunction addContext(slice, context) {\n if (!slice.size)\n return slice;\n let schema = slice.content.firstChild.type.schema, array;\n try {\n array = JSON.parse(context);\n }\n catch (e) {\n return slice;\n }\n let { content, openStart, openEnd } = slice;\n for (let i = array.length - 2; i >= 0; i -= 2) {\n let type = schema.nodes[array[i]];\n if (!type || type.hasRequiredAttrs())\n break;\n content = prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Fragment\"].from(type.create(array[i + 1], content));\n openStart++;\n openEnd++;\n }\n return new prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Slice\"](content, openStart, openEnd);\n}\n\n// A collection of DOM events that occur within the editor, and callback functions\n// to invoke when the event fires.\nconst handlers = {};\nconst editHandlers = {};\nconst passiveHandlers = { touchstart: true, touchmove: true };\nclass InputState {\n constructor() {\n this.shiftKey = false;\n this.mouseDown = null;\n this.lastKeyCode = null;\n this.lastKeyCodeTime = 0;\n this.lastClick = { time: 0, x: 0, y: 0, type: \"\" };\n this.lastSelectionOrigin = null;\n this.lastSelectionTime = 0;\n this.lastIOSEnter = 0;\n this.lastIOSEnterFallbackTimeout = -1;\n this.lastFocus = 0;\n this.lastTouch = 0;\n this.lastAndroidDelete = 0;\n this.composing = false;\n this.compositionNode = null;\n this.composingTimeout = -1;\n this.compositionNodes = [];\n this.compositionEndedAt = -2e8;\n this.compositionID = 1;\n // Set to a composition ID when there are pending changes at compositionend\n this.compositionPendingChanges = 0;\n this.domChangeCount = 0;\n this.eventHandlers = Object.create(null);\n this.hideSelectionGuard = null;\n }\n}\nfunction initInput(view) {\n for (let event in handlers) {\n let handler = handlers[event];\n view.dom.addEventListener(event, view.input.eventHandlers[event] = (event) => {\n if (eventBelongsToView(view, event) && !runCustomHandler(view, event) &&\n (view.editable || !(event.type in editHandlers)))\n handler(view, event);\n }, passiveHandlers[event] ? { passive: true } : undefined);\n }\n // On Safari, for reasons beyond my understanding, adding an input\n // event handler makes an issue where the composition vanishes when\n // you press enter go away.\n if (safari)\n view.dom.addEventListener(\"input\", () => null);\n ensureListeners(view);\n}\nfunction setSelectionOrigin(view, origin) {\n view.input.lastSelectionOrigin = origin;\n view.input.lastSelectionTime = Date.now();\n}\nfunction destroyInput(view) {\n view.domObserver.stop();\n for (let type in view.input.eventHandlers)\n view.dom.removeEventListener(type, view.input.eventHandlers[type]);\n clearTimeout(view.input.composingTimeout);\n clearTimeout(view.input.lastIOSEnterFallbackTimeout);\n}\nfunction ensureListeners(view) {\n view.someProp(\"handleDOMEvents\", currentHandlers => {\n for (let type in currentHandlers)\n if (!view.input.eventHandlers[type])\n view.dom.addEventListener(type, view.input.eventHandlers[type] = event => runCustomHandler(view, event));\n });\n}\nfunction runCustomHandler(view, event) {\n return view.someProp(\"handleDOMEvents\", handlers => {\n let handler = handlers[event.type];\n return handler ? handler(view, event) || event.defaultPrevented : false;\n });\n}\nfunction eventBelongsToView(view, event) {\n if (!event.bubbles)\n return true;\n if (event.defaultPrevented)\n return false;\n for (let node = event.target; node != view.dom; node = node.parentNode)\n if (!node || node.nodeType == 11 ||\n (node.pmViewDesc && node.pmViewDesc.stopEvent(event)))\n return false;\n return true;\n}\nfunction dispatchEvent(view, event) {\n if (!runCustomHandler(view, event) && handlers[event.type] &&\n (view.editable || !(event.type in editHandlers)))\n handlers[event.type](view, event);\n}\neditHandlers.keydown = (view, _event) => {\n let event = _event;\n view.input.shiftKey = event.keyCode == 16 || event.shiftKey;\n if (inOrNearComposition(view, event))\n return;\n view.input.lastKeyCode = event.keyCode;\n view.input.lastKeyCodeTime = Date.now();\n // Suppress enter key events on Chrome Android, because those tend\n // to be part of a confused sequence of composition events fired,\n // and handling them eagerly tends to corrupt the input.\n if (android && chrome && event.keyCode == 13)\n return;\n if (event.keyCode != 229)\n view.domObserver.forceFlush();\n // On iOS, if we preventDefault enter key presses, the virtual\n // keyboard gets confused. So the hack here is to set a flag that\n // makes the DOM change code recognize that what just happens should\n // be replaced by whatever the Enter key handlers do.\n if (ios && event.keyCode == 13 && !event.ctrlKey && !event.altKey && !event.metaKey) {\n let now = Date.now();\n view.input.lastIOSEnter = now;\n view.input.lastIOSEnterFallbackTimeout = setTimeout(() => {\n if (view.input.lastIOSEnter == now) {\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")));\n view.input.lastIOSEnter = 0;\n }\n }, 200);\n }\n else if (view.someProp(\"handleKeyDown\", f => f(view, event)) || captureKeyDown(view, event)) {\n event.preventDefault();\n }\n else {\n setSelectionOrigin(view, \"key\");\n }\n};\neditHandlers.keyup = (view, event) => {\n if (event.keyCode == 16)\n view.input.shiftKey = false;\n};\neditHandlers.keypress = (view, _event) => {\n let event = _event;\n if (inOrNearComposition(view, event) || !event.charCode ||\n event.ctrlKey && !event.altKey || mac && event.metaKey)\n return;\n if (view.someProp(\"handleKeyPress\", f => f(view, event))) {\n event.preventDefault();\n return;\n }\n let sel = view.state.selection;\n if (!(sel instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"TextSelection\"]) || !sel.$from.sameParent(sel.$to)) {\n let text = String.fromCharCode(event.charCode);\n if (!/[\\r\\n]/.test(text) && !view.someProp(\"handleTextInput\", f => f(view, sel.$from.pos, sel.$to.pos, text)))\n view.dispatch(view.state.tr.insertText(text).scrollIntoView());\n event.preventDefault();\n }\n};\nfunction eventCoords(event) { return { left: event.clientX, top: event.clientY }; }\nfunction isNear(event, click) {\n let dx = click.x - event.clientX, dy = click.y - event.clientY;\n return dx * dx + dy * dy < 100;\n}\nfunction runHandlerOnContext(view, propName, pos, inside, event) {\n if (inside == -1)\n return false;\n let $pos = view.state.doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n if (view.someProp(propName, f => i > $pos.depth ? f(view, pos, $pos.nodeAfter, $pos.before(i), event, true)\n : f(view, pos, $pos.node(i), $pos.before(i), event, false)))\n return true;\n }\n return false;\n}\nfunction updateSelection(view, selection, origin) {\n if (!view.focused)\n view.focus();\n let tr = view.state.tr.setSelection(selection);\n if (origin == \"pointer\")\n tr.setMeta(\"pointer\", true);\n view.dispatch(tr);\n}\nfunction selectClickedLeaf(view, inside) {\n if (inside == -1)\n return false;\n let $pos = view.state.doc.resolve(inside), node = $pos.nodeAfter;\n if (node && node.isAtom && prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"].isSelectable(node)) {\n updateSelection(view, new prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"]($pos), \"pointer\");\n return true;\n }\n return false;\n}\nfunction selectClickedNode(view, inside) {\n if (inside == -1)\n return false;\n let sel = view.state.selection, selectedNode, selectAt;\n if (sel instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"])\n selectedNode = sel.node;\n let $pos = view.state.doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n let node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n if (prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"].isSelectable(node)) {\n if (selectedNode && sel.$from.depth > 0 &&\n i >= sel.$from.depth && $pos.before(sel.$from.depth + 1) == sel.$from.pos)\n selectAt = $pos.before(sel.$from.depth);\n else\n selectAt = $pos.before(i);\n break;\n }\n }\n if (selectAt != null) {\n updateSelection(view, prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"].create(view.state.doc, selectAt), \"pointer\");\n return true;\n }\n else {\n return false;\n }\n}\nfunction handleSingleClick(view, pos, inside, event, selectNode) {\n return runHandlerOnContext(view, \"handleClickOn\", pos, inside, event) ||\n view.someProp(\"handleClick\", f => f(view, pos, event)) ||\n (selectNode ? selectClickedNode(view, inside) : selectClickedLeaf(view, inside));\n}\nfunction handleDoubleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleDoubleClickOn\", pos, inside, event) ||\n view.someProp(\"handleDoubleClick\", f => f(view, pos, event));\n}\nfunction handleTripleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleTripleClickOn\", pos, inside, event) ||\n view.someProp(\"handleTripleClick\", f => f(view, pos, event)) ||\n defaultTripleClick(view, inside, event);\n}\nfunction defaultTripleClick(view, inside, event) {\n if (event.button != 0)\n return false;\n let doc = view.state.doc;\n if (inside == -1) {\n if (doc.inlineContent) {\n updateSelection(view, prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"TextSelection\"].create(doc, 0, doc.content.size), \"pointer\");\n return true;\n }\n return false;\n }\n let $pos = doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n let node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n let nodePos = $pos.before(i);\n if (node.inlineContent)\n updateSelection(view, prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"TextSelection\"].create(doc, nodePos + 1, nodePos + 1 + node.content.size), \"pointer\");\n else if (prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"].isSelectable(node))\n updateSelection(view, prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"].create(doc, nodePos), \"pointer\");\n else\n continue;\n return true;\n }\n}\nfunction forceDOMFlush(view) {\n return endComposition(view);\n}\nconst selectNodeModifier = mac ? \"metaKey\" : \"ctrlKey\";\nhandlers.mousedown = (view, _event) => {\n let event = _event;\n view.input.shiftKey = event.shiftKey;\n let flushed = forceDOMFlush(view);\n let now = Date.now(), type = \"singleClick\";\n if (now - view.input.lastClick.time < 500 && isNear(event, view.input.lastClick) && !event[selectNodeModifier]) {\n if (view.input.lastClick.type == \"singleClick\")\n type = \"doubleClick\";\n else if (view.input.lastClick.type == \"doubleClick\")\n type = \"tripleClick\";\n }\n view.input.lastClick = { time: now, x: event.clientX, y: event.clientY, type };\n let pos = view.posAtCoords(eventCoords(event));\n if (!pos)\n return;\n if (type == \"singleClick\") {\n if (view.input.mouseDown)\n view.input.mouseDown.done();\n view.input.mouseDown = new MouseDown(view, pos, event, !!flushed);\n }\n else if ((type == \"doubleClick\" ? handleDoubleClick : handleTripleClick)(view, pos.pos, pos.inside, event)) {\n event.preventDefault();\n }\n else {\n setSelectionOrigin(view, \"pointer\");\n }\n};\nclass MouseDown {\n constructor(view, pos, event, flushed) {\n this.view = view;\n this.pos = pos;\n this.event = event;\n this.flushed = flushed;\n this.delayedSelectionSync = false;\n this.mightDrag = null;\n this.startDoc = view.state.doc;\n this.selectNode = !!event[selectNodeModifier];\n this.allowDefault = event.shiftKey;\n let targetNode, targetPos;\n if (pos.inside > -1) {\n targetNode = view.state.doc.nodeAt(pos.inside);\n targetPos = pos.inside;\n }\n else {\n let $pos = view.state.doc.resolve(pos.pos);\n targetNode = $pos.parent;\n targetPos = $pos.depth ? $pos.before() : 0;\n }\n const target = flushed ? null : event.target;\n const targetDesc = target ? view.docView.nearestDesc(target, true) : null;\n this.target = targetDesc && targetDesc.dom.nodeType == 1 ? targetDesc.dom : null;\n let { selection } = view.state;\n if (event.button == 0 &&\n targetNode.type.spec.draggable && targetNode.type.spec.selectable !== false ||\n selection instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"] && selection.from <= targetPos && selection.to > targetPos)\n this.mightDrag = {\n node: targetNode,\n pos: targetPos,\n addAttr: !!(this.target && !this.target.draggable),\n setUneditable: !!(this.target && gecko && !this.target.hasAttribute(\"contentEditable\"))\n };\n if (this.target && this.mightDrag && (this.mightDrag.addAttr || this.mightDrag.setUneditable)) {\n this.view.domObserver.stop();\n if (this.mightDrag.addAttr)\n this.target.draggable = true;\n if (this.mightDrag.setUneditable)\n setTimeout(() => {\n if (this.view.input.mouseDown == this)\n this.target.setAttribute(\"contentEditable\", \"false\");\n }, 20);\n this.view.domObserver.start();\n }\n view.root.addEventListener(\"mouseup\", this.up = this.up.bind(this));\n view.root.addEventListener(\"mousemove\", this.move = this.move.bind(this));\n setSelectionOrigin(view, \"pointer\");\n }\n done() {\n this.view.root.removeEventListener(\"mouseup\", this.up);\n this.view.root.removeEventListener(\"mousemove\", this.move);\n if (this.mightDrag && this.target) {\n this.view.domObserver.stop();\n if (this.mightDrag.addAttr)\n this.target.removeAttribute(\"draggable\");\n if (this.mightDrag.setUneditable)\n this.target.removeAttribute(\"contentEditable\");\n this.view.domObserver.start();\n }\n if (this.delayedSelectionSync)\n setTimeout(() => selectionToDOM(this.view));\n this.view.input.mouseDown = null;\n }\n up(event) {\n this.done();\n if (!this.view.dom.contains(event.target))\n return;\n let pos = this.pos;\n if (this.view.state.doc != this.startDoc)\n pos = this.view.posAtCoords(eventCoords(event));\n this.updateAllowDefault(event);\n if (this.allowDefault || !pos) {\n setSelectionOrigin(this.view, \"pointer\");\n }\n else if (handleSingleClick(this.view, pos.pos, pos.inside, event, this.selectNode)) {\n event.preventDefault();\n }\n else if (event.button == 0 &&\n (this.flushed ||\n // Safari ignores clicks on draggable elements\n (safari && this.mightDrag && !this.mightDrag.node.isAtom) ||\n // Chrome will sometimes treat a node selection as a\n // cursor, but still report that the node is selected\n // when asked through getSelection. You'll then get a\n // situation where clicking at the point where that\n // (hidden) cursor is doesn't change the selection, and\n // thus doesn't get a reaction from ProseMirror. This\n // works around that.\n (chrome && !this.view.state.selection.visible &&\n Math.min(Math.abs(pos.pos - this.view.state.selection.from), Math.abs(pos.pos - this.view.state.selection.to)) <= 2))) {\n updateSelection(this.view, prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"Selection\"].near(this.view.state.doc.resolve(pos.pos)), \"pointer\");\n event.preventDefault();\n }\n else {\n setSelectionOrigin(this.view, \"pointer\");\n }\n }\n move(event) {\n this.updateAllowDefault(event);\n setSelectionOrigin(this.view, \"pointer\");\n if (event.buttons == 0)\n this.done();\n }\n updateAllowDefault(event) {\n if (!this.allowDefault && (Math.abs(this.event.x - event.clientX) > 4 ||\n Math.abs(this.event.y - event.clientY) > 4))\n this.allowDefault = true;\n }\n}\nhandlers.touchstart = view => {\n view.input.lastTouch = Date.now();\n forceDOMFlush(view);\n setSelectionOrigin(view, \"pointer\");\n};\nhandlers.touchmove = view => {\n view.input.lastTouch = Date.now();\n setSelectionOrigin(view, \"pointer\");\n};\nhandlers.contextmenu = view => forceDOMFlush(view);\nfunction inOrNearComposition(view, event) {\n if (view.composing)\n return true;\n // See https://www.stum.de/2016/06/24/handling-ime-events-in-javascript/.\n // On Japanese input method editors (IMEs), the Enter key is used to confirm character\n // selection. On Safari, when Enter is pressed, compositionend and keydown events are\n // emitted. The keydown event triggers newline insertion, which we don't want.\n // This method returns true if the keydown event should be ignored.\n // We only ignore it once, as pressing Enter a second time *should* insert a newline.\n // Furthermore, the keydown event timestamp must be close to the compositionEndedAt timestamp.\n // This guards against the case where compositionend is triggered without the keyboard\n // (e.g. character confirmation may be done with the mouse), and keydown is triggered\n // afterwards- we wouldn't want to ignore the keydown event in this case.\n if (safari && Math.abs(event.timeStamp - view.input.compositionEndedAt) < 500) {\n view.input.compositionEndedAt = -2e8;\n return true;\n }\n return false;\n}\n// Drop active composition after 5 seconds of inactivity on Android\nconst timeoutComposition = android ? 5000 : -1;\neditHandlers.compositionstart = editHandlers.compositionupdate = view => {\n if (!view.composing) {\n view.domObserver.flush();\n let { state } = view, $pos = state.selection.$from;\n if (state.selection.empty &&\n (state.storedMarks ||\n (!$pos.textOffset && $pos.parentOffset && $pos.nodeBefore.marks.some(m => m.type.spec.inclusive === false)))) {\n // Need to wrap the cursor in mark nodes different from the ones in the DOM context\n view.markCursor = view.state.storedMarks || $pos.marks();\n endComposition(view, true);\n view.markCursor = null;\n }\n else {\n endComposition(view);\n // In firefox, if the cursor is after but outside a marked node,\n // the inserted text won't inherit the marks. So this moves it\n // inside if necessary.\n if (gecko && state.selection.empty && $pos.parentOffset && !$pos.textOffset && $pos.nodeBefore.marks.length) {\n let sel = view.domSelectionRange();\n for (let node = sel.focusNode, offset = sel.focusOffset; node && node.nodeType == 1 && offset != 0;) {\n let before = offset < 0 ? node.lastChild : node.childNodes[offset - 1];\n if (!before)\n break;\n if (before.nodeType == 3) {\n view.domSelection().collapse(before, before.nodeValue.length);\n break;\n }\n else {\n node = before;\n offset = -1;\n }\n }\n }\n }\n view.input.composing = true;\n }\n scheduleComposeEnd(view, timeoutComposition);\n};\neditHandlers.compositionend = (view, event) => {\n if (view.composing) {\n view.input.composing = false;\n view.input.compositionEndedAt = event.timeStamp;\n view.input.compositionPendingChanges = view.domObserver.pendingRecords().length ? view.input.compositionID : 0;\n view.input.compositionNode = null;\n if (view.input.compositionPendingChanges)\n Promise.resolve().then(() => view.domObserver.flush());\n view.input.compositionID++;\n scheduleComposeEnd(view, 20);\n }\n};\nfunction scheduleComposeEnd(view, delay) {\n clearTimeout(view.input.composingTimeout);\n if (delay > -1)\n view.input.composingTimeout = setTimeout(() => endComposition(view), delay);\n}\nfunction clearComposition(view) {\n if (view.composing) {\n view.input.composing = false;\n view.input.compositionEndedAt = timestampFromCustomEvent();\n }\n while (view.input.compositionNodes.length > 0)\n view.input.compositionNodes.pop().markParentsDirty();\n}\nfunction findCompositionNode(view) {\n let sel = view.domSelectionRange();\n if (!sel.focusNode)\n return null;\n let textBefore = textNodeBefore$1(sel.focusNode, sel.focusOffset);\n let textAfter = textNodeAfter$1(sel.focusNode, sel.focusOffset);\n if (textBefore && textAfter && textBefore != textAfter) {\n let descAfter = textAfter.pmViewDesc, lastChanged = view.domObserver.lastChangedTextNode;\n if (textBefore == lastChanged || textAfter == lastChanged)\n return lastChanged;\n if (!descAfter || !descAfter.isText(textAfter.nodeValue)) {\n return textAfter;\n }\n else if (view.input.compositionNode == textAfter) {\n let descBefore = textBefore.pmViewDesc;\n if (!(!descBefore || !descBefore.isText(textBefore.nodeValue)))\n return textAfter;\n }\n }\n return textBefore || textAfter;\n}\nfunction timestampFromCustomEvent() {\n let event = document.createEvent(\"Event\");\n event.initEvent(\"event\", true, true);\n return event.timeStamp;\n}\n/**\n@internal\n*/\nfunction endComposition(view, forceUpdate = false) {\n if (android && view.domObserver.flushingSoon >= 0)\n return;\n view.domObserver.forceFlush();\n clearComposition(view);\n if (forceUpdate || view.docView && view.docView.dirty) {\n let sel = selectionFromDOM(view);\n if (sel && !sel.eq(view.state.selection))\n view.dispatch(view.state.tr.setSelection(sel));\n else\n view.updateState(view.state);\n return true;\n }\n return false;\n}\nfunction captureCopy(view, dom) {\n // The extra wrapper is somehow necessary on IE/Edge to prevent the\n // content from being mangled when it is put onto the clipboard\n if (!view.dom.parentNode)\n return;\n let wrap = view.dom.parentNode.appendChild(document.createElement(\"div\"));\n wrap.appendChild(dom);\n wrap.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n let sel = getSelection(), range = document.createRange();\n range.selectNodeContents(dom);\n // Done because IE will fire a selectionchange moving the selection\n // to its start when removeAllRanges is called and the editor still\n // has focus (which will mess up the editor's selection state).\n view.dom.blur();\n sel.removeAllRanges();\n sel.addRange(range);\n setTimeout(() => {\n if (wrap.parentNode)\n wrap.parentNode.removeChild(wrap);\n view.focus();\n }, 50);\n}\n// This is very crude, but unfortunately both these browsers _pretend_\n// that they have a clipboard API—all the objects and methods are\n// there, they just don't work, and they are hard to test.\nconst brokenClipboardAPI = (ie && ie_version < 15) ||\n (ios && webkit_version < 604);\nhandlers.copy = editHandlers.cut = (view, _event) => {\n let event = _event;\n let sel = view.state.selection, cut = event.type == \"cut\";\n if (sel.empty)\n return;\n // IE and Edge's clipboard interface is completely broken\n let data = brokenClipboardAPI ? null : event.clipboardData;\n let slice = sel.content(), { dom, text } = serializeForClipboard(view, slice);\n if (data) {\n event.preventDefault();\n data.clearData();\n data.setData(\"text/html\", dom.innerHTML);\n data.setData(\"text/plain\", text);\n }\n else {\n captureCopy(view, dom);\n }\n if (cut)\n view.dispatch(view.state.tr.deleteSelection().scrollIntoView().setMeta(\"uiEvent\", \"cut\"));\n};\nfunction sliceSingleNode(slice) {\n return slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1 ? slice.content.firstChild : null;\n}\nfunction capturePaste(view, event) {\n if (!view.dom.parentNode)\n return;\n let plainText = view.input.shiftKey || view.state.selection.$from.parent.type.spec.code;\n let target = view.dom.parentNode.appendChild(document.createElement(plainText ? \"textarea\" : \"div\"));\n if (!plainText)\n target.contentEditable = \"true\";\n target.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n target.focus();\n let plain = view.input.shiftKey && view.input.lastKeyCode != 45;\n setTimeout(() => {\n view.focus();\n if (target.parentNode)\n target.parentNode.removeChild(target);\n if (plainText)\n doPaste(view, target.value, null, plain, event);\n else\n doPaste(view, target.textContent, target.innerHTML, plain, event);\n }, 50);\n}\nfunction doPaste(view, text, html, preferPlain, event) {\n let slice = parseFromClipboard(view, text, html, preferPlain, view.state.selection.$from);\n if (view.someProp(\"handlePaste\", f => f(view, event, slice || prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Slice\"].empty)))\n return true;\n if (!slice)\n return false;\n let singleNode = sliceSingleNode(slice);\n let tr = singleNode\n ? view.state.tr.replaceSelectionWith(singleNode, preferPlain)\n : view.state.tr.replaceSelection(slice);\n view.dispatch(tr.scrollIntoView().setMeta(\"paste\", true).setMeta(\"uiEvent\", \"paste\"));\n return true;\n}\nfunction getText(clipboardData) {\n let text = clipboardData.getData(\"text/plain\") || clipboardData.getData(\"Text\");\n if (text)\n return text;\n let uris = clipboardData.getData(\"text/uri-list\");\n return uris ? uris.replace(/\\r?\\n/g, \" \") : \"\";\n}\neditHandlers.paste = (view, _event) => {\n let event = _event;\n // Handling paste from JavaScript during composition is very poorly\n // handled by browsers, so as a dodgy but preferable kludge, we just\n // let the browser do its native thing there, except on Android,\n // where the editor is almost always composing.\n if (view.composing && !android)\n return;\n let data = brokenClipboardAPI ? null : event.clipboardData;\n let plain = view.input.shiftKey && view.input.lastKeyCode != 45;\n if (data && doPaste(view, getText(data), data.getData(\"text/html\"), plain, event))\n event.preventDefault();\n else\n capturePaste(view, event);\n};\nclass Dragging {\n constructor(slice, move, node) {\n this.slice = slice;\n this.move = move;\n this.node = node;\n }\n}\nconst dragCopyModifier = mac ? \"altKey\" : \"ctrlKey\";\nhandlers.dragstart = (view, _event) => {\n let event = _event;\n let mouseDown = view.input.mouseDown;\n if (mouseDown)\n mouseDown.done();\n if (!event.dataTransfer)\n return;\n let sel = view.state.selection;\n let pos = sel.empty ? null : view.posAtCoords(eventCoords(event));\n let node;\n if (pos && pos.pos >= sel.from && pos.pos <= (sel instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"] ? sel.to - 1 : sel.to)) ;\n else if (mouseDown && mouseDown.mightDrag) {\n node = prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"].create(view.state.doc, mouseDown.mightDrag.pos);\n }\n else if (event.target && event.target.nodeType == 1) {\n let desc = view.docView.nearestDesc(event.target, true);\n if (desc && desc.node.type.spec.draggable && desc != view.docView)\n node = prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"].create(view.state.doc, desc.posBefore);\n }\n let draggedSlice = (node || view.state.selection).content();\n let { dom, text, slice } = serializeForClipboard(view, draggedSlice);\n event.dataTransfer.clearData();\n event.dataTransfer.setData(brokenClipboardAPI ? \"Text\" : \"text/html\", dom.innerHTML);\n // See https://github.com/ProseMirror/prosemirror/issues/1156\n event.dataTransfer.effectAllowed = \"copyMove\";\n if (!brokenClipboardAPI)\n event.dataTransfer.setData(\"text/plain\", text);\n view.dragging = new Dragging(slice, !event[dragCopyModifier], node);\n};\nhandlers.dragend = view => {\n let dragging = view.dragging;\n window.setTimeout(() => {\n if (view.dragging == dragging)\n view.dragging = null;\n }, 50);\n};\neditHandlers.dragover = editHandlers.dragenter = (_, e) => e.preventDefault();\neditHandlers.drop = (view, _event) => {\n let event = _event;\n let dragging = view.dragging;\n view.dragging = null;\n if (!event.dataTransfer)\n return;\n let eventPos = view.posAtCoords(eventCoords(event));\n if (!eventPos)\n return;\n let $mouse = view.state.doc.resolve(eventPos.pos);\n let slice = dragging && dragging.slice;\n if (slice) {\n view.someProp(\"transformPasted\", f => { slice = f(slice, view); });\n }\n else {\n slice = parseFromClipboard(view, getText(event.dataTransfer), brokenClipboardAPI ? null : event.dataTransfer.getData(\"text/html\"), false, $mouse);\n }\n let move = !!(dragging && !event[dragCopyModifier]);\n if (view.someProp(\"handleDrop\", f => f(view, event, slice || prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Slice\"].empty, move))) {\n event.preventDefault();\n return;\n }\n if (!slice)\n return;\n event.preventDefault();\n let insertPos = slice ? Object(prosemirror_transform__WEBPACK_IMPORTED_MODULE_2__[\"dropPoint\"])(view.state.doc, $mouse.pos, slice) : $mouse.pos;\n if (insertPos == null)\n insertPos = $mouse.pos;\n let tr = view.state.tr;\n if (move) {\n let { node } = dragging;\n if (node)\n node.replace(tr);\n else\n tr.deleteSelection();\n }\n let pos = tr.mapping.map(insertPos);\n let isNode = slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1;\n let beforeInsert = tr.doc;\n if (isNode)\n tr.replaceRangeWith(pos, pos, slice.content.firstChild);\n else\n tr.replaceRange(pos, pos, slice);\n if (tr.doc.eq(beforeInsert))\n return;\n let $pos = tr.doc.resolve(pos);\n if (isNode && prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"].isSelectable(slice.content.firstChild) &&\n $pos.nodeAfter && $pos.nodeAfter.sameMarkup(slice.content.firstChild)) {\n tr.setSelection(new prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"]($pos));\n }\n else {\n let end = tr.mapping.map(insertPos);\n tr.mapping.maps[tr.mapping.maps.length - 1].forEach((_from, _to, _newFrom, newTo) => end = newTo);\n tr.setSelection(selectionBetween(view, $pos, tr.doc.resolve(end)));\n }\n view.focus();\n view.dispatch(tr.setMeta(\"uiEvent\", \"drop\"));\n};\nhandlers.focus = view => {\n view.input.lastFocus = Date.now();\n if (!view.focused) {\n view.domObserver.stop();\n view.dom.classList.add(\"ProseMirror-focused\");\n view.domObserver.start();\n view.focused = true;\n setTimeout(() => {\n if (view.docView && view.hasFocus() && !view.domObserver.currentSelection.eq(view.domSelectionRange()))\n selectionToDOM(view);\n }, 20);\n }\n};\nhandlers.blur = (view, _event) => {\n let event = _event;\n if (view.focused) {\n view.domObserver.stop();\n view.dom.classList.remove(\"ProseMirror-focused\");\n view.domObserver.start();\n if (event.relatedTarget && view.dom.contains(event.relatedTarget))\n view.domObserver.currentSelection.clear();\n view.focused = false;\n }\n};\nhandlers.beforeinput = (view, _event) => {\n let event = _event;\n // We should probably do more with beforeinput events, but support\n // is so spotty that I'm still waiting to see where they are going.\n // Very specific hack to deal with backspace sometimes failing on\n // Chrome Android when after an uneditable node.\n if (chrome && android && event.inputType == \"deleteContentBackward\") {\n view.domObserver.flushSoon();\n let { domChangeCount } = view.input;\n setTimeout(() => {\n if (view.input.domChangeCount != domChangeCount)\n return; // Event already had some effect\n // This bug tends to close the virtual keyboard, so we refocus\n view.dom.blur();\n view.focus();\n if (view.someProp(\"handleKeyDown\", f => f(view, keyEvent(8, \"Backspace\"))))\n return;\n let { $cursor } = view.state.selection;\n // Crude approximation of backspace behavior when no command handled it\n if ($cursor && $cursor.pos > 0)\n view.dispatch(view.state.tr.delete($cursor.pos - 1, $cursor.pos).scrollIntoView());\n }, 50);\n }\n};\n// Make sure all handlers get registered\nfor (let prop in editHandlers)\n handlers[prop] = editHandlers[prop];\n\nfunction compareObjs(a, b) {\n if (a == b)\n return true;\n for (let p in a)\n if (a[p] !== b[p])\n return false;\n for (let p in b)\n if (!(p in a))\n return false;\n return true;\n}\nclass WidgetType {\n constructor(toDOM, spec) {\n this.toDOM = toDOM;\n this.spec = spec || noSpec;\n this.side = this.spec.side || 0;\n }\n map(mapping, span, offset, oldOffset) {\n let { pos, deleted } = mapping.mapResult(span.from + oldOffset, this.side < 0 ? -1 : 1);\n return deleted ? null : new Decoration(pos - offset, pos - offset, this);\n }\n valid() { return true; }\n eq(other) {\n return this == other ||\n (other instanceof WidgetType &&\n (this.spec.key && this.spec.key == other.spec.key ||\n this.toDOM == other.toDOM && compareObjs(this.spec, other.spec)));\n }\n destroy(node) {\n if (this.spec.destroy)\n this.spec.destroy(node);\n }\n}\nclass InlineType {\n constructor(attrs, spec) {\n this.attrs = attrs;\n this.spec = spec || noSpec;\n }\n map(mapping, span, offset, oldOffset) {\n let from = mapping.map(span.from + oldOffset, this.spec.inclusiveStart ? -1 : 1) - offset;\n let to = mapping.map(span.to + oldOffset, this.spec.inclusiveEnd ? 1 : -1) - offset;\n return from >= to ? null : new Decoration(from, to, this);\n }\n valid(_, span) { return span.from < span.to; }\n eq(other) {\n return this == other ||\n (other instanceof InlineType && compareObjs(this.attrs, other.attrs) &&\n compareObjs(this.spec, other.spec));\n }\n static is(span) { return span.type instanceof InlineType; }\n destroy() { }\n}\nclass NodeType {\n constructor(attrs, spec) {\n this.attrs = attrs;\n this.spec = spec || noSpec;\n }\n map(mapping, span, offset, oldOffset) {\n let from = mapping.mapResult(span.from + oldOffset, 1);\n if (from.deleted)\n return null;\n let to = mapping.mapResult(span.to + oldOffset, -1);\n if (to.deleted || to.pos <= from.pos)\n return null;\n return new Decoration(from.pos - offset, to.pos - offset, this);\n }\n valid(node, span) {\n let { index, offset } = node.content.findIndex(span.from), child;\n return offset == span.from && !(child = node.child(index)).isText && offset + child.nodeSize == span.to;\n }\n eq(other) {\n return this == other ||\n (other instanceof NodeType && compareObjs(this.attrs, other.attrs) &&\n compareObjs(this.spec, other.spec));\n }\n destroy() { }\n}\n/**\nDecoration objects can be provided to the view through the\n[`decorations` prop](https://prosemirror.net/docs/ref/#view.EditorProps.decorations). They come in\nseveral variants—see the static members of this class for details.\n*/\nclass Decoration {\n /**\n @internal\n */\n constructor(\n /**\n The start position of the decoration.\n */\n from, \n /**\n The end position. Will be the same as `from` for [widget\n decorations](https://prosemirror.net/docs/ref/#view.Decoration^widget).\n */\n to, \n /**\n @internal\n */\n type) {\n this.from = from;\n this.to = to;\n this.type = type;\n }\n /**\n @internal\n */\n copy(from, to) {\n return new Decoration(from, to, this.type);\n }\n /**\n @internal\n */\n eq(other, offset = 0) {\n return this.type.eq(other.type) && this.from + offset == other.from && this.to + offset == other.to;\n }\n /**\n @internal\n */\n map(mapping, offset, oldOffset) {\n return this.type.map(mapping, this, offset, oldOffset);\n }\n /**\n Creates a widget decoration, which is a DOM node that's shown in\n the document at the given position. It is recommended that you\n delay rendering the widget by passing a function that will be\n called when the widget is actually drawn in a view, but you can\n also directly pass a DOM node. `getPos` can be used to find the\n widget's current document position.\n */\n static widget(pos, toDOM, spec) {\n return new Decoration(pos, pos, new WidgetType(toDOM, spec));\n }\n /**\n Creates an inline decoration, which adds the given attributes to\n each inline node between `from` and `to`.\n */\n static inline(from, to, attrs, spec) {\n return new Decoration(from, to, new InlineType(attrs, spec));\n }\n /**\n Creates a node decoration. `from` and `to` should point precisely\n before and after a node in the document. That node, and only that\n node, will receive the given attributes.\n */\n static node(from, to, attrs, spec) {\n return new Decoration(from, to, new NodeType(attrs, spec));\n }\n /**\n The spec provided when creating this decoration. Can be useful\n if you've stored extra information in that object.\n */\n get spec() { return this.type.spec; }\n /**\n @internal\n */\n get inline() { return this.type instanceof InlineType; }\n /**\n @internal\n */\n get widget() { return this.type instanceof WidgetType; }\n}\nconst none = [], noSpec = {};\n/**\nA collection of [decorations](https://prosemirror.net/docs/ref/#view.Decoration), organized in such\na way that the drawing algorithm can efficiently use and compare\nthem. This is a persistent data structure—it is not modified,\nupdates create a new value.\n*/\nclass DecorationSet {\n /**\n @internal\n */\n constructor(local, children) {\n this.local = local.length ? local : none;\n this.children = children.length ? children : none;\n }\n /**\n Create a set of decorations, using the structure of the given\n document. This will consume (modify) the `decorations` array, so\n you must make a copy if you want need to preserve that.\n */\n static create(doc, decorations) {\n return decorations.length ? buildTree(decorations, doc, 0, noSpec) : empty;\n }\n /**\n Find all decorations in this set which touch the given range\n (including decorations that start or end directly at the\n boundaries) and match the given predicate on their spec. When\n `start` and `end` are omitted, all decorations in the set are\n considered. When `predicate` isn't given, all decorations are\n assumed to match.\n */\n find(start, end, predicate) {\n let result = [];\n this.findInner(start == null ? 0 : start, end == null ? 1e9 : end, result, 0, predicate);\n return result;\n }\n findInner(start, end, result, offset, predicate) {\n for (let i = 0; i < this.local.length; i++) {\n let span = this.local[i];\n if (span.from <= end && span.to >= start && (!predicate || predicate(span.spec)))\n result.push(span.copy(span.from + offset, span.to + offset));\n }\n for (let i = 0; i < this.children.length; i += 3) {\n if (this.children[i] < end && this.children[i + 1] > start) {\n let childOff = this.children[i] + 1;\n this.children[i + 2].findInner(start - childOff, end - childOff, result, offset + childOff, predicate);\n }\n }\n }\n /**\n Map the set of decorations in response to a change in the\n document.\n */\n map(mapping, doc, options) {\n if (this == empty || mapping.maps.length == 0)\n return this;\n return this.mapInner(mapping, doc, 0, 0, options || noSpec);\n }\n /**\n @internal\n */\n mapInner(mapping, node, offset, oldOffset, options) {\n let newLocal;\n for (let i = 0; i < this.local.length; i++) {\n let mapped = this.local[i].map(mapping, offset, oldOffset);\n if (mapped && mapped.type.valid(node, mapped))\n (newLocal || (newLocal = [])).push(mapped);\n else if (options.onRemove)\n options.onRemove(this.local[i].spec);\n }\n if (this.children.length)\n return mapChildren(this.children, newLocal || [], mapping, node, offset, oldOffset, options);\n else\n return newLocal ? new DecorationSet(newLocal.sort(byPos), none) : empty;\n }\n /**\n Add the given array of decorations to the ones in the set,\n producing a new set. Consumes the `decorations` array. Needs\n access to the current document to create the appropriate tree\n structure.\n */\n add(doc, decorations) {\n if (!decorations.length)\n return this;\n if (this == empty)\n return DecorationSet.create(doc, decorations);\n return this.addInner(doc, decorations, 0);\n }\n addInner(doc, decorations, offset) {\n let children, childIndex = 0;\n doc.forEach((childNode, childOffset) => {\n let baseOffset = childOffset + offset, found;\n if (!(found = takeSpansForNode(decorations, childNode, baseOffset)))\n return;\n if (!children)\n children = this.children.slice();\n while (childIndex < children.length && children[childIndex] < childOffset)\n childIndex += 3;\n if (children[childIndex] == childOffset)\n children[childIndex + 2] = children[childIndex + 2].addInner(childNode, found, baseOffset + 1);\n else\n children.splice(childIndex, 0, childOffset, childOffset + childNode.nodeSize, buildTree(found, childNode, baseOffset + 1, noSpec));\n childIndex += 3;\n });\n let local = moveSpans(childIndex ? withoutNulls(decorations) : decorations, -offset);\n for (let i = 0; i < local.length; i++)\n if (!local[i].type.valid(doc, local[i]))\n local.splice(i--, 1);\n return new DecorationSet(local.length ? this.local.concat(local).sort(byPos) : this.local, children || this.children);\n }\n /**\n Create a new set that contains the decorations in this set, minus\n the ones in the given array.\n */\n remove(decorations) {\n if (decorations.length == 0 || this == empty)\n return this;\n return this.removeInner(decorations, 0);\n }\n removeInner(decorations, offset) {\n let children = this.children, local = this.local;\n for (let i = 0; i < children.length; i += 3) {\n let found;\n let from = children[i] + offset, to = children[i + 1] + offset;\n for (let j = 0, span; j < decorations.length; j++)\n if (span = decorations[j]) {\n if (span.from > from && span.to < to) {\n decorations[j] = null;\n (found || (found = [])).push(span);\n }\n }\n if (!found)\n continue;\n if (children == this.children)\n children = this.children.slice();\n let removed = children[i + 2].removeInner(found, from + 1);\n if (removed != empty) {\n children[i + 2] = removed;\n }\n else {\n children.splice(i, 3);\n i -= 3;\n }\n }\n if (local.length)\n for (let i = 0, span; i < decorations.length; i++)\n if (span = decorations[i]) {\n for (let j = 0; j < local.length; j++)\n if (local[j].eq(span, offset)) {\n if (local == this.local)\n local = this.local.slice();\n local.splice(j--, 1);\n }\n }\n if (children == this.children && local == this.local)\n return this;\n return local.length || children.length ? new DecorationSet(local, children) : empty;\n }\n forChild(offset, node) {\n if (this == empty)\n return this;\n if (node.isLeaf)\n return DecorationSet.empty;\n let child, local;\n for (let i = 0; i < this.children.length; i += 3)\n if (this.children[i] >= offset) {\n if (this.children[i] == offset)\n child = this.children[i + 2];\n break;\n }\n let start = offset + 1, end = start + node.content.size;\n for (let i = 0; i < this.local.length; i++) {\n let dec = this.local[i];\n if (dec.from < end && dec.to > start && (dec.type instanceof InlineType)) {\n let from = Math.max(start, dec.from) - start, to = Math.min(end, dec.to) - start;\n if (from < to)\n (local || (local = [])).push(dec.copy(from, to));\n }\n }\n if (local) {\n let localSet = new DecorationSet(local.sort(byPos), none);\n return child ? new DecorationGroup([localSet, child]) : localSet;\n }\n return child || empty;\n }\n /**\n @internal\n */\n eq(other) {\n if (this == other)\n return true;\n if (!(other instanceof DecorationSet) ||\n this.local.length != other.local.length ||\n this.children.length != other.children.length)\n return false;\n for (let i = 0; i < this.local.length; i++)\n if (!this.local[i].eq(other.local[i]))\n return false;\n for (let i = 0; i < this.children.length; i += 3)\n if (this.children[i] != other.children[i] ||\n this.children[i + 1] != other.children[i + 1] ||\n !this.children[i + 2].eq(other.children[i + 2]))\n return false;\n return true;\n }\n /**\n @internal\n */\n locals(node) {\n return removeOverlap(this.localsInner(node));\n }\n /**\n @internal\n */\n localsInner(node) {\n if (this == empty)\n return none;\n if (node.inlineContent || !this.local.some(InlineType.is))\n return this.local;\n let result = [];\n for (let i = 0; i < this.local.length; i++) {\n if (!(this.local[i].type instanceof InlineType))\n result.push(this.local[i]);\n }\n return result;\n }\n}\n/**\nThe empty set of decorations.\n*/\nDecorationSet.empty = new DecorationSet([], []);\n/**\n@internal\n*/\nDecorationSet.removeOverlap = removeOverlap;\nconst empty = DecorationSet.empty;\n// An abstraction that allows the code dealing with decorations to\n// treat multiple DecorationSet objects as if it were a single object\n// with (a subset of) the same interface.\nclass DecorationGroup {\n constructor(members) {\n this.members = members;\n }\n map(mapping, doc) {\n const mappedDecos = this.members.map(member => member.map(mapping, doc, noSpec));\n return DecorationGroup.from(mappedDecos);\n }\n forChild(offset, child) {\n if (child.isLeaf)\n return DecorationSet.empty;\n let found = [];\n for (let i = 0; i < this.members.length; i++) {\n let result = this.members[i].forChild(offset, child);\n if (result == empty)\n continue;\n if (result instanceof DecorationGroup)\n found = found.concat(result.members);\n else\n found.push(result);\n }\n return DecorationGroup.from(found);\n }\n eq(other) {\n if (!(other instanceof DecorationGroup) ||\n other.members.length != this.members.length)\n return false;\n for (let i = 0; i < this.members.length; i++)\n if (!this.members[i].eq(other.members[i]))\n return false;\n return true;\n }\n locals(node) {\n let result, sorted = true;\n for (let i = 0; i < this.members.length; i++) {\n let locals = this.members[i].localsInner(node);\n if (!locals.length)\n continue;\n if (!result) {\n result = locals;\n }\n else {\n if (sorted) {\n result = result.slice();\n sorted = false;\n }\n for (let j = 0; j < locals.length; j++)\n result.push(locals[j]);\n }\n }\n return result ? removeOverlap(sorted ? result : result.sort(byPos)) : none;\n }\n // Create a group for the given array of decoration sets, or return\n // a single set when possible.\n static from(members) {\n switch (members.length) {\n case 0: return empty;\n case 1: return members[0];\n default: return new DecorationGroup(members.every(m => m instanceof DecorationSet) ? members :\n members.reduce((r, m) => r.concat(m instanceof DecorationSet ? m : m.members), []));\n }\n }\n}\nfunction mapChildren(oldChildren, newLocal, mapping, node, offset, oldOffset, options) {\n let children = oldChildren.slice();\n // Mark the children that are directly touched by changes, and\n // move those that are after the changes.\n for (let i = 0, baseOffset = oldOffset; i < mapping.maps.length; i++) {\n let moved = 0;\n mapping.maps[i].forEach((oldStart, oldEnd, newStart, newEnd) => {\n let dSize = (newEnd - newStart) - (oldEnd - oldStart);\n for (let i = 0; i < children.length; i += 3) {\n let end = children[i + 1];\n if (end < 0 || oldStart > end + baseOffset - moved)\n continue;\n let start = children[i] + baseOffset - moved;\n if (oldEnd >= start) {\n children[i + 1] = oldStart <= start ? -2 : -1;\n }\n else if (oldStart >= baseOffset && dSize) {\n children[i] += dSize;\n children[i + 1] += dSize;\n }\n }\n moved += dSize;\n });\n baseOffset = mapping.maps[i].map(baseOffset, -1);\n }\n // Find the child nodes that still correspond to a single node,\n // recursively call mapInner on them and update their positions.\n let mustRebuild = false;\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] < 0) { // Touched nodes\n if (children[i + 1] == -2) {\n mustRebuild = true;\n children[i + 1] = -1;\n continue;\n }\n let from = mapping.map(oldChildren[i] + oldOffset), fromLocal = from - offset;\n if (fromLocal < 0 || fromLocal >= node.content.size) {\n mustRebuild = true;\n continue;\n }\n // Must read oldChildren because children was tagged with -1\n let to = mapping.map(oldChildren[i + 1] + oldOffset, -1), toLocal = to - offset;\n let { index, offset: childOffset } = node.content.findIndex(fromLocal);\n let childNode = node.maybeChild(index);\n if (childNode && childOffset == fromLocal && childOffset + childNode.nodeSize == toLocal) {\n let mapped = children[i + 2]\n .mapInner(mapping, childNode, from + 1, oldChildren[i] + oldOffset + 1, options);\n if (mapped != empty) {\n children[i] = fromLocal;\n children[i + 1] = toLocal;\n children[i + 2] = mapped;\n }\n else {\n children[i + 1] = -2;\n mustRebuild = true;\n }\n }\n else {\n mustRebuild = true;\n }\n }\n // Remaining children must be collected and rebuilt into the appropriate structure\n if (mustRebuild) {\n let decorations = mapAndGatherRemainingDecorations(children, oldChildren, newLocal, mapping, offset, oldOffset, options);\n let built = buildTree(decorations, node, 0, options);\n newLocal = built.local;\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] < 0) {\n children.splice(i, 3);\n i -= 3;\n }\n for (let i = 0, j = 0; i < built.children.length; i += 3) {\n let from = built.children[i];\n while (j < children.length && children[j] < from)\n j += 3;\n children.splice(j, 0, built.children[i], built.children[i + 1], built.children[i + 2]);\n }\n }\n return new DecorationSet(newLocal.sort(byPos), children);\n}\nfunction moveSpans(spans, offset) {\n if (!offset || !spans.length)\n return spans;\n let result = [];\n for (let i = 0; i < spans.length; i++) {\n let span = spans[i];\n result.push(new Decoration(span.from + offset, span.to + offset, span.type));\n }\n return result;\n}\nfunction mapAndGatherRemainingDecorations(children, oldChildren, decorations, mapping, offset, oldOffset, options) {\n // Gather all decorations from the remaining marked children\n function gather(set, oldOffset) {\n for (let i = 0; i < set.local.length; i++) {\n let mapped = set.local[i].map(mapping, offset, oldOffset);\n if (mapped)\n decorations.push(mapped);\n else if (options.onRemove)\n options.onRemove(set.local[i].spec);\n }\n for (let i = 0; i < set.children.length; i += 3)\n gather(set.children[i + 2], set.children[i] + oldOffset + 1);\n }\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] == -1)\n gather(children[i + 2], oldChildren[i] + oldOffset + 1);\n return decorations;\n}\nfunction takeSpansForNode(spans, node, offset) {\n if (node.isLeaf)\n return null;\n let end = offset + node.nodeSize, found = null;\n for (let i = 0, span; i < spans.length; i++) {\n if ((span = spans[i]) && span.from > offset && span.to < end) {\n (found || (found = [])).push(span);\n spans[i] = null;\n }\n }\n return found;\n}\nfunction withoutNulls(array) {\n let result = [];\n for (let i = 0; i < array.length; i++)\n if (array[i] != null)\n result.push(array[i]);\n return result;\n}\n// Build up a tree that corresponds to a set of decorations. `offset`\n// is a base offset that should be subtracted from the `from` and `to`\n// positions in the spans (so that we don't have to allocate new spans\n// for recursive calls).\nfunction buildTree(spans, node, offset, options) {\n let children = [], hasNulls = false;\n node.forEach((childNode, localStart) => {\n let found = takeSpansForNode(spans, childNode, localStart + offset);\n if (found) {\n hasNulls = true;\n let subtree = buildTree(found, childNode, offset + localStart + 1, options);\n if (subtree != empty)\n children.push(localStart, localStart + childNode.nodeSize, subtree);\n }\n });\n let locals = moveSpans(hasNulls ? withoutNulls(spans) : spans, -offset).sort(byPos);\n for (let i = 0; i < locals.length; i++)\n if (!locals[i].type.valid(node, locals[i])) {\n if (options.onRemove)\n options.onRemove(locals[i].spec);\n locals.splice(i--, 1);\n }\n return locals.length || children.length ? new DecorationSet(locals, children) : empty;\n}\n// Used to sort decorations so that ones with a low start position\n// come first, and within a set with the same start position, those\n// with an smaller end position come first.\nfunction byPos(a, b) {\n return a.from - b.from || a.to - b.to;\n}\n// Scan a sorted array of decorations for partially overlapping spans,\n// and split those so that only fully overlapping spans are left (to\n// make subsequent rendering easier). Will return the input array if\n// no partially overlapping spans are found (the common case).\nfunction removeOverlap(spans) {\n let working = spans;\n for (let i = 0; i < working.length - 1; i++) {\n let span = working[i];\n if (span.from != span.to)\n for (let j = i + 1; j < working.length; j++) {\n let next = working[j];\n if (next.from == span.from) {\n if (next.to != span.to) {\n if (working == spans)\n working = spans.slice();\n // Followed by a partially overlapping larger span. Split that\n // span.\n working[j] = next.copy(next.from, span.to);\n insertAhead(working, j + 1, next.copy(span.to, next.to));\n }\n continue;\n }\n else {\n if (next.from < span.to) {\n if (working == spans)\n working = spans.slice();\n // The end of this one overlaps with a subsequent span. Split\n // this one.\n working[i] = span.copy(span.from, next.from);\n insertAhead(working, j, span.copy(next.from, span.to));\n }\n break;\n }\n }\n }\n return working;\n}\nfunction insertAhead(array, i, deco) {\n while (i < array.length && byPos(deco, array[i]) > 0)\n i++;\n array.splice(i, 0, deco);\n}\n// Get the decorations associated with the current props of a view.\nfunction viewDecorations(view) {\n let found = [];\n view.someProp(\"decorations\", f => {\n let result = f(view.state);\n if (result && result != empty)\n found.push(result);\n });\n if (view.cursorWrapper)\n found.push(DecorationSet.create(view.state.doc, [view.cursorWrapper.deco]));\n return DecorationGroup.from(found);\n}\n\nconst observeOptions = {\n childList: true,\n characterData: true,\n characterDataOldValue: true,\n attributes: true,\n attributeOldValue: true,\n subtree: true\n};\n// IE11 has very broken mutation observers, so we also listen to DOMCharacterDataModified\nconst useCharData = ie && ie_version <= 11;\nclass SelectionState {\n constructor() {\n this.anchorNode = null;\n this.anchorOffset = 0;\n this.focusNode = null;\n this.focusOffset = 0;\n }\n set(sel) {\n this.anchorNode = sel.anchorNode;\n this.anchorOffset = sel.anchorOffset;\n this.focusNode = sel.focusNode;\n this.focusOffset = sel.focusOffset;\n }\n clear() {\n this.anchorNode = this.focusNode = null;\n }\n eq(sel) {\n return sel.anchorNode == this.anchorNode && sel.anchorOffset == this.anchorOffset &&\n sel.focusNode == this.focusNode && sel.focusOffset == this.focusOffset;\n }\n}\nclass DOMObserver {\n constructor(view, handleDOMChange) {\n this.view = view;\n this.handleDOMChange = handleDOMChange;\n this.queue = [];\n this.flushingSoon = -1;\n this.observer = null;\n this.currentSelection = new SelectionState;\n this.onCharData = null;\n this.suppressingSelectionUpdates = false;\n this.lastChangedTextNode = null;\n this.observer = window.MutationObserver &&\n new window.MutationObserver(mutations => {\n for (let i = 0; i < mutations.length; i++)\n this.queue.push(mutations[i]);\n // IE11 will sometimes (on backspacing out a single character\n // text node after a BR node) call the observer callback\n // before actually updating the DOM, which will cause\n // ProseMirror to miss the change (see #930)\n if (ie && ie_version <= 11 && mutations.some(m => m.type == \"childList\" && m.removedNodes.length ||\n m.type == \"characterData\" && m.oldValue.length > m.target.nodeValue.length))\n this.flushSoon();\n else\n this.flush();\n });\n if (useCharData) {\n this.onCharData = e => {\n this.queue.push({ target: e.target, type: \"characterData\", oldValue: e.prevValue });\n this.flushSoon();\n };\n }\n this.onSelectionChange = this.onSelectionChange.bind(this);\n }\n flushSoon() {\n if (this.flushingSoon < 0)\n this.flushingSoon = window.setTimeout(() => { this.flushingSoon = -1; this.flush(); }, 20);\n }\n forceFlush() {\n if (this.flushingSoon > -1) {\n window.clearTimeout(this.flushingSoon);\n this.flushingSoon = -1;\n this.flush();\n }\n }\n start() {\n if (this.observer) {\n this.observer.takeRecords();\n this.observer.observe(this.view.dom, observeOptions);\n }\n if (this.onCharData)\n this.view.dom.addEventListener(\"DOMCharacterDataModified\", this.onCharData);\n this.connectSelection();\n }\n stop() {\n if (this.observer) {\n let take = this.observer.takeRecords();\n if (take.length) {\n for (let i = 0; i < take.length; i++)\n this.queue.push(take[i]);\n window.setTimeout(() => this.flush(), 20);\n }\n this.observer.disconnect();\n }\n if (this.onCharData)\n this.view.dom.removeEventListener(\"DOMCharacterDataModified\", this.onCharData);\n this.disconnectSelection();\n }\n connectSelection() {\n this.view.dom.ownerDocument.addEventListener(\"selectionchange\", this.onSelectionChange);\n }\n disconnectSelection() {\n this.view.dom.ownerDocument.removeEventListener(\"selectionchange\", this.onSelectionChange);\n }\n suppressSelectionUpdates() {\n this.suppressingSelectionUpdates = true;\n setTimeout(() => this.suppressingSelectionUpdates = false, 50);\n }\n onSelectionChange() {\n if (!hasFocusAndSelection(this.view))\n return;\n if (this.suppressingSelectionUpdates)\n return selectionToDOM(this.view);\n // Deletions on IE11 fire their events in the wrong order, giving\n // us a selection change event before the DOM changes are\n // reported.\n if (ie && ie_version <= 11 && !this.view.state.selection.empty) {\n let sel = this.view.domSelectionRange();\n // Selection.isCollapsed isn't reliable on IE\n if (sel.focusNode && isEquivalentPosition(sel.focusNode, sel.focusOffset, sel.anchorNode, sel.anchorOffset))\n return this.flushSoon();\n }\n this.flush();\n }\n setCurSelection() {\n this.currentSelection.set(this.view.domSelectionRange());\n }\n ignoreSelectionChange(sel) {\n if (!sel.focusNode)\n return true;\n let ancestors = new Set, container;\n for (let scan = sel.focusNode; scan; scan = parentNode(scan))\n ancestors.add(scan);\n for (let scan = sel.anchorNode; scan; scan = parentNode(scan))\n if (ancestors.has(scan)) {\n container = scan;\n break;\n }\n let desc = container && this.view.docView.nearestDesc(container);\n if (desc && desc.ignoreMutation({\n type: \"selection\",\n target: container.nodeType == 3 ? container.parentNode : container\n })) {\n this.setCurSelection();\n return true;\n }\n }\n pendingRecords() {\n if (this.observer)\n for (let mut of this.observer.takeRecords())\n this.queue.push(mut);\n return this.queue;\n }\n flush() {\n let { view } = this;\n if (!view.docView || this.flushingSoon > -1)\n return;\n let mutations = this.pendingRecords();\n if (mutations.length)\n this.queue = [];\n let sel = view.domSelectionRange();\n let newSel = !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(view) && !this.ignoreSelectionChange(sel);\n let from = -1, to = -1, typeOver = false, added = [];\n if (view.editable) {\n for (let i = 0; i < mutations.length; i++) {\n let result = this.registerMutation(mutations[i], added);\n if (result) {\n from = from < 0 ? result.from : Math.min(result.from, from);\n to = to < 0 ? result.to : Math.max(result.to, to);\n if (result.typeOver)\n typeOver = true;\n }\n }\n }\n if (gecko && added.length) {\n let brs = added.filter(n => n.nodeName == \"BR\");\n if (brs.length == 2) {\n let [a, b] = brs;\n if (a.parentNode && a.parentNode.parentNode == b.parentNode)\n b.remove();\n else\n a.remove();\n }\n else {\n let { focusNode } = this.currentSelection;\n for (let br of brs) {\n let parent = br.parentNode;\n if (parent && parent.nodeName == \"LI\" && (!focusNode || blockParent(view, focusNode) != parent))\n br.remove();\n }\n }\n }\n let readSel = null;\n // If it looks like the browser has reset the selection to the\n // start of the document after focus, restore the selection from\n // the state\n if (from < 0 && newSel && view.input.lastFocus > Date.now() - 200 &&\n Math.max(view.input.lastTouch, view.input.lastClick.time) < Date.now() - 300 &&\n selectionCollapsed(sel) && (readSel = selectionFromDOM(view)) &&\n readSel.eq(prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"Selection\"].near(view.state.doc.resolve(0), 1))) {\n view.input.lastFocus = 0;\n selectionToDOM(view);\n this.currentSelection.set(sel);\n view.scrollToSelection();\n }\n else if (from > -1 || newSel) {\n if (from > -1) {\n view.docView.markDirty(from, to);\n checkCSS(view);\n }\n this.handleDOMChange(from, to, typeOver, added);\n if (view.docView && view.docView.dirty)\n view.updateState(view.state);\n else if (!this.currentSelection.eq(sel))\n selectionToDOM(view);\n this.currentSelection.set(sel);\n }\n }\n registerMutation(mut, added) {\n // Ignore mutations inside nodes that were already noted as inserted\n if (added.indexOf(mut.target) > -1)\n return null;\n let desc = this.view.docView.nearestDesc(mut.target);\n if (mut.type == \"attributes\" &&\n (desc == this.view.docView || mut.attributeName == \"contenteditable\" ||\n // Firefox sometimes fires spurious events for null/empty styles\n (mut.attributeName == \"style\" && !mut.oldValue && !mut.target.getAttribute(\"style\"))))\n return null;\n if (!desc || desc.ignoreMutation(mut))\n return null;\n if (mut.type == \"childList\") {\n for (let i = 0; i < mut.addedNodes.length; i++) {\n let node = mut.addedNodes[i];\n added.push(node);\n if (node.nodeType == 3)\n this.lastChangedTextNode = node;\n }\n if (desc.contentDOM && desc.contentDOM != desc.dom && !desc.contentDOM.contains(mut.target))\n return { from: desc.posBefore, to: desc.posAfter };\n let prev = mut.previousSibling, next = mut.nextSibling;\n if (ie && ie_version <= 11 && mut.addedNodes.length) {\n // IE11 gives us incorrect next/prev siblings for some\n // insertions, so if there are added nodes, recompute those\n for (let i = 0; i < mut.addedNodes.length; i++) {\n let { previousSibling, nextSibling } = mut.addedNodes[i];\n if (!previousSibling || Array.prototype.indexOf.call(mut.addedNodes, previousSibling) < 0)\n prev = previousSibling;\n if (!nextSibling || Array.prototype.indexOf.call(mut.addedNodes, nextSibling) < 0)\n next = nextSibling;\n }\n }\n let fromOffset = prev && prev.parentNode == mut.target\n ? domIndex(prev) + 1 : 0;\n let from = desc.localPosFromDOM(mut.target, fromOffset, -1);\n let toOffset = next && next.parentNode == mut.target\n ? domIndex(next) : mut.target.childNodes.length;\n let to = desc.localPosFromDOM(mut.target, toOffset, 1);\n return { from, to };\n }\n else if (mut.type == \"attributes\") {\n return { from: desc.posAtStart - desc.border, to: desc.posAtEnd + desc.border };\n }\n else { // \"characterData\"\n this.lastChangedTextNode = mut.target;\n return {\n from: desc.posAtStart,\n to: desc.posAtEnd,\n // An event was generated for a text change that didn't change\n // any text. Mark the dom change to fall back to assuming the\n // selection was typed over with an identical value if it can't\n // find another change.\n typeOver: mut.target.nodeValue == mut.oldValue\n };\n }\n }\n}\nlet cssChecked = new WeakMap();\nlet cssCheckWarned = false;\nfunction checkCSS(view) {\n if (cssChecked.has(view))\n return;\n cssChecked.set(view, null);\n if (['normal', 'nowrap', 'pre-line'].indexOf(getComputedStyle(view.dom).whiteSpace) !== -1) {\n view.requiresGeckoHackNode = gecko;\n if (cssCheckWarned)\n return;\n console[\"warn\"](\"ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package.\");\n cssCheckWarned = true;\n }\n}\nfunction rangeToSelectionRange(view, range) {\n let anchorNode = range.startContainer, anchorOffset = range.startOffset;\n let focusNode = range.endContainer, focusOffset = range.endOffset;\n let currentAnchor = view.domAtPos(view.state.selection.anchor);\n // Since such a range doesn't distinguish between anchor and head,\n // use a heuristic that flips it around if its end matches the\n // current anchor.\n if (isEquivalentPosition(currentAnchor.node, currentAnchor.offset, focusNode, focusOffset))\n [anchorNode, anchorOffset, focusNode, focusOffset] = [focusNode, focusOffset, anchorNode, anchorOffset];\n return { anchorNode, anchorOffset, focusNode, focusOffset };\n}\n// Used to work around a Safari Selection/shadow DOM bug\n// Based on https://github.com/codemirror/dev/issues/414 fix\nfunction safariShadowSelectionRange(view, selection) {\n if (selection.getComposedRanges) {\n let range = selection.getComposedRanges(view.root)[0];\n if (range)\n return rangeToSelectionRange(view, range);\n }\n let found;\n function read(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n found = event.getTargetRanges()[0];\n }\n // Because Safari (at least in 2018-2022) doesn't provide regular\n // access to the selection inside a shadowRoot, we have to perform a\n // ridiculous hack to get at it—using `execCommand` to trigger a\n // `beforeInput` event so that we can read the target range from the\n // event.\n view.dom.addEventListener(\"beforeinput\", read, true);\n document.execCommand(\"indent\");\n view.dom.removeEventListener(\"beforeinput\", read, true);\n return found ? rangeToSelectionRange(view, found) : null;\n}\nfunction blockParent(view, node) {\n for (let p = node.parentNode; p && p != view.dom; p = p.parentNode) {\n let desc = view.docView.nearestDesc(p, true);\n if (desc && desc.node.isBlock)\n return p;\n }\n return null;\n}\n\n// Note that all referencing and parsing is done with the\n// start-of-operation selection and document, since that's the one\n// that the DOM represents. If any changes came in in the meantime,\n// the modification is mapped over those before it is applied, in\n// readDOMChange.\nfunction parseBetween(view, from_, to_) {\n let { node: parent, fromOffset, toOffset, from, to } = view.docView.parseRange(from_, to_);\n let domSel = view.domSelectionRange();\n let find;\n let anchor = domSel.anchorNode;\n if (anchor && view.dom.contains(anchor.nodeType == 1 ? anchor : anchor.parentNode)) {\n find = [{ node: anchor, offset: domSel.anchorOffset }];\n if (!selectionCollapsed(domSel))\n find.push({ node: domSel.focusNode, offset: domSel.focusOffset });\n }\n // Work around issue in Chrome where backspacing sometimes replaces\n // the deleted content with a random BR node (issues #799, #831)\n if (chrome && view.input.lastKeyCode === 8) {\n for (let off = toOffset; off > fromOffset; off--) {\n let node = parent.childNodes[off - 1], desc = node.pmViewDesc;\n if (node.nodeName == \"BR\" && !desc) {\n toOffset = off;\n break;\n }\n if (!desc || desc.size)\n break;\n }\n }\n let startDoc = view.state.doc;\n let parser = view.someProp(\"domParser\") || prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"DOMParser\"].fromSchema(view.state.schema);\n let $from = startDoc.resolve(from);\n let sel = null, doc = parser.parse(parent, {\n topNode: $from.parent,\n topMatch: $from.parent.contentMatchAt($from.index()),\n topOpen: true,\n from: fromOffset,\n to: toOffset,\n preserveWhitespace: $from.parent.type.whitespace == \"pre\" ? \"full\" : true,\n findPositions: find,\n ruleFromNode,\n context: $from\n });\n if (find && find[0].pos != null) {\n let anchor = find[0].pos, head = find[1] && find[1].pos;\n if (head == null)\n head = anchor;\n sel = { anchor: anchor + from, head: head + from };\n }\n return { doc, sel, from, to };\n}\nfunction ruleFromNode(dom) {\n let desc = dom.pmViewDesc;\n if (desc) {\n return desc.parseRule();\n }\n else if (dom.nodeName == \"BR\" && dom.parentNode) {\n // Safari replaces the list item or table cell with a BR\n // directly in the list node (?!) if you delete the last\n // character in a list item or table cell (#708, #862)\n if (safari && /^(ul|ol)$/i.test(dom.parentNode.nodeName)) {\n let skip = document.createElement(\"div\");\n skip.appendChild(document.createElement(\"li\"));\n return { skip };\n }\n else if (dom.parentNode.lastChild == dom || safari && /^(tr|table)$/i.test(dom.parentNode.nodeName)) {\n return { ignore: true };\n }\n }\n else if (dom.nodeName == \"IMG\" && dom.getAttribute(\"mark-placeholder\")) {\n return { ignore: true };\n }\n return null;\n}\nconst isInline = /^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;\nfunction readDOMChange(view, from, to, typeOver, addedNodes) {\n let compositionID = view.input.compositionPendingChanges || (view.composing ? view.input.compositionID : 0);\n view.input.compositionPendingChanges = 0;\n if (from < 0) {\n let origin = view.input.lastSelectionTime > Date.now() - 50 ? view.input.lastSelectionOrigin : null;\n let newSel = selectionFromDOM(view, origin);\n if (newSel && !view.state.selection.eq(newSel)) {\n if (chrome && android &&\n view.input.lastKeyCode === 13 && Date.now() - 100 < view.input.lastKeyCodeTime &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\"))))\n return;\n let tr = view.state.tr.setSelection(newSel);\n if (origin == \"pointer\")\n tr.setMeta(\"pointer\", true);\n else if (origin == \"key\")\n tr.scrollIntoView();\n if (compositionID)\n tr.setMeta(\"composition\", compositionID);\n view.dispatch(tr);\n }\n return;\n }\n let $before = view.state.doc.resolve(from);\n let shared = $before.sharedDepth(to);\n from = $before.before(shared + 1);\n to = view.state.doc.resolve(to).after(shared + 1);\n let sel = view.state.selection;\n let parse = parseBetween(view, from, to);\n let doc = view.state.doc, compare = doc.slice(parse.from, parse.to);\n let preferredPos, preferredSide;\n // Prefer anchoring to end when Backspace is pressed\n if (view.input.lastKeyCode === 8 && Date.now() - 100 < view.input.lastKeyCodeTime) {\n preferredPos = view.state.selection.to;\n preferredSide = \"end\";\n }\n else {\n preferredPos = view.state.selection.from;\n preferredSide = \"start\";\n }\n view.input.lastKeyCode = null;\n let change = findDiff(compare.content, parse.doc.content, parse.from, preferredPos, preferredSide);\n if ((ios && view.input.lastIOSEnter > Date.now() - 225 || android) &&\n addedNodes.some(n => n.nodeType == 1 && !isInline.test(n.nodeName)) &&\n (!change || change.endA >= change.endB) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")))) {\n view.input.lastIOSEnter = 0;\n return;\n }\n if (!change) {\n if (typeOver && sel instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"TextSelection\"] && !sel.empty && sel.$head.sameParent(sel.$anchor) &&\n !view.composing && !(parse.sel && parse.sel.anchor != parse.sel.head)) {\n change = { start: sel.from, endA: sel.to, endB: sel.to };\n }\n else {\n if (parse.sel) {\n let sel = resolveSelection(view, view.state.doc, parse.sel);\n if (sel && !sel.eq(view.state.selection)) {\n let tr = view.state.tr.setSelection(sel);\n if (compositionID)\n tr.setMeta(\"composition\", compositionID);\n view.dispatch(tr);\n }\n }\n return;\n }\n }\n view.input.domChangeCount++;\n // Handle the case where overwriting a selection by typing matches\n // the start or end of the selected content, creating a change\n // that's smaller than what was actually overwritten.\n if (view.state.selection.from < view.state.selection.to &&\n change.start == change.endB &&\n view.state.selection instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"TextSelection\"]) {\n if (change.start > view.state.selection.from && change.start <= view.state.selection.from + 2 &&\n view.state.selection.from >= parse.from) {\n change.start = view.state.selection.from;\n }\n else if (change.endA < view.state.selection.to && change.endA >= view.state.selection.to - 2 &&\n view.state.selection.to <= parse.to) {\n change.endB += (view.state.selection.to - change.endA);\n change.endA = view.state.selection.to;\n }\n }\n // IE11 will insert a non-breaking space _ahead_ of the space after\n // the cursor space when adding a space before another space. When\n // that happened, adjust the change to cover the space instead.\n if (ie && ie_version <= 11 && change.endB == change.start + 1 &&\n change.endA == change.start && change.start > parse.from &&\n parse.doc.textBetween(change.start - parse.from - 1, change.start - parse.from + 1) == \" \\u00a0\") {\n change.start--;\n change.endA--;\n change.endB--;\n }\n let $from = parse.doc.resolveNoCache(change.start - parse.from);\n let $to = parse.doc.resolveNoCache(change.endB - parse.from);\n let $fromA = doc.resolve(change.start);\n let inlineChange = $from.sameParent($to) && $from.parent.inlineContent && $fromA.end() >= change.endA;\n let nextSel;\n // If this looks like the effect of pressing Enter (or was recorded\n // as being an iOS enter press), just dispatch an Enter key instead.\n if (((ios && view.input.lastIOSEnter > Date.now() - 225 &&\n (!inlineChange || addedNodes.some(n => n.nodeName == \"DIV\" || n.nodeName == \"P\"))) ||\n (!inlineChange && $from.pos < parse.doc.content.size && !$from.sameParent($to) &&\n (nextSel = prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"Selection\"].findFrom(parse.doc.resolve($from.pos + 1), 1, true)) &&\n nextSel.head == $to.pos)) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")))) {\n view.input.lastIOSEnter = 0;\n return;\n }\n // Same for backspace\n if (view.state.selection.anchor > change.start &&\n looksLikeBackspace(doc, change.start, change.endA, $from, $to) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(8, \"Backspace\")))) {\n if (android && chrome)\n view.domObserver.suppressSelectionUpdates(); // #820\n return;\n }\n // Chrome Android will occasionally, during composition, delete the\n // entire composition and then immediately insert it again. This is\n // used to detect that situation.\n if (chrome && android && change.endB == change.start)\n view.input.lastAndroidDelete = Date.now();\n // This tries to detect Android virtual keyboard\n // enter-and-pick-suggestion action. That sometimes (see issue\n // #1059) first fires a DOM mutation, before moving the selection to\n // the newly created block. And then, because ProseMirror cleans up\n // the DOM selection, it gives up moving the selection entirely,\n // leaving the cursor in the wrong place. When that happens, we drop\n // the new paragraph from the initial change, and fire a simulated\n // enter key afterwards.\n if (android && !inlineChange && $from.start() != $to.start() && $to.parentOffset == 0 && $from.depth == $to.depth &&\n parse.sel && parse.sel.anchor == parse.sel.head && parse.sel.head == change.endA) {\n change.endB -= 2;\n $to = parse.doc.resolveNoCache(change.endB - parse.from);\n setTimeout(() => {\n view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(13, \"Enter\")); });\n }, 20);\n }\n let chFrom = change.start, chTo = change.endA;\n let tr, storedMarks, markChange;\n if (inlineChange) {\n if ($from.pos == $to.pos) { // Deletion\n // IE11 sometimes weirdly moves the DOM selection around after\n // backspacing out the first element in a textblock\n if (ie && ie_version <= 11 && $from.parentOffset == 0) {\n view.domObserver.suppressSelectionUpdates();\n setTimeout(() => selectionToDOM(view), 20);\n }\n tr = view.state.tr.delete(chFrom, chTo);\n storedMarks = doc.resolve(change.start).marksAcross(doc.resolve(change.endA));\n }\n else if ( // Adding or removing a mark\n change.endA == change.endB &&\n (markChange = isMarkChange($from.parent.content.cut($from.parentOffset, $to.parentOffset), $fromA.parent.content.cut($fromA.parentOffset, change.endA - $fromA.start())))) {\n tr = view.state.tr;\n if (markChange.type == \"add\")\n tr.addMark(chFrom, chTo, markChange.mark);\n else\n tr.removeMark(chFrom, chTo, markChange.mark);\n }\n else if ($from.parent.child($from.index()).isText && $from.index() == $to.index() - ($to.textOffset ? 0 : 1)) {\n // Both positions in the same text node -- simply insert text\n let text = $from.parent.textBetween($from.parentOffset, $to.parentOffset);\n if (view.someProp(\"handleTextInput\", f => f(view, chFrom, chTo, text)))\n return;\n tr = view.state.tr.insertText(text, chFrom, chTo);\n }\n }\n if (!tr)\n tr = view.state.tr.replace(chFrom, chTo, parse.doc.slice(change.start - parse.from, change.endB - parse.from));\n if (parse.sel) {\n let sel = resolveSelection(view, tr.doc, parse.sel);\n // Chrome Android will sometimes, during composition, report the\n // selection in the wrong place. If it looks like that is\n // happening, don't update the selection.\n // Edge just doesn't move the cursor forward when you start typing\n // in an empty block or between br nodes.\n if (sel && !(chrome && android && view.composing && sel.empty &&\n (change.start != change.endB || view.input.lastAndroidDelete < Date.now() - 100) &&\n (sel.head == chFrom || sel.head == tr.mapping.map(chTo) - 1) ||\n ie && sel.empty && sel.head == chFrom))\n tr.setSelection(sel);\n }\n if (storedMarks)\n tr.ensureMarks(storedMarks);\n if (compositionID)\n tr.setMeta(\"composition\", compositionID);\n view.dispatch(tr.scrollIntoView());\n}\nfunction resolveSelection(view, doc, parsedSel) {\n if (Math.max(parsedSel.anchor, parsedSel.head) > doc.content.size)\n return null;\n return selectionBetween(view, doc.resolve(parsedSel.anchor), doc.resolve(parsedSel.head));\n}\n// Given two same-length, non-empty fragments of inline content,\n// determine whether the first could be created from the second by\n// removing or adding a single mark type.\nfunction isMarkChange(cur, prev) {\n let curMarks = cur.firstChild.marks, prevMarks = prev.firstChild.marks;\n let added = curMarks, removed = prevMarks, type, mark, update;\n for (let i = 0; i < prevMarks.length; i++)\n added = prevMarks[i].removeFromSet(added);\n for (let i = 0; i < curMarks.length; i++)\n removed = curMarks[i].removeFromSet(removed);\n if (added.length == 1 && removed.length == 0) {\n mark = added[0];\n type = \"add\";\n update = (node) => node.mark(mark.addToSet(node.marks));\n }\n else if (added.length == 0 && removed.length == 1) {\n mark = removed[0];\n type = \"remove\";\n update = (node) => node.mark(mark.removeFromSet(node.marks));\n }\n else {\n return null;\n }\n let updated = [];\n for (let i = 0; i < prev.childCount; i++)\n updated.push(update(prev.child(i)));\n if (prosemirror_model__WEBPACK_IMPORTED_MODULE_1__[\"Fragment\"].from(updated).eq(cur))\n return { mark, type };\n}\nfunction looksLikeBackspace(old, start, end, $newStart, $newEnd) {\n if ( // The content must have shrunk\n end - start <= $newEnd.pos - $newStart.pos ||\n // newEnd must point directly at or after the end of the block that newStart points into\n skipClosingAndOpening($newStart, true, false) < $newEnd.pos)\n return false;\n let $start = old.resolve(start);\n // Handle the case where, rather than joining blocks, the change just removed an entire block\n if (!$newStart.parent.isTextblock) {\n let after = $start.nodeAfter;\n return after != null && end == start + after.nodeSize;\n }\n // Start must be at the end of a block\n if ($start.parentOffset < $start.parent.content.size || !$start.parent.isTextblock)\n return false;\n let $next = old.resolve(skipClosingAndOpening($start, true, true));\n // The next textblock must start before end and end near it\n if (!$next.parent.isTextblock || $next.pos > end ||\n skipClosingAndOpening($next, true, false) < end)\n return false;\n // The fragments after the join point must match\n return $newStart.parent.content.cut($newStart.parentOffset).eq($next.parent.content);\n}\nfunction skipClosingAndOpening($pos, fromEnd, mayOpen) {\n let depth = $pos.depth, end = fromEnd ? $pos.end() : $pos.pos;\n while (depth > 0 && (fromEnd || $pos.indexAfter(depth) == $pos.node(depth).childCount)) {\n depth--;\n end++;\n fromEnd = false;\n }\n if (mayOpen) {\n let next = $pos.node(depth).maybeChild($pos.indexAfter(depth));\n while (next && !next.isLeaf) {\n next = next.firstChild;\n end++;\n }\n }\n return end;\n}\nfunction findDiff(a, b, pos, preferredPos, preferredSide) {\n let start = a.findDiffStart(b, pos);\n if (start == null)\n return null;\n let { a: endA, b: endB } = a.findDiffEnd(b, pos + a.size, pos + b.size);\n if (preferredSide == \"end\") {\n let adjust = Math.max(0, start - Math.min(endA, endB));\n preferredPos -= endA + adjust - start;\n }\n if (endA < start && a.size < b.size) {\n let move = preferredPos <= start && preferredPos >= endA ? start - preferredPos : 0;\n start -= move;\n if (start && start < b.size && isSurrogatePair(b.textBetween(start - 1, start + 1)))\n start += move ? 1 : -1;\n endB = start + (endB - endA);\n endA = start;\n }\n else if (endB < start) {\n let move = preferredPos <= start && preferredPos >= endB ? start - preferredPos : 0;\n start -= move;\n if (start && start < a.size && isSurrogatePair(a.textBetween(start - 1, start + 1)))\n start += move ? 1 : -1;\n endA = start + (endA - endB);\n endB = start;\n }\n return { start, endA, endB };\n}\nfunction isSurrogatePair(str) {\n if (str.length != 2)\n return false;\n let a = str.charCodeAt(0), b = str.charCodeAt(1);\n return a >= 0xDC00 && a <= 0xDFFF && b >= 0xD800 && b <= 0xDBFF;\n}\n\n/**\n@internal\n*/\nconst __serializeForClipboard = serializeForClipboard;\n/**\n@internal\n*/\nconst __parseFromClipboard = parseFromClipboard;\n/**\n@internal\n*/\nconst __endComposition = endComposition;\n/**\nAn editor view manages the DOM structure that represents an\neditable document. Its state and behavior are determined by its\n[props](https://prosemirror.net/docs/ref/#view.DirectEditorProps).\n*/\nclass EditorView {\n /**\n Create a view. `place` may be a DOM node that the editor should\n be appended to, a function that will place it into the document,\n or an object whose `mount` property holds the node to use as the\n document container. If it is `null`, the editor will not be\n added to the document.\n */\n constructor(place, props) {\n this._root = null;\n /**\n @internal\n */\n this.focused = false;\n /**\n Kludge used to work around a Chrome bug @internal\n */\n this.trackWrites = null;\n this.mounted = false;\n /**\n @internal\n */\n this.markCursor = null;\n /**\n @internal\n */\n this.cursorWrapper = null;\n /**\n @internal\n */\n this.lastSelectedViewDesc = undefined;\n /**\n @internal\n */\n this.input = new InputState;\n this.prevDirectPlugins = [];\n this.pluginViews = [];\n /**\n Holds `true` when a hack node is needed in Firefox to prevent the\n [space is eaten issue](https://github.com/ProseMirror/prosemirror/issues/651)\n @internal\n */\n this.requiresGeckoHackNode = false;\n /**\n When editor content is being dragged, this object contains\n information about the dragged slice and whether it is being\n copied or moved. At any other time, it is null.\n */\n this.dragging = null;\n this._props = props;\n this.state = props.state;\n this.directPlugins = props.plugins || [];\n this.directPlugins.forEach(checkStateComponent);\n this.dispatch = this.dispatch.bind(this);\n this.dom = (place && place.mount) || document.createElement(\"div\");\n if (place) {\n if (place.appendChild)\n place.appendChild(this.dom);\n else if (typeof place == \"function\")\n place(this.dom);\n else if (place.mount)\n this.mounted = true;\n }\n this.editable = getEditable(this);\n updateCursorWrapper(this);\n this.nodeViews = buildNodeViews(this);\n this.docView = docViewDesc(this.state.doc, computeDocDeco(this), viewDecorations(this), this.dom, this);\n this.domObserver = new DOMObserver(this, (from, to, typeOver, added) => readDOMChange(this, from, to, typeOver, added));\n this.domObserver.start();\n initInput(this);\n this.updatePluginViews();\n }\n /**\n Holds `true` when a\n [composition](https://w3c.github.io/uievents/#events-compositionevents)\n is active.\n */\n get composing() { return this.input.composing; }\n /**\n The view's current [props](https://prosemirror.net/docs/ref/#view.EditorProps).\n */\n get props() {\n if (this._props.state != this.state) {\n let prev = this._props;\n this._props = {};\n for (let name in prev)\n this._props[name] = prev[name];\n this._props.state = this.state;\n }\n return this._props;\n }\n /**\n Update the view's props. Will immediately cause an update to\n the DOM.\n */\n update(props) {\n if (props.handleDOMEvents != this._props.handleDOMEvents)\n ensureListeners(this);\n let prevProps = this._props;\n this._props = props;\n if (props.plugins) {\n props.plugins.forEach(checkStateComponent);\n this.directPlugins = props.plugins;\n }\n this.updateStateInner(props.state, prevProps);\n }\n /**\n Update the view by updating existing props object with the object\n given as argument. Equivalent to `view.update(Object.assign({},\n view.props, props))`.\n */\n setProps(props) {\n let updated = {};\n for (let name in this._props)\n updated[name] = this._props[name];\n updated.state = this.state;\n for (let name in props)\n updated[name] = props[name];\n this.update(updated);\n }\n /**\n Update the editor's `state` prop, without touching any of the\n other props.\n */\n updateState(state) {\n this.updateStateInner(state, this._props);\n }\n updateStateInner(state, prevProps) {\n var _a;\n let prev = this.state, redraw = false, updateSel = false;\n // When stored marks are added, stop composition, so that they can\n // be displayed.\n if (state.storedMarks && this.composing) {\n clearComposition(this);\n updateSel = true;\n }\n this.state = state;\n let pluginsChanged = prev.plugins != state.plugins || this._props.plugins != prevProps.plugins;\n if (pluginsChanged || this._props.plugins != prevProps.plugins || this._props.nodeViews != prevProps.nodeViews) {\n let nodeViews = buildNodeViews(this);\n if (changedNodeViews(nodeViews, this.nodeViews)) {\n this.nodeViews = nodeViews;\n redraw = true;\n }\n }\n if (pluginsChanged || prevProps.handleDOMEvents != this._props.handleDOMEvents) {\n ensureListeners(this);\n }\n this.editable = getEditable(this);\n updateCursorWrapper(this);\n let innerDeco = viewDecorations(this), outerDeco = computeDocDeco(this);\n let scroll = prev.plugins != state.plugins && !prev.doc.eq(state.doc) ? \"reset\"\n : state.scrollToSelection > prev.scrollToSelection ? \"to selection\" : \"preserve\";\n let updateDoc = redraw || !this.docView.matchesNode(state.doc, outerDeco, innerDeco);\n if (updateDoc || !state.selection.eq(prev.selection))\n updateSel = true;\n let oldScrollPos = scroll == \"preserve\" && updateSel && this.dom.style.overflowAnchor == null && storeScrollPos(this);\n if (updateSel) {\n this.domObserver.stop();\n // Work around an issue in Chrome, IE, and Edge where changing\n // the DOM around an active selection puts it into a broken\n // state where the thing the user sees differs from the\n // selection reported by the Selection object (#710, #973,\n // #1011, #1013, #1035).\n let forceSelUpdate = updateDoc && (ie || chrome) && !this.composing &&\n !prev.selection.empty && !state.selection.empty && selectionContextChanged(prev.selection, state.selection);\n if (updateDoc) {\n // If the node that the selection points into is written to,\n // Chrome sometimes starts misreporting the selection, so this\n // tracks that and forces a selection reset when our update\n // did write to the node.\n let chromeKludge = chrome ? (this.trackWrites = this.domSelectionRange().focusNode) : null;\n if (this.composing)\n this.input.compositionNode = findCompositionNode(this);\n if (redraw || !this.docView.update(state.doc, outerDeco, innerDeco, this)) {\n this.docView.updateOuterDeco(outerDeco);\n this.docView.destroy();\n this.docView = docViewDesc(state.doc, outerDeco, innerDeco, this.dom, this);\n }\n if (chromeKludge && !this.trackWrites)\n forceSelUpdate = true;\n }\n // Work around for an issue where an update arriving right between\n // a DOM selection change and the \"selectionchange\" event for it\n // can cause a spurious DOM selection update, disrupting mouse\n // drag selection.\n if (forceSelUpdate ||\n !(this.input.mouseDown && this.domObserver.currentSelection.eq(this.domSelectionRange()) &&\n anchorInRightPlace(this))) {\n selectionToDOM(this, forceSelUpdate);\n }\n else {\n syncNodeSelection(this, state.selection);\n this.domObserver.setCurSelection();\n }\n this.domObserver.start();\n }\n this.updatePluginViews(prev);\n if (((_a = this.dragging) === null || _a === void 0 ? void 0 : _a.node) && !prev.doc.eq(state.doc))\n this.updateDraggedNode(this.dragging, prev);\n if (scroll == \"reset\") {\n this.dom.scrollTop = 0;\n }\n else if (scroll == \"to selection\") {\n this.scrollToSelection();\n }\n else if (oldScrollPos) {\n resetScrollPos(oldScrollPos);\n }\n }\n /**\n @internal\n */\n scrollToSelection() {\n let startDOM = this.domSelectionRange().focusNode;\n if (this.someProp(\"handleScrollToSelection\", f => f(this))) ;\n else if (this.state.selection instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"]) {\n let target = this.docView.domAfterPos(this.state.selection.from);\n if (target.nodeType == 1)\n scrollRectIntoView(this, target.getBoundingClientRect(), startDOM);\n }\n else {\n scrollRectIntoView(this, this.coordsAtPos(this.state.selection.head, 1), startDOM);\n }\n }\n destroyPluginViews() {\n let view;\n while (view = this.pluginViews.pop())\n if (view.destroy)\n view.destroy();\n }\n updatePluginViews(prevState) {\n if (!prevState || prevState.plugins != this.state.plugins || this.directPlugins != this.prevDirectPlugins) {\n this.prevDirectPlugins = this.directPlugins;\n this.destroyPluginViews();\n for (let i = 0; i < this.directPlugins.length; i++) {\n let plugin = this.directPlugins[i];\n if (plugin.spec.view)\n this.pluginViews.push(plugin.spec.view(this));\n }\n for (let i = 0; i < this.state.plugins.length; i++) {\n let plugin = this.state.plugins[i];\n if (plugin.spec.view)\n this.pluginViews.push(plugin.spec.view(this));\n }\n }\n else {\n for (let i = 0; i < this.pluginViews.length; i++) {\n let pluginView = this.pluginViews[i];\n if (pluginView.update)\n pluginView.update(this, prevState);\n }\n }\n }\n updateDraggedNode(dragging, prev) {\n let sel = dragging.node, found = -1;\n if (this.state.doc.nodeAt(sel.from) == sel.node) {\n found = sel.from;\n }\n else {\n let movedPos = sel.from + (this.state.doc.content.size - prev.doc.content.size);\n let moved = movedPos > 0 && this.state.doc.nodeAt(movedPos);\n if (moved == sel.node)\n found = movedPos;\n }\n this.dragging = new Dragging(dragging.slice, dragging.move, found < 0 ? undefined : prosemirror_state__WEBPACK_IMPORTED_MODULE_0__[\"NodeSelection\"].create(this.state.doc, found));\n }\n someProp(propName, f) {\n let prop = this._props && this._props[propName], value;\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n for (let i = 0; i < this.directPlugins.length; i++) {\n let prop = this.directPlugins[i].props[propName];\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n }\n let plugins = this.state.plugins;\n if (plugins)\n for (let i = 0; i < plugins.length; i++) {\n let prop = plugins[i].props[propName];\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n }\n }\n /**\n Query whether the view has focus.\n */\n hasFocus() {\n // Work around IE not handling focus correctly if resize handles are shown.\n // If the cursor is inside an element with resize handles, activeElement\n // will be that element instead of this.dom.\n if (ie) {\n // If activeElement is within this.dom, and there are no other elements\n // setting `contenteditable` to false in between, treat it as focused.\n let node = this.root.activeElement;\n if (node == this.dom)\n return true;\n if (!node || !this.dom.contains(node))\n return false;\n while (node && this.dom != node && this.dom.contains(node)) {\n if (node.contentEditable == 'false')\n return false;\n node = node.parentElement;\n }\n return true;\n }\n return this.root.activeElement == this.dom;\n }\n /**\n Focus the editor.\n */\n focus() {\n this.domObserver.stop();\n if (this.editable)\n focusPreventScroll(this.dom);\n selectionToDOM(this);\n this.domObserver.start();\n }\n /**\n Get the document root in which the editor exists. This will\n usually be the top-level `document`, but might be a [shadow\n DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Shadow_DOM)\n root if the editor is inside one.\n */\n get root() {\n let cached = this._root;\n if (cached == null)\n for (let search = this.dom.parentNode; search; search = search.parentNode) {\n if (search.nodeType == 9 || (search.nodeType == 11 && search.host)) {\n if (!search.getSelection)\n Object.getPrototypeOf(search).getSelection = () => search.ownerDocument.getSelection();\n return this._root = search;\n }\n }\n return cached || document;\n }\n /**\n When an existing editor view is moved to a new document or\n shadow tree, call this to make it recompute its root.\n */\n updateRoot() {\n this._root = null;\n }\n /**\n Given a pair of viewport coordinates, return the document\n position that corresponds to them. May return null if the given\n coordinates aren't inside of the editor. When an object is\n returned, its `pos` property is the position nearest to the\n coordinates, and its `inside` property holds the position of the\n inner node that the position falls inside of, or -1 if it is at\n the top level, not in any node.\n */\n posAtCoords(coords) {\n return posAtCoords(this, coords);\n }\n /**\n Returns the viewport rectangle at a given document position.\n `left` and `right` will be the same number, as this returns a\n flat cursor-ish rectangle. If the position is between two things\n that aren't directly adjacent, `side` determines which element\n is used. When < 0, the element before the position is used,\n otherwise the element after.\n */\n coordsAtPos(pos, side = 1) {\n return coordsAtPos(this, pos, side);\n }\n /**\n Find the DOM position that corresponds to the given document\n position. When `side` is negative, find the position as close as\n possible to the content before the position. When positive,\n prefer positions close to the content after the position. When\n zero, prefer as shallow a position as possible.\n \n Note that you should **not** mutate the editor's internal DOM,\n only inspect it (and even that is usually not necessary).\n */\n domAtPos(pos, side = 0) {\n return this.docView.domFromPos(pos, side);\n }\n /**\n Find the DOM node that represents the document node after the\n given position. May return `null` when the position doesn't point\n in front of a node or if the node is inside an opaque node view.\n \n This is intended to be able to call things like\n `getBoundingClientRect` on that DOM node. Do **not** mutate the\n editor DOM directly, or add styling this way, since that will be\n immediately overriden by the editor as it redraws the node.\n */\n nodeDOM(pos) {\n let desc = this.docView.descAt(pos);\n return desc ? desc.nodeDOM : null;\n }\n /**\n Find the document position that corresponds to a given DOM\n position. (Whenever possible, it is preferable to inspect the\n document structure directly, rather than poking around in the\n DOM, but sometimes—for example when interpreting an event\n target—you don't have a choice.)\n \n The `bias` parameter can be used to influence which side of a DOM\n node to use when the position is inside a leaf node.\n */\n posAtDOM(node, offset, bias = -1) {\n let pos = this.docView.posFromDOM(node, offset, bias);\n if (pos == null)\n throw new RangeError(\"DOM position not inside the editor\");\n return pos;\n }\n /**\n Find out whether the selection is at the end of a textblock when\n moving in a given direction. When, for example, given `\"left\"`,\n it will return true if moving left from the current cursor\n position would leave that position's parent textblock. Will apply\n to the view's current state by default, but it is possible to\n pass a different state.\n */\n endOfTextblock(dir, state) {\n return endOfTextblock(this, state || this.state, dir);\n }\n /**\n Run the editor's paste logic with the given HTML string. The\n `event`, if given, will be passed to the\n [`handlePaste`](https://prosemirror.net/docs/ref/#view.EditorProps.handlePaste) hook.\n */\n pasteHTML(html, event) {\n return doPaste(this, \"\", html, false, event || new ClipboardEvent(\"paste\"));\n }\n /**\n Run the editor's paste logic with the given plain-text input.\n */\n pasteText(text, event) {\n return doPaste(this, text, null, true, event || new ClipboardEvent(\"paste\"));\n }\n /**\n Removes the editor from the DOM and destroys all [node\n views](https://prosemirror.net/docs/ref/#view.NodeView).\n */\n destroy() {\n if (!this.docView)\n return;\n destroyInput(this);\n this.destroyPluginViews();\n if (this.mounted) {\n this.docView.update(this.state.doc, [], viewDecorations(this), this);\n this.dom.textContent = \"\";\n }\n else if (this.dom.parentNode) {\n this.dom.parentNode.removeChild(this.dom);\n }\n this.docView.destroy();\n this.docView = null;\n clearReusedRange();\n }\n /**\n This is true when the view has been\n [destroyed](https://prosemirror.net/docs/ref/#view.EditorView.destroy) (and thus should not be\n used anymore).\n */\n get isDestroyed() {\n return this.docView == null;\n }\n /**\n Used for testing.\n */\n dispatchEvent(event) {\n return dispatchEvent(this, event);\n }\n /**\n Dispatch a transaction. Will call\n [`dispatchTransaction`](https://prosemirror.net/docs/ref/#view.DirectEditorProps.dispatchTransaction)\n when given, and otherwise defaults to applying the transaction to\n the current state and calling\n [`updateState`](https://prosemirror.net/docs/ref/#view.EditorView.updateState) with the result.\n This method is bound to the view instance, so that it can be\n easily passed around.\n */\n dispatch(tr) {\n let dispatchTransaction = this._props.dispatchTransaction;\n if (dispatchTransaction)\n dispatchTransaction.call(this, tr);\n else\n this.updateState(this.state.apply(tr));\n }\n /**\n @internal\n */\n domSelectionRange() {\n let sel = this.domSelection();\n return safari && this.root.nodeType === 11 &&\n deepActiveElement(this.dom.ownerDocument) == this.dom && safariShadowSelectionRange(this, sel) || sel;\n }\n /**\n @internal\n */\n domSelection() {\n return this.root.getSelection();\n }\n}\nfunction computeDocDeco(view) {\n let attrs = Object.create(null);\n attrs.class = \"ProseMirror\";\n attrs.contenteditable = String(view.editable);\n view.someProp(\"attributes\", value => {\n if (typeof value == \"function\")\n value = value(view.state);\n if (value)\n for (let attr in value) {\n if (attr == \"class\")\n attrs.class += \" \" + value[attr];\n else if (attr == \"style\")\n attrs.style = (attrs.style ? attrs.style + \";\" : \"\") + value[attr];\n else if (!attrs[attr] && attr != \"contenteditable\" && attr != \"nodeName\")\n attrs[attr] = String(value[attr]);\n }\n });\n if (!attrs.translate)\n attrs.translate = \"no\";\n return [Decoration.node(0, view.state.doc.content.size, attrs)];\n}\nfunction updateCursorWrapper(view) {\n if (view.markCursor) {\n let dom = document.createElement(\"img\");\n dom.className = \"ProseMirror-separator\";\n dom.setAttribute(\"mark-placeholder\", \"true\");\n dom.setAttribute(\"alt\", \"\");\n view.cursorWrapper = { dom, deco: Decoration.widget(view.state.selection.head, dom, { raw: true, marks: view.markCursor }) };\n }\n else {\n view.cursorWrapper = null;\n }\n}\nfunction getEditable(view) {\n return !view.someProp(\"editable\", value => value(view.state) === false);\n}\nfunction selectionContextChanged(sel1, sel2) {\n let depth = Math.min(sel1.$anchor.sharedDepth(sel1.head), sel2.$anchor.sharedDepth(sel2.head));\n return sel1.$anchor.start(depth) != sel2.$anchor.start(depth);\n}\nfunction buildNodeViews(view) {\n let result = Object.create(null);\n function add(obj) {\n for (let prop in obj)\n if (!Object.prototype.hasOwnProperty.call(result, prop))\n result[prop] = obj[prop];\n }\n view.someProp(\"nodeViews\", add);\n view.someProp(\"markViews\", add);\n return result;\n}\nfunction changedNodeViews(a, b) {\n let nA = 0, nB = 0;\n for (let prop in a) {\n if (a[prop] != b[prop])\n return true;\n nA++;\n }\n for (let _ in b)\n nB++;\n return nA != nB;\n}\nfunction checkStateComponent(plugin) {\n if (plugin.spec.state || plugin.spec.filterTransaction || plugin.spec.appendTransaction)\n throw new RangeError(\"Plugins passed directly to the view must not have a state component\");\n}\n\n\n\n\n//# sourceURL=webpack:///./node_modules/prosemirror-view/dist/index.js?");
/***/ }),
/***/ "./node_modules/quill-blot-formatter/dist/BlotFormatter.js":
/*!*****************************************************************!*\
!*** ./node_modules/quill-blot-formatter/dist/BlotFormatter.js ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _deepmerge = __webpack_require__(/*! deepmerge */ \"./node_modules/quill-blot-formatter/node_modules/deepmerge/dist/es.js\");\n\nvar _deepmerge2 = _interopRequireDefault(_deepmerge);\n\nvar _Options = __webpack_require__(/*! ./Options */ \"./node_modules/quill-blot-formatter/dist/Options.js\");\n\nvar _Options2 = _interopRequireDefault(_Options);\n\nvar _Action = __webpack_require__(/*! ./actions/Action */ \"./node_modules/quill-blot-formatter/dist/actions/Action.js\");\n\nvar _Action2 = _interopRequireDefault(_Action);\n\nvar _BlotSpec = __webpack_require__(/*! ./specs/BlotSpec */ \"./node_modules/quill-blot-formatter/dist/specs/BlotSpec.js\");\n\nvar _BlotSpec2 = _interopRequireDefault(_BlotSpec);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar dontMerge = function dontMerge(destination, source) {\n return source;\n};\n\nvar BlotFormatter = function () {\n function BlotFormatter(quill) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BlotFormatter);\n\n this.onClick = function () {\n _this.hide();\n };\n\n this.quill = quill;\n this.options = (0, _deepmerge2.default)(_Options2.default, options, { arrayMerge: dontMerge });\n this.currentSpec = null;\n this.actions = [];\n this.overlay = document.createElement('div');\n this.overlay.classList.add(this.options.overlay.className);\n if (this.options.overlay.style) {\n Object.assign(this.overlay.style, this.options.overlay.style);\n }\n\n // disable native image resizing on firefox\n document.execCommand('enableObjectResizing', false, 'false'); // eslint-disable-line no-undef\n this.quill.root.parentNode.style.position = this.quill.root.parentNode.style.position || 'relative';\n\n this.quill.root.addEventListener('click', this.onClick);\n this.specs = this.options.specs.map(function (SpecClass) {\n return new SpecClass(_this);\n });\n this.specs.forEach(function (spec) {\n return spec.init();\n });\n }\n\n _createClass(BlotFormatter, [{\n key: 'show',\n value: function show(spec) {\n this.currentSpec = spec;\n this.currentSpec.setSelection();\n this.setUserSelect('none');\n this.quill.root.parentNode.appendChild(this.overlay);\n this.repositionOverlay();\n this.createActions(spec);\n }\n }, {\n key: 'hide',\n value: function hide() {\n if (!this.currentSpec) {\n return;\n }\n\n this.currentSpec.onHide();\n this.currentSpec = null;\n this.quill.root.parentNode.removeChild(this.overlay);\n this.overlay.style.setProperty('display', 'none');\n this.setUserSelect('');\n this.destroyActions();\n }\n }, {\n key: 'update',\n value: function update() {\n this.repositionOverlay();\n this.actions.forEach(function (action) {\n return action.onUpdate();\n });\n }\n }, {\n key: 'createActions',\n value: function createActions(spec) {\n var _this2 = this;\n\n this.actions = spec.getActions().map(function (ActionClass) {\n var action = new ActionClass(_this2);\n action.onCreate();\n return action;\n });\n }\n }, {\n key: 'destroyActions',\n value: function destroyActions() {\n this.actions.forEach(function (action) {\n return action.onDestroy();\n });\n this.actions = [];\n }\n }, {\n key: 'repositionOverlay',\n value: function repositionOverlay() {\n if (!this.currentSpec) {\n return;\n }\n\n var overlayTarget = this.currentSpec.getOverlayElement();\n if (!overlayTarget) {\n return;\n }\n\n var parent = this.quill.root.parentNode;\n var specRect = overlayTarget.getBoundingClientRect();\n var parentRect = parent.getBoundingClientRect();\n\n Object.assign(this.overlay.style, {\n display: 'block',\n left: specRect.left - parentRect.left - 1 + parent.scrollLeft + 'px',\n top: specRect.top - parentRect.top + parent.scrollTop + 'px',\n width: specRect.width + 'px',\n height: specRect.height + 'px'\n });\n }\n }, {\n key: 'setUserSelect',\n value: function setUserSelect(value) {\n var _this3 = this;\n\n var props = ['userSelect', 'mozUserSelect', 'webkitUserSelect', 'msUserSelect'];\n\n props.forEach(function (prop) {\n // set on contenteditable element and <html>\n _this3.quill.root.style.setProperty(prop, value);\n if (document.documentElement) {\n document.documentElement.style.setProperty(prop, value);\n }\n });\n }\n }]);\n\n return BlotFormatter;\n}();\n\nexports.default = BlotFormatter;\n\n//# sourceURL=webpack:///./node_modules/quill-blot-formatter/dist/BlotFormatter.js?");
/***/ }),
/***/ "./node_modules/quill-blot-formatter/dist/Options.js":
/*!***********************************************************!*\
!*** ./node_modules/quill-blot-formatter/dist/Options.js ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _BlotSpec = __webpack_require__(/*! ./specs/BlotSpec */ \"./node_modules/quill-blot-formatter/dist/specs/BlotSpec.js\");\n\nvar _BlotSpec2 = _interopRequireDefault(_BlotSpec);\n\nvar _ImageSpec = __webpack_require__(/*! ./specs/ImageSpec */ \"./node_modules/quill-blot-formatter/dist/specs/ImageSpec.js\");\n\nvar _ImageSpec2 = _interopRequireDefault(_ImageSpec);\n\nvar _IframeVideoSpec = __webpack_require__(/*! ./specs/IframeVideoSpec */ \"./node_modules/quill-blot-formatter/dist/specs/IframeVideoSpec.js\");\n\nvar _IframeVideoSpec2 = _interopRequireDefault(_IframeVideoSpec);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DefaultOptions = {\n specs: [_ImageSpec2.default, _IframeVideoSpec2.default],\n overlay: {\n className: 'blot-formatter__overlay',\n style: {\n position: 'absolute',\n boxSizing: 'border-box',\n border: '1px dashed #444'\n }\n },\n align: {\n attribute: 'data-align',\n aligner: {\n applyStyle: true\n },\n icons: {\n left: '\\n <svg viewbox=\"0 0 18 18\">\\n <line class=\"ql-stroke\" x1=\"3\" x2=\"15\" y1=\"9\" y2=\"9\"></line>\\n <line class=\"ql-stroke\" x1=\"3\" x2=\"13\" y1=\"14\" y2=\"14\"></line>\\n <line class=\"ql-stroke\" x1=\"3\" x2=\"9\" y1=\"4\" y2=\"4\"></line>\\n </svg>\\n ',\n center: '\\n <svg viewbox=\"0 0 18 18\">\\n <line class=\"ql-stroke\" x1=\"15\" x2=\"3\" y1=\"9\" y2=\"9\"></line>\\n <line class=\"ql-stroke\" x1=\"14\" x2=\"4\" y1=\"14\" y2=\"14\"></line>\\n <line class=\"ql-stroke\" x1=\"12\" x2=\"6\" y1=\"4\" y2=\"4\"></line>\\n </svg>\\n ',\n right: '\\n <svg viewbox=\"0 0 18 18\">\\n <line class=\"ql-stroke\" x1=\"15\" x2=\"3\" y1=\"9\" y2=\"9\"></line>\\n <line class=\"ql-stroke\" x1=\"15\" x2=\"5\" y1=\"14\" y2=\"14\"></line>\\n <line class=\"ql-stroke\" x1=\"15\" x2=\"9\" y1=\"4\" y2=\"4\"></line>\\n </svg>\\n '\n },\n toolbar: {\n allowDeselect: true,\n mainClassName: 'blot-formatter__toolbar',\n mainStyle: {\n position: 'absolute',\n top: '-12px',\n right: '0',\n left: '0',\n height: '0',\n minWidth: '100px',\n font: '12px/1.0 Arial, Helvetica, sans-serif',\n textAlign: 'center',\n color: '#333',\n boxSizing: 'border-box',\n cursor: 'default',\n zIndex: '1'\n },\n buttonClassName: 'blot-formatter__toolbar-button',\n addButtonSelectStyle: true,\n buttonStyle: {\n display: 'inline-block',\n width: '24px',\n height: '24px',\n background: 'white',\n border: '1px solid #999',\n verticalAlign: 'middle'\n },\n svgStyle: {\n display: 'inline-block',\n width: '24px',\n height: '24px',\n background: 'white',\n border: '1px solid #999',\n verticalAlign: 'middle'\n }\n }\n },\n resize: {\n handleClassName: 'blot-formatter__resize-handle',\n handleStyle: {\n position: 'absolute',\n height: '12px',\n width: '12px',\n backgroundColor: 'white',\n border: '1px solid #777',\n boxSizing: 'border-box',\n opacity: '0.80'\n }\n }\n};\n\nexports.default = DefaultOptions;\n\n//# sourceURL=webpack:///./node_modules/quill-blot-formatter/dist/Options.js?");
/***/ }),
/***/ "./node_modules/quill-blot-formatter/dist/actions/Action.js":
/*!******************************************************************!*\
!*** ./node_modules/quill-blot-formatter/dist/actions/Action.js ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _BlotFormatter = __webpack_require__(/*! ../BlotFormatter */ \"./node_modules/quill-blot-formatter/dist/BlotFormatter.js\");\n\nvar _BlotFormatter2 = _interopRequireDefault(_BlotFormatter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Action = function () {\n function Action(formatter) {\n _classCallCheck(this, Action);\n\n this.formatter = formatter;\n }\n\n _createClass(Action, [{\n key: 'onCreate',\n value: function onCreate() {}\n }, {\n key: 'onDestroy',\n value: function onDestroy() {}\n }, {\n key: 'onUpdate',\n value: function onUpdate() {}\n }]);\n\n return Action;\n}();\n\nexports.default = Action;\n\n//# sourceURL=webpack:///./node_modules/quill-blot-formatter/dist/actions/Action.js?");
/***/ }),
/***/ "./node_modules/quill-blot-formatter/dist/actions/DeleteAction.js":
/*!************************************************************************!*\
!*** ./node_modules/quill-blot-formatter/dist/actions/DeleteAction.js ***!
\************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quill = __webpack_require__(/*! quill */ \"./node_modules/quill/dist/quill.js\");\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _Action2 = __webpack_require__(/*! ./Action */ \"./node_modules/quill-blot-formatter/dist/actions/Action.js\");\n\nvar _Action3 = _interopRequireDefault(_Action2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DeleteAction = function (_Action) {\n _inherits(DeleteAction, _Action);\n\n function DeleteAction() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, DeleteAction);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = DeleteAction.__proto__ || Object.getPrototypeOf(DeleteAction)).call.apply(_ref, [this].concat(args))), _this), _this.onKeyUp = function (e) {\n if (!_this.formatter.currentSpec) {\n return;\n }\n\n // delete or backspace\n if (e.keyCode === 46 || e.keyCode === 8) {\n var blot = _quill2.default.find(_this.formatter.currentSpec.getTargetElement());\n if (blot) {\n blot.deleteAt(0);\n }\n _this.formatter.hide();\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(DeleteAction, [{\n key: 'onCreate',\n value: function onCreate() {\n document.addEventListener('keyup', this.onKeyUp, true);\n this.formatter.quill.root.addEventListener('input', this.onKeyUp, true);\n }\n }, {\n key: 'onDestroy',\n value: function onDestroy() {\n document.removeEventListener('keyup', this.onKeyUp);\n this.formatter.quill.root.removeEventListener('input', this.onKeyUp);\n }\n }]);\n\n return DeleteAction;\n}(_Action3.default);\n\nexports.default = DeleteAction;\n\n//# sourceURL=webpack:///./node_modules/quill-blot-formatter/dist/actions/DeleteAction.js?");
/***/ }),
/***/ "./node_modules/quill-blot-formatter/dist/actions/ResizeAction.js":
/*!************************************************************************!*\
!*** ./node_modules/quill-blot-formatter/dist/actions/ResizeAction.js ***!
\************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Action2 = __webpack_require__(/*! ./Action */ \"./node_modules/quill-blot-formatter/dist/actions/Action.js\");\n\nvar _Action3 = _interopRequireDefault(_Action2);\n\nvar _BlotFormatter = __webpack_require__(/*! ../BlotFormatter */ \"./node_modules/quill-blot-formatter/dist/BlotFormatter.js\");\n\nvar _BlotFormatter2 = _interopRequireDefault(_BlotFormatter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ResizeAction = function (_Action) {\n _inherits(ResizeAction, _Action);\n\n function ResizeAction(formatter) {\n _classCallCheck(this, ResizeAction);\n\n var _this = _possibleConstructorReturn(this, (ResizeAction.__proto__ || Object.getPrototypeOf(ResizeAction)).call(this, formatter));\n\n _this.onMouseDown = function (event) {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n _this.dragHandle = event.target;\n _this.setCursor(_this.dragHandle.style.cursor);\n\n if (!_this.formatter.currentSpec) {\n return;\n }\n\n var target = _this.formatter.currentSpec.getTargetElement();\n if (!target) {\n return;\n }\n\n var rect = target.getBoundingClientRect();\n\n _this.dragStartX = event.clientX;\n _this.preDragWidth = rect.width;\n _this.targetRatio = rect.height / rect.width;\n\n document.addEventListener('mousemove', _this.onDrag);\n document.addEventListener('mouseup', _this.onMouseUp);\n };\n\n _this.onDrag = function (event) {\n if (!_this.formatter.currentSpec) {\n return;\n }\n\n var target = _this.formatter.currentSpec.getTargetElement();\n if (!target) {\n return;\n }\n\n var deltaX = event.clientX - _this.dragStartX;\n var newWidth = 0;\n\n if (_this.dragHandle === _this.topLeftHandle || _this.dragHandle === _this.bottomLeftHandle) {\n newWidth = Math.round(_this.preDragWidth - deltaX);\n } else {\n newWidth = Math.round(_this.preDragWidth + deltaX);\n }\n\n var newHeight = _this.targetRatio * newWidth;\n\n target.setAttribute('width', '' + newWidth);\n target.setAttribute('height', '' + newHeight);\n\n _this.formatter.update();\n };\n\n _this.onMouseUp = function () {\n _this.setCursor('');\n document.removeEventListener('mousemove', _this.onDrag);\n document.removeEventListener('mouseup', _this.onMouseUp);\n };\n\n _this.topLeftHandle = _this.createHandle('top-left', 'nwse-resize');\n _this.topRightHandle = _this.createHandle('top-right', 'nesw-resize');\n _this.bottomRightHandle = _this.createHandle('bottom-right', 'nwse-resize');\n _this.bottomLeftHandle = _this.createHandle('bottom-left', 'nesw-resize');\n _this.dragHandle = null;\n _this.dragStartX = 0;\n _this.preDragWidth = 0;\n _this.targetRatio = 0;\n return _this;\n }\n\n _createClass(ResizeAction, [{\n key: 'onCreate',\n value: function onCreate() {\n this.formatter.overlay.appendChild(this.topLeftHandle);\n this.formatter.overlay.appendChild(this.topRightHandle);\n this.formatter.overlay.appendChild(this.bottomRightHandle);\n this.formatter.overlay.appendChild(this.bottomLeftHandle);\n\n this.repositionHandles(this.formatter.options.resize.handleStyle);\n }\n }, {\n key: 'onDestroy',\n value: function onDestroy() {\n this.setCursor('');\n this.formatter.overlay.removeChild(this.topLeftHandle);\n this.formatter.overlay.removeChild(this.topRightHandle);\n this.formatter.overlay.removeChild(this.bottomRightHandle);\n this.formatter.overlay.removeChild(this.bottomLeftHandle);\n }\n }, {\n key: 'createHandle',\n value: function createHandle(position, cursor) {\n var box = document.createElement('div');\n box.classList.add(this.formatter.options.resize.handleClassName);\n box.setAttribute('data-position', position);\n box.style.cursor = cursor;\n\n if (this.formatter.options.resize.handleStyle) {\n Object.assign(box.style, this.formatter.options.resize.handleStyle);\n }\n\n box.addEventListener('mousedown', this.onMouseDown);\n\n return box;\n }\n }, {\n key: 'repositionHandles',\n value: function repositionHandles(handleStyle) {\n var handleXOffset = '0px';\n var handleYOffset = '0px';\n if (handleStyle) {\n if (handleStyle.width) {\n handleXOffset = -parseFloat(handleStyle.width) / 2 + 'px';\n }\n if (handleStyle.height) {\n handleYOffset = -parseFloat(handleStyle.height) / 2 + 'px';\n }\n }\n\n Object.assign(this.topLeftHandle.style, { left: handleXOffset, top: handleYOffset });\n Object.assign(this.topRightHandle.style, { right: handleXOffset, top: handleYOffset });\n Object.assign(this.bottomRightHandle.style, { right: handleXOffset, bottom: handleYOffset });\n Object.assign(this.bottomLeftHandle.style, { left: handleXOffset, bottom: handleYOffset });\n }\n }, {\n key: 'setCursor',\n value: function setCursor(value) {\n if (document.body) {\n document.body.style.cursor = value;\n }\n\n if (this.formatter.currentSpec) {\n var target = this.formatter.currentSpec.getOverlayElement();\n if (target) {\n target.style.cursor = value;\n }\n }\n }\n }]);\n\n return ResizeAction;\n}(_Action3.default);\n\nexports.default = ResizeAction;\n\n//# sourceURL=webpack:///./node_modules/quill-blot-formatter/dist/actions/ResizeAction.js?");
/***/ }),
/***/ "./node_modules/quill-blot-formatter/dist/actions/align/AlignAction.js":
/*!*****************************************************************************!*\
!*** ./node_modules/quill-blot-formatter/dist/actions/align/AlignAction.js ***!
\*****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Action2 = __webpack_require__(/*! ../Action */ \"./node_modules/quill-blot-formatter/dist/actions/Action.js\");\n\nvar _Action3 = _interopRequireDefault(_Action2);\n\nvar _BlotFormatter = __webpack_require__(/*! ../../BlotFormatter */ \"./node_modules/quill-blot-formatter/dist/BlotFormatter.js\");\n\nvar _BlotFormatter2 = _interopRequireDefault(_BlotFormatter);\n\nvar _DefaultAligner = __webpack_require__(/*! ./DefaultAligner */ \"./node_modules/quill-blot-formatter/dist/actions/align/DefaultAligner.js\");\n\nvar _DefaultAligner2 = _interopRequireDefault(_DefaultAligner);\n\nvar _Aligner = __webpack_require__(/*! ./Aligner */ \"./node_modules/quill-blot-formatter/dist/actions/align/Aligner.js\");\n\nvar _Toolbar = __webpack_require__(/*! ./Toolbar */ \"./node_modules/quill-blot-formatter/dist/actions/align/Toolbar.js\");\n\nvar _DefaultToolbar = __webpack_require__(/*! ./DefaultToolbar */ \"./node_modules/quill-blot-formatter/dist/actions/align/DefaultToolbar.js\");\n\nvar _DefaultToolbar2 = _interopRequireDefault(_DefaultToolbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AlignAction = function (_Action) {\n _inherits(AlignAction, _Action);\n\n function AlignAction(formatter) {\n _classCallCheck(this, AlignAction);\n\n var _this = _possibleConstructorReturn(this, (AlignAction.__proto__ || Object.getPrototypeOf(AlignAction)).call(this, formatter));\n\n _this.aligner = new _DefaultAligner2.default(formatter.options.align);\n _this.toolbar = new _DefaultToolbar2.default();\n return _this;\n }\n\n _createClass(AlignAction, [{\n key: 'onCreate',\n value: function onCreate() {\n var toolbar = this.toolbar.create(this.formatter, this.aligner);\n this.formatter.overlay.appendChild(toolbar);\n }\n }, {\n key: 'onDestroy',\n value: function onDestroy() {\n var toolbar = this.toolbar.getElement();\n if (!toolbar) {\n return;\n }\n\n this.formatter.overlay.removeChild(toolbar);\n this.toolbar.destroy();\n }\n }]);\n\n return AlignAction;\n}(_Action3.default);\n\nexports.default = AlignAction;\n\n//# sourceURL=webpack:///./node_modules/quill-blot-formatter/dist/actions/align/AlignAction.js?");
/***/ }),
/***/ "./node_modules/quill-blot-formatter/dist/actions/align/Aligner.js":
/*!*************************************************************************!*\
!*** ./node_modules/quill-blot-formatter/dist/actions/align/Aligner.js ***!
\*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\n//# sourceURL=webpack:///./node_modules/quill-blot-formatter/dist/actions/align/Aligner.js?");
/***/ }),
/***/ "./node_modules/quill-blot-formatter/dist/actions/align/DefaultAligner.js":
/*!********************************************************************************!*\
!*** ./node_modules/quill-blot-formatter/dist/actions/align/DefaultAligner.js ***!
\********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Aligner = __webpack_require__(/*! ./Aligner */ \"./node_modules/quill-blot-formatter/dist/actions/align/Aligner.js\");\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LEFT_ALIGN = 'left';\nvar CENTER_ALIGN = 'center';\nvar RIGHT_ALIGN = 'right';\n\nvar DefaultAligner = function () {\n function DefaultAligner(options) {\n var _this = this,\n _alignments;\n\n _classCallCheck(this, DefaultAligner);\n\n this.applyStyle = options.aligner.applyStyle;\n this.alignAttribute = options.attribute;\n this.alignments = (_alignments = {}, _defineProperty(_alignments, LEFT_ALIGN, {\n name: LEFT_ALIGN,\n icon: options.icons.left,\n apply: function apply(el) {\n _this.setAlignment(el, LEFT_ALIGN);\n _this.setStyle(el, 'inline', 'left', '0 1em 1em 0');\n }\n }), _defineProperty(_alignments, CENTER_ALIGN, {\n name: CENTER_ALIGN,\n icon: options.icons.center,\n apply: function apply(el) {\n _this.setAlignment(el, CENTER_ALIGN);\n _this.setStyle(el, 'block', null, 'auto');\n }\n }), _defineProperty(_alignments, RIGHT_ALIGN, {\n name: RIGHT_ALIGN,\n icon: options.icons.right,\n apply: function apply(el) {\n _this.setAlignment(el, RIGHT_ALIGN);\n _this.setStyle(el, 'inline', 'right', '0 0 1em 1em');\n }\n }), _alignments);\n }\n\n _createClass(DefaultAligner, [{\n key: 'getAlignments',\n value: function getAlignments() {\n var _this2 = this;\n\n return Object.keys(this.alignments).map(function (k) {\n return _this2.alignments[k];\n });\n }\n }, {\n key: 'clear',\n value: function clear(el) {\n el.removeAttribute(this.alignAttribute);\n this.setStyle(el, null, null, null);\n }\n }, {\n key: 'isAligned',\n value: function isAligned(el, alignment) {\n return el.getAttribute(this.alignAttribute) === alignment.name;\n }\n }, {\n key: 'setAlignment',\n value: function setAlignment(el, value) {\n el.setAttribute(this.alignAttribute, value);\n }\n }, {\n key: 'setStyle',\n value: function setStyle(el, display, float, margin) {\n if (this.applyStyle) {\n el.style.setProperty('display', display);\n el.style.setProperty('float', float);\n el.style.setProperty('margin', margin);\n }\n }\n }]);\n\n return DefaultAligner;\n}();\n\nexports.default = DefaultAligner;\n\n//# sourceURL=webpack:///./node_modules/quill-blot-formatter/dist/actions/align/DefaultAligner.js?");
/***/ }),
/***/ "./node_modules/quill-blot-formatter/dist/actions/align/DefaultToolbar.js":
/*!********************************************************************************!*\
!*** ./node_modules/quill-blot-formatter/dist/actions/align/DefaultToolbar.js ***!
\********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Toolbar = __webpack_require__(/*! ./Toolbar */ \"./node_modules/quill-blot-formatter/dist/actions/align/Toolbar.js\");\n\nvar _Aligner = __webpack_require__(/*! ./Aligner */ \"./node_modules/quill-blot-formatter/dist/actions/align/Aligner.js\");\n\nvar _BlotFormatter = __webpack_require__(/*! ../../BlotFormatter */ \"./node_modules/quill-blot-formatter/dist/BlotFormatter.js\");\n\nvar _BlotFormatter2 = _interopRequireDefault(_BlotFormatter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DefaultToolbar = function () {\n function DefaultToolbar() {\n _classCallCheck(this, DefaultToolbar);\n\n this.toolbar = null;\n this.buttons = [];\n }\n\n _createClass(DefaultToolbar, [{\n key: 'create',\n value: function create(formatter, aligner) {\n var toolbar = document.createElement('div');\n toolbar.classList.add(formatter.options.align.toolbar.mainClassName);\n this.addToolbarStyle(formatter, toolbar);\n this.addButtons(formatter, toolbar, aligner);\n\n this.toolbar = toolbar;\n return this.toolbar;\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.toolbar = null;\n this.buttons = [];\n }\n }, {\n key: 'getElement',\n value: function getElement() {\n return this.toolbar;\n }\n }, {\n key: 'addToolbarStyle',\n value: function addToolbarStyle(formatter, toolbar) {\n if (formatter.options.align.toolbar.mainStyle) {\n Object.assign(toolbar.style, formatter.options.align.toolbar.mainStyle);\n }\n }\n }, {\n key: 'addButtonStyle',\n value: function addButtonStyle(button, index, formatter) {\n if (formatter.options.align.toolbar.buttonStyle) {\n Object.assign(button.style, formatter.options.align.toolbar.buttonStyle);\n if (index > 0) {\n button.style.borderLeftWidth = '0'; // eslint-disable-line no-param-reassign\n }\n }\n\n if (formatter.options.align.toolbar.svgStyle) {\n Object.assign(button.children[0].style, formatter.options.align.toolbar.svgStyle);\n }\n }\n }, {\n key: 'addButtons',\n value: function addButtons(formatter, toolbar, aligner) {\n var _this = this;\n\n aligner.getAlignments().forEach(function (alignment, i) {\n var button = document.createElement('span');\n button.classList.add(formatter.options.align.toolbar.buttonClassName);\n button.innerHTML = alignment.icon;\n button.addEventListener('click', function () {\n _this.onButtonClick(button, formatter, alignment, aligner);\n });\n _this.preselectButton(button, alignment, formatter, aligner);\n _this.addButtonStyle(button, i, formatter);\n _this.buttons.push(button);\n toolbar.appendChild(button);\n });\n }\n }, {\n key: 'preselectButton',\n value: function preselectButton(button, alignment, formatter, aligner) {\n if (!formatter.currentSpec) {\n return;\n }\n\n var target = formatter.currentSpec.getTargetElement();\n if (!target) {\n return;\n }\n\n if (aligner.isAligned(target, alignment)) {\n this.selectButton(formatter, button);\n }\n }\n }, {\n key: 'onButtonClick',\n value: function onButtonClick(button, formatter, alignment, aligner) {\n if (!formatter.currentSpec) {\n return;\n }\n\n var target = formatter.currentSpec.getTargetElement();\n if (!target) {\n return;\n }\n\n this.clickButton(button, target, formatter, alignment, aligner);\n }\n }, {\n key: 'clickButton',\n value: function clickButton(button, alignTarget, formatter, alignment, aligner) {\n var _this2 = this;\n\n this.buttons.forEach(function (b) {\n _this2.deselectButton(formatter, b);\n });\n if (aligner.isAligned(alignTarget, alignment)) {\n if (formatter.options.align.toolbar.allowDeselect) {\n aligner.clear(alignTarget);\n } else {\n this.selectButton(formatter, button);\n }\n } else {\n this.selectButton(formatter, button);\n alignment.apply(alignTarget);\n }\n\n formatter.update();\n }\n }, {\n key: 'selectButton',\n value: function selectButton(formatter, button) {\n button.classList.add('is-selected');\n if (formatter.options.align.toolbar.addButtonSelectStyle) {\n button.style.setProperty('filter', 'invert(20%)');\n }\n }\n }, {\n key: 'deselectButton',\n value: function deselectButton(formatter, button) {\n button.classList.remove('is-selected');\n if (formatter.options.align.toolbar.addButtonSelectStyle) {\n button.style.removeProperty('filter');\n }\n }\n }]);\n\n return DefaultToolbar;\n}();\n\nexports.default = DefaultToolbar;\n\n//# sourceURL=webpack:///./node_modules/quill-blot-formatter/dist/actions/align/DefaultToolbar.js?");
/***/ }),
/***/ "./node_modules/quill-blot-formatter/dist/actions/align/Toolbar.js":
/*!*************************************************************************!*\
!*** ./node_modules/quill-blot-formatter/dist/actions/align/Toolbar.js ***!
\*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar _Aligner = __webpack_require__(/*! ./Aligner */ \"./node_modules/quill-blot-formatter/dist/actions/align/Aligner.js\");\n\nvar _BlotFormatter = __webpack_require__(/*! ../../BlotFormatter */ \"./node_modules/quill-blot-formatter/dist/BlotFormatter.js\");\n\nvar _BlotFormatter2 = _interopRequireDefault(_BlotFormatter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//# sourceURL=webpack:///./node_modules/quill-blot-formatter/dist/actions/align/Toolbar.js?");
/***/ }),
/***/ "./node_modules/quill-blot-formatter/dist/specs/BlotSpec.js":
/*!******************************************************************!*\
!*** ./node_modules/quill-blot-formatter/dist/specs/BlotSpec.js ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _BlotFormatter = __webpack_require__(/*! ../BlotFormatter */ \"./node_modules/quill-blot-formatter/dist/BlotFormatter.js\");\n\nvar _BlotFormatter2 = _interopRequireDefault(_BlotFormatter);\n\nvar _Action = __webpack_require__(/*! ../actions/Action */ \"./node_modules/quill-blot-formatter/dist/actions/Action.js\");\n\nvar _Action2 = _interopRequireDefault(_Action);\n\nvar _AlignAction = __webpack_require__(/*! ../actions/align/AlignAction */ \"./node_modules/quill-blot-formatter/dist/actions/align/AlignAction.js\");\n\nvar _AlignAction2 = _interopRequireDefault(_AlignAction);\n\nvar _ResizeAction = __webpack_require__(/*! ../actions/ResizeAction */ \"./node_modules/quill-blot-formatter/dist/actions/ResizeAction.js\");\n\nvar _ResizeAction2 = _interopRequireDefault(_ResizeAction);\n\nvar _DeleteAction = __webpack_require__(/*! ../actions/DeleteAction */ \"./node_modules/quill-blot-formatter/dist/actions/DeleteAction.js\");\n\nvar _DeleteAction2 = _interopRequireDefault(_DeleteAction);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar BlotSpec = function () {\n function BlotSpec(formatter) {\n _classCallCheck(this, BlotSpec);\n\n this.formatter = formatter;\n }\n\n _createClass(BlotSpec, [{\n key: 'init',\n value: function init() {}\n }, {\n key: 'getActions',\n value: function getActions() {\n return [_AlignAction2.default, _ResizeAction2.default, _DeleteAction2.default];\n }\n }, {\n key: 'getTargetElement',\n value: function getTargetElement() {\n return null;\n }\n }, {\n key: 'getOverlayElement',\n value: function getOverlayElement() {\n return this.getTargetElement();\n }\n }, {\n key: 'setSelection',\n value: function setSelection() {\n this.formatter.quill.setSelection(null);\n }\n }, {\n key: 'onHide',\n value: function onHide() {}\n }]);\n\n return BlotSpec;\n}();\n\nexports.default = BlotSpec;\n\n//# sourceURL=webpack:///./node_modules/quill-blot-formatter/dist/specs/BlotSpec.js?");
/***/ }),
/***/ "./node_modules/quill-blot-formatter/dist/specs/IframeVideoSpec.js":
/*!*************************************************************************!*\
!*** ./node_modules/quill-blot-formatter/dist/specs/IframeVideoSpec.js ***!
\*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _UnclickableBlotSpec2 = __webpack_require__(/*! ./UnclickableBlotSpec */ \"./node_modules/quill-blot-formatter/dist/specs/UnclickableBlotSpec.js\");\n\nvar _UnclickableBlotSpec3 = _interopRequireDefault(_UnclickableBlotSpec2);\n\nvar _BlotFormatter = __webpack_require__(/*! ../BlotFormatter */ \"./node_modules/quill-blot-formatter/dist/BlotFormatter.js\");\n\nvar _BlotFormatter2 = _interopRequireDefault(_BlotFormatter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IframeVideoSpec = function (_UnclickableBlotSpec) {\n _inherits(IframeVideoSpec, _UnclickableBlotSpec);\n\n function IframeVideoSpec(formatter) {\n _classCallCheck(this, IframeVideoSpec);\n\n return _possibleConstructorReturn(this, (IframeVideoSpec.__proto__ || Object.getPrototypeOf(IframeVideoSpec)).call(this, formatter, 'iframe.ql-video'));\n }\n\n return IframeVideoSpec;\n}(_UnclickableBlotSpec3.default);\n\nexports.default = IframeVideoSpec;\n\n//# sourceURL=webpack:///./node_modules/quill-blot-formatter/dist/specs/IframeVideoSpec.js?");
/***/ }),
/***/ "./node_modules/quill-blot-formatter/dist/specs/ImageSpec.js":
/*!*******************************************************************!*\
!*** ./node_modules/quill-blot-formatter/dist/specs/ImageSpec.js ***!
\*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _BlotSpec2 = __webpack_require__(/*! ./BlotSpec */ \"./node_modules/quill-blot-formatter/dist/specs/BlotSpec.js\");\n\nvar _BlotSpec3 = _interopRequireDefault(_BlotSpec2);\n\nvar _BlotFormatter = __webpack_require__(/*! ../BlotFormatter */ \"./node_modules/quill-blot-formatter/dist/BlotFormatter.js\");\n\nvar _BlotFormatter2 = _interopRequireDefault(_BlotFormatter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ImageSpec = function (_BlotSpec) {\n _inherits(ImageSpec, _BlotSpec);\n\n function ImageSpec(formatter) {\n _classCallCheck(this, ImageSpec);\n\n var _this = _possibleConstructorReturn(this, (ImageSpec.__proto__ || Object.getPrototypeOf(ImageSpec)).call(this, formatter));\n\n _this.onClick = function (event) {\n var el = event.target;\n if (!(el instanceof HTMLElement) || el.tagName !== 'IMG') {\n return;\n }\n\n _this.img = el;\n _this.formatter.show(_this);\n };\n\n _this.img = null;\n return _this;\n }\n\n _createClass(ImageSpec, [{\n key: 'init',\n value: function init() {\n this.formatter.quill.root.addEventListener('click', this.onClick);\n }\n }, {\n key: 'getTargetElement',\n value: function getTargetElement() {\n return this.img;\n }\n }, {\n key: 'onHide',\n value: function onHide() {\n this.img = null;\n }\n }]);\n\n return ImageSpec;\n}(_BlotSpec3.default);\n\nexports.default = ImageSpec;\n\n//# sourceURL=webpack:///./node_modules/quill-blot-formatter/dist/specs/ImageSpec.js?");
/***/ }),
/***/ "./node_modules/quill-blot-formatter/dist/specs/UnclickableBlotSpec.js":
/*!*****************************************************************************!*\
!*** ./node_modules/quill-blot-formatter/dist/specs/UnclickableBlotSpec.js ***!
\*****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _BlotSpec2 = __webpack_require__(/*! ./BlotSpec */ \"./node_modules/quill-blot-formatter/dist/specs/BlotSpec.js\");\n\nvar _BlotSpec3 = _interopRequireDefault(_BlotSpec2);\n\nvar _BlotFormatter = __webpack_require__(/*! ../BlotFormatter */ \"./node_modules/quill-blot-formatter/dist/BlotFormatter.js\");\n\nvar _BlotFormatter2 = _interopRequireDefault(_BlotFormatter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MOUSE_ENTER_ATTRIBUTE = 'data-blot-formatter-unclickable-bound';\nvar PROXY_IMAGE_CLASS = 'blot-formatter__proxy-image';\n\nvar UnclickableBlotSpec = function (_BlotSpec) {\n _inherits(UnclickableBlotSpec, _BlotSpec);\n\n function UnclickableBlotSpec(formatter, selector) {\n _classCallCheck(this, UnclickableBlotSpec);\n\n var _this = _possibleConstructorReturn(this, (UnclickableBlotSpec.__proto__ || Object.getPrototypeOf(UnclickableBlotSpec)).call(this, formatter));\n\n _this.onTextChange = function () {\n Array.from(document.querySelectorAll(_this.selector + ':not([' + MOUSE_ENTER_ATTRIBUTE + '])')).forEach(function (unclickable) {\n unclickable.setAttribute(MOUSE_ENTER_ATTRIBUTE, 'true');\n unclickable.addEventListener('mouseenter', _this.onMouseEnter);\n });\n };\n\n _this.onMouseEnter = function (event) {\n var unclickable = event.target;\n if (!(unclickable instanceof HTMLElement)) {\n return;\n }\n\n _this.nextUnclickable = unclickable;\n _this.repositionProxyImage(_this.nextUnclickable);\n };\n\n _this.onProxyImageClick = function () {\n _this.unclickable = _this.nextUnclickable;\n _this.nextUnclickable = null;\n _this.formatter.show(_this);\n _this.hideProxyImage();\n };\n\n _this.selector = selector;\n _this.unclickable = null;\n _this.nextUnclickable = null;\n return _this;\n }\n\n _createClass(UnclickableBlotSpec, [{\n key: 'init',\n value: function init() {\n if (document.body) {\n /*\n it's important that this is attached to the body instead of the root quill element.\n this prevents the click event from overlapping with ImageSpec\n */\n document.body.appendChild(this.createProxyImage());\n }\n\n this.hideProxyImage();\n this.proxyImage.addEventListener('click', this.onProxyImageClick);\n this.formatter.quill.on('text-change', this.onTextChange);\n }\n }, {\n key: 'getTargetElement',\n value: function getTargetElement() {\n return this.unclickable;\n }\n }, {\n key: 'getOverlayElement',\n value: function getOverlayElement() {\n return this.unclickable;\n }\n }, {\n key: 'onHide',\n value: function onHide() {\n this.hideProxyImage();\n this.nextUnclickable = null;\n this.unclickable = null;\n }\n }, {\n key: 'createProxyImage',\n value: function createProxyImage() {\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n context.globalAlpha = 0;\n context.fillRect(0, 0, 1, 1);\n\n this.proxyImage = document.createElement('img');\n this.proxyImage.src = canvas.toDataURL('image/png');\n this.proxyImage.classList.add(PROXY_IMAGE_CLASS);\n\n Object.assign(this.proxyImage.style, {\n position: 'absolute',\n margin: '0'\n });\n\n return this.proxyImage;\n }\n }, {\n key: 'hideProxyImage',\n value: function hideProxyImage() {\n Object.assign(this.proxyImage.style, {\n display: 'none'\n });\n }\n }, {\n key: 'repositionProxyImage',\n value: function repositionProxyImage(unclickable) {\n var rect = unclickable.getBoundingClientRect();\n\n Object.assign(this.proxyImage.style, {\n display: 'block',\n left: rect.left + window.pageXOffset + 'px',\n top: rect.top + window.pageYOffset + 'px',\n width: rect.width + 'px',\n height: rect.height + 'px'\n });\n }\n }]);\n\n return UnclickableBlotSpec;\n}(_BlotSpec3.default);\n\nexports.default = UnclickableBlotSpec;\n\n//# sourceURL=webpack:///./node_modules/quill-blot-formatter/dist/specs/UnclickableBlotSpec.js?");
/***/ }),
/***/ "./node_modules/quill-blot-formatter/node_modules/deepmerge/dist/es.js":
/*!*****************************************************************************!*\
!*** ./node_modules/quill-blot-formatter/node_modules/deepmerge/dist/es.js ***!
\*****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (deepmerge_1);\n\n\n//# sourceURL=webpack:///./node_modules/quill-blot-formatter/node_modules/deepmerge/dist/es.js?");
/***/ }),
/***/ "./node_modules/quill-markdown-shortcuts/dist/markdownShortcuts.js":
/*!*************************************************************************!*\
!*** ./node_modules/quill-markdown-shortcuts/dist/markdownShortcuts.js ***!
\*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory(__webpack_require__(/*! quill */ \"./node_modules/quill/dist/quill.js\"));\n\telse {}\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_0__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 1);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); // Quill.js Plugin - Markdown Shortcuts\n// This is a module for the Quill.js WYSIWYG editor (https://quilljs.com/)\n// which converts text entered as markdown to rich text.\n//\n// v0.0.5\n//\n// Author: Patrick Lee (me@patricklee.nyc)\n//\n// (c) Copyright 2017 Patrick Lee (me@patricklee.nyc).\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nvar _quill = __webpack_require__(0);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _hr = __webpack_require__(2);\n\nvar _hr2 = _interopRequireDefault(_hr);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n_quill2.default.register('formats/horizontal', _hr2.default);\n\nvar MarkdownShortcuts = function () {\n function MarkdownShortcuts(quill, options) {\n var _this = this;\n\n _classCallCheck(this, MarkdownShortcuts);\n\n this.quill = quill;\n this.options = options;\n\n this.ignoreTags = ['PRE'];\n this.matches = [{\n name: 'header',\n pattern: /^(#){1,6}\\s/g,\n action: function action(text, selection, pattern) {\n var match = pattern.exec(text);\n if (!match) return;\n var size = match[0].length;\n // Need to defer this action https://github.com/quilljs/quill/issues/1134\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 0, 'header', size - 1);\n _this.quill.deleteText(selection.index - size, size);\n }, 0);\n }\n }, {\n name: 'blockquote',\n pattern: /^(>)\\s/g,\n action: function action(text, selection) {\n // Need to defer this action https://github.com/quilljs/quill/issues/1134\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 1, 'blockquote', true);\n _this.quill.deleteText(selection.index - 2, 2);\n }, 0);\n }\n }, {\n name: 'code-block',\n pattern: /^`{3}(?:\\s|\\n)/g,\n action: function action(text, selection) {\n // Need to defer this action https://github.com/quilljs/quill/issues/1134\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 1, 'code-block', true);\n _this.quill.deleteText(selection.index - 4, 4);\n }, 0);\n }\n }, {\n name: 'bolditalic',\n pattern: /(?:\\*|_){3}(.+?)(?:\\*|_){3}/g,\n action: function action(text, selection, pattern, lineStart) {\n var match = pattern.exec(text);\n\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n\n if (text.match(/^([*_ \\n]+)$/g)) return;\n\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n _this.quill.insertText(startIndex, matchedText, { bold: true, italic: true });\n _this.quill.format('bold', false);\n }, 0);\n }\n }, {\n name: 'bold',\n pattern: /(?:\\*|_){2}(.+?)(?:\\*|_){2}/g,\n action: function action(text, selection, pattern, lineStart) {\n var match = pattern.exec(text);\n\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n\n if (text.match(/^([*_ \\n]+)$/g)) return;\n\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n _this.quill.insertText(startIndex, matchedText, { bold: true });\n _this.quill.format('bold', false);\n }, 0);\n }\n }, {\n name: 'italic',\n pattern: /(?:\\*|_){1}(.+?)(?:\\*|_){1}/g,\n action: function action(text, selection, pattern, lineStart) {\n var match = pattern.exec(text);\n\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n\n if (text.match(/^([*_ \\n]+)$/g)) return;\n\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n _this.quill.insertText(startIndex, matchedText, { italic: true });\n _this.quill.format('italic', false);\n }, 0);\n }\n }, {\n name: 'strikethrough',\n pattern: /(?:~~)(.+?)(?:~~)/g,\n action: function action(text, selection, pattern, lineStart) {\n var match = pattern.exec(text);\n\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n\n if (text.match(/^([*_ \\n]+)$/g)) return;\n\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n _this.quill.insertText(startIndex, matchedText, { strike: true });\n _this.quill.format('strike', false);\n }, 0);\n }\n }, {\n name: 'code',\n pattern: /(?:`)(.+?)(?:`)/g,\n action: function action(text, selection, pattern, lineStart) {\n var match = pattern.exec(text);\n\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n\n if (text.match(/^([*_ \\n]+)$/g)) return;\n\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n _this.quill.insertText(startIndex, matchedText, { code: true });\n _this.quill.format('code', false);\n _this.quill.insertText(_this.quill.getSelection(), ' ');\n }, 0);\n }\n }, {\n name: 'hr',\n pattern: /^([-*]\\s?){3}/g,\n action: function action(text, selection) {\n var startIndex = selection.index - text.length;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, text.length);\n\n _this.quill.insertEmbed(startIndex + 1, 'hr', true, _quill2.default.sources.USER);\n _this.quill.insertText(startIndex + 2, \"\\n\", _quill2.default.sources.SILENT);\n _this.quill.setSelection(startIndex + 2, _quill2.default.sources.SILENT);\n }, 0);\n }\n }, {\n name: 'asterisk-ul',\n pattern: /^(\\*|\\+)\\s$/g,\n action: function action(text, selection, pattern) {\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 1, 'list', 'unordered');\n _this.quill.deleteText(selection.index - 2, 2);\n }, 0);\n }\n }, {\n name: 'image',\n pattern: /(?:!\\[(.+?)\\])(?:\\((.+?)\\))/g,\n action: function action(text, selection, pattern) {\n var startIndex = text.search(pattern);\n var matchedText = text.match(pattern)[0];\n // const hrefText = text.match(/(?:!\\[(.*?)\\])/g)[0]\n var hrefLink = text.match(/(?:\\((.*?)\\))/g)[0];\n var start = selection.index - matchedText.length - 1;\n if (startIndex !== -1) {\n setTimeout(function () {\n _this.quill.deleteText(start, matchedText.length);\n _this.quill.insertEmbed(start, 'image', hrefLink.slice(1, hrefLink.length - 1));\n }, 0);\n }\n }\n }, {\n name: 'link',\n pattern: /(?:\\[(.+?)\\])(?:\\((.+?)\\))/g,\n action: function action(text, selection, pattern) {\n var startIndex = text.search(pattern);\n var matchedText = text.match(pattern)[0];\n var hrefText = text.match(/(?:\\[(.*?)\\])/g)[0];\n var hrefLink = text.match(/(?:\\((.*?)\\))/g)[0];\n var start = selection.index - matchedText.length - 1;\n if (startIndex !== -1) {\n setTimeout(function () {\n _this.quill.deleteText(start, matchedText.length);\n _this.quill.insertText(start, hrefText.slice(1, hrefText.length - 1), 'link', hrefLink.slice(1, hrefLink.length - 1));\n }, 0);\n }\n }\n }];\n\n // Handler that looks for insert deltas that match specific characters\n this.quill.on('text-change', function (delta, oldContents, source) {\n for (var i = 0; i < delta.ops.length; i++) {\n if (delta.ops[i].hasOwnProperty('insert')) {\n if (delta.ops[i].insert === ' ') {\n _this.onSpace();\n } else if (delta.ops[i].insert === '\\n') {\n _this.onEnter();\n }\n }\n }\n });\n }\n\n _createClass(MarkdownShortcuts, [{\n key: 'isValid',\n value: function isValid(text, tagName) {\n return typeof text !== 'undefined' && text && this.ignoreTags.indexOf(tagName) === -1;\n }\n }, {\n key: 'onSpace',\n value: function onSpace() {\n var selection = this.quill.getSelection();\n if (!selection) return;\n\n var _quill$getLine = this.quill.getLine(selection.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var text = line.domNode.textContent;\n var lineStart = selection.index - offset;\n if (this.isValid(text, line.domNode.tagName)) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.matches[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var match = _step.value;\n\n var matchedText = text.match(match.pattern);\n if (matchedText) {\n // We need to replace only matched text not the whole line\n match.action(text, selection, match.pattern, lineStart);\n return;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }\n }, {\n key: 'onEnter',\n value: function onEnter() {\n var selection = this.quill.getSelection();\n if (!selection) return;\n\n var _quill$getLine3 = this.quill.getLine(selection.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var text = line.domNode.textContent + ' ';\n var lineStart = selection.index - offset;\n selection.length = selection.index++;\n if (this.isValid(text, line.domNode.tagName)) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = this.matches[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var match = _step2.value;\n\n var matchedText = text.match(match.pattern);\n if (matchedText) {\n match.action(text, selection, match.pattern, lineStart);\n return;\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }\n }]);\n\n return MarkdownShortcuts;\n}();\n\nif (window.Quill) {\n window.Quill.register('modules/markdownShortcuts', MarkdownShortcuts);\n}\n\nmodule.exports = MarkdownShortcuts;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _quill = __webpack_require__(0);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BlockEmbed = _quill2.default.import('blots/block/embed');\n\nvar HorizontalRule = function (_BlockEmbed) {\n _inherits(HorizontalRule, _BlockEmbed);\n\n function HorizontalRule() {\n _classCallCheck(this, HorizontalRule);\n\n return _possibleConstructorReturn(this, (HorizontalRule.__proto__ || Object.getPrototypeOf(HorizontalRule)).apply(this, arguments));\n }\n\n return HorizontalRule;\n}(BlockEmbed);\n\nHorizontalRule.blotName = 'hr';\nHorizontalRule.tagName = 'hr';\n\nexports.default = HorizontalRule;\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=markdownShortcuts.js.map\n\n//# sourceURL=webpack:///./node_modules/quill-markdown-shortcuts/dist/markdownShortcuts.js?");
/***/ }),
/***/ "./node_modules/quill/dist/quill.js":
/*!******************************************!*\
!*** ./node_modules/quill/dist/quill.js ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/* WEBPACK VAR INJECTION */(function(Buffer) {__webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n__webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n__webpack_require__(/*! core-js/modules/es.array.reduce.js */ \"./node_modules/core-js/modules/es.array.reduce.js\");\n__webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n__webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n__webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n__webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n__webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n__webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n__webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n__webpack_require__(/*! core-js/modules/web.self.js */ \"./node_modules/core-js/modules/web.self.js\");\n/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n if (true) module.exports = factory();else {}\n})(typeof self !== 'undefined' ? self : this, function () {\n return /******/function (modules) {\n // webpackBootstrap\n /******/ // The module cache\n /******/\n var installedModules = {};\n /******/\n /******/ // The require function\n /******/\n function __webpack_require__(moduleId) {\n /******/\n /******/ // Check if module is in cache\n /******/if (installedModules[moduleId]) {\n /******/return installedModules[moduleId].exports;\n /******/\n }\n /******/ // Create a new module (and put it into the cache)\n /******/\n var module = installedModules[moduleId] = {\n /******/i: moduleId,\n /******/l: false,\n /******/exports: {}\n /******/\n };\n /******/\n /******/ // Execute the module function\n /******/\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n /******/ // Flag the module as loaded\n /******/\n module.l = true;\n /******/\n /******/ // Return the exports of the module\n /******/\n return module.exports;\n /******/\n }\n /******/\n /******/\n /******/ // expose the modules object (__webpack_modules__)\n /******/\n __webpack_require__.m = modules;\n /******/\n /******/ // expose the module cache\n /******/\n __webpack_require__.c = installedModules;\n /******/\n /******/ // define getter function for harmony exports\n /******/\n __webpack_require__.d = function (exports, name, getter) {\n /******/if (!__webpack_require__.o(exports, name)) {\n /******/Object.defineProperty(exports, name, {\n /******/configurable: false,\n /******/enumerable: true,\n /******/get: getter\n /******/\n });\n /******/\n }\n /******/\n };\n /******/\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/\n __webpack_require__.n = function (module) {\n /******/var getter = module && module.__esModule ? /******/function getDefault() {\n return module['default'];\n } : /******/function getModuleExports() {\n return module;\n };\n /******/\n __webpack_require__.d(getter, 'a', getter);\n /******/\n return getter;\n /******/\n };\n /******/\n /******/ // Object.prototype.hasOwnProperty.call\n /******/\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n /******/ // __webpack_public_path__\n /******/\n __webpack_require__.p = \"\";\n /******/\n /******/ // Load entry module and return exports\n /******/\n return __webpack_require__(__webpack_require__.s = 109);\n /******/\n }\n /************************************************************************/\n /******/([( /* 0 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var container_1 = __webpack_require__(17);\n var format_1 = __webpack_require__(18);\n var leaf_1 = __webpack_require__(19);\n var scroll_1 = __webpack_require__(45);\n var inline_1 = __webpack_require__(46);\n var block_1 = __webpack_require__(47);\n var embed_1 = __webpack_require__(48);\n var text_1 = __webpack_require__(49);\n var attributor_1 = __webpack_require__(12);\n var class_1 = __webpack_require__(32);\n var style_1 = __webpack_require__(33);\n var store_1 = __webpack_require__(31);\n var Registry = __webpack_require__(1);\n var Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default\n }\n };\n exports.default = Parchment;\n\n /***/\n }), ( /* 1 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var ParchmentError = /** @class */function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n }(Error);\n exports.ParchmentError = ParchmentError;\n var attributes = {};\n var classes = {};\n var tags = {};\n var types = {};\n exports.DATA_KEY = '__blot';\n var Scope;\n (function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n })(Scope = exports.Scope || (exports.Scope = {}));\n function create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node =\n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n }\n exports.create = create;\n function find(node, bubble) {\n if (bubble === void 0) {\n bubble = false;\n }\n if (node == null) return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null) return node[exports.DATA_KEY].blot;\n if (bubble) return find(node.parentNode, bubble);\n return null;\n }\n exports.find = find;\n function query(query, scope) {\n if (scope === void 0) {\n scope = Scope.ANY;\n }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n } else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n } else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n } else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n } else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match) break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null) return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope) return match;\n return null;\n }\n exports.query = query;\n function register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n } else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n } else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n } else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n }\n exports.register = register;\n\n /***/\n }), ( /* 2 */\n /***/function (module, exports, __webpack_require__) {\n var diff = __webpack_require__(51);\n var equal = __webpack_require__(11);\n var extend = __webpack_require__(3);\n var op = __webpack_require__(20);\n var NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n var Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n };\n Delta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n };\n Delta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({\n 'delete': length\n });\n };\n Delta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = {\n retain: length\n };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n };\n Delta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = {\n 'delete': lastOp['delete'] + newOp['delete']\n };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = {\n insert: lastOp.insert + newOp.insert\n };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes;\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = {\n retain: lastOp.retain + newOp.retain\n };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes;\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n };\n Delta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n };\n Delta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n };\n Delta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n };\n Delta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n };\n Delta.prototype.partition = function (predicate) {\n var passed = [],\n failed = [];\n this.forEach(function (op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n };\n Delta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n };\n Delta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n };\n Delta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n };\n Delta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n };\n Delta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n };\n Delta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n };\n Delta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = delta === other ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n };\n Delta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ? thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n };\n Delta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n };\n Delta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n };\n module.exports = Delta;\n\n /***/\n }), ( /* 3 */\n /***/function (module, exports) {\n 'use strict';\n\n var hasOwn = Object.prototype.hasOwnProperty;\n var toStr = Object.prototype.toString;\n var defineProperty = Object.defineProperty;\n var gOPD = Object.getOwnPropertyDescriptor;\n var isArray = function isArray(arr) {\n if (typeof Array.isArray === 'function') {\n return Array.isArray(arr);\n }\n return toStr.call(arr) === '[object Array]';\n };\n var isPlainObject = function isPlainObject(obj) {\n if (!obj || toStr.call(obj) !== '[object Object]') {\n return false;\n }\n var hasOwnConstructor = hasOwn.call(obj, 'constructor');\n var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n // Not own constructor property must be Object\n if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n return false;\n }\n\n // Own properties are enumerated firstly, so to speed up,\n // if last one is own, then all properties are own.\n var key;\n for (key in obj) {/**/}\n return typeof key === 'undefined' || hasOwn.call(obj, key);\n };\n\n // If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\n var setProperty = function setProperty(target, options) {\n if (defineProperty && options.name === '__proto__') {\n defineProperty(target, options.name, {\n enumerable: true,\n configurable: true,\n value: options.newValue,\n writable: true\n });\n } else {\n target[options.name] = options.newValue;\n }\n };\n\n // Return undefined instead of __proto__ if '__proto__' is not an own property\n var getProperty = function getProperty(obj, name) {\n if (name === '__proto__') {\n if (!hasOwn.call(obj, name)) {\n return void 0;\n } else if (gOPD) {\n // In early versions of node, obj['__proto__'] is buggy when obj has\n // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n return gOPD(obj, name).value;\n }\n }\n return obj[name];\n };\n module.exports = function extend() {\n var options, name, src, copy, copyIsArray, clone;\n var target = arguments[0];\n var i = 1;\n var length = arguments.length;\n var deep = false;\n\n // Handle a deep copy situation\n if (typeof target === 'boolean') {\n deep = target;\n target = arguments[1] || {};\n // skip the boolean and the target\n i = 2;\n }\n if (target == null || typeof target !== 'object' && typeof target !== 'function') {\n target = {};\n }\n for (; i < length; ++i) {\n options = arguments[i];\n // Only deal with non-null/undefined values\n if (options != null) {\n // Extend the base object\n for (name in options) {\n src = getProperty(target, name);\n copy = getProperty(options, name);\n\n // Prevent never-ending loop\n if (target !== copy) {\n // Recurse if we're merging plain objects or arrays\n if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && isArray(src) ? src : [];\n } else {\n clone = src && isPlainObject(src) ? src : {};\n }\n\n // Never move original objects, clone them\n setProperty(target, {\n name: name,\n newValue: extend(deep, clone, copy)\n });\n\n // Don't bring in undefined values\n } else if (typeof copy !== 'undefined') {\n setProperty(target, {\n name: name,\n newValue: copy\n });\n }\n }\n }\n }\n }\n\n // Return the modified object\n return target;\n };\n\n /***/\n }), ( /* 4 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _extend = __webpack_require__(3);\n var _extend2 = _interopRequireDefault(_extend);\n var _quillDelta = __webpack_require__(2);\n var _quillDelta2 = _interopRequireDefault(_quillDelta);\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _break = __webpack_require__(16);\n var _break2 = _interopRequireDefault(_break);\n var _inline = __webpack_require__(6);\n var _inline2 = _interopRequireDefault(_inline);\n var _text = __webpack_require__(7);\n var _text2 = _interopRequireDefault(_text);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var NEWLINE_LENGTH = 1;\n var BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n return BlockEmbed;\n }(_parchment2.default.Embed);\n BlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n // It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n var Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n function Block(domNode) {\n _classCallCheck(this, Block);\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n _this2.cache = {};\n return _this2;\n }\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n return Block;\n }(_parchment2.default.Block);\n Block.blotName = 'block';\n Block.tagName = 'P';\n Block.defaultChild = 'break';\n Block.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n function bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n }\n exports.bubbleFormats = bubbleFormats;\n exports.BlockEmbed = BlockEmbed;\n exports.default = Block;\n\n /***/\n }), ( /* 5 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = exports.overload = exports.expandConfig = undefined;\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n __webpack_require__(50);\n var _quillDelta = __webpack_require__(2);\n var _quillDelta2 = _interopRequireDefault(_quillDelta);\n var _editor = __webpack_require__(14);\n var _editor2 = _interopRequireDefault(_editor);\n var _emitter3 = __webpack_require__(8);\n var _emitter4 = _interopRequireDefault(_emitter3);\n var _module = __webpack_require__(9);\n var _module2 = _interopRequireDefault(_module);\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _selection = __webpack_require__(15);\n var _selection2 = _interopRequireDefault(_selection);\n var _extend = __webpack_require__(3);\n var _extend2 = _interopRequireDefault(_extend);\n var _logger = __webpack_require__(10);\n var _logger2 = _interopRequireDefault(_logger);\n var _theme = __webpack_require__(34);\n var _theme2 = _interopRequireDefault(_theme);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var debug = (0, _logger2.default)('quill');\n var Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n function Quill(container) {\n var _this2 = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Quill);\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('<div class=\\'ql-editor\\' style=\"white-space: normal;\">' + html + '<p><br></p></div>');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n var _overload = overload(index, length, source);\n var _overload2 = _slicedToArray(_overload, 4);\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n var formats = void 0;\n var _overload3 = overload(index, length, name, value, source);\n var _overload4 = _slicedToArray(_overload3, 4);\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n var formats = void 0;\n var _overload5 = overload(index, length, name, value, source);\n var _overload6 = _slicedToArray(_overload5, 4);\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n var _overload7 = overload(index, length);\n var _overload8 = _slicedToArray(_overload7, 2);\n index = _overload8[0];\n length = _overload8[1];\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n var _overload9 = overload(index, length);\n var _overload10 = _slicedToArray(_overload9, 2);\n index = _overload10[0];\n length = _overload10[1];\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n var formats = void 0;\n var _overload11 = overload(index, 0, name, value, source);\n var _overload12 = _slicedToArray(_overload11, 4);\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n var _overload13 = overload(index, length, source);\n var _overload14 = _slicedToArray(_overload13, 4);\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n var _overload16 = _slicedToArray(_overload15, 4);\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n return Quill;\n }();\n Quill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n };\n Quill.events = _emitter4.default.events;\n Quill.sources = _emitter4.default.sources;\n // eslint-disable-next-line no-undef\n Quill.version = false ? undefined : \"1.3.7\";\n Quill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n };\n function expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, {\n modules: moduleConfig\n }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n }\n\n // Handle selection preservation and TEXT_CHANGE emission\n // common to modification APIs\n function modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n }\n function overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n }\n function shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n var _map2 = _slicedToArray(_map, 2);\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n var _map4 = _slicedToArray(_map3, 2);\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n }\n exports.expandConfig = expandConfig;\n exports.overload = overload;\n exports.default = Quill;\n\n /***/\n }), ( /* 6 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _text = __webpack_require__(7);\n var _text2 = _interopRequireDefault(_text);\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n function Inline() {\n _classCallCheck(this, Inline);\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n return Inline;\n }(_parchment2.default.Inline);\n Inline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n // Lower index means deeper in the DOM tree, since not found (-1) is for embeds\n Inline.order = ['cursor', 'inline',\n // Must be lower\n 'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n ];\n exports.default = Inline;\n\n /***/\n }), ( /* 7 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n return TextBlot;\n }(_parchment2.default.Text);\n exports.default = TextBlot;\n\n /***/\n }), ( /* 8 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _eventemitter = __webpack_require__(54);\n var _eventemitter2 = _interopRequireDefault(_eventemitter);\n var _logger = __webpack_require__(10);\n var _logger2 = _interopRequireDefault(_logger);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var debug = (0, _logger2.default)('quill:events');\n var EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n EVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n });\n var Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n function Emitter() {\n _classCallCheck(this, Emitter);\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({\n node: node,\n handler: handler\n });\n }\n }]);\n return Emitter;\n }(_eventemitter2.default);\n Emitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n };\n Emitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n };\n exports.default = Emitter;\n\n /***/\n }), ( /* 9 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Module);\n this.quill = quill;\n this.options = options;\n };\n Module.DEFAULTS = {};\n exports.default = Module;\n\n /***/\n }), ( /* 10 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var levels = ['error', 'warn', 'log', 'info'];\n var level = 'warn';\n function debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n }\n function namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n }\n debug.level = namespace.level = function (newLevel) {\n level = newLevel;\n };\n exports.default = namespace;\n\n /***/\n }), ( /* 11 */\n /***/function (module, exports, __webpack_require__) {\n var pSlice = Array.prototype.slice;\n var objectKeys = __webpack_require__(52);\n var isArguments = __webpack_require__(53);\n var deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n };\n function isUndefinedOrNull(value) {\n return value === null || value === undefined;\n }\n function isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n }\n function objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {\n //happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length) return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n }\n\n /***/\n }), ( /* 12 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var Registry = __webpack_require__(1);\n var Attributor = /** @class */function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) {\n options = {};\n }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = options.scope & Registry.Scope.LEVEL | attributeBit;\n } else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null) this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null) return false;\n if (this.whitelist == null) return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n } else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n }();\n exports.default = Attributor;\n\n /***/\n }), ( /* 13 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = exports.Code = undefined;\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _quillDelta = __webpack_require__(2);\n var _quillDelta2 = _interopRequireDefault(_quillDelta);\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _block = __webpack_require__(4);\n var _block2 = _interopRequireDefault(_block);\n var _inline = __webpack_require__(6);\n var _inline2 = _interopRequireDefault(_inline);\n var _text = __webpack_require__(7);\n var _text2 = _interopRequireDefault(_text);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var Code = function (_Inline) {\n _inherits(Code, _Inline);\n function Code() {\n _classCallCheck(this, Code);\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n return Code;\n }(_inline2.default);\n Code.blotName = 'code';\n Code.tagName = 'CODE';\n var CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n return CodeBlock;\n }(_block2.default);\n CodeBlock.blotName = 'code-block';\n CodeBlock.tagName = 'PRE';\n CodeBlock.TAB = ' ';\n exports.Code = Code;\n exports.default = CodeBlock;\n\n /***/\n }), ( /* 14 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _quillDelta = __webpack_require__(2);\n var _quillDelta2 = _interopRequireDefault(_quillDelta);\n var _op = __webpack_require__(20);\n var _op2 = _interopRequireDefault(_op);\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _code = __webpack_require__(13);\n var _code2 = _interopRequireDefault(_code);\n var _cursor = __webpack_require__(24);\n var _cursor2 = _interopRequireDefault(_cursor);\n var _block = __webpack_require__(4);\n var _block2 = _interopRequireDefault(_block);\n var _break = __webpack_require__(16);\n var _break2 = _interopRequireDefault(_break);\n var _clone = __webpack_require__(21);\n var _clone2 = _interopRequireDefault(_clone);\n var _deepEqual = __webpack_require__(11);\n var _deepEqual2 = _interopRequireDefault(_deepEqual);\n var _extend = __webpack_require__(3);\n var _extend2 = _interopRequireDefault(_extend);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var ASCII = /^[ -~]*$/;\n var Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n return Editor;\n }();\n function combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n }\n function normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({\n image: op.attributes.image\n }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n }\n exports.default = Editor;\n\n /***/\n }), ( /* 15 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = exports.Range = undefined;\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _clone = __webpack_require__(21);\n var _clone2 = _interopRequireDefault(_clone);\n var _deepEqual = __webpack_require__(11);\n var _deepEqual2 = _interopRequireDefault(_deepEqual);\n var _emitter3 = __webpack_require__(8);\n var _emitter4 = _interopRequireDefault(_emitter3);\n var _logger = __webpack_require__(10);\n var _logger2 = _interopRequireDefault(_logger);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var debug = (0, _logger2.default)('quill:selection');\n var Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n _classCallCheck(this, Range);\n this.index = index;\n this.length = length;\n };\n var Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n _classCallCheck(this, Selection);\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n var _leaf$position = leaf.position(offset, true);\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n if (leaf == null) return null;\n var _leaf$position3 = leaf.position(offset, true);\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: {\n node: nativeRange.startContainer,\n offset: nativeRange.startOffset\n },\n end: {\n node: nativeRange.endContainer,\n offset: nativeRange.endOffset\n },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n var oldRange = this.lastRange;\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n return Selection;\n }();\n function contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n }\n exports.Range = Range;\n exports.default = Selection;\n\n /***/\n }), ( /* 16 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n function Break() {\n _classCallCheck(this, Break);\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n return Break;\n }(_parchment2.default.Embed);\n Break.blotName = 'break';\n Break.tagName = 'BR';\n exports.default = Break;\n\n /***/\n }), ( /* 17 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var linked_list_1 = __webpack_require__(44);\n var shadow_1 = __webpack_require__(30);\n var Registry = __webpack_require__(1);\n var ContainerBlot = /** @class */function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice.call(this.domNode.childNodes).reverse().forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n } catch (err) {\n if (err instanceof Registry.ParchmentError) return;else throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index),\n child = _a[0],\n offset = _a[1];\n if (criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria) {\n return [child, offset];\n } else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n } else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) {\n index = 0;\n }\n if (length === void 0) {\n length = Number.MAX_VALUE;\n }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if (criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index),\n child = _a[0],\n offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n } else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null && !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n } else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n var _a = this.children.find(index, inclusive),\n child = _a[0],\n offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n } else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) {\n force = false;\n }\n if (!force) {\n if (index === 0) return this;\n if (index === this.length()) return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' && document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null) return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes.filter(function (node) {\n return node.parentNode == _this.domNode;\n }).sort(function (a, b) {\n if (a === b) return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n }).forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n }(shadow_1.default);\n function makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n } catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n }\n exports.default = ContainerBlot;\n\n /***/\n }), ( /* 18 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var attributor_1 = __webpack_require__(12);\n var store_1 = __webpack_require__(31);\n var container_1 = __webpack_require__(17);\n var Registry = __webpack_require__(1);\n var FormatBlot = /** @class */function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n } else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n } else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n }(container_1.default);\n exports.default = FormatBlot;\n\n /***/\n }), ( /* 19 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var shadow_1 = __webpack_require__(30);\n var Registry = __webpack_require__(1);\n var LeafBlot = /** @class */function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node || this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0) offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n }(shadow_1.default);\n exports.default = LeafBlot;\n\n /***/\n }), ( /* 20 */\n /***/function (module, exports, __webpack_require__) {\n var equal = __webpack_require__(11);\n var extend = __webpack_require__(3);\n var lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n diff: function (a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n iterator: function (ops) {\n return new Iterator(ops);\n },\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n };\n function Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n }\n ;\n Iterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n };\n Iterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp);\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return {\n 'delete': length\n };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return {\n retain: Infinity\n };\n }\n };\n Iterator.prototype.peek = function () {\n return this.ops[this.index];\n };\n Iterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n };\n Iterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n };\n Iterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n };\n module.exports = lib;\n\n /***/\n }), ( /* 21 */\n /***/function (module, exports) {\n var clone = function () {\n 'use strict';\n\n function _instanceof(obj, type) {\n return type != null && obj instanceof type;\n }\n var nativeMap;\n try {\n nativeMap = Map;\n } catch (_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function () {};\n }\n var nativeSet;\n try {\n nativeSet = Set;\n } catch (_) {\n nativeSet = function () {};\n }\n var nativePromise;\n try {\n nativePromise = Promise;\n } catch (_) {\n nativePromise = function () {};\n }\n\n /**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n */\n function clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n var useBuffer = typeof Buffer != 'undefined';\n if (typeof circular == 'undefined') circular = true;\n if (typeof depth == 'undefined') depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null) return null;\n if (depth === 0) return parent;\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function (value) {\n resolve(_clone(value, depth - 1));\n }, function (err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n } else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n if (circular) {\n var index = allParents.indexOf(parent);\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function (value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function (value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n return child;\n }\n return _clone(parent, depth);\n }\n\n /**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\n clone.clonePrototype = function clonePrototype(parent) {\n if (parent === null) return null;\n var c = function () {};\n c.prototype = parent;\n return new c();\n };\n\n // private utility functions\n\n function __objToStr(o) {\n return Object.prototype.toString.call(o);\n }\n clone.__objToStr = __objToStr;\n function __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n }\n clone.__isDate = __isDate;\n function __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n }\n clone.__isArray = __isArray;\n function __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n }\n clone.__isRegExp = __isRegExp;\n function __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n }\n clone.__getRegExpFlags = __getRegExpFlags;\n return clone;\n }();\n if (typeof module === 'object' && module.exports) {\n module.exports = clone;\n }\n\n /***/\n }), ( /* 22 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _emitter = __webpack_require__(8);\n var _emitter2 = _interopRequireDefault(_emitter);\n var _block = __webpack_require__(4);\n var _block2 = _interopRequireDefault(_block);\n var _break = __webpack_require__(16);\n var _break2 = _interopRequireDefault(_break);\n var _code = __webpack_require__(13);\n var _code2 = _interopRequireDefault(_code);\n var _container = __webpack_require__(25);\n var _container2 = _interopRequireDefault(_container);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n function isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n }\n var Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n return Scroll;\n }(_parchment2.default.Scroll);\n Scroll.blotName = 'scroll';\n Scroll.className = 'ql-editor';\n Scroll.tagName = 'DIV';\n Scroll.defaultChild = 'block';\n Scroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n exports.default = Scroll;\n\n /***/\n }), ( /* 23 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.SHORTKEY = exports.default = undefined;\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _clone = __webpack_require__(21);\n var _clone2 = _interopRequireDefault(_clone);\n var _deepEqual = __webpack_require__(11);\n var _deepEqual2 = _interopRequireDefault(_deepEqual);\n var _extend = __webpack_require__(3);\n var _extend2 = _interopRequireDefault(_extend);\n var _quillDelta = __webpack_require__(2);\n var _quillDelta2 = _interopRequireDefault(_quillDelta);\n var _op = __webpack_require__(20);\n var _op2 = _interopRequireDefault(_op);\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _quill = __webpack_require__(5);\n var _quill2 = _interopRequireDefault(_quill);\n var _logger = __webpack_require__(10);\n var _logger2 = _interopRequireDefault(_logger);\n var _module = __webpack_require__(9);\n var _module2 = _interopRequireDefault(_module);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var debug = (0, _logger2.default)('quill:keyboard');\n var SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n var Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({\n key: Keyboard.keys.ENTER,\n shiftKey: null\n }, handleEnter);\n _this.addBinding({\n key: Keyboard.keys.ENTER,\n metaKey: null,\n ctrlKey: null,\n altKey: null\n }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({\n key: Keyboard.keys.BACKSPACE\n }, {\n collapsed: true\n }, handleBackspace);\n _this.addBinding({\n key: Keyboard.keys.DELETE\n }, {\n collapsed: true\n }, handleDelete);\n } else {\n _this.addBinding({\n key: Keyboard.keys.BACKSPACE\n }, {\n collapsed: true,\n prefix: /^.?$/\n }, handleBackspace);\n _this.addBinding({\n key: Keyboard.keys.DELETE\n }, {\n collapsed: true,\n suffix: /^.?$/\n }, handleDelete);\n }\n _this.addBinding({\n key: Keyboard.keys.BACKSPACE\n }, {\n collapsed: false\n }, handleDeleteRange);\n _this.addBinding({\n key: Keyboard.keys.DELETE\n }, {\n collapsed: false\n }, handleDeleteRange);\n _this.addBinding({\n key: Keyboard.keys.BACKSPACE,\n altKey: null,\n ctrlKey: null,\n metaKey: null,\n shiftKey: null\n }, {\n collapsed: true,\n offset: 0\n }, handleBackspace);\n _this.listen();\n return _this;\n }\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = {\n handler: context\n };\n }\n if (typeof handler === 'function') {\n handler = {\n handler: handler\n };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n return Keyboard;\n }(_module2.default);\n Keyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n Keyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: {\n list: 'checked'\n },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n var formats = (0, _extend2.default)({}, line.formats(), {\n list: 'checked'\n });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, {\n list: 'unchecked'\n });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, {\n header: null\n });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: {\n list: false\n },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':\n case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':\n case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, {\n list: value\n });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, {\n 'code-block': null\n }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n };\n function makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n }\n function handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n }\n function handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n }\n function handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n }\n function handleEnter(range, context) {\n var _this3 = this;\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n }\n function makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: {\n 'code-block': true\n },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n }\n function makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n }\n function normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({\n key: binding\n });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n }\n exports.default = Keyboard;\n exports.SHORTKEY = SHORTKEY;\n\n /***/\n }), ( /* 24 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _text = __webpack_require__(7);\n var _text2 = _interopRequireDefault(_text);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n var _map2 = _slicedToArray(_map, 2);\n start = _map2[0];\n end = _map2[1];\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n return Cursor;\n }(_parchment2.default.Embed);\n Cursor.blotName = 'cursor';\n Cursor.className = 'ql-cursor';\n Cursor.tagName = 'span';\n Cursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n exports.default = Cursor;\n\n /***/\n }), ( /* 25 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _block = __webpack_require__(4);\n var _block2 = _interopRequireDefault(_block);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n function Container() {\n _classCallCheck(this, Container);\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n return Container;\n }(_parchment2.default.Container);\n Container.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n exports.default = Container;\n\n /***/\n }), ( /* 26 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n return ColorAttributor;\n }(_parchment2.default.Attributor.Style);\n var ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n });\n var ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n });\n exports.ColorAttributor = ColorAttributor;\n exports.ColorClass = ColorClass;\n exports.ColorStyle = ColorStyle;\n\n /***/\n }), ( /* 27 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.sanitize = exports.default = undefined;\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _inline = __webpack_require__(6);\n var _inline2 = _interopRequireDefault(_inline);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var Link = function (_Inline) {\n _inherits(Link, _Inline);\n function Link() {\n _classCallCheck(this, Link);\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n return Link;\n }(_inline2.default);\n Link.blotName = 'link';\n Link.tagName = 'A';\n Link.SANITIZED_URL = 'about:blank';\n Link.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n function _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n }\n exports.default = Link;\n exports.sanitize = _sanitize;\n\n /***/\n }), ( /* 28 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _keyboard = __webpack_require__(23);\n var _keyboard2 = _interopRequireDefault(_keyboard);\n var _dropdown = __webpack_require__(107);\n var _dropdown2 = _interopRequireDefault(_dropdown);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var optionsCounter = 0;\n function toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n }\n var Picker = function () {\n function Picker(select) {\n var _this = this;\n _classCallCheck(this, Picker);\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n this.options = options;\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n return Picker;\n }();\n exports.default = Picker;\n\n /***/\n }), ( /* 29 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _quill = __webpack_require__(5);\n var _quill2 = _interopRequireDefault(_quill);\n var _block = __webpack_require__(4);\n var _block2 = _interopRequireDefault(_block);\n var _break = __webpack_require__(16);\n var _break2 = _interopRequireDefault(_break);\n var _container = __webpack_require__(25);\n var _container2 = _interopRequireDefault(_container);\n var _cursor = __webpack_require__(24);\n var _cursor2 = _interopRequireDefault(_cursor);\n var _embed = __webpack_require__(35);\n var _embed2 = _interopRequireDefault(_embed);\n var _inline = __webpack_require__(6);\n var _inline2 = _interopRequireDefault(_inline);\n var _scroll = __webpack_require__(22);\n var _scroll2 = _interopRequireDefault(_scroll);\n var _text = __webpack_require__(7);\n var _text2 = _interopRequireDefault(_text);\n var _clipboard = __webpack_require__(55);\n var _clipboard2 = _interopRequireDefault(_clipboard);\n var _history = __webpack_require__(42);\n var _history2 = _interopRequireDefault(_history);\n var _keyboard = __webpack_require__(23);\n var _keyboard2 = _interopRequireDefault(_keyboard);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n _quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n });\n _parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n exports.default = _quill2.default;\n\n /***/\n }), ( /* 30 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var Registry = __webpack_require__(1);\n var ShadowBlot = /** @class */function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = {\n blot: this\n };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n } else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n } else {\n node = document.createElement(this.tagName[0]);\n }\n } else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null) this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n } else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) {\n refBlot = null;\n }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode || this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) {\n root = this.parent;\n }\n if (this.parent == null || this == root) return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null) return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n }();\n exports.default = ShadowBlot;\n\n /***/\n }), ( /* 31 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var attributor_1 = __webpack_require__(12);\n var class_1 = __webpack_require__(32);\n var style_1 = __webpack_require__(33);\n var Registry = __webpack_require__(1);\n var AttributorStore = /** @class */function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n } else {\n delete this.attributes[attribute.attrName];\n }\n }\n } else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n }();\n exports.default = AttributorStore;\n\n /***/\n }), ( /* 32 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var attributor_1 = __webpack_require__(12);\n function match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n }\n var ClassAttributor = /** @class */function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name.split('-').slice(0, -1).join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n }(attributor_1.default);\n exports.default = ClassAttributor;\n\n /***/\n }), ( /* 33 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var attributor_1 = __webpack_require__(12);\n function camelize(name) {\n var parts = name.split('-');\n var rest = parts.slice(1).map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n }).join('');\n return parts[0] + rest;\n }\n var StyleAttributor = /** @class */function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value)) return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n }(attributor_1.default);\n exports.default = StyleAttributor;\n\n /***/\n }), ( /* 34 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n return Theme;\n }();\n Theme.DEFAULTS = {\n modules: {}\n };\n Theme.themes = {\n 'default': Theme\n };\n exports.default = Theme;\n\n /***/\n }), ( /* 35 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _text = __webpack_require__(7);\n var _text2 = _interopRequireDefault(_text);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var GUARD_TEXT = '\\uFEFF';\n var Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n function Embed(node) {\n _classCallCheck(this, Embed);\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n return Embed;\n }(_parchment2.default.Embed);\n exports.default = Embed;\n\n /***/\n }), ( /* 36 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n var config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n };\n var AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\n var AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\n var AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n exports.AlignAttribute = AlignAttribute;\n exports.AlignClass = AlignClass;\n exports.AlignStyle = AlignStyle;\n\n /***/\n }), ( /* 37 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.BackgroundStyle = exports.BackgroundClass = undefined;\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _color = __webpack_require__(26);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n var BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n });\n var BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n });\n exports.BackgroundClass = BackgroundClass;\n exports.BackgroundStyle = BackgroundStyle;\n\n /***/\n }), ( /* 38 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n var config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n };\n var DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\n var DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\n var DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n exports.DirectionAttribute = DirectionAttribute;\n exports.DirectionClass = DirectionClass;\n exports.DirectionStyle = DirectionStyle;\n\n /***/\n }), ( /* 39 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.FontClass = exports.FontStyle = undefined;\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n };\n var FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n var FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n return FontStyleAttributor;\n }(_parchment2.default.Attributor.Style);\n var FontStyle = new FontStyleAttributor('font', 'font-family', config);\n exports.FontStyle = FontStyle;\n exports.FontClass = FontClass;\n\n /***/\n }), ( /* 40 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.SizeStyle = exports.SizeClass = undefined;\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n var SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n });\n var SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n });\n exports.SizeClass = SizeClass;\n exports.SizeStyle = SizeStyle;\n\n /***/\n }), ( /* 41 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n module.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n };\n\n /***/\n }), ( /* 42 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.getLastChangeIndex = exports.default = undefined;\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _quill = __webpack_require__(5);\n var _quill2 = _interopRequireDefault(_quill);\n var _module = __webpack_require__(9);\n var _module2 = _interopRequireDefault(_module);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var History = function (_Module) {\n _inherits(History, _Module);\n function History(quill, options) {\n _classCallCheck(this, History);\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({\n key: 'Z',\n shortKey: true\n }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({\n key: 'Z',\n shortKey: true,\n shiftKey: true\n }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({\n key: 'Y',\n shortKey: true\n }, _this.redo.bind(_this));\n }\n return _this;\n }\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = {\n undo: [],\n redo: []\n };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n return History;\n }(_module2.default);\n History.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n };\n function endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n }\n function getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n }\n exports.default = History;\n exports.getLastChangeIndex = getLastChangeIndex;\n\n /***/\n }), ( /* 43 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = exports.BaseTooltip = undefined;\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _extend = __webpack_require__(3);\n var _extend2 = _interopRequireDefault(_extend);\n var _quillDelta = __webpack_require__(2);\n var _quillDelta2 = _interopRequireDefault(_quillDelta);\n var _emitter = __webpack_require__(8);\n var _emitter2 = _interopRequireDefault(_emitter);\n var _keyboard = __webpack_require__(23);\n var _keyboard2 = _interopRequireDefault(_keyboard);\n var _theme = __webpack_require__(34);\n var _theme2 = _interopRequireDefault(_theme);\n var _colorPicker = __webpack_require__(59);\n var _colorPicker2 = _interopRequireDefault(_colorPicker);\n var _iconPicker = __webpack_require__(60);\n var _iconPicker2 = _interopRequireDefault(_iconPicker);\n var _picker = __webpack_require__(28);\n var _picker2 = _interopRequireDefault(_picker);\n var _tooltip = __webpack_require__(61);\n var _tooltip2 = _interopRequireDefault(_tooltip);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var ALIGNS = [false, 'center', 'right', 'justify'];\n var COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n var FONTS = [false, 'serif', 'monospace'];\n var HEADERS = ['1', '2', '3', false];\n var SIZES = ['small', false, 'large', 'huge'];\n var BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n return BaseTheme;\n }(_theme2.default);\n BaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({\n image: e.target.result\n }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n });\n var BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n }\n // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n return BaseTooltip;\n }(_tooltip2.default);\n function extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n }\n function fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n }\n exports.BaseTooltip = BaseTooltip;\n exports.default = BaseTheme;\n\n /***/\n }), ( /* 44 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var LinkedList = /** @class */function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur,\n next = this.iterator();\n while (cur = next()) {\n if (cur === node) return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node) return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n } else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n } else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0,\n cur = this.head;\n while (cur != null) {\n if (cur === target) return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node)) return;\n if (node.prev != null) node.prev.next = node.next;\n if (node.next != null) node.next.prev = node.prev;\n if (node === this.head) this.head = node.next;\n if (node === this.tail) this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) {\n curNode = this.head;\n }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null) curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n var cur,\n next = this.iterator();\n while (cur = next()) {\n var length = cur.length();\n if (index < length || inclusive && index === length && (cur.next == null || cur.next.length() !== 0)) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur,\n next = this.iterator();\n while (cur = next()) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0) return;\n var _a = this.find(index),\n startNode = _a[0],\n offset = _a[1];\n var cur,\n curIndex = index - offset,\n next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n } else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur,\n next = this.iterator();\n while (cur = next()) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n }();\n exports.default = LinkedList;\n\n /***/\n }), ( /* 45 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var container_1 = __webpack_require__(17);\n var Registry = __webpack_require__(1);\n var OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n };\n var MAX_OPTIMIZE_ITERATIONS = 100;\n var ScrollBlot = /** @class */function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n } else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) {\n mutations = [];\n }\n if (context === void 0) {\n context = {};\n }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0) mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) {\n markParent = true;\n }\n if (blot == null || blot === _this) return;\n if (blot.domNode.parentNode == null) return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent) mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null) return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n } else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0) mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) {\n context = {};\n }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations.map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null) return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n } else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n }).forEach(function (blot) {\n if (blot == null || blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null) return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n }(container_1.default);\n exports.default = ScrollBlot;\n\n /***/\n }), ( /* 46 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var format_1 = __webpack_require__(18);\n var Registry = __webpack_require__(1);\n // Shallow object comparison\n function isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length) return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop]) return false;\n }\n return true;\n }\n var InlineBlot = /** @class */function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName) return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n } else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n }(format_1.default);\n exports.default = InlineBlot;\n\n /***/\n }), ( /* 47 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var format_1 = __webpack_require__(18);\n var Registry = __webpack_require__(1);\n var BlockBlot = /** @class */function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName) return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n } else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n } else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n } else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n } else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n }(format_1.default);\n exports.default = BlockBlot;\n\n /***/\n }), ( /* 48 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var leaf_1 = __webpack_require__(19);\n var EmbedBlot = /** @class */function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n } else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n }(leaf_1.default);\n exports.default = EmbedBlot;\n\n /***/\n }), ( /* 49 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var leaf_1 = __webpack_require__(19);\n var Registry = __webpack_require__(1);\n var TextBlot = /** @class */function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize']) text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n } else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n } else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) {\n force = false;\n }\n if (!force) {\n if (index === 0) return this;\n if (index === this.length()) return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n }(leaf_1.default);\n exports.default = TextBlot;\n\n /***/\n }), ( /* 50 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var elem = document.createElement('div');\n elem.classList.toggle('test-class', false);\n if (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n }\n if (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n }\n if (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n }\n if (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n }\n document.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n });\n\n /***/\n }), ( /* 51 */\n /***/function (module, exports) {\n /**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n /**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\n var DIFF_DELETE = -1;\n var DIFF_INSERT = 1;\n var DIFF_EQUAL = 0;\n\n /**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\n function diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n }\n ;\n\n /**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\n function diff_compute_(text1, text2) {\n var diffs;\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)], [DIFF_EQUAL, shorttext], [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n return diff_bisect_(text1, text2);\n }\n ;\n\n /**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\n function diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = delta % 2 != 0;\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1]) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length && text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1]) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length && text1.charAt(text1_length - x2 - 1) == text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n ;\n\n /**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\n function diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n return diffs.concat(diffsb);\n }\n ;\n\n /**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\n function diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) == text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n }\n ;\n\n /**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\n function diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) == text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n }\n ;\n\n /**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.<string>} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\n function diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.<string>} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i), shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i), shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) + shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n }\n ;\n\n /**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\n function diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if (pointer - count_delete - count_insert > 0 && diffs[pointer - count_delete - count_insert - 1][0] == DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] += text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL, text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length - commonlength);\n text_delete = text_delete.substring(0, text_delete.length - commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert, count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete, count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert, count_delete + count_insert, [DIFF_DELETE, text_delete], [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert + (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL && diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length - diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] + diffs[pointer][1].substring(0, diffs[pointer][1].length - diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) == diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] = diffs[pointer][1].substring(diffs[pointer + 1][1].length) + diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n }\n ;\n var diff = diff_main;\n diff.INSERT = DIFF_INSERT;\n diff.DELETE = DIFF_DELETE;\n diff.EQUAL = DIFF_EQUAL;\n module.exports = diff;\n\n /*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\n function cursor_normalize_diff(diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!');\n }\n\n /*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\n function fix_cursor(diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d);\n return merge_tuples(ndiffs, cursor_pointer, 2);\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3);\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n }\n\n /*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\n function fix_emoji(diffs) {\n var compact = false;\n var starts_with_pair_end = function (str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n };\n var ends_with_pair_start = function (str) {\n return str.charCodeAt(str.length - 1) >= 0xD800 && str.charCodeAt(str.length - 1) <= 0xDBFF;\n };\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i - 2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i - 2][1]) && diffs[i - 1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i - 1][1]) && diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n diffs[i - 1][1] = diffs[i - 2][1].slice(-1) + diffs[i - 1][1];\n diffs[i][1] = diffs[i - 2][1].slice(-1) + diffs[i][1];\n diffs[i - 2][1] = diffs[i - 2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n }\n\n /*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\n function merge_tuples(diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i + 1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n }\n\n /***/\n }), ( /* 52 */\n /***/function (module, exports) {\n exports = module.exports = typeof Object.keys === 'function' ? Object.keys : shim;\n exports.shim = shim;\n function shim(obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n }\n\n /***/\n }), ( /* 53 */\n /***/function (module, exports) {\n var supportsArgumentsClass = function () {\n return Object.prototype.toString.call(arguments);\n }() == '[object Arguments]';\n exports = module.exports = supportsArgumentsClass ? supported : unsupported;\n exports.supported = supported;\n function supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n }\n ;\n exports.unsupported = unsupported;\n function unsupported(object) {\n return object && typeof object == 'object' && typeof object.length == 'number' && Object.prototype.hasOwnProperty.call(object, 'callee') && !Object.prototype.propertyIsEnumerable.call(object, 'callee') || false;\n }\n ;\n\n /***/\n }), ( /* 54 */\n /***/function (module, exports) {\n 'use strict';\n\n var has = Object.prototype.hasOwnProperty,\n prefix = '~';\n\n /**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\n function Events() {}\n\n //\n // We try to not inherit from `Object.prototype`. In some engines creating an\n // instance in this way is faster than calling `Object.create(null)` directly.\n // If `Object.create(null)` is not supported we prefix the event names with a\n // character to make sure that the built-in object properties are not\n // overridden or used as an attack vector.\n //\n if (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n }\n\n /**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\n function EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n }\n\n /**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\n function EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n /**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\n EventEmitter.prototype.eventNames = function eventNames() {\n var names = [],\n events,\n name;\n if (this._eventsCount === 0) return names;\n for (name in events = this._events) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n return names;\n };\n\n /**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\n EventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event,\n available = this._events[evt];\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n return ee;\n };\n\n /**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\n EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt]) return false;\n var listeners = this._events[evt],\n len = arguments.length,\n args,\n i;\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n switch (len) {\n case 1:\n return listeners.fn.call(listeners.context), true;\n case 2:\n return listeners.fn.call(listeners.context, a1), true;\n case 3:\n return listeners.fn.call(listeners.context, a1, a2), true;\n case 4:\n return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6:\n return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n for (i = 1, args = new Array(len - 1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length,\n j;\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n switch (len) {\n case 1:\n listeners[i].fn.call(listeners[i].context);\n break;\n case 2:\n listeners[i].fn.call(listeners[i].context, a1);\n break;\n case 3:\n listeners[i].fn.call(listeners[i].context, a1, a2);\n break;\n case 4:\n listeners[i].fn.call(listeners[i].context, a1, a2, a3);\n break;\n default:\n if (!args) for (j = 1, args = new Array(len - 1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n return true;\n };\n\n /**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\n EventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this),\n evt = prefix ? prefix + event : event;\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;else if (!this._events[evt].fn) this._events[evt].push(listener);else this._events[evt] = [this._events[evt], listener];\n return this;\n };\n\n /**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\n EventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true),\n evt = prefix ? prefix + event : event;\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;else if (!this._events[evt].fn) this._events[evt].push(listener);else this._events[evt] = [this._events[evt], listener];\n return this;\n };\n\n /**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\n EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();else delete this._events[evt];\n return this;\n }\n var listeners = this._events[evt];\n if (listeners.fn) {\n if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) {\n if (--this._eventsCount === 0) this._events = new Events();else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;else if (--this._eventsCount === 0) this._events = new Events();else delete this._events[evt];\n }\n return this;\n };\n\n /**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n return this;\n };\n\n //\n // Alias methods names because people roll like that.\n //\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n //\n // This function doesn't apply anymore.\n //\n EventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n };\n\n //\n // Expose the prefix.\n //\n EventEmitter.prefixed = prefix;\n\n //\n // Allow `EventEmitter` to be imported as module namespace.\n //\n EventEmitter.EventEmitter = EventEmitter;\n\n //\n // Expose the module.\n //\n if ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n }\n\n /***/\n }), ( /* 55 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _extend2 = __webpack_require__(3);\n var _extend3 = _interopRequireDefault(_extend2);\n var _quillDelta = __webpack_require__(2);\n var _quillDelta2 = _interopRequireDefault(_quillDelta);\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _quill = __webpack_require__(5);\n var _quill2 = _interopRequireDefault(_quill);\n var _logger = __webpack_require__(10);\n var _logger2 = _interopRequireDefault(_logger);\n var _module = __webpack_require__(9);\n var _module2 = _interopRequireDefault(_module);\n var _align = __webpack_require__(36);\n var _background = __webpack_require__(37);\n var _code = __webpack_require__(13);\n var _code2 = _interopRequireDefault(_code);\n var _color = __webpack_require__(26);\n var _direction = __webpack_require__(38);\n var _font = __webpack_require__(39);\n var _size = __webpack_require__(40);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var debug = (0, _logger2.default)('quill:clipboard');\n var DOM_KEY = '__ql-matcher';\n var CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n var ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n }, {});\n var STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n }, {});\n var Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\</g, '><'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n return Clipboard;\n }(_module2.default);\n Clipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n };\n function applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n }\n function computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n }\n function deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n }\n function isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n }\n function traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n }\n function matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n }\n function matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n }\n function matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n }\n function matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n }\n function matchIgnore() {\n return new _quillDelta2.default();\n }\n function matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, {\n indent: indent\n }));\n }\n function matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n }\n function matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n }\n function matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n }\n function matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with <o:p>&nbsp;</o:p>\n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n }\n exports.default = Clipboard;\n exports.matchAttributor = matchAttributor;\n exports.matchBlot = matchBlot;\n exports.matchNewline = matchNewline;\n exports.matchSpacing = matchSpacing;\n exports.matchText = matchText;\n\n /***/\n }), ( /* 56 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _inline = __webpack_require__(6);\n var _inline2 = _interopRequireDefault(_inline);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n function Bold() {\n _classCallCheck(this, Bold);\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n return Bold;\n }(_inline2.default);\n Bold.blotName = 'bold';\n Bold.tagName = ['STRONG', 'B'];\n exports.default = Bold;\n\n /***/\n }), ( /* 57 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.addControls = exports.default = undefined;\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _quillDelta = __webpack_require__(2);\n var _quillDelta2 = _interopRequireDefault(_quillDelta);\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _quill = __webpack_require__(5);\n var _quill2 = _interopRequireDefault(_quill);\n var _logger = __webpack_require__(10);\n var _logger2 = _interopRequireDefault(_logger);\n var _module = __webpack_require__(9);\n var _module2 = _interopRequireDefault(_module);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var debug = (0, _logger2.default)('quill:toolbar');\n var Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n _this.update(range);\n });\n return _this;\n }\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n return Toolbar;\n }(_module2.default);\n Toolbar.DEFAULTS = {};\n function addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n }\n function addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n }\n function addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n }\n Toolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n };\n exports.default = Toolbar;\n exports.addControls = addControls;\n\n /***/\n }), ( /* 58 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"5 7 3 9 5 11\\\"></polyline> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"13 7 15 9 13 11\\\"></polyline> <line class=ql-stroke x1=10 x2=8 y1=5 y2=13></line> </svg>\";\n\n /***/\n }), ( /* 59 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _picker = __webpack_require__(28);\n var _picker2 = _interopRequireDefault(_picker);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n return ColorPicker;\n }(_picker2.default);\n exports.default = ColorPicker;\n\n /***/\n }), ( /* 60 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _picker = __webpack_require__(28);\n var _picker2 = _interopRequireDefault(_picker);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n return IconPicker;\n }(_picker2.default);\n exports.default = IconPicker;\n\n /***/\n }), ( /* 61 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n _classCallCheck(this, Tooltip);\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n return Tooltip;\n }();\n exports.default = Tooltip;\n\n /***/\n }), ( /* 62 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _extend = __webpack_require__(3);\n var _extend2 = _interopRequireDefault(_extend);\n var _emitter = __webpack_require__(8);\n var _emitter2 = _interopRequireDefault(_emitter);\n var _base = __webpack_require__(43);\n var _base2 = _interopRequireDefault(_base);\n var _link = __webpack_require__(27);\n var _link2 = _interopRequireDefault(_link);\n var _selection = __webpack_require__(15);\n var _icons = __webpack_require__(41);\n var _icons2 = _interopRequireDefault(_icons);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var TOOLBAR_CONFIG = [[{\n header: ['1', '2', '3', false]\n }], ['bold', 'italic', 'underline', 'link'], [{\n list: 'ordered'\n }, {\n list: 'bullet'\n }], ['clean']];\n var SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({\n key: 'K',\n shortKey: true\n }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n return SnowTheme;\n }(_base2.default);\n SnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n });\n var SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n return SnowTooltip;\n }(_base.BaseTooltip);\n SnowTooltip.TEMPLATE = ['<a class=\"ql-preview\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"about:blank\"></a>', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-action\"></a>', '<a class=\"ql-remove\"></a>'].join('');\n exports.default = SnowTheme;\n\n /***/\n }), ( /* 63 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _core = __webpack_require__(29);\n var _core2 = _interopRequireDefault(_core);\n var _align = __webpack_require__(36);\n var _direction = __webpack_require__(38);\n var _indent = __webpack_require__(64);\n var _blockquote = __webpack_require__(65);\n var _blockquote2 = _interopRequireDefault(_blockquote);\n var _header = __webpack_require__(66);\n var _header2 = _interopRequireDefault(_header);\n var _list = __webpack_require__(67);\n var _list2 = _interopRequireDefault(_list);\n var _background = __webpack_require__(37);\n var _color = __webpack_require__(26);\n var _font = __webpack_require__(39);\n var _size = __webpack_require__(40);\n var _bold = __webpack_require__(56);\n var _bold2 = _interopRequireDefault(_bold);\n var _italic = __webpack_require__(68);\n var _italic2 = _interopRequireDefault(_italic);\n var _link = __webpack_require__(27);\n var _link2 = _interopRequireDefault(_link);\n var _script = __webpack_require__(69);\n var _script2 = _interopRequireDefault(_script);\n var _strike = __webpack_require__(70);\n var _strike2 = _interopRequireDefault(_strike);\n var _underline = __webpack_require__(71);\n var _underline2 = _interopRequireDefault(_underline);\n var _image = __webpack_require__(72);\n var _image2 = _interopRequireDefault(_image);\n var _video = __webpack_require__(73);\n var _video2 = _interopRequireDefault(_video);\n var _code = __webpack_require__(13);\n var _code2 = _interopRequireDefault(_code);\n var _formula = __webpack_require__(74);\n var _formula2 = _interopRequireDefault(_formula);\n var _syntax = __webpack_require__(75);\n var _syntax2 = _interopRequireDefault(_syntax);\n var _toolbar = __webpack_require__(57);\n var _toolbar2 = _interopRequireDefault(_toolbar);\n var _icons = __webpack_require__(41);\n var _icons2 = _interopRequireDefault(_icons);\n var _picker = __webpack_require__(28);\n var _picker2 = _interopRequireDefault(_picker);\n var _colorPicker = __webpack_require__(59);\n var _colorPicker2 = _interopRequireDefault(_colorPicker);\n var _iconPicker = __webpack_require__(60);\n var _iconPicker2 = _interopRequireDefault(_iconPicker);\n var _tooltip = __webpack_require__(61);\n var _tooltip2 = _interopRequireDefault(_tooltip);\n var _bubble = __webpack_require__(108);\n var _bubble2 = _interopRequireDefault(_bubble);\n var _snow = __webpack_require__(62);\n var _snow2 = _interopRequireDefault(_snow);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n _core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n }, true);\n _core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n 'formats/list/item': _list.ListItem,\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n }, true);\n exports.default = _core2.default;\n\n /***/\n }), ( /* 64 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.IndentClass = undefined;\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n return IdentAttributor;\n }(_parchment2.default.Attributor.Class);\n var IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n });\n exports.IndentClass = IndentClass;\n\n /***/\n }), ( /* 65 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _block = __webpack_require__(4);\n var _block2 = _interopRequireDefault(_block);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n return Blockquote;\n }(_block2.default);\n Blockquote.blotName = 'blockquote';\n Blockquote.tagName = 'blockquote';\n exports.default = Blockquote;\n\n /***/\n }), ( /* 66 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _block = __webpack_require__(4);\n var _block2 = _interopRequireDefault(_block);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var Header = function (_Block) {\n _inherits(Header, _Block);\n function Header() {\n _classCallCheck(this, Header);\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n return Header;\n }(_block2.default);\n Header.blotName = 'header';\n Header.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n exports.default = Header;\n\n /***/\n }), ( /* 67 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = exports.ListItem = undefined;\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _block = __webpack_require__(4);\n var _block2 = _interopRequireDefault(_block);\n var _container = __webpack_require__(25);\n var _container2 = _interopRequireDefault(_container);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n function ListItem() {\n _classCallCheck(this, ListItem);\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n return ListItem;\n }(_block2.default);\n ListItem.blotName = 'list-item';\n ListItem.tagName = 'LI';\n var List = function (_Container) {\n _inherits(List, _Container);\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n function List(domNode) {\n _classCallCheck(this, List);\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n return List;\n }(_container2.default);\n List.blotName = 'list';\n List.scope = _parchment2.default.Scope.BLOCK_BLOT;\n List.tagName = ['OL', 'UL'];\n List.defaultChild = 'list-item';\n List.allowedChildren = [ListItem];\n exports.ListItem = ListItem;\n exports.default = List;\n\n /***/\n }), ( /* 68 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _bold = __webpack_require__(56);\n var _bold2 = _interopRequireDefault(_bold);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n function Italic() {\n _classCallCheck(this, Italic);\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n return Italic;\n }(_bold2.default);\n Italic.blotName = 'italic';\n Italic.tagName = ['EM', 'I'];\n exports.default = Italic;\n\n /***/\n }), ( /* 69 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _inline = __webpack_require__(6);\n var _inline2 = _interopRequireDefault(_inline);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var Script = function (_Inline) {\n _inherits(Script, _Inline);\n function Script() {\n _classCallCheck(this, Script);\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n return Script;\n }(_inline2.default);\n Script.blotName = 'script';\n Script.tagName = ['SUB', 'SUP'];\n exports.default = Script;\n\n /***/\n }), ( /* 70 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _inline = __webpack_require__(6);\n var _inline2 = _interopRequireDefault(_inline);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n function Strike() {\n _classCallCheck(this, Strike);\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n return Strike;\n }(_inline2.default);\n Strike.blotName = 'strike';\n Strike.tagName = 'S';\n exports.default = Strike;\n\n /***/\n }), ( /* 71 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _inline = __webpack_require__(6);\n var _inline2 = _interopRequireDefault(_inline);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n function Underline() {\n _classCallCheck(this, Underline);\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n return Underline;\n }(_inline2.default);\n Underline.blotName = 'underline';\n Underline.tagName = 'U';\n exports.default = Underline;\n\n /***/\n }), ( /* 72 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _link = __webpack_require__(27);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var ATTRIBUTES = ['alt', 'height', 'width'];\n var Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n function Image() {\n _classCallCheck(this, Image);\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return /\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url);\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n return Image;\n }(_parchment2.default.Embed);\n Image.blotName = 'image';\n Image.tagName = 'IMG';\n exports.default = Image;\n\n /***/\n }), ( /* 73 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _block = __webpack_require__(4);\n var _link = __webpack_require__(27);\n var _link2 = _interopRequireDefault(_link);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var ATTRIBUTES = ['height', 'width'];\n var Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n function Video() {\n _classCallCheck(this, Video);\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n return Video;\n }(_block.BlockEmbed);\n Video.blotName = 'video';\n Video.className = 'ql-video';\n Video.tagName = 'IFRAME';\n exports.default = Video;\n\n /***/\n }), ( /* 74 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = exports.FormulaBlot = undefined;\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _embed = __webpack_require__(35);\n var _embed2 = _interopRequireDefault(_embed);\n var _quill = __webpack_require__(5);\n var _quill2 = _interopRequireDefault(_quill);\n var _module = __webpack_require__(9);\n var _module2 = _interopRequireDefault(_module);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n return FormulaBlot;\n }(_embed2.default);\n FormulaBlot.blotName = 'formula';\n FormulaBlot.className = 'ql-formula';\n FormulaBlot.tagName = 'SPAN';\n var Formula = function (_Module) {\n _inherits(Formula, _Module);\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n function Formula() {\n _classCallCheck(this, Formula);\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n return Formula;\n }(_module2.default);\n exports.FormulaBlot = FormulaBlot;\n exports.default = Formula;\n\n /***/\n }), ( /* 75 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = exports.CodeToken = exports.CodeBlock = undefined;\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _parchment = __webpack_require__(0);\n var _parchment2 = _interopRequireDefault(_parchment);\n var _quill = __webpack_require__(5);\n var _quill2 = _interopRequireDefault(_quill);\n var _module = __webpack_require__(9);\n var _module2 = _interopRequireDefault(_module);\n var _code = __webpack_require__(13);\n var _code2 = _interopRequireDefault(_code);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n return SyntaxCodeBlock;\n }(_code2.default);\n SyntaxCodeBlock.className = 'ql-syntax';\n var CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n });\n var Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n return Syntax;\n }(_module2.default);\n Syntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n };\n exports.CodeBlock = SyntaxCodeBlock;\n exports.CodeToken = CodeToken;\n exports.default = Syntax;\n\n /***/\n }), ( /* 76 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=13 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=9 y1=4 y2=4></line> </svg>\";\n\n /***/\n }), ( /* 77 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=14 x2=4 y1=14 y2=14></line> <line class=ql-stroke x1=12 x2=6 y1=4 y2=4></line> </svg>\";\n\n /***/\n }), ( /* 78 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=5 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=9 y1=4 y2=4></line> </svg>\";\n\n /***/\n }), ( /* 79 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=3 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=3 y1=4 y2=4></line> </svg>\";\n\n /***/\n }), ( /* 80 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <g class=\\\"ql-fill ql-color-label\\\"> <polygon points=\\\"6 6.868 6 6 5 6 5 7 5.942 7 6 6.868\\\"></polygon> <rect height=1 width=1 x=4 y=4></rect> <polygon points=\\\"6.817 5 6 5 6 6 6.38 6 6.817 5\\\"></polygon> <rect height=1 width=1 x=2 y=6></rect> <rect height=1 width=1 x=3 y=5></rect> <rect height=1 width=1 x=4 y=7></rect> <polygon points=\\\"4 11.439 4 11 3 11 3 12 3.755 12 4 11.439\\\"></polygon> <rect height=1 width=1 x=2 y=12></rect> <rect height=1 width=1 x=2 y=9></rect> <rect height=1 width=1 x=2 y=15></rect> <polygon points=\\\"4.63 10 4 10 4 11 4.192 11 4.63 10\\\"></polygon> <rect height=1 width=1 x=3 y=8></rect> <path d=M10.832,4.2L11,4.582V4H10.708A1.948,1.948,0,0,1,10.832,4.2Z></path> <path d=M7,4.582L7.168,4.2A1.929,1.929,0,0,1,7.292,4H7V4.582Z></path> <path d=M8,13H7.683l-0.351.8a1.933,1.933,0,0,1-.124.2H8V13Z></path> <rect height=1 width=1 x=12 y=2></rect> <rect height=1 width=1 x=11 y=3></rect> <path d=M9,3H8V3.282A1.985,1.985,0,0,1,9,3Z></path> <rect height=1 width=1 x=2 y=3></rect> <rect height=1 width=1 x=6 y=2></rect> <rect height=1 width=1 x=3 y=2></rect> <rect height=1 width=1 x=5 y=3></rect> <rect height=1 width=1 x=9 y=2></rect> <rect height=1 width=1 x=15 y=14></rect> <polygon points=\\\"13.447 10.174 13.469 10.225 13.472 10.232 13.808 11 14 11 14 10 13.37 10 13.447 10.174\\\"></polygon> <rect height=1 width=1 x=13 y=7></rect> <rect height=1 width=1 x=15 y=5></rect> <rect height=1 width=1 x=14 y=6></rect> <rect height=1 width=1 x=15 y=8></rect> <rect height=1 width=1 x=14 y=9></rect> <path d=M3.775,14H3v1H4V14.314A1.97,1.97,0,0,1,3.775,14Z></path> <rect height=1 width=1 x=14 y=3></rect> <polygon points=\\\"12 6.868 12 6 11.62 6 12 6.868\\\"></polygon> <rect height=1 width=1 x=15 y=2></rect> <rect height=1 width=1 x=12 y=5></rect> <rect height=1 width=1 x=13 y=4></rect> <polygon points=\\\"12.933 9 13 9 13 8 12.495 8 12.933 9\\\"></polygon> <rect height=1 width=1 x=9 y=14></rect> <rect height=1 width=1 x=8 y=15></rect> <path d=M6,14.926V15H7V14.316A1.993,1.993,0,0,1,6,14.926Z></path> <rect height=1 width=1 x=5 y=15></rect> <path d=M10.668,13.8L10.317,13H10v1h0.792A1.947,1.947,0,0,1,10.668,13.8Z></path> <rect height=1 width=1 x=11 y=15></rect> <path d=M14.332,12.2a1.99,1.99,0,0,1,.166.8H15V12H14.245Z></path> <rect height=1 width=1 x=14 y=15></rect> <rect height=1 width=1 x=15 y=11></rect> </g> <polyline class=ql-stroke points=\\\"5.5 13 9 5 12.5 13\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=11 y2=11></line> </svg>\";\n\n /***/\n }), ( /* 81 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=4 y=5></rect> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=11 y=5></rect> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M7,8c0,4.031-3,5-3,5></path> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M14,8c0,4.031-3,5-3,5></path> </svg>\";\n\n /***/\n }), ( /* 82 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z></path> <path class=ql-stroke d=M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z></path> </svg>\";\n\n /***/\n }), ( /* 83 */\n /***/function (module, exports) {\n module.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=5 x2=13 y1=3 y2=3></line> <line class=ql-stroke x1=6 x2=9.35 y1=12 y2=3></line> <line class=ql-stroke x1=11 x2=15 y1=11 y2=15></line> <line class=ql-stroke x1=15 x2=11 y1=11 y2=15></line> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=7 x=2 y=14></rect> </svg>\";\n\n /***/\n }), ( /* 84 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-color-label ql-stroke ql-transparent\\\" x1=3 x2=15 y1=15 y2=15></line> <polyline class=ql-stroke points=\\\"5.5 11 9 3 12.5 11\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=9 y2=9></line> </svg>\";\n\n /***/\n }), ( /* 85 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"3 11 5 9 3 7 3 11\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=15 x2=11 y1=4 y2=4></line> <path class=ql-fill d=M11,3a3,3,0,0,0,0,6h1V3H11Z></path> <rect class=ql-fill height=11 width=1 x=11 y=4></rect> <rect class=ql-fill height=11 width=1 x=13 y=4></rect> </svg>\";\n\n /***/\n }), ( /* 86 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"15 12 13 10 15 8 15 12\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=9 x2=5 y1=4 y2=4></line> <path class=ql-fill d=M5,3A3,3,0,0,0,5,9H6V3H5Z></path> <rect class=ql-fill height=11 width=1 x=5 y=4></rect> <rect class=ql-fill height=11 width=1 x=7 y=4></rect> </svg>\";\n\n /***/\n }), ( /* 87 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M14,16H4a1,1,0,0,1,0-2H14A1,1,0,0,1,14,16Z /> <path class=ql-fill d=M14,4H4A1,1,0,0,1,4,2H14A1,1,0,0,1,14,4Z /> <rect class=ql-fill x=3 y=6 width=12 height=6 rx=1 ry=1 /> </svg>\";\n\n /***/\n }), ( /* 88 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M13,16H5a1,1,0,0,1,0-2h8A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H5A1,1,0,0,1,5,2h8A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=2 y=6 width=14 height=6 rx=1 ry=1 /> </svg>\";\n\n /***/\n }), ( /* 89 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15,8H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,8Z /> <path class=ql-fill d=M15,12H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,12Z /> <path class=ql-fill d=M15,16H5a1,1,0,0,1,0-2H15A1,1,0,0,1,15,16Z /> <path class=ql-fill d=M15,4H5A1,1,0,0,1,5,2H15A1,1,0,0,1,15,4Z /> <rect class=ql-fill x=2 y=6 width=8 height=6 rx=1 ry=1 /> </svg>\";\n\n /***/\n }), ( /* 90 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M5,8H3A1,1,0,0,1,3,6H5A1,1,0,0,1,5,8Z /> <path class=ql-fill d=M5,12H3a1,1,0,0,1,0-2H5A1,1,0,0,1,5,12Z /> <path class=ql-fill d=M13,16H3a1,1,0,0,1,0-2H13A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H3A1,1,0,0,1,3,2H13A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=8 y=6 width=8 height=6 rx=1 ry=1 transform=\\\"translate(24 18) rotate(-180)\\\"/> </svg>\";\n\n /***/\n }), ( /* 91 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M11.759,2.482a2.561,2.561,0,0,0-3.53.607A7.656,7.656,0,0,0,6.8,6.2C6.109,9.188,5.275,14.677,4.15,14.927a1.545,1.545,0,0,0-1.3-.933A0.922,0.922,0,0,0,2,15.036S1.954,16,4.119,16s3.091-2.691,3.7-5.553c0.177-.826.36-1.726,0.554-2.6L8.775,6.2c0.381-1.421.807-2.521,1.306-2.676a1.014,1.014,0,0,0,1.02.56A0.966,0.966,0,0,0,11.759,2.482Z></path> <rect class=ql-fill height=1.6 rx=0.8 ry=0.8 width=5 x=5.15 y=6.2></rect> <path class=ql-fill d=M13.663,12.027a1.662,1.662,0,0,1,.266-0.276q0.193,0.069.456,0.138a2.1,2.1,0,0,0,.535.069,1.075,1.075,0,0,0,.767-0.3,1.044,1.044,0,0,0,.314-0.8,0.84,0.84,0,0,0-.238-0.619,0.8,0.8,0,0,0-.594-0.239,1.154,1.154,0,0,0-.781.3,4.607,4.607,0,0,0-.781,1q-0.091.15-.218,0.346l-0.246.38c-0.068-.288-0.137-0.582-0.212-0.885-0.459-1.847-2.494-.984-2.941-0.8-0.482.2-.353,0.647-0.094,0.529a0.869,0.869,0,0,1,1.281.585c0.217,0.751.377,1.436,0.527,2.038a5.688,5.688,0,0,1-.362.467,2.69,2.69,0,0,1-.264.271q-0.221-.08-0.471-0.147a2.029,2.029,0,0,0-.522-0.066,1.079,1.079,0,0,0-.768.3A1.058,1.058,0,0,0,9,15.131a0.82,0.82,0,0,0,.832.852,1.134,1.134,0,0,0,.787-0.3,5.11,5.11,0,0,0,.776-0.993q0.141-.219.215-0.34c0.046-.076.122-0.194,0.223-0.346a2.786,2.786,0,0,0,.918,1.726,2.582,2.582,0,0,0,2.376-.185c0.317-.181.212-0.565,0-0.494A0.807,0.807,0,0,1,14.176,15a5.159,5.159,0,0,1-.913-2.446l0,0Q13.487,12.24,13.663,12.027Z></path> </svg>\";\n\n /***/\n }), ( /* 92 */\n /***/function (module, exports) {\n module.exports = \"<svg viewBox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M10,4V14a1,1,0,0,1-2,0V10H3v4a1,1,0,0,1-2,0V4A1,1,0,0,1,3,4V8H8V4a1,1,0,0,1,2,0Zm6.06787,9.209H14.98975V7.59863a.54085.54085,0,0,0-.605-.60547h-.62744a1.01119,1.01119,0,0,0-.748.29688L11.645,8.56641a.5435.5435,0,0,0-.022.8584l.28613.30762a.53861.53861,0,0,0,.84717.0332l.09912-.08789a1.2137,1.2137,0,0,0,.2417-.35254h.02246s-.01123.30859-.01123.60547V13.209H12.041a.54085.54085,0,0,0-.605.60547v.43945a.54085.54085,0,0,0,.605.60547h4.02686a.54085.54085,0,0,0,.605-.60547v-.43945A.54085.54085,0,0,0,16.06787,13.209Z /> </svg>\";\n\n /***/\n }), ( /* 93 */\n /***/function (module, exports) {\n module.exports = \"<svg viewBox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M16.73975,13.81445v.43945a.54085.54085,0,0,1-.605.60547H11.855a.58392.58392,0,0,1-.64893-.60547V14.0127c0-2.90527,3.39941-3.42187,3.39941-4.55469a.77675.77675,0,0,0-.84717-.78125,1.17684,1.17684,0,0,0-.83594.38477c-.2749.26367-.561.374-.85791.13184l-.4292-.34082c-.30811-.24219-.38525-.51758-.1543-.81445a2.97155,2.97155,0,0,1,2.45361-1.17676,2.45393,2.45393,0,0,1,2.68408,2.40918c0,2.45312-3.1792,2.92676-3.27832,3.93848h2.79443A.54085.54085,0,0,1,16.73975,13.81445ZM9,3A.99974.99974,0,0,0,8,4V8H3V4A1,1,0,0,0,1,4V14a1,1,0,0,0,2,0V10H8v4a1,1,0,0,0,2,0V4A.99974.99974,0,0,0,9,3Z /> </svg>\";\n\n /***/\n }), ( /* 94 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=13 y1=4 y2=4></line> <line class=ql-stroke x1=5 x2=11 y1=14 y2=14></line> <line class=ql-stroke x1=8 x2=10 y1=14 y2=4></line> </svg>\";\n\n /***/\n }), ( /* 95 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=10 width=12 x=3 y=4></rect> <circle class=ql-fill cx=6 cy=7 r=1></circle> <polyline class=\\\"ql-even ql-fill\\\" points=\\\"5 12 5 11 7 9 8 10 11 7 13 9 13 12 5 12\\\"></polyline> </svg>\";\n\n /***/\n }), ( /* 96 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=\\\"ql-fill ql-stroke\\\" points=\\\"3 7 3 11 5 9 3 7\\\"></polyline> </svg>\";\n\n /***/\n }), ( /* 97 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"5 7 5 11 3 9 5 7\\\"></polyline> </svg>\";\n\n /***/\n }), ( /* 98 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=11 y1=7 y2=11></line> <path class=\\\"ql-even ql-stroke\\\" d=M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z></path> <path class=\\\"ql-even ql-stroke\\\" d=M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z></path> </svg>\";\n\n /***/\n }), ( /* 99 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=7 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=7 x2=15 y1=14 y2=14></line> <line class=\\\"ql-stroke ql-thin\\\" x1=2.5 x2=4.5 y1=5.5 y2=5.5></line> <path class=ql-fill d=M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z></path> <path class=\\\"ql-stroke ql-thin\\\" d=M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156></path> <path class=\\\"ql-stroke ql-thin\\\" d=M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109></path> </svg>\";\n\n /***/\n }), ( /* 100 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=6 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=6 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=6 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=3 y1=4 y2=4></line> <line class=ql-stroke x1=3 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=3 y1=14 y2=14></line> </svg>\";\n\n /***/\n }), ( /* 101 */\n /***/function (module, exports) {\n module.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=9 x2=15 y1=4 y2=4></line> <polyline class=ql-stroke points=\\\"3 4 4 5 6 3\\\"></polyline> <line class=ql-stroke x1=9 x2=15 y1=14 y2=14></line> <polyline class=ql-stroke points=\\\"3 14 4 15 6 13\\\"></polyline> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"3 9 4 10 6 8\\\"></polyline> </svg>\";\n\n /***/\n }), ( /* 102 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,15H13.861a3.858,3.858,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.921,1.921,0,0,0,12.021,11.7a0.50013,0.50013,0,1,0,.957.291h0a0.914,0.914,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.076-1.16971,1.86982-1.93971,2.43082A1.45639,1.45639,0,0,0,12,15.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,15Z /> <path class=ql-fill d=M9.65,5.241a1,1,0,0,0-1.409.108L6,7.964,3.759,5.349A1,1,0,0,0,2.192,6.59178Q2.21541,6.6213,2.241,6.649L4.684,9.5,2.241,12.35A1,1,0,0,0,3.71,13.70722q0.02557-.02768.049-0.05722L6,11.036,8.241,13.65a1,1,0,1,0,1.567-1.24277Q9.78459,12.3777,9.759,12.35L7.316,9.5,9.759,6.651A1,1,0,0,0,9.65,5.241Z /> </svg>\";\n\n /***/\n }), ( /* 103 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,7H13.861a4.015,4.015,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.922,1.922,0,0,0,12.021,3.7a0.5,0.5,0,1,0,.957.291,0.917,0.917,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.077-1.164,1.925-1.934,2.486A1.423,1.423,0,0,0,12,7.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,7Z /> <path class=ql-fill d=M9.651,5.241a1,1,0,0,0-1.41.108L6,7.964,3.759,5.349a1,1,0,1,0-1.519,1.3L4.683,9.5,2.241,12.35a1,1,0,1,0,1.519,1.3L6,11.036,8.241,13.65a1,1,0,0,0,1.519-1.3L7.317,9.5,9.759,6.651A1,1,0,0,0,9.651,5.241Z /> </svg>\";\n\n /***/\n }), ( /* 104 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-stroke ql-thin\\\" x1=15.5 x2=2.5 y1=8.5 y2=9.5></line> <path class=ql-fill d=M9.007,8C6.542,7.791,6,7.519,6,6.5,6,5.792,7.283,5,9,5c1.571,0,2.765.679,2.969,1.309a1,1,0,0,0,1.9-.617C13.356,4.106,11.354,3,9,3,6.2,3,4,4.538,4,6.5a3.2,3.2,0,0,0,.5,1.843Z></path> <path class=ql-fill d=M8.984,10C11.457,10.208,12,10.479,12,11.5c0,0.708-1.283,1.5-3,1.5-1.571,0-2.765-.679-2.969-1.309a1,1,0,1,0-1.9.617C4.644,13.894,6.646,15,9,15c2.8,0,5-1.538,5-3.5a3.2,3.2,0,0,0-.5-1.843Z></path> </svg>\";\n\n /***/\n }), ( /* 105 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3></path> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=12 x=3 y=15></rect> </svg>\";\n\n /***/\n }), ( /* 106 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=12 width=12 x=3 y=3></rect> <rect class=ql-fill height=12 width=1 x=5 y=3></rect> <rect class=ql-fill height=12 width=1 x=12 y=3></rect> <rect class=ql-fill height=2 width=8 x=5 y=8></rect> <rect class=ql-fill height=1 width=3 x=3 y=5></rect> <rect class=ql-fill height=1 width=3 x=3 y=7></rect> <rect class=ql-fill height=1 width=3 x=3 y=10></rect> <rect class=ql-fill height=1 width=3 x=3 y=12></rect> <rect class=ql-fill height=1 width=3 x=12 y=5></rect> <rect class=ql-fill height=1 width=3 x=12 y=7></rect> <rect class=ql-fill height=1 width=3 x=12 y=10></rect> <rect class=ql-fill height=1 width=3 x=12 y=12></rect> </svg>\";\n\n /***/\n }), ( /* 107 */\n /***/function (module, exports) {\n module.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=ql-stroke points=\\\"7 11 9 13 11 11 7 11\\\"></polygon> <polygon class=ql-stroke points=\\\"7 7 9 5 11 7 7 7\\\"></polygon> </svg>\";\n\n /***/\n }), ( /* 108 */\n /***/function (module, exports, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = exports.BubbleTooltip = undefined;\n var _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n if (getter === undefined) {\n return undefined;\n }\n return getter.call(receiver);\n }\n };\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var _extend = __webpack_require__(3);\n var _extend2 = _interopRequireDefault(_extend);\n var _emitter = __webpack_require__(8);\n var _emitter2 = _interopRequireDefault(_emitter);\n var _base = __webpack_require__(43);\n var _base2 = _interopRequireDefault(_base);\n var _selection = __webpack_require__(15);\n var _icons = __webpack_require__(41);\n var _icons2 = _interopRequireDefault(_icons);\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n var TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{\n header: 1\n }, {\n header: 2\n }, 'blockquote']];\n var BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n return BubbleTheme;\n }(_base2.default);\n BubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n });\n var BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n return BubbleTooltip;\n }(_base.BaseTooltip);\n BubbleTooltip.TEMPLATE = ['<span class=\"ql-tooltip-arrow\"></span>', '<div class=\"ql-tooltip-editor\">', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-close\"></a>', '</div>'].join('');\n exports.BubbleTooltip = BubbleTooltip;\n exports.default = BubbleTheme;\n\n /***/\n }), ( /* 109 */\n /***/function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(63);\n\n /***/\n }\n /******/)])[\"default\"];\n});\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/quill/dist/quill.js?");
/***/ }),
/***/ "./node_modules/quill/dist/quill.snow.css":
/*!************************************************!*\
!*** ./node_modules/quill/dist/quill.snow.css ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../css-loader/dist/cjs.js??ref--7-oneOf-3-1!../../postcss-loader/src??ref--7-oneOf-3-2!./quill.snow.css */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/quill/dist/quill.snow.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"93e74588\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./node_modules/quill/dist/quill.snow.css?");
/***/ }),
/***/ "./node_modules/rope-sequence/dist/index.js":
/*!**************************************************!*\
!*** ./node_modules/rope-sequence/dist/index.js ***!
\**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar GOOD_LEAF_SIZE = 200;\n\n// :: class<T> A rope sequence is a persistent sequence data structure\n// that supports appending, prepending, and slicing without doing a\n// full copy. It is represented as a mostly-balanced tree.\nvar RopeSequence = function RopeSequence () {};\n\nRopeSequence.prototype.append = function append (other) {\n if (!other.length) { return this }\n other = RopeSequence.from(other);\n\n return (!this.length && other) ||\n (other.length < GOOD_LEAF_SIZE && this.leafAppend(other)) ||\n (this.length < GOOD_LEAF_SIZE && other.leafPrepend(this)) ||\n this.appendInner(other)\n};\n\n// :: (union<[T], RopeSequence<T>>) → RopeSequence<T>\n// Prepend an array or other rope to this one, returning a new rope.\nRopeSequence.prototype.prepend = function prepend (other) {\n if (!other.length) { return this }\n return RopeSequence.from(other).append(this)\n};\n\nRopeSequence.prototype.appendInner = function appendInner (other) {\n return new Append(this, other)\n};\n\n// :: (?number, ?number) → RopeSequence<T>\n// Create a rope repesenting a sub-sequence of this rope.\nRopeSequence.prototype.slice = function slice (from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n if (from >= to) { return RopeSequence.empty }\n return this.sliceInner(Math.max(0, from), Math.min(this.length, to))\n};\n\n// :: (number) → T\n// Retrieve the element at the given position from this rope.\nRopeSequence.prototype.get = function get (i) {\n if (i < 0 || i >= this.length) { return undefined }\n return this.getInner(i)\n};\n\n// :: ((element: T, index: number) → ?bool, ?number, ?number)\n// Call the given function for each element between the given\n// indices. This tends to be more efficient than looping over the\n// indices and calling `get`, because it doesn't have to descend the\n// tree for every element.\nRopeSequence.prototype.forEach = function forEach (f, from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n if (from <= to)\n { this.forEachInner(f, from, to, 0); }\n else\n { this.forEachInvertedInner(f, from, to, 0); }\n};\n\n// :: ((element: T, index: number) → U, ?number, ?number) → [U]\n// Map the given functions over the elements of the rope, producing\n// a flat array.\nRopeSequence.prototype.map = function map (f, from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n var result = [];\n this.forEach(function (elt, i) { return result.push(f(elt, i)); }, from, to);\n return result\n};\n\n// :: (?union<[T], RopeSequence<T>>) → RopeSequence<T>\n// Create a rope representing the given array, or return the rope\n// itself if a rope was given.\nRopeSequence.from = function from (values) {\n if (values instanceof RopeSequence) { return values }\n return values && values.length ? new Leaf(values) : RopeSequence.empty\n};\n\nvar Leaf = /*@__PURE__*/(function (RopeSequence) {\n function Leaf(values) {\n RopeSequence.call(this);\n this.values = values;\n }\n\n if ( RopeSequence ) Leaf.__proto__ = RopeSequence;\n Leaf.prototype = Object.create( RopeSequence && RopeSequence.prototype );\n Leaf.prototype.constructor = Leaf;\n\n var prototypeAccessors = { length: { configurable: true },depth: { configurable: true } };\n\n Leaf.prototype.flatten = function flatten () {\n return this.values\n };\n\n Leaf.prototype.sliceInner = function sliceInner (from, to) {\n if (from == 0 && to == this.length) { return this }\n return new Leaf(this.values.slice(from, to))\n };\n\n Leaf.prototype.getInner = function getInner (i) {\n return this.values[i]\n };\n\n Leaf.prototype.forEachInner = function forEachInner (f, from, to, start) {\n for (var i = from; i < to; i++)\n { if (f(this.values[i], start + i) === false) { return false } }\n };\n\n Leaf.prototype.forEachInvertedInner = function forEachInvertedInner (f, from, to, start) {\n for (var i = from - 1; i >= to; i--)\n { if (f(this.values[i], start + i) === false) { return false } }\n };\n\n Leaf.prototype.leafAppend = function leafAppend (other) {\n if (this.length + other.length <= GOOD_LEAF_SIZE)\n { return new Leaf(this.values.concat(other.flatten())) }\n };\n\n Leaf.prototype.leafPrepend = function leafPrepend (other) {\n if (this.length + other.length <= GOOD_LEAF_SIZE)\n { return new Leaf(other.flatten().concat(this.values)) }\n };\n\n prototypeAccessors.length.get = function () { return this.values.length };\n\n prototypeAccessors.depth.get = function () { return 0 };\n\n Object.defineProperties( Leaf.prototype, prototypeAccessors );\n\n return Leaf;\n}(RopeSequence));\n\n// :: RopeSequence\n// The empty rope sequence.\nRopeSequence.empty = new Leaf([]);\n\nvar Append = /*@__PURE__*/(function (RopeSequence) {\n function Append(left, right) {\n RopeSequence.call(this);\n this.left = left;\n this.right = right;\n this.length = left.length + right.length;\n this.depth = Math.max(left.depth, right.depth) + 1;\n }\n\n if ( RopeSequence ) Append.__proto__ = RopeSequence;\n Append.prototype = Object.create( RopeSequence && RopeSequence.prototype );\n Append.prototype.constructor = Append;\n\n Append.prototype.flatten = function flatten () {\n return this.left.flatten().concat(this.right.flatten())\n };\n\n Append.prototype.getInner = function getInner (i) {\n return i < this.left.length ? this.left.get(i) : this.right.get(i - this.left.length)\n };\n\n Append.prototype.forEachInner = function forEachInner (f, from, to, start) {\n var leftLen = this.left.length;\n if (from < leftLen &&\n this.left.forEachInner(f, from, Math.min(to, leftLen), start) === false)\n { return false }\n if (to > leftLen &&\n this.right.forEachInner(f, Math.max(from - leftLen, 0), Math.min(this.length, to) - leftLen, start + leftLen) === false)\n { return false }\n };\n\n Append.prototype.forEachInvertedInner = function forEachInvertedInner (f, from, to, start) {\n var leftLen = this.left.length;\n if (from > leftLen &&\n this.right.forEachInvertedInner(f, from - leftLen, Math.max(to, leftLen) - leftLen, start + leftLen) === false)\n { return false }\n if (to < leftLen &&\n this.left.forEachInvertedInner(f, Math.min(from, leftLen), to, start) === false)\n { return false }\n };\n\n Append.prototype.sliceInner = function sliceInner (from, to) {\n if (from == 0 && to == this.length) { return this }\n var leftLen = this.left.length;\n if (to <= leftLen) { return this.left.slice(from, to) }\n if (from >= leftLen) { return this.right.slice(from - leftLen, to - leftLen) }\n return this.left.slice(from, leftLen).append(this.right.slice(0, to - leftLen))\n };\n\n Append.prototype.leafAppend = function leafAppend (other) {\n var inner = this.right.leafAppend(other);\n if (inner) { return new Append(this.left, inner) }\n };\n\n Append.prototype.leafPrepend = function leafPrepend (other) {\n var inner = this.left.leafPrepend(other);\n if (inner) { return new Append(inner, this.right) }\n };\n\n Append.prototype.appendInner = function appendInner (other) {\n if (this.left.depth >= Math.max(this.right.depth, other.depth) + 1)\n { return new Append(this.left, new Append(this.right, other)) }\n return new Append(this, other)\n };\n\n return Append;\n}(RopeSequence));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (RopeSequence);\n\n\n//# sourceURL=webpack:///./node_modules/rope-sequence/dist/index.js?");
/***/ }),
/***/ "./node_modules/semver/classes/comparator.js":
/*!***************************************************!*\
!*** ./node_modules/semver/classes/comparator.js ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = __webpack_require__(/*! ../internal/parse-options */ \"./node_modules/semver/internal/parse-options.js\")\nconst { safeRe: re, t } = __webpack_require__(/*! ../internal/re */ \"./node_modules/semver/internal/re.js\")\nconst cmp = __webpack_require__(/*! ../functions/cmp */ \"./node_modules/semver/functions/cmp.js\")\nconst debug = __webpack_require__(/*! ../internal/debug */ \"./node_modules/semver/internal/debug.js\")\nconst SemVer = __webpack_require__(/*! ./semver */ \"./node_modules/semver/classes/semver.js\")\nconst Range = __webpack_require__(/*! ./range */ \"./node_modules/semver/classes/range.js\")\n\n\n//# sourceURL=webpack:///./node_modules/semver/classes/comparator.js?");
/***/ }),
/***/ "./node_modules/semver/classes/range.js":
/*!**********************************************!*\
!*** ./node_modules/semver/classes/range.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.formatted = undefined\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.formatted = undefined\n }\n\n get range () {\n if (this.formatted === undefined) {\n this.formatted = ''\n for (let i = 0; i < this.set.length; i++) {\n if (i > 0) {\n this.formatted += '||'\n }\n const comps = this.set[i]\n for (let k = 0; k < comps.length; k++) {\n if (k > 0) {\n this.formatted += ' '\n }\n this.formatted += comps[k].toString().trim()\n }\n }\n }\n return this.formatted\n }\n\n format () {\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = __webpack_require__(/*! ../internal/lrucache */ \"./node_modules/semver/internal/lrucache.js\")\nconst cache = new LRU()\n\nconst parseOptions = __webpack_require__(/*! ../internal/parse-options */ \"./node_modules/semver/internal/parse-options.js\")\nconst Comparator = __webpack_require__(/*! ./comparator */ \"./node_modules/semver/classes/comparator.js\")\nconst debug = __webpack_require__(/*! ../internal/debug */ \"./node_modules/semver/internal/debug.js\")\nconst SemVer = __webpack_require__(/*! ./semver */ \"./node_modules/semver/classes/semver.js\")\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = __webpack_require__(/*! ../internal/re */ \"./node_modules/semver/internal/re.js\")\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = __webpack_require__(/*! ../internal/constants */ \"./node_modules/semver/internal/constants.js\")\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\n\n//# sourceURL=webpack:///./node_modules/semver/classes/range.js?");
/***/ }),
/***/ "./node_modules/semver/classes/semver.js":
/*!***********************************************!*\
!*** ./node_modules/semver/classes/semver.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const debug = __webpack_require__(/*! ../internal/debug */ \"./node_modules/semver/internal/debug.js\")\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = __webpack_require__(/*! ../internal/constants */ \"./node_modules/semver/internal/constants.js\")\nconst { safeRe: re, safeSrc: src, t } = __webpack_require__(/*! ../internal/re */ \"./node_modules/semver/internal/re.js\")\n\nconst parseOptions = __webpack_require__(/*! ../internal/parse-options */ \"./node_modules/semver/internal/parse-options.js\")\nconst { compareIdentifiers } = __webpack_require__(/*! ../internal/identifiers */ \"./node_modules/semver/internal/identifiers.js\")\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const r = new RegExp(`^${this.options.loose ? src[t.PRERELEASELOOSE] : src[t.PRERELEASE]}$`)\n const match = `-${identifier}`.match(r)\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n\n\n//# sourceURL=webpack:///./node_modules/semver/classes/semver.js?");
/***/ }),
/***/ "./node_modules/semver/functions/clean.js":
/*!************************************************!*\
!*** ./node_modules/semver/functions/clean.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const parse = __webpack_require__(/*! ./parse */ \"./node_modules/semver/functions/parse.js\")\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/clean.js?");
/***/ }),
/***/ "./node_modules/semver/functions/cmp.js":
/*!**********************************************!*\
!*** ./node_modules/semver/functions/cmp.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const eq = __webpack_require__(/*! ./eq */ \"./node_modules/semver/functions/eq.js\")\nconst neq = __webpack_require__(/*! ./neq */ \"./node_modules/semver/functions/neq.js\")\nconst gt = __webpack_require__(/*! ./gt */ \"./node_modules/semver/functions/gt.js\")\nconst gte = __webpack_require__(/*! ./gte */ \"./node_modules/semver/functions/gte.js\")\nconst lt = __webpack_require__(/*! ./lt */ \"./node_modules/semver/functions/lt.js\")\nconst lte = __webpack_require__(/*! ./lte */ \"./node_modules/semver/functions/lte.js\")\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/cmp.js?");
/***/ }),
/***/ "./node_modules/semver/functions/coerce.js":
/*!*************************************************!*\
!*** ./node_modules/semver/functions/coerce.js ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/semver/classes/semver.js\")\nconst parse = __webpack_require__(/*! ./parse */ \"./node_modules/semver/functions/parse.js\")\nconst { safeRe: re, t } = __webpack_require__(/*! ../internal/re */ \"./node_modules/semver/internal/re.js\")\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n let next\n while ((next = coerceRtlRegex.exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2]\n const minor = match[3] || '0'\n const patch = match[4] || '0'\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/coerce.js?");
/***/ }),
/***/ "./node_modules/semver/functions/compare-build.js":
/*!********************************************************!*\
!*** ./node_modules/semver/functions/compare-build.js ***!
\********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/semver/classes/semver.js\")\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/compare-build.js?");
/***/ }),
/***/ "./node_modules/semver/functions/compare-loose.js":
/*!********************************************************!*\
!*** ./node_modules/semver/functions/compare-loose.js ***!
\********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const compare = __webpack_require__(/*! ./compare */ \"./node_modules/semver/functions/compare.js\")\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/compare-loose.js?");
/***/ }),
/***/ "./node_modules/semver/functions/compare.js":
/*!**************************************************!*\
!*** ./node_modules/semver/functions/compare.js ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/semver/classes/semver.js\")\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/compare.js?");
/***/ }),
/***/ "./node_modules/semver/functions/diff.js":
/*!***********************************************!*\
!*** ./node_modules/semver/functions/diff.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const parse = __webpack_require__(/*! ./parse.js */ \"./node_modules/semver/functions/parse.js\")\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // If the main part has no difference\n if (lowVersion.compareMain(highVersion) === 0) {\n if (lowVersion.minor && !lowVersion.patch) {\n return 'minor'\n }\n return 'patch'\n }\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are preleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/diff.js?");
/***/ }),
/***/ "./node_modules/semver/functions/eq.js":
/*!*********************************************!*\
!*** ./node_modules/semver/functions/eq.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const compare = __webpack_require__(/*! ./compare */ \"./node_modules/semver/functions/compare.js\")\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/eq.js?");
/***/ }),
/***/ "./node_modules/semver/functions/gt.js":
/*!*********************************************!*\
!*** ./node_modules/semver/functions/gt.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const compare = __webpack_require__(/*! ./compare */ \"./node_modules/semver/functions/compare.js\")\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/gt.js?");
/***/ }),
/***/ "./node_modules/semver/functions/gte.js":
/*!**********************************************!*\
!*** ./node_modules/semver/functions/gte.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const compare = __webpack_require__(/*! ./compare */ \"./node_modules/semver/functions/compare.js\")\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/gte.js?");
/***/ }),
/***/ "./node_modules/semver/functions/inc.js":
/*!**********************************************!*\
!*** ./node_modules/semver/functions/inc.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/semver/classes/semver.js\")\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/inc.js?");
/***/ }),
/***/ "./node_modules/semver/functions/lt.js":
/*!*********************************************!*\
!*** ./node_modules/semver/functions/lt.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const compare = __webpack_require__(/*! ./compare */ \"./node_modules/semver/functions/compare.js\")\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/lt.js?");
/***/ }),
/***/ "./node_modules/semver/functions/lte.js":
/*!**********************************************!*\
!*** ./node_modules/semver/functions/lte.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const compare = __webpack_require__(/*! ./compare */ \"./node_modules/semver/functions/compare.js\")\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/lte.js?");
/***/ }),
/***/ "./node_modules/semver/functions/major.js":
/*!************************************************!*\
!*** ./node_modules/semver/functions/major.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/semver/classes/semver.js\")\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/major.js?");
/***/ }),
/***/ "./node_modules/semver/functions/minor.js":
/*!************************************************!*\
!*** ./node_modules/semver/functions/minor.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/semver/classes/semver.js\")\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/minor.js?");
/***/ }),
/***/ "./node_modules/semver/functions/neq.js":
/*!**********************************************!*\
!*** ./node_modules/semver/functions/neq.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const compare = __webpack_require__(/*! ./compare */ \"./node_modules/semver/functions/compare.js\")\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/neq.js?");
/***/ }),
/***/ "./node_modules/semver/functions/parse.js":
/*!************************************************!*\
!*** ./node_modules/semver/functions/parse.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/semver/classes/semver.js\")\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/parse.js?");
/***/ }),
/***/ "./node_modules/semver/functions/patch.js":
/*!************************************************!*\
!*** ./node_modules/semver/functions/patch.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/semver/classes/semver.js\")\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/patch.js?");
/***/ }),
/***/ "./node_modules/semver/functions/prerelease.js":
/*!*****************************************************!*\
!*** ./node_modules/semver/functions/prerelease.js ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const parse = __webpack_require__(/*! ./parse */ \"./node_modules/semver/functions/parse.js\")\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/prerelease.js?");
/***/ }),
/***/ "./node_modules/semver/functions/rcompare.js":
/*!***************************************************!*\
!*** ./node_modules/semver/functions/rcompare.js ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const compare = __webpack_require__(/*! ./compare */ \"./node_modules/semver/functions/compare.js\")\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/rcompare.js?");
/***/ }),
/***/ "./node_modules/semver/functions/rsort.js":
/*!************************************************!*\
!*** ./node_modules/semver/functions/rsort.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const compareBuild = __webpack_require__(/*! ./compare-build */ \"./node_modules/semver/functions/compare-build.js\")\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/rsort.js?");
/***/ }),
/***/ "./node_modules/semver/functions/satisfies.js":
/*!****************************************************!*\
!*** ./node_modules/semver/functions/satisfies.js ***!
\****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const Range = __webpack_require__(/*! ../classes/range */ \"./node_modules/semver/classes/range.js\")\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/satisfies.js?");
/***/ }),
/***/ "./node_modules/semver/functions/sort.js":
/*!***********************************************!*\
!*** ./node_modules/semver/functions/sort.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const compareBuild = __webpack_require__(/*! ./compare-build */ \"./node_modules/semver/functions/compare-build.js\")\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/sort.js?");
/***/ }),
/***/ "./node_modules/semver/functions/valid.js":
/*!************************************************!*\
!*** ./node_modules/semver/functions/valid.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const parse = __webpack_require__(/*! ./parse */ \"./node_modules/semver/functions/parse.js\")\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n\n\n//# sourceURL=webpack:///./node_modules/semver/functions/valid.js?");
/***/ }),
/***/ "./node_modules/semver/index.js":
/*!**************************************!*\
!*** ./node_modules/semver/index.js ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// just pre-load all the stuff that index.js lazily exports\nconst internalRe = __webpack_require__(/*! ./internal/re */ \"./node_modules/semver/internal/re.js\")\nconst constants = __webpack_require__(/*! ./internal/constants */ \"./node_modules/semver/internal/constants.js\")\nconst SemVer = __webpack_require__(/*! ./classes/semver */ \"./node_modules/semver/classes/semver.js\")\nconst identifiers = __webpack_require__(/*! ./internal/identifiers */ \"./node_modules/semver/internal/identifiers.js\")\nconst parse = __webpack_require__(/*! ./functions/parse */ \"./node_modules/semver/functions/parse.js\")\nconst valid = __webpack_require__(/*! ./functions/valid */ \"./node_modules/semver/functions/valid.js\")\nconst clean = __webpack_require__(/*! ./functions/clean */ \"./node_modules/semver/functions/clean.js\")\nconst inc = __webpack_require__(/*! ./functions/inc */ \"./node_modules/semver/functions/inc.js\")\nconst diff = __webpack_require__(/*! ./functions/diff */ \"./node_modules/semver/functions/diff.js\")\nconst major = __webpack_require__(/*! ./functions/major */ \"./node_modules/semver/functions/major.js\")\nconst minor = __webpack_require__(/*! ./functions/minor */ \"./node_modules/semver/functions/minor.js\")\nconst patch = __webpack_require__(/*! ./functions/patch */ \"./node_modules/semver/functions/patch.js\")\nconst prerelease = __webpack_require__(/*! ./functions/prerelease */ \"./node_modules/semver/functions/prerelease.js\")\nconst compare = __webpack_require__(/*! ./functions/compare */ \"./node_modules/semver/functions/compare.js\")\nconst rcompare = __webpack_require__(/*! ./functions/rcompare */ \"./node_modules/semver/functions/rcompare.js\")\nconst compareLoose = __webpack_require__(/*! ./functions/compare-loose */ \"./node_modules/semver/functions/compare-loose.js\")\nconst compareBuild = __webpack_require__(/*! ./functions/compare-build */ \"./node_modules/semver/functions/compare-build.js\")\nconst sort = __webpack_require__(/*! ./functions/sort */ \"./node_modules/semver/functions/sort.js\")\nconst rsort = __webpack_require__(/*! ./functions/rsort */ \"./node_modules/semver/functions/rsort.js\")\nconst gt = __webpack_require__(/*! ./functions/gt */ \"./node_modules/semver/functions/gt.js\")\nconst lt = __webpack_require__(/*! ./functions/lt */ \"./node_modules/semver/functions/lt.js\")\nconst eq = __webpack_require__(/*! ./functions/eq */ \"./node_modules/semver/functions/eq.js\")\nconst neq = __webpack_require__(/*! ./functions/neq */ \"./node_modules/semver/functions/neq.js\")\nconst gte = __webpack_require__(/*! ./functions/gte */ \"./node_modules/semver/functions/gte.js\")\nconst lte = __webpack_require__(/*! ./functions/lte */ \"./node_modules/semver/functions/lte.js\")\nconst cmp = __webpack_require__(/*! ./functions/cmp */ \"./node_modules/semver/functions/cmp.js\")\nconst coerce = __webpack_require__(/*! ./functions/coerce */ \"./node_modules/semver/functions/coerce.js\")\nconst Comparator = __webpack_require__(/*! ./classes/comparator */ \"./node_modules/semver/classes/comparator.js\")\nconst Range = __webpack_require__(/*! ./classes/range */ \"./node_modules/semver/classes/range.js\")\nconst satisfies = __webpack_require__(/*! ./functions/satisfies */ \"./node_modules/semver/functions/satisfies.js\")\nconst toComparators = __webpack_require__(/*! ./ranges/to-comparators */ \"./node_modules/semver/ranges/to-comparators.js\")\nconst maxSatisfying = __webpack_require__(/*! ./ranges/max-satisfying */ \"./node_modules/semver/ranges/max-satisfying.js\")\nconst minSatisfying = __webpack_require__(/*! ./ranges/min-satisfying */ \"./node_modules/semver/ranges/min-satisfying.js\")\nconst minVersion = __webpack_require__(/*! ./ranges/min-version */ \"./node_modules/semver/ranges/min-version.js\")\nconst validRange = __webpack_require__(/*! ./ranges/valid */ \"./node_modules/semver/ranges/valid.js\")\nconst outside = __webpack_require__(/*! ./ranges/outside */ \"./node_modules/semver/ranges/outside.js\")\nconst gtr = __webpack_require__(/*! ./ranges/gtr */ \"./node_modules/semver/ranges/gtr.js\")\nconst ltr = __webpack_require__(/*! ./ranges/ltr */ \"./node_modules/semver/ranges/ltr.js\")\nconst intersects = __webpack_require__(/*! ./ranges/intersects */ \"./node_modules/semver/ranges/intersects.js\")\nconst simplifyRange = __webpack_require__(/*! ./ranges/simplify */ \"./node_modules/semver/ranges/simplify.js\")\nconst subset = __webpack_require__(/*! ./ranges/subset */ \"./node_modules/semver/ranges/subset.js\")\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n\n\n//# sourceURL=webpack:///./node_modules/semver/index.js?");
/***/ }),
/***/ "./node_modules/semver/internal/constants.js":
/*!***************************************************!*\
!*** ./node_modules/semver/internal/constants.js ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n\n\n//# sourceURL=webpack:///./node_modules/semver/internal/constants.js?");
/***/ }),
/***/ "./node_modules/semver/internal/debug.js":
/*!***********************************************!*\
!*** ./node_modules/semver/internal/debug.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("/* WEBPACK VAR INJECTION */(function(process) {const debug = (\n typeof process === 'object' &&\n Object({\"NODE_ENV\":\"siyuan-widget\",\"VUE_APP_SIYUAN_WIDGET\":\"true\",\"BASE_URL\":\"\"}) &&\n Object({\"NODE_ENV\":\"siyuan-widget\",\"VUE_APP_SIYUAN_WIDGET\":\"true\",\"BASE_URL\":\"\"}).NODE_DEBUG &&\n /\\bsemver\\b/i.test(Object({\"NODE_ENV\":\"siyuan-widget\",\"VUE_APP_SIYUAN_WIDGET\":\"true\",\"BASE_URL\":\"\"}).NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node-libs-browser/mock/process.js */ \"./node_modules/node-libs-browser/mock/process.js\")))\n\n//# sourceURL=webpack:///./node_modules/semver/internal/debug.js?");
/***/ }),
/***/ "./node_modules/semver/internal/identifiers.js":
/*!*****************************************************!*\
!*** ./node_modules/semver/internal/identifiers.js ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n\n\n//# sourceURL=webpack:///./node_modules/semver/internal/identifiers.js?");
/***/ }),
/***/ "./node_modules/semver/internal/lrucache.js":
/*!**************************************************!*\
!*** ./node_modules/semver/internal/lrucache.js ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("class LRUCache {\n constructor () {\n this.max = 1000\n this.map = new Map()\n }\n\n get (key) {\n const value = this.map.get(key)\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key)\n this.map.set(key, value)\n return value\n }\n }\n\n delete (key) {\n return this.map.delete(key)\n }\n\n set (key, value) {\n const deleted = this.delete(key)\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value\n this.delete(firstKey)\n }\n\n this.map.set(key, value)\n }\n\n return this\n }\n}\n\nmodule.exports = LRUCache\n\n\n//# sourceURL=webpack:///./node_modules/semver/internal/lrucache.js?");
/***/ }),
/***/ "./node_modules/semver/internal/parse-options.js":
/*!*******************************************************!*\
!*** ./node_modules/semver/internal/parse-options.js ***!
\*******************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n\n\n//# sourceURL=webpack:///./node_modules/semver/internal/parse-options.js?");
/***/ }),
/***/ "./node_modules/semver/internal/re.js":
/*!********************************************!*\
!*** ./node_modules/semver/internal/re.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = __webpack_require__(/*! ./constants */ \"./node_modules/semver/internal/constants.js\")\nconst debug = __webpack_require__(/*! ./debug */ \"./node_modules/semver/internal/debug.js\")\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n\n\n//# sourceURL=webpack:///./node_modules/semver/internal/re.js?");
/***/ }),
/***/ "./node_modules/semver/ranges/gtr.js":
/*!*******************************************!*\
!*** ./node_modules/semver/ranges/gtr.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Determine if version is greater than all the versions possible in the range.\nconst outside = __webpack_require__(/*! ./outside */ \"./node_modules/semver/ranges/outside.js\")\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n\n\n//# sourceURL=webpack:///./node_modules/semver/ranges/gtr.js?");
/***/ }),
/***/ "./node_modules/semver/ranges/intersects.js":
/*!**************************************************!*\
!*** ./node_modules/semver/ranges/intersects.js ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const Range = __webpack_require__(/*! ../classes/range */ \"./node_modules/semver/classes/range.js\")\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n\n\n//# sourceURL=webpack:///./node_modules/semver/ranges/intersects.js?");
/***/ }),
/***/ "./node_modules/semver/ranges/ltr.js":
/*!*******************************************!*\
!*** ./node_modules/semver/ranges/ltr.js ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const outside = __webpack_require__(/*! ./outside */ \"./node_modules/semver/ranges/outside.js\")\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n\n\n//# sourceURL=webpack:///./node_modules/semver/ranges/ltr.js?");
/***/ }),
/***/ "./node_modules/semver/ranges/max-satisfying.js":
/*!******************************************************!*\
!*** ./node_modules/semver/ranges/max-satisfying.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/semver/classes/semver.js\")\nconst Range = __webpack_require__(/*! ../classes/range */ \"./node_modules/semver/classes/range.js\")\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n\n\n//# sourceURL=webpack:///./node_modules/semver/ranges/max-satisfying.js?");
/***/ }),
/***/ "./node_modules/semver/ranges/min-satisfying.js":
/*!******************************************************!*\
!*** ./node_modules/semver/ranges/min-satisfying.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/semver/classes/semver.js\")\nconst Range = __webpack_require__(/*! ../classes/range */ \"./node_modules/semver/classes/range.js\")\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n\n\n//# sourceURL=webpack:///./node_modules/semver/ranges/min-satisfying.js?");
/***/ }),
/***/ "./node_modules/semver/ranges/min-version.js":
/*!***************************************************!*\
!*** ./node_modules/semver/ranges/min-version.js ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/semver/classes/semver.js\")\nconst Range = __webpack_require__(/*! ../classes/range */ \"./node_modules/semver/classes/range.js\")\nconst gt = __webpack_require__(/*! ../functions/gt */ \"./node_modules/semver/functions/gt.js\")\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n\n\n//# sourceURL=webpack:///./node_modules/semver/ranges/min-version.js?");
/***/ }),
/***/ "./node_modules/semver/ranges/outside.js":
/*!***********************************************!*\
!*** ./node_modules/semver/ranges/outside.js ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/semver/classes/semver.js\")\nconst Comparator = __webpack_require__(/*! ../classes/comparator */ \"./node_modules/semver/classes/comparator.js\")\nconst { ANY } = Comparator\nconst Range = __webpack_require__(/*! ../classes/range */ \"./node_modules/semver/classes/range.js\")\nconst satisfies = __webpack_require__(/*! ../functions/satisfies */ \"./node_modules/semver/functions/satisfies.js\")\nconst gt = __webpack_require__(/*! ../functions/gt */ \"./node_modules/semver/functions/gt.js\")\nconst lt = __webpack_require__(/*! ../functions/lt */ \"./node_modules/semver/functions/lt.js\")\nconst lte = __webpack_require__(/*! ../functions/lte */ \"./node_modules/semver/functions/lte.js\")\nconst gte = __webpack_require__(/*! ../functions/gte */ \"./node_modules/semver/functions/gte.js\")\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n\n\n//# sourceURL=webpack:///./node_modules/semver/ranges/outside.js?");
/***/ }),
/***/ "./node_modules/semver/ranges/simplify.js":
/*!************************************************!*\
!*** ./node_modules/semver/ranges/simplify.js ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = __webpack_require__(/*! ../functions/satisfies.js */ \"./node_modules/semver/functions/satisfies.js\")\nconst compare = __webpack_require__(/*! ../functions/compare.js */ \"./node_modules/semver/functions/compare.js\")\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n\n\n//# sourceURL=webpack:///./node_modules/semver/ranges/simplify.js?");
/***/ }),
/***/ "./node_modules/semver/ranges/subset.js":
/*!**********************************************!*\
!*** ./node_modules/semver/ranges/subset.js ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const Range = __webpack_require__(/*! ../classes/range.js */ \"./node_modules/semver/classes/range.js\")\nconst Comparator = __webpack_require__(/*! ../classes/comparator.js */ \"./node_modules/semver/classes/comparator.js\")\nconst { ANY } = Comparator\nconst satisfies = __webpack_require__(/*! ../functions/satisfies.js */ \"./node_modules/semver/functions/satisfies.js\")\nconst compare = __webpack_require__(/*! ../functions/compare.js */ \"./node_modules/semver/functions/compare.js\")\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n\n\n//# sourceURL=webpack:///./node_modules/semver/ranges/subset.js?");
/***/ }),
/***/ "./node_modules/semver/ranges/to-comparators.js":
/*!******************************************************!*\
!*** ./node_modules/semver/ranges/to-comparators.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const Range = __webpack_require__(/*! ../classes/range */ \"./node_modules/semver/classes/range.js\")\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n\n\n//# sourceURL=webpack:///./node_modules/semver/ranges/to-comparators.js?");
/***/ }),
/***/ "./node_modules/semver/ranges/valid.js":
/*!*********************************************!*\
!*** ./node_modules/semver/ranges/valid.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("const Range = __webpack_require__(/*! ../classes/range */ \"./node_modules/semver/classes/range.js\")\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n\n\n//# sourceURL=webpack:///./node_modules/semver/ranges/valid.js?");
/***/ }),
/***/ "./node_modules/uc.micro/categories/Cc/regex.js":
/*!******************************************************!*\
!*** ./node_modules/uc.micro/categories/Cc/regex.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports=/[\\0-\\x1F\\x7F-\\x9F]/\n\n//# sourceURL=webpack:///./node_modules/uc.micro/categories/Cc/regex.js?");
/***/ }),
/***/ "./node_modules/uc.micro/categories/Cf/regex.js":
/*!******************************************************!*\
!*** ./node_modules/uc.micro/categories/Cf/regex.js ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports=/[\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u08E2\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB]|\\uD804[\\uDCBD\\uDCCD]|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F]/\n\n//# sourceURL=webpack:///./node_modules/uc.micro/categories/Cf/regex.js?");
/***/ }),
/***/ "./node_modules/uc.micro/categories/P/regex.js":
/*!*****************************************************!*\
!*** ./node_modules/uc.micro/categories/P/regex.js ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports=/[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4E\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDF55-\\uDF59]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/\n\n//# sourceURL=webpack:///./node_modules/uc.micro/categories/P/regex.js?");
/***/ }),
/***/ "./node_modules/uc.micro/categories/Z/regex.js":
/*!*****************************************************!*\
!*** ./node_modules/uc.micro/categories/Z/regex.js ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports=/[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/\n\n//# sourceURL=webpack:///./node_modules/uc.micro/categories/Z/regex.js?");
/***/ }),
/***/ "./node_modules/uc.micro/index.js":
/*!****************************************!*\
!*** ./node_modules/uc.micro/index.js ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nexports.Any = __webpack_require__(/*! ./properties/Any/regex */ \"./node_modules/uc.micro/properties/Any/regex.js\");\nexports.Cc = __webpack_require__(/*! ./categories/Cc/regex */ \"./node_modules/uc.micro/categories/Cc/regex.js\");\nexports.Cf = __webpack_require__(/*! ./categories/Cf/regex */ \"./node_modules/uc.micro/categories/Cf/regex.js\");\nexports.P = __webpack_require__(/*! ./categories/P/regex */ \"./node_modules/uc.micro/categories/P/regex.js\");\nexports.Z = __webpack_require__(/*! ./categories/Z/regex */ \"./node_modules/uc.micro/categories/Z/regex.js\");\n\n\n//# sourceURL=webpack:///./node_modules/uc.micro/index.js?");
/***/ }),
/***/ "./node_modules/uc.micro/properties/Any/regex.js":
/*!*******************************************************!*\
!*** ./node_modules/uc.micro/properties/Any/regex.js ***!
\*******************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports=/[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/\n\n//# sourceURL=webpack:///./node_modules/uc.micro/properties/Any/regex.js?");
/***/ }),
/***/ "./node_modules/vue-quill-editor/dist/vue-quill-editor.js":
/*!****************************************************************!*\
!*** ./node_modules/vue-quill-editor/dist/vue-quill-editor.js ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("!function(t,e){ true?module.exports=e(__webpack_require__(/*! quill */ \"./node_modules/quill/dist/quill.js\")):undefined}(this,function(t){return function(t){function e(i){if(n[i])return n[i].exports;var l=n[i]={i:i,l:!1,exports:{}};return t[i].call(l.exports,l,l.exports,e),l.l=!0,l.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/\",e(e.s=2)}([function(e,n){e.exports=t},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var i=n(4),l=n.n(i),o=n(6),r=n(5),u=r(l.a,o.a,!1,null,null,null);e.default=u.exports},function(t,e,n){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0}),e.install=e.quillEditor=e.Quill=void 0;var l=n(0),o=i(l),r=n(1),u=i(r),s=window.Quill||o.default,a=function(t,e){e&&(u.default.props.globalOptions.default=function(){return e}),t.component(u.default.name,u.default)},c={Quill:s,quillEditor:u.default,install:a};e.default=c,e.Quill=s,e.quillEditor=u.default,e.install=a},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={theme:\"snow\",boundary:document.body,modules:{toolbar:[[\"bold\",\"italic\",\"underline\",\"strike\"],[\"blockquote\",\"code-block\"],[{header:1},{header:2}],[{list:\"ordered\"},{list:\"bullet\"}],[{script:\"sub\"},{script:\"super\"}],[{indent:\"-1\"},{indent:\"+1\"}],[{direction:\"rtl\"}],[{size:[\"small\",!1,\"large\",\"huge\"]}],[{header:[1,2,3,4,5,6,!1]}],[{color:[]},{background:[]}],[{font:[]}],[{align:[]}],[\"clean\"],[\"link\",\"image\",\"video\"]]},placeholder:\"Insert text here ...\",readOnly:!1}},function(t,e,n){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var l=n(0),o=i(l),r=n(3),u=i(r),s=window.Quill||o.default;\"function\"!=typeof Object.assign&&Object.defineProperty(Object,\"assign\",{value:function(t,e){if(null==t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var n=Object(t),i=1;i<arguments.length;i++){var l=arguments[i];if(null!=l)for(var o in l)Object.prototype.hasOwnProperty.call(l,o)&&(n[o]=l[o])}return n},writable:!0,configurable:!0}),e.default={name:\"quill-editor\",data:function(){return{_options:{},_content:\"\",defaultOptions:u.default}},props:{content:String,value:String,disabled:{type:Boolean,default:!1},options:{type:Object,required:!1,default:function(){return{}}},globalOptions:{type:Object,required:!1,default:function(){return{}}}},mounted:function(){this.initialize()},beforeDestroy:function(){this.quill=null,delete this.quill},methods:{initialize:function(){var t=this;this.$el&&(this._options=Object.assign({},this.defaultOptions,this.globalOptions,this.options),this.quill=new s(this.$refs.editor,this._options),this.quill.enable(!1),(this.value||this.content)&&this.quill.pasteHTML(this.value||this.content),this.disabled||this.quill.enable(!0),this.quill.on(\"selection-change\",function(e){e?t.$emit(\"focus\",t.quill):t.$emit(\"blur\",t.quill)}),this.quill.on(\"text-change\",function(e,n,i){var l=t.$refs.editor.children[0].innerHTML,o=t.quill,r=t.quill.getText();\"<p><br></p>\"===l&&(l=\"\"),t._content=l,t.$emit(\"input\",t._content),t.$emit(\"change\",{html:l,text:r,quill:o})}),this.$emit(\"ready\",this.quill))}},watch:{content:function(t,e){this.quill&&(t&&t!==this._content?(this._content=t,this.quill.pasteHTML(t)):t||this.quill.setText(\"\"))},value:function(t,e){this.quill&&(t&&t!==this._content?(this._content=t,this.quill.pasteHTML(t)):t||this.quill.setText(\"\"))},disabled:function(t,e){this.quill&&this.quill.enable(!t)}}}},function(t,e){t.exports=function(t,e,n,i,l,o){var r,u=t=t||{},s=typeof t.default;\"object\"!==s&&\"function\"!==s||(r=t,u=t.default);var a=\"function\"==typeof u?u.options:u;e&&(a.render=e.render,a.staticRenderFns=e.staticRenderFns,a._compiled=!0),n&&(a.functional=!0),l&&(a._scopeId=l);var c;if(o?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},a._ssrRegister=c):i&&(c=i),c){var d=a.functional,f=d?a.render:a.beforeCreate;d?(a._injectStyles=c,a.render=function(t,e){return c.call(e),f(t,e)}):a.beforeCreate=f?[].concat(f,c):[c]}return{esModule:r,exports:u,options:a}}},function(t,e,n){\"use strict\";var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"quill-editor\"},[t._t(\"toolbar\"),t._v(\" \"),n(\"div\",{ref:\"editor\"})],2)},l=[],o={render:i,staticRenderFns:l};e.a=o}])});\n\n//# sourceURL=webpack:///./node_modules/vue-quill-editor/dist/vue-quill-editor.js?");
/***/ }),
/***/ "./node_modules/vue-router/composables.mjs":
/*!*************************************************!*\
!*** ./node_modules/vue-router/composables.mjs ***!
\*************************************************/
/*! exports provided: isSameRouteLocationParams, onBeforeRouteLeave, onBeforeRouteUpdate, useLink, useRoute, useRouter */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSameRouteLocationParams\", function() { return isSameRouteLocationParams; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBeforeRouteLeave\", function() { return onBeforeRouteLeave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onBeforeRouteUpdate\", function() { return onBeforeRouteUpdate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useLink\", function() { return useLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useRoute\", function() { return useRoute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useRouter\", function() { return useRouter; });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\n\n\n// dev only warn if no current instance\n\nfunction throwNoCurrentInstance (method) {\n if (!Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"getCurrentInstance\"])()) {\n throw new Error(\n (\"[vue-router]: Missing current instance. \" + method + \"() must be called inside <script setup> or setup().\")\n )\n }\n}\n\nfunction useRouter () {\n if (true) {\n throwNoCurrentInstance('useRouter');\n }\n\n return Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"getCurrentInstance\"])().proxy.$root.$router\n}\n\nfunction useRoute () {\n if (true) {\n throwNoCurrentInstance('useRoute');\n }\n\n var root = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"getCurrentInstance\"])().proxy.$root;\n if (!root._$route) {\n var route = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"effectScope\"])(true).run(function () { return Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"shallowReactive\"])(Object.assign({}, root.$router.currentRoute)); }\n );\n root._$route = route;\n\n root.$router.afterEach(function (to) {\n Object.assign(route, to);\n });\n }\n\n return root._$route\n}\n\nfunction onBeforeRouteUpdate (guard) {\n if (true) {\n throwNoCurrentInstance('onBeforeRouteUpdate');\n }\n\n return useFilteredGuard(guard, isUpdateNavigation)\n}\nfunction isUpdateNavigation (to, from, depth) {\n var toMatched = to.matched;\n var fromMatched = from.matched;\n return (\n toMatched.length >= depth &&\n toMatched\n .slice(0, depth + 1)\n .every(function (record, i) { return record === fromMatched[i]; })\n )\n}\n\nfunction isLeaveNavigation (to, from, depth) {\n var toMatched = to.matched;\n var fromMatched = from.matched;\n return toMatched.length < depth || toMatched[depth] !== fromMatched[depth]\n}\n\nfunction onBeforeRouteLeave (guard) {\n if (true) {\n throwNoCurrentInstance('onBeforeRouteLeave');\n }\n\n return useFilteredGuard(guard, isLeaveNavigation)\n}\n\nvar noop = function () {};\nfunction useFilteredGuard (guard, fn) {\n var instance = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"getCurrentInstance\"])();\n var router = useRouter();\n\n var target = instance.proxy;\n // find the nearest RouterView to know the depth\n while (\n target &&\n target.$vnode &&\n target.$vnode.data &&\n target.$vnode.data.routerViewDepth == null\n ) {\n target = target.$parent;\n }\n\n var depth =\n target && target.$vnode && target.$vnode.data\n ? target.$vnode.data.routerViewDepth\n : null;\n\n if (depth != null) {\n var removeGuard = router.beforeEach(function (to, from, next) {\n return fn(to, from, depth) ? guard(to, from, next) : next()\n });\n\n Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"onUnmounted\"])(removeGuard);\n return removeGuard\n }\n\n return noop\n}\n\n/* */\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction includesParams (outer, inner) {\n var loop = function ( key ) {\n var innerValue = inner[key];\n var outerValue = outer[key];\n if (typeof innerValue === 'string') {\n if (innerValue !== outerValue) { return { v: false } }\n } else {\n if (\n !Array.isArray(outerValue) ||\n outerValue.length !== innerValue.length ||\n innerValue.some(function (value, i) { return value !== outerValue[i]; })\n ) {\n return { v: false }\n }\n }\n };\n\n for (var key in inner) {\n var returned = loop( key );\n\n if ( returned ) return returned.v;\n }\n\n return true\n}\n\n// helpers from vue router 4\n\nfunction isSameRouteLocationParamsValue (a, b) {\n return Array.isArray(a)\n ? isEquivalentArray(a, b)\n : Array.isArray(b)\n ? isEquivalentArray(b, a)\n : a === b\n}\n\nfunction isEquivalentArray (a, b) {\n return Array.isArray(b)\n ? a.length === b.length && a.every(function (value, i) { return value === b[i]; })\n : a.length === 1 && a[0] === b\n}\n\nfunction isSameRouteLocationParams (a, b) {\n if (Object.keys(a).length !== Object.keys(b).length) { return false }\n\n for (var key in a) {\n if (!isSameRouteLocationParamsValue(a[key], b[key])) { return false }\n }\n\n return true\n}\n\nfunction useLink (props) {\n if (true) {\n throwNoCurrentInstance('useLink');\n }\n\n var router = useRouter();\n var currentRoute = useRoute();\n\n var resolvedRoute = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(function () { return router.resolve(Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"unref\"])(props.to), currentRoute); });\n\n var activeRecordIndex = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(function () {\n var route = resolvedRoute.value.route;\n var matched = route.matched;\n var length = matched.length;\n var routeMatched = matched[length - 1];\n var currentMatched = currentRoute.matched;\n if (!routeMatched || !currentMatched.length) { return -1 }\n var index = currentMatched.indexOf(routeMatched);\n if (index > -1) { return index }\n // possible parent record\n var parentRecord = currentMatched[currentMatched.length - 2];\n\n return (\n // we are dealing with nested routes\n length > 1 &&\n // if the parent and matched route have the same path, this link is\n // referring to the empty child. Or we currently are on a different\n // child of the same parent\n parentRecord && parentRecord === routeMatched.parent\n )\n });\n\n var isActive = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(\n function () { return activeRecordIndex.value > -1 &&\n includesParams(currentRoute.params, resolvedRoute.value.route.params); }\n );\n var isExactActive = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(\n function () { return activeRecordIndex.value > -1 &&\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\n isSameRouteLocationParams(currentRoute.params, resolvedRoute.value.route.params); }\n );\n\n var navigate = function (e) {\n var href = resolvedRoute.value.route;\n if (guardEvent(e)) {\n return props.replace\n ? router.replace(href)\n : router.push(href)\n }\n return Promise.resolve()\n };\n\n return {\n href: Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(function () { return resolvedRoute.value.href; }),\n route: Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"computed\"])(function () { return resolvedRoute.value.route; }),\n isExactActive: isExactActive,\n isActive: isActive,\n navigate: navigate\n }\n}\n\n\n\n\n//# sourceURL=webpack:///./node_modules/vue-router/composables.mjs?");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/ImgUpload/index.vue?vue&type=style&index=0&id=1ee0b527&lang=less&scoped=true":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ImgUpload/index.vue?vue&type=style&index=0&id=1ee0b527&lang=less&scoped=true ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib??vue-loader-options!./index.vue?vue&type=style&index=0&id=1ee0b527&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/ImgUpload/index.vue?vue&type=style&index=0&id=1ee0b527&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3fefb250\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/components/ImgUpload/index.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/Index.vue?vue&type=style&index=0&id=4c868391&lang=less":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/Index.vue?vue&type=style&index=0&id=4c868391&lang=less ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=style&index=0&id=4c868391&lang=less */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/Index.vue?vue&type=style&index=0&id=4c868391&lang=less\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"fb6784f4\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/Index.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/Index.vue?vue&type=style&index=1&id=4c868391&lang=less&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/Index.vue?vue&type=style&index=1&id=4c868391&lang=less&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=style&index=1&id=4c868391&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/Index.vue?vue&type=style&index=1&id=4c868391&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"51de4cb0\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/Index.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=0&id=127c4038&lang=less&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=0&id=127c4038&lang=less&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./AssociativeLineStyle.vue?vue&type=style&index=0&id=127c4038&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=0&id=127c4038&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"56c77174\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/AssociativeLineStyle.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=1&id=127c4038&lang=less":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=1&id=127c4038&lang=less ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./AssociativeLineStyle.vue?vue&type=style&index=1&id=127c4038&lang=less */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=1&id=127c4038&lang=less\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"42ed9e4c\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/AssociativeLineStyle.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=0&id=f49af710&lang=less&scoped=true":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=0&id=f49af710&lang=less&scoped=true ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./BaseStyle.vue?vue&type=style&index=0&id=f49af710&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=0&id=f49af710&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"359d51d0\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/BaseStyle.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=1&id=f49af710&lang=less":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=1&id=f49af710&lang=less ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./BaseStyle.vue?vue&type=style&index=1&id=f49af710&lang=less */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=1&id=f49af710&lang=less\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"954f95f8\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/BaseStyle.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Color.vue?vue&type=style&index=0&id=48030e0a&lang=less&scoped=true":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Color.vue?vue&type=style&index=0&id=48030e0a&lang=less&scoped=true ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Color.vue?vue&type=style&index=0&id=48030e0a&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Color.vue?vue&type=style&index=0&id=48030e0a&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5723ab1f\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Color.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Contextmenu.vue?vue&type=style&index=0&id=ca7290b4&lang=less&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Contextmenu.vue?vue&type=style&index=0&id=ca7290b4&lang=less&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Contextmenu.vue?vue&type=style&index=0&id=ca7290b4&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Contextmenu.vue?vue&type=style&index=0&id=ca7290b4&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"8d5b0a18\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Contextmenu.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Count.vue?vue&type=style&index=0&id=930436b2&lang=less&scoped=true":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Count.vue?vue&type=style&index=0&id=930436b2&lang=less&scoped=true ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Count.vue?vue&type=style&index=0&id=930436b2&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Count.vue?vue&type=style&index=0&id=930436b2&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5a8f6dc3\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Count.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Demonstrate.vue?vue&type=style&index=0&id=7e7ebaf8&lang=less&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Demonstrate.vue?vue&type=style&index=0&id=7e7ebaf8&lang=less&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Demonstrate.vue?vue&type=style&index=0&id=7e7ebaf8&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Demonstrate.vue?vue&type=style&index=0&id=7e7ebaf8&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"f6ee1d02\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Demonstrate.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Edit.vue?vue&type=style&index=0&id=84e609bc&lang=less&scoped=true":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Edit.vue?vue&type=style&index=0&id=84e609bc&lang=less&scoped=true ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Edit.vue?vue&type=style&index=0&id=84e609bc&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Edit.vue?vue&type=style&index=0&id=84e609bc&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"31f43d79\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Edit.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Export.vue?vue&type=style&index=0&id=6609dbcc&lang=less&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Export.vue?vue&type=style&index=0&id=6609dbcc&lang=less&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Export.vue?vue&type=style&index=0&id=6609dbcc&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Export.vue?vue&type=style&index=0&id=6609dbcc&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3117729d\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Export.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Export.vue?vue&type=style&index=1&id=6609dbcc&lang=less":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Export.vue?vue&type=style&index=1&id=6609dbcc&lang=less ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Export.vue?vue&type=style&index=1&id=6609dbcc&lang=less */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Export.vue?vue&type=style&index=1&id=6609dbcc&lang=less\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"a6d9c49e\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Export.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/FormulaSidebar.vue?vue&type=style&index=0&id=3b54da2e&lang=less&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/FormulaSidebar.vue?vue&type=style&index=0&id=3b54da2e&lang=less&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./FormulaSidebar.vue?vue&type=style&index=0&id=3b54da2e&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/FormulaSidebar.vue?vue&type=style&index=0&id=3b54da2e&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7c752dca\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/FormulaSidebar.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Fullscreen.vue?vue&type=style&index=0&id=bd69af5a&lang=less&scoped=true":
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Fullscreen.vue?vue&type=style&index=0&id=bd69af5a&lang=less&scoped=true ***!
\***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Fullscreen.vue?vue&type=style&index=0&id=bd69af5a&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Fullscreen.vue?vue&type=style&index=0&id=bd69af5a&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3f6985fc\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Fullscreen.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Import.vue?vue&type=style&index=0&id=4f824986&lang=less&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Import.vue?vue&type=style&index=0&id=4f824986&lang=less&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Import.vue?vue&type=style&index=0&id=4f824986&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Import.vue?vue&type=style&index=0&id=4f824986&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"f7d76792\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Import.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=style&index=0&id=035dc43e&lang=less&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=style&index=0&id=035dc43e&lang=less&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./KmindFloatToolbar.vue?vue&type=style&index=0&id=035dc43e&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=style&index=0&id=035dc43e&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"c8e57628\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=style&index=0&id=3124bbe7&lang=less&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=style&index=0&id=3124bbe7&lang=less&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./AddNodeButton.vue?vue&type=style&index=0&id=3124bbe7&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=style&index=0&id=3124bbe7&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4a12b7f0\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=style&index=0&id=75ed2ea7&lang=less&scoped=true":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=style&index=0&id=75ed2ea7&lang=less&scoped=true ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./KMindHistory.vue?vue&type=style&index=0&id=75ed2ea7&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=style&index=0&id=75ed2ea7&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5c30f97a\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindHistory/KMindHistory.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=style&index=0&id=5531bb55&lang=less&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=style&index=0&id=5531bb55&lang=less&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./KmindHistoryModal.vue?vue&type=style&index=0&id=5531bb55&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=style&index=0&id=5531bb55&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"10f361a2\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=style&index=0&id=207f8b47&scoped=true&lang=less":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=style&index=0&id=207f8b47&scoped=true&lang=less ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./KmindPreview.vue?vue&type=style&index=0&id=207f8b47&scoped=true&lang=less */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=style&index=0&id=207f8b47&scoped=true&lang=less\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"54a6485a\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindPreview/KmindPreview.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/MouseAction.vue?vue&type=style&index=0&id=1a05d65a&lang=less&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/MouseAction.vue?vue&type=style&index=0&id=1a05d65a&lang=less&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./MouseAction.vue?vue&type=style&index=0&id=1a05d65a&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/MouseAction.vue?vue&type=style&index=0&id=1a05d65a&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"67d8a4a5\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/MouseAction.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Navigator.vue?vue&type=style&index=0&id=20a399ef&lang=less&scoped=true":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Navigator.vue?vue&type=style&index=0&id=20a399ef&lang=less&scoped=true ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Navigator.vue?vue&type=style&index=0&id=20a399ef&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Navigator.vue?vue&type=style&index=0&id=20a399ef&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"bbb01f3a\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Navigator.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=style&index=0&id=92e9ad88&lang=less&scoped=true":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=style&index=0&id=92e9ad88&lang=less&scoped=true ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NavigatorToolbar.vue?vue&type=style&index=0&id=92e9ad88&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=style&index=0&id=92e9ad88&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"23a29654\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NavigatorToolbar.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=style&index=0&id=47918363&lang=less&scoped=true":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=style&index=0&id=47918363&lang=less&scoped=true ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeAnnotationBtn.vue?vue&type=style&index=0&id=47918363&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=style&index=0&id=47918363&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"67fc9876\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeAnnotationBtn.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeAttachment.vue?vue&type=style&index=0&id=102b205d&lang=less&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeAttachment.vue?vue&type=style&index=0&id=102b205d&lang=less&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeAttachment.vue?vue&type=style&index=0&id=102b205d&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeAttachment.vue?vue&type=style&index=0&id=102b205d&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"930be6ac\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeAttachment.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeHyperlink.vue?vue&type=style&index=0&id=73163d9c&lang=less&scoped=true":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeHyperlink.vue?vue&type=style&index=0&id=73163d9c&lang=less&scoped=true ***!
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeHyperlink.vue?vue&type=style&index=0&id=73163d9c&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeHyperlink.vue?vue&type=style&index=0&id=73163d9c&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"202c266e\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeHyperlink.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIcon.vue?vue&type=style&index=0&id=1e192a33&lang=less&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeIcon.vue?vue&type=style&index=0&id=1e192a33&lang=less&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeIcon.vue?vue&type=style&index=0&id=1e192a33&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIcon.vue?vue&type=style&index=0&id=1e192a33&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"cea66272\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIcon.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=style&index=0&id=57cd2bd9&lang=less&scoped=true":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=style&index=0&id=57cd2bd9&lang=less&scoped=true ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeIconSidebar.vue?vue&type=style&index=0&id=57cd2bd9&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=style&index=0&id=57cd2bd9&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"dd586a0c\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIconSidebar.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=style&index=0&id=46f8f710&lang=less&scoped=true":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=style&index=0&id=46f8f710&lang=less&scoped=true ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeIconToolbar.vue?vue&type=style&index=0&id=46f8f710&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=style&index=0&id=46f8f710&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"12759196\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIconToolbar.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImage.vue?vue&type=style&index=0&id=7395e9de&lang=less&scoped=true":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeImage.vue?vue&type=style&index=0&id=7395e9de&lang=less&scoped=true ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeImage.vue?vue&type=style&index=0&id=7395e9de&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImage.vue?vue&type=style&index=0&id=7395e9de&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"31b5489f\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImage.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=style&index=0&id=e543fe22&lang=less&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=style&index=0&id=e543fe22&lang=less&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeImgPlacementToolbar.vue?vue&type=style&index=0&id=e543fe22&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=style&index=0&id=e543fe22&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"8d2453c0\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImgPlacementToolbar.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeNote.vue?vue&type=style&index=0&id=af598da8&lang=less&scoped=true":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeNote.vue?vue&type=style&index=0&id=af598da8&lang=less&scoped=true ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeNote.vue?vue&type=style&index=0&id=af598da8&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeNote.vue?vue&type=style&index=0&id=af598da8&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4bd37090\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeNote.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=style&index=0&id=6b66390c&lang=less&scoped=true":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=style&index=0&id=6b66390c&lang=less&scoped=true ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeNoteContentShow.vue?vue&type=style&index=0&id=6b66390c&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=style&index=0&id=6b66390c&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2d1a5e57\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeNoteContentShow.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=0&id=7cdd956c&lang=less":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=0&id=7cdd956c&lang=less ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeOuterFrame.vue?vue&type=style&index=0&id=7cdd956c&lang=less */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=0&id=7cdd956c&lang=less\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5bb68aa4\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeOuterFrame.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=1&id=7cdd956c&lang=less&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=1&id=7cdd956c&lang=less&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeOuterFrame.vue?vue&type=style&index=1&id=7cdd956c&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=1&id=7cdd956c&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"76c25764\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeOuterFrame.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeTag.vue?vue&type=style&index=0&id=a37d0d60&lang=less&scoped=true":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeTag.vue?vue&type=style&index=0&id=a37d0d60&lang=less&scoped=true ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeTag.vue?vue&type=style&index=0&id=a37d0d60&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeTag.vue?vue&type=style&index=0&id=a37d0d60&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"655bdb3f\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeTag.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeTagStyle.vue?vue&type=style&index=0&id=cecf481e&lang=less&scoped=true":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/NodeTagStyle.vue?vue&type=style&index=0&id=cecf481e&lang=less&scoped=true ***!
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeTagStyle.vue?vue&type=style&index=0&id=cecf481e&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeTagStyle.vue?vue&type=style&index=0&id=cecf481e&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0ce5a7f1\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeTagStyle.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=style&index=0&id=9136dda4&lang=less&scoped=true":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=style&index=0&id=9136dda4&lang=less&scoped=true ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./index.vue?vue&type=style&index=0&id=9136dda4&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=style&index=0&id=9136dda4&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3832a87c\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OpenSiyuanFloat/index.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Outline.vue?vue&type=style&index=0&id=f578ab4c&lang=less&scoped=true":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Outline.vue?vue&type=style&index=0&id=f578ab4c&lang=less&scoped=true ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Outline.vue?vue&type=style&index=0&id=f578ab4c&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Outline.vue?vue&type=style&index=0&id=f578ab4c&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7d14d412\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Outline.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OutlineEdit.vue?vue&type=style&index=0&id=15cdb684&lang=less&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/OutlineEdit.vue?vue&type=style&index=0&id=15cdb684&lang=less&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./OutlineEdit.vue?vue&type=style&index=0&id=15cdb684&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OutlineEdit.vue?vue&type=style&index=0&id=15cdb684&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"446256e7\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OutlineEdit.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OutlineSidebar.vue?vue&type=style&index=0&id=51befc5c&lang=less&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/OutlineSidebar.vue?vue&type=style&index=0&id=51befc5c&lang=less&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./OutlineSidebar.vue?vue&type=style&index=0&id=51befc5c&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OutlineSidebar.vue?vue&type=style&index=0&id=51befc5c&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0b6823f4\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OutlineSidebar.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/RichEditor/index.vue?vue&type=style&index=0&id=10cbee78&lang=less":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/RichEditor/index.vue?vue&type=style&index=0&id=10cbee78&lang=less ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./index.vue?vue&type=style&index=0&id=10cbee78&lang=less */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/RichEditor/index.vue?vue&type=style&index=0&id=10cbee78&lang=less\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"075647fa\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/RichEditor/index.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/RichTextToolbar.vue?vue&type=style&index=0&id=06888dac&lang=less&scoped=true":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/RichTextToolbar.vue?vue&type=style&index=0&id=06888dac&lang=less&scoped=true ***!
\********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./RichTextToolbar.vue?vue&type=style&index=0&id=06888dac&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/RichTextToolbar.vue?vue&type=style&index=0&id=06888dac&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5d07bca6\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/RichTextToolbar.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Scale.vue?vue&type=style&index=0&id=1405f13c&lang=less&scoped=true":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Scale.vue?vue&type=style&index=0&id=1405f13c&lang=less&scoped=true ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Scale.vue?vue&type=style&index=0&id=1405f13c&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Scale.vue?vue&type=style&index=0&id=1405f13c&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"227bb356\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Scale.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Scrollbar.vue?vue&type=style&index=0&id=6aaa1384&lang=less&scoped=true":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Scrollbar.vue?vue&type=style&index=0&id=6aaa1384&lang=less&scoped=true ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Scrollbar.vue?vue&type=style&index=0&id=6aaa1384&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Scrollbar.vue?vue&type=style&index=0&id=6aaa1384&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5e7b730a\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Scrollbar.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Search.vue?vue&type=style&index=0&id=2f3913c0&lang=less&scoped=true":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Search.vue?vue&type=style&index=0&id=2f3913c0&lang=less&scoped=true ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Search.vue?vue&type=style&index=0&id=2f3913c0&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Search.vue?vue&type=style&index=0&id=2f3913c0&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"745eb5c3\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Search.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Setting.vue?vue&type=style&index=0&id=59360d30&lang=less&scoped=true":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Setting.vue?vue&type=style&index=0&id=59360d30&lang=less&scoped=true ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Setting.vue?vue&type=style&index=0&id=59360d30&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Setting.vue?vue&type=style&index=0&id=59360d30&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5e2636ac\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Setting.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/ShortcutKey.vue?vue&type=style&index=0&id=d257aa5e&lang=less&scoped=true":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/ShortcutKey.vue?vue&type=style&index=0&id=d257aa5e&lang=less&scoped=true ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./ShortcutKey.vue?vue&type=style&index=0&id=d257aa5e&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/ShortcutKey.vue?vue&type=style&index=0&id=d257aa5e&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4ea5da92\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/ShortcutKey.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Sidebar.vue?vue&type=style&index=0&id=7b9adf18&lang=less&scoped=true":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Sidebar.vue?vue&type=style&index=0&id=7b9adf18&lang=less&scoped=true ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Sidebar.vue?vue&type=style&index=0&id=7b9adf18&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Sidebar.vue?vue&type=style&index=0&id=7b9adf18&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3258eb4e\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Sidebar.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/SidebarTrigger.vue?vue&type=style&index=0&id=c4f3b258&lang=less&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/SidebarTrigger.vue?vue&type=style&index=0&id=c4f3b258&lang=less&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./SidebarTrigger.vue?vue&type=style&index=0&id=c4f3b258&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/SidebarTrigger.vue?vue&type=style&index=0&id=c4f3b258&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4ec9e963\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/SidebarTrigger.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=style&index=0&id=3c00482c&lang=less&scoped=true":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=style&index=0&id=3c00482c&lang=less&scoped=true ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./SourceCodeEdit.vue?vue&type=style&index=0&id=3c00482c&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=style&index=0&id=3c00482c&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"d95b268a\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/SourceCodeEdit.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Structure.vue?vue&type=style&index=0&id=1932af0b&lang=less&scoped=true":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Structure.vue?vue&type=style&index=0&id=1932af0b&lang=less&scoped=true ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Structure.vue?vue&type=style&index=0&id=1932af0b&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Structure.vue?vue&type=style&index=0&id=1932af0b&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1c588fe0\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Structure.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Style.vue?vue&type=style&index=0&id=5cf2df6e&lang=less&scoped=true":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Style.vue?vue&type=style&index=0&id=5cf2df6e&lang=less&scoped=true ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Style.vue?vue&type=style&index=0&id=5cf2df6e&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Style.vue?vue&type=style&index=0&id=5cf2df6e&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"59275afd\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Style.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Style.vue?vue&type=style&index=1&id=5cf2df6e&lang=less":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Style.vue?vue&type=style&index=1&id=5cf2df6e&lang=less ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Style.vue?vue&type=style&index=1&id=5cf2df6e&lang=less */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Style.vue?vue&type=style&index=1&id=5cf2df6e&lang=less\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"43ae8ce9\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Style.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Theme.vue?vue&type=style&index=0&id=66f51c61&lang=less&scoped=true":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Theme.vue?vue&type=style&index=0&id=66f51c61&lang=less&scoped=true ***!
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Theme.vue?vue&type=style&index=0&id=66f51c61&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Theme.vue?vue&type=style&index=0&id=66f51c61&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"084caa8e\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Theme.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Toolbar.vue?vue&type=style&index=0&id=46e8e913&lang=less&scoped=true":
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/Toolbar.vue?vue&type=style&index=0&id=46e8e913&lang=less&scoped=true ***!
\************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Toolbar.vue?vue&type=style&index=0&id=46e8e913&lang=less&scoped=true */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Toolbar.vue?vue&type=style&index=0&id=46e8e913&lang=less&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"e937af86\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Toolbar.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=style&index=0&id=6f1765d5&lang=less":
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=style&index=0&id=6f1765d5&lang=less ***!
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./ToolbarNodeBtnList.vue?vue&type=style&index=0&id=6f1765d5&lang=less */ \"./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=style&index=0&id=6f1765d5&lang=less\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.i, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = __webpack_require__(/*! ../../../../node_modules/vue-style-loader/lib/addStylesClient.js */ \"./node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0f476dc5\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(false) {}\n\n//# sourceURL=webpack:///./src/pages/Edit/components/ToolbarNodeBtnList.vue?./node_modules/vue-style-loader??ref--11-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--11-oneOf-1-2!./node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),
/***/ "./node_modules/w3c-keyname/index.js":
/*!*******************************************!*\
!*** ./node_modules/w3c-keyname/index.js ***!
\*******************************************/
/*! exports provided: base, shift, keyName */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"base\", function() { return base; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shift\", function() { return shift; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keyName\", function() { return keyName; });\nvar base = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 10: \"Enter\",\n 12: \"NumLock\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 44: \"PrintScreen\",\n 45: \"Insert\",\n 46: \"Delete\",\n 59: \";\",\n 61: \"=\",\n 91: \"Meta\",\n 92: \"Meta\",\n 106: \"*\",\n 107: \"+\",\n 108: \",\",\n 109: \"-\",\n 110: \".\",\n 111: \"/\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 160: \"Shift\",\n 161: \"Shift\",\n 162: \"Control\",\n 163: \"Control\",\n 164: \"Alt\",\n 165: \"Alt\",\n 173: \"-\",\n 186: \";\",\n 187: \"=\",\n 188: \",\",\n 189: \"-\",\n 190: \".\",\n 191: \"/\",\n 192: \"`\",\n 219: \"[\",\n 220: \"\\\\\",\n 221: \"]\",\n 222: \"'\"\n}\n\nvar shift = {\n 48: \")\",\n 49: \"!\",\n 50: \"@\",\n 51: \"#\",\n 52: \"$\",\n 53: \"%\",\n 54: \"^\",\n 55: \"&\",\n 56: \"*\",\n 57: \"(\",\n 59: \":\",\n 61: \"+\",\n 173: \"_\",\n 186: \":\",\n 187: \"+\",\n 188: \"<\",\n 189: \"_\",\n 190: \">\",\n 191: \"?\",\n 192: \"~\",\n 219: \"{\",\n 220: \"|\",\n 221: \"}\",\n 222: \"\\\"\"\n}\n\nvar mac = typeof navigator != \"undefined\" && /Mac/.test(navigator.platform)\nvar ie = typeof navigator != \"undefined\" && /MSIE \\d|Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent)\n\n// Fill in the digit keys\nfor (var i = 0; i < 10; i++) base[48 + i] = base[96 + i] = String(i)\n\n// The function keys\nfor (var i = 1; i <= 24; i++) base[i + 111] = \"F\" + i\n\n// And the alphabetic keys\nfor (var i = 65; i <= 90; i++) {\n base[i] = String.fromCharCode(i + 32)\n shift[i] = String.fromCharCode(i)\n}\n\n// For each code that doesn't have a shift-equivalent, copy the base name\nfor (var code in base) if (!shift.hasOwnProperty(code)) shift[code] = base[code]\n\nfunction keyName(event) {\n // On macOS, keys held with Shift and Cmd don't reflect the effect of Shift in `.key`.\n // On IE, shift effect is never included in `.key`.\n var ignoreKey = mac && event.metaKey && event.shiftKey && !event.ctrlKey && !event.altKey ||\n ie && event.shiftKey && event.key && event.key.length == 1 ||\n event.key == \"Unidentified\"\n var name = (!ignoreKey && event.key) ||\n (event.shiftKey ? shift : base)[event.keyCode] ||\n event.key || \"Unidentified\"\n // Edge sometimes produces wrong names (Issue #3)\n if (name == \"Esc\") name = \"Escape\"\n if (name == \"Del\") name = \"Delete\"\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8860571/\n if (name == \"Left\") name = \"ArrowLeft\"\n if (name == \"Up\") name = \"ArrowUp\"\n if (name == \"Right\") name = \"ArrowRight\"\n if (name == \"Down\") name = \"ArrowDown\"\n return name\n}\n\n\n//# sourceURL=webpack:///./node_modules/w3c-keyname/index.js?");
/***/ }),
/***/ "./siyuan-plugin-src/src/hooks/useMessageCenter.ts":
/*!*********************************************************!*\
!*** ./siyuan-plugin-src/src/hooks/useMessageCenter.ts ***!
\*********************************************************/
/*! exports provided: useMessageCenter, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useMessageCenter\", function() { return useMessageCenter; });\n/* harmony import */ var _var_jenkins_home_workspace_siyuan_kmind_plugin_widget_build_to_github_kmind_plugin_web_node_modules_babel_runtime_helpers_esm_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/defineProperty.js */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.set.difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_difference_v2_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.set.intersection.v2.js */ \"./node_modules/core-js/modules/esnext.set.intersection.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_intersection_v2_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.set.is-disjoint-from.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_is_disjoint_from_v2_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.set.is-subset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_is_subset_of_v2_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.set.is-superset-of.v2.js */ \"./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_is_superset_of_v2_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.set.symmetric-difference.v2.js */ \"./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_symmetric_difference_v2_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.set.union.v2.js */ \"./node_modules/core-js/modules/esnext.set.union.v2.js\");\n/* harmony import */ var core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_set_union_v2_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var nanoid__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! nanoid */ \"./node_modules/nanoid/index.browser.js\");\n/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! dayjs */ \"./node_modules/dayjs/dayjs.min.js\");\n/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/utils/logger */ \"./src/utils/logger/index.ts\");\n\n\n\n\n\n\n\n\n/**\n * KMind 统一消息中心\n * 整合 BroadcastChannel、CustomEvent、localStorage 多种通讯方式\n * 提供简洁的 API 用于跨 iframe、DOM 节点通讯\n * 其实现在只用上了BroadcastChannel,因为当前BroadcastChannel已经可以胜任所有工作了,对于dom导图,Broadcast也能接收到插件发的信息,只需要插件和dom都分别实例化一个channel,监听相同的频道名称即可。\n */\n\n\n\n\n\n// 消息类型定义\n\n// 消息中心类\nclass MessageCenter {\n // 绑定的方法\n\n constructor(documentId) {\n Object(_var_jenkins_home_workspace_siyuan_kmind_plugin_widget_build_to_github_kmind_plugin_web_node_modules_babel_runtime_helpers_esm_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"channel\", null);\n Object(_var_jenkins_home_workspace_siyuan_kmind_plugin_widget_build_to_github_kmind_plugin_web_node_modules_babel_runtime_helpers_esm_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"listeners\", new Map());\n Object(_var_jenkins_home_workspace_siyuan_kmind_plugin_widget_build_to_github_kmind_plugin_web_node_modules_babel_runtime_helpers_esm_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"watchList\", new Set());\n Object(_var_jenkins_home_workspace_siyuan_kmind_plugin_widget_build_to_github_kmind_plugin_web_node_modules_babel_runtime_helpers_esm_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, \"logger\", _utils_logger__WEBPACK_IMPORTED_MODULE_10__[\"KmindLogger\"].getInstance());\n const timestamp = dayjs__WEBPACK_IMPORTED_MODULE_9___default()().format('YYYYMMDDHHmmss');\n this.instanceId = `${timestamp}-${Object(nanoid__WEBPACK_IMPORTED_MODULE_8__[\"nanoid\"])(8)}`;\n this.documentId = documentId;\n\n // 绑定方法\n this.handleBroadcastMessage = this._handleBroadcastMessage.bind(this);\n this.handleCustomEvent = this._handleCustomEvent.bind(this);\n this.handleStorageEvent = this._handleStorageEvent.bind(this);\n this.init();\n }\n log(level, message, data) {\n this.logger[level]('message-center', message, data);\n }\n init() {\n this.log('info', '初始化消息中心', {\n instanceId: this.instanceId,\n documentId: this.documentId\n });\n\n // 1. 初始化 BroadcastChannel\n if (typeof BroadcastChannel !== 'undefined') {\n try {\n this.channel = new BroadcastChannel('kmind-global');\n this.channel.onmessage = this.handleBroadcastMessage;\n this.log('info', 'BroadcastChannel 已初始化');\n } catch (error) {\n this.log('warn', 'BroadcastChannel 初始化失败', {\n error: error.message\n });\n }\n }\n\n // 2. 监听自定义事件\n window.addEventListener('kmind:message', this.handleCustomEvent);\n this.log('debug', 'CustomEvent 监听器已添加');\n\n // 3. localStorage 降级\n if (!this.channel && window.localStorage) {\n window.addEventListener('storage', this.handleStorageEvent);\n this.log('debug', 'localStorage 监听器已添加(降级模式)');\n }\n }\n\n // 发送消息\n send(message) {\n const fullMessage = {\n id: Object(nanoid__WEBPACK_IMPORTED_MODULE_8__[\"nanoid\"])(),\n timestamp: Date.now(),\n source: this.channel ? 'broadcast' : 'event',\n ...message\n };\n this.log('debug', '发送消息', {\n messageId: fullMessage.id,\n targetId: fullMessage.targetId,\n action: fullMessage.action\n });\n\n // 1. BroadcastChannel\n if (this.channel) {\n try {\n this.channel.postMessage(fullMessage);\n this.log('debug', '通过 BroadcastChannel 发送', {\n fullMessage,\n instanceId: this.instanceId,\n documentId: this.documentId\n });\n // 发送后返回,避免多次发送\n return;\n } catch (error) {\n this.log('error', 'BroadcastChannel 发送失败', {\n error: error.message\n });\n }\n }\n\n // 2. CustomEvent\n window.dispatchEvent(new CustomEvent('kmind:message', {\n detail: fullMessage,\n bubbles: true\n }));\n this.log('debug', '通过 CustomEvent 发送');\n\n // 3. localStorage 降级\n if (!this.channel && window.localStorage) {\n try {\n localStorage.setItem('kmind-message', JSON.stringify(fullMessage));\n setTimeout(() => {\n localStorage.removeItem('kmind-message');\n }, 100);\n this.log('debug', '通过 localStorage 发送(降级模式)');\n } catch (error) {\n this.log('error', 'localStorage 发送失败', {\n error: error.message\n });\n }\n }\n }\n\n // 监听特定文档\n watch(documentId) {\n this.watchList.add(documentId);\n this.log('info', '开始监听文档', {\n documentId\n });\n }\n\n // 取消监听\n unwatch(documentId) {\n this.watchList.delete(documentId);\n this.log('info', '停止监听文档', {\n documentId\n });\n }\n\n // 事件监听\n on(event, handler) {\n if (!this.listeners.has(event)) {\n this.listeners.set(event, new Set());\n }\n this.listeners.get(event).add(handler);\n this.log('debug', '添加事件监听器', {\n event\n });\n }\n off(event, handler) {\n const handlers = this.listeners.get(event);\n if (handlers) {\n handlers.delete(handler);\n if (handlers.size === 0) {\n this.listeners.delete(event);\n }\n this.log('debug', '移除事件监听器', {\n event\n });\n }\n }\n emit(event, data) {\n const handlers = this.listeners.get(event);\n if (handlers) {\n handlers.forEach(handler => {\n try {\n handler(data);\n } catch (error) {\n this.log('error', '事件处理器执行失败', {\n event,\n error: error.message\n });\n }\n });\n }\n }\n _handleBroadcastMessage(event) {\n var _event$data, _event$data2;\n this.log('debug', '收到 BroadcastChannel 消息', {\n messageId: (_event$data = event.data) === null || _event$data === void 0 ? void 0 : _event$data.id,\n targetId: (_event$data2 = event.data) === null || _event$data2 === void 0 ? void 0 : _event$data2.targetId,\n instanceId: this.instanceId,\n documentId: this.documentId,\n watchList: this.watchList\n });\n this.processMessage(event.data);\n }\n _handleCustomEvent(event) {\n var _event$detail, _event$detail2;\n this.log('debug', '收到 CustomEvent 消息', {\n messageId: (_event$detail = event.detail) === null || _event$detail === void 0 ? void 0 : _event$detail.id,\n targetId: (_event$detail2 = event.detail) === null || _event$detail2 === void 0 ? void 0 : _event$detail2.targetId\n });\n this.processMessage(event.detail);\n }\n _handleStorageEvent(event) {\n if (event.key === 'kmind-message' && event.newValue) {\n try {\n const message = JSON.parse(event.newValue);\n this.log('debug', '收到 localStorage 消息', {\n messageId: message === null || message === void 0 ? void 0 : message.id,\n targetId: message === null || message === void 0 ? void 0 : message.targetId\n });\n this.processMessage(message);\n } catch (error) {\n this.log('error', '解析 localStorage 消息失败', {\n error: error.message\n });\n }\n }\n }\n processMessage(message) {\n if (!message || typeof message !== 'object') {\n return;\n }\n\n // 过滤消息\n if (!this.shouldProcessMessage(message)) {\n this.log('debug', '消息被过滤', {\n messageId: message.id,\n targetId: message.targetId,\n reason: '不是目标接收者'\n });\n return;\n }\n this.log('info', '处理消息', {\n messageId: message.id,\n action: message.action,\n targetId: message.targetId\n });\n\n // 触发通用监听器\n this.emit('message', message);\n\n // 按 action 分发\n if (message.action) {\n this.emit(message.action, message.payload);\n }\n }\n shouldProcessMessage(message) {\n // 1. 发给我的消息\n if (message.targetId === this.documentId) {\n return true;\n }\n\n // 2. 我监听的文档消息\n if (message.targetId && this.watchList.has(message.targetId)) {\n return true;\n }\n\n // 3. 广播消息\n if (!message.targetId) {\n return true;\n }\n return false;\n }\n destroy() {\n this.log('info', '销毁消息中心', {\n instanceId: this.instanceId,\n documentId: this.documentId\n });\n if (this.channel) {\n this.channel.close();\n this.channel = null;\n }\n window.removeEventListener('kmind:message', this.handleCustomEvent);\n window.removeEventListener('storage', this.handleStorageEvent);\n this.listeners.clear();\n this.watchList.clear();\n }\n}\n\n// 单例管理\nlet globalMessageCenter = null;\n\n/**\n * 消息中心 Hook\n */\nconst useMessageCenter = () => {\n const logger = _utils_logger__WEBPACK_IMPORTED_MODULE_10__[\"KmindLogger\"].getInstance();\n\n /**\n * 初始化全局消息中心\n */\n const init = documentId => {\n if (globalMessageCenter) {\n logger.warn('message-center', '消息中心已初始化');\n return globalMessageCenter;\n }\n globalMessageCenter = new MessageCenter(documentId || 'plugin-control');\n logger.info('message-center', '全局消息中心已初始化');\n return globalMessageCenter;\n };\n\n /**\n * 获取消息中心实例\n */\n const getInstance = () => {\n return globalMessageCenter;\n };\n\n /**\n * 创建独立的消息中心实例(用于特殊场景)\n */\n const createInstance = documentId => {\n return new MessageCenter(documentId);\n };\n\n /**\n * 发送消息给特定接收者\n * @param targetId 接收者ID\n * @param action 动作类型\n * @param payload 消息内容\n */\n const sendMessage = (targetId, action, payload) => {\n if (!globalMessageCenter) {\n logger.error('message-center', '消息中心未初始化');\n return;\n }\n globalMessageCenter.send({\n type: 'data',\n targetId,\n action,\n payload\n });\n };\n\n /**\n * 发送命令\n * @param targetId 接收者ID\n * @param cmd 命令\n * @param params 参数\n */\n const sendCommand = (targetId, cmd, params) => {\n sendMessage(targetId, 'command', {\n cmd,\n ...params\n });\n };\n\n /**\n * 发送数据更新\n * @param targetId 接收者ID\n * @param data 数据\n */\n const sendUpdate = (targetId, data) => {\n sendMessage(targetId, 'update', data);\n };\n\n /**\n * 广播消息(所有实例都会收到)\n * @param action 动作类型\n * @param payload 消息内容\n */\n const broadcast = (action, payload) => {\n if (!globalMessageCenter) {\n logger.error('message-center', '消息中心未初始化');\n return;\n }\n globalMessageCenter.send({\n type: 'control',\n action,\n payload\n });\n };\n\n /**\n * 监听消息\n * @param event 事件名\n * @param handler 处理函数\n */\n const on = (event, handler) => {\n if (!globalMessageCenter) {\n logger.error('message-center', '消息中心未初始化');\n return;\n }\n globalMessageCenter.on(event, handler);\n };\n\n /**\n * 取消监听\n * @param event 事件名\n * @param handler 处理函数\n */\n const off = (event, handler) => {\n if (!globalMessageCenter) {\n logger.error('message-center', '消息中心未初始化');\n return;\n }\n globalMessageCenter.off(event, handler);\n };\n\n /**\n * 监听特定文档的消息\n * @param documentId 文档ID\n */\n const watch = documentId => {\n if (!globalMessageCenter) {\n logger.error('message-center', '消息中心未初始化');\n return;\n }\n globalMessageCenter.watch(documentId);\n };\n\n /**\n * 取消监听文档\n * @param documentId 文档ID\n */\n const unwatch = documentId => {\n if (!globalMessageCenter) {\n logger.error('message-center', '消息中心未初始化');\n return;\n }\n globalMessageCenter.unwatch(documentId);\n };\n\n /**\n * 销毁消息中心\n */\n const destroy = () => {\n if (globalMessageCenter) {\n globalMessageCenter.destroy();\n globalMessageCenter = null;\n logger.info('message-center', '消息中心已销毁');\n }\n };\n\n // 导出常用方法\n return {\n // 生命周期\n init,\n destroy,\n getInstance,\n createInstance,\n // 发送消息\n sendMessage,\n sendCommand,\n sendUpdate,\n broadcast,\n // 监听消息\n on,\n off,\n watch,\n unwatch,\n // 兼容旧 API\n publish: sendUpdate,\n refreshDocument: targetId => sendCommand(targetId, 'refresh'),\n // 导出类(用于特殊场景)\n MessageCenter\n };\n};\n\n// 导出类型\n\n// 导出默认实例\n/* harmony default export */ __webpack_exports__[\"default\"] = (useMessageCenter);\n\n//# sourceURL=webpack:///./siyuan-plugin-src/src/hooks/useMessageCenter.ts?");
/***/ }),
/***/ "./src/assets/img/custom-theme.svg":
/*!*****************************************!*\
!*** ./src/assets/img/custom-theme.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/custom-theme.svg\";\n\n//# sourceURL=webpack:///./src/assets/img/custom-theme.svg?");
/***/ }),
/***/ "./src/assets/img/structures/catalogOrganization.webp":
/*!************************************************************!*\
!*** ./src/assets/img/structures/catalogOrganization.webp ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/catalogOrganization.webp\";\n\n//# sourceURL=webpack:///./src/assets/img/structures/catalogOrganization.webp?");
/***/ }),
/***/ "./src/assets/img/structures/fishbone.webp":
/*!*************************************************!*\
!*** ./src/assets/img/structures/fishbone.webp ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/fishbone.webp\";\n\n//# sourceURL=webpack:///./src/assets/img/structures/fishbone.webp?");
/***/ }),
/***/ "./src/assets/img/structures/logicalStructure.webp":
/*!*********************************************************!*\
!*** ./src/assets/img/structures/logicalStructure.webp ***!
\*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/logicalStructure.webp\";\n\n//# sourceURL=webpack:///./src/assets/img/structures/logicalStructure.webp?");
/***/ }),
/***/ "./src/assets/img/structures/logicalStructureLeft.webp":
/*!*************************************************************!*\
!*** ./src/assets/img/structures/logicalStructureLeft.webp ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/logicalStructureLeft.webp\";\n\n//# sourceURL=webpack:///./src/assets/img/structures/logicalStructureLeft.webp?");
/***/ }),
/***/ "./src/assets/img/structures/mindMap.webp":
/*!************************************************!*\
!*** ./src/assets/img/structures/mindMap.webp ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/mindMap.webp\";\n\n//# sourceURL=webpack:///./src/assets/img/structures/mindMap.webp?");
/***/ }),
/***/ "./src/assets/img/structures/organizationStructure.webp":
/*!**************************************************************!*\
!*** ./src/assets/img/structures/organizationStructure.webp ***!
\**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/organizationStructure.webp\";\n\n//# sourceURL=webpack:///./src/assets/img/structures/organizationStructure.webp?");
/***/ }),
/***/ "./src/assets/img/structures/radial.webp":
/*!***********************************************!*\
!*** ./src/assets/img/structures/radial.webp ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/radial.webp\";\n\n//# sourceURL=webpack:///./src/assets/img/structures/radial.webp?");
/***/ }),
/***/ "./src/assets/img/structures/timeline.webp":
/*!*************************************************!*\
!*** ./src/assets/img/structures/timeline.webp ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/timeline.webp\";\n\n//# sourceURL=webpack:///./src/assets/img/structures/timeline.webp?");
/***/ }),
/***/ "./src/assets/img/structures/timeline2.webp":
/*!**************************************************!*\
!*** ./src/assets/img/structures/timeline2.webp ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/timeline2.webp\";\n\n//# sourceURL=webpack:///./src/assets/img/structures/timeline2.webp?");
/***/ }),
/***/ "./src/assets/img/structures/verticalTimeline.webp":
/*!*********************************************************!*\
!*** ./src/assets/img/structures/verticalTimeline.webp ***!
\*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/verticalTimeline.webp\";\n\n//# sourceURL=webpack:///./src/assets/img/structures/verticalTimeline.webp?");
/***/ }),
/***/ "./src/assets/img/图片加载失败.svg":
/*!***********************************!*\
!*** ./src/assets/img/图片加载失败.svg ***!
\***********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/图片加载失败.svg\";\n\n//# sourceURL=webpack:///./src/assets/img/%E5%9B%BE%E7%89%87%E5%8A%A0%E8%BD%BD%E5%A4%B1%E8%B4%A5.svg?");
/***/ }),
/***/ "./src/assets/kmind-assets/icon.ts":
/*!*****************************************!*\
!*** ./src/assets/kmind-assets/icon.ts ***!
\*****************************************/
/*! exports provided: siyuanIcon */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"siyuanIcon\", function() { return siyuanIcon; });\nconst siyuanIcon = `<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"1024\" height=\"1024\" viewBox=\"0 0 1024 1024\">\n<title></title>\n<g id=\"icomoon-ignore\">\n</g>\n<path fill=\"#d23f31\" d=\"M37.052 371.676l269.857-269.857v550.507l-269.857 269.857z\"></path>\n<path fill=\"#3b3e43\" d=\"M306.909 101.818l205.091 205.091v550.507l-205.091-205.091z\"></path>\n<path fill=\"#d23f31\" d=\"M512 306.909l205.091-205.091v550.507l-205.091 205.091z\"></path>\n<path fill=\"#3b3e43\" d=\"M717.091 101.818l269.857 269.857v550.507l-269.857-269.857z\"></path>\n</svg>`;\n\n//# sourceURL=webpack:///./src/assets/kmind-assets/icon.ts?");
/***/ }),
/***/ "./src/assets/svg/business/-.svg":
/*!***************************************!*\
!*** ./src/assets/svg/business/-.svg ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_1.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/business/-_1.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_1.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_1.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_10.svg":
/*!******************************************!*\
!*** ./src/assets/svg/business/-_10.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_10.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_10.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_11.svg":
/*!******************************************!*\
!*** ./src/assets/svg/business/-_11.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_11.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_11.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_12.svg":
/*!******************************************!*\
!*** ./src/assets/svg/business/-_12.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_12.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_12.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_13.svg":
/*!******************************************!*\
!*** ./src/assets/svg/business/-_13.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_13.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_13.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_14.svg":
/*!******************************************!*\
!*** ./src/assets/svg/business/-_14.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_14.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_14.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_15.svg":
/*!******************************************!*\
!*** ./src/assets/svg/business/-_15.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_15.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_15.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_16.svg":
/*!******************************************!*\
!*** ./src/assets/svg/business/-_16.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_16.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_16.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_17.svg":
/*!******************************************!*\
!*** ./src/assets/svg/business/-_17.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_17.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_17.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_18.svg":
/*!******************************************!*\
!*** ./src/assets/svg/business/-_18.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_18.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_18.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_2.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/business/-_2.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_2.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_2.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_3.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/business/-_3.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_3.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_3.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_4.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/business/-_4.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_4.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_4.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_5.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/business/-_5.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_5.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_5.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_6.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/business/-_6.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_6.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_6.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_7.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/business/-_7.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_7.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_7.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_8.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/business/-_8.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_8.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_8.svg?");
/***/ }),
/***/ "./src/assets/svg/business/-_9.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/business/-_9.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/-_9.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/-_9.svg?");
/***/ }),
/***/ "./src/assets/svg/business/OAxitong.svg":
/*!**********************************************!*\
!*** ./src/assets/svg/business/OAxitong.svg ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/OAxitong.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/OAxitong.svg?");
/***/ }),
/***/ "./src/assets/svg/business/changyongziyuan.svg":
/*!*****************************************************!*\
!*** ./src/assets/svg/business/changyongziyuan.svg ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/changyongziyuan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/changyongziyuan.svg?");
/***/ }),
/***/ "./src/assets/svg/business/chuchashenpi.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/business/chuchashenpi.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/chuchashenpi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/chuchashenpi.svg?");
/***/ }),
/***/ "./src/assets/svg/business/fanwendengji.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/business/fanwendengji.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/fanwendengji.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/fanwendengji.svg?");
/***/ }),
/***/ "./src/assets/svg/business/feizhengshiwendengji.svg":
/*!**********************************************************!*\
!*** ./src/assets/svg/business/feizhengshiwendengji.svg ***!
\**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/feizhengshiwendengji.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/feizhengshiwendengji.svg?");
/***/ }),
/***/ "./src/assets/svg/business/gongwenjiaohuan.svg":
/*!*****************************************************!*\
!*** ./src/assets/svg/business/gongwenjiaohuan.svg ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/gongwenjiaohuan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/gongwenjiaohuan.svg?");
/***/ }),
/***/ "./src/assets/svg/business/gongzuohuibao.svg":
/*!***************************************************!*\
!*** ./src/assets/svg/business/gongzuohuibao.svg ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/gongzuohuibao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/gongzuohuibao.svg?");
/***/ }),
/***/ "./src/assets/svg/business/gudingzichan.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/business/gudingzichan.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/gudingzichan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/gudingzichan.svg?");
/***/ }),
/***/ "./src/assets/svg/business/huiyiguanli.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/business/huiyiguanli.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/huiyiguanli.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/huiyiguanli.svg?");
/***/ }),
/***/ "./src/assets/svg/business/huiyiyuding.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/business/huiyiyuding.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/huiyiyuding.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/huiyiyuding.svg?");
/***/ }),
/***/ "./src/assets/svg/business/kaoqinguanli.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/business/kaoqinguanli.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/kaoqinguanli.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/kaoqinguanli.svg?");
/***/ }),
/***/ "./src/assets/svg/business/qingxiujiashenqing.svg":
/*!********************************************************!*\
!*** ./src/assets/svg/business/qingxiujiashenqing.svg ***!
\********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/qingxiujiashenqing.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/qingxiujiashenqing.svg?");
/***/ }),
/***/ "./src/assets/svg/business/sannianjihua.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/business/sannianjihua.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/sannianjihua.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/sannianjihua.svg?");
/***/ }),
/***/ "./src/assets/svg/business/tongzhifabu.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/business/tongzhifabu.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/tongzhifabu.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/tongzhifabu.svg?");
/***/ }),
/***/ "./src/assets/svg/business/xiangmuguanli.svg":
/*!***************************************************!*\
!*** ./src/assets/svg/business/xiangmuguanli.svg ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/xiangmuguanli.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/xiangmuguanli.svg?");
/***/ }),
/***/ "./src/assets/svg/business/xinxitougao.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/business/xinxitougao.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/xinxitougao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/xinxitougao.svg?");
/***/ }),
/***/ "./src/assets/svg/business/zhishichanquan.svg":
/*!****************************************************!*\
!*** ./src/assets/svg/business/zhishichanquan.svg ***!
\****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/zhishichanquan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/zhishichanquan.svg?");
/***/ }),
/***/ "./src/assets/svg/business/zhongxindongtaifabu.svg":
/*!*********************************************************!*\
!*** ./src/assets/svg/business/zhongxindongtaifabu.svg ***!
\*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/zhongxindongtaifabu.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/zhongxindongtaifabu.svg?");
/***/ }),
/***/ "./src/assets/svg/business/zongheshenpi.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/business/zongheshenpi.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/zongheshenpi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/business/zongheshenpi.svg?");
/***/ }),
/***/ "./src/assets/svg/education/DNA.svg":
/*!******************************************!*\
!*** ./src/assets/svg/education/DNA.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/DNA.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/DNA.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-1-shilibiao.svg":
/*!****************************************************!*\
!*** ./src/assets/svg/education/a-1-shilibiao.svg ***!
\****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-1-shilibiao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-1-shilibiao.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-10-yiliaoxiang.svg":
/*!*******************************************************!*\
!*** ./src/assets/svg/education/a-10-yiliaoxiang.svg ***!
\*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-10-yiliaoxiang.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-10-yiliaoxiang.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-11-yiyongweishengzhi.svg":
/*!*************************************************************!*\
!*** ./src/assets/svg/education/a-11-yiyongweishengzhi.svg ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-11-yiyongweishengzhi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-11-yiyongweishengzhi.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-12-huxi.svg":
/*!************************************************!*\
!*** ./src/assets/svg/education/a-12-huxi.svg ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-12-huxi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-12-huxi.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-13-xiguan.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/education/a-13-xiguan.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-13-xiguan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-13-xiguan.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-14-zhutingqi.svg":
/*!*****************************************************!*\
!*** ./src/assets/svg/education/a-14-zhutingqi.svg ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-14-zhutingqi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-14-zhutingqi.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-15-bingdu.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/education/a-15-bingdu.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-15-bingdu.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-15-bingdu.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-16-yiyuan.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/education/a-16-yiyuan.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-16-yiyuan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-16-yiyuan.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-17-zhusheqi.svg":
/*!****************************************************!*\
!*** ./src/assets/svg/education/a-17-zhusheqi.svg ***!
\****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-17-zhusheqi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-17-zhusheqi.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-18-xiguan.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/education/a-18-xiguan.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-18-xiguan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-18-xiguan.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-19guaizhang.svg":
/*!****************************************************!*\
!*** ./src/assets/svg/education/a-19guaizhang.svg ***!
\****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-19guaizhang.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-19guaizhang.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-2-kouzhao.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/education/a-2-kouzhao.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-2-kouzhao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-2-kouzhao.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-20-shuye.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/education/a-20-shuye.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-20-shuye.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-20-shuye.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-3-chuangkoutie.svg":
/*!*******************************************************!*\
!*** ./src/assets/svg/education/a-3-chuangkoutie.svg ***!
\*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-3-chuangkoutie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-3-chuangkoutie.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-4-lunyi.svg":
/*!************************************************!*\
!*** ./src/assets/svg/education/a-4-lunyi.svg ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-4-lunyi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-4-lunyi.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-5-mianqian.svg":
/*!***************************************************!*\
!*** ./src/assets/svg/education/a-5-mianqian.svg ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-5-mianqian.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-5-mianqian.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-6-jiancebi.svg":
/*!***************************************************!*\
!*** ./src/assets/svg/education/a-6-jiancebi.svg ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-6-jiancebi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-6-jiancebi.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-7-xinzang.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/education/a-7-xinzang.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-7-xinzang.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-7-xinzang.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-8-DNA.svg":
/*!**********************************************!*\
!*** ./src/assets/svg/education/a-8-DNA.svg ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-8-DNA.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-8-DNA.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-9-tizhongcheng.svg":
/*!*******************************************************!*\
!*** ./src/assets/svg/education/a-9-tizhongcheng.svg ***!
\*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-9-tizhongcheng.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-9-tizhongcheng.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-bitong1.svg":
/*!************************************************!*\
!*** ./src/assets/svg/education/a-bitong1.svg ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-bitong1.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-bitong1.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-shu2.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/education/a-shu2.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-shu2.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-shu2.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-shu4.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/education/a-shu4.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-shu4.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-shu4.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-shu5.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/education/a-shu5.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-shu5.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-shu5.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-shuben2.svg":
/*!************************************************!*\
!*** ./src/assets/svg/education/a-shuben2.svg ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-shuben2.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-shuben2.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-shuben3.svg":
/*!************************************************!*\
!*** ./src/assets/svg/education/a-shuben3.svg ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-shuben3.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-shuben3.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-shuben4.svg":
/*!************************************************!*\
!*** ./src/assets/svg/education/a-shuben4.svg ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-shuben4.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-shuben4.svg?");
/***/ }),
/***/ "./src/assets/svg/education/a-xueshimao1.svg":
/*!***************************************************!*\
!*** ./src/assets/svg/education/a-xueshimao1.svg ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-xueshimao1.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/a-xueshimao1.svg?");
/***/ }),
/***/ "./src/assets/svg/education/baichui.svg":
/*!**********************************************!*\
!*** ./src/assets/svg/education/baichui.svg ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/baichui.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/baichui.svg?");
/***/ }),
/***/ "./src/assets/svg/education/bijiben.svg":
/*!**********************************************!*\
!*** ./src/assets/svg/education/bijiben.svg ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/bijiben.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/bijiben.svg?");
/***/ }),
/***/ "./src/assets/svg/education/bitong.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/education/bitong.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/bitong.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/bitong.svg?");
/***/ }),
/***/ "./src/assets/svg/education/chizi.svg":
/*!********************************************!*\
!*** ./src/assets/svg/education/chizi.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/chizi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/chizi.svg?");
/***/ }),
/***/ "./src/assets/svg/education/chongdian.svg":
/*!************************************************!*\
!*** ./src/assets/svg/education/chongdian.svg ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/chongdian.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/chongdian.svg?");
/***/ }),
/***/ "./src/assets/svg/education/citie.svg":
/*!********************************************!*\
!*** ./src/assets/svg/education/citie.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/citie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/citie.svg?");
/***/ }),
/***/ "./src/assets/svg/education/daima.svg":
/*!********************************************!*\
!*** ./src/assets/svg/education/daima.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/daima.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/daima.svg?");
/***/ }),
/***/ "./src/assets/svg/education/deng.svg":
/*!*******************************************!*\
!*** ./src/assets/svg/education/deng.svg ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/deng.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/deng.svg?");
/***/ }),
/***/ "./src/assets/svg/education/dianliushiyan.svg":
/*!****************************************************!*\
!*** ./src/assets/svg/education/dianliushiyan.svg ***!
\****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/dianliushiyan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/dianliushiyan.svg?");
/***/ }),
/***/ "./src/assets/svg/education/diqiu.svg":
/*!********************************************!*\
!*** ./src/assets/svg/education/diqiu.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/diqiu.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/diqiu.svg?");
/***/ }),
/***/ "./src/assets/svg/education/diqiuyi.svg":
/*!**********************************************!*\
!*** ./src/assets/svg/education/diqiuyi.svg ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/diqiuyi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/diqiuyi.svg?");
/***/ }),
/***/ "./src/assets/svg/education/fanyi.svg":
/*!********************************************!*\
!*** ./src/assets/svg/education/fanyi.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/fanyi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/fanyi.svg?");
/***/ }),
/***/ "./src/assets/svg/education/gongwenbao.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/education/gongwenbao.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/gongwenbao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/gongwenbao.svg?");
/***/ }),
/***/ "./src/assets/svg/education/heiban.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/education/heiban.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/heiban.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/heiban.svg?");
/***/ }),
/***/ "./src/assets/svg/education/huiyi.svg":
/*!********************************************!*\
!*** ./src/assets/svg/education/huiyi.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/huiyi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/huiyi.svg?");
/***/ }),
/***/ "./src/assets/svg/education/jiangbei.svg":
/*!***********************************************!*\
!*** ./src/assets/svg/education/jiangbei.svg ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/jiangbei.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/jiangbei.svg?");
/***/ }),
/***/ "./src/assets/svg/education/jiaoxuelou.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/education/jiaoxuelou.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/jiaoxuelou.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/jiaoxuelou.svg?");
/***/ }),
/***/ "./src/assets/svg/education/jinpai.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/education/jinpai.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/jinpai.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/jinpai.svg?");
/***/ }),
/***/ "./src/assets/svg/education/jisuan.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/education/jisuan.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/jisuan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/jisuan.svg?");
/***/ }),
/***/ "./src/assets/svg/education/jisuanqi.svg":
/*!***********************************************!*\
!*** ./src/assets/svg/education/jisuanqi.svg ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/jisuanqi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/jisuanqi.svg?");
/***/ }),
/***/ "./src/assets/svg/education/naozhong.svg":
/*!***********************************************!*\
!*** ./src/assets/svg/education/naozhong.svg ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/naozhong.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/naozhong.svg?");
/***/ }),
/***/ "./src/assets/svg/education/qianbi.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/education/qianbi.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/qianbi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/qianbi.svg?");
/***/ }),
/***/ "./src/assets/svg/education/sepan.svg":
/*!********************************************!*\
!*** ./src/assets/svg/education/sepan.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/sepan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/sepan.svg?");
/***/ }),
/***/ "./src/assets/svg/education/shiyan.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/education/shiyan.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/shiyan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/shiyan.svg?");
/***/ }),
/***/ "./src/assets/svg/education/shouji.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/education/shouji.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/shouji.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/shouji.svg?");
/***/ }),
/***/ "./src/assets/svg/education/shuben.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/education/shuben.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/shuben.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/shuben.svg?");
/***/ }),
/***/ "./src/assets/svg/education/shuxie.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/education/shuxie.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/shuxie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/shuxie.svg?");
/***/ }),
/***/ "./src/assets/svg/education/sousuo.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/education/sousuo.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/sousuo.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/sousuo.svg?");
/***/ }),
/***/ "./src/assets/svg/education/suanpan.svg":
/*!**********************************************!*\
!*** ./src/assets/svg/education/suanpan.svg ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/suanpan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/suanpan.svg?");
/***/ }),
/***/ "./src/assets/svg/education/tianping.svg":
/*!***********************************************!*\
!*** ./src/assets/svg/education/tianping.svg ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/tianping.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/tianping.svg?");
/***/ }),
/***/ "./src/assets/svg/education/tingzhenqi.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/education/tingzhenqi.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/tingzhenqi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/tingzhenqi.svg?");
/***/ }),
/***/ "./src/assets/svg/education/tiyu.svg":
/*!*******************************************!*\
!*** ./src/assets/svg/education/tiyu.svg ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/tiyu.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/tiyu.svg?");
/***/ }),
/***/ "./src/assets/svg/education/wenjian.svg":
/*!**********************************************!*\
!*** ./src/assets/svg/education/wenjian.svg ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/wenjian.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/wenjian.svg?");
/***/ }),
/***/ "./src/assets/svg/education/xianweijing.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/education/xianweijing.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/xianweijing.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/xianweijing.svg?");
/***/ }),
/***/ "./src/assets/svg/education/xiaoheiban.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/education/xiaoheiban.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/xiaoheiban.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/xiaoheiban.svg?");
/***/ }),
/***/ "./src/assets/svg/education/xiezizhuo.svg":
/*!************************************************!*\
!*** ./src/assets/svg/education/xiezizhuo.svg ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/xiezizhuo.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/xiezizhuo.svg?");
/***/ }),
/***/ "./src/assets/svg/education/xueshimao.svg":
/*!************************************************!*\
!*** ./src/assets/svg/education/xueshimao.svg ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/xueshimao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/xueshimao.svg?");
/***/ }),
/***/ "./src/assets/svg/education/yuanpan.svg":
/*!**********************************************!*\
!*** ./src/assets/svg/education/yuanpan.svg ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/yuanpan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/education/yuanpan.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/celianggongju.svg":
/*!***************************************************!*\
!*** ./src/assets/svg/festival/celianggongju.svg ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/celianggongju.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/celianggongju.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/chunjie.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/festival/chunjie.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/chunjie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/chunjie.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/duanwujie.svg":
/*!***********************************************!*\
!*** ./src/assets/svg/festival/duanwujie.svg ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/duanwujie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/duanwujie.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/ertongjie.svg":
/*!***********************************************!*\
!*** ./src/assets/svg/festival/ertongjie.svg ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ertongjie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/ertongjie.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/fuqinjie.svg":
/*!**********************************************!*\
!*** ./src/assets/svg/festival/fuqinjie.svg ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/fuqinjie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/fuqinjie.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/ganenjie.svg":
/*!**********************************************!*\
!*** ./src/assets/svg/festival/ganenjie.svg ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ganenjie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/ganenjie.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/gongju.svg":
/*!********************************************!*\
!*** ./src/assets/svg/festival/gongju.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/gongju.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/gongju.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/hushijie.svg":
/*!**********************************************!*\
!*** ./src/assets/svg/festival/hushijie.svg ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/hushijie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/hushijie.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/jiaoshijie.svg":
/*!************************************************!*\
!*** ./src/assets/svg/festival/jiaoshijie.svg ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/jiaoshijie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/jiaoshijie.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/laodongjie.svg":
/*!************************************************!*\
!*** ./src/assets/svg/festival/laodongjie.svg ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/laodongjie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/laodongjie.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/muqinjie.svg":
/*!**********************************************!*\
!*** ./src/assets/svg/festival/muqinjie.svg ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/muqinjie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/muqinjie.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/nvshengjie.svg":
/*!************************************************!*\
!*** ./src/assets/svg/festival/nvshengjie.svg ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/nvshengjie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/nvshengjie.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/qingrenjie.svg":
/*!************************************************!*\
!*** ./src/assets/svg/festival/qingrenjie.svg ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/qingrenjie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/qingrenjie.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/qixi.svg":
/*!******************************************!*\
!*** ./src/assets/svg/festival/qixi.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/qixi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/qixi.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/shengdanjie.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/festival/shengdanjie.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/shengdanjie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/shengdanjie.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/shuang.svg":
/*!********************************************!*\
!*** ./src/assets/svg/festival/shuang.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/shuang.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/shuang.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/yuandan.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/festival/yuandan.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/yuandan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/yuandan.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/yuanxiaojie.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/festival/yuanxiaojie.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/yuanxiaojie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/yuanxiaojie.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/zhongqiujie.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/festival/zhongqiujie.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/zhongqiujie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/zhongqiujie.svg?");
/***/ }),
/***/ "./src/assets/svg/festival/zhongyangjie.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/festival/zhongyangjie.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/zhongyangjie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/festival/zhongyangjie.svg?");
/***/ }),
/***/ "./src/assets/svg/food/binggan.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/food/binggan.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/binggan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/binggan.svg?");
/***/ }),
/***/ "./src/assets/svg/food/binggun.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/food/binggun.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/binggun.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/binggun.svg?");
/***/ }),
/***/ "./src/assets/svg/food/bingqilin.svg":
/*!*******************************************!*\
!*** ./src/assets/svg/food/bingqilin.svg ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/bingqilin.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/bingqilin.svg?");
/***/ }),
/***/ "./src/assets/svg/food/boluo.svg":
/*!***************************************!*\
!*** ./src/assets/svg/food/boluo.svg ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/boluo.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/boluo.svg?");
/***/ }),
/***/ "./src/assets/svg/food/caomei.svg":
/*!****************************************!*\
!*** ./src/assets/svg/food/caomei.svg ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/caomei.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/caomei.svg?");
/***/ }),
/***/ "./src/assets/svg/food/celianggongju.svg":
/*!***********************************************!*\
!*** ./src/assets/svg/food/celianggongju.svg ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/celianggongju.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/celianggongju.svg?");
/***/ }),
/***/ "./src/assets/svg/food/chengzi.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/food/chengzi.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/chengzi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/chengzi.svg?");
/***/ }),
/***/ "./src/assets/svg/food/dangao.svg":
/*!****************************************!*\
!*** ./src/assets/svg/food/dangao.svg ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/dangao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/dangao.svg?");
/***/ }),
/***/ "./src/assets/svg/food/fanqiejiang.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/food/fanqiejiang.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/fanqiejiang.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/fanqiejiang.svg?");
/***/ }),
/***/ "./src/assets/svg/food/gongju.svg":
/*!****************************************!*\
!*** ./src/assets/svg/food/gongju.svg ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/gongju.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/gongju.svg?");
/***/ }),
/***/ "./src/assets/svg/food/hanbao.svg":
/*!****************************************!*\
!*** ./src/assets/svg/food/hanbao.svg ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/hanbao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/hanbao.svg?");
/***/ }),
/***/ "./src/assets/svg/food/jiandan.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/food/jiandan.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/jiandan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/jiandan.svg?");
/***/ }),
/***/ "./src/assets/svg/food/kafeibei.svg":
/*!******************************************!*\
!*** ./src/assets/svg/food/kafeibei.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/kafeibei.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/kafeibei.svg?");
/***/ }),
/***/ "./src/assets/svg/food/lajiao.svg":
/*!****************************************!*\
!*** ./src/assets/svg/food/lajiao.svg ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/lajiao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/lajiao.svg?");
/***/ }),
/***/ "./src/assets/svg/food/naixi.svg":
/*!***************************************!*\
!*** ./src/assets/svg/food/naixi.svg ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/naixi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/naixi.svg?");
/***/ }),
/***/ "./src/assets/svg/food/niunai.svg":
/*!****************************************!*\
!*** ./src/assets/svg/food/niunai.svg ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/niunai.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/niunai.svg?");
/***/ }),
/***/ "./src/assets/svg/food/pingguo.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/food/pingguo.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/pingguo.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/pingguo.svg?");
/***/ }),
/***/ "./src/assets/svg/food/pisa.svg":
/*!**************************************!*\
!*** ./src/assets/svg/food/pisa.svg ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/pisa.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/pisa.svg?");
/***/ }),
/***/ "./src/assets/svg/food/putao.svg":
/*!***************************************!*\
!*** ./src/assets/svg/food/putao.svg ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/putao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/putao.svg?");
/***/ }),
/***/ "./src/assets/svg/food/quqi.svg":
/*!**************************************!*\
!*** ./src/assets/svg/food/quqi.svg ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/quqi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/quqi.svg?");
/***/ }),
/***/ "./src/assets/svg/food/regou.svg":
/*!***************************************!*\
!*** ./src/assets/svg/food/regou.svg ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/regou.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/regou.svg?");
/***/ }),
/***/ "./src/assets/svg/food/shutiao.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/food/shutiao.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/shutiao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/shutiao.svg?");
/***/ }),
/***/ "./src/assets/svg/food/sudaqishui.svg":
/*!********************************************!*\
!*** ./src/assets/svg/food/sudaqishui.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/sudaqishui.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/sudaqishui.svg?");
/***/ }),
/***/ "./src/assets/svg/food/taozi.svg":
/*!***************************************!*\
!*** ./src/assets/svg/food/taozi.svg ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/taozi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/taozi.svg?");
/***/ }),
/***/ "./src/assets/svg/food/tiantianquan.svg":
/*!**********************************************!*\
!*** ./src/assets/svg/food/tiantianquan.svg ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/tiantianquan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/tiantianquan.svg?");
/***/ }),
/***/ "./src/assets/svg/food/xiangjiao.svg":
/*!*******************************************!*\
!*** ./src/assets/svg/food/xiangjiao.svg ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/xiangjiao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/xiangjiao.svg?");
/***/ }),
/***/ "./src/assets/svg/food/xigua.svg":
/*!***************************************!*\
!*** ./src/assets/svg/food/xigua.svg ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/xigua.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/xigua.svg?");
/***/ }),
/***/ "./src/assets/svg/food/xilanhua.svg":
/*!******************************************!*\
!*** ./src/assets/svg/food/xilanhua.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/xilanhua.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/xilanhua.svg?");
/***/ }),
/***/ "./src/assets/svg/food/yingtao.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/food/yingtao.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/yingtao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/yingtao.svg?");
/***/ }),
/***/ "./src/assets/svg/food/yumi.svg":
/*!**************************************!*\
!*** ./src/assets/svg/food/yumi.svg ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/yumi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/food/yumi.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-1-shilibiao.svg":
/*!***************************************************!*\
!*** ./src/assets/svg/medicine/a-1-shilibiao.svg ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-1-shilibiao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-1-shilibiao.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-10-yiliaoxiang.svg":
/*!******************************************************!*\
!*** ./src/assets/svg/medicine/a-10-yiliaoxiang.svg ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-10-yiliaoxiang.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-10-yiliaoxiang.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-11-yiyongweishengzhi.svg":
/*!************************************************************!*\
!*** ./src/assets/svg/medicine/a-11-yiyongweishengzhi.svg ***!
\************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-11-yiyongweishengzhi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-11-yiyongweishengzhi.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-12-huxi.svg":
/*!***********************************************!*\
!*** ./src/assets/svg/medicine/a-12-huxi.svg ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-12-huxi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-12-huxi.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-13-xiguan.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/medicine/a-13-xiguan.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-13-xiguan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-13-xiguan.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-14-zhutingqi.svg":
/*!****************************************************!*\
!*** ./src/assets/svg/medicine/a-14-zhutingqi.svg ***!
\****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-14-zhutingqi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-14-zhutingqi.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-15-bingdu.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/medicine/a-15-bingdu.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-15-bingdu.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-15-bingdu.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-16-yiyuan.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/medicine/a-16-yiyuan.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-16-yiyuan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-16-yiyuan.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-17-zhusheqi.svg":
/*!***************************************************!*\
!*** ./src/assets/svg/medicine/a-17-zhusheqi.svg ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-17-zhusheqi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-17-zhusheqi.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-18-xiguan.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/medicine/a-18-xiguan.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-18-xiguan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-18-xiguan.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-19guaizhang.svg":
/*!***************************************************!*\
!*** ./src/assets/svg/medicine/a-19guaizhang.svg ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-19guaizhang.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-19guaizhang.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-2-kouzhao.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/medicine/a-2-kouzhao.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-2-kouzhao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-2-kouzhao.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-20-shuye.svg":
/*!************************************************!*\
!*** ./src/assets/svg/medicine/a-20-shuye.svg ***!
\************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-20-shuye.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-20-shuye.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-3-chuangkoutie.svg":
/*!******************************************************!*\
!*** ./src/assets/svg/medicine/a-3-chuangkoutie.svg ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-3-chuangkoutie.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-3-chuangkoutie.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-4-lunyi.svg":
/*!***********************************************!*\
!*** ./src/assets/svg/medicine/a-4-lunyi.svg ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-4-lunyi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-4-lunyi.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-5-mianqian.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/medicine/a-5-mianqian.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-5-mianqian.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-5-mianqian.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-6-jiancebi.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/medicine/a-6-jiancebi.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-6-jiancebi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-6-jiancebi.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-7-xinzang.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/medicine/a-7-xinzang.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-7-xinzang.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-7-xinzang.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-8-DNA.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/medicine/a-8-DNA.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-8-DNA.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-8-DNA.svg?");
/***/ }),
/***/ "./src/assets/svg/medicine/a-9-tizhongcheng.svg":
/*!******************************************************!*\
!*** ./src/assets/svg/medicine/a-9-tizhongcheng.svg ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/a-9-tizhongcheng.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/medicine/a-9-tizhongcheng.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/gaizhui.svg":
/*!******************************************!*\
!*** ./src/assets/svg/tools/gaizhui.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/gaizhui.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/gaizhui.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/tools/ziyuan.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_1.svg":
/*!*******************************************!*\
!*** ./src/assets/svg/tools/ziyuan_1.svg ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_1.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_1.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_10.svg":
/*!********************************************!*\
!*** ./src/assets/svg/tools/ziyuan_10.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_10.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_10.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_11.svg":
/*!********************************************!*\
!*** ./src/assets/svg/tools/ziyuan_11.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_11.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_11.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_12.svg":
/*!********************************************!*\
!*** ./src/assets/svg/tools/ziyuan_12.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_12.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_12.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_13.svg":
/*!********************************************!*\
!*** ./src/assets/svg/tools/ziyuan_13.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_13.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_13.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_14.svg":
/*!********************************************!*\
!*** ./src/assets/svg/tools/ziyuan_14.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_14.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_14.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_15.svg":
/*!********************************************!*\
!*** ./src/assets/svg/tools/ziyuan_15.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_15.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_15.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_16.svg":
/*!********************************************!*\
!*** ./src/assets/svg/tools/ziyuan_16.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_16.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_16.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_17.svg":
/*!********************************************!*\
!*** ./src/assets/svg/tools/ziyuan_17.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_17.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_17.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_18.svg":
/*!********************************************!*\
!*** ./src/assets/svg/tools/ziyuan_18.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_18.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_18.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_2.svg":
/*!*******************************************!*\
!*** ./src/assets/svg/tools/ziyuan_2.svg ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_2.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_2.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_3.svg":
/*!*******************************************!*\
!*** ./src/assets/svg/tools/ziyuan_3.svg ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_3.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_3.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_4.svg":
/*!*******************************************!*\
!*** ./src/assets/svg/tools/ziyuan_4.svg ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_4.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_4.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_5.svg":
/*!*******************************************!*\
!*** ./src/assets/svg/tools/ziyuan_5.svg ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_5.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_5.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_6.svg":
/*!*******************************************!*\
!*** ./src/assets/svg/tools/ziyuan_6.svg ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_6.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_6.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_7.svg":
/*!*******************************************!*\
!*** ./src/assets/svg/tools/ziyuan_7.svg ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_7.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_7.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_8.svg":
/*!*******************************************!*\
!*** ./src/assets/svg/tools/ziyuan_8.svg ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_8.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_8.svg?");
/***/ }),
/***/ "./src/assets/svg/tools/ziyuan_9.svg":
/*!*******************************************!*\
!*** ./src/assets/svg/tools/ziyuan_9.svg ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ziyuan_9.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/tools/ziyuan_9.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/banshouli.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/travel/banshouli.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/banshouli.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/banshouli.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/chuhangshijian.svg":
/*!**************************************************!*\
!*** ./src/assets/svg/travel/chuhangshijian.svg ***!
\**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/chuhangshijian.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/chuhangshijian.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/ditu.svg":
/*!****************************************!*\
!*** ./src/assets/svg/travel/ditu.svg ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/ditu.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/ditu.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/fengjing.svg":
/*!********************************************!*\
!*** ./src/assets/svg/travel/fengjing.svg ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/fengjing.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/fengjing.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/gonglve.svg":
/*!*******************************************!*\
!*** ./src/assets/svg/travel/gonglve.svg ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/gonglve.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/gonglve.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/hangli.svg":
/*!******************************************!*\
!*** ./src/assets/svg/travel/hangli.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/hangli.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/hangli.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/huafei.svg":
/*!******************************************!*\
!*** ./src/assets/svg/travel/huafei.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/huafei.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/huafei.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/jipiao.svg":
/*!******************************************!*\
!*** ./src/assets/svg/travel/jipiao.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/jipiao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/jipiao.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/jiudian.svg":
/*!*******************************************!*\
!*** ./src/assets/svg/travel/jiudian.svg ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/jiudian.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/jiudian.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/lvban.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/travel/lvban.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/lvban.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/lvban.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/meishi.svg":
/*!******************************************!*\
!*** ./src/assets/svg/travel/meishi.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/meishi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/meishi.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/menpiao.svg":
/*!*******************************************!*\
!*** ./src/assets/svg/travel/menpiao.svg ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/menpiao.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/menpiao.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/paishe.svg":
/*!******************************************!*\
!*** ./src/assets/svg/travel/paishe.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/paishe.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/paishe.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/qianzheng.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/travel/qianzheng.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/qianzheng.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/qianzheng.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/shangdian.svg":
/*!*********************************************!*\
!*** ./src/assets/svg/travel/shangdian.svg ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/shangdian.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/shangdian.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/tianqi.svg":
/*!******************************************!*\
!*** ./src/assets/svg/travel/tianqi.svg ***!
\******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/tianqi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/tianqi.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/youlechangsuo.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/travel/youlechangsuo.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/youlechangsuo.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/youlechangsuo.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/yuyanfanyi.svg":
/*!**********************************************!*\
!*** ./src/assets/svg/travel/yuyanfanyi.svg ***!
\**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/yuyanfanyi.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/yuyanfanyi.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/zhuyishixiang.svg":
/*!*************************************************!*\
!*** ./src/assets/svg/travel/zhuyishixiang.svg ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/zhuyishixiang.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/zhuyishixiang.svg?");
/***/ }),
/***/ "./src/assets/svg/travel/zuche.svg":
/*!*****************************************!*\
!*** ./src/assets/svg/travel/zuche.svg ***!
\*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("module.exports = __webpack_require__.p + \"img/zuche.svg\";\n\n//# sourceURL=webpack:///./src/assets/svg/travel/zuche.svg?");
/***/ }),
/***/ "./src/components/ImgUpload/index.vue":
/*!********************************************!*\
!*** ./src/components/ImgUpload/index.vue ***!
\********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_1ee0b527_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=1ee0b527&scoped=true */ \"./src/components/ImgUpload/index.vue?vue&type=template&id=1ee0b527&scoped=true\");\n/* harmony import */ var _index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js */ \"./src/components/ImgUpload/index.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _index_vue_vue_type_style_index_0_id_1ee0b527_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.vue?vue&type=style&index=0&id=1ee0b527&lang=less&scoped=true */ \"./src/components/ImgUpload/index.vue?vue&type=style&index=0&id=1ee0b527&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _index_vue_vue_type_template_id_1ee0b527_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _index_vue_vue_type_template_id_1ee0b527_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"1ee0b527\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/components/ImgUpload/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/components/ImgUpload/index.vue?");
/***/ }),
/***/ "./src/components/ImgUpload/index.vue?vue&type=script&lang=js":
/*!********************************************************************!*\
!*** ./src/components/ImgUpload/index.vue?vue&type=script&lang=js ***!
\********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/babel-loader/lib!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib??vue-loader-options!./index.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/ImgUpload/index.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/components/ImgUpload/index.vue?");
/***/ }),
/***/ "./src/components/ImgUpload/index.vue?vue&type=style&index=0&id=1ee0b527&lang=less&scoped=true":
/*!*****************************************************************************************************!*\
!*** ./src/components/ImgUpload/index.vue?vue&type=style&index=0&id=1ee0b527&lang=less&scoped=true ***!
\*****************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1ee0b527_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib??vue-loader-options!./index.vue?vue&type=style&index=0&id=1ee0b527&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/ImgUpload/index.vue?vue&type=style&index=0&id=1ee0b527&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1ee0b527_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1ee0b527_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1ee0b527_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_1ee0b527_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/components/ImgUpload/index.vue?");
/***/ }),
/***/ "./src/components/ImgUpload/index.vue?vue&type=template&id=1ee0b527&scoped=true":
/*!**************************************************************************************!*\
!*** ./src/components/ImgUpload/index.vue?vue&type=template&id=1ee0b527&scoped=true ***!
\**************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_1ee0b527_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/babel-loader/lib!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=1ee0b527&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/ImgUpload/index.vue?vue&type=template&id=1ee0b527&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_1ee0b527_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_1ee0b527_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/ImgUpload/index.vue?");
/***/ }),
/***/ "./src/config/constant.js":
/*!********************************!*\
!*** ./src/config/constant.js ***!
\********************************/
/*! exports provided: layoutImgMap, formulaList, supportLineStyleLayoutsMap, supportLineRadiusLayouts, supportNodeUseLineStyleLayouts, supportRootLineKeepSameInCurveLayouts, rainbowLinesOptions, kmindInitData, kmindInitDataForGlobalConfig, kmindInitDataForGlobalConfigEn, kmindInitDataForGlobalConfigI18N, kmindInitData2, kmindInitDataDark */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"layoutImgMap\", function() { return layoutImgMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"formulaList\", function() { return formulaList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"supportLineStyleLayoutsMap\", function() { return supportLineStyleLayoutsMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"supportLineRadiusLayouts\", function() { return supportLineRadiusLayouts; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"supportNodeUseLineStyleLayouts\", function() { return supportNodeUseLineStyleLayouts; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"supportRootLineKeepSameInCurveLayouts\", function() { return supportRootLineKeepSameInCurveLayouts; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rainbowLinesOptions\", function() { return rainbowLinesOptions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"kmindInitData\", function() { return kmindInitData; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"kmindInitDataForGlobalConfig\", function() { return kmindInitDataForGlobalConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"kmindInitDataForGlobalConfigEn\", function() { return kmindInitDataForGlobalConfigEn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"kmindInitDataForGlobalConfigI18N\", function() { return kmindInitDataForGlobalConfigI18N; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"kmindInitData2\", function() { return kmindInitData2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"kmindInitDataDark\", function() { return kmindInitDataDark; });\n// 布局结构图片映射\nconst layoutImgMap = {\n logicalStructure: __webpack_require__(/*! ../assets/img/structures/logicalStructure.webp */ \"./src/assets/img/structures/logicalStructure.webp\"),\n logicalStructureLeft: __webpack_require__(/*! ../assets/img/structures/logicalStructureLeft.webp */ \"./src/assets/img/structures/logicalStructureLeft.webp\"),\n mindMap: __webpack_require__(/*! ../assets/img/structures/mindMap.webp */ \"./src/assets/img/structures/mindMap.webp\"),\n organizationStructure: __webpack_require__(/*! ../assets/img/structures/organizationStructure.webp */ \"./src/assets/img/structures/organizationStructure.webp\"),\n catalogOrganization: __webpack_require__(/*! ../assets/img/structures/catalogOrganization.webp */ \"./src/assets/img/structures/catalogOrganization.webp\"),\n timeline: __webpack_require__(/*! ../assets/img/structures/timeline.webp */ \"./src/assets/img/structures/timeline.webp\"),\n timeline2: __webpack_require__(/*! ../assets/img/structures/timeline2.webp */ \"./src/assets/img/structures/timeline2.webp\"),\n fishbone: __webpack_require__(/*! ../assets/img/structures/fishbone.webp */ \"./src/assets/img/structures/fishbone.webp\"),\n verticalTimeline: __webpack_require__(/*! ../assets/img/structures/verticalTimeline.webp */ \"./src/assets/img/structures/verticalTimeline.webp\"),\n radial: __webpack_require__(/*! ../assets/img/structures/radial.webp */ \"./src/assets/img/structures/radial.webp\")\n};\n\n// 公式列表\nconst formulaList = ['a^2', 'a_2', 'a^{2+2}', 'a_{i,j}', 'x_2^3', '\\\\overbrace{1+2+\\\\cdots+100}', '\\\\sum_{k=1}^N k^2', '\\\\lim_{n \\\\to \\\\infty}x_n', '\\\\int_{-N}^{N} e^x\\\\, dx', '\\\\sqrt{3}', '\\\\sqrt[n]{3}', '\\\\sin\\\\theta', '\\\\log X', '\\\\log_{10}', '\\\\log_\\\\alpha X', '\\\\lim_{t\\\\to n}T', '\\\\frac{1}{2}=0.5', '\\\\binom{n}{k}', '\\\\begin{matrix}x & y \\\\\\\\z & v\\\\end{matrix}', '\\\\begin{cases}3x + 5y + z \\\\\\\\7x - 2y + 4z \\\\\\\\-6x + 3y + 2z\\\\end{cases}'];\n\n// 支持某种连线类型的结构\nconst supportLineStyleLayoutsMap = {\n curve: ['logicalStructure', 'logicalStructureLeft', 'mindMap', 'verticalTimeline', 'organizationStructure'],\n direct: ['logicalStructure', 'logicalStructureLeft', 'mindMap', 'organizationStructure', 'verticalTimeline']\n};\n\n// 直线模式支持设置圆角的结构\nconst supportLineRadiusLayouts = ['logicalStructure', 'logicalStructureLeft', 'mindMap', 'verticalTimeline'];\n\n// 支持只显示底边直线风格的结构\nconst supportNodeUseLineStyleLayouts = ['logicalStructure', 'logicalStructureLeft', 'mindMap', 'catalogOrganization', 'organizationStructure'];\n\n// 支持曲线模式下,根节点样式和其他节点样式保持一致的结构\nconst supportRootLineKeepSameInCurveLayouts = ['logicalStructure', 'logicalStructureLeft', 'mindMap', 'organizationStructure'];\n\n// 彩虹线条配置\nconst rainbowLinesOptions = [{\n value: 'close'\n}, {\n value: 'colors1',\n list: ['rgb(255, 213, 73)', 'rgb(255, 136, 126)', 'rgb(107, 225, 141)', 'rgb(151, 171, 255)', 'rgb(129, 220, 242)', 'rgb(255, 163, 125)', 'rgb(152, 132, 234)']\n}, {\n value: 'colors2',\n list: ['rgb(248, 93, 93)', 'rgb(255, 151, 84)', 'rgb(255, 214, 69)', 'rgb(73, 205, 140)', 'rgb(64, 192, 255)', 'rgb(84, 110, 214)', 'rgb(164, 93, 220)']\n}, {\n value: 'colors3',\n list: ['rgb(140, 240, 231)', 'rgb(74, 210, 255)', 'rgb(65, 168, 243)', 'rgb(49, 128, 205)', 'rgb(188, 226, 132)', 'rgb(113, 215, 123)', 'rgb(120, 191, 109)']\n}, {\n value: 'colors4',\n list: ['rgb(169, 98, 99)', 'rgb(245, 125, 123)', 'rgb(254, 183, 168)', 'rgb(251, 218, 171)', 'rgb(138, 163, 181)', 'rgb(131, 127, 161)', 'rgb(84, 83, 140)']\n}, {\n value: 'colors5',\n list: ['rgb(255, 229, 142)', 'rgb(254, 158, 41)', 'rgb(248, 119, 44)', 'rgb(232, 82, 80)', 'rgb(182, 66, 98)', 'rgb(99, 54, 99)', 'rgb(65, 40, 82)']\n}, {\n value: 'colors6',\n list: ['rgb(171, 227, 209)', 'rgb(107, 201, 196)', 'rgb(55, 170, 169)', 'rgb(18, 135, 131)', 'rgb(74, 139, 166)', 'rgb(75, 105, 150)', 'rgb(57, 75, 133)']\n}];\nconst kmindInitData = {\n root: {\n data: {\n text: 'KMIND'\n },\n children: [{\n data: {\n text: '二级节点',\n generalization: {\n text: '概要'\n }\n },\n children: [{\n data: {\n text: '分支主题'\n },\n children: []\n }, {\n data: {\n text: '分支主题'\n },\n children: []\n }]\n }]\n },\n theme: {\n template: 'classic7',\n config: {\n showLineMarker: false,\n nodeUseLineStyle: false,\n lineStyle: 'curve',\n lineWidth: 5\n }\n },\n layout: 'logicalStructure',\n // \"layout\": \"mindMap\",\n // \"layout\": \"catalogOrganization\"\n // \"layout\": \"organizationStructure\",\n config: {}\n};\nconst kmindInitDataForGlobalConfig = {\n root: {\n data: {\n text: 'KMIND'\n },\n children: [{\n data: {\n text: '二级节点',\n generalization: {\n text: '概要'\n }\n },\n children: [{\n data: {\n text: '分支主题'\n },\n children: []\n }, {\n data: {\n text: '分支主题'\n },\n children: []\n }]\n }]\n },\n theme: {\n // 外部更改\n template: 'classic7',\n config: {}\n },\n // 外部更改\n layout: 'logicalStructure',\n config: {}\n};\nconst kmindInitDataForGlobalConfigEn = {\n root: {\n data: {\n text: 'KMIND'\n },\n children: [{\n data: {\n text: 'Subtopic',\n generalization: {\n text: 'Summary'\n }\n },\n children: [{\n data: {\n text: 'Add Content'\n },\n children: []\n }, {\n data: {\n text: 'Add Content'\n },\n children: []\n }]\n }]\n },\n theme: {\n // 外部更改\n template: 'classic7',\n config: {}\n },\n // 外部更改\n layout: 'logicalStructure',\n config: {}\n};\nconst kmindInitDataForGlobalConfigI18N = {\n zh: kmindInitDataForGlobalConfig,\n en: kmindInitDataForGlobalConfigEn,\n zhtw: kmindInitDataForGlobalConfigEn\n};\n\n// doc2kmind的样式,用于kmind插件将思源文档转为kmind\nconst kmindInitData2 = {\n root: {\n data: {\n text: 'KMIND'\n },\n children: [{\n data: {\n text: '二级节点',\n generalization: {\n text: '概要'\n }\n },\n children: [{\n data: {\n text: '分支主题'\n },\n children: []\n }, {\n data: {\n text: '分支主题'\n },\n children: []\n }]\n }]\n },\n theme: {\n template: 'classic7',\n config: {\n showLineMarker: false,\n nodeUseLineStyle: false,\n lineStyle: 'curve',\n lineWidth: 5\n }\n },\n layout: 'logicalStructure',\n // layout: 'mindMap',\n // \"layout\": \"catalogOrganization\"\n // \"layout\": \"organizationStructure\",\n config: {\n rainbowLinesConfig: {\n open: true,\n colorsList: ['rgb(255, 213, 73)', 'rgb(255, 136, 126)', 'rgb(107, 225, 141)', 'rgb(151, 171, 255)', 'rgb(129, 220, 242)', 'rgb(255, 163, 125)', 'rgb(152, 132, 234)']\n }\n }\n};\n\n// doc2kmind的样式,用于kmind插件将思源文档转为kmind,暗黑模式\nconst kmindInitDataDark = {\n root: {\n data: {\n text: 'KMIND'\n },\n children: [{\n data: {\n text: '二级节点',\n generalization: {\n text: '概要'\n }\n },\n children: [{\n data: {\n text: '分支主题'\n },\n children: []\n }, {\n data: {\n text: '分支主题'\n },\n children: []\n }]\n }]\n },\n theme: {\n template: 'classic7',\n config: {\n showLineMarker: false,\n nodeUseLineStyle: false,\n lineStyle: 'curve',\n lineWidth: 5,\n backgroundColor: 'rgb(18, 20, 20)'\n }\n },\n layout: 'logicalStructure',\n // layout: 'mindMap',\n // \"layout\": \"catalogOrganization\"\n // \"layout\": \"organizationStructure\",\n config: {\n rainbowLinesConfig: {\n open: true,\n colorsList: ['rgb(255, 213, 73)', 'rgb(255, 136, 126)', 'rgb(107, 225, 141)', 'rgb(151, 171, 255)', 'rgb(129, 220, 242)', 'rgb(255, 163, 125)', 'rgb(152, 132, 234)']\n }\n }\n};\n\n//# sourceURL=webpack:///./src/config/constant.js?");
/***/ }),
/***/ "./src/config/en.js":
/*!**************************!*\
!*** ./src/config/en.js ***!
\**************************/
/*! exports provided: fontFamilyList, borderDasharrayList, lineStyleList, rootLineKeepSameInCurveList, backgroundRepeatList, backgroundPositionList, backgroundSizeList, shortcutKeyList, shapeList, sidebarTriggerList, downTypeList, numberTypeList, numberLevelList, linearGradientDirList, alignList */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fontFamilyList\", function() { return fontFamilyList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"borderDasharrayList\", function() { return borderDasharrayList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lineStyleList\", function() { return lineStyleList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rootLineKeepSameInCurveList\", function() { return rootLineKeepSameInCurveList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"backgroundRepeatList\", function() { return backgroundRepeatList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"backgroundPositionList\", function() { return backgroundPositionList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"backgroundSizeList\", function() { return backgroundSizeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shortcutKeyList\", function() { return shortcutKeyList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shapeList\", function() { return shapeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sidebarTriggerList\", function() { return sidebarTriggerList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"downTypeList\", function() { return downTypeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"numberTypeList\", function() { return numberTypeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"numberLevelList\", function() { return numberLevelList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"linearGradientDirList\", function() { return linearGradientDirList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"alignList\", function() { return alignList; });\n// 字体列表\nconst fontFamilyList = [{\n name: 'Song Ti',\n value: '宋体, SimSun, Songti SC'\n}, {\n name: 'Microsoft Yahei',\n value: '微软雅黑, Microsoft YaHei'\n}, {\n name: 'Italics',\n value: '楷体, 楷体_GB2312, SimKai, STKaiti'\n}, {\n name: 'Boldface',\n value: '黑体, SimHei, Heiti SC'\n}, {\n name: 'Official script',\n value: '隶书, SimLi'\n}, {\n name: 'Andale Mono',\n value: 'andale mono'\n}, {\n name: 'Arial',\n value: 'arial, helvetica, sans-serif'\n}, {\n name: 'arialBlack',\n value: 'arial black, avant garde'\n}, {\n name: 'Comic Sans Ms',\n value: 'comic sans ms'\n}, {\n name: 'Impact',\n value: 'impact, chicago'\n}, {\n name: 'Times New Roman',\n value: 'times new roman'\n}, {\n name: 'Sans-Serif',\n value: 'sans-serif'\n}, {\n name: 'serif',\n value: 'serif'\n}];\n\n// 边框样式\nconst borderDasharrayList = [{\n name: 'Solid',\n value: 'none'\n}, {\n name: 'Dotted1',\n value: '5,5'\n}, {\n name: 'Dotted2',\n value: '10,10'\n}, {\n name: 'Dotted3',\n value: '20,10,5,5,5,10'\n}, {\n name: 'Dotted4',\n value: '5, 5, 1, 5'\n}, {\n name: 'Dotted5',\n value: '15, 10, 5, 10, 15'\n}, {\n name: 'Dotted6',\n value: '1, 5'\n}, {\n name: 'Dotted7',\n value: '6, 4'\n}];\n\n// 连线风格\nconst lineStyleList = [{\n name: 'Straight',\n value: 'straight'\n}, {\n name: 'Curve',\n value: 'curve'\n}, {\n name: 'Direct',\n value: 'direct'\n}];\n\n// 曲线风格中,根节点样式是否和其他节点保持一致\nconst rootLineKeepSameInCurveList = [{\n name: 'Bracket',\n value: false\n}, {\n name: 'Brace',\n value: true\n}];\n\n// 图片重复方式\nconst backgroundRepeatList = [{\n name: 'No repeat',\n value: 'no-repeat'\n}, {\n name: 'Repeat',\n value: 'repeat'\n}, {\n name: 'Repeat-x',\n value: 'repeat-x'\n}, {\n name: 'Repeat-y',\n value: 'repeat-y'\n}];\n\n// 背景图片定位\nconst backgroundPositionList = [{\n name: 'Default',\n value: '0% 0%'\n}, {\n name: 'Left top',\n value: 'left top'\n}, {\n name: 'Left center',\n value: 'left center'\n}, {\n name: 'Left bottom',\n value: 'left bottom'\n}, {\n name: 'Right top',\n value: 'right top'\n}, {\n name: 'Right center',\n value: 'right center'\n}, {\n name: 'Right bottom',\n value: 'right bottom'\n}, {\n name: 'Center top',\n value: 'center top'\n}, {\n name: 'Center center',\n value: 'center center'\n}, {\n name: 'Center bottom',\n value: 'center bottom'\n}];\nconst isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0;\nconst ctrl = isMac ? '⌘' : 'Ctrl';\nconst enter = isMac ? 'Return' : 'Enter';\nconst macFn = isMac ? 'fn + ' : '';\n\n// 背景图片大小\nconst backgroundSizeList = [{\n name: 'Auto',\n value: 'auto'\n}, {\n name: 'Cover',\n value: 'cover'\n}, {\n name: 'Contain',\n value: 'contain'\n}];\n\n// 快捷键列表\nconst shortcutKeyList = [{\n type: 'Node operation',\n list: [{\n icon: 'icontianjiazijiedian',\n name: 'Inert child node',\n value: 'Tab | Insert'\n }, {\n icon: 'iconjiedian',\n name: 'Insert sibling node',\n value: enter\n }, {\n icon: 'icondodeparent',\n name: 'Insert parent node',\n value: 'Shift + Tab'\n }, {\n icon: 'iconshangyi',\n name: 'Move up node',\n value: `${ctrl} + ↑`\n }, {\n icon: 'iconxiayi',\n name: 'Move down node',\n value: `${ctrl} + ↓`\n }, {\n icon: 'icongaikuozonglan',\n name: 'Insert summary',\n value: `${ctrl} + G`\n }, {\n icon: 'iconzhankai',\n name: 'Expand/UnExpand node',\n value: '/'\n }, {\n icon: 'iconshanchu',\n name: 'Delete node',\n value: 'Delete | Backspace'\n }, {\n icon: 'iconshanchu',\n name: 'Delete current node',\n value: 'Shift + Backspace'\n }, {\n icon: 'iconfuzhi',\n name: 'Copy node',\n value: `${ctrl} + C`\n }, {\n icon: 'iconjianqie',\n name: 'Cut node',\n value: `${ctrl} + X`\n }, {\n icon: 'iconniantie',\n name: 'Paste node',\n value: `${ctrl} + V`\n }, {\n icon: 'iconbianji',\n name: 'Edit node',\n value: macFn + 'F2'\n }, {\n icon: 'iconhuanhang',\n name: 'Text Wrap',\n value: `Shift + ${enter}`\n }, {\n icon: 'iconhoutui-shi',\n name: 'Undo',\n value: `${ctrl} + Z`\n }, {\n icon: 'iconqianjin1',\n name: 'Redo',\n value: `${ctrl} + Y`\n }, {\n icon: 'iconquanxuan',\n name: 'Select All',\n value: `${ctrl} + A`\n }, {\n icon: 'iconquanxuan',\n name: 'Multiple choice',\n value: `Right click / ${ctrl} + Left click`\n }, {\n icon: 'iconzhengli',\n name: 'Arrange layout',\n value: `${ctrl} + L`\n }, {\n icon: 'iconsousuo',\n name: 'Search and Replace',\n value: `${ctrl} + F`\n }]\n}, {\n type: 'Canvas operation',\n list: [{\n icon: 'iconfangda',\n name: 'Zoom in',\n value: `${ctrl} + +`\n }, {\n icon: 'iconsuoxiao',\n name: 'Zoom out',\n value: `${ctrl} + -`\n }, {\n icon: 'iconfangda',\n name: 'Zoom in/Zoom out',\n value: `${ctrl} + Mouse wheel`\n }, {\n icon: 'icondingwei',\n name: 'Back root node',\n value: `${ctrl} + ${enter}`\n }, {\n icon: 'iconquanping1',\n name: 'fit canvas',\n value: `${ctrl} + i`\n }]\n}, {\n type: 'Outline Operation',\n list: [{\n icon: 'iconhuanhang',\n name: 'Text Wrap',\n value: `Shift + ${enter}`\n }, {\n icon: 'iconshanchu',\n name: 'Delete current node',\n value: 'Delete'\n }, {\n icon: 'icontianjiazijiedian',\n name: 'Inert child node',\n value: 'Tab'\n }, {\n icon: 'iconjiedian',\n name: 'Insert sibling node',\n value: enter\n }, {\n icon: 'icondodeparent',\n name: 'Move up one level',\n value: 'Shift + Tab'\n }]\n}];\n\n// 形状列表\nconst shapeList = [{\n name: 'Rectangle',\n value: 'rectangle'\n}, {\n name: 'Diamond',\n value: 'diamond'\n}, {\n name: 'Parallelogram',\n value: 'parallelogram'\n}, {\n name: 'Rounded rectangle',\n value: 'roundedRectangle'\n}, {\n name: 'Octagonal rectangle',\n value: 'octagonalRectangle'\n}, {\n name: 'Outer triangular rectangle',\n value: 'outerTriangularRectangle'\n}, {\n name: 'Inner triangular rectangle',\n value: 'innerTriangularRectangle'\n}, {\n name: 'Ellipse',\n value: 'ellipse'\n}, {\n name: 'Circle',\n value: 'circle'\n}];\n\n// 侧边栏列表\nconst sidebarTriggerList = [\n// {\n// name: 'History',\n// value: 'kmindHistory',\n// icon: 'iconzhuti'\n// },\n{\n name: 'Node style',\n value: 'nodeStyle',\n icon: 'iconzhuti'\n},\n// {\n// name: 'Base style',\n// value: 'baseStyle',\n// icon: 'iconyangshi'\n// },\n{\n name: 'Map style',\n value: 'baseStyle',\n icon: 'iconyangshi'\n}, {\n name: 'Theme',\n value: 'theme',\n icon: 'iconjingzi'\n}, {\n name: 'Structure',\n value: 'structure',\n icon: 'iconjiegou'\n}, {\n name: 'Outline',\n value: 'outline',\n icon: 'iconfuhao-dagangshu'\n},\n// {\n// name: 'Setting',\n// value: 'setting',\n// icon: 'iconshezhi'\n// },\n{\n name: 'ShortcutKey',\n value: 'shortcutKey',\n icon: 'iconjianpan'\n}];\n\n// 下载类型列表\nconst downTypeList = [{\n name: 'Document sub-mind map',\n type: 'subKMind',\n icon: 'iconwenjian',\n desc: 'Insert as a SiYuan document sub-mind map'\n}, {\n name: 'Dedicated file',\n // type: 'smm',\n type: 'kmind',\n icon: 'iconwenjian',\n desc: 'KMind private format, can be used for re import.'\n}, {\n name: 'JSON',\n type: 'json',\n icon: 'iconjson',\n desc: 'Popular data exchange format that can be used for re importing'\n}, {\n name: 'Image',\n type: 'png',\n icon: 'iconPNG',\n desc: 'Common image formats, suitable for viewing and sharing'\n}, {\n name: 'SVG',\n type: 'svg',\n icon: 'iconSVG',\n desc: 'Scalable Vector Graphics'\n}, {\n name: 'PDF',\n type: 'pdf',\n icon: 'iconpdf',\n desc: 'Suitable for viewing, browsing, and printing'\n}, {\n name: 'Markdown',\n type: 'md',\n icon: 'iconmarkdown',\n desc: 'MD text format, easy for other software to open'\n}, {\n name: 'XMind',\n type: 'xmind',\n icon: 'iconxmind',\n desc: 'XMind software file'\n}, {\n name: 'Txt',\n type: 'txt',\n icon: 'iconTXT',\n desc: 'Plain text file'\n}, {\n name: 'FreeMind',\n type: 'mm',\n icon: 'iconfreemind',\n desc: 'FreeMind software format'\n}, {\n name: 'Excel',\n type: 'xlsx',\n icon: 'iconfile-excel',\n desc: 'Table text format, editable with Excel software'\n}];\n\n// 编号类型列表\nconst numberTypeList = [{\n name: 'None',\n value: ''\n}, {\n name: '1, 2, 3',\n value: 1\n}, {\n name: '1., 2., 3.',\n value: 2\n}, {\n name: '(1), (2), (3)',\n value: 3\n}, {\n name: 'a., b., c.',\n value: 4\n}, {\n name: 'A., B., C.',\n value: 5\n}, {\n name: 'i., ii., iii.',\n value: 6\n}, {\n name: 'I., II., III.',\n value: 7\n}, {\n name: '一、, 二、, 三、',\n value: 8\n}];\n\n// 编号层级列表\nconst numberLevelList = [{\n name: '1 level',\n value: 1\n}, {\n name: '2 level',\n value: 2\n}, {\n name: '3 level',\n value: 3\n}, {\n name: 'All level',\n value: 0\n}];\n\n// 背景渐变方向\nconst linearGradientDirList = [{\n name: 'Left to right',\n value: '1',\n start: [0, 0],\n end: [1, 0]\n}, {\n name: 'Right to left',\n value: '2',\n start: [1, 0],\n end: [0, 0]\n}, {\n name: 'Top to bottom',\n value: '3',\n start: [0, 0],\n end: [0, 1]\n}, {\n name: 'Bottom to top',\n value: '4',\n start: [0, 1],\n end: [0, 0]\n}, {\n name: 'Left top to right bottom',\n value: '5',\n start: [0, 0],\n end: [1, 1]\n}, {\n name: 'Left bottom to right top',\n value: '6',\n start: [0, 1],\n end: [1, 0]\n}, {\n name: 'Right top to left bottom',\n value: '7',\n start: [1, 0],\n end: [0, 1]\n}, {\n name: 'Right bottom to left top',\n value: '8',\n start: [1, 1],\n end: [0, 0]\n}];\n\n// 文本对齐方式\nconst alignList = [{\n name: 'Align left',\n value: 'left'\n}, {\n name: 'Align center',\n value: 'center'\n}, {\n name: 'Align right',\n value: 'right'\n}];\n\n//# sourceURL=webpack:///./src/config/en.js?");
/***/ }),
/***/ "./src/config/icon.js":
/*!****************************!*\
!*** ./src/config/icon.js ***!
\****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nconst iconList=['data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAHjUExURUxpcf///////////v///////////////////////f/////98//////////////////////////////////////////////////////poP/haf/////////////1yf/65f/mgv/////lif/87v/xrv/////////ha//10//////////////xt//srf/53v/uv//////////////////9+P/89P/nkv/9+P/sn//////ia//bff/TVP/hef/YY//////2zf/64//lc//1wf/RXf/mk//////87f/wjv/////kef/rjP/FOf/qhf/wm//31//IRf///P/////53f/xjP/VVf/xjP/98P/////iZv/gaP/aXf/STf/ZWv/UUP/dY//YWf/bXv/PR//eZP/NQ//VU//ORf/CLP/WVP/HN//dYv/aXP/IOf/cYP/XVv/VUv/JO//cYf/DL//ha//EMf/fZ//FM//MQP/LP//XV//RS//jbv/hav+/Jv/KPf/ibP/AKf/UUf/RSv/fZv/GNf+9Iv/mdf/kcf/QSf/TTv/pev/nd//qff/XWP/oeP/eZv/lc//sgf/QSP/wiP/rf//tg//lcv/YWv/LPv/RTP/MQv/vhf/KPv/GNv/xiv/hZP/bWXLIdi8AAABYdFJOUwBTx+bw/gL79t7pzQ82ghziYq9bCUMGfCPB8WiLcb/ExCvVy8jTltzAvjFMwsHCvxY7qMP008LYzM34zPLf5qLO3c3I18ye5vG2693v7NvU4PqR1fz6+bAfoaxJAAAKpUlEQVR42u2ciVsTyRLACQkk4U4EOYIBEsAgN4gIAuqirq7uuuf7GhEF5PBCDkUu5RBWEBC5PEGff+orOozVnZ6z5YXve29/X31Wdc/UdCXTVQ3NjDH/8H9CUrXP5/GUJh1+JMnFdhImruhS9aGGcqSIcMTa4g8rlKwSItBQcDixeFxEBafvMGI5RjTIjX4sKUSTlGjHYiM6eKIbS6qD6ODKimowJUSX2qjWF8KSEKyoCCYQliPRiyXdThB3659fgD9b3QSxpx9KJuX968s+l/MOI6NSXUwsW1tftr6AbAFBZg6nRimYGuYeXd5iuMzc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','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAHIUExURUxpcf/////////28//+/v/////////+/v/////////////////////////////////////y6//6+P////9zYv+Off/MsP////+ue/+9nf////+2iP/Zwf/////h3P////////////////////+sef+1qP+Eb/+ZiP/q5f+idf+icv////9SQP9LO//AuP9nVf+lkf+Tav+Xaf+rfv////9kSv////////////////////+teP93U/9VQP+BWv9KOf/d1f////9+V//Lxf95WP9oT/9rTP////9fRv/////m2P/Py//Uzv/NxP+lc/////9vTv9fRv9sTf9aQ/9XQf9eRf9yUP92Uv9VQP90Uf9nSv94U/+IXv9cRP9kSf9hR/+dbf+GXP+DW/+fb/+KX/+NYv+jcf96VP9rTP+LYP9PPP9jSP9iR/9pS/9UP/9SPv+Zav98Vf9uTv+SZf+aa/9wT/+QZP9oSv+AWP99Vv9NO/+mdP9YQv93Uv+TZv9/V/+UZ/+WaP9qTP+CWv+BWf+Xaf+PY/9LOv+rd/95U/9QPf91Uf+pdv9mSf9IOP9KOf+lc/+odf+gb/9dRP+VaP+ndf+hcP9HN4T4UUwAAABPdFJOUwAJl+/8t+b3/kjAGqLxhi0D5PXSxMDB3t2/OMjFedzJjk8NYOvEwsDh1OJZ3uXLycDS8s0S4SLXJa4R+Orw5PjWcfTQ1tj0Z/ds0dPSzfX63bq2AAAJg0lEQVR42u3bh1sUyRIA8F42zOa8LEjOIFFABMQDz3S5JCkGzBEQI8/w9M7TU0596pn/3Ve2MtW9PTtJwvu+x8/66Jqaqd12pmeB3Q+2adOmTZv+Vw3WVUXDmXzMpwV2hP3RqlCE2RQJVUX9NTsCmi+Wz4SjVXWD7FtEGqIBUAT88QSzkIj7jTqjDRHmiqc9HIRi8vEtrKgt8TwUEwy3e5yflJIYmMtX1TMD9VV5MBcriTicig+sxeIRpTEeA2s+B9PxxDWwR5MfNVJiuzFu82Jt2QH2xRqosSEG9u3Ywqwla4PgSHiAcQNhcCRYm7RcLWFwStvN0G4NnApHLC5RAFyIejxRcCFgeqlCGihSlaUVZWWN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','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAJ8UExURUxpcf/////////////+/v////////////////////////+Off/////////////////////g2//59//////////////19P/////////////7+/////////////+ufP/Cn/+1qP/////////Nsv////////////+2if9vYf+Yif////////////////////////+tef+ref/YwP/Zy/+AWf9LO//i1v9nVf+Db/9uUf////+0mv////////////94aP+ijf+tfv/28v+icv////9VQP9RP//Nx//y6v9KOf9lSv/////17v+odf////////////+8tf9+V/9VQ/+AX//r5v/u6/+Sav9rTP/p5P+VaP+Zbf+uef/EvP/Bu/9TPv+Ob/91Uf+aa/+pf//Ep/////9rTP9nSv9kSf9pS/90Uf94U/9VQP9cRP92Uv9XQf+XaP9gRv9ZQv9wT/9fRv+FXP9eRf+TZv+CWv9UP/9sTf9SPv9QPf+dbf9yUP+Zav96VP9hR/9mSf+fb/9NO/+mc/+UZ/9uTv9aQ/93Uv+QZP9bQ/9xT/+NYv9vTv+kcv+AWP98Vf+EW/+icf9PPP+HXv9zUP9jSP9LOv+KYP+IXv+pdv9iR/9dRf9JOP+aa/99Vv+PY/+MYf+odf9YQf+hcP+RZf+seP9iSP+LYP9+V/9/V/+DWv+JX/+OYv9HN/+cbP9dRP+BWf+ebv+dbv9yT/98Vv+slv+Xd//p4v/Kuf/39P/BsP/8+/+znf/w7P/Ux//az//+/v+ghP+UgP+5pf+jjf/h2P+wjP96Yv+HZ/+Kc/+Tdv+ZcP+FcP9vVf+Pa/+Caf+Wef9zXfJWj4cAAABldFJOUwDlChn8t0n3/vIBwL0hB+qV2/Nfopvw14jD+c4tyNq/xEQpwY7TEMjDwFY1BOFPruzixM3l5dLJwdt4wBKC3cLA0ezjpfDg0OL44mnl9zx7ccr02dDh6M/04PDX+MrM+MXx9cjeYa53QQAAC4FJREFUeNrt24lbFFcSAPDHMMPMMNyXMJwKwyWgYBAkiuKFVzxiNB65s6Wg4C2reES8omuiMR7gATmMGzSJhphoAPHWaO7d/Ye2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','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAIZUExURUxpcf/+/v/ipP/YmP/mrf/////Tj//////U1P/////////////////////cnv/////////////////////////V1f/////qtP/////////////////////////Nh/////////////51bP/49/9kS//////////////28/+Tef/Kxf+/tv////////////////+di/1LR//c1//9/P/////////v6v/g3/5aSP1qXv+Uh/94U/+MbP/////ggP+6qf+kJ//Txv9rT//////27v1fVf1/fv/p5P9mSf/Wz//Kvv9/W/+pkf/////Umf/vwv+ln/1VT//jj/91Sf1QSf/gg/+lK//z0P+pNv2npP+0Tv/hgv+7Xv/n5f+tn/////xHR/9rSP94Sf5cSP5mSP1PR/5ZSP5kSP9tSP5oSP92Sf9qSP5eSP1NR/9xSf1SSP5iSP90Sf9wSP5bSP9uSf93Sf5YSP5gSP1UR/xMR/1WSP9zSf5fSPxJR/1XSP96Sf1VSPxKR/1LSP1TR/1QSPxLR//AUfxRR/+6SP/FWP/JXv+zPv++Tv+nLP/Wcv/DVf/Rav9ySf+tNf/OZv1JSP+vN/+xO//aeP+1QP/dff/HW/1ISP/LYf+8S/1gSP/cev/Ub//Ydf1kSP/fgP+lKf/Tbf+jJv+oLv+3Q/+4Rf+rMv1iSP1jSP+qMP/QaP97Sf/MY/1mSP97Sk/w00wAAABfdFJOUwD1wMDA+sD91mqNzwELwRIv6yNWxtZywRirBrm0e8DY5P7C9OJkRcDvwM7IOpyj3b/y2PxMgufe9Mm/08Jf8cTxz9ko6tC/4u3Ty8XAlMTEwtjM7urf38vPw8P4wNXCnQZGzwAACNZJREFUeNrtnIlTU1cUh5NISiFAgNDUQCgQlrBvgqyK4L61WrduM9eKlKogUWgRFZHNsNgKQlsXiK1VUUSQ/oU997683AtvxzSX6fC9l5cZZ8Qv55x732+G+ExbbPE/xb6r1FtmzrS5qxNNuohLjY//b1TyvNEoRGa12r+yPS/muCsl04oAkHelV9nDqpKYhtaSFBNnkiE+Lz0tCUmI9jq3h80l14okpK3/uKl5sbZopIS1JDksKnGxSI4M9qcnO9PMSJ3o2FSTEqnJjtIUl9ft1DQGF1kyxdLvTbchPWQkygxYcW6suyxU+SxvnqrLLqRESiquSXUG0os5j52v4pjjXpkBc9tVZlel/LH2mBRkBKtDnHNXWRZSoEy5V261MbAig5gTk3NLYM5VsSltHMUovKjo01JVK8iwG8w+y5lvd395DulkR352FjJAJq2ffGnszCf5YvffhC+zkToHi+o9+3Nqf+hu7ajNqasv3IF0wSzJKlkZB+NCTIiNcs+zC+v31968c+cHoLu7tbW14/btQM6xbF0rP4WuDFmZUiSSD3UR+VS+55/U7787fOPGzZuCDbhgmUBvINBSo2e46ScvlZXxIhHL35TdZulPKvKc9nf5weUuqABBm45AoLe311dbiVTJryw61ng0IzPJHG01JyWVycrQDe3MY4Zz603qKtraRvxdw1iG2ITa1AGFCfje5ih0KuvgkWONDad+unDhwsAA3TNkZWgJdrMyX7CLptBT0dnZ2TYyErSBLq1tU2/A5/OVS6vRjDVuXbt27fJPRGZFQ4aO6mMWOjQ1B04PjXb2dba1tfkFmbuiDC5NB24THG/bc9bMeXP50Zzr169fnZ4mMpdBBmx0yzwDh2fPnj0mZ1Am++uT/bODo0N9wcp0dflv3A0ODa0MlMbnW2oXZ3hnU2NLz48/9vSAy1VwuYVdcGkG/tEvw0JkKj0VT2f7BweHRvtIaUb8/uFhdjV1gwtuE54ZX/sR3NLmgpZLV74HQAZspqEyuDRCmwY2LlP59Pz581AY7NLZB23ClZEZ4NswMiCzVIQONx66dOnSlSvERawMaZNRmT9YsMwn54kNyAz1gQ4UZgSvbVEGaCWlwSMDOu0FLRdXL14UZcBGMjMrG5f5GFSeQmVgZjqxjLiY6Mx0h2YGCtMOgAsgyvQQF0GGzMzAB8lAafr7cWHENvlxZcjMsG3qJTPzHFwurhIXQGgTmWDAeJv+WicjzMzsKFlNbWSAu8AFt+nnO+y9CQ8NlnkOlcFtEgsDNsTF+Mz8xRJqE1QGT3BfcNMbFvcZ2qYOcAGbpSXcpfU20+zMDKxsTCaKDDAwS5YTDI0wM6QyRIZWBsvgNrWTytDlhNvEVmbAcGV+hQOuUcGZgcoMDtLVBAOM1zYpjHg/CASC9wNaGewiyAj7zGXDO/CvLFGhmemfFfc8sMG7HszMujxDVpNv6TnYrDKFYWfmMnH5EJngPjNIVlPwdjAsn2dIm2hlmDaxO/DKh8gIO3Do3uRXzjNQGDIyq3SfoTuwcG8y2KY/4SQX2qanMMFDo7hPbep5RhxgsgNfCe0z0xu8HfzJQlYT2fPoXVsjzwhLm1SGFCZow8qsbFyGtAnftfXlGbwDrxIZetPecJ55CQ4v4UJOOsD684x0aW88z7xkEStjJM88pzdKzTxjXMZgniGVCVOeeTmFjyl4AVHG8wwMTfjyzBRLFMc8I5XhnGeWp5aBqSl4LYMM3zyzzBLFN8+AzAzxIO+888zMzMzyjAjvPDPDwjHPSGUsnPPMzPsZOKkM1zzznsXCOc+Awtzce3zAaeGcZ+ZYLBzzjFSGc56ZmJuYmJuDK363cM4zIAEILhMWznlmgsXCMc9IZTjnmSfg8OTJBHkDGb55BjwAcgUZznnmCYuFb54BmXHiQd4tnPPM+Pg4eGDgauGcZ8ZZLPzyjFQmgXOeGX8wDieV4ZpnHow/gBMfQALnPPOAJYFjnpHKcMwzUhnOeeYeSwLHPCOV0cwz8Nt1TzlQX3fIYJ4xLqOaZ056TlTuQCFqPG+N5BnjMop5prbuxE60nsMtYc4z98Hh/v175A1kZPPMaU+hGcmxLye8eeY+S4JMnqnwFO1AShTqzzPGZSR5Zv/X2UiNFpU8c+poQVPzwXwz7a/ZiMy2tXmm4kAN0qBePs/caigoOogkZGjJzIPE/Lzwto3NMydPZCNNiqR55mpDebPC33RpyMyzEBlhZdcVIj0cXptnehoKjqh8BIdhGZiYCg/0R58Mczs41Ni0D6mRFK8lMzY2PwYeY1Sm4sBOpIjZVlLtPE6Xk5hnGsors5AGu0waMmMsWKbmQL7iJ3PF7I0zAU4k0oQH+NDRpnykjctkUEYZW3VinPSbmAVLOQU6vwnmSg2TjM2ZLP+VrSOVSB9m+HKvpswbcHjzBl7KMkmxiaa1lCADWOG0kS8Oa8tgQIcgI5PlrpKW14l0kemudiTa4+zbaVE0ZSjbpEVJ3tiXMaNtsQ6mGHplXuPjtXBdJ5ORqzBzcTYNkSqyoxiWeU1ZJ+OtUq6uAylRVuKwm4CwyriLTSrEuWRH1evca6IYl3nE8hESSTepk5oimdYSB+1NeGViTBrEl7BLLiWd7IicZICqtGihOe5csm7CIDM5Ofno0SQGrkZkgO0OZ3VuMW5OuGQoxmQoWzL/vczvk7/DiQ+Au4zIlsxmlvmNZUtGTubhJpB5CIAIXMGHvwxlS2bzyiwCDxeFt884yyyy8JZ5t7j4Dl5w3QwyLNxlFhbeLbyD62aQWWDZkmFkfsEs4Bcc/GUoWzKbV+bFLy8A4cpHxoxE9rxgoDfKXRGUyUAiZ1kZ+r8F8yIo40Ui3714hSHXPbRgiRGUKUUi+/a8CkFHJtoeQRkHCvF5yOUrOtYppghitzI2wdp8k0//LN0USdIQZec3Z1/t+SoBUbL2RlSmWOP3H5HFjZSxJkfOQ/u5EJEU0X5iRuTQfpZI5NB+ygoHFJ8/wwHFJ/NwQ/rMIr7Yc/HTnJLI05wiw7+dwli9rKsRLgAAAABJRU5ErkJggg==','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAHIUExURUxpcf/////////////////////////////////////39P/////9/f/////r4f/////////////////////////j2/////////////////////////++m//17v////////+ufP96UP////////////+Fff9UTv99Tf9uZ//5+P+Da/95Vv+ubf/////////w5/////////+NTf/8+/////+kdv+gmf+JUP/x7f/p5/////////+urP/Kxv9ZUf/U0//h0f+VTf99Xf+Ujv+RXP+8tv+JVf+yh/9nVf+qo/+TYf+HTf9RS/9dWv+aTf/Yxf9lTP/TvP+iT/////////9STP+fTf9eTP/Evf+qXP+1cP////+BTf99Tf96Tf9jTP+HTf9bTP9dTP9vTP9xTP9gTP+FTf+CTf94TP9pTP91Tf9ZTP9/Tf9zTP9sTP9mTP9UTP+ETf97TP92TP93TP9YTP9SS/+KTf9uTP+DTf9nTP9rTP+QTf9+Tf9WTP+MTf9PS/9fTP9iTP9XTP+ITf+YTf9oTP9NS/9yTP+VTf+TTf+STf9+TP9QTP+NTf+bTf+cTf+PTf+UTf+gTf+hTf+eTf9oTf+DTFctR9QAAABbdFJOUwA40MPtHhj78ffwUf1j3j4m5YBDAtoSm8pKWXTB6i/cwOSKBWrA5PHG9sTVxNYB5Aq58vqrwcDi6eOSscTO29XU+My/zcfWv9XCyfn3zvvN78ntoqfw/ffKzsK5XEUEAAAJtklEQVR42u2c+V/TShDApbS0pZS2QKW0XOU+XjnkvkEORUHf8+m7FgVUUBAFRU4FERAQRFAE/t03pIbZ7aZJk5bwi9/PfNzJZGd3HLubzSbxyi9+oTv5cb685vRmu+PqZUeSZqu2kp+YW2z5lxlKQQ5hcNkrLisWUzzh8DgvJxabkUhgTL2MWDLMRBKzV/9YHFYSBrND71gSjCQsRpPOwdwnMrToG0sqkSVD1wkmQCjcmf/9l+mmLYE0HYPxEiT53x8C/2YRRMcRVWHAbjvv/fjJvU60GvSbiW3Ya1YwlqMfR0c/7iWi3aZbMFRifjs+Pjo+OgOK36jUXEJikv86pvgrWf/UeOjE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','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAHXUExURUxpcf///////////////////////////v////////////////////////////////H882zZhP///////////////////////7ruxPb99////////////////+/87+f66IThk/z//P///////////+v77dv23/r++v///////////////////3Xeh4/jn/n9+XbbjmXXf////////////////////13VeMX1w9P02GLWe9T5z////////////2TZeaLosYLre4Tqfnbhf+P74YPrev///////////////////6/rvfP89Xbje4bphMvzzlvUeKnzn5rrnI7rjP///////2HXeKDylNr52JjyiZ/pqLT1qWbaeJDyfWjbef///3TjeXTjearpuIXserDtt8vx1KzvrY7ye////3Piet/35L31trfxt3HgfHrmev///27fePn++f///1zUeFrTeF/WeF7VeF3VeGbbeGPYeGTZeHbkeWHXeHPieWDXeG3eeXTjeWrceFrTd2vdeW7feX/peojuelnSd3nleV3Vd4HqemjbeIPrenrmeYXsenDgeXLheYDpenvmeX7oeo7xe3zneYfteorveonueozweovweozwe4vwe0b7susAAABydFJOUwAUdd7vMfr9/cwECQIq/tfqzQ4lBvVWtMbxT8ca5OXew/qRhcHj1vdm6LyWH8rA9cXU6zfSq0XxxdHeyqWLSOjA6dvV1/NsnmJ62sPt5NDK6r/AxzuC9cPQyr+/+OHvPPrywvrBzr/2PevawcHe+H326XTB9nsAAAi4SURBVHja7Zr3V1NLFIUDSAlNEZCqIiBWEBQLYkVRmg0Uxd57eWtyk6D0oNyAIGAwqPjHvjMtd2YoaWZY7627E39Al1kf+5yZfe4Bhy1btmzZsmXLli1b/1eVt12s3tjhPPzhUPY6k2RvKUMhpSRnrSfLkY1I0tYt64ZSUImWaV/B+rAkVaMVtHddSpW6FVGpNOvgzZZCtIpOaj9FVWhV5ZbqZdlchNbQwSSdLPnKiS651bxT/LpSI8upDRLK9r5fCwsLfeetv0nbr40lOUNiOfZiAcMsvGjWb03WCQkl/drS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','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAABmUExURUxpcfJkZP/////4+P////JmZvJkZP/5+f////////////////FWVv/+/v////NnZ/////////////////////vHx/vFxfzf3/////////JZWf////////aRkf////aQkP////FWVqlNL4sAAAAgdFJOUwDN2PUUzc721BZl/vX3A8vBsCvijs3M3FBA4O0ev4u/WuzFeQAAA3FJREFUeNrt3FtvozAQhuG2gYYAIZzahpwK//9Pbq8yOIN2on09irbKXCYd66kDRkj+/PKsZ/2yqoa+7rbHrMlP8Qc/5U123Hb1ZajuoeTdeK2mjUtpGxm7y01O+zbOq+iriFPeF8Hgb8a/ut+ON1UnsSxJfTv2dv+3v8+LUVW2iWPZZHrsIrcstoZbRGNZbA23iMa2aA23WBptsTXcYmv2YjE00KI16p5qg3v6a1ceztslDbdsz4dy9xV80t6sR8Fa91lOP/W+0hpuWb1PP1V+BqtfFV4wymJoiEVr8mBiOmUxNMSiNd18agZlMTTMojXDrOWiLIaGWbSmn/XUch+JZVnDLaKRe6qeNckls5smQ4MtUju5aGZdsqSUk6XBFqlSlppZ2/H66WEyNdQidbh+e5z1Sdt5sjXQInWWQWeNjcxXeq+GW1K5OprlBXj9ep+GW17Xy0vwaSQabhmDl6KGaLilCbrbAmiwpWjD/n4EGmKRh4FUVQMNtNSVesXKgAZZsmRhEKABFmMYoIEWruGWf9eoobDFQ6PbgYVruIVrHCxAAywOGmBx0ACLgwZY4muAJb6GWriGWvw13MI13MI1wOKq4RauARZXDbdwDbA4aIDFQeNskUru06zvfj/y1wAL0qRLmiVLCixIgy1cwy3+Gm7hGm7hGm7hGmrx13AL13AL1wCLq4ZbOAY8qP0s/PHILY/TbEwL/6X4vPC54fPCNf4WruEWruEWruGvK0Djb0lToIltWa+BJrZlHIEmugVoHCxA42ABGgcL0DhYuIZbgMbTwjXcYmtSoAEWoMEWf422vNsWoIltyTKgiW1JEqzhFhkYaKJbgMbBAjQOFqBxsCCNbVndZ0EaJwvXcAvWOFi4hlucNAmwxNZUNbAwTaG2U/bAgufmEva3BbAwjd6C2xAL1zRB7hNYoEZv286ZhWvy5a3+zGJr7K3+0viNLLbGDkHoeAi3aI0dD9HBGdvCNTo4Y0SKsEVrrEiRDltZFqixw1a9dHyUhiWapvxYfiAMo9IYFqLRlnFQ0UXRGBao0ZauUqFO0RgWptGWMVdx10BjWIhGW7LKDgJTi2jsILAdkeYW0dgRaTs8Lhaq4VF2sXAND/mLhWv48Qdi4Rp+MIRYuEZb/oPjOx5/sMnjj3wxOcPF/zCcfqhenvWs31V/AGNvge0RW7yuAAAAAElFTkSuQmCC','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAADPUExURUxpcf9eXv9dXf9cXP9cXP9mZv////////////////9sbP////92dv/g4P+Cgv////////+5uf/////////ExP////////9iYv/6+v/U1P+srP/////z8//////////r6/////////////////////////////////////+kpP9dXf/X1//Nzf////+Wlv/Dw/////////////////////////////////9cXP+Xl/+IiP9lZf9xcf+/v//29v/Q0P+Skv+urv/m5v/b2//u7uMCeNAAAAA3dFJOUwDl7f750uwD+sTL/sXbwRrUxngJymjn1/jTwoTt8UDm4DBytphuSCKrwPDVz1K/yqU8X93yOKyG2OuRAAAFUElEQVR42tWcaXcaOwyGM/uwZiAFEkhbdkjSpG3SxGLP9v9/0+3lQK2ZMxDDO4zJ8x3Oe8ayJEuyT/bHG/R73WEnEzRd33ebQaYz7Pb6A+8kZbzH8jDwRSx+MCw/pqao1e78ER/wp9NuHV7J764rFHG7vw+pZNB4EDvx0BgcyE7uM2IPMvfJ289ZpSn2pFk5S1ZKuyoAqu3k5HhlV4C45YQW61sgEiD4doJz+kts4rxQustnnZph2rZp1Jxs/q5UOBeb+HWKrlDvq4ilcJU3LIrBMvJXBRHL154HfZbY3XxZzxu0FSNfv4zd58DH6bsxa1PK2qSAnS3FrJjb33eJGjkR5aZ4TcpcF29ElFzDS2iJfmRpR7I/ElmqVlVE+OLQHjhfRIRqa2fnEt1FFzXak9pFdFft6HJu/cgGKlq0N1YxsrX82120VHJhq6ubBGHWI39YUddSFiG+OwTjfBchysrfRYT4aVICmD9FiIqiveQEww9bC2I5fmilbpX2ka+yRPhS+Qp7qhXa0wWDEsQohHZ460O/Ww05F5MSxQy5nOoHvtjLhHyuTQljh/xxZnucaghGyabEsUuC0diaM+R2+S74t8n1txiMy+3FpoNgc7txT5UMpmDSgTALKmbT4/7FIHWs6dQidQzub3obFol5GN8hZSazuRDz2YSUcXzmbeIXip9JiqTM+F0seR+TMkV+gokNAzw2WqTKdC5WzKfq68qjZkxY8AJmMCYps5A/W5AyJjObwNuWw+QcUmYqGFNSxsltyW3OmIupkzpjwRiTOnXmbKI1ijbLd01SZyQYI1LHZHlxO/JhqnwnpSGG76jq2aZM88JKR4x1sSEH9ViNrEbpiKEaq7TxDXXPYjWlJYZY/L5nYliEdNIT47B4yeq77GxP6YkhVhUYxOV32TTFZONyvgdZf6E0xdCNrKX/6wcwH5OqGO5r1n2GrqyRXacr5lpW2rorMTIslShdMVSSAWp1hmTmm7IYbsKtSIy8tNMWY19GomWH5Q4pi+GZRGcZl2SPL5++mLzsJP4fnx7FP4z0xRjy14+hfLNA6YuhQij7HIo1VzrEXIk1w79iAmkyuBjEaIK/9utLk8HFIEbjeyx9OLd0iLHOWRrRZ/aLi4EsuM9KDyUdYnh46rGQfadHzB0L3E9sM+FioO30xCJTVo+YrIxO7GDg6BHjyCMC83k1PWJqzOs1mc/DxUBer8lyTlOPGJNlnjIa2HrE2DIeHJWYo1qmozJgdGs/C8YzuLUxpxetdoJODw0H9C61vBMYDtBASWNeecUC5RBNIYhmYsWMCEwhgORqzWi+7ByMiAhMrpC0c83k+eXleUJLoLQTTMhxeEIOHlVw+FEFO8Th8EMceLzF4cdb8OCPww/+YEkEh5dEwGIRDi8WYWU0HF5GAwuMOLzACJReGaPF6+tCRgOo9Oq5UHiaLsSSxRQKTG4C5XqyXsWKV4ugcj3eyKAX+eMXghoZeItn4rNpjgnU4sGbX9EmO9784m1B6HQAtwWjDVPky0ANU7yVPJnLn84nQCsZaLLDuynaZAfGDzhvYsUbETB+gAxm8JErsWQ2IQIGM5CRFc549vY2k8YLjKxAwzxRgGEefMwpCjbmhA+AccABMHw0joONxuFDgxxsaBAfp+SA45T4oCkHHzTVP4J77MPJ+se29Q+0H/2ov/5LEPqvhxz7xRn9V4r0X7b6jNfQ9F/Q0391Uf+lTv3XXT/zRWD9V6T1Xx7Xf61e/4MD+p9iSPmRCviRCv3Pd+h/2ET/ky/6H8M53meC9D+gpP9pqU/+6Bb6HNkTf47sCXyO7D9QH8Q4CI6JZgAAAABJRU5ErkJggg==','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAADnUExURUxpcf/////oyv/PlP///v////+1Wf////+jNP+oP/////+jM/+lNv/////////8+P/Yp//////u2f/etf/////////////05v+jM/////+uTP////////////////////////////////////////+8av/37f+jNP+rRf/////cs//48P////+mOf/EfP/////s1P/iwP////////+sRv+sRv////////+jM//////////06P/Zqv+5Y//dtP/mxv/Kiv/arf+rRf/Ff/+wUf/Sm//w3v/Ac//s1P+lN/+oPf/Mjf/ivjrTDK0AAAA4dFJOUwDs1ML6xMMD7dIa/OTUqfvGeNzKhOBA5vfnyPFoCTBymG46Iki/7PDN3cruX9m/UtnPtPLMy7m4s4t7vQAABbVJREFUeNrdnHlT4koQwBMJJDHcC7uIyqHorrte69kdiKLIoe73/zyv6u3D9KQSnCNhqPf7lypopu+ew5DHPhz0e+X7fKlpWpbZLOXvy73+4NA21ox9UCuXLIzFKpVrB2uTqNO9usZPuL7qdozMOeiZyInZOzAy5LBxgkKcNA4zspPTPEqQP03ffvb3mihJc28/XVG6O6jATjc9ceyaiYqYtZSU9bWEKVD6aqizXcYkKpfV88Kte1Z0Wi2neObeFs6rlxVMorytqqH+LsZSz7WLHsTgFdu5Osay27eVliXWm49zBQdW4hRyx7F+rrA4AzNGN9W2Bxx47WqMxsyBrIoaPkbZKnwHbr4XtjCK37BTUtHvHyDIj9+pqKqzgxG+uCCB+wUj7HSEg8tuVEEuSOJGlbUrGHIuLGT4VQAFCr+QwbowBNjzkeLnHFDCyUW+cM/gpoYM31xQxv2GDDXudUGGnw6kgPMTGfY47cVn9HsEKXFkMZq64PIji0dF6qqyOHyqw/h0vQgpUqwzHt75NO7uMMHFgVRxtpjo90kstvNMzG1ByrSYeJxfnacaSKh6kDpeFQmNlTWDT9fFgwzw6Nr4gxUGY1J7aUEmtKjdmNtcBlN3ICOcOo/Z9Gl8KUJmFGm86ScoiUQYy4UMcS0SbeIVRXuSI8iUI9rBxKYBmhshY2jWjEkLdokYjAMZ4xCzKdmrahjfhcxx/RW1zT4JMTlYAzkSbKIzii6pdx1YAw6pi7uRhSHJugBroUDS935SpbkFa2IroQa1yYxM1HqD+Xj6NJqOJ8GzoA2TSRt1qFOSq0GA1/nDkHjhYhqAACR/nxohebmFmQwxymwutTR5Mt8lvb2AfhYYx4J/dchU4DCuvuOfM8wrGI815p5RxNV8JxKu9O5jIg/iDnXysR8gEWMmuIqReKxZ7jP0cEmFdy71UsGVTDhnW+HX9Iy/mGE/wOvSM1xNhTPmVMME9V8PiR+0eQ0GKdbj0+hx6Msoqo0fdCI58tjjXJghFWX6dxWCmcTSeMeRbHklXDuM6a8GHyI+ClsNrSSu/s1L18K+RKPdPMGq/4j607XNOrYDXDz7Cb85wpAhcOFQ56b1Zl0ixgRJH1jAR52pPsvCJvOQ9P8DJLzxGg3tWUrCjr1IsowXJLyKOnfJMGwLlxSBD+LYo0RhKsBHMVSsTcqHigd8EKd5T1TTEPjwKqSMGOCSS+Dj7TEkAMoTr2tTLnHJwOhzJCaZ7DkGEE1PfZKyz0GNtwUSXoCTc5K4y2r9EtUeEh4l+qeycYdLbtR0NENKALzc4JI70hi4oEAwRMqDTI+QJzHvDOSZW0gZvgE3ZyTqNUnMk2bis7IQ6xWIek1SczogyzvKywIOqTzD9W1J68hHykKs526F+SAFYZ4Z2/WnryAtjLqaRoyKiE8Lq0ndgF+oI82IisQNWN21p2qyUNdWD3ozJVnYoHePS27lzJfYbgAS3OKSe+VEGSTkAJlEqVxCTGgLRZEoIWhxpWi/PpuQJIorWnYqClMBKWjZSQtyHcLQgpxtVSR4Hy6ZgQy0VWGbOA3QJo5tbzVA21u28dcAafyjI5G1Q0ciUsMiSjAOCYAiPiySGaMldrQjJZO5Sh4wqgsjN2Cko9f0hJEcvdpkKL1mYehQOnFcry6M9LiebmSsVxi6kaGyxaMuDLvFo7T5pS4Mu/mluC2oLgzdFlTbMFUXhm6YKm4lqwtDt5JT2WSfPIRMUtlk13/8YEMPZug/srKhh3n0H3Pa0ANg+o/GbeihQf3HKTf+oKn+I7j6Dydv/rFt/Qfa9R/13/xLEPqvh+i/OLP5V4r0X7bSfw1t8y/o6b+6qP9S5+Zfd9V/EVj/FWn9l8fXe62e91q9/gcHMn6K4SZ8iuEm26cY9D9Sof/5Dv0Pm+h/8kX/Yzj6nwnS/4DS/+RpKf2Pbik/R3YXPkd2p/oc2T/p6OzocF/w9gAAAABJRU5ErkJggg==','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAFZUExURUxpcf/////AUP/////////////89P/FWP/////EVv/////////////////////////////////////////////////TWv/bev/gnv///////////////f/QUP/VYP/xy//9+v////////+9Pf/ghP/////////////////pqP/w0//////tvv/SUf/SVP/////APv/67f/Ug//////89v/////////JYv/ak//////DRf/////FVP/MeP/qsf/////BUv/56P/9+f/fq//78P/////RUP/Zav/AUP/44//ikP/puP/FXf/////FVv/z1v/Ocf/Zbf+0Vf/z2/+pPf/cnf+qQP/RUP/////AUP/acf+pPf/APf+/VP/FWv/XZ//mn//NUP/IUP/GUP/SZ//EUP/QUP/CUP+3Pf+xPf/ikf/Zb//UW/+tPf/Wa//fhv/PZP/JXv/dfHDacqUAAABXdFJOUwD9+bcR+fD2yvbmApoLBT54JReoLvbXwMKCUx38/8zQ+mmw/slY8dHEwtM3y+zfiu3qwtr0b5HFwOvYvs6/x6Hk5ffF7V/5xvHgv8bZR+zZx/HJ3vG94rcNazsAAAa6SURBVHja7dzpVxNJEADwDpPEbO47HCEhCYRgghLuW0FEFBDQdbvIJnLJA1RY3f//w7Ier3rCdLrTc/CF31ffM+V0dVV3T4/ELPfLoDbq9/h9xeCIm9wnd7TiAuRZmgmRexKKlqGdfyZM7sNLPxiZ6ieOCweBpy9AnBWvAJ/mdjZzp6ATX8jJMapAZ0UHR+oZiDx1bh6B2K5T9cUPjGwtkx7fHE9n8sAadWig+oCx+oT+lq4Bo+DMrE7hL66/oqxMlqnFjsyoAhNLmurlmGgcqcRL+HuvaLsM/uEzYr8Y/uO36V2YxuWk7aV31oPzCHMXpQEVY8RGgcICoDw18hqQZ9a+LpUcBVaGGnkDrAWb0jgQ9YBOjhrJgF7CjoczUIE2aWokB238EWK1qh/kgnkF7bIzVvdGD7RbS5+enZ9fHP5wcXFxfn52enIymFuDO56FbWhHKLuao/Tk/PCu87Pc2Dq00SzsDU9Bb33sV4k5uTg08vaNF/R8lqVxEPRqTLU7NQ5nq9cFOqMhW8aoru9Ig6eHhpb3QEezJG9GQGdsnKJOY9Wz4gVWkJhXTQFjw6jSDZ4dGnr+GFhR87XOD4zXmC1SD2cbkPkVTmgUGPlxyoGzXG8eGKmquX5UBMbqJuUa5ESzkgXkNzXBZ4DRS5F84swNAUoQdbEUoFUqwIlm35q0CVQAPd6kIqfivFlwq+8D0BrmbtfPZhvQLFHjZtaY3idUhnEWbzH1Jhsz3x5zVMrghXH1Y2qxplbuPEwPoAKC6rcCqGqyV2+MU1knh4aYgdJMbqmxT6sm8Q5T+5KmFg55io4aR4K0OTT0wUzlC5VxXcfMpH+Oj48/q1SbrTpu7dwmTqd6dbHc+ldlfk/iXzijftYwhA/m5viHzyo5vIU9arTbeW04rT9jMN0/mhfKKRw12qsdHf/UUOpRy8prPmyRe/qMwQfDNyiqNZXu2pLL6Kzh+KcjxVqDZdgVV9sRZLH4fmUejFIKY+EbUWoFbMH7cowTW8C4Q+XVFhKjRqP0BUdJ5ExQanxEXih7Zy7hMFHU5XzawSIcJtKq2AoGKWrgg1FKmp4hlUpT4Bwifm00vlJkYnL3q6zx3lAOtSKsUvYSghNN8xkcJNJ8grWvagbvqyz3cLP/xNJgllXmNi6sxi0N5jm+/SbSsMxsUjUngmD8RFYYF1bU0mC28HREvmfjRtLaYHqwBD8E8xDMQzAPwTwE8xDMQzAPwdgZTBzPXO0KxqVwbLVmSTAI17MBIimGrwEtDmYafgt1v9XeoxyK+1s8f40TSbu41bY4GLzpE+v+3KpGVV0Idv4RIqnAHrtauvOvdX8M0ad8CIHOBMcQBSInIDqEUN/fznd5LTYSXGDf7ag6EZy+LgTFWZMsCm8ymXlBOAcMLSnIFhewspvU2qR5DixXH+ELFQFhAbZynLygUwxxY/EBwsublj6ax7JX3xOAcGZb+2g+QJuE4K0OylELo8EMFl/xGUhBOy8vf9Vfcm+tQ5vUgOD6vnIzEF9j2QbEvcQccwGqjw3/7+DIAp/0DoZvjdUBuWIdM2a1YbvVjlnDTOvhhgOGmenNX4NDreGIGnBXfRF8qXPQcMQBzqsId3GXbzgkz31jOYOXDb41HHHTy72OEMVgWt+/NOz3qYXBRPlr8Far9c3ucG6+t1o1HCZuAnt7Wre+f7IvnptvH29/ocfLTeABYMbpl4/2aP2EowQD/DfZsNNywA5zibrTraahyZbt9pkbn32kXRIY7yd33j7i+UPWI5636T1gJHnrPLG5v2WtgJQE97slscy1bDDzwCe6X/kUpMyXZIN5ASL8rWVAAxmrzUvJYPIgQQvwP6gV2yhJRvPnOohNuVU+NUbLzWZJJm/egVglrvQRNppv3ipdWZEywTDpJOIDkXqp+UOpdHl5eXXr+tpwlKZBwBchIv2aBzrbb95Rury67q7KeLR+IiPU3xfUfO0wRO9EE7EBsfH8hemb8rXRgn39IWJGgs0anssrg4yZJZaLMEVzuWkMM/udrvdYj0lt72Kzg9vhesfUmCKxwS6gtYlmJ4sbgKp2f44M7xc7xbKma8q2iHkATc81eebWAZXjxB5RYM0bD9VELzjydX2gCKyNzMTdUCanBYcvisRHkPXJRX2yTG6AzlKY2Cfuhzb13rnlxYnSxOLyXG+ds0CwS7IM8hZixF6RBZDlTxK7DfhAzlLcqf8GR2w2TBxR8IBIaoQ4JaZBZ4kB4qDdCvAtRYjDIkWP8QAlquQeuAtaGfTKxZchcl/C1ZlZbcqfcpX9U9psIRkgZvwHj84D2vhDRzQAAAAASUVORK5CYII=','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAGAUExURUxpcf////////z//v////////////////////////P8+v///////ynGmjrMo/////////z//ff9/P///////////////////////////yrHnP///////////0TRq03Trtz378706ojlzTXUq////////////13buS/InaPq1zHPpTvUrf///////////////////////////1jUsoXhyLzu4DLNo7Tu3k/bt////8bx5eL58tf17azr2mvYuf///////////3Dcvu77+CvHm5vo04/lz////zXVrETWsDjVq+r69izKnv///3HhxXrhx2bdvv///yy6lTPSqPj+/P///1vrw3b21inFmS3KnynGmjXUqzHPpTLRpy/NozPSqDDOoyrHmyzJnjTTqjTSqS3LoDbVrDDOpCvInDLQpivInS7MoSjFmSzJnSnGmSrHnCW1jy7LoUjetkLasU/iulTlvzzXrm7y0XP11FjpwTjRpizFnCrAmGLrySi7lGfvzdPUVLgAAABVdFJOUwCzzPgQ61T++QLxmCD30Kg9/PYV8S3T5QU07roKkcrF3tbA+cZsXMLcxe3ZYUSCG8F238LAz+DLyNjS49vIvyVnoL/t6MPBivLO5On6TL+/wGTd9ND/kGkyAAAL60lEQVR42u2b+VdTORvHy1K6SAuybwIKyq7sCgIq4u6M+nqCpaUtba9wW7rILojjv/4+T5Kb5LadGVuaes4cv0k605/8nO+zJOTeOn7rt/7Dap95Mu10tzk7e+82tP5Sku5rs0SRu6ah6xeReBqGSYGct38JzlQHKaqlhqqj3Kshf6um+uqy3Gkj/6DZ5iqidD0h/yzXh6qxtA6Tf9XdKrE0zpKf0I2qsDzqJD+lF9XwJZ/FO/Zg4uXL1w9uPSR2zejP3Vpi08rIUGgXFNoNhR7ctGfxHd0w1+yuvAcGIOE8uyNe2+7QrpdlkqhafU0pTs/Pzr4fU6bXNnM6+rRujG4iVTfC7Ah9/4Q6O8ZYDY1Vq6Tq1aJueQVOhNCYT1zfT0MgG80f+mBuqOnyCjioNYefLJ0dhUKJoVV1E2/Vdo5yKSwTtIKQBmG4vh4izX0iVaMLZppI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','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAEgUExURUxpcfv9/7zj/////////3XG/////////7zj//7//97y/4DM/////////3rI//j8/////////7ji/9bv/4nP/////////8Pm/////////47Q/////////3PF/////5XU/////////////3PF/////+j2//////X7/////////////////6/e/////////4DK/3bH/////////4PM/////////6nc//H5/8zq/////////////////9rx/////////////0+3/129/1S6/3jI/9Pu/2rD/77k/2nC/5/X/+Dy/3PF/////0+3//D5/37K/7fh/6PZ/4jO/5rV//n8/3fH/8zq/+P0/6/e/9jv/2nC/1e7/4/Q/5XT/8Hl/169//3f43IAAABLdFJOUwD5xVv34hXow/3Xv/IK1fSHDsPRxbntx2LTwicC+r/BRUuX8DngGu+sNLPgwHYizdqRysqf5cDqyoJ9pFLTxwdu78/cwdXEv8bQ7qO8DtYAAAVZSURBVHja7dvpVuJKEADgRgjcMICAgKAojKKiuO/rqHP3UyUQFsX9/d/iztEknbYTEjV0e+7J93+0prrK7qQrJBAIBAKBQCAQ+GLK69WLuXr+R6kRc9Eo/cjX5y6q62UyCslqejuC7xbZTleTxFeLa7MR/LDI7NqibzkJ51X8JDUf9iM/0XQCfZFIRz+7PlsR9E1k6zOrlaGh+BVOhnxQOIa+i4XJR0zP4kjMTpN3KzrV7UF84nDyt+HGJg8n4gdOlVx8bzvvIk+N7+dS8+DZfCq3H1eRt5t81xKV8K2l7M48fMD8TnYJ3yq9Y6lqBWSph7kZ+LCZ3KGKrEKNePQ9goxQVoFPUrIhZES+eyxdlc3KqgI+UFbf/FhPZRxGxsQm+GRzAhlhD2ukMmU7BT6aYkpZdV2pGlMvZwr4Sjlj6qbm0tNMH+3PgM9m9pmeGtrh5yWkQjkYgVwIqdI5cTaH1PgGjMTGOFJz3hppKQUjklry0lLrCUteUjAyKUtuEuvE3gqaQhswQhshNK0QW6dI5WCkckidEhvJBppWYcRW0dRIEl4aTfEZGLGZOJrShBON0EZSYOQU2lKR6LDEVECAypDUZBJ0kUCIOG3vDGEdo0FNgRApFQ3HhFGOoSELgmTRECuzpxiaGAUEUWhq2JNNHQ1jIMwYGupM+dK+3gRhNml3ZwhVRMMECDSBhqLtFjkFAk3ZbZflBOpC8yDQfAh1CdpPy2iYBKEm0bBMDGvMKklZpzViyKNBAaEUNOSJYQ91CyDYAur2iC7DbwXit4QMV78VEKzCVXAYDTvg7EHrPoCD1qPWbYGDTld77IO9He6Z5ci9fltPTfyl2e7bhXmr4i83XbAxePmHveuOSwUfvX2ODDlmpYm6Jv9D22i45kJt3aKup4Gd0NtnyxPUHTgluoemZouLhboGVv8GTapt4g5Qd2LsTG6dfYMWt8B4QCsNGE9o0Ws59zbdnWZdTr8aMh7B6hatmuwi9dDqadhJeJa82nY5P9yi889sqUMiHSCjOewUse0xmCYybsDiEVkDsLhGVstDMHmXZeoN+Q9qyGrzKaU6HpapzhWw98x0P5cZvoB3aWu71Azfvy1kdbmup5peWnvL5Y/eABka1/ZUrw8WHWRcu//Rc98O+k1ulaguVzJO66R2XLYDbxtlV0VT7wGcf+FNHxitJlIDl43S6xFC65mxdLm8XdNYuArt0Gja3o4QSdX1cbKjF7Ht5qs1X+Ns9+22+x7SLd3D4Yo0PBw7O1q7rbXA3uOgPej2wVZfa7cHHc/HTrLylQ7kx1/gUeVrPsSVC6gbl/94S06kP/jb3mCcyX8lElXlvyyi6mj4W/prNFKV/YKR0UDDmPRXr2QNTRJfSvP3GGeSX9fLv8hgZQpoGJd4xcNXzZnsyy+S3JN/LUiF5V+Yyr9KthctyL9kp04ljh/wTuQPZlBJZmRFkTuyQhb3kPr2DDKGeajlhCWYq3uQNOZEB8BoMFdXdzIGwKgiE8zV/Z3E0TgStQTz4hlkDA3yweie7ySNU/LB0MUSPmjKB0PTI3wElw+Gun++uwNxw8l8MLz7+/vNf8dYPo9tew/m8o8FMQPt7sFcTh2IGfV3D+b3/XExH0G4B/NzTNDnIe7B/POn4A9n+GBo1Yr5pMg9mMvKEsr52EpFXdas2hBSYj9D2zNz+/OlaifRTkHMB3oraAhV/voWRzsrVSJG0TX1u9NElGgEhykcRYlAaXTWuEgSoTIxdPDjtExEq9kulFqvERnCKl+1c+tEkmoBGbHjKJFncVdFU6l4TuSaPiq9XtjtVslXkFyv1RZJIBAI/H/8B2xJJCgm92AgAAAAAElFTkSuQmCC','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACRCAMAAAAmVqBJAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAD2UExURUxpcf/+/v/////////+/v/////q3//ZxP///////////////v/t4//////////j0//////7+v/y7P/////////bx//////k1v/////18P/8+v/////////39P/////////////dyv/////////////////////////////gz//////////cyP/m2v////////uhkv/dzP+Cb/FzXv/////j1f+PfPOGdP7Qv//j1P////+Bbf/ZxPBsV//cyv7Htv/IuPZ0X//h0f/i1P/ezP/gzv/bx/zl4vakl/STg/729PrOxvi3rfBvW/SZi/F6Z/OId/F0YR531hwAAAA5dFJOUwDO9brwELL4/fvq1qwD5vcIx6/bseeOsOG2wFv/vE9uN8R4RKQMFWQnui6B178diK/43tKX4L+27cUv1KkAAAXNSURBVHja7ZxrVxpJEIYDYgQGiFzlUoiAF7xrNNkzx97ZZLh4i9nd//9nNuoyL9Ld00MGqvMhz9fknDzpqq6q7rF995vfWCL/i3jsd3adFKVTzm7nzPKKbFcyBBKtTXsuOw7NUd+2pLJXS5PM7r6VZHFISarF77KeIA3pA/YYwUWmwyxzTWH0WF36aQqFc1NtlimcLOOe6hEBJ9etnhyW6jRLha/w4h+mVM513bH3g1zWShJvU0DyvfuM/2xTbRLIcnWGNQrIua/4o2edBoEDpnqH5lh0A7xn2pAp88i0KOA1SDORKnNv7wr+9+4rsDnEqq2xyKRoSsmd5SVtkMSZPQaXIwo4deWl4Y3TAUYpiCCH0UFrDDK7NKUND8SpxJo0zmyRkeO0hbrH0CTTypTB7qaA1RfhHbSCoUrGQ4saMOZvwlXKIIP7K5epzecvGHqoNDztaU1d8rC3G4zTZwGNSS1T4is0+xTwSS2Tw4Fu5aM4TSm4apktvqrXwyxjlEnwzQ8NjQxapbNqmSyagUami0bKVn/pk0bmhK05HUtTnlT0qugXK5Ypo/7qZC4x67GdmJAywHuBAlZ7lEwgBB9kF/9VBjNGfhmXL+saahTQdLUymSUNNPmd82Y5SRF4r5dJLkVm/bxAEXGGq5XZ7KXICNJ3pTJnSM7FFgaM52XW5qnsXve2z8yltUDRSZ66Zhk9Tq2fD3VJUkQw4+nDZCZ1vqePUYEWoO0aZcxkO3lN7iZoARqod6p24BUoGuUdpUyHopNBjDRJ40ROvb6q4mbn/lJKyUtlTSB3dXFqUlQyLeVcgD8/vfh4o6ZIlEDh1dvkSI/5O0OdEMfPN1pKJaxKqI1DkUkO9Lc/dayKzJdwD9x7VtsUmWJeF6X055sYMmD46fS9klyp1JxrOj3twH9jlInP5LCdJpB52x1QZC5YZIToOgSONafnjxwy4gfVImQKb7IGk9kNg8xQPLOR0NyKEquML17oYgkq9mTG4pUGak3eukyXAgbWZEbif7CjWtZkvKkMbrjO7cvIl0r8MpOpjHyPwy8jppzYl/EDmSrmll9JpmBLZqSQydqS8RQ5k7Ivc2g/ZyZCrjNNWzIiQLrWZ5fxIdPArGdJZgwZ6bsUu8wIMtIXO3YZDzJZ6/MMNtMGzit7dmSGIqArFWBumbFQlJkEt4ycvznrp4MJZKTvquwyAuCmomNHxhcgYftEORIAJ/wjOzIeXDZwvF23IyNAVxqtmGV8oS0z/DIjoS8zsszXUGLLTIS+zMgyf4byV+zGpC0z/DJjoS0z/DKe0JYZfhkxQ5UC9thlECV5mrEhMxHKMlNkl8Fekg9N7DKoePKhiVcGUQJF3C7yyiB9AT5x7XDLYGHkAWI/isz3R//28e7f2DJo2JoBwizzzy298HAXVwYLox4gzDL3DzTlG2RiLYxuZxtl/n4g8B0y8RdG3tlGmS9E4PYJMnG3ktyzWyaZpwzNcg+ZeEECWexsk8w9veFbXBlPAKlnm2Tu6A2PkIkVJHAo3UdzyfhCIidddDKFycdOUmyma6PM08MSExguqjbZ0csEFWVpW3sIF+UA3H+3UNFLo+jFjhG+GqBNsrWDsVCyNbuZmBrl0BNqGtLR1jhCfIk1QiBEMs6b/OUYrrAs+pJHRwwyyJbwKKXyDDKIkIJqSkqZFcr4ngijRAGtVcpARc9JUnqfu3QZswpaAX4GQiazNJkRcsWQvdpnajhQXRlkYiwKhgcpfXU/jfbTMj4WJYSNNoHMIPxhTvunZIZjT0RiyyECx6YX+38sKuOPvYmIxMZWkWapbyplBhRQuAqT+fCGy8vLjWhUu1u5+Z+iTPe1r2FgE7I2TVoinUi/WaF9ccUgU9M/fygQM5W84QkrIzW4yOSLxEiyZXiqWSc2nCPjw/0U8VA/QIj0NnUWlc5mtEe1xZXH53wn+quvg8g7PLMgheLucWuw6HOrMkWi/46FQa+SqGesyPwHVLbnDs6uI5UAAAAASUVORK5CYII=','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAGzUExURUxpcf/////////nof/////osv///////////v/78P/GNv/////vw//////////ul//////UUv/HWf/BG/////////////+0KP/////////////////////9+P+5AP/////////ERv+6Bv/XZP/YfP+6BP////////+8Pf/WAv+/AP////+1LP+2MP/gi//zxv+5Bf/////////35P/vuv/y0P/QRf/////////////hqv/////dff/UDP/QE//////33P/hRf/OOP/KCP////+zKP/7wv/SAP/RAP/AAP/PAP/TAP/VAP+/AP/QAP/KAP/OAP+8AP/NAP/UAP/MAP+9AP++AP/BAP+3AP+7AP/CAP/LAP+6AP/EAP+5AP/HAP/DAP/GAP/FAP+4AP/JAP/WAP/OOP/HK/+6E//EJf/CI//LMv/FKP+6G//NN//AHv/MNP+9Gv/ILf+3Dv/JL/+4EP+xBf+8GP+0Cf++G//BIP+7Ff+1C/+2AP/cSv/0pf/6vv/eW//NC//wmf/VJP/uj//YO//ofP/kcP/GCf/rgP/3sv+2H//jZ//KHv/PKf/CB08sDQMAAABDdFJOUwDu4MgI0BpA/PLG+NH+y8guxsDO12kD9Kh4vhS1+PafYcLewsD+5SfL5/SH39jD2+xXkOzU485LOU3IIs/6z0jjv/LPZMfuAAAKXklEQVR42u2b+V/TyBvHoRymIF2WlkO5L7kUccFjvfYa630rAh54sN6oeHw9t+VGZMH9k79P0jafzDyZNG3a33w7L5JM5nnm/ZqZhKTFkqzUDrVEdhkiOMauSMtQbUn+NA+FRGEJDTXnp1K+o1QUntId5Xm49MVEcYj15ezyW6koFqW/5eiyzxDFw9iXk0tttSgm1bW5XEYhUVxCOVxU7aLYtPufpBpRbGp8T1SLAMbw8YGrf/vi3N/nqGjqzg0cHzYEaPHpUinA3gE5MUEb3/uQs3z2ClDpT6YeEWPHzjHQqXSMrZ5jY0hd709mpx0QHtClvXruKhW2n42BsMiw058M7jF/XCWoI9Y5ocqg3hHD4v/AvcbfTQaLdwAJNZ1xvIUGsIibsy/e+qYIVm8q0dmrZ6mg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','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAIEUExURUxpcf////////////////////76+GwnFv////////+KZP///3Y2Jv+HX/////////+HX4hQQv////////////////////78+v+miP////////////////329GsmFf////////////+aeP+IYf/bz//////////Brf////+NZv///3EwH////3s9Lv+HX////28sG/////+Oaf///////+vi34xWSGsmFWsmFWwpGP///////////////24qGf////////////+7pP/EpaJ3bP////+IYP+tkv///49aTv///////6yFe5VTQ//Itf/h1//s5sqxrJdnW/+TcODRzP/Pvv///////////7eVjMSoof/o4f///+7n5YJIOf/y7Pjy79XBvP/l3Kd+dLuHev+ff//v6rKOhdfGwbybk9C7tebb2f+1nOjc2dzLx/Lr6v/Vxv/lz/HCs/+HX//c1P///2smFf/x1//Huv/Asf/q0f/Pw41PQIdIOfvXzoJBMf+7mf+Rav/Yzv/mzf/u1P+ohMKPgv/w1v/ax6NmV/+Zc/+LZP/KvXk3J3EuHf/NwG4pGP/iyf+ge//MrpdaS8aXi+W7sqhwY//StP/ZvP/fwvO1p9Cil+7Hvuusnfm7rb+Acv+yj//Vw+Kikv/Cs9uwptaroK96bvXQx9qairSBc7VzY4Pmm1QAAACEdFJOUwD7AuH2/fbt3JTcYM/y8hD9wtTrZ4sF+8CEoj8j8fjvxszF5dCPOMKq1m/XLcr4z9x30heb5MH89OTmCrMz4UZLHMD+v1LqvzzAWLzA/cTV4Mu/y9nIfsEMw8jbT+fF6e7R2MD9w+TC08XP37/g1uvL48f//////////////////////l7r9LIAAAmBSURBVHjaxdz5XxNHHwfwCSQhBAiQQBLOAOG+LwUBEVBBAQEFxT4e9X5atcfzmv1OOCqHiJRTQbyvWqut7T/5hGN3stmDnd3Fvn/SH/p6fZz5zsx3ZqFIL29xWkbmqMPjCbisLTV9menlWefRv8F7JD3PChI2d2Z5Nvq6iuM9oKym7uvl8SY4YC/5Cd5/PwoVm7b/cYrdQO0VJwbtp9YiGzDI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','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAJzUExURUxpcf///////////////////////////////////////////////2Oa/////////////6DC//////r8/2smFf///////////////2Ka/////////3Cj/////////////////////////////////3IwIGKa/422/83f/////////////////7rS///////////k3//////p5GSb/4Ov/8nd/7XQ///9/Ovh3msmFWKa/2ac/5S6/////2yh/////8DX/3an/28rGv/////6+f/b0q6Hfv////fz8+3z/3k6Kmie/6B0aYBFN//Rxv///////////////2wnFtbk///08v/g2P////////78+//y7//v7JtrX9zp/6vJ/////////4pTRubx/8Pd/KZ8cf/////////c1P/Sx/nz8P////D2/8OmnsuzrPT4//D2/+ry//X5/+jw///c1JzL/////9vKxv/d1f///9fFwOHT0N7u/8+4spFcT6zK8pvF///c05u////Sx6XQ/7eWjf/d1Yiz///JvvfIwP/Pw6rR/8mwqv/TyJHA//D2/7rP9//c1GKa/////2smFZrK/77V///Huv/RxrXQ/5bG/3Wn/3it///a0mif///Tyf7XzqZsX462/5pdTp3K/vLKw+z1/4hIOeO0qHEtHH+y/6fK9m6k/67O/9SkmX49La93apu+/6PK+o7A/5jJ/2uj/5FURXYyIvfHvv7Owr2GeNqupOfIy//LvtbI1qrJ/2Wc/6LO/4a4/8aTh+vCuZ9kVoGu/8DJ5fvIvcvK36HE/9rp/8GNgMXc+uW8st7N1/jSyc6bj+AhvzQAAACQdFJOUwDuiAkE/hP8//jzAQ3tI+vSwHL4+a+9GcL+3prNQ44dqEfkaV3W+MDOpJ/WO/62V8AqweXCysTj4/Ly3r/F0m7IyOPO68DBfPLmzNm/xvdReJJB69PSy2Ex883Jv9jCPkvC28HByoHx0OQ26sbK7+jk8OH43IPV1YDQ2s3Nwfvn6L/qysPc2+TixcrK2fv1/ZmAfOQAAAmNSURBVHjaxdz5WxRHGgfwmrPfHgaG+5L7PpRDEAU5BEQjeEC8T7yv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','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAMAUExURUxpcf////z9+vn8+P///////////////////////////////////////////////////////////////7/osP////////////////////////D67Jrobp/pdajqg////+z45////////////////////+D11v////////b79ND0wv///////////8ftuP///////2jBSP/////////oqGTAQ//z1HvJX//deNLvx5vnb7XrmP///8fvtP///9j4zf///////////////////////////3DEUcfqu+T03tvy0dnz0v///4rQcf////T772TAQ////2XARP////3FU+r55P/ijPvPaf/44tvw9/777/+yIdvx0////8zqzf/99qHYjP/bh/+1JvzsvP////+0JP+8Oq7enPT23//PX8rwvJbTf7ntnOD32////8fvuMjwuJqTfv/deUonGffFSd/y/s7uw//ffP/ff+3nppvncP///+X36//NWPrvx/D37M/Zwt3y4l5EM1w8Mdju8fDWhP/eeriqpHlgVf/eeur49u/5/ejkjK2lmNrjwbTumv/GTNju8qDbi4WAZH52XLrJqs/RxKSwi/bmptXu7Zjhcv777c3xvv39/P///5rnbnnaWGS/Q//deP/FSf+yIN3609X0ysbut/D5/+34/+Hz/0kmGHfYVnjaV3bVVGXBRP/GSnrWV3/ZW2nGSGzKS3LSUW/OTmfDRtr40JHiZ4fdYInfaO/5/+35+YLcYcLvsNz60v7JUP+1Jef27Py8NJjmbdP1x5jjgfvNV//YbXPGVZXlarLopZ3ncrDqmE4tH//BP+bih+Hjmv/RYej3+G/FUN3z6LvqqqbrgcbwtmpWQv/ERs3r3+LrtfLfevreeJ/Ylujz4bvwn+7TZ7fivNb00/63KsfvyOn3/63tinvKXsrwvJ+hhMvgvJDhdOTuxuPMZ4XNcaXnjpPWeuHnperGUeb1/+PWfJ/pdtvestrn0uby0tvq37rSp4uQbLDKmuY+auQAAACedFJOUwAQ9/b67AT8/gINj9aUSiQI57Upw9rCWjNt8+f21MXv5Gk4ULh71C507/zIHWHL0uHcRHDB+tHG887nv4LFQP32RqiwzZsY0MLb08GIwKHq8xTopsPVxsHc/ef2zDvC8b/A3sa85szC3NPmv7/EuvXWwevv9//E29PC5azS5srfxs3iyue/48e/4eT0xL/t5Prd2sXqwsPZwvrvy/ryHqFCVgAACEJJREFUeNrtm/lfVFUYhwcclgFEBAXUCgEVEHAB3IoQQQ1XQHLXyn0rUxOXzLV93+u3y7AJ4yBb5QIJGq6gmOZeaqaZSy65pO0xA/d9555z53r7zDkz/eDzB5zPl/Oe5573vtzR3Oc+9/m/EdhmgH+kf4ehoemOTuIR21UQccsIdGiW0G6ChKl+DovimiGQuHk6OahEcwUZWkY7IotuqiBPpAOOTkfBGu4D7C1WiJtgnaA2OrsWCZSWp2uCHcMEC4Bz3OLeC0atIHcqKcpuJrUURHouyDGzpCeRJrGjj33CeAoiY3rniIwaR8Rp7W2PLC20UKPXc5DecVoijm8L/mGSBZG4HAmLyVpph3pwzpIgiIyDIlmtVbcAe2k9ClNgrZyJOP5hdtF6Zo4cy1eQ12dzbtenk4sgskQuy57c3FljiDguwTreWk/JkWNbbm7ue5OeJOL0D+Gs9StyWb7JNbN8ijtxfQ4fyD6MLyy/NEeO0txG6Fq1DXdlnCUG1k7tLb8xCFUrrxheWr8lf3otWRhHXp8ZTly0HnnyVA7N7lwps3qSz8AQHlq/ULjl4Gl6YyhGE49kbQx7rZ8pbODMAUpritLxkxKl5ziQudZvFJq5doo4vRTb8/ImT5G+QDgx1npIocit0zJaI9/mmZgu0bw5Y63fLARqDihsTOn5PDPjR1to7h7ISGs8McgfjXH2yGzM13ki0+IEYIDtYdqg1oUEZs1Ra+SrPORxdzjDPky1JjBpDlqTG4NpYIFQplrTnDkrc2LypMATMJ6Z1s3erSmk+dJwazettZTp4hLJzLR+Omvf8S1UGIPBsOXONkJrgsnQ3diWpR9kafdAVlbWsR+pjTFx5mwprTUyDSYVrLR+KMtMfQ2ZxczJ3fTppXfGn5HWnbIakdbKgBxoqlUpaE3rtIyR1g9mAaZawcYgNeZa4cYgM8VFwtlo/WgWgrUySLlmqhWdZTSsMpGN1s9DEKgVbgxycBtoDYxPhQ7LlZHWCNbKQHPoOnVkXoZVOrLSmqb+iIFmXebvCwmvnWFyk85Ka5qK8r2HyCwXMhs4KCnVUlglnpXWNDuK9PrKn6iNMXP9PF4F7tDpebDQ2h20tqRcb2KXpFa/Zjbx520xDE4DollrjWwu0puR1CoT+W070T50tWEG4EdoTVKmFzHVCjcGuXO+QeuZECaGtdZIBWTBWl3IlHLktsXzzpe51kiRXoK5VusySd6JgMGRnw3/xvFS1rocYkCtsEjIE/iawk/rOtwYrNV3VJb3tdCKp/PTukxP83nJ92OJMBMEkXB+WlfqaYqzs7Nrz0myrMYZhI8NWruB1g/LhSnW03yWbeIXy1oNgjABTLR+RC5LlZ7mi+xGoFaWpzeSg9Z4KdFsbAqDtRrbDpYJYa218undAFmgVrgxSfy03ryezlJUIgaBWr3UDNqYKDtrnU1w+BxuzFAbNqa5stYVslpTdAchXZz4aV0kqzVFH0EkmJ/W5bJaU/TCgbQNbwTehNYqTi9ojfTA5523g7RGhuEHJPy0rtQraI2kpYKQYfy0LlbSGnkKR4r8tC5XqbUztDEDuWldp1LrVkzeZzsoa12mTuvHmLQxqHV7Wa31NOtBa2QwtjH8tC5WpzU+7/oz0Xqw4qWkrHWP9rBMgg1aBylqvaNIndZzIEuyw7UeAa9t2hbctMZLSVnrGYKIp8O17q7FNoab1hUqte4Cy8Sy1lr59G5Qet61tqGNiVXWulyl1oNY/GcpXVnrOpVaYxvjz0/rMnVap7XDf41y07pSr05rbGOG89O6WJ3WI4jXNi5aV6nUGtuYeG5a16nVmpg+c9G6TFZrpde2aG5ab9ar07oXMX12iNZ0GxPDTesKlVoPYzJ9TrDQet/dfeSlpFZrm6bP6BJ8/zNvU35+/tbO1ReJS0mN1jMk02cGT7xW+U3svIgtlTqtu8NfFJRuU5hwcZ0++cAP/1HrFNumz0gYHOC+ZJoKWa05vLYh8JF6l3zEXKliRa2RTra+tiEZeGiQvneJ06ugdS+bp89INIxk8i2ohkvpXlqnMZg+A1HwiOhsmeZYmb6q8urVKnJkRjGHwfQZ8cI6WXC8/vhaE5dvVBFa82hj6NspxTLMprUiO3cpaT2DxfQZCYXeiggD1FvXuju0MS4eLMJ4wF05mwgD3ACtGU+fafzh0BBhkKv31NpLxyZMvLjgIssnjSRMNWjNdvpMM1FcMGIrEQZpOMQlSm3MXA0jXNtCG2E1zFE5rdMicPrM/uc5rayG2VlVkl176dKlwyynz8rjvAkYZi3B3r3VBSaO3tzIcvpM4wefZfe1FuZyAXC0luX0maYbvCFYCVNgSXUt3cYwZDgcGtkwnQukHD1MTp9ZEiAuO0jMslWmREg9MX1mykBQ9KMr1D1ZIMPN7LT2xIeJ7IDP4D7c/zOEgRLRVB/GNmYZt59SfWw0nrgCYaBEFB80I6bPDPGGNsJoNJo2ZxOUiGZ2qxSoEUyfGeIB0+Q1RqNpczZZ2ZZnu6QMghaGnj4zbiPmG43mzcGHCzIvZYKzQBDL80fhq4yNnPiLqM2iIRECQEyfGRMCL5bPNaXZ/zfWps+QlYI8oRoO6IKwTiIn/mkMMtJNsIa/hgtJsDUvQpr9nw5ZDQrT4PSZm9yC9jVzpdbMX5UqKBKUHKDhg66lADR79e1PVgqKaP07hug03AgXVOPl6e2h4Yquv6CGlsOjB2r4E5go3IO2vrFhGjvhjQrTuEXGJ7hq7EiAVpCndfNQJ429CfMSKFySoqM0DsEn3kWwIHFueJjGgfgE+wY1BokcmuCjcTg6v4n9+rXQaXjzL63Tl4C9/nvmAAAAAElFTkSuQmCC','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAG8UExURUxpcf9iGf/l4f/////////////////////v7P/l4////////////////////f/69v////////////////////xxZf////////////////+bYP////+MM//wwP/////ii//v7f/bbPx0av/UU//qqv/////////RR//XXv/Go//////////////QRP/QRP/////////////TTf/////UwP////2clv/ff//78f+ugf/00f/77P/RRf/55v+aUf/v2f/RRP2qpf/////Itv+PR/9zLP/g1/yPhv/QRP+QPP/Clf/r6v+udP/Or/9mHf+bM/+EOP+KM//////QRP/UYvxwZP9dFv1wWP1wVfxwaf9xRf9xSP5xTf1wYvxwaP9xR/1wU/9xRPxwXv5xUP5wSf1wW/xwZvxwXPxwa/9xQ/5wTPxwYPxwYvxvZf9xSv1wV/9sIP5wTv1wXv5xUv1wUv9wL/1wWv5xT/+aM/1wXf5wUf5xVPxwW/1wUPxwWf5xVv7PYv1wYPxvYf7EYv/EX//IW//RYP9wQf/PYf+1SP+yUPxwWv1wS//EWP9pHv+FMP93J/+CLv9xI/+mS7+gn90AAABRdFJOUwD+6Or++t0b5ulh8EcD9/YPCL4kbPmHrZ1VzijwzXO+5sHvzsUVNuDH0KYslv73tdfJ14/U0dnA79jV6erkxtzx2Xva0+bp2/vYwvC/5fb92c7NfiIAAAmdSURBVHjazZyJX9tGFsfFWsYbjA0YDLhcyxmugAlHkjb31bv98Fw7d7hNAafhWtiQkG6yR3abbGi6//A+SSu/0YwsPRMQ/X7m85nRk37jr8djFZMajUWkur15dLRpsLkxVa9xiaTGmwdHE02NVdW92lEx1BgCgcrhPv9MLDVYCYSeaIgcgUldwxgoTFbFfEJpsCGfvo91qU6DK+mUh8r1ELjSVP8xKr2DUJLEUIlQqhJKEW6MHX5ZouCBPuy2LfsS4EWi9pAuqTh4E22IyUvZrIM36cO9VFVh8CVd7dgs7VHwJdp3GBcdOIzWi5udQyhS/s0lDjzC49Y2aBkFJmN15d5eJsHB+Z5z/d3d/efazoNCCO86teNhULjU04mhzo426VxzmTLjINLWP5L5PyOdV0Bh0uXOord1Z2wudl4Ckary3tQg8Fl/RuRM/yXwp+2sIzTSEQciVKvxiaXFaa9mJEbO1YA3l9Bf4uxnQIxrfBpEl5GMysUe8KDmnFvmtLCg4Xr+7g1R7NMvMq50fwol0HsuukdOC+s5yJa5LjzJ05kSnOkU112wp80i0ykYD3F3jLAwnZnSXO2Iu2yWMx6JnvLf3inhaeLUHpyWtk68Y8T7erKPM99QTVCkO+ND9xUgek5nfOgo914Ti9I7KePLF53n7VVEcz8u1pS5hfuYC0NbJ2zcGTvpFWXtmlCdv0rL9UnajTg/h7Nt8Y6rzEuhiD52vaWMH6R7MlwuZpicOQ8i6YY6jfnTa2fm6GkDJ5Up9xdoDCS6j0GmA2TGWlg/fZ8NRAai1bJLuw6ByJwDFb3d6dIISNAvE9EoulQBEewGVu/HfWFwo+cYZM6DK+E+26U3BA5qblz4xODy93/x498SPpd/3/qJxYUbNeAg1KtZDIPIxOXWaTb//MHBP/jJ1ssTIDJsudSHgbhyEy8MQga5eQWUn0SbgBhonQ5KBmkdAKJJQ4aA+AqvCECG+AqIIectZmI6IBliwnmzmaTPsK3By7TSe30Sty+pfTMdmAzxDRSp19qFhQlURl2adq2Z3knTAcoQA8LHl1GwuXwyMpfBZlTYv1+ejMyXwg4OgU3ryci0gk1I08FmOlAZAmx0DX4/MvB7lTk4GZkDV5kPJyPzwVXm15OR+dVVZv1kZNYFGR1scgcnIXOQAxtduOlV/HYSMr9VCDe9NNh8lzsIXuYg9x3YpLUxsLmVqwhepiJ3C2zGhB8hLuRy60HLrOdyF8CmWfhkW1ORy70/CFLm4H0uV1EjfMZtgSI3c3iuvLvNf5z8Ut4dpgIf8CYUadG0SnFpTJ0P0wHwwVQRF6bS+cv5b3MWFe/Xj5n3aGLyLRS5jjIRHYQ9HDC0e0GPKB9v0Tg4KqSPt/IH/9u3gnO5dVv64K/+Dm1gvSKQVVkfcP1NWm0aBP64svLmz1x+cfJfdvDNm5U/gEC6lv4RW5TB696sGGBHY3f+9YODv1PGPy/KxIe0IildkJmbW5lbwTaH0FjsbeZUGawx8rKMnpL/ZwOSuT93H9ucCNVojE2WMercPMnoVZqDKpK5j9CkHuDpv8oyCDdPMpYLERFl+Kgrw4dkIhyZmfszBtiJNTqecZXh5NkyM2Ugy5STZco8mHmAjfrFmcXFB4sPEKpbY3nPGDVuniXzAHNWmLBqFnRuUZExznHybBkK0ATET4s/YbOPFBmEm2fJ0IPhQAGL2Oxe3jNGjZtnrszq4io2mpiQz8krY9S4eZbMqisPVx9ik6uyDF3jn2fKYMoGhzTZu4fv3q2+o4ndZbh5lgxNgEnMiw8gj2UZEvXNc2Uo5Hxmas1NhpXnv0wbqxsbDzceYjN7xBoj4jE2WWYDo9w8S2Z3d2N3A9suQmOxt9lVZbDGzTNlFnYXFvYX9k1wsLCxsIHNqm3sm2OrpsgsYJSbZ8ns7+/t72Gz+oU9YxKq4QE2u5dl9hFuniWzUISeHR07H0CRwTI3z5Ixn4HJ1v6WAXb0zPAAm31ekcFLuHmWzNbW9tb29t72HrZtEyxgs3uq7W3JMkadm2fJqOHZ7VmTrVnHMXayDOX88yyZ2SLPZ59jo16sI9jJMrMIN8+SUScg5Loig6e4+TJk7s7edfD87nNsck2WMWrcPEuGLv/57s/Y6FipqTIIM8+XIZ7efYrNfeKnigxd451nyzwtCU6KTazIMkaNm2fJ3Lnz9A5NgAcOsIDNHqsyWGTmeTIsXt55iU2S+ZtvjPIsmT8ZD2IHaOyOKoMBXp4ns7Pzcuclth2ExlLNfJAdVQZr3DxLZsnk7dLbtztvd3aWdpawWb1ak2WMJDfPknnxYunFEjazR2is9rLMC4SbZ66MzfLS8vKLZWVSQpFZxgg3z5J59mz52bIJDkxwgI16Oq/IYI2bZ8lsbi5viiF3Ebxo89mmIoN1Zp4nMz+/OW9MSBPPL88jzjoeYFmWMercPE8GscM0OWKMEfFYlqGsb54nY4Vezb/CNi8h1xUZjHLzrP8cWBevza85eLX2Cptck2WMGjfPklEmUHi99hobDlQZhJtnyRQKrwvmg5kU1grY1tYerT3C5py0oMg8elR4xMwXWHumYIKzYrPGODk26glZxqgx8x4ytWATzxZsKCziJUPX++azNWBTK8nEoMiTrEEhK2ULRo16s6bImOd5+SwUiWkScbBJPsmijwEOjLEHsgxlfPNJei00mTTYdLlOqNbcZRBevgts0h7favo8m83n80/yVjifzWOzeqxhyyN2TZbJW/jmsfC59O+27t88uI1JISiNhWNssoyQ8cyj5W2wafT6HmcSbRDfSZFSK+OXpy2DVCsydWHxdcqakcf5xyY4wObszfOKDJ33yj/Jiq9SuE5TSIBNTRIvfixw7/E9bHRMNVmGrvXKG+8lusskNJUqKDKVRe6Zkyg8prqLjHSdez6LTHl/Va+W7jR60rRhoMj4YrkkdZ8vMTaT7CnTJn/vR2UqLP2IrZSMfZ56mbw58ym/r3fWky3cwIyl440s43M5qhjkb0ARvV5zZRCIa5ixgvhsjkLGWhSLa+D/leBIHIiJZJaBLMPJJCeAiEe0ErSDwKmu45HpOgUC7VopYgkQuZY8epnkNRBJxLSS9FaCSHiq62hluqbCIFLZq3nQEgUnX091dSXzHy+TT3Z1TX0NTqItmifVOgSGXq350KAH5tLA+kMvgRCt1hi0pCEA0i0ai9oEHDv8v4oTa4jCMUF/RodP73AYjo3wcK9WHpHx6DGtynhEK5+6VFP0yE2aUnXaIYn1NQwnKkNx+GjiocrEcEOf91b5H6MqMTqKGGaBAAAAAElFTkSuQmCC','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAH1UExURUxpcTMzM////////////////////6+vr////////////////////zQ0NDw8PPT09DU1Nf///////////zMzM/j4+DMzM////zc3N/////////////////////////////////////////////////////////////////////////////////f395WVlf///////////8LCwkJCQv///////////////////////1BQUKKioomJif///0NDQ87Ozu7u7tnZ2eLi4snJydDQ0Ds7O1VVVf///9vb2/z8/Onp6UdHR////0hISHBwcP///zg4OPHx8WhoaDY2Nl9fX+Pj41RUVH9/f1NTU+zs7P///9bW1mVlZTg4OF9fX76+vm5ubv///7q6ultbW5ubm4mJibGxsZubm319fXR0dFZWVqioqHd3d9vb2zo6OpWVlYyMjLOzs+Pj46qqqpOTk////2lpaf///56envn5+f///zMzM//ORP///8GeP3FiOEdCNDU0M8+pQJ2DPDg2M/XGQ/rKQz88NDs5M+a7QlpQNk1GNbGTPcumP/DCQlRLNUM/NP3MQ4l0Ovz8/GFWN+y/QmhbN+G2QduyQdStQHppOcWhP5R8O4JuOaKHPLqZPqyOPTQzM8CePqeLPI54OnZlOHNjOWObQFQAAAB7dFJOUwD47xv+FAXITvoJ4gLs2vToOKqN/Pny8+IkzOgtuPbFdijl2WE+aA+yVkPce+jOv28g1NcwUYCXnEjR0cxczdzx6eDV5tDP0Nf68rigxsyUwuLE3bbryMC53YbOysrNvrjUzsLCvdOzzMKowLO2u6Ohv/Kqt6PNn6TfyC8an18AAAeVSURBVHja7ZpnVxRJFIaBGUZnyCAMSRHBACgqKsGEijlizjnnvLtaVQIiIgomxJzX3d+5R4/H+w5VPXcoppoP6/Nx6Om5p6l+ut7bN+U3v/k/U7KgMb8qGg6m1c1umlY5lpUEJlepGDIKyseolJYZYaVT0ZLiP3NnKA8q5vtcSmhyVHkSbgz5uljWqLisCfh4C2Uohim+/avKyxRLtNafWvLSVAJEfbk26VNUQkzxY90Mu6XDF6+cu9Te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','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAMAUExURUxpcf/////////////////////////////+/v/////////////////////////////29PdvVP/////////////////////////w7f////////////3Mxfumnv////////////+kdf/v6f/8/P/Cpf/////////SvPFaTv7l4Py7tP3CvP/////////////////////////////////////59//7+v////FWSv/Is/////yJfP6afv////////////////+uf//28f+yk//5+PyxpP////+0ef+Ua//s4f+tdP////qilPBRRf7X0f9vY/95cfaDdv+jiP////////////+6iv/u5v+Xcf1jWfNxZ//YyPJjVvNaTP2JZP9qXv/////////h1P/Bl//j3f+Xbf+bbP+WdPiRifl4Xvp/XPqHbft6XP////+wcv/Qrv+OaP+Xav/x8f+ocf+Saf+kbvRiTfhwV/d9aP7e2f9zTPVnV/+KZv+tcv+QaP+LZf9jW/+dbP+PZ/FSQ/hoSv/6+P////+AZP97Yv+BZP+Wav94Yf93Yf96Yv9xX/90YP9rXv+aa/9yYP9+Y/+cbP9wX/9mXP+Taf+DZf+JZv+Raf99Y/+NZ/9nXf+OaP+Za/+fbf+HZv+QaP9tXv+FZf+LZ/+EZf9iW/9sXv9vX/9zYP+IZv95Yv92Yf+MZ/9kXP+hbf9pXf+kbv+KZ/+PaP9xS/91Yf+GZv+Saf9lXPBUSf+nb/91YP9uX/9qXf9/Y/BSR/9fWv98Yv+GZf+dbP+qcP9hW/+Vav+Xav+DZP+rcP9uXv+jbv+ucf+KZvJWSvFVSf9gW/JYS/+lbvl3WPNaTPReTfZrVPp6W/huVvl0WP+scPNcTfVjUPZpU/RgT/VkUfZnUvhxV/yAXfRhSfdrTvJZRPNcR/FTQfBTSP90T/VmS/hyUfhbUf5/YP93VPJVQ/t9XfhsVf2CYP6GYvBPQP1dV/+wcv55X/x0W/98Wv+xcvpnVvxtWf95V/ljU+r3mj0AAACGdFJOUwAFASv+/Qn1+0mr8bpDE+zw6HeB4xsvZ+eJbt7MwdQ5ztPj+sDAIMXY3cbJtX1YU5wW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','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAMAUExURUxpcf/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////dkv+/Jf/xvv+BWv+JWP/vt//qpv/usv+EWv+eF//pof/wuf+MWP/vuf+aFv+8JP/AJv+bFv+dF/+2If/sq/+kGv/qpf/yv/+QAP/rqP/pov+qHP/ppP/po//wvP+DWv/rqv/qp/+PV//wuv/BJv+WAP/srf/tsf9/W//srv+5I//vtv+HWf9+W/+sHf/srP+4Iv+yIP+9JP+uHv/sqv+NAP+KWP+ZFf+mG/+FWv+6I/99W/+KAP/utv+HAP+TAP+GWf94AP+AW//tr/+hGf98XP+YFf/CJv+fGP90AP+NV//utf+gGP+zIP+vHv97AP/qpP+ZAP99AP+iGf/qqP+xH//us//sr/+1If+oG/+cAP9xAP+NWP+RVv+AWv+QVv+lG/+BAP+EAP+AAP+DAP+KWf/kn/+nHP/im/+5K/95XP+fAP/fl/+OV//48/+lGv/v5f+bZ/+iAP+sTv+VAP+nff/rrf+VX/+yNP/9/P+1YP/Zg//cj/+gcv+vWP/mo/+pAP/Ziv+5Nv/Nav+ZJ//CYf/Scf9+Vv/hxv/Uev+uKP/Be/+SV/+GRP/Lef+nAP+lAP+4Rv++TP+qPf+iQP+6Zf+2U/+RLf+CT/+rSP+rM/+yP//j2P/QhP/Hbf/EiP+9of/Qov+LWP/pq/+cNP++WP+bHv/Xxv/7+f/mz//Llv+YIf9/AP/XsP/Abv+jKv+xkf/wvf+RJP/Tqf+hIf/Ltf+YGf+4bv/r2P+Zef+MZv/17//Yuf9/D/+NOf/y6f+PXP/Hqf/LYf+Ua//Kr//dvf+tjP+GF/+5k//dl//oqP+hGP+zEf/Dsv+bCf+yF/+qCIIRSdkAAAAudFJOUwBPECkB9QUZ/vvORT563J85CuBxI2KJaeqkXS3uwK/VjMiouJo05byCWZeQk44pVEvm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','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAB1UExURUxpcd7z/////2G/8obU/XzP/ev3/v///////9Ts+5DV+obT//3+/////////////3nJ9/////j8//////////////3+/////////////2bA81y78bnk+33P/////1y78ZrY933Q/3nN/nDI+mbB9nfN/WO/9DEiPr4AAAAedFJOUwC0duG/4MIlk7W+yeABoUi79sxgFurYCjiAzPeo3ri31NoAAAH3SURBVHja7djbjpswFIXhgUyBpBgw5xy6aDqdvv8jVqlMekNsomobK13/NRef7C2k7TfG2HKqTZcbPEPaJunwMN1npfJFSQs46xovHHXUWFM/yluGBCvTjbilxvqENarAM5WimBhP1bWCllbjuTJBTIZnS+WmV+NeVO2m5XaH3sfRlJjrqsnSeY+5XAxTYK6a7CXy91TDlEyOTlr8X5PDdJhc3d2xFEa7b2kukp5ghbmTE7P3h/n6ack75vq4H8QQQwwxxBBDzP+KaccmXmgDTHqsYcknps00EAim7IBQMDEQDKZBOJhRh4MZOoSDibEJxv0s1ScP6gUw9umtLfvrqfaBKTC3d+zR8hilYarPdsy5Fse0WP3gUYljRpj05EwcU8KUuzHf/GE+LX1Mt774w1wtEUMMMcQQ8w8YlZZLy2uxAWbMOljyiRkTAGFg1BEIBTMUCAajCoSDOSIczIiAMHVAmBJ/03XyoNwPpsC9/c6yEuUeMINeuaPtanlMibnLZO/Ui2MamLrz5OgijolhSiZXlTgmgyn6sPTrz9R4xFwt/SSGGGKIIYYYYoghhhhiXhXTFqZ+K0w/C9q3FHNbYe6lxBBDzKtjItPlYOn91uHdVnXL/cUlMi1ivm8UMcQQQwwxxBBDzEthto4YYoghxiNGpcGkfgN3nEq/gvk4xwAAAABJRU5ErkJggg==','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAFrUExURUxpcfX6/vz+/1m8/////////1y9//D5/////////////////////////////////3/L/1m8/6Xb/7jdYP///////////////////////2TA/////8zr//f8/1q9/////////////////////7veY+LxvbndYMTidv///////7bi/////5XU/////1q9/////9fv/8jp/9jspP////j77v////X66bji/8vmiv///+j12f////n88v///7reYP3/+/r981m8/////7ndX7bY9GSn1l208Njv/9vq9ZjE4/7//+n0/P3/+rzb9fj8/+Xy/NHn+M7l+PD4/rna9cHf99Tr/PT65uPxv9/v+8fj+b3faGKq3Vu39l++9tzt+sTid8rlhWCu5ZLT/2vE/3u03Ge+7HfHzaXWgZTRndLpmd3usPr98obMtJzTkG3D3rDab+732dbroI6/4ZHB4qPX+qvP6G6s2KXL58rg8Y8rhXUAAABBdFJOUwD//vv88eHrFPl1k4jiEL7C9sH8Olx8A8Qb0iLP9OjVrmxh6+DH8MWcCsXdvyvsTdbNwajoL+PGwFDTzewo6vnNawH5mAAABPBJREFUeNrt3Plb2kgYwPEICSWgIOJdFLzrfbe77e72mXeIdqlYjSAeeGtdr957/PnrijAhJM6EXPtoPn/B95m8w+SHDJw5Ha2hVGdyQBxIdqZCix2ci1pTAigJ862cS9reQK3OnzkXdEVBWyro/LIIoGfA6cVph4f0udTifk070PQ7t6N5oBF/5ZwRaQK6Nx2cXToiQWIelF7OjQwOx4cHR+YWQKkxqBCxKO15KJUUQc/LkTgui48sgC4xmQo950xZbEzCQ4aGsdLwEDwo2bhY/6LMw8PmsEp8CCjm61ueYFiEhw3hGvHXQCGGg3Xs3wGg+OU3XHL5ZbNwgEsG3wLNgOGjvV8Emp/wnZ1NuLVyiEvmgErsN7aVG4FqIX6/LnBnkywNXaORrU5aqAuDN6GkvDRDwFLDMWsDBoO4ZAVKLnDJCLBoY55dEdR6nqm9xqqVKY/w8LNaPaAmttZ19vS8ag7EULW96/M4vvcV7nzBZecfUY1YoPlVdVFTxPjA9EzEUI3rOFYo3M3vASZu9pCG2ESP4bHpEoGYnUI19s5xtcPLwgWu8vkT0jI1C4TYxdG9AKLFj2rdYB30Gn8LEC8YDiRe0YI0fMQsPu8hTYoann5MhaAi4UcazjGTP5AmfwIqQhxNJ5ndXqThDLOJnyFNvWSKO6lnNXlKE0jLJ8zoGmmbIM8pSDsgybRPIerIsD8nYors1n7mvTSLzMXcIB2zZD8xj0wz0nRmdmVQM/PQkKOgGykc5+XVezuYTWG1TM4fI4VuciRQYgQoC6CKk2UgvmI2V6CwfIIqAlAmUGLIZvKTlgZQ2GRbmguo0nC2hO75yXaixEAFqshDlQJmcHAF1dak3SIqgQrjMcegUtiht2yC2ndJWjIfkwO1q8vDh3p2DgsrUCMrSVLRdEwetKzoA01rtzG7pmOWwRLvpFvF/1PMkhfjxXgxXowX48U86pjM/vaGSnZ7P+NKjC+X1rKdcSNmLa0t70JMZkMnJutCjJzWs+p8zKpey0bGhZnJ6cRsuzHAss7CyG7EwHuttcnJLv0CZ+QPag3eceDFeDFezOONaXhPJ2cciZFzaRYb+04clBtpRnkHXyHoZLtjfGl2W869dtLlnXshp/tg+8ysM7dkV22PWc2xL4ztMeDLs+Rk12WHjoMMnXdQejFejBfzWGLk/TW1rQaXYvKUl0wnY7Yox6KjMVmdmJwLMQ1pPb4nGkN/TE9+gCGv2bLv2o/eutq+7B0HXowX48V4MV7M041ZB0v8Y0nMD7DE35bEnMhgAfkvS2LQMVjgu2Q8hoeyGKn54QOTfH9KlZgYlPH1fENePH1nciedSiVF6jfk9K/rJen02+91+1ZOkXaNfV0f1bx3sCRZY6n63kGUEhOGsgRS2JWscIT+k4CyMPNFQV8vUjiyrKXXx3xlMMLrXLUqHplbnd2jovq6FR/hmIdGDCAbBETqyBB9UDETQ5aLzUBFn6HLgmPIcmPGrguGgRiLWbwuY0CEObqgAMRMwNJ5mQFCCBr+CwqxpRdZpLdFBIV2jsXoOCj5Es3dgZjJxxPobk74QGl8lGMyKYDthEmO0TQPNuOnOWYhsFmIMyDEg4140sJkWgDbCNOcQZPjYJPxSc6w0XYBbCC0j9rzBx505v+8g+jqi/JgGT7a18WZEmkLR5sE3mSG0BQNt0U4in8BHboVqzVO878AAAAASUVORK5CYII=','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAELUExURUxpcSnCS////8LuzCC/Q////xW8OhO8N////////zbGVhK7N////////////////////////////0PKYarnt/j9+Zriq9Lz2f///+P35////xK7N4bcmf///////////////////////////////7bqwf///////+v57lLNbf///////xS8OP///87w1Rm9PmbUfh2+QP///6fltf///////+368HvZkP///////5bhpf///xK7Nxq+Pr/tyfj9+fr++1LObZbip+778DfGV0vMZ1bPccnw0vT99inCSiPBRqXms2jVgCDAQxa9O0DJXtLz2fz//YLblonenOX46XHXh97241vQda7pu0zu198AAABBdFJOUwDL39TSxOTuBOzF/PLURTz4AXjCyvjG3BvmCffCaHK2mCKrMG7Pgebsv6VS6efZ2b/ViMoYX+7AMW/F///////+EpDIPQAABmZJREFUeNrlXGlTGksUFWRXkCWCEQQEYjTGJTFGzR2EMCAgKohE/f+/5PneC9U7PT3dZKYq56NQeKrvvecuvay4R2Y31ajWKuFkMJ5Ox4PJcKVWbaR2Myt/GLGNbC2ZBi7SyVp2I/aHiGTq5co6SLBeKdeXv0Qb1Tg4RLy6sUwmu3tBUEJwb3dJfnIeBhcIn5v3n+2dILhEcGfbLJXyR9DAx7I5OrFsHDQRzxoyVioJBpBMGaDy7ROIsHmcP00EQieRaLEYjZyEAonT/PEmiPDpm66FGgJ9K1wkImsWB2uRxEVBoIQNLVttcaN5v5T4bC3E50RpnxvnWxreEufYJh9YsxxgLZDnWCyecmuir8BgNRe1HCOaWwUGX2OGTPQhYCki8MGIqepHQOFdyHKB0DugcFRXzs7rtIG+WC7xhTbWumI2P6Qqp+85SwO571T9dajCZQdIlKKWFqIlILHjnEsWCLwPWdoIvQcCWZfrcha1DCB65mptDgFH+8BajOawO+71xt1hU/LFgzbgOHQUR2mnJrp9mY76Nvqu3R9NX26dmirtIKbqREwXIqL1uOlMgItJ50a0RpECEeF1qe4eEeIicJfeaAALMBj1BI6zSqifRItjYUJzi1zrPM1AitkT115FQo/Di/MUkRt/8NLzsDMARxh0hrxk/oPImgtrBmJdOFzuOy1wjFbnnsOGWJvUAoeJ4/7CsdGdDUqw7ziWwv0mvuXIYQqs73b7oIx+l/XighO3aeD6wsb0rxa4QOsXG+G43jQEfQCmMO0Q4y2v4BKvjOeE2pja8HsGvCc5YEz0DK7xzJjqAO9gZJF0xqicDRqwGQ08WxxRsSTmMLTz3rRAC60b2okxt0nGFtYwITqiH0ETj3SMhxbVNtuYxJTodXkEbTzSa1PCxIaeUZSxepcyUq8FBtDqUYbC6uIytTDY/CVHxZENRmBTMZXD5jfbokpzldKXZzCEZ0pvVgU1aAybkVH90SsYwyvVT2GTNjygzrFcTeUAMAgqM2D5+xwjExaFdbcFBtHqisI7jM13sd6eJN8Ho+hbBLCpAJoX76E/Bki1A8MgtS+APtibc8kEBaF0b4Nh2PeCgApm5p2SSGM6YBwdkdbMu6gqmpER4jvU9d7Zdac/oHx4SMgwmrRVf1sJpaW8yYWZvVhveHhqL1iaPEpQ/9vpUuC+twPQwfW8cRoTvzO4FbjwJZUj94nm5EmPS1MgnE9E47JPZcuKoHaYaXJBmBDWE1QSlf/yEqrDE0TloMdF7HxELZFAlXmMDGxi7j3S4yLWzhExSyeDO4v6NmLmMdDmInCaAfFpgag+azDHBVFr6nIRawRRgV7AHLU3Mkm+y3TMcWk+UyrMd5rkm+ShqRnR0U60uCwUzwnR66K5WgYrHzbXcMUzx+Un01zc4kqDMsIu1kgeWxhezHFhM9yLheEYay2v+IlpukQuMOWnpyssZZ+yKmOeC6s0p1jirvGDqW+Ki7T6TGCxXeGnbHuJXMDmJ+7KSpjbFzRNcmHR5PYIYUzzTvAiDwRoT65n2lwAL/dOMNULcjWvK5pePvzL9FWTC3S5qhdcQTUnXv+O+W3PcJ6G21pcYIzXwajyXEHZoIgXM5KG8KatwYUsaYooH0jIMFqF2Ei5qJNRMdPYIthIuSibScGB2w8WyUbKRdWBpaHNkkFspFwUQ1tF9MYWzUbKRU30VNLB1GLYSLkopQOVRDnosmykXFQSpVIJ0Wf+c0/ORaGEkBRXUp1V4CItrhqKZSdio85FXnYqFuSIjToXeUGu2KogNupc5K2KWhOH2KhzkTdxiu0tYqPORd7eKjb+iI06F3njrzoSQWzUuchHIurDIrf5SD4sUh2jITaqXORjNPUBI2KjykU+YFQfvSI2Slzko9e6xlAasVHgIhlKa4zrJ2MLjcBlkI/rNTcyHkd345/TiaGNDD9t8fhq88tX24J+2jD161ay95vsPj1+4P3BDJ8eWfH+MI9Pjzl5fwDMn0fjvD806P/jlN4fNPX+CK7fDyd7f2zb+wPtvj/q7/0lCO+vh/j94oz3V4q8v2zl+2to3l/QM391UffqoveXOv1/3dX7i8DeX5H2/vK4z6/Ve//ggPdPMfj+kQrvn+/w/mET/z/54v/HcPz/TBCLjNoDSpmlPy116expqcvM3/PoFvsc2RX9HNmV1nNk/wByvbW7x20JqAAAAABJRU5ErkJggg==','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAADMUExURUxpcf9eXv////////////+IiP////96ev/9/f////9paf/7+//+/v////////+pqf/u7v9xcf+8vP+xsf/////////////////e3v9jY//29v////////////////////////////+amv+Tk/9+fv/q6v/MzP/k5P/9/f/Z2f/////////////////////////////////7+/////+iov////9ubv/m5v/////////y8v/////////////n5//////////w8P9cXP///wR8DtYAAABCdFJOUwD7BPgq0vLc6uju3O4Bw8TK5MDCGt/sP8L01PxnhF0x0XfJzNnHv8TlwXJuSCKsnKRU4Q3GyOjGudfPtJU4xpCwvqylB4sAAAdgSURBVHja5Vxpc+I4ELVh7IAd2+GwBwIYMIeHcEPIsTnL/f//09bsbkpHpLSxNOOa2vdtaojrlfr1oVZLRnF469XyefPgj8KoWo3Ckf+weV6u1p7xm1F5GW9GVRCiOtqMXyq/iYg3vHmyAYH9dDP89Uv0fRtBTkTb77+SyXoQwlkIB+tfpJPYhwLw44p+Kv0QCiLs66VzvKmDAuo3R32rMo5AEdG4osmBHkEDHnW4VnsHMlTd2TyYWNOGY5pOY2pNgvnMrYIMu7aqhZaS+OYubhtmJoDZuF24kki4VLJVW+jNtU5wl32Ju6BTE/q5wuKsIoFtZomZ5YCZzAQWi1ZFTTSAT7huOVluOK1r+IRBRZOJ/ppkZ2LylxZTDevA4crKCsC6Ag714dnBxeYNZGUFYfHGss8MOXtOfJetTAGtS84J9udw6feAQcfJlOB0gEGvn5/LGBj8sDJlWD+AwTj3unDCdTINcDgh93PqhbFRr5lpQpP97j6XH1XPMFF3mjTni06aLubzZnJhnmGqag6fGjI+7Tbk8d5q3h+ARe8wa07lbBou4+FDNO7WmeDiyFbkNr0ECWqvt12ZcJiQU28j+chnpCv5qJXayLapI7Ful5Gx/3WeYnLjvbhgCVzIATcQ//U9kzW/rBmYdTFFH2sdICcOLeEHmLVZfSGYiNaLyEYTF86AOxFZitZN1M4lGNcReMMVnIn7O4GK3TyyWdLxReDTgQ1nwxZk2AYdb5YSI9lUwBB4wwIKIf1sbqtHsRUbagcEohxwIaqxbX83WPbjuD8e7E62WDnTz5kBCHbCNEA7UpblYBO9802YdrwNBYSTjActvu8C9T5SgnGyHGzsb+J88lYHDr3gk4gp2TxWvqxhGMHI2dS/SbxyPwICsdmtr2qbY0TVdVlWjA3B6oSx6VDm5nsUN1S962TqbLyYM1bAG4pKtDfcylJ/SiKDChvjuGV1w6u4RX2lIqs0r7NMDxtjbzN65z38WlKDVkJavdrYrBkhu12phkN6aWJ5iFlcKLA5+kwslgeb2CDwpQsTQE2FTWUDFFrSpfGp5aT29lxOs0GNjUezsbkcTnUF1qL6biJYSQU2XF1yz1VHgprPC2WulAAosznSKp7IHCr0SIoUW9V0QQObtU15lMnHGj5dkuhUdfjf6mCzl2rYIRvG7X9WImlpxi7MAfSwoWLxgV2aGUlQ/9ppSH6acG4Netgc67IclZD/GHI5ssbSdkEXm5hSDbv4NS5bPklqBwtAFxvvJIuqpJJ4+icQ2JIlTEEfm5WsWiJSsH/mpxfyOyZAdm3QyIYEG5vJl3fkj1+YetPlORdhg7v3LStMpvokyWPBWUmNjbR6e5XsxjZkAXnK5iVoZfNGPpHRuIUPjAzDI0GwIfElW5ENH82mTF1Awr9nrMk/TPGmL/pW18EmFO8UzCpVRqwk+iVNnXdDC5utJOm4VLNmKfnNgQqNWtjEJD9J0tPSeIYPzJkoQycNLWzaZNfC6GEOH3g2NuL4OyXy9Qw9bIgfMH8dUL79IK7CEr5WVmdD8lMirj0fqJ9YYmfaGZrY7Ig7iWPIiYp5U7ElB4YmNgOxOqdU1AvFMW9BaVwTmzEhI456oUFqTkdcZ/QNTWz64iTokOhqkABoitNkbGhiE4v3uSZJAbnJqLPBycjMtODNpM6GmKkjMZNMwHOq5tHEZkk0IxFwHtdWZZPftX086Olhgwc9H08HJ0MTGx9NB7JEeUESpaGHjWcTQUgSpayEMMlZQ1sDG7bu7MpKCLy4ig0tbG7w4kpadpLfbA0tbN5J/0paduIFeWhoYRPhBbl0qzJl6k51NkS+YMm2KtJNXEY+9WYoseFxaco2cfLt7SvV2tfKJpVub+Ubf0IZ9oYGNvjGP19LZGRoYYO3ROTNog4Qp9PIJpU2i3K20U6eMhu8jZa7wRgbqmzwBmPu1mv9qMoGb73mb0pvDUU2eFMabdcT7BXZ4O16/CCDiH2txAY/yECPeCZAMDoqscGOeHIcfr0yoy7KbK7kh185jgXvbCDYeIps7AZyLIgcmLaAZqO4NgFyYIoeJadAwVfSzQI5SsYP2bsuUBip+FSGHbLj4wdTdohAId7g4wf4YEbSAxpbhcyADmbgIysBMKjHhXM4PrKCD/M0gcWpcH2DD/PgY048GxjtC9bF+JgTPgAW9IBD/U2yg7ERNugAGD4al9jwCeE2bvO3Gt8j7HwKH43DhwanLohgn3aD8c+hweVg5xPCCBtkaBAfp+ymUAiLDBmnLDZo2ioyaBpgg6ZFR3DvXuFMXDWKjuDqH05Oig4nlz+2Xf5Au/qofwcb9U8LjPorXIJ4rYEEl2mgegkCvx7CY9qcHXq8Tu6blqlwPUTp4ox5kTTn80WadhbzZjLtKl+cKf9KUfmXrf7Ea2jlX9Ar/+pi+Zc6y7/u+idfBC7/inT5l8fLv1Zf/oMD5T/F8Mc/UlH+8x3lP2xS/pMv5T+GU/4zQfrhnfeAkvf/eFqq/Ee38OfITh/PkZ2UnyP7G4kg3fhsBMqsAAAAAElFTkSuQmCC'];const weekdayList=['data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOAAAADgCAYAAAFtKlp3AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAA4KADAAQAAAABAAAA4AAAAACiWSQ0AABAAElEQVR4Ae1dB4AkRdWu3b3d28s5chm4AxEERVRABUUxIii/CQRBVMQEKEoQTIAoCqICIiZEkmACBRFUkiAiKBnuuJzv9sLe7m0O//veq1dd3dM907MzG69rt7uqXg5VnbvHmAKlu7t7KS37FyBjNNGdTsu/8tFWJCGJsTuKq6AShWk/LX2lMmgNRhTtmyXnL9e2YOLXSmOWXPBfbSul9lE7iwk5gvpNPtIsOc+Yth3GdNDyiutCqNjOC180pt3SH3BziESj4ytkr+6q+8mGDV0vTe/s7jKnbGkXZSTkiknTTEdXp+nq6jKdnZ0GeNRdVHegJvjF1ZMc/ec6uhn/w0P+1F5ZUVUN7VDKIYXrAKxvWbZ8k1k2vdvQH0CdO0mALOi7xeJB1+XBTUcj0cvCtIT/1INvZ2WQT7CtoRzes/Pa+SDs6rIKPQFPvvi8U6h4rcHzzFMv5Bio+I/fdwT0oUwIKWRlsNhart6ZziZTPayaFbJH6hkorYfUdN5t72gXuMWzKrsa5nc0PFqf1TnMrKujPJpac8A+8zlXqoBrigRosey1757mXU8vprgZM2/hHM4taKIlpFCFkXls4ZyZu5ndps9wg0TxrlYPqYbSPfZewIowmJQmqjAS0i5mwMjrpgUjj2vb17bDh+hgJPihHHy53kF5yMPJnWJhVcUw011JzBXETEq7KkVIVxUEkjAOpRUOvFXiDLR4KGjvREqCElK4d/vhjFk4d++AosTW4pXPhySEQhrC9FInr8KjTnuvufrma5xq9LGUUvIqhOC7Hri7FPk5vAUVKkfUM/X26M8cyyTot7W3cQRu/8eflC2nLqjw9qt+lxhG4DAytRz7+Q+a3//oVvPTW3+uoJy6oMIcDgL87LZfxIHNbVfcbKoqq2JxCkytEN5oOeHo47VZdJ1Koa8MGrAhR4nmlYEFVrwDps0Qb4d0kvbGxFeZqTwsYHRR6FiFSRveoiQT8brNa3JYQttSOgjcTsEdv2QV7b2pjB8zIYchDQAG1zdud6S7z15YR53JAOQcRGkeHXWJDTpuat5zzl44IuSDKF/hJoJNKVF+PvaFpHyJUwhKCsV0qtbn4+oJDoeHqfjIgILnCr4goi94HpKomZhzjhGSLC2GNjQtiHEnmFGc5THnCkIRrAPa2PMQOl8IivMwpETxec4VlMTVBc5DNDqs0Ff2y7qz3TnDx+vo3AYnMnRucfnkWe5wMXpOgXOOi2tovFnaz7e18cEWzjmufv1f1KbtpDR85P2rLefQERkdleE4E/s571Cfj9aA8fBkKAum4R0+zLf8kOMd5o+H5kpiepWawId5lviB/zwaEgKhPh7CcByKGsb4xq18aTVBaZp5O2fVgUHzCDq/3noejxScgLhiPazv6uBjT2AUzycq1McxKjPasyych1QNq7LGOUmugW0p79w6uzornMVk2SGvPNAc98R/CF1p9t/nQAmlesSWex4T/IT1283Wum3s8dyFs0UhW+J0ccNtvHH0jJzwgjCR5Qe94gAZQKSgk3G8NeJwqYfsMbk+adpEM2HKeEOG0yJH42FV0gvmIQlUpSKMlBMjrSVHttaBAnhePMmLK87DSZ3z2CscBHVX0ekylLlzC7IYVhNcT1QYDyPZG4tno4kPebUGwmO/OIV7tR3OcD0U8Il62m7YucOsr1sbYg9CGgL3XidR4Wnf+FzoqAyh7MlRWtT0RIVRwqM/LYf0UXix/YIKk7wC3Mdp34fFGVNQIZgg5NpvXO340f/SKV80I2tHhJTqATNOapJKQYVvPeQI5p02eVpIxqGvPNjcfNkNIZh2/vHofdrMqQsq/Mxxp+UwKeDBxx/SZurazcN8HBoqpbnh0utcKKM4pUmqaYMt2yA9Hu2Nia8ysdcvGNIkS9PA67bjUDdcoJCTNG/mguVAqadhsp712umaW7SEjml8ZcOqhpnRI8dE6VP1tzdsC9H5IQ0pBJWvNMTVw44qAztyyArR0cGDdm8U1eUUQklvKVVl0BFSCECaUsCwZlIwMo2cOJpyy041DUnpmVCsJc4wDzZC6XpSe3LimlHZM+KIfFhiBmGcT5jTXvH9B0zbpjeYzlY6NrbLvj/poEGRauucI88H9FC2PzRVXI6DSY7dsOnr5MrOKj5GpGPAj9dT8tkx2tOi7mzh+opJ0+3BLR0rUohALwe7QV+vXyOCOLDV69cwCsecF4+YKzK7wrJPb8f5BuR0m/3HvX7lx/Y5mwhzi++oizYxHUKkob3pzXXfINObKtlAHAKTRRCOP75FpNlj58gY6jMWNLxY+mhfqDgAIs3SkwHoJ8rurrFyu83j2+6b+58H76N+l/nGgb/cMHXkTFwM4UK6u9VJ5yBhQs7xeSndRxBDJcrQjf7WetoRtNPRuw5NRNpmkE9JNGskNI5fRwGJk+xR1piO+g31jXT1iy4hxcjurpjAdJpFMoX5z/v3CezctYfdSxKkkDx2kjcy1H5YEajvqvvxJlGomZBaBT+9+EWJsp5+tjfQuS9u+DWbx595yjoFHmu4zaDyB7IDx5A50K9cviZR9tIXllvZQeAgK1/RrejrfKJNZsVUNoKYZX5AuSzov3rf/cxxa+nSmF5toPPruo4Oc1w93X572cuZx6fnIQ5++tO2ypU+zvNE/h6L5pt3PUUB9GRvossh71zaauYtmmP5dd7mdw4+8UaGjAlR/nLzl8UhaxBftfAcRKTVULAiM6G+G3I2QH6fHYnQR/mpH5zMkowEfj8paPtDFH3MQ38OAsZFjLYRt8LhAA0MHkYhZ9Q47+y6ZH6SxToQ4AT91tSCVaKDMBJ/KNy2ffjp+oBpn523feZEO4bfl9dDfjYq5SrWwUNbTg6x+0ewIUQ/d+IujURN0o1MFD5k+kPewdghWih9uC61ZsMaRxY9s49enYniHWMfNMqSQd+hr195YR+YnV5FjzLoi59OV6Q21G00V954tfnUBz9pHn/2CR8davuB8BFVVVXm9z+8lUFJNED2ZCSUnMGf2Gt8dz90j9GHFOIM+cuDf3U+Aa8LgLixEy14BMCnAd6XEaVP6pfsIAT7DvltX+kOutpdagmusKSXVPIQVVU3ffd609BEZwIJ5f1vO9b8+vYbGZtvGCaw9xgceywavdRV7h395q2bzf9eeNK85eAjemw4GKM7+qidOBYtyxAt1sopE6eU7Bx04iC/UFEH6fwkKJUVlUuDXvkvXvqyS2lv3FL4aQZ3TYYOjOXI2GqMDlOA6fGQgg83lWJwWt61m1abnc258z1uiPoOriAFc30lcU76+IHSpqnmHpXxbKomeIdzEAhK4juo+rNHxM01G1ff39TS+MYovL/7eOCI7hRPjtqBjYvCXEMBqMnR5VTNQ3uQFX72yLdZNzI+DKf68xEFFEL0/OG/kNRe62AoallSVi2U6T/Q0kTLtWUVTMJ6U3ZeW0nxibQklrzMBZAk9MREwYQowF46mnS05DPAw324WG29JTt2IxM1jpTj3RV+YjGK68f+vTTx3lJIf+xGBkzkVI1mhLrxzm3+/T/MC2c1mdbV4QfuC2lNgy8s+wjPvkSJsRkkxmbiqE3kAmLJ+XL/ADdgsHTTst8v8rKkRvZM9mmU0eABFKssJ4OICuHyO/fSBTsM39qimy7ddOsfSyduwOzcktqJJMKey76KTP9nVGwog0SAU+scp+ta16y+o/4Hs/Vq8ynbq2326J5gNxyj7NHdoA30Tsst46cmXspXfr1ajVgC5t+UuWjEgljZK+nu1WWdcjEZ/D865M6oL9o/gjL5N+24E15SNjXOuevoWVLCzSbRhLZXq+EUMsiZg3PSp8frQCuyUePf9oU/3LcSmR50zJkgexg9bElP7zl5pz30Nmob/9lU0WsM7qG5xPnZ2qgUWv+q7hxuOiPZAgJhOOoQ7aLh6bXZaGusc0pMd8YF8kRgqJ9PtgbLqz/5wFvVXFeTPLVUhiP1hzusbVy/5Vzkg42SGgjpc+bUKWQRTrJhVCsNWnDULQG/wCJ9dIk3jeyoPZ+4/63OIRbjrTSDNJmC8tSO+19kIQQCJ+LBRtm+ZMzPHA1TcrSpqUFomQcSLD/XQZ+61nG0bOFAUJsDlyu7tXkny2NqtQcKqNDtPDckBcLyeR+pDiqc6yc77l4Eh2At1xCCPwtjI3iuIHOYg9YgclLcYAXCBR60VJbtQyJLVbzt55VtZViJIf5zHzkBuza//BWdWAd9p0DkG71521YZjjpXeIjKnHyqnV5l4rgETjG/OgEDIc/W2IL6+PrtdCsccmNkP9EEXmeJk8MCaLW5dV3swUiigyzKGuuiT4Imj59gTli7JrRhkah3m5tb6PVH/LEDgfE+PyEN3b+Fl2yb4lCPGTfaHPM0HRTp/HYjo9v8Ygu2osQCfvDKP8vIt4p1EAwigyU6fjaeJGNn+c2tdE1EDaGrW7g/TxeriA88lp/b0mcY8eKP/7lSiUIPOL31bL68gjbonmzcn8cFQELRgnVQcyfPyu0HfRoW4RkKHBtOCIAPPuBA8/B//2OO4+MWiBAxr3jZy5iuED/Lg6FWnvZh/KKX72GefWaJeddiGqpCArSZu+cs6tIfC7f2MCb/Kt5BkgI5MkcgVKRKzWrMa/d/pdw/J0p9XJ+PUNiIBH6WKvwwy8nz5AO758t2Zxxf9yTV/pFOwIdW4ZLoIIeP+OEaDOGF20Ef4mGb4DQI0qc10AE/tUSWpXdOgUbkM72VF/Crbsvv0bKCAqs8c9AKhnNsqK5hgTXSYsQwoWePQa9BUX44xG3IgQj5Q4v/LT138vFDThElwUEYK1JgBpsjdlBTDeMmO6JGgUPYhCvoW1oLYBoR6/QAhRLotX2pGO74LCxNFeugU4IG/lkyanWXwdyHEh8PDPeZT5jBJ3QSHJXDuwvQQwkVoQN/cl9pmSHFKnYOTu6cz6xiSLfB6/2GXr+BWn0CCV50cXjw1BIQwf7N34GDS3mEjPrsADZOUEM1+o5fNiqMIRjbgBp/EEC1luinAhTu17EO6mcElDB6zV/h/V2nubUQO0T72/By6s8cLGc0+0PWkM9g7EamUKT9hwjinqoohC8kv5z4kjO4bM3yctpTdlklO3j6xV8IGaUPA4WA/dgp2cGo7TijGEilR3NQHfj8CZ81V/zqh+YDZx5nbqE3Jh998t+MGjViFD0kQE/hR8oNd9xkbrlLnklT1B+uvI1PlNH3n2Ksqa7hb9YoXdxcV1y+uqQMHrTvgSy7uUWu91x0zSXcv+l71+foXLtxbY5zIEp6Yzf67uoHKYg9KSU56Ct8adVSv5vT/tTXP+tgyIafkc9H5jEIf/fD34RommwQnZCUjZIdvPmyX7OqMy85i+tX7fPKvKpPPPojOfjlMVtivKKJ8rH3nZRDXwygZAdH1oZfFfzqp7+SV//L9tg7Lz6KrKoqzcTSuKPWpOhvw3tPfVjK4qDOp5Pfe2JB0y+59tKCNOUkKGk34RuCJ3/xeHNSOWi/V5t/P/UYo/1DOQA0QEm8pcDLkkEYkM854L9yqtyKQ9svc2bM9rtlb/NdGbosEFwHIBXRM+Vyn9H/++nHzBh6iX3v3fcqyaFCduLxp7IN0WIsPWjfVxdDXhJt2YZoSVb0InPmYC8GtyTRza3R+53x4lJlMDqZ40X1LXT1hhWpFMY7WFGxIco9kJyMs4W29NET0evgg+4mvkxtOdexnsUJsSgzasRo981KhfV23UJDsqUt9KxESGV0V4ZdBAh4hUZ0X9jS2vT8qg0rizsyhqB+KFHnYII66A/R533baoeP3HvaxOn8uTcfPtDacc6RjTVqp8sgANEsKlG+4ao0fV3TAGzac87e4XM1MQJfQHCJCzkIfJKTfe1AT/Xp0FT+HAeBGKxORp2DLy6V6GiJI1TcAK1vTLI5NoO+E5RNPBYTGwifrp/afyPHjugn3blqKVhfw/BPWeqJjj+jkiupbyFkx6C0uyxRIufXpUxYIbJ3l8WglEIGi90FNzEp/c0howDQY6TB8UQOQc8BuCtADx72WsEdAnccVEYth9Pm8L4yymNRJSWQkjSJpLxEC38ZudzG7SLyLqLE5r8XkCcQRSeQkoYZcHwemYVR62+6zzQ+d5jBexB4tBbHEXiyl2uC7Xs1nfRV1hYW1McUfWP3WEooPdedrqRKICUNr1Qkn0mn00W5alhrln1nN3pujZJFicKCL0drmxOIg0LgKKP7/5peHxoApX/s/i0l8thC3hdMICUvdEG/kEDFd5qO1me2P7xyU9uq4S3dO4aTkIqjdqybxrMOieKk2ZrfSELbgxNsWe2khsfH7s2vEkAuTPGfNcSzh1xsFXz0QegcXqj44Ws0Qc4s1jX1EE9KcsH44oasT6lqLcru5ypGN/y9elZTTUVN+7jqia0HTXtz9fzxe80R4UWvr6NEfjSJKzGBFKy/EdObkhh9+M6u+rrbtn5rsgSYnCapeEIdtYMRw8fr6Y2RaLJcH7POSyC1N1dWmhsnync8oY9lUWhhdOhhVJcIJM7qj8KU34OzTJLHtgKPvxj8xSPmFWX3Wvryz3ck9yH/XSzIgT1G7rvpjAO+g1f90pYqSqQdYQFL7F0lUmTVB4RxrVu2XNjR0t04jMgnK54ZmZ1a6KBNC8P5JQ9NlJ8sbEoVrjXhK/hNRAhhMayDxYYDzdJZgahUnULv6WcAS4NEi0atPSHwA82hKNZu3kXY0LL/YQ2QubjxyamfevBIMrXbfGHfy1fsOWGfeaI9cU2/4ND9ekriQz5FTgKJyIbCJwu379h81ZZtlatxBDpMiTkMllXawgOQ0shbOl6C4vaBbtOKBNIrUOC3Atg0ntWBPYwCDYHUdGkTALSAW3LguU2rQGYYb0m5crrjEhjdd/t209an295xFf1igdMPmwTE9aVPnT4PCn/yxnsAxQYmqTxIMl5JSfyvEoQuIRHyj4pIqvE+KJIHY9xmjInJaIJhEets2wqiHs0yHGnSoq9bcV9eyAtwFk8v1nWDzhVIEJmqp6B+fglABIR4OY0iKxAflo1Isi8g6IndHAZIkaLy1HZAnXxLQz9YU3H70usX225SFfpcXSiBxHFUEhfg+jKv0vBQsUlTY9hAImDTeQZIoh947FFJHL/xiCRFEumSioQSjhLdTN8u29GId2WDYKse2BDWL1bl6CdeJJr+JW1oUOHK2gce3bmofK2fxQ+BwrYi7G5rbqJ3fOWuLMsm+ag1iawfPU+/6rtj9XULVzcsW8tGJqyIloIpxSWQgF9XYFz9fMMjLzIcgVCDbI3QUNOVKH5nE77vQUWThHd+9R15fxbq66yWrpn2JYuXL4N0uOtKSD5joD+gCOEBd3aKCMZDpoUzr+WHFNZH/dYWOnMCoEi7m+hB4PWrNjj5LNHKhwW+XtYNoFe+8fgndvO6cc2DFOjvA09UYFz9dNvfdufDdNwrRUzYM6nFNg0i4amwYXaE6Q2sze3NZgq99sQn724fQvs6PoDRfSPVVvZFO+0b/WCh4vRT24JsMBgtOqUZ4Knl0wLNfQvUAKLr2spgd0cbW3aaacPgF2ylRfd3CXafs44GKOTxgrhwN5CvSAmVIHu4djOQ+Ofmk9FidnKy9XvnoFWHYSobS6sQ3u6DRtTWcChO37DJ/Ky+3m6OsKmMLNg/QhL9H7e9lhJmzD57LmSYpiGQj8C4DR9bABqHp6j5eLbRwmA3/vS8Ee0AL230q2vIZQryKfRN9ivXbUpl9ztfamW7Zy2Y6ekn8dDI+m1t+8CUUtwYIOGwPLHwZ0hYqZAouRgl7zaShUQhxR1gsNES6CUrVphNW/FrklJm0Gnhm4Z3mYm0B3qJJt5dbf4GwZhX7rMvNIZPwK2Z8fo5TCw8Tj9YmY+89vldIn28HXzQv271BlO/Pfgg6qyaSnPk2GFmMv0u8ostneb39TQrvTJ/0VxKokRC4wN0nH6PLdSMfuY9hKQOHYly7lInEL9JSCaI42SbM9CDwVkNDPAQjr586QAmYNQLzZMvPGdaWnHDIlzmzJhpJk+a5ORIACBZCs8q1W8TwToJ1o2+fRHF6bc6VQDPUBKldsbJh65YPNm+4qVVpq0NB1nWHq66zeSpE82YiWOJjwartY/9T9Av3MnrtAkMD/lkefCITBGrQ2uCCw5VCMPUzGPhmnQMnv0WySNFHECVq/ws0soimNOreBs0sLFOpqE2Zg0nFQTCpXhAVD9jIQu09s/B0KDifLGylXLuHrPhLi2yVWGZ6OMPg4dlsgSCWDloUM/XD0g5SvoEkjYYzqaywdY4hgAODFYSOHQkOAAqTmACASlzOLyTbwkc3pI5PMsO+FUK19Dv6K0tpeoXZwL/rTy1T7Uk61cK61gZq9QJFGMRHJgpw5zW7JQ6go6YWmFrEAQjn7HgpxnIdCKGZbLzgCqeaysfQpjA4n39bINwg0jtC2yK6GdBgX1QA1qR4OkHxLOP1ECTk08NoJnP6fLwDkZiemPmsTm0Sp9ANlUMhvFwnB10cHEYXQ4I8FRcaJhBYI4feJVlKZkNMMLxGYeHB7eI9fRbuaqHaZQHCVAOS4cuYK4LWmHi2rWpgQQFtjJGaMEPHBVNVAARGMv39At1+depEwjVwUiCueQC/hEAGw2uxWvBE08OHjAw8hK0GaJygINcy6+0Tj/jQAMy0Nk2cxATQzy8yrW1yCO8pQzrEu4wTGgD/aKX+VU/ZDn5KiMMA325S+oEHtp8cl7dCc/Y5uXZlZHRL/L3NBb+iXxPZWR8/RiBLIH9GPxyqM4SWI4o9qOMLIH9GPxyqM4SWI4o9qOM1Eehpdrofw8mKivNxwC+efXF5rGn/xNl5X4a/ljGIQAcEDOw0Pdu8O2ApOQNgRyU5MKASCC+53PVTdfEOoJbPRde/a1YXAYs4lJabwSLfvXJdOION5W/PHi3OfKQt5jd5ywIqUr6alWIqEDnzgfuMtf/8cbQp8Dw7aVTjj3J7DYt+emFi3/ybbOxjm7keuW7X7qEXzHHFuHbP/2u+zTYIa882Hzx5DP6/LfR+mwf6MXANX/17Z+b48460fXPuOSLoY/jRL+id+HpXzdf+f5XHX2+xsX0ibN/2e+4xdHht0j93yP1v9+m9Gs2rA39Gi3g7/vcBxQdqv/5xMMGC8otl99oRgzvm1c7+n0TetUFPwwFQr92hF+z9b8SOHvGLLPfwn1DtEmd933+A3mTF8eHmY4fmy1H+cAZHy6HmFQy+nUGwsJZ03ejm7v7mqdefNoZrEl0AGpcef4P/G5ie9nqZaa9Hc/WBAVfUox+bLC9oz1nNn3igk+FtgCBhKCFAQeb/XLhj7/lPrelcGxiX20/fKiw3qj7fQbCqQs///W8vt36/Zvy4n3kA/95yO9yO+5zX9XDevbi09RJU3Lk77/XfjmwrfX0qyJ9UAZEAuHnH6/8bay773jj283wGvt4YSxFGBj3k9KVJX77MKxhYPUGTALxnMxH3nNcTnRO/cDHc2D5AHvO2yMH/dDjcnCRgxgCgAGTQMTy/458n9FPoqLfkyssbzjw9WANlTv+8Sfzf6d/yOhm7Z6H7zVx+9kjDn5ziG8wdPr9ICYaJHy0t9SCxEcT1NrWaj56zimJot/82sPN547/dCJ+oCIGXALLFSidvZ+98Ayzct3KRLFfPPlM84YDD03ED3QEP8ECI+l5DnnwI8HiQl8Uyx6pSAhcArjQIxWF4qlPZg+ofWCCrxk4TwSyBOYJTm+imlrtK3clKvETWODbJPm/XbK1PnhppUSbdgn2+obyfObeT+BD+SI3qnbU4/nwdds3m8bmxnwkGc5GoNDxRDGB8g9iZhJj3ld70youtAMuxsChRFvfuN1s3LK+oEu1NbUPzZkxP++hsR7EuARCaqEjUbp3V7d09WL3SZFCllQPqzHzZi7Au2yFSIcsvqFph1m/Oe+8CPlOoUr6Vq9PN5tiugaAnMgWSiLxdNFM9De9vuCsXUIEqqqqnt59VsF7ZqGPwMYlEFeOC34XbX3d2vvoXOawEuzNWL0IpNztrKeZh12dKzkJVEyKmciktFndRJvVYj4ZpSp2+TrljNM44bvSOVf7ExMILkriP6k6WCWkqRubdjy+vm7dTOKdkYZ+V6KxByeIZ7G7oGpKHj7fkVPyJlCpKRk4Rxyt/azuswi8iRL3j3zaUo0EEjKGFiS7b3+DLJ/lQxeHa9KYcSh5k4cQpEqgxooEfonF0opgZyo8q0uOAE4Oa2xsK6mO3VzGaSkqgb4AUnK5Vegqwp9Iy2qfLmvnROA6guA8zi8zqRN+EiuHbQABaJ+6Dy3X0PIILY20LKfldlrOoiXVfrk/3CHbBqXdZYkVOY9PVG6hJW35dlkUlyiEjB2UdpfodpidgoBfYelp+UxYWt/1yOBBaXfZIkQBOLynWYvw9em9qsFqd9kSB0EUhHdGklBqN/WRWSmODDa7e+WAgYKAn13Pe/+wh0HGB8pwFNdbBfH4aC8I76KjTPo2Y/lLWRJICZtOpv2KlreU38QhJxHfYj6fEvq9cnhWUgIpcd+AMeUwZBeVQV+/NXtQMnu8j+9RAilx55Lii0oKetuml8yan+4w7Tvok7xddWbsK5abGccdXpLMvmDuHbsxK8dTItuKdaGoBFLixpCC4NO1xWoT+g7z0gWV9CstlcGPfdBbuvzxc6pHLXjQzD8r9/n4nukqJ1df2P1rSuJHijE6dQIpeaeS4KuLER5D222WnE866XotPhjOHxGn2m/j53eGjX7UvOyK18Tw9xeoL+1upSSmfr031bVQSt5tFLlSk2coefQwpE0eEsVfgKcav9qAvtZtW15jWtYu6a9s5ejtW7uHU7xRUr1TVzCBJAg3dd+X41TRgE48pjEqlCgkjROJWWjbDKOEPnvmvKJV9ApDv9ndQrEfUcilvJtQEvALEvDRQkLi8BuaV6x6sfGx9qbu+uHt3W3VL2upr92jtWGc+80FTVzoNxiQREqmTeytU1+/Ub4aShr4u5xcocMq9Tuh6OjHzBmB74USicOTl/ytT/v6B7hZAmSKKKEVqGwIWFC3ObCirXb/is6i7P5Rzd4bsZ8YOWxc67zRC1sPnfX2udUV1almlNgfrGlzmjdHiUhK3ptJzL2BqMKte+t+vXJ199NzERX3cVQKCtpva6oxs9vtphJJ4h/NsAnjT41Q298XUvsHU+m3IvFHHzPnoNtoM0zbVJOtbFxIp/3ZAKRK4aALEmfbwOvH0i2PL//E4TPNwsoaEqO26gCDDwTT/bjWZPcZ9PFzlenHYmTlmM7PvPzCdbNH05fT05e8FwFiXy8jR7FpTZ28Ozf/eNMmsxwPNs2FwRoaBM/G1lTqptHOLsqKDQrV6rzDITD0YwU24C55GNYQaIVymyhR0MZoZO3AcyfQ72gJhz8pEbyVr3jwVOl+2dmWxm6SHqN/Z+eOqkv+99nZ0H7xq6+vGz98cppnbCvJDjxKiAmVU5L2gVtyKGMANHbb8YMgNnkSXI8OceRwoZETCIxob4nDsyzwUnJsQDzxgvUSwoEHOQrr9vVTm+1waDsORD6zeHihwtqz0bdX27F2i3KRjEGClq+/25zz7+MnX/HfczYwovDqTSQj9sm/nAQS4aEkr+CvUm9oWb7i+i3nVUO320xjBCNyXLS2ePymApzWTWcoMIRTuLcP9CTYYAdB0KBAVQUPd9WqXFTbZsg+lySlgwCMDsix8sFKdEzRA7tZGLitipB+BVL9fMMT07/08AdoW5yqxH7EJieBJOrBQuJ2dNRt+OvOn8wDHWzUfYza5pzniGhQdNODEY2EUa2jF8nTNpJs2xJQy08dGw+XTCJM0G9pff1KDDkqCPzU5h8MsbKUDLXoL95ulqkCqHaDzep1+klBffu2Yac/dAwpKVxIziFRqlACieCAKEFMv/uP9d+bzkkiS+AkBjD3qS02MgBAiQILsYnj5FDCdBPkJUwSh+QKXmezyncZhB6SjT+nn3uqnwlC+tU+leGCSKROPtspK/ghviCBiC/qdHazhEAAx8DpF/EcGlZADjR3NlZ+67HPpdlt5bxBFkogyf6blZ9Y3bD1PI0B07BhMBaRBIa9ltCzDxopd9BiE+knMBoYO0OFlWSRIIgXqUHN6gipKvLqZwGBBJYCXieVIE4QWy79HtgtFlrZkAlxNj5OBfRCPxZCL9v53KQXtz65nJp5C9GHTkeiCZyQj/vx+nsW0+aSTQEdFIt6qtHxihJpULpDJ+rYTNLiYBjdft/iicrxe7K1mUo/WwlByhWpo4ZH0Lo1cFuMlHY7/1VeSL/X8ZrffeoL85U8Tx36jIdLIAWq4L285zr+vtAlzGrAAYQLMgdDKDQu2IFjH1m/g+6c8KzzkhU6kKGk+ZtTau9oaOADJJYPR0mO0xWrH0Cr38NDP7MzLGwftp++TMYSsdq/sxFX/2BberubGpvdeEEinX5OlqcfSFpUP8y7e8Wt8kup6MSX0M/kugQS7YXx9ALd0rpuLe8sqAuF0A0vxRw1Ar9JZNvWMNBuR/KiydKDFq11NmpNAVu8gn5+1UaSa+ysrPx4/aTb4pUuxM84XYE2yBToRKaFE1lj407q2IGltdqrtdqrNdmN3xtEgcxwfCCbEUHirH8Ao9y24ppF0kq39hN4UD6W+xpumKjBAJ0zTSxiVgmISPFpF69YTkA7gjUQcFgXwBzeO1AgKMSzXDsgqMslRz/wTG3xfmBccthYJwHkLN/S+jYDs24NEtFzu62hVNnBoQqBsKb4FjF9ihXZ+Sol8xOosNi6qXIbX1h1TrJmVc9jl/nigoivJDV32sTo+V50RipcE4zAUWmmH4kMnedpYlQ/q+bsiX7FU8/Zgs0ksDbJaIvlsnbnaYB7/O2t9Eva9FlKnoVqX0q721paA/2kWDSJTaKf1p4umKflvlV3pN6Mpk6gCkcdOAnD6A/7B0bYyhqGwCjtS610M4Jnmt2fYPbp6PbbbjaKLPyStJMvICcTGYF81WHRrs/7Z7ZPwufipQ1rH/ZRfhGZAnlhp92McuLIT99Wvx2xu72tgweexCdZv69X249tvi/vwSTRueOV1AmMBgqGYTwhiJwo1xczHL3db93RQDfy+UAAmyR/M+klkhMKvDE7xWf6dDFNfBtolyg7kwL9aBGDlwinn+0DCgKtULSojwW2YxJzX6SIA5b2t5vocZUi7G6wF8TxA8oSI8QHmuP1W2Whan3zyokhQG5npoJSJ1AZxBDqcbwkCBIcBtHKC5IQmTGjRjP7pg565IM3kUgSZiItGMWhhBIpOfzZBrkpXTOcrtaFZFpLWD+h8GfxrDlQD+3MK4kCLfq2RpuKJk46vHbNkSPFhg1tduvBicxv90dX0iaXSnVNtZhNtsE8HiRARPQDFC1NXQ1VUVik3/MERgRRl8PiqigeAV44bwGDz9hEX7HVxGGTxMlDQDShIuuWlmGmVZ32kudkgwwR4WhY/YpkuHY4vdyJFxNJvmVT8TNm4WlJYz7+4upUdl+3pcO0uNtYIgwWoMTpF4rcNb22HvIil8LwNWjAU89AHqmwQv6pEsN08waEjGZRp3hsoGqH15jKSlF13MYdZkMHbUJ5/2FHM2aglfcdum94OyUQ5eULF/EmLjiPgnKRDF1c7OYV7M5GQvj6HS3zCp/C/P20lcymAI/ZX0F2A/6u59aata20BUmw+4INHeY328gfKrMXzCqonwnLsIq9Hxgnlx12wUIQ7AEEmYoCPJIFZyU4egAj+Ne+4gDz8H8fZ9ovbG3l+sjh3WZPGkvbO6vM/W2VZjU9qKZl0vgJZlg1NkMqn2ZpIf0WH6dfYZxa2BqiFfvDPokvC1+2wLzwzBIyq9t8cplcrjxqfLVZVFthtrV3mnt2dJkVbWSbLaPHjTZVw5B0lckt8gMEsiFVnyxLSZWbqiRUIpUgDvf93NEakWqiwIU2CkRwC7WjUUdo8BLsX/+TJCaoYfA0us85cxptvqw8NS1Wv9ULRqULdMMOgsMqrS2d0jA8ogf0LEvhtFl88bmXoCIo7CiLJZh0xk0YZyZOHc+8KsPpBxU6Xs2dhFXZf0ceqpFtDaK1RQeV+gArc0yiwc5g1K/d/5Vm4+bNZvla2q9ESu3w4Wbv3RfSZkuc9SUl6o/I0CDZmDIWdqsshwdGgUoAO7EPQ99DY0ezcJ89zPa67WbTBjoqtXihonej6YBl1vyZLM7J92Tjx5w1LA6vzCXWqTeh0KM2hVpkGYySg3GxBn2fVoxGdAQ/lWbYFH6agOgoYEIdbJKZ3tKyLHiPTZ6why1R/RgdthTSL/YQMUyy/NIJYGFZ0Fxhxk0aZ8ZOHEttstgag992Ynk6SgVrbYUCi49mXRWUWAc7nQKC2Ei1OmQkYiv7Cw6GyvFodd8libIEwEtcCCDJY4ANjE+r+ythEH7gLWlof6Ywn1aS73MQVvWzuBj9aj/lgPft3PelB/LUvpD/bJ2l9+JjvS9blXoGYnzLrtoGjmzTEHIw1CTrOJtObelSDwLAY/Eg5xAIIeNxNsFEqKgoLWrWb2m5EoIQHXc4cOBlAlcLLpBpsQGeFCTqJ5lx+n37VD5J4abTz4qcxQFZmVrpZ6A1TKyjNTyi4pxQPAIhKMFTz8bSg3pNTajPFEITIiJT0WAJ9CvU6lf7CulXayHM8gSS4uUXwrNLqp86Ca75YnrcTp1A1gBjrDUaON18wEqGOWuloZsfmW0Cw1r5dfOKsMsfkAHeyQeQKRLwbBsYCY9iDVX+HP2OMNh8wqaAXVrKL4ItHmoi8oEP+R/BK70YV7516gSyAd6o4qbniOLhthoLHzQkDgbbgSABjLeOAu9k2jCGZaEHXpFpTQl0AQGZIHEy/bbw89rHqy7Vr/w5soQ/UT9k5vAE+mF6b5TUCYR14ncQCE0OG4YdtUSHu2gyXsjlQMNhGKkryyf8IZkkkOWwjBj5opClJtpXSD/hRYzVrzKZrwz6rXW9VRWRQImE+mcHrmdXfrzOMPCDkhdh4ZHLEEwrC1MUFOAIXRFOP0ChIhwOrwKYl7gJweIJDpQuLELlW1rAmJ1Xnn7CO/nM6K+E2OEtr0/RG+0iEgj11kiqdaYgMLrJcnj2wqO1XimPRIECioDgT/GoOUjglTZoFe/LVxhqbTs8eHmhtYeHLi7QQ23kCzDlD9cx+sFn7fNpte10qh7IZ12stVdWqRMIO+C2rkPW2M2n2Gqd9Aj4QMCxWimQJ02KiW4eId0CUWFBlC1eMBYPsJaofoL7VIn6Lb8cqEjH8aGBJarfEVhmVKrfAzk/PFhvNFOfB07pWhAaTRhZamQVfUGDr9pzRsRDl0zqqs9Mz3wEY6CltRTCLjC6fuEYhQ9dwSEQvn5HyrJVJhNxzHQWKAZ6UulnRYFelcNgK0Qt4pqFipW+fDYismrvlPuGEXDR3dQJ3KvtsEThMybvRjdtcYkpK2kjkPYnHArJS70JLSQow/dPBLIE9k/cy6Y1S2DZQtk/grIE9k/cy6Y1S2DZQtk/grIE9k/cy6Y1S2DZQtk/grIE9k/cy6Y1S2DZQtk/grIE9k/cy6Y19aW0UjUeddp7Y0Xo773HIj3gyed9wtRto0f6IuXYI99rTnjP8RHortPt9xl4z8P3pop2XPJSMQ5xon5P4A9/fVXBEN/455sL0uyqBP2eQAS+BS9/5ik3/zn0YYY8lLseakAk8LzvX5AY+WzTmRgaRgyIBC5ZGXlxxLP5rEvP9npZMxqBAZFAGHX3Q/dEbeP+lu30UmhWEiPQZ6cRiRZYxJU3Xm2OPNS9u8/QG+64KcRGPxpsOjvlJcoQIk9nQ91G87PbfmEeferfjmpE7Qhz3Ls/ZI46/F0OFtf4/MVfyAFfce73+HGOb1x1kXn82ScYP2rEKPPJD5xiDjvojTn0vQ0YMAmEo810MDNiuLyXjv4td92KypVTjj3ZXHPLta5fqHHMZ/8vNuHNLc3mp7f+nJd3UxI//n8nx4pavmZ5DvzeR/5ufnD9j0Lwnc07zWW/vMJcft0PzB+v/G0I19udft2EvuONbw/5d+7l57v+5q2bXVsbNfTGbtqCCwdpZusd//iTyXcQFdUXTZ6Px0NPH/nyST6o19v9msBTP/DxkINLVy11/bMuPce10TjmiPeE+vk6x37+g/nQObinFz9jXspzIJXDkAdQ31BvGnY25KEoL6pfExjnyt0P/ZXBW+vDBy8nvffEOPIcWH1jvWlrp48RFFm+WMaj3YuuuaRI7T0n7/d94Mnv+6j5+W9/6Ty48sYfm80x1zwdQYHGd376vRyK4TXDza3fDw6IHn3qMXPRj78VouvCp5VTlAP23t98/bPBeesl115KH294JMT5/NIXQv3e7PT7DDz6zUfl+Pebu24LwU79YHhTG0JGOtgcRst1l/wsBHrNfq82E8flfgzpqRefDtHFdfzkAX/2x8/KIfMfAM5BlhnQ7wmEP9UFDk7e8YbwwU6xMRhZOzKH5UPv/EAO7MUVi3NgAx0wIBL4xZPOTIxTrXdakUjUA8Teuy/K4dpYtykHNtABAyKBr9s/+YfKvnzKF3slhpUxv4jagU9iDrIyIBKImE0aPyk2dK/a55Wx8AwoERgwCbzgtPNycjJ98rQcWLkA0dMUyB0zcnS5xPeZnAGTwPmz5uU4fX5MUnOIegh4ZsmzOZzTenHA5CgrE2DAJBD+vGz3vUNuzZ4+K9RP0xlWlXtqe8/Df8thvfnO3JvEh77qkBy6gQ4YUAk879Tg3t9+i/btUezizit/+Osr3e0qbDrff8aHY2WPHzMuFj6QgbnDtR+tHTNqjPnJN+SXXidPiD+oKWTeCUcfb2776+9yyHC7CktSWTSffkx7EJYBNQMRPxy4YInbFKaN7/veekxaUkd36Vl9d/3SKS1DY8AlsAw+mROP/ogpZkb97MJryqG2X2QMyQQikphRX/lU+JZUNMIzp840eLB4ysQpUdSg6fNHNGAtXYDlDy0kWZ7vpfzB8JGDF5a9aFZvWGPG0n527m5zeTOd5GtfwPPFE/oXzg0fkUdtok+jcO4G1EFM1Mhy9vdasMhgGWplyG5Ch1qikvzJEpgUmUECL0sC8d3orPRPBMqSwBb8NE1W+iUCZUlgEz0XmZX+iUBZEtiOH7XKSuoIbK3PfVE1zFxR6LlEhy9LAqG8ubU5bEPWS4xA3fbch5Z94sqKikLPdqxT+rIlcPWGFSozq/NEoLHJTZ5EqhHDR+b+rE2Yepl2y5ZACFy3eY3KzeqYCOBiV5oYTZk4dW4Muw+6QzupE1hbU/uQMiXVGF31jduT0Ls8fMmqdA/81lQPn18gWH9UvJ/A6xQYV8+ZMf/gOHgUtnHLerN2U6EtQJRraPfpBx1NoWufLgIVFRtcO6FBl0HdPtC/mI3nF/JGfsmq55toK5D7lGyCohlT6Eu+I8cmYIc+GJvMFeuWmWKO0nefvbCuqrJqcr7o6IVs0LgEolPojgSNpLqlqxfnFQ45cYU2wWY4LfYiehzJkIC108+Wt9KFjZ48Y0r3F7bvOWfv8QUCcTbF8NtKE03gvYR4syLj6qVrFj9N79317IGVOIEZzEWAbiHhmqS/W3M4bfizD7Ao8duUMKnefdbCfUlIdtKXFKAewudMn/s8sUbzEZW2MgoIMVBi8Gz5+ihRtL/nnL1GRGFZv+cRoC/+31c7fGT+O7giPueGZmgTChraD+I95lTXxuiwuJnos2RKcHu0njZx+iPjxkx4XQrm52mCvSxKF5qBQBJRO1U3Rgnj+piJ9OWIp+NwGaxwBOiIc1PK5CEvOcmDhpwZqGppZmGHmohXOtQ4Ol22ZvHIYk4xfP5drT2ydvT9s6bNfmMRfr+TEnhnHH1igiiBeF4Gs7GY0rVq/fKH6f7gocUw7Qq0lID1MybPXDd65NhXFenvw8Sb+Mx/YgKhhJK4J1WLi1SYkZcvApspeVPzicvZB/rExLyE+m/yYVm7zyLQWCh5sCTvDFRTs5mokeizegUlb34abXlnoAqwMxGnF3kf/lX6rC4pApemTR60pJqBvjk0G2+g/od9WNYuWwRmUPIK3o3wtaWagT4DKTiO+jW0FLxi4/Nl7bwROJPiilJU8iCx6ASCiRS10zKTmtis5r7+CqKsFIoAzrOPR9aoXF6IOAnfowSqMFLcQcsRsIBgs2m5TnFZHRsB3G89EfGiUkULdkcllaL3gSVp62Nm2l+PIpX4zOFbaXkLLdhq9KTgKTHcaruHlt9T4Ot7ImSo82TxHuoZLuAfDYDdaPk+LTtp6e3SQgquoWVBAbOGLJp8z+I9ZLOb0jEaBJNouY2W/i5/IQNmpDR70JKRj1m8B232ymg4DYS304K90EArHWTQB8vo6oAQRT5l8R4QmehnI2ggHEVLKy0DvXSSgR/p53CVrJ58yOJdchSTBQzYizCUeFwrfy0tb6IFD2zhabo5tAxYm8m2rPR/BHC3E1cr8RLRv2j5O2q6cNZK9YAr/T6YaaLhNZmjacHeAlcqq2jJShaB3opAJwnGFe3racEV7abeUpRGbp9PQJpwuFDxBVpOpQW3CbKSRaC/I4Dvq1xDy3dpQvbpEwp9MgFp0r2ZnLuSlpyXMgjWd6V1zTNm3U0tpr3+QGNwI5yOVvDgOT987rctbNioJ82sj3WZUQsP6Dsjh5CmwRtvPAP9aZqM2FP2aum1CUiTbn+y/De07NmrHhQS3k0fH1p5xROmfTvOJ6nQ5OIfKLMTzk1EOjKhdzpkUuIoJTIhq0Y+Yfb6ziJTWZvttRHGpDL04o1n2t9Pk/F/SS6XAi/rBKRJh0ejsKfD4WX/l823P2i2P/Z6NsTfy0UnF/r0/QhT4U86wLCXxAK4nZRj93/AzD/zDf3v3AC0YOjH+8cUdewZMSjKUsoyAWni4QMif6Dl8LJYVQ4ha6590DSver3bq2EiucNNO6ncntBOLp1oTEeTTnmiE7Z2+iNm78txZTYrGoFdK973kdvvoYm4Q93vaV3Sw7w08YbRgm914dnIgTP5Gp7+j0w+TDpMLlpQc5tg2NthYVgH4RVGbZ58hPN5QjKItmn168ym2/9JRFlBBHa9eB9GXtfT2P8T5gBC0NPS4z0gKf4qKf1aTxWn5+vuWtb45NLlzc9Wb+1eO2Wn2TKyy3Sx3Thl68beCcVrv6Gl2ixqw7aFgJhojKSJw3s00FObD0lRg9GnQV/xERzzCP/S6hrzp3GThF80SJss41NJtgtmkoUEYBjjwC83M1k10zGI6dASCqxFGHwUmQGWW0QCHJdIm6XQSw6i29IQIfpc1E70ta2amQQr4sef8vj8aEMQ4d5XO928qgo/t0iQXoo3fVDK/KwLGlkrNEM1rOM2KtojdU+pmdk0a+Qem18x6XXt+089ZPcKU1HSTkaEF1x/nXR/rSBVDAGFvrhCyZhOHDghnVYcZzrqdS1LVzy24y9jtletmdjd1YWzMo60DTMPBrw8wwNLRfoDhGDv2DnM7IYdG8PtZHITjvqcNJLIe0Dbx+EotPFhqU5IaCW4ngt6E3PzsGHmxgkSAjcIMGB9W2yb8dYBR0s4CxIezoTMBIXDfm5rzS5100CL858FEL3jdrZorEDB9ll+JtU2ZqHiuYUoiaxCPn2sdqbZvXI4hBMnxcvFybZZDuFKiPdakn0pxNGf+CFtNjVwmfHWfOc/9bvn1O619egFJzUsnLDvPMWXud5I8vaniVjUS4FF7T4pEaeRElxkKWt5dOudi1/qenjPDtNRQTrmmUoayDzo7aCw2jAQZPAh+FSwwgCSimsZLMgUoLTwxEONSRUZEKGtNdHwYSnR5PBZOSzLyubrTUSKQmhnmHT85Fs8VbAf5BAHvlCBIzS8gLR7LkUrbY7/lgB4lktShabCdFldIHF4li36AWS5vBJBMuGEWuwQuK4VBjHCrBiKbc5RRLnjDbtpfyZhIvWB4WgThmHqP9tqzaNYVKxsfn7S9585axICVV0xvPuwae9ZcsweJy9UD8pQY2u8nvTiIs1VaeWlnoAk+DoSekJawYXodnbWb/nrtp8N32E24diFA6EhleDJ3gQDCwsHmRqcfAiXcSID1nYZxjg70ZhYJ5QdECDSPRrabmtt2zpJdeJyHzgMMpWFWo5sgkTb4UukYhyt7YCHA0rHJolDIHRwagTmM5HgQKp7PB18zGhXTq7jDmQqjtU5mcLIZlJTtWL42n+Ggkr5/TbEeOYLDccF8YFUjVG54404DBMVngFqo/qhtrJ/1mchF8MBauturbh73S0L715/i5leM6fx9Fdc0jq+dhKdT5SlXEk2vYYm4YlppKWagCTwHyTssDQCC9GsaHp26T+bb17Q2d0xSYNGMbFFIdS1wQMCeO2CAgFFQfA5uE6AbbhJRYNB2zp5eIDYQeImotKB37Z5NGo7Bt9dxfrd3opVO0OIO2izsXbFcIviwRPa23lc6jD7GeM/yZBYyIYqNCugy+PnLq0kbr5dds9BtA6KBhF6ELAHBbSMJxB0sP0UH41rb8WbjIJp7LM0pM1wACIl6j9MZRKPlmg2tK4a/eVHPzS6urKm+5RFX1m2/9TX7h6R1JPuCZTbOTQJDy/EXHACkiB8E++wQoIK4Tu625r+UHdZZXPljt3x22ZkHKLpBrEOGARJBiY3iMQOMFagAwYJt+F0g8APrN36ugkGRYChBq+tua19D59D4/FDpt4vhCSmZaupRwVukU0CAR8GDmogCU5+d5EM9h8Q4ufDJztgmI99YiQ4JB5g5x76vv+wx6eBTFJm7UCD+8wNI6L8bJjDKh/s4MNYTzb7wX2rX3XAngqKX6/GmyND5ln7yQ7ENOwrGU0lDPP9Bzbe//au1oqrnj9/98lLp7d89aBru4ZX1eIZ5VLKYWTHnZTnd+QTkvcKEQnAjce35xOQBvfA1luW37T1qyObKutreQtmk8rDgQNJLYmnFzxI1uCBkjgRcEQd/KgBtrJAjcLBx2Tj8zlb87keDRKehATrxhUa1Hbp0tsPlsbnVxps4VkOZIK+k9WL4TCEQDCJrtTJUCGAsxN4tpjtw+SDnWy++lhO/60BGKxsFGsifbCPVjL5pc92W09QcfzYWpivdsJWIIGAf6IA8rj48UKMeiXeHaIeaz/n7CJg1hQYJeaJnWwkDIW/4kfIf/CzZOHf3Lq+9jMPvmvkz5+5dLlASlrjHUrMocSSOAGJ8Vji+mQiZzpE9+/rLm1a0f2/+QgB/AwlGCAbMIkTUyHHXICjWEtbKjCwHI4ZgmeJwaJtOey0kwsTzZ9s2FrrpNKaDzt1YvkT1cpQOq4tnrf2MIo0sx1oBW001R62DaRUfBhc477lp46TpbQ98x+2BLIhKygYiMAJBDaLHeCxQEustoowK9NSKT9D/Zj2VrxZBxkWKGYrJX7YUADlnBKT0YdzfiGY0BKQ4y4bFIEF/j9Sd/f8rzzyUbwpEQB9OenbnyS7MJdiS+wEJAbsfm+I5UgN7O66dcu3Ohort8muHG7YYCBQknTrG1e+n2jL5OPAQKdHygPFBg8oLiC0pbGJHm7HZNG9FtrYKnNt93a6N3Mwf7LZvZ0/sJSf955d9EMszSTfJpP1BvoZDvutPdHK+e87ldO2/rMWXUGySNfBE8gO9MtEoj4HWSg0PBJPkS3SwmtQwz4svgNOOhqEkw2D+N/S3EKw3o13exu9zoecW/vUTtQ8ozR+6Nooxfpv8Ww/fPTpuResNrauGXnWPz/UQfJoQJRUbqB4xh7Sxk5AUnU+LXghtsflD1suo7Q0VEtwNCiBOE6y7XKy0bYBViqJDwWJ4yTB0jg7HiL2208894zpaKdkYUDYyeImH8PsRNO9ng4cV2OC0sJ7TdR2j8d4y0uTsbOzwzy3hJ7T5UEutqGp9jmwJtnWIEFh/51LthHnv+OzNMIe8pn9BzqGH2AXR8uLivXbvt9mEDsCIv5X/K2IIwAAHQRJREFUKq7VCrV/+ZIVprO9jQh7N95ddCN+7bJ11haxXzvsPzrOf3EAfgf+W2rrgO+z31aZWm9v31x9wb9Oxta2lIK5dH6cgJwJSMbgaf+z4ojTwu7bcvOKHaaO5Ii3cFDPJyADfS0cINvxB4rQKB1qOR/hIHv8Kgf1S6tWGN77uUmDyaOTyU4eHijBROKNG+/dsNcjWtcGjYUpj9sLCn9TS7NZvW6dHeDirWx9SQzbKPbn+K+zlGxmCutmvP8YVURAm2yV7cfP+Y8xBzk2Nknx0y2/r9fJYHYxBvxOHwuW+IOfMUS2Yd0m09xMG7s+indLa6vZsnFbaPz4tuf6r9jAp5D/ii5Qb2hZPepnT317RQGyQuizKKY5b9LkTECSgu9o9vit9Lbupvo1FU/NhTUYC3A9Z/LxYAIFaCQ4tic8bhCJDDf4eCzSZMYstEX5Ozo6zLpNeBiBin/oqG09D9TBgsmmbZ1gfKTh7fEAj6NheqKjsmlLnenssBdkrMPqEjzL8V8gvAa/DHS0UGhoE4PjRxuUiJcFopaLCJbDEQst9DkQywLETl4bP/TZANcPy2J+xomw4GIOZIs8+qlBs7Vum2X0Y2bbvRTv+m31lF7YYFU7Z33/Bc+xBZ7HG+rA/hx+BSTUj267d+7OjoZSvgeLOYW5FSpxE/CoEEWRnX9tuWMrOU6uSkCUHSGRsKBhe1TzFgnDTANpqaQrQWOQYxa5LrgsrtvsaGpUVWY9H4L6g8Lu8XQyRieWO9xUOm/iRfZ6PCFJ0zrvSZimFpxz8lSBNc6OwCeBMgYrdo4aVCf6z1ICWZ5YjpXzH4PK/oli4XHxU2tYr9ohHbXPyYJpqojFWFkMt9ItvLkpOCpb20ptP7b+Bk3b/oasB/Feg+2lLTjnZJ/hZF7/LQNstotUtCZe9V/l5quJtuLW53+8NR9NClzO3IqbgC9PISiRZLNZNR1OaoGTfDiGYGnAUNuiQVA0IspoDiwRUQc0LuAMIn6e4kBLu9J75vZvjQ1ERZPITR5vq+wfYtrbCfGDx05GHizgpwU6rb6/t3gHCZWVOmyJxu5tiBQFdrvDUcurPjMeMKYT0ey/lcYYwmOLn+i/7g1AzAyyt5SJLZJFnxCIC2hLADV+oERxezsmFPtD/ARHv4J81nLX5i3U7N1437UdG0W/ePbDl1j/OSAyRiwBu8UxF35fYqH24san8Rx0KWWfKHMQxQAzI2gW32qt2ElP5Upxh0qRQcZwig0GFQ84qkJ7Ao6SDAawCp1KBa0EnOEY8EQzZuQoO6SMWdXebn61DYdHdhL5k45h9rxQt8o8ESN7TJ28ymttglW/bRlmnuuU0AE80t6zxcCUwSq2qp1sIPuBwRuxn+QxjFk8ftABR/A0/hMp0/HkQBuMVrbyAwYw7AJMaJkRxA7GbSG0clgYt1ku8Y8YUQvxXFa0tJqfrMEzyL0T7xu2dpinWig/ttRCNxkifiF+ZF+i/7Dd2m9b6r/KS1s3dNS7sZ2WJ0KX89MIcRNwYoSpqG6Haa1EQHQJM1MgbOAkeOjKYZjQEzWSioDaAaJJhhyVyaFnGqHFfKygB7jnzpwNMi5372wy36zbajr4cNMODD0citZuIoLOTkQeTDbpdqDBqsuaaszvaAJqmTFtuqnEw+NqDyHEerFX6aS2fvHQQVv4YD/7BiL2X6lBE5SQ/6yFGXnjJTihVVPYJs92WMYwIkDNA9EScz6sOtUqNL5MYGhhXmOmTpvsjLtjy3ZzztK1FG+7cYvG2O8XEe9vbmg3N26lvNgyYfJ4egxXNiAcLGsLbGVXJCRMzb6iTz32iWlgv0orrm7p3Bk3X4oRkjO3gpFUjJge0HKCiU8CAQEYGRIJDhxAKH587OBhMIiUBU1sxRFQy4Nqt+nTTVNrE10YwSERfRiyrcOcuGGbedOIanPimBozDJMLyQcX9mysDBPOwrTmAUJo1keHkNS4uXmY+XNrOFyTxk8w0yYFg5A4pIQcsiC21J+o6gypZyeUGVZFAISSwUQ8IKZ/3jtG/I9K4ImtQFYiOiHdjx+gIZXWINkwiEoh8Own5MQpE0xra5up3yYvhj/T1GKOeXa1OXL8CHPqjLEUb2jqWbx/Wddhfhs57Bw9drQZN3EsGyRHB+H8ww3xQ+DJ/sOugVHCI6oMNvFAsXI4DOQru4uVy7QMJA2DG3A8PhSKOAdtFkld0IYGHxDegNlz7nwzasQos3zNKmbB6u/N7bzQhtO8aXileVtthZlRBWF2jwcLdfKxrG6ziS6y3Et7urvbqmir7kS5xm7TZ5ipE+kBenYlIPBtVr88rONnTyxC6Rjp+ezLEkahlDD5XCJIJoynTWURSKC2YW0GTGWpYSwVQCpx+hlh+SF0xqxpZvjwGrNpQ53wEPAv25t4QbzfNq7WvGf8cLNbDZiS472BUH/e3mVur6eX0sRYlqcrTPaxE8dwqmEebAvIpJXoP+hZUMChcvu7hi+hQo6VZOV1dWezPF8Mtyk67sFjCodogSq7VeWoIlA2VJ4ZOfwu+AG/BF8Sg3YnPSq2ePkys7V+e8i/Ujvjxow182fP5o2ApJXstzZDtvqtdTBB+8h/sgWh5AeprbPSFv04XoVtNspEIX0bfjiQsFEROucPCwCtlUd861auNw2NdEU4qYDHKQqIWJTrhnsjR40wU2ZO5os+sFvYc8ePy3+S/9ZOp6aHjWsPu7eHnMJGRx5wwZXe3wMiZM55SpZNvRu8SLgtjKO+QjjgxKuHS8geD2zOAqhsn1oiBjBJDngWzV/ANJiEK9etMbiR25OCLfysqTPMuLFj2X5Rb/U7a2EDbCc4UFSkDWq1sxf9txoRCKteYkW6XfxcHsS6wC5mplXEfg6qb7/4yP5DiycPOmbOncESGnfsNHUbtpo2PCGjxRmlAKkV7Peqq6vNxKnjzYjRI2A9ozjv1PK8o57GFXAUWkf9J7uc/0wzsFZln4DqHgcEK44fGgxBfFzRycS1hXtoprNcLvDo83cqqIFkUHztQBMNjAcn40X9xHHjzHiaPFpaWlrMlvp600xPsrTTFdM2WlCQ+JrqYaa2ttaMpz1d7XBc9LLDjQ0Xoe59OCihooNDOrRmm7jnrZRW8ECk9x/uWH6wS5P5nf8EAxiLhpzbYr7VxRiioAIkrRiNQeuhGMN4tLQ4yU4PCWVk1P/RY0eZUWPw0IfwtLW2m8aGRtPW0m46Omhpx/k3Pe1RXWWG0ac9qmuqiX4E174stNUu8R8TzvoH6dRJ9B94WiJuEWRglfJPQIoIB4b8tOnhPtzm4FFE/MMjP+CgwRZPBxv6YPJpdMDIyAHaapFK+FkRePEf5ofI4TSxZk6diqbwk1ArJgzDq0U02qHDiueMqk7Hz1x25fsPJsvPtOgW8t/yW2lsGGtX/2Ar7v0hEFTUFkYz2O4VgKc+267O2Zp5PDxkKQkEKx4wzgY1WL6uA2Knn43BKsb/6poqM2HSOOaGWs0/ZKr9YEXJ3VtJ/BlJehE/n0fbYh/sDY8fxTP/AFyVelk1xyU5z6MgIdw2WMiX5AzB1CAJDRJi88qBxcu6DBIGkcMQoedAc5KZytJSBV34EwXUYcqgJhLglJ+5La2ysASPT5NtJYks6mCQOH7I5Z6VT/zAsibYRH2IZBrblkEiNCzJChBa6Th+ViQKAIMsGeQBgmHUFTwRsAEqVHiFmqUyPwziHtsoLAyBMMuvYqwkQksr5D/4rQq1n/kABY4q4JmGOiIekwQ4iZVl5z5gKL5tKgAwQWMjIVS8FpYQP/MAOcBL+feAFHUOHjkuwZR0aByAY4gGGsHjREkU/S2g0Iq8IN7UggAbYRaj/CLC6gUJaBkJBilOr8hhEsJAl0VxD8Rsv8cv4mmN/4DY+SN4keX4Bcs8DCNmmK/8zKP2g4BKgAOtHayCAjK//74spgXAMnMt/OKbFWd5nEu2wRXhlF/YRZjaCByTELFgQK40vl5pA6f0gDgepzzMr+qVzuNggWqjs4cYXFtUDuh12feA8BZBkXgifFpsCAmBAGFgoXCygui6hAAXGnwQiODij+m9raDHDz5X7J4KfU0K8wPAE4sxrFNkog8dsjgaAjh+S+j2AmwRs7kVSLCoj4KAVCqEYJy1TeUK0uq1nZD/bBXwnv9MB2XKTbXfjvrP8SMS0Pj+x4hgMUiRlad22i6xB/lTmLOCAOKjg3iCFGf52ZiAjmVhRYuqZ5g1BOTCIhsmJhSCQMggapV/D0jR0cAhOBq8cIzsXo1ppe1iJtHlriadg+wIpCE4SPX4SXHAE7TVCl9EiN/XaS0GbSArbL3iGM8DWfDid+A/TxZWmmsBeLH4e3whDXQxF3dphRoKbBHbBOikF/JfZSFm7LPlRxuyE/iJWNUiKEQn/KKXmRgPEQxDA23H5ywENOAnfEH/RRKvZQVbbM5Zvpd/wgQ6PZYB3Cz7HlBThUC4NofMBgfJw59NTqjt81g8x05ibnk04J50pdWamFR+lJ/3Skzn8fuWWrDP7yiJTwdMgGcPrBr4RU07kB2fgMSmqP/EgD+UoGXtjwgQnXH+MzuYbCPBf9IQ77/Hb0UE/sEuKYA5/wNoqKUmgBZ8uvDkBFInryVUOmhQPdxWQejYwjbZ+AW+Epcyaq0Mg6Au/x6QouHiYIOowdfajwsHNQxw/BJwQvKAFiLAKAdhGssPvb68HH6WQ1RsSCDPsrNMtt464MtiGuVXBq/PLHbFbrMOEaRNPqSMDCyng4lIMOGteqpti/VAqUw+JQXE8TPO79s2iH1+6PcEOH663g9t+f0nGrUfxCxXbMTUFnNJgoBgABGBTPi0ZqBdOR9FmOhXnBOkelWOVUV0zh7oEAN88QO+Xf49oAY/Eg6AGeWCKsHDFhUlCCR3I9xMIQhgSBDLw4q3iAX4HTH4LD9kAM6JE7hVIJVnJwBsH3hYc0AiexQmYIxjowaLF1LmY4gjgCyYn+S/ZXQVqNmAlP47RtsQfl6LGPFf4xeyVlT5EsT/iE8kJ8d/ZbI6pAs++fPVwBbld/kHkIqtpMM9QGiRf4EApPZ7cbVMg6Iq+wTEeJJgyhYRMcJ9H1cQMO17bVBwepmNI8tB5oATPeMZ7PGDR2V5bcB4awulxKM0IGU48DLuHU4VMJgJLYEnF+KUH20U9Q2moRTlP9E729BmAahFGsxAAQ2a3HfxYZTjZzoBMT+sZ3Za8X1D1LQwnBrqneoXBYJ3hCqPFUtH+S1K9BOQdRHQ4bkhcI0R84DWk6dt8LMMxot0JXP+A+zz+21hGXTrsk9ACShFBuGMBIgDqVFFqGwbcHCAxefnwUxAJuPsMIFMHjTBADZPJsuyE1ussINXKJlHJonwo+3soCYPFssPlqhslga/BCkTTu2AdLZFNCf6D7Tl54r4GES8Pr/YCRhRiUK21bGrXvXf8utGQqxgi5WSamx8sBGDyEAv20r9dP7jcA820ZqUaIwgj9tiuM5GUHIBzuEBAT8q+gv7L9CQ/wyC0aCVCKheoAZrKfs54OtbPtbjWMyYvJsZMyp4ZKzHgjLGLAIJEWjYucOsr1ubgO17cNn3gH3vQqYxi8DgjUA2AQdv7jLLh0AEsgk4BJKYuTB4I5BNwMGbu8zyIRCBbAIOgSRmLgzeCGQTcPDmLrN8CEQgm4BDIImZC4M3AtkEHLy5yywfAhHIJuAQSGLmwuCNQDYBB2/uMsuHQATK/ihaf8fkC9/5slm3Mfghx0L2XHzGN838WfMKkRWFv/UvvzW/u+cPqXne8+Z3mw++4/2p6TPCoROBITcB8anBnc15Pg4byd05l51nrrvk52Z4Tam/uyGCH3v6P+b624v7de/Q9zMj9mXdoR2BXf4QFL9ye+7l55cly3XbtpiLrrmkLLIyIbtGBHb5CYg0L1n5krnqpmtKyjg+p3jWpWebLvokflayCKSNQDYBbaT+8uDd5q//7Pl3/y+8+ltmy3b5Vaa0wc/osghkE9AbAz+64SqzbPUyD5KueeOfbjb/eebxdMQZVRYBLwLZBPSCgSbOB1taWyLQ5O6jTz1mbr7zN8kEGSaLQJ4IZBMwEpxiLsps3rrZfOsn345I6P8urqrWbaszS1ctMy+tWmo2kZ3FbFT6yoNtO7bx+ffqDWvMjsYd8rmKvlI+QPQMudsQaeO6/16vMP974clYcgzaq278sTntw6fG4gHExZYvffecvBddXrXPK83jzz6RKKNUxPrN680Nd9xsHnz8oR4N3tfsd5D5yHs+bObMmFO0Kad943NmDU2cQuW2K26mX5yqMSvWrjTf+dn3UvFA5m7TZpqPve8kc+DLX1VIxaDG77IT8IyPfs589sIzeMsbl8G/PPRXs/uc3c2Rh74lDm2+efXFdNFlaywOwLcecgT9PuHCsk/Ajs4Oc8WvfmTuf+yBRN1pEY8+9W+DBeWgfQ80XzrlizxZ0vKnofvnEw+b7//qh0VvINbSwxTfuOoiVvGZ407jeKbRN9hodtlD0GFVw8xXTj0nb76uvPFqPoSLEv36jhvzTqxJ4yeZT3/4U1G2kvt3PnCXee9n31+WyRc15t/0AMGxn/+gueWuW6OokvqXX/eDoidfVCEujg3V8+xddgIiyXstWGTe//Zjo/kO9c/7/gWm2bso868nHzW/ueu2EE20c/5p5/Kn/6LwUvrYi/z45mtLEZGK94Y7bjIX/vhbqWj7kghXmq/7w/V9qbJPdO2yh6Aa3ePf/WHz+DNPmKUJtx/waNu5l33FXH7Od/lixiXXXqqssfXxR33YLJg1PxbXU+Ctd//W/P1f/0jN/o43vI3PnfagQ2gUnNM+8dx/zZ/vvyvV3ujfdGX3F7+7zpz03hNT6yxEOGXiFHPMEUeZ/Rbta6ZPnm7qG+rN8rUrDCbWstXLC7Ez/r5/329OPPojqWgHC9EuPwGRKOyxTj7vE4kXVDA5r6A90H+ffzKRBnJ4j/q2/HtU0BVTcLEHD3enKSe853hz7JHvzSHFhQwsn3j/KTwJr7ml8J709r//yXzonR+gn+muzZFXDGD65Gnm++d+z4ysHRliw4TEctC+r+YHGE792mdMa1triCbawTn3qvWr6aLR7Chq0PZ36UNQzdrEcRMLnrP9jfZAW+uTL7pUVVUVPKdUfcXUD//3kVS3EHCxKG7yRXW9841vN+976zFRcE6/s6vT/IP2OKWWH51/Rc7ki8rEOfPbDn1rFBzbf37pC7HwwQrMJqDN3FsOfrM5+IDX9jiPp5/wWTN2dPm/6r2hbmMqm/ZduG8qOhDhMDBNSas7jaxCNNMmTy1EYvH0efohVLIJ6CXziyedaUaPHOVB0jXf+Oo3GCy9UXCulKZMmTg5DRnTTJkwJRVtWt2phGVEsRHIJqAXlmHDhplzPvFlD1K4ib3eGSd+rjBhRpFFICYC2QSMBGXfhS83x7zl6Ag0uYt7iZWVvRfGtLKL+aUgvDqVpqTVnUZWRhMfgd4bOfH6BgX0pGNOSHWlDfcQceWzN0vac6PFK5akNiMt7bSJac/LUqvOCCMRyCZgJCDaveDTX9FmbL1g9nyDe4i9XeanvKeI2wZ4TK1QwZ7ytrt/V4iM8fN2m5uKLiPqeQSyCZgQu6l0j+pTH/pkLBaHZhecdl4srtzAvRfsxc+UFpKLtx8+fv6pZvmaFYmkK9etMqec/0mzblPhj1bhZvlrXnFQoqwMUZ4IZDfi88Tx7a8/kl+0xYeW/ILnPHHvsK/KF046w5z6tU/nfQgAtuBG9ecvPtOZNWHseG5v27HdwdI2vnDy6WlJM7oSIpBNwALBO/9T5xag6H00nia55MyLzNn0BbdivjnTk4kHb8775Nlm0byFve9YpsFkh6CDZBDgYs9vf3CL0ec7e8PsmVNnmN9cfmN26NkbwU2Qme0BEwIzEMFVlVXmsrMvNXjj/bu/uNz863+PlsXMVyzaz5z9iS+ZUSPCz2uWRXgmJG8EsgmYNzwDE4k3zM+1DwzgqibeXvjPs4/zw+KbtmzKazSeu9x/r/0M3tY/+IDX9eo9zLyGZEiOQEU0DpTQkh62W7zy+ajI1P0Zk3czY0aV/3nK1AZkhEM+Ag07d5j1dWt77OfCuXv3mBeMFVR8Adk5oB+NrJ1FoI8jkE3APg54pi6LgB+BbAL60cjaWQT6OAIDagK2dbT1sfuZul0tAgNtjA2oCdjqffxoVxsYmb99E4GBNsbiJmBJV0HpIk+P+RubG+geV/7vgvRNmjItQzECGFsYYz0tNLbTvceVrCCHP24Crk/mL4yh2ZfuGwoJojbUlaQ+QWoGziJgTKlji8Z2/pushYO8IUoSNwELPyofleL1q6uGrfK6RTdb2prN6g0ri+bLGLII5IsAxhTGViml1LFNunPmVtwE/GcpRo4bNb7kY8jm1ib6LYGlRT14XIrNGe/QjQAeXsdYwpgqtZRhbOfMrbgJeHsphk4cP/n1dKxc8nEkrla9tPpFesVmcynmZLy7cAQwdjCGynHlE2MaY7vEcObMrdBjMSqcnkbDYWSPv37a2LTj8XWb15b1Z20mjJ1oJo+fWvZPvqvPWT00IoAnKeu2bzLbdmwtq0Mzp+z2+OiRY0sZ06tpEs+JGpU0AU8gwuuixMX0129ec19DU8NhxfCkoa2iH1WZNG6yGTd6fDYZ0wRsF6DBpKtv3G621NeZzhSf5Sg2JGNGjrlvxpRZhxXLF6E/kSbgryIwEzsBQUROPUPVPlGGYvprNq6+v6ml8Y3F8BRLi89DjB4xxowaOdqMqh2dPd1fbAAHGT3O6Xa2NJqdTY18S6GYF5R74urI2tH3z5o2u9Qx/AxNvtivIeebgLPI4JW0xJ0npvalbvvmB7bW170hNUNGmEVggERg4rjJD0weP6XUsdtF7sylCbgmzq3ECQhi2gseR9Wv4xiLgdHvDGxatmZJJ8mbUQxfRptFoD8iQJNl/YJZe1bRC9Dl+C7j8STvhiQ/8k5AMNGk+RRVVyUJKAZe37DtkY1bN7yuGJ6MNotAX0Zg2sTpj4wbM6FcY/Q0mnxX57O/4AQEM03CM6i6LJ+gInDd9ELk/fRi5GFF8GSkWQR6NQL0Ivh99EI4zvVSzYkUxpxJk+/yQnSpldEkPJyE/b2QwGLwLa1Nz6/euGp8dmhaTNQy2nJFAIeas6fN2V47fGRpr7nnGvQmkv2PXHAuJPUEBCtNlOlU4eroJPTLWLroYs1D23bU7UdXlOVjlmUUnonKIqARoA9CbJ8wdvJTdHHlUIKVdIFRZXr1Fmq/nCZfzjOfHk2oWdQEVE6aiN+h9lnaL3dNF23qNm1Z/0xDc+NeNOsx6bOSRaBnEaDJMGbE6BemTprxcrqokv433IrX9h2aeMX9tBbp6NEEhG32sPFhas5Dvy8KvU6yvHFnw5rm1ubOto7WkZ2dnZO6TPco021G0ZZtNNnUY3/6wv5MR3kiQAOdUm0aafTurDQVO+nXibfUDBveNGL4iKrRo8bMqqkePr88mlJJWUFUB5NNPXr8suQBS5E4kAzA8e5oWrKSRWBXiUAjOXo4Tbzw7xYU6X3Jx8AwgJYxpPfVtGRPTheZgIx80EUAY/zVGPOlTj54XvIE1PDZiYgblzNpeUThWZ1FYIhEAKdbM2mcTy3HxNOYlG0CqkAybj0tOCbG4e07acGVoaxkERiMEcDYfSfGMpVDaOnReV4+x8s+AX1lZPCdtEymBZPxTbT0/LPZvuCsnUWg9yKAMYr7eCgYu3f2nqoSroKWYhRduBlO/CfTgsu2c0uRlfFmESgxAiuJ/9u0/JwmW8lfcyjWlpKvgharMImeJiXevsDD3x+hpaTXoJJ0ZPBdPgJ4iAQvF9xAky327YS+jtCAmYD5HKfJiQs7e9GyyC4LqZ5CC66+6oLbIIPCH7IzK6VFoJvYcRsA3xjUBVcnF9Pyol1eoEmW8xEkwg2o8v9Ar0qf4+kcbQAAAABJRU5ErkJggg==','data:image/png;base64,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','data:image/png;base64,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','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOAAAADgCAYAAAFtKlp3AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAA4KADAAQAAAABAAAA4AAAAACiWSQ0AABAAElEQVR4Ae29B4BmV1k3fmZmZ2e212zLlmzKppMQIJQQTBAVhQ9E+SwECX+KFBvFiJEmIEFBQRAp8kdISBAEqQpGWihJjJDEFFJ2k2wv2Z0tszs7vXy/3/Oc59xz73vfNu87bfeemXvPOU8v59x+7+tclTI2NvYolourkAkadG/A8t+VaFvKIcE4lsW1oGRh1q+VvtUYrCYji/XdlrdvtbZi8tdG47a8425rG6X1WQeLgZyDfm+MdFve6tzgUeeGsVx0fQqV23noT50b8vRP/EKKxKITKxSvvt31T/v2jT6yamRs1L3q4JAqg5APL1vphkdH3OjoqBsZGXHEsx5FPcwa8OvalwX6Px4eE/w/XPbvQ60tbe3UTqUSUrpOwN7+x7bud4+tGnP4I2jkOATown5YPJ50oxHcDfeAXhehBf51P/5VUUb5gB1K5fA7xz+1kYSjo15hJOCehx8MCg1vNXnuv/ehEgMN/+pbnkN9LEtSCkUZLfaWm3dupNe1z2oXheKReUZK7yGawbsjw0MK93hR5Vez4o6Fx+prRma5PV3Io+t0Tzx/o+TKFEiNSJCWyzkXnuWef99mxM250zatl9ySJltSCk0YzBML16851Z26anUYJIYPtXmImkrPPPd0UcTBZDRZhZmQjgoDR94YFo48qX3f2gGfoqOR5Kdy8pV6R+UpD5ePqIVtLbPcWCuYW8AMpaOtKmS0jQIhTELphRPvlQQDPZ4KhkaYkqSkFJ47dKVgNm04N6FosLV5+4MpCamQpjAT1Jl0hamQxk599btfd5/5Sun287JLnuHe8ipsM8dZynr4oue80H3jY18RsaytPU49ga2swkCRadx6123uBa//DVmIYjtbx3hBRqu6FTKk1bytFJG6FUbGjqvZFIUW1loskB0wNkOyHbJJOhET32Q2xcNaPDOaXIXlNrzGVGu958CuEtLUxMdB4BEEd/GWHdh7oyxesKSEoRYADe7uORJIz1i3qQud5QSUHERZHgN1gw0cN/Wdtf4cHhHKQVSscD9gpzQovxL7JijfEhSSEqFYhWpvJa7x4Hh4WBMfDKh6rhALAn3V85CymsFccoxQztJ6aFPTAozHycwSLM85V1CKZJ3Q5p6H4HwhKcHDlBLDVzhXMJJQVzkPseiIwljZZ7v+PJwzvLoL5zY8kcG5xYeWrw2Hi9lzCp5zXDcb483T/sngoBxs8Zzj45f/p9l0BErTR943HLwWR2Q4KuNxJmo7T2AtR2vERHgYKnAM7/RhvuennOgwfzE1t4LpSWaCHOZ54h/97I6UEAqN8RTG41DWNCY2bvsjOwHFNKPRmcJBczthNx56q4wUnoCE4k9mukeHIZSiHZQqXk5U0OcxqjD6syyeh7TNavPGBUmhwW2pnE6NjI60BIth2WWXPNldddfPgG51F5//ZA2leSSWRx4D/rK9R9yhrsPi8YZN61ShWBJ0SSNsvMUDeiGeUNiYu/SiJ+oAgoIRwcnWKHgaPEZj2cqlbskpix0Mx6JH42lV2kvmIQSaUg0XlIORgZQc+doGCuEV8ZCXV4KHy0ZOE6/aWtvcWBtOl6ksnFvAYloNuIxWCBM8jRRvPF6MBh/z6g2kx3EJCs8ZvFLgdigQE423fez4Ube3a3eKPQlpCjxxnUlXGEKa9Sl76MeDW8KqHQRn5WT7ZT2Mj54bVRIrLaswJorb8XmDReEvPvR28f6Oe38qtcFjPmvXrbAWbyvR1K3QLI3r3Y+nh36My7YbUtgxu0NCyC1UrQUbbKW249GJmPgmk3v9hjys5lXXER7qpgsVvp6g09acvpW1ecp2o2UI19yyJXVMEyub1TbLzZ+7IEtfU//IscMpujikKYWkipWmuMbZMWVkZw5FITs2eNieiGK6gkIqmSilpow6UgoJqKVUMawPCubWIiePptmya5qGUPomKraSZ1gEm2N046kjOXnNrOzVeUQxrGwGaVxMWNLe9vc/coP7n+VGBnBs7JcL/2kYg6LsLr1ERjnAOGXHQ9NElzhYzrGb9r8Lrhxvk2NEHAO+uhvJF8cGtR7pl/rDy1b5g1scKyJEpNeD3aRv168ZQR7YEq8HvqBH/7o5G1TmaFr2G4Z4vkE5Y+7iRZdvf+X5fw7C0hI7GqINpstA+pOY/Atd74YLva1iIA+BYRGF809uEVn2xDkYg75gSSOLp8/2lUoCoNI8PZSzX1b22Gwvd8zdefiWDT/78S3oj7p3P/mz+1bMXcOLIVKge8ycDA4Ck3JOzktxH0EN1ShTN/uHurEjGMLRuw1NRtpnUE5JLGsQmsdvowDiNHvImtChf6wb98kW4xJSjuyxliVCZ1mEKcL/1v95mTj3qSu+CwlaIE+clI0M2rcZgvW3uz6xXxVaJrQ2wfdtflijbKefQ8dw7ssbfn3uzvvv9U6RxxvuM2j8iezEMWaO9Nu37ior+9GHtnrZSeAoq1KxrejTY6L9btsKMQLMOj+oXBf2n3LhE9xVu3FpzG4s4vy6a3jYXdWN22/nXSA8Mb0McfLjz9omV/s8z1P5Z5690T3/XgQwkr0fl0Oe9+iAO+3s9Z7f5m1l5+iTbGRgTIryswfeog55g+SqReQgI22GkpWZSfXDkPMBivviSIY+y49+cjILGWX446SwHQ9R9jkP4zlImBQ12kfcC6cDGBgyjFLOmHHR2XXD/JAlOhjgMvq9qVWrsg7SSP6xSNv36WfoE2Z9cd73hZPtHP5Y3jj5xagaV7kOPrP/FSn2+Ag2hZjiTt6lkaxJtpHJwk+Y/gnvYO4QrZS+crefYx5et7CLJY3elo7ljqddt4NPu+ipbs2KNUHXez/xPmm/9bXXBth0atTt4OpTVjku2fLUJzwlC5I+t6SWTQL+9BVvcs968jMFZ3C7UsVLZvdv+bngCOOlMwugAP3K6GNYuXbdDpYTVA5+2923hyucdOhv//mDwcFyPHnwepyK+Sd8I8M5OJVlwjNYi3PM7Py5811PL84kmlxyj0Wzl7omeke/Y+8Ot371+rpdy+7os3byWHTCh2gtVo/HOcrlQX61Yg7i/CQprS2tjya95l+8jGU30n78YPWnGcI1GWzO9cjYa8wOU4LxeIjjfb2pLrv373TH+0rna94QjR3cBsM3xMbnORnjp0sbUy08KhPZ1A74cHCQCCTx11D9R0QkzV2P7/xhb3/PL2ThU93nA0cYUfLAUWwLNy7WDw0DsIajW1GdxvYMK/LsUWyzbWRiGE/1NzIKLEC8NIWcfh0ORStbmmoeMv01LL1YPtVUwRA2kbIr2grFV2MpWyoyV0FC6NVlBQNRhb1xNHT0VzIgwr2kXm0TJTt3I5M1Dsr57oo8sZjFTWH/u5h4v1RNf+5GhkxwarZlBN185w589QfuoWt63cDO9AP31bTWgq8u+zmRfWUl5mYQjH3g6CzLRcSWt+v9A96A4TKG5QmfqchSM3J8sl+PjH48q6Mkg4wKiCo798g7jjq5tYWbLmO49c9lBO2R4wezCuruj1/2x2D6rVl9qQyCgA98lTjdNbBr5ze7P7LOrja/6ki7zx7uCY7RMWQPd4P24Z2WLy5eUfZSvvHb1WrGkrD4psx755yeK3s77l59cEQvJpP/o5d9K+uL9Z+DTH7POuGEF8pW5Dl3PZ4lBW4dRAPtr1bTKWZQMkfntI/H60irslnz3/eVP933EoWedMJZRvYsPGyJp/eCvNf/5Llou/jZVNXrHO+hhcTF2XrcKKy+oetaaQYjxQKAOBxtiI5ieEZtMdobG5xS04NxiTwVmOpXkm3BiurX/OiXzdxQQ55ZqsMR/Y6A9Y3PHfwL5kOM0poI7UvmzClmkU6KYaiNhi06GpaEX2GZPrvgrUV21p7f/+EvB4dETLSyDGIyJeXeoz98WIQARE7GQ4zyfc1YnDkMUzja23tMaYWHEjy/1EkfXe84W75IINCWwJXKHug7LvKE2uyhAhTczgtDUiEiX/aR5qDBpb5n+Oaz6RCtlZpC+OdhYoTMFWaOc9AbBCfVDVGgXORhy2T5PiWKVMP7fkXZXoaXmOL/i9tfxl1bXP6LnVwHY6dIFBt94PAhHY42V2SI6py8dwhn+xKXxCnhNydoIOX5mlvQGN99BLfCKTdH9l295A2WBDkiAKsDA3tyD0bKOiiivLEh+hC0fPES97Ldu1IbFo36mPtCP15/5J84kBgf8wPpcP+WXopthmO9YNF896L7cFBk8zuMjDH3mYPcioKF/OTVf5FRaZXrIBlUhkgM/GI8JHNn+Z5DuCZihuDqFu/P42IV+Mjj+aWtfYGBl3/yL5VJVHrC8daze8s2bNAj2bw/zwuAQGHhOqmlU2EV9oMxjYiIDCVODAeC4Gc88cnutrt/5q6S4xaKUDEXnXee0FXjF3k01MuzPo0/+4Iz3c/v3+KevxlDVUmIdhvOWosu/kS4t0cwlVf5DkIK5egcoVCVqrWocU+7+BK9fw5Ke1xfjlDEiDL8IlX5aVaQF8kn9qzzzhCcXPeE6vhIJ+Fjq3op66CED/x0jYbIIu2kT/G0TXEWBO1jTXTCj5bK8vTBKdKofKH38hJ+0+35I1pRUGVVYQ56wXRODLU1LfBGeowapvTiMektKMZPh6RNORShf2zJv6eXTiV+yqmjlHGQxqoUmiHmqB1ommHSFEfMKHIom3IlfU/rAUKjYoMeolgSvb6vlcADn4fVUuU6GJSwwX+RzNrcFbD0qSTGEyN94VNm8imdBsfkyO6C9FSConTkL983WmGoYZU7B5ePbBRWNWTM8fV+h9dvqNaeQKIXoxIePrVERLJ/i3fg5DIeJUNfHODGiWpQsx/4daMiGMDEBtb8owDUVrKfCjB4XOc6aJ8RMMLsNX+DT3Vdy62F3CE61YY3U3/hYDOjORWyigxORdSbqTN3K1pJgT28U47mt577YvfSF7wkPPwz3udbysmvF37CD9G6Mxg/k2aPWb3h6j928+bMk+CeGj3HVm+0J4K+bgfznkl72kWXurmd435daSL8CjLrdjBw1tjIzlmbkwaPH7c0WJbm3X/0TveOf3hX0Gj4AKjQmPQ5+OWb9ctDFWwqQcXOfe79nynBVwJMuIOMdhzxG75+YyV7cnGX4lFNk7No/qJcmnLACXfQFF9w1vnWrLt+WwMP206ag3V71SSGKXdw++7tTXIlX8yEb0Xz1Tp37hnnuAcffcjtwnvxV1/7SneYb7RNQJmyDP7Nm68L7kyUc1Qgd2VwWSC5DgBg9kx5Is/oBwYH3Oz22Xy6Kjhca6OanZCZ/3JWrQqaQccvKkxkmbIhOpFOxbILB+NoTKd230D2fme+dTVlMDuZ80VNLnTnvm01Kcx3sKVlX5Z7OjmZZwu29NlH8K+nD7abeAvafx07lSfE8PPmzJePD1t/Mup+DMn+wdSzEim12V0ZdxEkCDuf7L6wf6D3wR37tp+bkjJNO1nnxDHvYDxEcXM8KZ0dc89duXTV7QlkerbynIOls83akEECslk0okrD1Wgmu8YA7D1r/bl510n4BYSQuJSDNLKck5PtwHj12dwz/hIHiZipTmadoy8hlexYySM03DStP1/O5twMxk4gm7nPkMY0U9j+Hhx7zhTqT6tGsP6Sw7/G0g260peF0yInpQc7ZqTdTQkOnN9TY8Kqkf2fphhUo5CZYnfVTUyN/paQIQB4jDQ5nighGD/gc2DFg4cTVq6C5HAc1EQtV2JzeEsT5YmohhKIJOG3X9wjWOTLyM027iSR914k9m3j9bXuBCJpnAEvHa9C4dv7L7e4ngeucHwPgo/W8jiCT/ZKDdiFH8dJX2vlN28aMmCczJNj90IkFM9111ZqSiCSxuuW5c+ka9OFXB3b7R57/6l4bg3JQqK48MvR1pYE8qCQOGT04hvx+tA0KFNj978hkS+u5n3VBCJ5qQv61QQafsQND9x/5Lbt+wd3dPSPHe2AkJYXHN2zUmYdEyVJ87W8kcR2BAfssc5lx+5ceK68SkC5NCV+1pDPHkrxVfLRB6ULeKWSh6/ZJLmweNfMQz4pKYXjSxq6flXbQF12P9Ay/9j329f2zm6ZPbSofenApSt/sX3j4nPWq/C619cjkS8vx1U2gQjW98D07HKMMfz4aHfXlw+9b7kGGE5DKp9QZx1gYHh1N94YySYr9DnrogSifaC11X1+qX7Hk/pEFkJLo1MPo4ZEMHFefxZm/BFcZEKe2Eo8/3Lw1805rS67d+OnGt6vuU/5H2IBB86ce+H+Nz7x/XzVr9bShkT6EZaw5N74hCKvPiHMa33x4F8N94/1zAJ5+MyCMAo7WuywjUXg8pKHJSpOFjelBrca+BZ5E5FCRIzYIGLTgRbpokBVmk6lj/QLQKRRokeztp4SxIGWUNRrt+wifGjF/7QGytzcc8+K1/34V2DqmHvzhR/adtaS809T7WXX+AWHscuRxJ/EFCUJBJEPRUyWbn/zwMcOHm7dySPQWUYsYfCs2lYegoxG39KJEpS3DwybViYQr0CR3wsQ02RWJ/YIijQAmenaBoC0hHty4qWNVSIzjfekUgXdeQnM7rtju7H1GfN3XFW/WhD00yYFSf2Be99wGhX+0y98h1BuYMqVH0PGJUji3UaQupYG5NcNUa7m+6BMHo0JmzEhhtGAcVHrfNsLQg+zjEea/g1DCQr7+kJegvN4vFg3RppQKEFlmp6q+uUlABWQ4pU0qqxEfFo2Iym+kGA8dksYKEWLyTPbCQ3yPQ1+sKblG49+brPvlqvuihGpBALxghiZbdvLvAaXoeKTZsaIgSAQ02UGaKJ/9NM7EAgkRN54ZJIyiZSEppPZh2+PHe3hu7JJsE0PbUjrV6tK9IOXica/po0NFKm8feSxnYvJt/rn/CHQOu0e7OvFO756V1ZkQz5rS6LoZy/Sb/q+ufP6TTuPPbZbjCyzAi2CqSUkEMB3GTCvfvDY7Q8LnIEwg3zN0KAZShZ/vJff90CxJHHWpWaeT5y9zurp+rAv2bz1MUqnu6Gk5AuG+hOKFJ7wYKeKEDxlerjwen5KEX3oD/TjzImAOu3uxWs8e3fsC/JFopdPC2K9opvAqLz7zt8/NermNS81YLwPvNqAefV9g987Qw7Tea+UMRHPtFbbLIjAo4hhfoTZDawDQ33uFLz2JCfvYR+CfZ0cwNi+EbWX/d7j/rEZsqAE/Wh7kA+GoFWnNhM8WjEt0dL3QAsgu6FtDH539Hj/cbdyFv2irVhsf1fG7mv3YEBSniyMi3QT+YbUUClynOswA8G/oZKMfndckm3fOyetOUxTxVisUni/D5rTiYezQP+Gffvdp7u7/WbUNpdRzf0jJeH/qiOdSJhz55+1SWCWhkQ+AxM2fGIBaQIeUYvxYqOH0W7+2Xkj2wle2+y3z4bLMPxV+Cb7P+7ZX5Pdz3tkQOxee/qaSD/EU6Po97XvE9NICWMAwml52SKfIRGlSmLkapS+2wgLQaElHGCI0RroLdu2uf2H+GuSWlbjtPDZHaNuKfZAj2DifXsw3iA4d8n5F1Jj+gTcm5mvX8IkwvP0k1X44HXMHxIZ4/3go/49O/e57iP4CT9f1s5udb+ycJZbjt9Ffrh/xH21G7MyKhvP3oAkaiQsPkTn6Y/YUs3sZ95TSHRwJCq5qzmB/E1CmKCOw7ZgYASjsxYY4imcff3SAU3gqFeaex56wPUP8IZFuqxfvcYtX7YsyNEAULIWmVWm3ydCdAI2xr6+Rip6RL/XaQJkhkKU2Zknn7py8bB92yM73OAgthTeIK3G3PIVS92CpQvBh8EKYPC/jH7vTtmq1gSmh3xZceIRTDFzSejbcApWSy84LXI8jBjSoFjSOXiecLY+UiQBjGWBTkUm8oNeL8djxATRafo5aySp1BbZlNEvWMJI6/8CjA2U4IuXbZQbzlzn7dOtivgEUSKHg0dkigTAvBw20DP/2WtWqT2B0KhxgKlisDeOcG+N2qmBI1CDo0jFKcyThyCxT3yQ7wksiKYg4EU26UWqobUGzIMFrxQqnwTeOtFg/OyQLsgXLPsRN3mlqxKUXvEmU9F5+o3CC25iVXMC1RkaRzN1mGMtTgVHgVNTW5JAgdxGnmDJjxkodCpGZIrzhBpeai8fcP5zVaJfbFDuGJ/YlNEvghL7qIa0KiHST0hkH7XH8sFEtPAFXeiZfQEGMea/iGjyqvYEBhdpNQ1FTQcDXB1mVwJCPErAC4PCAj/xJstTChthwMkZR4Qnt4qN9Hu5pkdojCe2z9NRAGlDl7TKJHVoo8EEJbYKRmnJTxyKJSqBKEzkR/qVuvnrmhNI1clIorlwgf8MgI+G1Oq14sFTgieMjLIkbYGYHOIo1/MbbdAvONKQjHS+LRxgEkiEN7m+VnnAe8q0LuVOw5Q20a96hd/0U1aQbzLSMNI3u9ScwGf2vaKi7jLP2FbkOZmR2S/yjzcW8Yn8eGUUfFMYgSKBUxj8ZqguEtiMKE6hjCKBUxj8ZqguEtiMKE6hjCKBUxj8Zqiu+TRivMpq+UnCarLtW1eks+/mGE/8TR2DnUx1MQNneLYnfAa+6DkvdFzySnY2feGDN07bz3fl2T8dYBOewMly8k+ue7PbumtrSt3H//KjLu9DddmBk7cZjn9v1ITGH9fK+/1R4o8d73GvfvtrXG9/8qmJJ51/iXvnH7zNxDS1nvEJvPWu20r2ixah1/3lH0ozDrzhJqLODgzTYXf8rd/MesYnkMF44nkXu3f94TskLp//9y+4L3zrX1Mx+rMPXOvef837UrCJ6vDjTB99+4fdquUrRcUP7rjFXfnUKyZKnf8NgQkTP/GCs5u/lzz/d9ydD9zttmzbEpQ/tFWfiAyACWrkzfSJTB7dOCGPQjswC06WckIm8GRJHv08KRPon8gLeeaBULbYL95n4dOtf0IcxNQb1M9c9yn38mtflWIrdwSZIpqGnZNyBi5dtFQ+drxu9drclPzBS17nGvnWcK7QCQLKEyyUjec59MGPMoqqfVGseKSiTODKgKs9UlEtnvZk9kk5A8vEdEaCiwROUdp6B/wrdw3qjxNY5dsklb9dcqg7eWmlQZtOCvbuY4eb4mecwJ9Ukjivc96dlfBdRw64nj78EmZRqkag2vFEVQERQXwQswbwiq/21qq42g440n9SNbt7jrjHD+6t6nPn7M6frF+98ZmVCO0gJiSQxNWOREdGR7oe3bk5fFKkkgLi2mfNdqetOX1cX96vJnum4I/1HnV7D1ScFylX8NpIuW/1xnTrkMBdBKQSSEC1JIJkFDMx3vSSrShNiEBbW9t9Z6zddGEVUamPwOYlkC+mV/0u2t6u3bfgXOaKKsoKdI0RqHG3sxczj7u6UEoSaJgaZqKQYrO6H5vVej4ZZSpO+rrGGWdx4nelr7KO1WUTSAIk8VZUzzDiWuqe3qN37u3aswa8q2uhP5lo/MEJ41nvLqgdycNXBEpLxQQaOZLBc8T51i/qSYvAs5G4H1TSVtNIgJAFWJjsD1QSVuCaEgFek+aMY6mYPGqrKYFmFgT+mYjFCrA3GbyoG44ATw5n+9i2os7dXOZpqSuBsQAo+ZBXGCrgr8ayM6Yr2iURuB4QnsfFZQ06/MrRzCjYp56P5ZNYbsfSg2Urlm9guQZLTfvlqfAUts1Iu5sSKzjPT1QexFJr+ZumKG5QCIydkXY36HaaHUHgr7CMt+jTuWmRk9KDwTPS7qYFBwG4crxZy/BN6r2qmWp30xJHQQjC8zJJaLRb85FZI47MNLsn5IABQbgEQax4/3CcQeYHyngUN1GF8Xj5BAgfxVEmvs3Y/NKUBCJhq2DaDVh+qfkmnnAS+drS25HQv2uGZw0lEIl7N41phiEnqQx8/dadiWSOex8/rgQicX8Bxe9tKOiD+x9xu/7/o27oKD7JO9rlFl601a2+6sqGZE4G88TYzVm5GIkcrNeFuhKIxC2AguTTtfVqU/ph98g7WvErLa3Jj33wW9T8iCrqeaf/2G285vLxiZ5Qrsmw+0Yk8ffq8aLmBCJ5r4Xgj9cjPId2zG15O3Tiei0/GC4fEUcdt5nEWfPvcOd9+Kk5/FMFmky7B5DEmn+5raZroUjelxG5RpPnkDw8DOmTx0TJF+BR81cb2Ld68OBTXf/u5AW/qUqb6Z1cuzsQbxY+GVG1VE0gBPGm7m9WlVSVYISPacxLJYpJk0RyFvq2wJDQn7/ptKoiJ4VgyuzuR+znVHOx4iYUAj4DAS+vJiQPv69v246He3461DvW3TE0Nth+Xn9355kDxxaF31ywxKV+g4FJRDJ9Yr+04vLH9auh0CDf5ZSKHVFp3wllxz5mLgh+LxQkAQ8v5Vuf/vUPcosEylRRSqtQ3RCIoDH35JbBzotbRuqy+6Ozz32c+4m5sxYNnDZ/08Az1/7qhvaW9ppmlNqfrLE5rZijskgk7xch5ruJqOqt73bduH3n2H0bGJXwcVQEhe3n9s5264b8ppJJkh/N8Anj7LP9odXAf2QFfiuSf/iYuQTdR1tg1kYNW8W4lE7/swFMlcFJlyTOt4m3j6V7nlj+1R1r3KZWvPErg6o2u9+Ij5+bzDgWc1sXjPzhBX+1Z918fDm99lLxIkDu+4FwlJvWmpP3rQOf2L/fbeWDTRtosIWGwfOxda22afSzC1nxQUFtSQs4JhQ/VuADHpLHYU2BXqi0QcnCNkejaCdeOon+QAsc/7Rk8F6+4cnTZvvlYFstdkN6jv7jI0fb/vp//2gdtV/3lM91Le5YXssztq2wg48SckKVlHL7wIMllDkAjN0h/iCIT54GN6JjHCVcbJQEgrMvWvLwIou8SI4PSCResVFCJPAkZxHdsX60xY6A9uNA5QtLhFcqriMbY3utnWu3KlfJHCRsxfrH3LX/89LlH7772n2CqL56NmTkPvlXkkAQPhPyqv4q9b7+rds+d/Ct7dQdNtMcwYycFKs9nr+pQKdt05kKDHAGj/aBkQQf7CQIFhSqapHhblqNC7VvpuwLSTI6CuDooBwvn6ygE4px2C3CyO1VpPQbEPWDx+5a9We3/Ta2yzWVx/OoShIIoh/nEcawo8Nd+/7r+D+dRhhttH2M2Racl4hYUGzTwxHNhKG20cvkWZtJ9m0NqOdHx8cjJBOEZfR72li/EVOOCSI/2tzHGjquVX/9dotMCqIAlDDYvN6gH/juocOz3vCTF0FJ9QI5l2WpUgkEwROzBDn9sa93/90qSRIsoY0cwNJHW20UAIHBCd0U0U4GBAmzTVCUMMUB72ejzWaTHzJIPZDNv6BfeoADJ4W6I/1mnxEQZSXINwBqopWE9tZnt4hJBEgMgn6vQ/STBg70jfS0vu+nf1zLbqvkDbJUAiHue15+2eqmQ2+1GAiNGOYNEZfFaw29+GCRCgctfgbGCcwm1M9QZYUsCGKiVGpS05CgX60RE4wipV8EJBKEBoL1T92lLN9CBQz747Bb9XvZIgPiqF9ksmZR+WI/eo8df2DZw4fu2SqoCivQp05HsglcUoHX3dn9nc3YXIoppJMAyRpt890LMCILyljqRJ2bSSwBxlEe9z2eOrzgjHjRUpN+b59V3rykyhqeYLQV9s2wSbYWsZ3l7Q7+m7yUA1Enav7tvW/eaOQV6tR3xEICEaiq9/IeGP7+Jo4rFtPLA4gQZAmGUlhcuAPnPrL7KO6cyKyLnE4dyFiAPB60R48dkwMkkU+FkBN0iRUc2LF+tUxIIzz1J7C0fdz+xzIFC2Kz/3gPr/7Rttrt7u3pi+KDcWr6aQQwYgtXzDIW00/szdu+VO27YKmfyQ0JBO9fUUC5cnBgz247WqNCGWFimFjljeBvEnmDvGGkPcLkZZNlBy1W22y0GgHbvA0/vwp+Fqm5s/LtfP0MTxIQ8qT4BWcr0oI6kq8yPRxkPT3H0fEDy2qz12qz12rYzd8bZBH9YpG2BaaIJHFeP8EsX972ybO1Vds6TuCllVhuOXbTUgsG6ei8hDZZKUT6icGk3bxtK9bJzJKg0GFbGJyAjw5wAKU40eQHBLpSSvQTL9QeHwcGbUu4Z0cFyfpfkmQvwe3ZxUSM326RQwegSPSbQgUlaGnVvkIenmTUcQINllv3th6WC6shid4wJVbz2M4L4sDgAI60fGJsn5KdkQaPRzrk9eFHIlPneZYY0y+qsZI+KsPHtnAzSeOETC1Ucl2H8zTyRPxDA0Oub9jfpzT7arR7sH8gioXX722iVrEi0gVQKLfs+GbNm9GaExiko5E4ScPwx/0Di8Yj4BkYo31kADcjZKb5/Qlnn43uuB1mo0iUX5IO8hUUZDIjlG86PDr0Zf8o9vl0eftAoKTePu6j4qIyFfLQcb8ZlcTBz9jWuJ2xe2hwWAaexqe8/livtX964JaKB5OgC8crNScwGygaphlDmGSEW1/NCPTAsXzzGG7ky4EAN0nxZjJKpCSUeOeOq89uTgcmvg90SJSfSYl+tsAQJSLoZxhJLzgvFPYYnrbTQumrFJqLorT/th+Pq9Rh9zF/UYA/oKwx8vpFXql+1ZVe7+3bvjQNKemtMUjNCTQGNQo9iRd6CIwGx7scB1GJ3IJ584V9/zAe+ZBNJJPEmYiFoziVUJAion90TG9Kz+7A1bqUTG+J6AeKfx4v4UliRO3CS7wkUfrkSYrYb5AIwebcuWrDvkG/9ZBEVrb75duxyUVpn92uZkM3zZNBQgTakRpCSkrv6LG2EmAaMP4EpuWw580pYxUDvOm004XtjfsPgdwHgJskSR77llAV8sX+WW4ATZsZJTpJRqREI6NY4MYh6ZWOz7EhFAb+VPI91sSvXsunJZ179cM7a7L7+oPDrt/PQC+KGqSZp99osjVeW095kcWjL9egCa95BspIpRX6HwyzzRsROppVnRnODVRnx2zX2qqqrnr8qNs3jE2o7D98MjkDvaPvx33DbyCBLBdsOhvi9TySYZBgw4bQJhHwCle8tEnr5VG/wdAIcIPF+2kvWUwhnrO/BXYT/vwHdrvdA9iClLH7HfuG3b8ehj8o605fG/SU0y+ETVjl3g/MkysOh2AxhP4AAqayEC/G0nS0DS/RQO9pFz3R3Xb3nSR1bz40IPWvdIy5szCWjoy0uR8OtrqdeFDNyrLFS9ysdm6GTD5maTX9Hp+n32CSWtqaolX7zWZNJPzD36bzTncP3b8FZo251zymlytfsLjdnd3Z4g4PjbjvHB112wZhmy/zF813bbOYdJMpLY4dFNmmBJ88S0NVmKpwUCNVRhzv+4WjNZDKH2twsc1CEdISuFAonkQo5P/v/9UkCqDMaiXuc65Zic2Xl2em5eqHDMPHtWgXO7x9WTtFtgCD3YGfHgEf9GOz+PADj6StVZfMc8EtWrLILV2x2MtTGSLGqNhBMT3SKbNq+u/IUzWzbUH0ttigYpS0BITvo8JgZyykftrFl7jHDxxwW3djv5IpnR0d7twzNmGzpU6aSJKV1Z+REYITMeu4V8KAN6GsjYB2ch/GPkoQAXs2nX+mO9J1xO3fh6NSj1cqvBuNA5a1G9cIfZBvzKDljzlbWALemBusa96EUo/ZlGrBMhrFzacV9mNaNRp4D1yBGXaKPE0AOgRMqZNNstB7WpFF77nJMwVxy/RzlPhSTb/aA2Ka5Pm1k8DSsqi5xS1atsgtXLoQbVjsjeGPeog8G6WK9RZSgcdH8THZzaiTnU4VaWKkWZ0ykrHV/YUEw+REtBJ8BioKvERA4wIOTZ5k2AcmprX9leC9/Fia4VP6Y11mXwRTf8zYHP1mP3KQHIh448Cm+rVfXr+nN/0m09Q2oa55BnJ8667ahxa2WZAlGGaMN1JMZ9K0wShofiInJAgRnmcTqSSZLNSi39NKJaTaSun3STK9VpOcJaatWT9k5uk3WVZ7DV6PaFNrvB+Kb+669hnoA6PWYU2PUMx4SybhIcDEy580SF5azLmYKaIS+RmZhiZLot+gXr/ZV02/WUthnieRlC+/Gl5cMv3olHEtFjPuds0JFA00xltjgbPNB60UWLBWG7b5kUR6ZmKM3zavDLv+EZngg3wChaIMXmwjI/AsXpfxl+gPhMnmkzYl7NoyfhXs8VSTkU98yv8M3ujVuOata06gGBCNKmlGjhiebpux9MFCEmC0nQgIELx3lPgg04cxLYs98qpMb0qiiwjKJEmQGbeVX9Yx3nSZfuMvkaX8ZfVTZglPop+mT0SpOYG0Tv1OAmHJEcO4o9boSJdNwSu5P9AhygNiWmkrf0omBBKlcnPkK4JCUXLwGm3FyoEEmxn96MbyLflK1gT9on3iVnUkUB0PMfNxSEyrjLcZRn5SyqIsMnIFwmnlYYaifMQ+IIJ+glJFOQLeBAgvxAIh4gEnyhYRYfI9LWHCLqtIP/BBvjDGKyUOeM8bU0xEu44EUr03ErXNFAYmjFrDixcRrffKeDQKCCgDwj/Ds5YgkVfbpDV80B/BcvWLHV5/TCtwilb5zFeJfkGX0U8+b5/ZVF4/BAVZ2p6Idc0JpO10y9YpY/zmU+JCKklMQiEHAoHVS6E8bYLcNn8aUOEkjguj7PFK7pkItpLVD3hMVVa/59cDFe0EPja4ZPUHAs/MyvRHIA6MySg1nweeMnp6NBPgG6JvRrbhCxpy1V4yooaHZKJrrgi98JGf7nlaq9lVBM450VE0Km2bPuEUOYFASSOYYLysMFvISGkUpwQG0ZowzyP6CSWtSgdKmDwtEYYRMukbdSxfGDKroRG9b5gB192tOYHnDF5RVvjq5afipi0vMRWl1gjU+hMO1eTVvAmtJqjAT00EigROTdybprVIYNNCOTWCigROTdybprVIYNNCOTWCigROTdybprVIYNNCOTWCigROTdybprVIYNNCOTWCigROTdybprVIYNNCOTWCigROTdybprXmi9nj1fiC1//GeFkD3zc+9hVp33HvT917P/G+AGfDcCngSdQpZuAMT3aRwCKBMzwCM9z8Cd8HvvW11+aGKLsvI1E52lwBBVAiMOEJfOoTnpIb6o7ZHY5fr4hLOdqYpminI1DsA9PxmHG9CZ+BkxGRn973M/eej1+XUvXUJ1yKTfKfp2Ds1Hoqkj39+chbP+hOO/W0IC+Lv+ySZ7i3vOpP3We+eoP76ne+FujYeO8b3u0u3HRBCtaszoxP4Ieu/7D7wR0/LInHHff+j/v1P3yx+9pHv1yCmyjAb73xJa6f38PJlP2HDmQgzevO+E1oXvIsPKP42u6Xb9aLAAabqPrWu27LTR71/eLTrpwotbV/pWLCLJhgwTd8/cYJ1lBZfFtrtU++VOavhp3xm1A6+JG3fgj7pw0O31dxv/nHv41P/idfjagWgGbjf/d5v+24sAzjcyp3/vyuZqtIyZvxm9CbPnCDJI9ecbR/5rpPpRxkpy9nv1RC1AQAr8ta8ihu1qxZ7qkXVfwIZMNaZ3wC7TNeFoklC0u/E7fvgH6/02gmot64duNEiK0qc8YnsKqHIOBbUBNd1qxYPdEqcuWfFAnM9fwEARYJnOGJLBJYJHBmRWBOh34DdGZZXd7ak24GnnfmuSXRuOmb/5KC8XrmTCknxIl8PcGe1Vbq8he//SXH5fR1G91jO7fWI27KaU+6GciIt+M7pHllpiWPPpyUCfz0ez6Zl78Am+jrl0FRExonZQIXL1zsrnvje3LD1z6r3X31o1/KxU1HYLhGgS8wJJ9gyLG00kv5M/0jB12HD7q2tlaXdxkuJxRNAVWKJxVs2lB6sBUrxqdRJHele/SY6iRpL1+ybMZ6elJuQmdstnIMLxKYE5SZBGpKAvnd6KJMTQSaksB+/jRNUaYkAk1JYG8ffuGrKFMSgaYkcIg/alWUmiNwqBu/PVGxtByriHYu4JuSQCrrG+irorNAWwS6jlR+TrS1pWW/0Zap9xi8aQncuW+bySzqChHo6Q2TpyzVnI65pT9rk6Z+zLpNSyAF7jmwy+QWdU4EeLGrlhidsnTFhhz2GPRN69ScwM7ZnT8xpnI1R1d3z5Fy6JMevmXHQzXFYHZ7R7VH3L5uguIEXm/AvHr96o3PyINnYY8f3Ot276+2Bchyndh9PnBc7dpniEBLS9VnIHEZNOwD44vZayGkYuS37HiwF1uBuUFZlcbqU/Al37kn75d8ucnctucxV89R+hnrNnXhdtbySqG1C9mkCQlkp9odCYykrkd3bq4onHLyCjbBrgOLv4ieR3JCwIbws+UDuLAxzJ9dr7Pg/sKRs9afu7gK258jhn9jNNkEfheIXzRkXv3ors33jYyMXJiHK2CNRQC3kHhNMt6tlQiMZx+RWeLnlnBkAGes3XQhhBQnfZm4NNpdv2rDg5CRzUdW7PYsIMWAxHDe780SZftnrT8HP+5elGZFAF/8v6WzY27lO7iq7OysztQmlEjsB/nET03XxnBY3Af6IpnZqNbRX7l01e2LFix5eg0sD2KCnZelS81AIkHEX6T4fJYwr8+Z2NbWdl8eroBVjwCOOPfXmDzmpSR51FAyA00tZhZ3qGXxRseaR6eP7do8t55TjJj/ZGvP7Zz/w7Ur1/1CHX4/Dwn8Vh592QQhgXxept7fhxndsXfrbbg/+Mw8ZSczDAnYu3r5mj3z5y58Up1xuA28l5XjKZtAMiCJZ6HaXI65gE94BA4geSsqaSnZB8bEYN6C/rNjWNGetAj0VEseLak4A83UYiZaJCat3obkbaxFW8UZaAL8TOTpRcWHf42+qBuKwAdqTR611DQDY3MwG29C/yUxrGg3LQKrkbyqdyNibTXNwJgBCq5CfzaWqldsYr6iXTECb0JcWepKHiXWnUAyQdEQljVocrP6PcKKUncEeJ79UmYN5UN1c3uGcSXQlEHxMJbn0ALA1mG53nBFnRsB3m+9mvFCacPC3VFDpe59YEPaJpkZ++t5UPlCLL+M5ZewcKsxnsKnxHir7TtYvorAd49HyInOU8T7RM9wFf8wAE7F8vdYjmOZ6NIPBZ/EcnoVs05YNHwv4n3CZrdGxzAIlmH5MpapLv8JA6bmc2k1xqoZZPCxiHczAjnTZWAg/CoW7oWmWxmGQb8z0+ObtR8+FfHOBuVk7GMgvADLAJbpXkZg4O/N9BzBhyLeE5jEaXsRBonntfKnYXk2Fj6wxafp1mOZtjbDtqJMfQR4t5NXK/kS0X9j+T5rXDgbQD3typQPZkw0vibz61i4t+CVyjYsRSkiMFERGIFgXtH+HBZe0e6dKEW1yJ30CYgJxwsVb8byWiy8TVCUIgJTHQF+X+WTWP4WE3JSn1CYlAmISfeLcO4fsZS8lAHY5JWBXfe7Pf/S74a6n+wcb4TjaIUPnsvD53Hbw2bNu8etfeWom7fpiZNn5AmkaebGm89A/wEmI/eUE1ombAJi0l0My/8Vy1kT6kE14WP4+ND2D9/lho7wfBIFk0t+E8tPuDARcWSCdzp0UvIoJTMh2+be5c55/9mutbPYazOM5cqJF28+0/5bmIz/W87lRuBNnYCYdHw0ins6Hl5OfTnwjR+7Iz+9XAyJ93LZycU+vh/hWuJJRxj3klwI95Ny4cU/chvf9Kypd24aWnDix/sTiDr3jBwUTSlNmYCYePyAyNewXNkUq5ohZNenfuz6dlwe9mqcSOFw00+qsCf0k8smmtBh0hlPdsJ2rrrdnfshXpktikXg5Ir3LXD7hZiIR8398dYNPcyLiTcLC7/VxWcjp8/kO4bfIpfJx0nHyYWFtbQB496Oi8CGgTcY2jL5gIt5UjJA27vz6W7/N24FUVEYgZMv3lfA626M/X/nHGAIxlvGvQeE4ndC6V+OV3HtfGOjj/Xc8+jWvp+3Hxrbfcpxd3DuqBsVu3nKNsa9E0vUflZ/uzt7kNsWADnRBImJI3s00qMth6SsyRjTsG/4DE54lP/R9tnu3xctU37VoG1YJqeSYhfNhIUACExw5NebmaJa6AQkdGwpBdcqjD6qzAQrLZAQJyXTFil4yUF1exoQsi/F7GTf2qZZSLgCP/+MJ+Znm4KA+83OVe5JbfMVMkHxxgel3KdHqVG0UjNVi33agbUtLWOnzF7Tu3bumQcuWvb0oYtXXHZGi2tpaCcjsquv3gXdf1mdrJQCoa+vIBmrwMET0pX1cdZGvaf/0W0/PfqfC4607Vo6NjrKszKJtIWdg4Evz7A2mGTCiyfs147Pcqdyx8YM2WQLE44TkXAssgf0fR6OUpscltqE9Px2LhhNzAP4TerPL9EQJJbogIdwKTZwBU9RKIE2sl/oJBM6EzwpiD211eRHO99/TWWQ72lFp+cnhemSmopEpW8YnkwoJktoFaT8hvOGvrJzjTujtUPsnah474YPH+B2EX/qR2IfQKGYzQREdo+t7zzn0K+f/v8d27TkwtMCcXMbj0PcxZiIdb0UWNfuEw69Hkp4kaWp5Y5D39r8yOhtZw274RboOM21YiDLoLdBpeoYUB18DD6KHze+kq4GnZkiFIvttWQvRzgWpcRYsYnmYXJY6ttGF+8dBUYZlBttWMUAGcnBKLUDXRbBky0ePIpK1sovfH7PZTiyswi/V2MwgWPFSHHwKU2LG/W6UnjaHZkpMiJBOngJ8BsSCo2K2kY7AIz4wuE6gam4MVY+nsQ1FG/qxf4s+J8YQLuBwTrxX2z1tiMWLdv7Hlz29/dfs4z+t7d0jF2x8oVbXnTmKzZF7jXa5NZ4L/TyIs3HahVW8wSE4Osh9GW1Cq5Gd3yk++B/Hf50x1G3n8cuEggLqQZPBwHHABcJMhqSfAonsfSVS9ZBgE+8EPsBYBOQjLZHY5sDxAaJ1Mbr+eywNd5bCp1OwCTRtNDsU0ME5x0wOjFJHaIXMmF8Q/hjGHmE3ftpg0/o/SrIDdyJTMOJOh84XwVqtVqmHBjlH5Ij+7N6gIrMV/slHtiYifCJijf0tsxSFZEB5qP5QXMJEw+8s0quhhM0ODbQcvOeL266ee8X3arZ63vecNFfDyzuXIbziaaUf4T+p2ISXl2LtJomIAT+AMKuqEVgNZptvT9/9Na+L5w+Mja8zIKGmPhiEHR98Igg3rqkYEBZGGgJbhDgGxwQ2ckkfeI5QPwgCRPR04sS4wVtiRzPL/A20c9NMu3wGadZUiJPDJTAKQZF+IxfISpGkQKxZon/otJv+YmMBqWK8kq8FPY0bjE84Q9QT1jOfhjtsCPy7oJY7LeYWhyjGDYr3rCepkn+taFtgROQKRYwD7YQecsVCuC+gR3z33LH785vb5099qqz3/bYxSuedkZG0ni6L0Nu12MSXlmNueoEhCB+E++KaoKq4YfHBnu/1vXB1r7Wo2fwt81gnMTCBiETy8JBojBpIMh+gBMpPfaZcFIabUxDIA8tQRMmGGTHh5KQk5pc0o8OR0V+TBPxU6bdLxT9ZgtoWOgWfBE/RC4HDvmJBBx+j0KG+E8IY4E/8VnZta2BIEfACb/0Tafy6yTw+kUm2t4ONky2Tir2Y37jU6zxUb0cxkYbCKEIEw4UpoPyWhC/CY03LWI0vP2p8cM4mB++bbYJveJ0ne//0OhAy8cefPsZyx9d1f/OSz812tHWyWeUGylXwKZvIc+/VklIdCJTSgYBvPH4q6WY+iA/OvTFrf9y6J1ze1u7O5lEDj4GjAGRgcjgMWDoSyAleNShdB4DHFukBZw1GbwsUrMIPyebnM/5Ws49MEhkEgI2xis0rP0yarcfPE3MbzQyoUFPPqEfEfVqOA2hbiy4UqdDBYBgJ/HqL+1L+W8+NtN/bwAHqxgllkI/7fP6xR4121smJgoeLeFI7KTtZCZCJ0HML3Gc8HgPq3qu45yLi4TRaprn21Jl/Vc/ZMxBDkklRCJZ2N2Bgb2df/jj58/95/s/sFUhDa35DiXnUNlSdgKC8cXgek1ZztoQY1/t+kDvtrH/3Uhf6acESJsSMwuYBENWpFHhxCHWUjxIkexwseD7rsnWvZufXJww8WTj1tomldWcXDLpbCJmebwsoTda1FJgiM+zDNIo52aPmUvyGEbXpB94EllGOz7/ITeSTVlJ0YEXYgxKtYM85EqK2arCvExPZfwCjWM6UfEWHbAtUSyGavy4oSbK28+2kGJN5+ICGqUFUOKuG5QUP1C3d9288W23v5xvSnihsZC62q+BXZxLuSV3AoKBu9+bcjlqBo6Nfung+4Z7Wg/rrpxu+GAwUJp075tUsZ9s6+STwFBnRJoM9IiHhL709OLhdk4W22vJ5PKTyPZ2sleMYZlJJlv0aLLaFl72nqP4IZY+yPfJFL2JfoHTfm9Ptgr+x06VtL3/osVWGoZc/41fSGkLFgkymux58zSeKlulpddKS788v3AbDQWpMN0wqP/9ff2AT2y8hwbxOh/8UfXqjNioBnvD2CGNUOX77/Fivw9KoBfuZPX4wK6519z6u8PA29Y2QdbXugm25h7S5k5AyH47Fr4QO+7ytYMfRFqOtVvm1clEHIOnYUTAfCAswEalYFAJoae2ynhAHPjRvuuB+93wEJIleyseaiJ2YfJEk8z2ejZwQs29IPlI6/lFFgeY54e8EfwK0gNb8JyubkmA06Y5FcDezthG0or/5kvE5EEk0dAFP2OM8guR0AFHtB+gCVzBIY6G8DwmUWyJcOIT+16sopQ6xYPO1i3b3MjQIGijeE1AvEdxI373Y3uClXE8Qzv4z+jDJG9/CKEABaXx12aq7UGhOjJ0oP0d//0Kbm0bKZxLb88TUDIB4Qyf9r8mj7hW2C0Hv7DtqOuCHJ80RMDOJygjBIxtvyhc1lx5GuVXKn8+yCCnIirksnpkxzYne78wubgHs8nkJ49NJtYyUGyCsgZtHsx4MgOrt7/P7dyzB/aoDeqLdngBQ+1We1P++7iQS6iVxcvRjvrItjiMyp/3kscUUoAVjjmSe1zCTwKVQ5ht+UWLrIhPislmbZtIrTX+5BcMePft2e/6+rCxm6R49w8MuIOPH873ny7Qn5T/BLKooyX+K7Lqel//znmfvvdvtlUlrExwDfSXvElTMgEhg9/RHPdb6YNjvd27Wu7dQFsYC7qeGnwEymAiBWlIYQWpJY+HaRs4G3x+8snFBc9itMPDw27Pfj6MgBKfk1jb9l42WDjZrG0TTI40OGmjyZpHI3jQoew/2OVGhv0FGTGY9gtKxwOaKf81In5IqK9JBMx/z89YkJL+h5joxkwplF/anpaygn7CpOMnr48fBFKwVkYsfAR6fqHVTnIxJ5GHnxp0h7oOC/1kxrv7cDfUqZ1qq2+jkg2DmGx+MJ5oZ8aPOK6Wh7j6btnqjsPf3XB8+Fgj34PlnOLcSpW8CfiCFEWdnf8++M1DcBrp04AYO0OiYWHD91AjNoKxAWZUOi4YPM8YmFUu6Y2H9dHeHgqSslcOQTMTySaNTa54YoXDzZyJl9nryaSFlj3RkzC9/TznlKkCTGKo2UejvMe+4XvgKes/mSJZqab3XeRzovg/YfGEICnlB0w1+7USSRzNVvNCxYgQz+OlC2jM9fUmR2W7B9C2DZ3Ft8nx3sXtpS885xSfaX9F/z2DuivOaxNrH0OTWa1GfFq+9OAnDlWjq4IvmVt5E/CCKkIqog+4HavopBUmVg7HGCwLGGtfQuI9mhEVtAQWROiQJgRcQCDmxIzardEzt9/rOQaMHWJyUvnJGGDoc2LJBZkInxo8hGORyUl+LNRJ41B/vz86SGht1fEKdNjaso1Cu8PhqOc1nwVPmNCpaAonj8HEf2zxy/pvewOyCJvuLXViqxTVpwTqAtsaQMFpk8SAouPtpLxEr+cXNDYc8NnKtw8cRJPx9DGbgHh/+whzEZfIfrEZOJqINn2yDRshlfwnvtayuec+PgfdSDk/y5xEMcGsTpr1twZajuOpXC089JKSGWQC98nVgGEtpEh3lHwOBnY5COKS4gcjaRbMncc0SNkxNORuOMzDIz8gZGD4SScwf15oe0GZiJxkNoBQ22AyXgoXM1rcv/XPcg+MaOgIMsOa5gAAFlVJREFUnuvv2dJ2TbaYAZ+AJY86EZoGV7/UfrU94gef+C9qRbEKxTrF7/2n85RH/aLW26qqld+bIfwJrbfR6zH7SUtBUovl3g0PnzOnkwZK2dY/4P5pF59Bnph433Ro2N3bj/z40kndMIx/NEJsLus/abjoWs0Hj4cJosbVseHuMLZrZMmSlfw0Qt4EXJrlqqc/7AZaGRBb0rxw3wfOAkA6HTDkATWTKg2VYUmmHJNJXraleP4WPMC9Yc06hWF98/Fe956uQ2447MWiyRVPNMH7yWeTLfD4pPuBRo0f7J3tvoIJaGX1ylWulQ+Pmz1AkE6WCKb0ihH7hUL5gv8kEv+NmvRJSfnv+RmrwO/JTa3YFNlOqwQGAtacyNKHCtokIqWtOpXG2qzVftO5YuVyRWL9zYNH3LWP7ka8/cYtG+O4HzZ8zImPvUze0ni/Z9+Q+/wh0PmyZPli/KaQTSA4l/VfQUItvrGPnoTG+21+msxa6/6R43nzpVZ20pXMrWQk1SNmHLSSYPBpICiAI0N6jGFS0A5dkvhiwRQkCGzwCK1nOHXVKtc70IsLIzwkwochB4fd1fsOu2fPaXdXL5jtZjHZTD6FcLKxlgHgYYKnMPRZiYk4hETjC32z3H8MpMO1bPESt3JZMgjBoSXlkAd5gTbgy/oPcouVlyaV+s/RRJvJrZOHZoromNhLkIlpcLFJYy6u+ckn7awMb79ObFWpSpIJy1m/9JQlbmBg0HUf1hfD7+/tdy/6+U73K4vnuNeuXoh4U/r44v3ZrmH3b5nDzvkL57tFSxeKQXp04CMlQfCOSlvh5f2PGSxAU1OnR1QTbEgGGFMGR/Xf8gcNdF4HkoUhDDg/4M2MWJbARBa23PHgIyIaMGdt2OjmzZnntu7aYWLc9/uGZMGG0z27o9U9t7PFrW6jML8FFiNtEtKqMbcfF1m+iz3dzYNt2KoHUaFx6qrVbsVSPEAvriQEsc3mV4QN/NThzWYrgRsQkFiWEiilhinmUn6dMImswA+QQn3D20yYyTIDRCqBKIFfu4Roy/Ozu3rtStfRMdvt39clOPL/55FeWRjv5y7qdC9c3OFOnU2m8vHeB9R/HBl13+jGS2leTVCLBif7wqULJGY0j7YlZNoq6z/pRVjCId1psKIvqQLHGrLy+q4/F3mxGGkjOuHBY4RDtVCV36pKVBkoH6rIjBL+EPyEX4OviWF7BA8Gb976mDvUfSTlX6OdRQsWuo3r1sFqbzDt9zZTtvltNcm0PUn+wxZaJg9Se2e1rfq556I9Psqg0L55I4kJNquAxH5wGU4EsO/lQeae7XvdsR5cES5XyBMUJUQiKnTTvbnz5rhT1iyXiz60Q9lLx0/Ifzn/vZ1BzTgbn7riu+PkVDYcudGFUCZ+D8iQBeeRLJ96TjVmQ5Or9gguDA6bTBjqMT/wmoU0P8EqU5NDnrM3ni46OAm379nleCN3PIVb+LUrVrtFCxeK/TIIRGHsj9qrPqgWbZPa/Izp0/aToyH/RSVkZuJH3SF+IY6qLbFLmL0FlKF9m3gxXTwJkryCArLXbFgtPvQcPe669h1yg3xCxoqXabKzYO0rUXt7u1u6YrGbM38OrReUjROJkUKwtriaybQ9omCOYFfwX5VMq3XTJ6B5J6HkSuLHhkBkAxtoJECMGXCKtspIjAu156dINoWFFxI8v4KEylSSjO2lixa5xZg8Vvr7+93B7m7XhydZhnDFdBALCxM/u32W6+zsdIuxp+vs4EUvSoB22qhKk/fhRFuiHwRCQhYhF4CtyO/hYqDnE1pxRvGyTlbKRbGeHyjxH7VMhoifFFxEPBrSZodtibVgAFAYEYIGTu/cKkrQZE4VkSYQtgTtndTYeGIg5i+c5+Yt4EMfyjM4MOR6jvW4wf4hNzyMZYjn33jao73NzcKnPdpnt4N+jtSxLLbNLvWfE877R+nohPwDTm2qkdLTbYVMv3XzJyAiIoHxAWAYLKgSPGQ8PjwynIWGWzwNtocwCWT0xQaMjhxI9zgjEX52hFC0BxqT0YGJtWbFCukKP2iNn8AA46tFGO3sBwuENvRKZHNEkF7thDDPL3LZBaKi/56f9FJEN/R5leSXJ0GoAEVsZS0duq36g//kxyLF19IXAz0/ZXoSSjA8YZINNBTt1wlxIls1iIPkF/Ekh//ts9vckmWLRAbh5j/RwTbPX7q3Stsv/ufoV8tor1jspZXKD4hp0mj0smqJG3qeB8cZbkksA2gJ1rYGSWmYEJ9dSQZf1hWQD7LIEYjSS6BlkAqVp0VFXfwjH4VakqwWkJfGLPq+2qgsIsHoUVuyRacykATwiJ9yiEOh7jD4hNBgnkbw1MVBQpgOVOlE/CKLQPFJCAkSejEvz/+AV77Ef2GVFfWJreKYysv138fPV8pDCaI847/ZKOg8/6lHF/JTRPAfHeqwYvFjXyylbGNGTZj0waU1kZ5GauIVJkoFO71Xzd8DMjjeew2GpDFEgTiB+EBJJYHWwMVbQKVVeYK1FQUEHWgav8U+JAEAnUVBv8+cJkr4hF1sNrZEdppfxWPN/4Q4+KN4oj2lOScMakKJ/wSb/d5Kk534bxaBgDIr+R/LEloCTDBr5RcdQmshgrZAp43YfM+p+inFiFWc9AN78J9cKIaQZib/QhDJ8zQEi/nSj0WYMK3NxmBP7D+FTPPS9D0g/WVQND+IRig+cEAwWNwKsnCQpRMUGISGXMJJgQwu/wQQbQWln/CFlt9TsW8JEn4C/F5AJRJPoBY2VYUolE7g94RhLygWGafnB7OaW85/qvf+x4pNrxcX9hTSVwNT/htcUcoVt7P+mzukif1HP2ZjW/o00SOC/6olsT/Hf/KI/7H7QZDhKvjvDTD1aoJfe9kcDAGuDW/ZzKqavwdE5C1wzJ4FKR0jv1cTWm2HsEUD0pIeRkEgYhIpkUvED8UJT9I2KyL2NH+s01tM2kRW2nrDCV4GsuLV78T/MNlDHBILyMsl3uMLNmuLiMaKNRX4orYpMPhXzX+TxZiJHs/PNmWX4QexqWVQQKf8qleYBE8RAmOD7cAXLCQ04Qe+qv8qSda6oi0+5yI/yj8wic6IZRo3m74HtFQxEKEtIfPBYfL455OTasc8Hi+x05h7Hgt4JN1orQaTyc/yy55X6CL+2FIPjvkDJfhswCR48cCroV9o+oEc+BSkNmX9BwP/WJKWtz8jQHXm+S/sZPKNMv5DQ77/Eb8XkfhHu7QQFvxPoKmWmUBa8tkik5NIm7ye0OiowfRI2wSx44vY5OOX+AouY7TaGGZA3fw9IKIR4uCDaMG3Oo6LBDUNCPwacCBlQCsRYchBmsbzU28sr4Rf5IBKDEnkeXaRKdZ7B2JZQmP8xhD1hcWvxG3RoYKsKYeUmYEVdAgRBAPv1aP2LdFDpTr5jJSQwC+4uO/bJI75qT8SEPhxvZ/aKvsPGrOfxCJXbeTUVnMhQUE0AEQkUz6rBehXwUcVpvoNFwSZXpPjVYEu2EMdakAsftq3m78HtOBnwkGwoEJQNXjcorIkgZRuhlsoFEEMBIk8rmSLWIU/EJPP81MG4ZI4hXsFWkV2EiD2kUc0JyS6RxECwQQ2NES8kgqfQAIBZdH8cv57xlCRWgyo0f/A6BvKL2sVo/5b/FLWqqpYgvqf8QlySvw3Jq9Du+TTv1gNbTH+kH8CUXylHekRgkX/FUKQ2R/F1TPNiKrpE5DjSYOpW0TGiPd9QmHArB+1SSHpFTaJrARZAg56wQs44iePyYrahMnWlkrBYzQkFTjxOu4DzhQIWAg9QSSX4oyfbRbzjaax1OU/6INtbIsA1iqNZrCQhk3ph/gIKvALnYKEn9YLO1Zy35A1FoGjYd6ZflWg+EBo8kSxdozfo1Q/gKILwICXhsItRsJD2kietckvMgSv0o0s+E9wzB+3lWXGrZs+ATWgiAzDmQmQBNKiylD5NuHkIEvML4MZQCGT7AiBTh42yUC2SKbI8hNbrfCDVymFRyeJ8rMd7EBTBovnJ0tWtkijX4rUCWd2ULrYoprL+k+055cKfAICb8yvdhIGKlUotgZ202v+e37bSKgVYrFRoubGhxsxikz0iq3o1+Y/D/doE9ZQYjGiPGmr4TYbSSmFuIAnhPys8Jf2X6Ep/wVEo0mrETC9RM3U0vRzwMv7XznuWKxefqpbMC95ZGzcggrGIgJlInDs+FG3t2t3Gezkg5u+B5x8FwqNRQRmbgSKCThzc1dYfgJEoJiAJ0ASCxdmbgSKCThzc1dYfgJEoJiAJ0ASCxdmbgSKCThzc1dYfgJEoJiAJ0ASCxdmbgSKCThzc1dYfgJEoJiAJ0ASCxdmbgSKCThzc1dYfgJEoJiAJ0ASCxdmbgSKCThzc1dYfgJEoOkPY092TPhtz2PRbwNOtn7Tx8/hz5uT/hlwfpj2SJXfdOyc3eEWzi8eQLc4nmz1jJ+A//mT/3Kf+cr1U56333rui91LX/CSlB13P3iPe+8n3peCZTuXXfIM95ZX/WkWXPRPkggUh6AnSaILN6dnBIoJOD3zUlh1kkSgmIAnSaILN6dnBGb8OeCLnvNCx6We8n/f8LtuYLDyLyV94YM3hp+erkd2QVtEoJ4IFHvAeqJV0BYRaHIEZvwesMnxmBbiHnzsIXfXz+92jx/c7w53H3bz5s51ixYscmeuP9M96fxL8HNrS+qys+twl7vn4fsq8qxctsJdcNb5FWmIvOuBu93ho5V/9PSpT3iKmz93fq6s8dpyvK/X3XrXbW7X47vc3v37RPbqFavc6lNWu/PPPM+tX70uV990BxYTcBpkaAS/V//Zr37Off1736hizc0BP6ttlnvD1X/knvXkywOsXOPRnVvdh2/4h3JogfN2SC0T8Ms3f8Xdv+XnFWV95K0fLDsB67Fl2+7tchuHG6JayqUXPtm97XV/UQvptKEpJuAUp4JbdS71luGRYfe3//wh9+l/+6z71Ls/jh8WnV2viGlLv2vfLvc7b36p68Ver9bS1tbm3nj1n9RKPm3oinPAaZOK8RnCQ9SXX/tKd7y3wm+zj0/0lHFt37OjrslHQ1/727+PQ3X+Ku/MKsUEnEb54gdzN6xZ75520aXuCWdfiEfUFtRkXQ8m3ye++KmaaGcyUQce2zvrtLPcM574dKnnds4Rdy7YdL77lWf+0ox0rTgEnQZpO++Mc91f/cm75PfS88z52Oc/4fjIXaXyvw/dUwk9I3G84PSa3361W7V85Yy0vxajiwlYS5QmkIaD7J1/8LaKGl7/kte62++5w3VXeLCbuB17d87Yq4HZAPzL391Y8nB7luZE6BeHoFOcxc6OzposWLdqbVW6UVxNPREKr8hm3yw5EfzK86GYgHlRKWBFBCYpAsUEnKRAF2qKCORFoJiAeVEpYEUEJikCxQScpEBPdzUn0n3E6R7r2L5iAsbROEHbtTwn+cCjD7q+gf6qEaj2GFpVAQVBKgLFBEyF48TsrD5llVu2eGlF5/j9mpdec7W74Ws3ut7+9CNgj+3a6v7q49e5F7z+NyrKKJD1R6C4D1h/zGYkBy/tf+P7/17R9qHhIffl//qKLBUJC2TTIlDsAZsWyukt6FUvfoX7P1c+f3obeRJaV0zAkyjpr/6/r3B/9so3u/ZZ7XV7zedUX/s7r67plaW6hZ/EDMUh6EmW/Gc+6TLHZWxszN169+3uf+79qbtv8/3u4JGDqUjwfcNTli53v3Dps9yvXf5ct3jhYsH/5M76X51KCS46qQi0pHroIDFjWVg9/c3bH6yHPEW7evmpbsG84iO1qaAUnaZG4Njxo25v1+5xy9y04dxx85IRRxKpOVccgjYUzoK5iEBjESgmYGPxK7iLCDQUgWICNhS+grmIQGMRmFYTcHB4sDFvCu4iAlUiMN3G2LSagAM1PApVJb4FuohAxQhMtzGWNwEbugqKizzj5u/pO+YGhyp/sbpidAtkEYEKEeDY4hgbb8HYHh0vr+cr4c+bgHsbUYLZ93gj/Pu6GlLfiOqC9wSPQKNjC2O7tg+Ulo+jflE4wudNwD0Rvu5me9usHXUzRQz9g31u577tEaRoFhFoPAIcUxxbjZRGxzZ0l8ytvAl4ayNGLpq3uOFjyL6BXrdt96NudLRkj92IaQXvSRgBjiGOJY6pRksTxnbJ3MqbgNW+j17Rj6WLl1+OY+WGjyN5teqRnQ/jEakDFfUVyCIC5SLAscMx1IwrnxzTHNvldNUIL5lbqcdiTAieRuNh5Lh/7aKn9+idew7sfpLJa0a9ZOFSt3zxCj7K0wxxhYwTNAJ8krLrCH7U5uihpnq45pRT75w/d2EjY3onxu76rFG5oxlOvAyE12eJ6+nvPbDrlmO9x66oh6cW2jY8JLxs0XK3aP7iYjLWErCTgIaTrrvniDvY3eVG8JsZzS4L5i64ZfUpa69oUO7VmIA3ZGXkTkASwan7UVX/vaqsxKi/6/GdP+zt7/mFCNT0Zmtrq5s/ZwF+F2C+m9c537FflBM3AjynO97fg9/C6JFbChN9nWBu5/wfrl25rtExfD8m34V5Wak0Afkl2O1YGhrRXUcO/OhQd9ez8pQXsCIC0zkCSxct/9Hyxac0OnZH4eMGTMBdeb6WnYAkxl7wKlQ35jHWA8Pv3+1/bNeWEchbXQ9fQVtEYCoigMmy9/S1Z7W1tbataIL+l0LeTeXkVJyAZMKkeR2qj5UTUA+8+9jh2x8/tO/p9fAUtEUEJjMCK5euun3RgiXNGqOvx+T7eCX7q05AMmMSvhHVBysJqgM3hhcif4gXI6+og6cgLSIwoRHAi+C34IVwnuvVNCdqMOZNmHwfqkZXszJMwish7PvVBNaD7x/ofXDn4zsWF4em9UStoG1WBHiouW7l+iOdHXMbe8291KBnQ/YPSsGlkJonIFkxUVah4tXRZew3sYziYs1PDh/tegKuKOvHR5oovBBVRMAigNvIR5YsXH4vLq48E7CGLjCazKjmh3UuwOQreeYzokk165qAxomJ+H60r7F+s2tctOnaf3Dv/cf6es7BrOekL0oRgfFFAJNhwZz5D61YtvoCXFRZPj4hNXG9HxPvLTVRRkTjmoDk94eN/ETWaexPRsHrJFt7jh/b1TfQNzI4PDB3ZGRk2agbm+fG3Dxs2ebDpnH7Mxn2FzqaEwEMdKTa9eBs7Xirazne1tZ2cPasjt45HXPa5s9bsHZ2e8fG5miqSco2UD0DNo3r8cuGBywi8WQYwOPd+ViKUkTgZIlADxy9EhPvZ4043PAxMA3AsgBGPAVL8eR0I9koeGdCBDjGn8Ix3+jko7MNT0CLmJ+IvHG5BsvtBi/qIgInSAR4urUG43xFMyaexaRpE9AEwri9WHhMzMPb52FJf3LZCIu6iMD0jwDH7vM4llEuwzKu87xKbjZ9AsbKYPC3sCzHwsn4bCzj/2x2LLhoFxGYuAhwjPI+HgvH7rcmTlXz7vrXZSMu3HSA4RVYeNl2Q13MBXERgeZGYDvE/Q2Wf8Zka/hrDvWa1vBV0HoVlqPHpOTbF3z4+/ewNPQaVDkdBfykjwAfIuHLBTdhsuW+nTDZEZo2E7CS45icvLBzDpaz/bIJ9SlYePXVFt4GmRH+wM6iNBaBMbDzNgC/MWgLr05uxvKwXx7CJCv5CBJw06r8P6H28b9ETrEeAAAAAElFTkSuQmCC','data:image/png;base64,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','data:image/png;base64,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','data:image/png;base64,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'];const avatarList=['<svg t=\"1690553184784\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"9074\" width=\"200\" height=\"200\"><path d=\"M511.500975 977.900039c-218.273684 0-395.22807 12.246082-395.228071-127.650682 0-115.135127 69.454347-213.982066 187.603587-279.044991 58.126472-32.017466 135.645068 25.370448 207.624484 25.370449 82.069708 0 166.325146-54.264016 229.501754-16.168421C845.847953 643.632904 906.729045 731.301676 906.729045 850.249357c0 139.896764-176.954386 127.650682-395.22807 127.650682zM511.500975 551.922027c-140.00655 0-253.504873-113.498324-253.504874-253.504873S371.494425 44.912281 511.500975 44.912281s253.504873 113.498324 253.504873 253.504873-113.498324 253.504873-253.504873 253.504873z\" fill=\"#E61D15\" p-id=\"9075\"></path></svg>','<svg t=\"1690553214467\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"9361\" width=\"200\" height=\"200\"><path d=\"M463.659089 647.857426q-2.027723 11.152475-5.069307 17.235644t-14.194059 13.180198q-26.360396 16.221782-56.776238 26.360396t-58.29703 22.30495-48.665347 31.936634-25.853465 56.269307q-2.027723 11.152475-2.534653 21.79802t-1.520792 19.770297q-1.013861 2.027723-2.027723 3.548515t-2.027723 3.548515q-39.540594-3.041584-80.09505-7.09703t-74.518812-9.124752-57.283168-10.138614-29.40198-10.138614q-9.124752-7.09703-13.687129-42.582178t3.548515-92.261386q5.069307-31.429703 25.853465-48.158416t49.172277-26.360396 58.29703-17.742574 53.227723-22.30495q18.249505-12.166337 27.881188-22.30495t13.687129-20.784158 4.055446-21.79802-1.013861-24.332673q-2.027723-20.277228-13.687129-31.936634t-25.853465-23.825743q-8.110891-5.069307-13.687129-16.221782t-9.631683-22.30495q-4.055446-12.166337-8.110891-27.374257-6.083168-2.027723-12.166337-6.083168-5.069307-4.055446-10.645545-12.166337t-10.645545-22.30495-4.055446-26.867327 5.069307-21.79802q4.055446-11.152475 11.152475-18.249505-1.013861-32.443564 3.041584-65.90099 4.055446-27.374257 13.180198-58.80396t27.374257-56.776238q16.221782-24.332673 36.49901-39.540594t41.061386-23.825743 42.075248-11.659406 41.568317-3.041584q50.693069 0 91.247525 21.291089t60.831683 45.623762q13.180198 17.235644 16.728713 31.936634t9.631683 33.964356q-19.263366 11.152475-41.061386 32.950495t-38.019802 44.10297q-20.277228 28.388119-30.415842 62.859406t-15.207921 63.873267q-5.069307 35.485149-5.069307 70.970297-8.110891 9.124752-12.166337 20.277228-4.055446 10.138614-5.069307 23.825743t4.055446 29.908911q5.069307 17.235644 11.152475 26.360396t11.152475 14.194059q6.083168 6.083168 12.166337 8.110891 4.055446 16.221782 8.110891 30.415842 4.055446 12.166337 9.631683 24.839604t13.687129 18.756436q7.09703 6.083168 11.152475 10.138614t6.590099 7.60396 3.041584 9.631683 2.534653 16.221782zM1004.047208 834.407921q4.055446 14.194059 6.590099 34.471287t2.534653 41.061386-3.041584 39.033663-9.124752 27.374257q-4.055446 6.083168-23.825743 12.166337t-49.172277 11.152475-64.887129 9.631683-71.477228 7.60396-69.449505 5.069307-58.80396 2.027723-58.29703-2.027723-68.435644-5.069307-69.956436-6.590099-63.366337-8.110891-48.665347-9.124752-24.839604-8.617822q-8.110891-7.09703-13.180198-42.582178t3.041584-91.247525q5.069307-32.443564 25.853465-48.665347t49.172277-26.360396 58.29703-17.742574 53.227723-22.811881q18.249505-12.166337 27.881188-22.30495t14.194059-20.277228 4.562376-21.291089-1.013861-25.346535q-2.027723-20.277228-14.194059-31.936634t-26.360396-22.811881q-7.09703-6.083168-12.673267-17.235644t-9.631683-22.30495q-4.055446-12.166337-8.110891-27.374257-6.083168-2.027723-12.166337-6.083168-5.069307-4.055446-10.645545-12.166337t-10.645545-22.30495-4.055446-26.867327 5.069307-20.784158q4.055446-10.138614 11.152475-18.249505-1.013861-32.443564 3.041584-65.90099 4.055446-28.388119 12.673267-59.310891t26.867327-57.283168q16.221782-24.332673 36.49901-39.540594t41.568317-23.825743 42.582178-11.659406 40.554455-3.041584q51.706931 0 92.261386 21.291089t59.817822 45.623762q22.30495 27.374257 32.950495 61.338614t15.714851 63.366337q5.069307 34.471287 4.055446 68.942574 5.069307 4.055446 9.124752 11.152475 3.041584 6.083168 5.576238 15.714851t0.506931 23.825743q-2.027723 18.249505-8.110891 29.40198t-12.166337 17.235644q-7.09703 7.09703-16.221782 9.124752-4.055446 15.207921-8.110891 27.374257-4.055446 11.152475-10.138614 22.30495t-13.180198 16.221782q-8.110891 7.09703-14.70099 12.166337t-11.659406 10.645545-8.617822 12.673267-5.576238 17.235644q-2.027723 13.180198-1.520792 26.867327t6.590099 26.867327 19.770297 25.346535 38.019802 21.291089q21.291089 9.124752 47.144554 15.714851t49.679208 15.714851 42.582178 23.318812 26.867327 36.49901z\" p-id=\"9362\"></path></svg>','<svg t=\"1690553232249\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"9507\" width=\"200\" height=\"200\"><path d=\"M512 0c281.6 0 512 230.4 512 512s-230.4 512-512 512-512-230.4-512-512 230.4-512 512-512z m115.2 505.6c44.8-38.4 76.8-89.6 76.8-153.6 0-108.8-83.2-192-192-192s-192 83.2-192 192c0 64 32 115.2 76.8 153.6-102.4 44.8-172.8 147.2-172.8 262.4 0 19.2 12.8 32 32 32s32-12.8 32-32c0-121.6 102.4-224 224-224s224 102.4 224 224c0 19.2 12.8 32 32 32s32-12.8 32-32c0-115.2-70.4-217.6-172.8-262.4zM512 480c-70.4 0-128-57.6-128-128s57.6-128 128-128 128 57.6 128 128-57.6 128-128 128z\" fill=\"#777777\" p-id=\"9508\"></path></svg>','<svg t=\"1690553247020\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"9647\" width=\"200\" height=\"200\"><path d=\"M127.99616 846.165333a377.173333 377.173333 0 0 1 218.282667-342.272 309.76 309.76 0 0 0 165.717333 49.237334 309.76 309.76 0 0 0 165.717333-49.237334A377.173333 377.173333 0 0 1 895.99616 846.165333c2.730667 156.16-768 158.805333-768 0z m566.357333-410.794666a229.973333 229.973333 0 0 1-82.944 54.784c-30.378667 13.653333-66.304 19.2-99.413333 19.2-33.194667 0-69.12-5.461333-99.498667-19.2a289.962667 289.962667 0 0 1-82.773333-54.784 227.669333 227.669333 0 0 1-55.296-82.090667c-13.824-30.122667-19.370667-62.976-19.370667-98.645333 0-32.853333 5.546667-65.706667 19.370667-98.56 13.824-30.122667 33.109333-60.245333 55.210667-82.176 24.917333-24.576 52.48-43.776 82.858666-54.698667C445.69216 5.546667 478.801493 0 511.99616 0c33.109333 0 69.12 5.461333 99.413333 19.2 30.378667 13.653333 60.842667 32.853333 82.944 54.698667 24.746667 24.746667 44.202667 52.053333 55.210667 82.176 13.824 30.122667 19.370667 62.976 19.370667 98.56 0 32.938667-5.546667 65.706667-19.370667 98.645333-11.093333 30.122667-30.378667 57.514667-55.210667 82.090667z\" fill=\"#FF8D47\" p-id=\"9648\"></path></svg>','<svg t=\"1690553261747\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"9787\" width=\"200\" height=\"200\"><path d=\"M511.950028 0.116655c-282.72239 0-511.950005 229.227614-511.950005 511.950005 0 174.137161 86.979006 327.947141 219.841031 420.433942a0.499951 0.499951 0 0 1 0.020832-0.074993l-0.083326-0.054161c0.649937-2.262279 1.370699-4.482896 2.070632-6.716011 0.249976-0.791589 0.47912-1.599844 0.737428-2.387267a289.880025 289.880025 0 0 1 9.286593-24.851739c0.3458-0.812421 0.716597-1.616509 1.070728-2.42893a285.538782 285.538782 0 0 1 10.590633-21.618722c0.383296-0.704098 0.754093-1.420695 1.145721-2.124792a275.998047 275.998047 0 0 1 13.498682-21.835368c0.562445-0.820753 1.141555-1.624841 1.712333-2.437262a277.8437 277.8437 0 0 1 7.874231-10.698955c1.966475-2.533086 3.978778-5.032842 6.032744-7.495102 0.649937-0.783257 1.283208-1.57068 1.941477-2.345604a276.348013 276.348013 0 0 1 17.106663-18.310712c0.866582-0.841584 1.749829-1.662338 2.624744-2.499756a281.326693 281.326693 0 0 1 9.703219-8.811639l1.041565-0.916577v0.045829c23.914331-20.481333 51.544966-37.100544 82.204472-49.211861a307.815773 307.815773 0 0 1 12.782085-4.737038 340.212609 340.212609 0 0 1 8.669987-2.845555c1.337369-0.416626 2.666406-0.849917 4.012108-1.254044a317.369007 317.369007 0 0 1 12.827914-3.570485l0.208313-0.049995a337.092081 337.092081 0 0 1 12.957068-2.991375c1.379032-0.287472 2.770563-0.549946 4.157927-0.824919a357.827556 357.827556 0 0 1 14.16945-2.512255 342.620708 342.620708 0 0 1 9.682387-1.354034c1.424861-0.179149 2.841389-0.37913 4.274583-0.541614a355.981903 355.981903 0 0 1 14.040295-1.354034h25.747486c-99.569443 0-185.019432-60.381603-221.778342-146.519025-13.032061 64.393712-91.30775 120.496566-138.653126 101.406764 32.242685-31.78023 5.253654-190.418904 119.504996-189.239853-8.15337-158.647007 139.003092-254.679296 240.930638-247.721642h0.116656c102.035869-6.957654 249.546464 89.074635 241.28477 247.721642 113.888878-1.145721 86.899847 157.701266 119.025876 189.477329-47.395372 19.264785-125.729388-37.37135-138.428148-102.144191-36.638089 86.404062-122.242229 147.018976-222.00332 147.018976h25.980796c4.724539 0.354132 9.394916 0.820753 14.03613 1.354034 1.43736 0.162484 2.858054 0.362465 4.278748 0.541614a357.594245 357.594245 0 0 1 14.40276 2.124792c3.153859 0.533281 6.28272 1.120724 9.394916 1.733164 1.412362 0.279139 2.82889 0.54578 4.23292 0.841585 4.241252 0.895746 8.445009 1.853986 12.602936 2.908049 0.270807 0.06666 0.54578 0.129154 0.816587 0.204147 4.19959 1.070729 8.340852 2.237282 12.448784 3.466328 1.462357 0.433291 2.899717 0.904078 4.349576 1.358201 2.76223 0.866582 5.503629 1.762328 8.224197 2.69557a318.968851 318.968851 0 0 1 12.51961 4.624548c30.292875 11.907171 57.631872 28.213911 81.367054 48.29945v-0.045829c0.362465 0.299971 0.704098 0.624939 1.062396 0.933243 1.953976 1.666504 3.874622 3.362172 5.778603 5.082837 0.979071 0.887413 1.94981 1.791492 2.916382 2.691403 2.003971 1.862318 4.003776 3.737135 5.953585 5.661947 0.370797 0.366631 0.729095 0.749927 1.099893 1.120724a273.37747 273.37747 0 0 1 19.889724 22.172835c0.437457 0.54578 0.883247 1.087394 1.312372 1.633174 1.953976 2.466426 3.862123 4.966182 5.728607 7.503434 0.333301 0.454122 0.662435 0.920743 0.995736 1.379032 18.98148 26.089119 33.530059 55.769554 42.90831 88.374703 132.749536-92.503466 219.645217-246.246786 219.645217-420.300622C1023.900033 229.34427 794.676585 0.116655 511.950028 0.116655z\" fill=\"#FCD077\" p-id=\"9788\"></path><path d=\"M733.953348 578.685154c11.323894-26.709892 17.902418-55.898708 18.835661-86.508218-70.58894 43.574911-216.458028-31.271946-240.843147-134.461869-24.318458 103.423233-170.558344 178.395079-240.85148 134.195228 0.912411 30.901149 7.582593 60.356606 19.073138 87.278977 36.75891 86.137421 122.208899 146.519025 221.778342 146.519025 99.769424 0 185.369398-60.614914 222.007486-147.023143z\" fill=\"#FCE9EA\" p-id=\"9789\"></path><path d=\"M511.950028 357.715067V243.634541c-101.92338-6.957654-249.079842 89.074635-240.930638 247.721642-114.251343-1.179052-87.258145 157.459623-119.504996 189.239853 47.349543 19.089802 125.621066-37.013052 138.653126-101.406764-11.490545-26.922371-18.160726-56.373661-19.073138-87.278977 70.297302 44.19985 216.537187-30.771995 240.855646-134.195228z\" fill=\"#ADBE20\" p-id=\"9790\"></path><path d=\"M752.793175 492.176936c-0.937408 30.609511-7.515933 59.798327-18.835661 86.508218 12.69876 64.772841 91.032777 121.408977 138.428149 102.144192-32.126029-31.776064-5.136998-190.623051-119.025877-189.47733 8.261693-158.647007-139.248901-254.679296-241.28477-247.721641h-0.116655V357.715067c24.376786 103.189923 170.245874 178.040947 240.834814 134.461869z\" fill=\"#BECF3D\" p-id=\"9791\"></path><path d=\"M726.366589 804.521433zM596.8834 735.211535c0.270807 0.070826 0.54578 0.129154 0.816587 0.204147a19.477265 19.477265 0 0 0-0.816587-0.204147zM580.047545 731.457735c1.412362 0.279139 2.82889 0.54578 4.23292 0.841585-1.40403-0.295804-2.820558-0.558279-4.23292-0.841585zM804.238151 932.375614a510.754288 510.754288 0 0 1 0.016665-0.008332c-9.378251-32.605149-23.92683-62.285584-42.90831-88.374703 18.964815 26.093285 33.525893 55.777886 42.891645 88.383035zM771.599672 953.327735zM754.622163 835.110113zM733.415901 811.304104zM717.671605 796.747193zM622.722544 742.935781zM610.152938 738.88201c1.462357 0.433291 2.899717 0.904078 4.349575 1.358201-1.449858-0.458289-2.891384-0.92491-4.349575-1.358201zM565.919758 728.957979zM716.609208 795.859779c-23.735182-20.081372-51.074179-36.388113-81.367054-48.29945 0.470787 0.183315 0.949907 0.370797 1.420695 0.562445v133.936921h-251.308791v-133.107835c1.020734-0.416626 2.053966-0.812421 3.078866-1.216548-30.659506 12.107151-58.290141 28.730528-82.204473 49.211861v183.911207a512.170817 512.170817 0 0 1-86.362399-48.428604l-0.020831 0.074992c82.846076 57.673534 183.523744 91.516063 292.108973 91.516063 74.713537 0 145.681607-16.019269 209.675358-44.787293-1.654005 0.745761-3.353839 1.416528-5.016177 2.145624v-185.519383zM409.880829 740.156886c1.337369-0.416626 2.666406-0.849917 4.012108-1.254044-1.345702 0.404127-2.670573 0.841584-4.012108 1.254044zM273.802451 829.781467c0.649937-0.783257 1.283208-1.57068 1.941477-2.345605-0.658269 0.774924-1.291541 1.562347-1.941477 2.345605zM439.886232 732.295153c1.379032-0.287472 2.770563-0.549946 4.157928-0.824919-1.387365 0.274973-2.783062 0.533281-4.157928 0.824919zM426.720851 735.332357l0.208313-0.049995-0.208313 0.049995zM265.582421 840.138789zM453.497403 729.720405zM292.854757 809.129317c0.866582-0.841584 1.749829-1.662338 2.624744-2.499756-0.874915 0.837418-1.762328 1.658171-2.624744 2.499756zM302.033028 800.584318zM396.782108 744.568955zM237.285184 886.555089zM221.849192 925.659604c0.249976-0.791589 0.47912-1.599844 0.737428-2.387267-0.254142 0.787423-0.487452 1.591511-0.737428 2.387267zM231.877379 898.420597c0.3458-0.812421 0.716597-1.620675 1.070729-2.42893-0.354132 0.812421-0.724929 1.612343-1.070729 2.42893zM551.97112 727.062331c1.43736 0.162484 2.858054 0.362465 4.278749 0.541614-1.424861-0.179149-2.845555-0.37913-4.278749-0.541614zM467.891831 727.603945c1.424861-0.179149 2.841389-0.37913 4.274582-0.541614-1.433193 0.162484-2.849722 0.362465-4.274582 0.541614zM258.183143 850.408619c0.562445-0.820753 1.141555-1.624841 1.712333-2.437262-0.570778 0.816587-1.154054 1.616509-1.712333 2.437262zM243.534574 874.368779c0.383296-0.704098 0.754093-1.420695 1.145721-2.124792-0.387462 0.704098-0.758259 1.420695-1.145721 2.124792zM737.848801 971.563454z\" fill=\"#FF9F31\" p-id=\"9792\"></path><path d=\"M385.354058 882.063861h251.308791v-133.93692a296.31273 296.31273 0 0 0-22.164502-7.882564c-1.449858-0.454122-2.887218-0.92491-4.349575-1.358201a314.327637 314.327637 0 0 0-12.448785-3.466328c-0.270807-0.074993-0.54578-0.13332-0.816587-0.204146a324.118348 324.118348 0 0 0-12.602935-2.90805c-1.40403-0.295804-2.820558-0.562445-4.23292-0.841584a356.236045 356.236045 0 0 0-14.127787-2.503922 343.866419 343.866419 0 0 0-9.669889-1.354035c-1.424861-0.179149-2.845555-0.37913-4.278749-0.541614a355.769424 355.769424 0 0 0-14.03613-1.354034h-51.728281a356.748495 356.748495 0 0 0-14.040296 1.354034c-1.433193 0.162484-2.849722 0.362465-4.274582 0.541614a360.868926 360.868926 0 0 0-14.394428 2.120626c-3.17469 0.537448-6.324382 1.129056-9.45741 1.745663-1.387365 0.274973-2.778895 0.537448-4.157927 0.82492a337.092081 337.092081 0 0 0-12.957068 2.991374l-0.208313 0.049995a331.659278 331.659278 0 0 0-12.827914 3.570485c-1.345702 0.404127-2.674739 0.837418-4.012108 1.254044a324.468314 324.468314 0 0 0-13.102887 4.412069c-2.808059 1.016567-5.586954 2.078964-8.349185 3.170524-1.029066 0.404127-2.058132 0.799922-3.078866 1.216548v133.099502z m126.59597-118.567588a15.231846 15.231846 0 1 1 0 30.467858 15.236012 15.236012 0 0 1 0-30.467858z m0 55.152947a15.231846 15.231846 0 1 1 0 30.463692 15.236012 15.236012 0 0 1 0-30.463692zM306.224285 796.947173v-0.045829c-0.349966 0.299971-0.691599 0.608274-1.041565 0.916577a282.039124 282.039124 0 0 0-9.703219 8.81164c-0.874915 0.833252-1.762328 1.654005-2.624744 2.499756a272.127592 272.127592 0 0 0-17.106662 18.310712c-0.658269 0.774924-1.295707 1.562347-1.941477 2.345604a267.928002 267.928002 0 0 0-13.906976 18.194056c-0.570778 0.812421-1.149888 1.616509-1.712332 2.437262a276.756306 276.756306 0 0 0-13.498682 21.835368c-0.391628 0.704098-0.762426 1.420695-1.145722 2.124793a280.310126 280.310126 0 0 0-10.590632 21.618722c-0.354132 0.808254-0.720763 1.616509-1.070729 2.428929a288.49266 288.49266 0 0 0-9.286593 24.85174c-0.258308 0.787423-0.487452 1.595678-0.737428 2.387267-0.699932 2.233115-1.420695 4.453732-2.070631 6.716011a512.170817 512.170817 0 0 0 86.445725 48.482765v-183.915373zM761.350673 843.992579c-0.333301-0.458289-0.662435-0.92491-0.995737-1.379032a270.098623 270.098623 0 0 0-5.728607-7.503434l-1.312372-1.633174a273.456629 273.456629 0 0 0-19.889724-22.172835c-0.370797-0.370797-0.729095-0.754093-1.099893-1.120723a263.245126 263.245126 0 0 0-5.953585-5.661948 220.715946 220.715946 0 0 0-2.916382-2.691403 279.814341 279.814341 0 0 0-5.778602-5.082837c-0.358298-0.304137-0.699932-0.629105-1.062396-0.933243V981.37083c1.662338-0.729095 3.362172-1.399863 5.016177-2.145624l0.029163-0.012499a508.700322 508.700322 0 0 0 16.194252-7.653419l2.258113-1.120724a510.675129 510.675129 0 0 0 31.492758-17.114995l1.458191-0.85825a510.183511 510.183511 0 0 0 31.184454-20.093871c-9.374085-32.600983-23.935163-62.285584-42.89581-88.378869z\" fill=\"#FEFEFE\" p-id=\"9793\"></path><path d=\"M511.950028 778.732285m-15.236012 0a15.236012 15.236012 0 1 0 30.472024 0 15.236012 15.236012 0 1 0-30.472024 0Z\" fill=\"#FF9F31\" p-id=\"9794\"></path><path d=\"M511.950028 833.881066m-15.231846 0a15.231846 15.231846 0 1 0 30.463692 0 15.231846 15.231846 0 1 0-30.463692 0Z\" fill=\"#FF9F31\" p-id=\"9795\"></path></svg>','<svg t=\"1690553077130\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"8926\" width=\"200\" height=\"200\"><path d=\"M512.172895 0.116652C229.337738 0.116652 0.23747 229.337738 0.23747 512.052077c0 174.128036 86.930701 327.933635 219.772278 420.417802v-0.004166l-0.004166-0.004166 0.091655-0.299963a292.496438 292.496438 0 0 1 10.948619-31.266889l0.191643-0.470774c1.162353-2.778816 2.387199-5.520137 3.632875-8.244793a274.444548 274.444548 0 0 1 5.057695-10.544503c0.633253-1.249842 1.291504-2.487186 1.941422-3.724531a266.21642 266.21642 0 0 1 3.707865-6.894963c0.716576-1.279005 1.47898-2.520515 2.216387-3.787023a280.252149 280.252149 0 0 1 6.595002-10.736145c1.13319-1.758112 2.258049-3.524555 3.4329-5.249338 1.108194-1.637293 2.258049-3.232926 3.395405-4.841056a284.851569 284.851569 0 0 1 7.282415-9.807096c0.829062-1.0582 1.649792-2.120566 2.491352-3.170434l0.266633-341.448596h0.066659c-0.074991-2.437193-0.18331-4.861887-0.183311-7.31991 0-0.437445 0.029163-0.866557 0.03333-1.304003-2.807979-153.751439 140.894728-246.531403 241.052927-239.728094 102.149615-6.928293 249.82682 89.430386 241.323726 248.352007l-0.233304 0.12915 0.262467 341.527753c0.645752 0.808231 1.287338 1.628961 1.924757 2.445525 1.383159 1.762278 2.741321 3.545386 4.078652 5.340993 1.104027 1.474814 2.178892 2.978791 3.253757 4.478602 1.29567 1.808105 2.587174 3.612044 3.837016 5.457645 1.116526 1.645626 2.183058 3.328747 3.27042 5.003535a277.964938 277.964938 0 0 1 5.611793 9.048859c1.162353 1.958086 2.333039 3.903674 3.445398 5.890923 0.987375 1.762278 1.928923 3.557885 2.878804 5.340993 1.024871 1.924757 2.041409 3.853681 3.028784 5.811767a290.063412 290.063412 0 0 1 5.599294 11.836007c0.720742 1.60813 1.449817 3.207929 2.137231 4.832724 1.37066 3.228759 2.682995 6.503346 3.941169 9.80293 0.23747 0.620755 0.495771 1.229012 0.733241 1.849767 1.499811 4.020326 2.899634 8.098978 4.236965 12.219292 0.333291 1.029037 0.63742 2.070572 0.958213 3.103775 0.649918 2.083071 1.324833 4.14531 1.933089 6.253378a0.570761 0.570761 0 0 1-0.083322 0.05416v0.004166c132.799915-92.488334 219.734783-246.26477 219.734782-420.351144C1024.104154 229.337738 794.887233 0.116652 512.172895 0.116652z\" fill=\"#F4B3B3\" p-id=\"8927\"></path><path d=\"M276.206826 827.129a277.489998 277.489998 0 0 1 8.065649-9.061357c0.229138-0.249968 0.470774-0.479106 0.699912-0.724909a278.123251 278.123251 0 0 1 8.073982-8.219796c0.837394-0.812398 1.695619-1.612297 2.541346-2.416362a264.970743 264.970743 0 0 1 9.540463-8.686404c0.404116-0.349956 0.795733-0.708244 1.204015-1.0582v0.05416c23.551196-20.184954 50.689439-36.628713 80.789809-48.689692a313.4063 313.4063 0 0 1 24.221945-8.557254c0.716576-0.220805 1.42482-0.449943 2.145562-0.666583a326.458821 326.458821 0 0 1 26.884109-6.832471c0.995708-0.212473 2.003914-0.395783 3.007954-0.595758a344.402391 344.402391 0 0 1 14.63982-2.608005c3.416236-0.5291 6.857468-1.00404 10.323698-1.437318 1.270673-0.158313 2.533014-0.337457 3.816185-0.483273a361.529397 361.529397 0 0 1 14.148216-1.353996H512.343707v-0.116652l-0.174978 0.004167c-130.662685 0-236.961776-103.986883-240.84462-233.712187h-0.066659l-0.266633 341.448597c0.737407-0.916551 1.499811-1.812271 2.249717-2.716324 0.987375-1.183184 1.962252-2.391365 2.966292-3.570383z\" fill=\"#FECF77\" p-id=\"8928\"></path><path d=\"M512.172895 725.687629l0.174978-0.004166c130.479375-0.091655 236.624319-103.878563 240.66131-233.399726-64.012759 39.253382-230.504258-18.197705-280.189657-105.620011-46.423311 81.356404-125.063391 153.359822-201.437091 105.315883-0.158313-2.912133-0.149981-5.753441-0.204141-8.623912 0 0.433279-0.033329 0.866557-0.033329 1.304002 0 2.453857 0.112486 4.882717 0.18331 7.31991 3.878677 129.721137 110.181935 233.70802 240.84462 233.70802z\" fill=\"#FCE9EA\" p-id=\"8929\"></path><path d=\"M472.815359 386.663726c49.685399 87.422306 216.176898 144.869226 280.189657 105.620011-4.036991 129.525328-110.177769 233.308071-240.661309 233.399726v0.116652h25.688426c4.753567 0.354122 9.452974 0.82073 14.123218 1.349829 1.328999 0.154147 2.6455 0.337457 3.966167 0.499937 3.387073 0.429113 6.753315 0.891554 10.09456 1.408156a335.599334 335.599334 0 0 1 14.381519 2.549678c1.191516 0.23747 2.387199 0.454109 3.570383 0.708244a326.417159 326.417159 0 0 1 26.342511 6.682491c1.154021 0.34579 2.291378 0.720742 3.437066 1.07903a313.335476 313.335476 0 0 1 13.314987 4.461938c2.949628 1.066532 5.865927 2.174726 8.761395 3.320414 30.025379 11.873502 57.126127 28.079791 80.685656 48.006445v-0.070825c0.541598 0.454109 1.054034 0.937382 1.591466 1.395658 1.574801 1.353996 3.137104 2.724656 4.682742 4.111981 1.483146 1.337331 2.945462 2.695493 4.403612 4.066154 1.545638 1.449817 3.091277 2.887136 4.599419 4.370282 1.441485 1.416488 2.837142 2.870471 4.245298 4.320288a272.390641 272.390641 0 0 1 7.711527 8.253126c1.29567 1.441485 2.599672 2.866305 3.862013 4.336953 1.449817 1.687287 2.853807 3.416236 4.261963 5.141018 0.499937 0.612423 1.020705 1.216513 1.520641 1.837268l-0.262467-341.527753 0.233304-0.129151c8.503094-158.92162-139.174111-255.280299-241.323726-248.352006h0.058326c8.348947 29.562938-8.303119 88.409681-39.478354 143.044456z\" fill=\"#FCBA6F\" p-id=\"8930\"></path><path d=\"M784.913492 882.447022zM790.512785 894.287195c0.720742 1.60813 1.445651 3.207929 2.137231 4.832724-0.687413-1.624795-1.416488-3.224593-2.137231-4.832724zM769.952879 856.358646zM265.154054 840.989751zM762.841276 845.897466c1.29567 1.808105 2.587174 3.612044 3.837016 5.457645-1.245676-1.845601-2.541346-3.64954-3.837016-5.457645zM779.005903 871.298428c0.987375 1.762278 1.928923 3.557885 2.878804 5.340993-0.94988-1.787275-1.887262-3.578715-2.878804-5.340993zM796.591185 908.922849c0.23747 0.620755 0.495771 1.229012 0.733241 1.849767-0.23747-0.620755-0.495771-1.229012-0.733241-1.849767zM716.709595 795.86211c-23.559528-19.926653-50.660276-36.137108-80.685656-48.006444l0.737407 0.287464v134.016428h-251.301634V748.988856c0.549931-0.224972 1.11236-0.437445 1.666456-0.65825-30.104536 12.060979-57.238613 28.504738-80.789809 48.689692v183.81848a512.10207 512.10207 0 0 1-86.322445-48.368899v0.004166c82.843717 57.671892 183.52685 91.517623 292.158981 91.517623 81.456392 0 158.44668-19.060096 226.817223-52.909993a509.352417 509.352417 0 0 1-22.280523 10.294535v-185.5141zM257.821645 851.242625c1.108194-1.637293 2.258049-3.232926 3.395405-4.841056-1.137357 1.60813-2.287211 3.207929-3.395405 4.841056zM739.198425 970.973355a511.393826 511.393826 0 0 0 65.175112-38.570134v-0.004167a512.293713 512.293713 0 0 1-65.175112 38.574301zM801.557225 922.991908c0.333291 1.029037 0.63742 2.070572 0.958213 3.103775-0.316627-1.033203-0.620755-2.074738-0.958213-3.103775zM755.508867 836.077871zM220.101403 932.161584zM236.336855 889.004528zM247.79791 867.228108zM231.241665 900.423921zM241.873657 877.91426c1.216513-2.316374 2.433026-4.624417 3.707866-6.894963-1.279005 2.266381-2.491352 4.578589-3.707866 6.894963zM284.972387 817.3469c-0.229138 0.245802-0.470774 0.47494-0.699912 0.724909 0.229138-0.249968 0.470774-0.483272 0.699912-0.724909zM293.046369 809.127104c0.837394-0.812398 1.695619-1.612297 2.541346-2.416362-0.845727 0.804065-1.703952 1.603964-2.541346 2.416362zM397.795656 744.281117zM276.206826 827.129c-1.00404 1.179018-1.978917 2.387199-2.962126 3.578715 0.983209-1.191516 1.958086-2.399697 2.962126-3.578715zM440.377784 732.278464c0.995708-0.212473 2.003914-0.395783 3.007954-0.595758-0.999874 0.199975-2.012246 0.383285-3.007954 0.595758zM468.34509 727.637383c1.270673-0.158313 2.533014-0.337457 3.816185-0.483272-1.283171 0.145815-2.545512 0.324959-3.816185 0.483272zM411.348113 739.773352c0.716576-0.220805 1.42482-0.449943 2.145563-0.666582-0.720742 0.216639-1.428986 0.449943-2.145563 0.666582zM453.971903 729.728786zM305.128178 798.024338zM727.387415 805.369245c1.541472 1.449817 3.091277 2.887136 4.599419 4.370282-1.508143-1.483146-3.053781-2.924631-4.599419-4.370282zM610.514657 738.99845c1.154021 0.34579 2.295544 0.720742 3.437066 1.07903-1.145689-0.358288-2.283045-0.733241-3.437066-1.07903zM623.225553 743.106265zM722.983803 801.303091zM552.155351 727.149944c1.328999 0.154147 2.6455 0.337457 3.966167 0.499937-1.320667-0.16248-2.633001-0.34579-3.966167-0.499937zM580.597597 731.607715c1.191516 0.23747 2.387199 0.454109 3.570383 0.708244-1.179018-0.249968-2.378867-0.470774-3.570383-0.708244zM743.935327 822.312941zM566.216078 729.058037zM752.063469 831.790912c-1.412322-1.724782-2.816311-3.453731-4.261963-5.141018 1.445651 1.687287 2.849641 3.416236 4.261963 5.141018z\" fill=\"#A0D9F6\" p-id=\"8931\"></path><path d=\"M623.225553 743.106265a321.796909 321.796909 0 0 0-9.27383-3.032951c-1.141523-0.358288-2.283045-0.733241-3.437066-1.07903a330.404156 330.404156 0 0 0-26.342511-6.682491c-1.183184-0.254135-2.378867-0.470774-3.570383-0.708244a322.884272 322.884272 0 0 0-14.381519-2.549678 372.432188 372.432188 0 0 0-10.09456-1.408156c-1.320667-0.16248-2.637167-0.34579-3.966166-0.499937a368.461856 368.461856 0 0 0-14.123219-1.349829H486.313657a361.529397 361.529397 0 0 0-14.148216 1.353995c-1.279005 0.145815-2.541346 0.324959-3.816185 0.483273a355.763458 355.763458 0 0 0-14.373187 2.091403c-3.557885 0.599924-7.086606 1.249842-10.590331 1.95392-0.999874 0.199975-2.00808 0.383285-3.007954 0.595758a326.458821 326.458821 0 0 0-26.884108 6.832472c-0.720742 0.216639-1.428986 0.445777-2.145563 0.666582a322.276015 322.276015 0 0 0-13.548291 4.507765c-3.599546 1.291504-7.15743 2.641333-10.673654 4.049489-0.554097 0.220805-1.116526 0.433279-1.666456 0.65825v133.170702h251.301634v-134.016428l-0.737407-0.287464a322.31351 322.31351 0 0 0-12.798386-4.749401z m-111.173476 105.986631a15.231412 15.231412 0 1 1-0.004166-30.46699 15.231412 15.231412 0 0 1 0.004166 30.46699z m0-55.151377a15.235578 15.235578 0 1 1 0-30.475322 15.235578 15.235578 0 0 1 0 30.475322zM306.332193 797.020298v-0.05416c-0.408282 0.349956-0.799899 0.708244-1.204015 1.0582a272.032353 272.032353 0 0 0-9.540463 8.686404c-0.845727 0.804065-1.703952 1.603964-2.541346 2.416362a278.123251 278.123251 0 0 0-8.073982 8.219796c-0.229138 0.245802-0.470774 0.47494-0.699912 0.724909a277.489998 277.489998 0 0 0-8.065649 9.061357c-1.00404 1.179018-1.978917 2.387199-2.962126 3.578715-0.749905 0.908219-1.512309 1.803939-2.249716 2.716324-0.841561 1.049868-1.66229 2.112234-2.491353 3.170434a284.851569 284.851569 0 0 0-7.282415 9.807096c-1.141523 1.60813-2.291378 3.207929-3.395405 4.841056-1.174852 1.724782-2.295544 3.491226-3.4329 5.249338a278.235737 278.235737 0 0 0-6.595001 10.736146c-0.737407 1.266507-1.495645 2.512183-2.216387 3.787022-1.274839 2.270547-2.491352 4.582755-3.707866 6.894963-0.649918 1.237344-1.304002 2.474688-1.941422 3.724531a280.181325 280.181325 0 0 0-3.59538 7.369903c-0.495771 1.054034-0.974877 2.112234-1.462315 3.1746a287.030461 287.030461 0 0 0-3.632875 8.244793l-0.191643 0.470774a291.584053 291.584053 0 0 0-10.948619 31.26689c-0.029163 0.099987-0.066658 0.199975-0.091655 0.299962l0.004166 0.004166a511.810441 511.810441 0 0 0 86.322445 48.368899v-183.81848zM804.452694 932.349061c-0.608257-2.108067-1.283171-4.170307-1.93309-6.253378-0.320793-1.033203-0.624921-2.074738-0.958212-3.103775a289.25518 289.25518 0 0 0-4.236966-12.219292c-0.23747-0.620755-0.495771-1.229012-0.733241-1.849767a296.833391 296.833391 0 0 0-3.941169-9.80293c-0.691579-1.628961-1.416488-3.224593-2.137231-4.832724a265.354028 265.354028 0 0 0-8.628078-17.647774c-0.954046-1.787275-1.891428-3.578715-2.878804-5.340993-1.116526-1.991415-2.283045-3.932837-3.445398-5.890923a277.964938 277.964938 0 0 0-5.611792-9.048859c-1.087363-1.674789-2.158061-3.362076-3.270421-5.003535-1.249842-1.841434-2.541346-3.64954-3.837016-5.457645a254.392911 254.392911 0 0 0-7.332409-9.819595 275.915196 275.915196 0 0 0-1.924757-2.445525c-0.499937-0.620755-1.020705-1.224845-1.520641-1.837268-1.412322-1.724782-2.816311-3.453731-4.261963-5.141018-1.262341-1.470648-2.566343-2.895468-3.862013-4.336953a267.516256 267.516256 0 0 0-7.711527-8.253126c-1.408156-1.449817-2.803813-2.9038-4.245298-4.320288-1.503977-1.47898-3.053781-2.920465-4.59942-4.370282-1.458149-1.366494-2.916299-2.724656-4.403611-4.066154a292.32146 292.32146 0 0 0-4.682742-4.111981c-0.537432-0.458276-1.049868-0.941548-1.591466-1.395658V981.37621a509.352417 509.352417 0 0 0 22.48883-10.394522 512.493688 512.493688 0 0 0 65.175112-38.574301l0.083323-0.058326z\" fill=\"#FEFEFE\" p-id=\"8932\"></path><path d=\"M512.052077 778.710107m-15.235578 0a15.235578 15.235578 0 1 0 30.471156 0 15.235578 15.235578 0 1 0-30.471156 0Z\" fill=\"#A0D9F6\" p-id=\"8933\"></path><path d=\"M512.052077 833.857318m-15.231412 0a15.231412 15.231412 0 1 0 30.462824 0 15.231412 15.231412 0 1 0-30.462824 0Z\" fill=\"#A0D9F6\" p-id=\"8934\"></path><path d=\"M271.378269 491.975443c76.3737 48.04394 155.01378-23.959478 201.43709-105.315883 31.171068-54.630609 47.823134-113.477353 39.474188-143.036124h-0.058326c-100.162366-6.799142-243.865072 85.980821-241.052927 239.728094 0.049994 2.870471 0.045828 5.715946 0.199975 8.623913z\" fill=\"#FECF77\" p-id=\"8935\"></path></svg>','<svg t=\"1690553274117\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"9934\" width=\"200\" height=\"200\"><path d=\"M512.270789 0.049992C229.566802 0.049992 0.354109 229.262685 0.354109 511.966672c0 174.10083 86.952514 327.884133 219.772563 420.369081 0.566574-1.970513 1.199805-3.903531 1.799707-5.849048 0.370773-1.203971 0.724882-2.416273 1.112319-3.607746 1.337282-4.136827 2.741221-8.231993 4.249309-12.264671 0.091652-0.245793 0.191635-0.479089 0.287453-0.724882 1.416436-3.766054 2.920358-7.482116 4.482603-11.160683 0.516583-1.208137 1.058161-2.399609 1.587242-3.603581a274.817771 274.817771 0 0 1 9.735916-19.896761c0.616566-1.137315 1.216469-2.291294 1.841366-3.420277a274.538649 274.538649 0 0 1 6.253149-10.689927c0.304117-0.495753 0.637396-0.970675 0.94568-1.466428 1.883027-3.007844 3.820212-5.974028 5.811554-8.894385 0.870692-1.283124 1.774711-2.528755 2.666233-3.795216a270.043548 270.043548 0 0 1 7.682083-10.36498 267.331489 267.331489 0 0 1 4.640911-5.765728c1.083157-1.312286 2.14965-2.637071 3.257803-3.928527 1.941351-2.270464 3.941025-4.490936 5.957364-6.694744 1.62057-1.774711 3.274467-3.52026 4.945028-5.249145 1.737217-1.808039 3.4786-3.607746 5.274142-5.365794 1.45393-1.4331 2.94952-2.82454 4.436778-4.224312a274.41367 274.41367 0 0 1 9.306818-8.365305l0.045826-0.04166v0.004166c24.583499-21.075736 53.108023-38.035476 84.80703-50.225159 1.4331-0.554076 2.870366-1.108153 4.32013-1.641399a321.039414 321.039414 0 0 1 7.45712-2.632905c1.549748-0.524915 3.111993-1.024833 4.674239-1.528918 2.503759-0.804036 5.003352-1.612238 7.544606-2.35795 1.541416-0.454093 3.111993-0.86236 4.670073-1.299788a324.555509 324.555509 0 0 1 13.360325-3.411945c2.033002-0.474923 4.061839-0.966509 6.111506-1.408104 2.220472-0.474923 4.46594-0.899854 6.707241-1.32895a351.86773 351.86773 0 0 1 6.815558-1.258129 326.746819 326.746819 0 0 1 14.360162-2.145484c1.837201-0.241627 3.670236-0.491587 5.519935-0.699886a357.629292 357.629292 0 0 1 13.739431-1.316452h51.720748c4.753393 0.354109 9.452628 0.8207 14.122702 1.353946 1.324784 0.149976 2.637071 0.329113 3.957689 0.495753a375.980472 375.980472 0 0 1 10.110854 1.408104 354.90057 354.90057 0 0 1 14.410155 2.557917c1.170643 0.233295 2.349618 0.445761 3.516094 0.69572a327.613344 327.613344 0 0 1 26.424866 6.703076c1.074825 0.320781 2.132986 0.666558 3.199479 0.999837a314.265517 314.265517 0 0 1 13.318666 4.453442c3.116159 1.124817 6.194825 2.29546 9.256826 3.511928 29.845142 11.843906 56.790757 27.991277 80.236941 47.817217v-0.099983c0.783206 0.658226 1.528918 1.353946 2.303792 2.02467a268.802083 268.802083 0 0 1 9.50262 8.61943c1.028999 0.979007 2.070496 1.945517 3.082831 2.937022a269.622783 269.622783 0 0 1 7.569602 7.711245c0.433263 0.454093 0.874858 0.90402 1.303954 1.362279a274.159544 274.159544 0 0 1 7.815395 8.78607c0.970675 1.133149 1.912189 2.303792 2.8662 3.45777 1.670561 2.02467 3.328625 4.070171 4.945028 6.144833a260.928365 260.928365 0 0 1 7.523776 10.165012c0.949845 1.337282 1.908023 2.674565 2.832872 4.032677a274.746949 274.746949 0 0 1 5.032514 7.702913 276.859105 276.859105 0 0 1 7.690415 12.877071c0.891522 1.595574 1.741383 3.220309 2.603743 4.836713 1.083157 2.033002 2.157982 4.078503 3.199479 6.144833a270.322669 270.322669 0 0 1 5.353296 11.310659c0.849862 1.895525 1.703889 3.786884 2.516257 5.707405 0.833198 1.978845 1.616404 3.986851 2.403775 5.990691 1.487258 3.761888 2.899528 7.565435 4.245143 11.418975 0.583238 1.678893 1.191473 3.345289 1.745549 5.03668 0.795704 2.424605 1.528918 4.886705 2.266298 7.348804 0.304117 1.016501 0.641562 2.012172 0.937347 3.037006l-0.037494 0.024996v0.004166c132.770057-92.493279 219.680911-246.243255 219.680911-420.310757C1024.187469 229.258519 794.974776 0.049992 512.270789 0.049992z m221.972205 578.576664c-36.648202 86.373442-122.234272 146.96358-221.972205 146.96358-99.558796 0-185.003222-60.373507-221.759739-146.501155-13.02288 64.481172-91.301806 120.484557-138.648267 101.39183 32.248918-31.790659 5.12-190.514825 119.493051-189.223368-8.073686-158.565858 139.027372-254.662718 240.914955-247.705517 102.129211-6.957201 249.576046 89.139658 241.389878 247.705517 113.881465-1.137315 86.89419 157.803483 119.018129 189.577477-47.383954 19.263531-125.812856-37.352254-138.435802-102.208364z\" fill=\"#A0D9F6\" p-id=\"9935\"></path><path d=\"M753.660667 491.253377c8.186168-158.565858-139.264833-254.662718-241.389878-247.705517v114.193914c24.387697 103.187372 170.243124 177.91271 240.831636 134.453116-0.954011 30.578356-7.536273 59.740277-18.855265 86.431766 12.622945 64.856111 91.047681 121.471896 138.435802 102.204198-32.123938-31.773995-5.14083-190.718959-119.022295-189.577477z\" fill=\"#FCBA6F\" p-id=\"9936\"></path><path d=\"M512.270789 357.741774c-24.316876 103.412335-170.547242 178.266819-240.835801 134.186493 0.929015 30.857478 7.598763 60.273523 19.076062 87.160814 36.756517 86.127648 122.200944 146.501155 221.759739 146.501155 99.737933 0 185.324003-60.590138 221.972205-146.96358 11.323157-26.687323 17.901253-55.849243 18.855265-86.431766-70.584345 43.455427-216.443938-31.265745-240.82747-134.453116z\" fill=\"#FCE9EA\" p-id=\"9937\"></path><path d=\"M512.270789 357.741774V243.54786c-101.891749-6.957201-248.988641 89.139658-240.914955 247.705517-114.373051-1.291456-87.239967 157.436876-119.493051 189.223368 47.346461 19.092726 125.625386-36.910659 138.648267-101.39183-11.477299-26.88729-18.14288-56.303336-19.076062-87.160814 70.28856 44.080325 216.51476-30.769992 240.835801-134.182327z\" fill=\"#FECF77\" p-id=\"9938\"></path><path d=\"M756.189422 836.642994zM748.38236 827.040391c0.970675 1.133149 1.912189 2.303792 2.8662 3.45777-0.954011-1.153979-1.895525-2.320456-2.8662-3.45777zM763.713198 846.808007c0.949845 1.337282 1.908023 2.674565 2.832872 4.032676-0.924849-1.362278-1.883027-2.695395-2.832872-4.032676zM728.606412 806.243775c1.028999 0.979007 2.070496 1.945517 3.082831 2.937022-1.012335-0.991505-2.053832-1.953849-3.082831-2.937022zM739.258845 816.892042c0.433263 0.454093 0.874858 0.90402 1.303954 1.362279-0.429097-0.458259-0.870692-0.908186-1.303954-1.362279zM795.349715 905.402636zM739.263011 970.879479a511.145972 511.145972 0 0 0 65.239381-38.606216v-0.004166a511.750041 511.750041 0 0 1-65.239381 38.610382zM716.8 795.703824c-23.446184-19.82594-50.391798-35.973312-80.236941-47.817217l0.412433 0.162474v134.007355h-251.292433v-133.124166c1.845533-0.749878 3.703564-1.478926 5.569927-2.199642-31.699007 12.189683-60.227697 29.149422-84.80703 50.225159v183.749259a511.750041 511.750041 0 0 1-20.959089-9.723417c68.359707 33.840325 145.343011 52.895557 226.788088 52.895557 81.461741 0 158.457543-19.063564 226.829748-52.920553a510.558568 510.558568 0 0 1-22.304703 10.310822V795.703824zM282.437364 820.199837zM785.072221 882.398047zM790.425517 893.70454c0.849862 1.895525 1.703889 3.786884 2.516257 5.707405-0.808202-1.916355-1.662229-3.81188-2.516257-5.707405zM779.273165 871.416501c0.891522 1.595574 1.741383 3.220309 2.603743 4.836713-0.86236-1.616404-1.712221-3.241139-2.603743-4.836713zM801.340407 921.858291c0.795704 2.428771 1.528918 4.886705 2.266298 7.348804-0.73738-2.462099-1.470594-4.924199-2.266298-7.348804zM771.578584 858.53943zM251.696534 952.640781zM251.479902 861.109845c0.304117-0.495753 0.637396-0.970675 0.94568-1.466428-0.308283 0.495753-0.641562 0.970675-0.94568 1.466428zM258.23297 850.753198c0.870692-1.278959 1.774711-2.528755 2.666233-3.795216-0.887356 1.262295-1.791375 2.512091-2.666233 3.795216zM452.905452 729.86454zM243.385386 875.224215c0.616566-1.137315 1.212303-2.291294 1.841367-3.420277-0.629064 1.128983-1.224801 2.278796-1.841367 3.420277zM237.373865 887.013963zM552.372596 727.056664c1.324784 0.149976 2.637071 0.333279 3.957689 0.495753-1.320618-0.162474-2.632905-0.341611-3.957689-0.495753zM439.382653 732.451619c2.220472-0.474923 4.46594-0.899854 6.707241-1.32895-2.241302 0.433263-4.48677 0.854028-6.707241 1.32895zM467.265614 727.723222c1.837201-0.241627 3.670236-0.491587 5.519935-0.699886-1.849699 0.204133-3.678568 0.458259-5.519935 0.699886zM285.436876 970.958633zM301.517592 801.282083zM292.656534 809.584898c1.45393-1.4331 2.94952-2.82454 4.436778-4.224312-1.487258 1.399772-2.982848 2.791212-4.436778 4.224312zM273.222197 830.827274c1.083157-1.312286 2.14965-2.637071 3.257803-3.928527-1.103987 1.291456-2.174646 2.612075-3.257803 3.928527zM265.456794 840.688169zM395.56895 745.095395zM407.700309 740.933572c2.503759-0.804036 5.003352-1.612238 7.544606-2.35795-2.541253 0.745712-5.040846 1.549748-7.544606 2.35795zM419.910822 737.275834zM227.288007 910.610122c0.091652-0.245793 0.195801-0.479089 0.287453-0.724882-0.095818 0.245793-0.195801 0.479089-0.287453 0.724882zM610.788088 738.9214c1.074825 0.320781 2.132986 0.666558 3.199479 0.999837-1.066493-0.333279-2.124654-0.679056-3.199479-0.999837zM580.851294 731.522604c1.170643 0.233295 2.349618 0.445761 3.516094 0.69572-1.166477-0.249959-2.345452-0.466591-3.516094-0.69572zM623.573507 743.058226c1.249797 0.433263 2.495427 0.874858 3.732726 1.316453l-3.732726-1.316453zM719.099626 797.628511zM221.926379 926.486705c0.370773-1.203971 0.724882-2.416273 1.112319-3.607746-0.387437 1.187307-0.741546 2.399609-1.112319 3.607746zM566.441139 728.960521zM232.058063 898.724557c0.516583-1.208137 1.058161-2.399609 1.587242-3.603581-0.529081 1.203971-1.070659 2.395443-1.587242 3.603581z\" fill=\"#F4B3B3\" p-id=\"9939\"></path><path d=\"M385.678893 882.056436h251.292433v-134.007355l-0.412433-0.162474a307.162506 307.162506 0 0 0-12.989552-4.828381 310.536957 310.536957 0 0 0-9.58594-3.136989c-1.066493-0.333279-2.124654-0.679056-3.199479-0.999837a327.171749 327.171749 0 0 0-26.424866-6.703076c-1.162311-0.249959-2.345452-0.462425-3.516094-0.69572a328.379886 328.379886 0 0 0-14.410155-2.557917 373.65585 373.65585 0 0 0-10.110854-1.408104c-1.320618-0.162474-2.632905-0.345777-3.957689-0.495753a360.228869 360.228869 0 0 0-14.122702-1.353946h-51.720748c-4.624247 0.345777-9.198503 0.79987-13.739431 1.316452-1.849699 0.208299-3.682734 0.458259-5.519935 0.699886a326.746819 326.746819 0 0 0-14.360162 2.145484c-2.287128 0.395769-4.553426 0.816534-6.815558 1.258129-2.241302 0.433263-4.490936 0.854028-6.707241 1.32895-2.053832 0.437429-4.078503 0.933181-6.111506 1.408104a326.280228 326.280228 0 0 0-13.360325 3.411945c-1.55808 0.433263-3.124491 0.84153-4.670073 1.299788-2.537087 0.749878-5.040846 1.553914-7.544606 2.35795-1.562246 0.504085-3.124491 1.004003-4.674239 1.528918-2.503759 0.849862-4.990854 1.728885-7.45712 2.632905-1.449764 0.533247-2.882864 1.087323-4.32013 1.641399-1.870529 0.720716-3.72856 1.45393-5.569927 2.199642v133.12z m126.591896-118.680683a15.230854 15.230854 0 1 1 0.004166 30.465874 15.230854 15.230854 0 0 1-0.004166-30.465874z m0 55.266005a15.23502 15.23502 0 1 1 0 30.47004 15.23502 15.23502 0 0 1 0-30.47004zM306.44179 796.957787l-0.045826 0.037494c-1.645566 1.41227-3.270301 2.84537-4.878372 4.286802-1.49559 1.341448-2.962018 2.707893-4.428446 4.078503-1.487258 1.399772-2.982848 2.791212-4.436778 4.224312-1.791375 1.758047-3.532758 3.557754-5.274142 5.365794a280.766802 280.766802 0 0 0-10.902392 11.943889c-1.108153 1.295622-2.174646 2.616241-3.257803 3.928527a247.168104 247.168104 0 0 0-7.769569 9.860895c-1.549748 2.06633-3.062002 4.157657-4.553425 6.269813-0.891522 1.266461-1.795541 2.516257-2.666233 3.795216a278.662978 278.662978 0 0 0-5.811554 8.894385c-0.308283 0.491587-0.637396 0.966509-0.94568 1.466428a277.671473 277.671473 0 0 0-6.253149 10.689927c-0.629064 1.128983-1.224801 2.282962-1.841366 3.420277a270.547632 270.547632 0 0 0-9.735916 19.896761c-0.529081 1.203971-1.074825 2.395443-1.587242 3.603581a284.566184 284.566184 0 0 0-4.482603 11.160683c-0.091652 0.245793-0.195801 0.479089-0.287453 0.724882a289.327909 289.327909 0 0 0-4.249309 12.264671c-0.387437 1.191473-0.741546 2.403775-1.112319 3.607746-0.604068 1.949683-1.233133 3.882701-1.799707 5.849048l1.208137 0.837363c9.881725 6.828055 19.996745 13.331164 30.361725 19.467665l0.649894 0.383271a513.133149 513.133149 0 0 0 33.140439 17.963743 511.750041 511.750041 0 0 0 20.959089 9.723417v-183.745093zM804.539886 932.244101c-0.291619-1.024833-0.629064-2.020504-0.937347-3.037006-0.73738-2.462099-1.470594-4.920033-2.266298-7.348804-0.554076-1.691391-1.162311-3.357787-1.745549-5.03668a280.454353 280.454353 0 0 0-4.245143-11.418975c-0.787372-1.999675-1.570578-4.011847-2.403775-5.990691-0.812368-1.920521-1.666395-3.81188-2.516257-5.707405a270.322669 270.322669 0 0 0-5.353296-11.310659 317.323352 317.323352 0 0 0-3.199479-6.144833c-0.86236-1.616404-1.712221-3.241139-2.603743-4.836713a280.225224 280.225224 0 0 0-7.690415-12.877071 280.975102 280.975102 0 0 0-5.032514-7.702912c-0.924849-1.358112-1.883027-2.691229-2.832872-4.032677a260.928365 260.928365 0 0 0-7.523776-10.165013 279.612823 279.612823 0 0 0-4.945028-6.144833c-0.954011-1.153979-1.891359-2.324622-2.8662-3.45777a269.7186 269.7186 0 0 0-7.815395-8.78607l-1.303954-1.362279a281.095915 281.095915 0 0 0-7.569602-7.711245c-1.012335-0.991505-2.053832-1.958015-3.082831-2.937022a269.556127 269.556127 0 0 0-9.50262-8.61943c-0.774874-0.670724-1.520586-1.366444-2.303792-2.02467V981.256957a510.558568 510.558568 0 0 0 22.467177-10.394142 511.750041 511.750041 0 0 0 65.239381-38.610382c0.008332 0.008332 0.02083 0 0.033328-0.008332z\" fill=\"#FEFEFE\" p-id=\"9940\"></path><path d=\"M512.270789 778.610773m-15.23502 0a15.23502 15.23502 0 1 0 30.470041 0 15.23502 15.23502 0 1 0-30.470041 0Z\" fill=\"#F4B3B3\" p-id=\"9941\"></path><path d=\"M512.270789 833.876778m-15.23502 0a15.23502 15.23502 0 1 0 30.470041 0 15.23502 15.23502 0 1 0-30.470041 0Z\" fill=\"#F4B3B3\" p-id=\"9942\"></path></svg>','<svg t=\"1690553283014\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"10081\" width=\"200\" height=\"200\"><path d=\"M512 0C229.25 0 0 229.25 0 512c0 174.154167 86.9875 327.979167 219.8625 420.475a287.5875 287.5875 0 0 1 22.366667-55.579167c-26.779167-7.1-44.258333-33.5375-39.616667-61.416666 3.6375-21.858333 19.858333-38.45 40.008333-43.670834-17.370833-11.470833-27.35-32.416667-23.7125-54.270833 3.6375-21.8625 19.858333-38.454167 40.008334-43.675-17.370833-11.466667-27.35-32.416667-23.7125-54.270833a54.3375 54.3375 0 0 1 35.820833-42.441667v-4.291667c-14.75-11.908333-22.858333-31.179167-19.529167-51.216666a54.075 54.075 0 0 1 19.545834-33.354167c-0.016667-1.229167-0.091667-2.445833-0.091667-3.683333 0-21.35 2.808333-42.0375 8.016667-61.75 6.716667-26.75 18.0875-50.925 32.654166-72.25a241.925 241.925 0 0 1 107.8125-88.6125c31.65-13.841667 64.270833-20.316667 93.2875-18.475 97.741667-6.195833 236.308333 81.4375 240.845834 227.7125a54.104167 54.104167 0 0 1 19.475 33.295833c3.35 20.116667-4.8375 39.470833-19.704167 51.366667v4.079166a54.341667 54.341667 0 0 1 36 42.5c3.633333 21.854167-6.341667 42.804167-23.7125 54.270834 20.145833 5.229167 36.370833 21.8125 40.008333 43.675 3.633333 21.858333-6.345833 42.804167-23.716666 54.270833 20.15 5.225 36.375 21.816667 40.0125 43.675 4.925 29.604167-15.0875 57.6-44.695834 62.529167-1.366667 0.229167-2.725 0.345833-4.079166 0.466666 13.341667 21.645833 23.808333 45.445833 31.1625 71 132.783333-92.508333 219.704167-246.279167 219.704166-420.366666C1024 229.25 794.754167 0 512 0z\" fill=\"#A0D9F6\" p-id=\"10082\"></path><path d=\"M299.995833 802.45v-0.120833c0.9375-0.85 1.904167-1.666667 2.854167-2.508334l1.5625-1.375a271.333333 271.333333 0 0 1 9.045833-7.558333l0.858334-0.695833a281.958333 281.958333 0 0 1 21.533333-15.479167c0.454167-0.295833 0.920833-0.583333 1.379167-0.875a282.141667 282.141667 0 0 1 9.7-5.958333c0.725-0.429167 1.45-0.85 2.175-1.270834a291.379167 291.379167 0 0 1 9.966666-5.483333c0.529167-0.275 1.05-0.566667 1.583334-0.841667a298.191667 298.191667 0 0 1 24.35-11.2375c0.775-0.316667 1.5625-0.6125 2.3375-0.929166a313.445833 313.445833 0 0 1 23.458333-8.291667c0.925-0.283333 1.841667-0.591667 2.775-0.866667a327.129167 327.129167 0 0 1 26.529167-6.75c1.2-0.258333 2.416667-0.479167 3.620833-0.720833a342.208333 342.208333 0 0 1 24.320833-3.945833c1.379167-0.175 2.75-0.366667 4.133334-0.525a357.916667 357.916667 0 0 1 14.079166-1.358334h25.75c-131.9 0-238.9875-105.945833-240.966666-237.375a54.075 54.075 0 0 0-19.545834 33.354167c-3.333333 20.0375 4.775 39.308333 19.529167 51.216667v4.291666a54.3375 54.3375 0 0 0-35.820833 42.441667c-3.6375 21.854167 6.341667 42.804167 23.7125 54.270833-20.15 5.225-36.370833 21.8125-40.008334 43.675-3.6375 21.854167 6.341667 42.8 23.7125 54.270834-20.15 5.225-36.370833 21.8125-40.008333 43.670833-4.6375 27.879167 12.841667 54.316667 39.616667 61.416667a274.566667 274.566667 0 0 1 57.766666-74.441667zM512.233333 725.65l-0.233333 0.004167 0.233333-0.004167z\" fill=\"#FECF77\" p-id=\"10083\"></path><path d=\"M419.420833 261.9875a241.891667 241.891667 0 0 0-107.8125 88.6125c27.6875-40.529167 66.920833-70.725 107.8125-88.6125zM512 725.654167l0.233333-0.004167c130.5-0.125 236.65-103.958333 240.633334-233.525-63.704167 39.183333-229.075-17.679167-279.525-104.479167-46.504167 80.920833-124.8125 152.066667-200.8625 104.158334-1.3125-24.533333 1.108333-47.558333 6.483333-68.954167a241.395833 241.395833 0 0 0-8.016667 61.75c0 1.233333 0.075 2.45 0.091667 3.683333 1.975 131.425 109.0625 237.370833 240.9625 237.370834z\" fill=\"#FCE9EA\" p-id=\"10084\"></path><path d=\"M473.3375 387.645833c50.454167 86.8 215.820833 143.6625 279.525 104.479167-3.983333 129.566667-110.133333 233.4-240.633333 233.525v0.004167h25.754166c4.725 0.354167 9.4 0.820833 14.041667 1.354166 1.429167 0.1625 2.8375 0.358333 4.254167 0.541667a348.658333 348.658333 0 0 1 14.35 2.108333 343.416667 343.416667 0 0 1 9.695833 1.795834c1.295833 0.258333 2.595833 0.495833 3.883333 0.770833 8.958333 1.891667 17.733333 4.125 26.304167 6.691667 1.079167 0.320833 2.141667 0.670833 3.2125 1.004166a314.758333 314.758333 0 0 1 13.225 4.433334c3.2375 1.166667 6.445833 2.383333 9.620833 3.65 0.920833 0.366667 1.841667 0.716667 2.754167 1.091666a300.016667 300.016667 0 0 1 24.054167 11.104167c0.716667 0.370833 1.416667 0.758333 2.129166 1.133333a289.391667 289.391667 0 0 1 21.1 12.279167c0.620833 0.404167 1.2625 0.7875 1.883334 1.195833a283.425 283.425 0 0 1 21.1625 15.216667c0.529167 0.416667 1.041667 0.85 1.566666 1.270833a284.583333 284.583333 0 0 1 10.416667 8.8c0.704167 0.620833 1.420833 1.233333 2.116667 1.858334v0.091666a274.25 274.25 0 0 1 49.370833 59.3125c1.354167-0.120833 2.7125-0.241667 4.079167-0.466666 29.604167-4.929167 49.616667-32.920833 44.695833-62.529167-3.633333-21.858333-19.8625-38.454167-40.0125-43.675 17.370833-11.466667 27.35-32.4125 23.716667-54.270833-3.6375-21.8625-19.8625-38.45-40.008334-43.675 17.370833-11.466667 27.345833-32.416667 23.7125-54.270834-3.391667-20.391667-17.729167-36.225-36-42.5v-4.079166c14.8625-11.895833 23.05-31.25 19.704167-51.366667a54.075 54.075 0 0 0-19.475-33.295833c-4.5375-146.270833-143.108333-233.908333-240.845833-227.7125 0.233333 0.016667 0.475 0.008333 0.708333 0.025 8.425 29.75-8.491667 89.179167-40.0625 144.104166z\" fill=\"#FCBA6F\" p-id=\"10085\"></path><path d=\"M723.766667 802.05v85.966667c-33.0875-50.583333-167.2625-59.858333-211.65-6.691667-44.6125-53.425-179.875-43.791667-212.120834 7.45v-86.325a274.533333 274.533333 0 0 0-57.770833 74.445833 287.5875 287.5875 0 0 0-22.366667 55.579167c82.854167 57.679167 183.541667 91.525 292.1375 91.525 108.666667 0 209.4125-33.891667 292.295834-91.633333-7.354167-25.554167-17.816667-49.354167-31.1625-71a273.783333 273.783333 0 0 0-49.3625-59.316667z\" fill=\"#F4B3B3\" p-id=\"10086\"></path><path d=\"M721.654167 800.095833a272.729167 272.729167 0 0 0-10.416667-8.8c-0.525-0.420833-1.0375-0.854167-1.566667-1.270833a282.233333 282.233333 0 0 0-21.1625-15.216667c-0.620833-0.408333-1.2625-0.791667-1.883333-1.195833a301.958333 301.958333 0 0 0-11.741667-7.129167 281.570833 281.570833 0 0 0-9.358333-5.15c-0.7125-0.379167-1.4125-0.766667-2.129167-1.133333a300.016667 300.016667 0 0 0-24.054166-11.104167c-0.9125-0.375-1.833333-0.725-2.754167-1.091666a301.308333 301.308333 0 0 0-13.195833-4.916667 318.545833 318.545833 0 0 0-9.65-3.166667c-1.075-0.333333-2.1375-0.683333-3.2125-1.004166a328.125 328.125 0 0 0-26.304167-6.691667c-1.2875-0.270833-2.5875-0.5125-3.883333-0.770833a362.041667 362.041667 0 0 0-9.695834-1.795834 331.775 331.775 0 0 0-14.35-2.108333c-1.420833-0.183333-2.829167-0.379167-4.254166-0.541667a356.016667 356.016667 0 0 0-14.041667-1.354166h-51.7375a357.916667 357.916667 0 0 0-14.079167 1.358333c-1.3875 0.158333-2.754167 0.35-4.133333 0.525a343.516667 343.516667 0 0 0-24.320833 3.945833c-1.208333 0.241667-2.420833 0.4625-3.620834 0.720834a327.570833 327.570833 0 0 0-26.529166 6.75c-0.933333 0.275-1.85 0.583333-2.775 0.866666-3.416667 1.058333-6.8 2.166667-10.15 3.329167l-3.2125 1.133333c-3.4 1.220833-6.766667 2.504167-10.095834 3.829167-0.779167 0.3125-1.5625 0.608333-2.3375 0.929167a300.25 300.25 0 0 0-24.35 11.2375c-0.529167 0.275-1.054167 0.566667-1.583333 0.841666a298.745833 298.745833 0 0 0-12.141667 6.754167c-3.279167 1.925-6.5125 3.908333-9.7 5.958333-0.458333 0.291667-0.920833 0.579167-1.379166 0.875a280.816667 280.816667 0 0 0-21.533334 15.479167l-0.858333 0.695833a276.508333 276.508333 0 0 0-9.045833 7.558334l-1.5625 1.375c-0.95 0.8375-1.916667 1.654167-2.854167 2.508333v86.445833c32.245833-51.241667 167.5125-60.875 212.120833-7.45 44.3875-53.166667 178.558333-43.8875 211.65 6.691667v-86.058333c-0.7-0.625-1.4125-1.233333-2.116666-1.858334z\" fill=\"#FEFEFE\" p-id=\"10087\"></path><path d=\"M272.475 491.804167c76.05 47.9125 154.358333-23.2375 200.8625-104.158334 31.566667-54.929167 48.483333-114.354167 40.079167-144.108333-0.233333-0.016667-0.475-0.008333-0.708334-0.025-29.016667-1.841667-61.6375 4.633333-93.2875 18.475-40.891667 17.8875-80.125 48.083333-107.8125 88.6125-14.566667 21.325-25.9375 45.5-32.654166 72.25-5.366667 21.395833-7.791667 44.420833-6.479167 68.954167z\" fill=\"#FECF77\" p-id=\"10088\"></path></svg>','<svg t=\"1690553292898\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"10227\" width=\"200\" height=\"200\"><path d=\"M512.002082 0C229.382031 0 0.237391 229.14464 0.237391 511.764692c0 174.074128 86.947522 327.832597 219.761454 420.281755 25.883932-90.133557 91.287193-158.031504 180.287937-189.033916 3.706629-1.295238 7.454906-2.519675 11.24483-3.681641 0.599724-0.183249 1.191119-0.383157 1.795008-0.562241a325.358734 325.358734 0 0 1 27.058392-6.867676c0.932904-0.195743 1.874138-0.370663 2.807042-0.558076a344.820619 344.820619 0 0 1 14.722398-2.619629 350.905321 350.905321 0 0 1 10.428538-1.453499c1.25359-0.158261 2.498851-0.329015 3.756606-0.470617a354.782705 354.782705 0 0 1 14.168485-1.357709h51.705393c4.756146 0.354004 9.453986 0.820456 14.122673 1.34938 1.320226 0.154096 2.627958 0.33318 3.939855 0.49977a344.791466 344.791466 0 0 1 14.393382 2.099035c3.415096 0.574736 6.805204 1.199448 10.166159 1.869974 1.149471 0.229061 2.315602 0.441464 3.456744 0.683019 9.008358 1.894962 17.825137 4.131434 26.446174 6.709415 1.066176 0.316521 2.115694 0.662196 3.177705 0.991211 3.223518 0.99954 6.426212 2.044893 9.591423 3.140223 89.283947 30.881634 154.903776 98.837888 180.900156 189.146364 132.722308-92.465818 219.603194-246.16598 219.603194-420.173472C1023.762609 229.140475 794.622134 0 512.002082 0z m0 725.320666c-130.373388 0-236.491262-103.560716-240.743473-232.897081-0.145766-0.091625-0.291533-0.16659-0.437299-0.258215-4.993537-93.35291 43.813188-165.06577 105.59728-206.971502 0.358169-0.24572 0.703843-0.49977 1.062012-0.741325 2.357249-1.582606 4.747817-3.081916 7.138384-4.577063 0.937069-0.58723 1.853315-1.199448 2.798713-1.770019 38.040842-23.106043 79.896597-35.179658 116.717167-34.47998 2.619629-0.08746 5.230928-0.199908 7.871381-0.199908 2.507181 0 4.976878 0.112448 7.4674 0.187414 28.237017-0.487276 59.406019 6.534495 89.562986 20.21154a241.022512 241.022512 0 0 1 61.725785 39.377728c50.226906 43.088521 86.589353 107.846246 82.18721 188.963115l-0.199908 0.116613c-4.185575 129.398836-110.328438 233.038683-240.747638 233.038683z\" fill=\"#A0D9F6\" p-id=\"10228\"></path><path d=\"M376.414425 285.193868c0.354004-0.241556 0.703843-0.503935 1.062012-0.741325-0.358169 0.241556-0.703843 0.49977-1.062012 0.741325zM519.465317 243.612987c-2.490522-0.074966-4.960219-0.187414-7.467399-0.187414-2.640453 0-5.251752 0.112448-7.871381 0.199908 2.52384 0.049977 5.043514 0.104119 7.517377 0.270709a156.265649 156.265649 0 0 1 7.821403-0.283203zM472.27868 386.726351c-46.307874 81.237647-124.763467 153.204557-201.024236 105.697234 4.252212 129.336365 110.370085 232.897081 240.743474 232.897081 130.4192 0 236.566227-103.639847 240.747638-233.038683-63.724866 39.660931-230.814705-17.875114-280.466876-105.555632zM384.614821 279.87548c0.937069-0.583065 1.857479-1.199448 2.798714-1.770019-0.949563 0.574736-1.861644 1.186954-2.798714 1.770019zM609.028303 263.824527a260.296983 260.296983 0 0 1 61.725785 39.377728 241.139125 241.139125 0 0 0-61.725785-39.377728z\" fill=\"#FCE9EA\" p-id=\"10229\"></path><path d=\"M453.974597 729.360475zM610.498461 738.656201c1.066176 0.316521 2.115694 0.662196 3.177705 0.99121-1.062012-0.329015-2.111529-0.67469-3.177705-0.99121zM440.380847 731.900973c0.932904-0.195743 1.874138-0.370663 2.807043-0.558076-0.937069 0.187414-1.878303 0.362333-2.807043 0.558076zM411.527447 739.33089c0.599724-0.183249 1.191119-0.383157 1.795008-0.562241-0.603889 0.179084-1.195284 0.378992-1.795008 0.562241zM566.164679 728.702444zM623.263425 742.787634c0.732996 0.25405 1.457663 0.512264 2.18233 0.770479a119.432585 119.432585 0 0 1-10.457692 22.110667c17.142118 26.396196 12.83993 141.48911-12.91906 123.397429l-45.095932-31.756232-44.979318-31.639619 2.956974-2.078211c-0.982881 0.024989-1.965763 0.074966-2.956974 0.074966-1.032858 0-2.053223-0.054142-3.077752-0.079131l2.961139 2.082376-44.979319 31.639619-45.095931 31.756232c-25.900591 18.124999-30.190285-97.405213-12.877413-123.534866a119.286819 119.286819 0 0 1-10.357737-21.914923c0.570571-0.204073 1.136977-0.408146 1.711713-0.603889-89.000744 30.998247-154.404005 98.900359-180.287938 189.033916 82.820253 57.652658 183.457313 91.482936 292.003238 91.482936 108.616725 0 209.316257-33.876091 292.161498-91.59122-25.983886-90.308476-91.603714-158.268895-180.891826-189.150529zM580.595543 731.263766c1.149471 0.229061 2.315602 0.441464 3.456744 0.68302-1.141142-0.241556-2.303108-0.458123-3.456744-0.68302zM468.338825 727.273934c1.25359-0.154096 2.498851-0.329015 3.756606-0.470617-1.257755 0.141602-2.503016 0.312356-3.756606 0.470617zM552.091982 726.790823c1.320226 0.149931 2.627958 0.33318 3.939856 0.49977-1.311897-0.162425-2.615464-0.34151-3.939856-0.49977z\" fill=\"#CFE07D\" p-id=\"10230\"></path><path d=\"M408.928642 765.527179c3.440085-5.189281 7.729779-6.87184 12.877412-3.252671l45.095932 31.756231 42.01818 29.557243c1.028694 0.024989 2.044893 0.07913 3.077752 0.079131 0.991211 0 1.974092-0.049977 2.956973-0.074966l42.022345-29.561408 45.095932-31.756231c5.172622-3.652487 9.47481-1.911621 12.91906 3.390107a119.307643 119.307643 0 0 0 10.457691-22.110666l-2.18233-0.770479a307.358677 307.358677 0 0 0-9.591423-3.140223c-1.062012-0.329015-2.111529-0.67469-3.177705-0.991211a327.35365 327.35365 0 0 0-26.446174-6.709415c-1.141142-0.241556-2.307272-0.453958-3.456744-0.683019a331.80577 331.80577 0 0 0-24.559541-3.969009c-1.311897-0.16659-2.619629-0.349839-3.939855-0.49977a367.755907 367.755907 0 0 0-14.122673-1.34938h-51.705393a354.782705 354.782705 0 0 0-14.168485 1.357709c-1.257755 0.141602-2.503016 0.316521-3.756606 0.470617a337.67807 337.67807 0 0 0-25.150936 4.073128c-0.937069 0.187414-1.878303 0.362333-2.807042 0.558076a328.678041 328.678041 0 0 0-27.058392 6.867676c-0.603889 0.179084-1.195284 0.378992-1.795008 0.562241-3.789924 1.157801-7.538201 2.386403-11.24483 3.681641-0.570571 0.195743-1.141142 0.399816-1.711713 0.603889a119.361784 119.361784 0 0 0 10.353573 21.910759z\" fill=\"#FEFEFE\" p-id=\"10231\"></path><path d=\"M602.073168 762.274508l-45.095932 31.756231-42.022345 29.561408-2.956973 2.078211 44.979318 31.639619 45.095932 31.756232c25.758989 18.091681 30.061178-97.001232 12.91906-123.397429-3.440085-5.305894-7.742273-7.04676-12.91906-3.394272zM421.806054 762.274508c-5.147633-3.619169-9.437327-1.93661-12.877412 3.252671-17.312873 26.129652-13.023179 141.659865 12.877412 123.534865l45.095932-31.756232 44.979319-31.639618-2.961139-2.082376-42.01818-29.557243-45.095932-31.752067z\" fill=\"#7EA701\" p-id=\"10232\"></path><path d=\"M472.27868 386.726351c49.65217 87.680518 216.742009 145.216563 280.466876 105.555632l0.199908-0.116613c4.402143-81.116869-31.964469-145.874594-82.187211-188.963115a260.51355 260.51355 0 0 0-61.725785-39.377728c-30.156967-13.677045-61.325969-20.698816-89.562986-20.21154-2.627958 0.045812-5.247587 0.108284-7.821404 0.283203 8.337833 29.51976-8.267032 88.263583-39.369398 142.830161z\" fill=\"#F7B970\" p-id=\"10233\"></path><path d=\"M472.27868 386.726351c31.102366-54.570742 47.711396-113.3104 39.369398-142.830161a148.931522 148.931522 0 0 0-7.517376-0.270709c-36.82057-0.699678-78.676325 11.373937-116.717167 34.47998-0.941234 0.570571-1.861644 1.186954-2.798714 1.770019-2.390567 1.495146-4.781135 2.994456-7.138384 4.577063-0.358169 0.241556-0.703843 0.49977-1.062012 0.741325-61.784092 41.905732-110.590817 113.618592-105.59728 206.971502 0.145766 0.091625 0.291533 0.16659 0.437299 0.258215 76.260769 47.507323 154.716362-24.459587 201.024236-105.697234z\" fill=\"#FBCE77\" p-id=\"10234\"></path></svg>','<svg t=\"1690553302762\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"10514\" width=\"200\" height=\"200\"><path d=\"M512.524936 0.008332C229.809447 0.008332 0.587428 229.230351 0.587428 511.94584c0 174.13291 86.976883 327.943301 219.835665 420.423679 25.99266-90.522283 91.847122-158.622304 181.419521-189.5102a331.426209 331.426209 0 0 1 8.557288-2.807991c1.3665-0.429114 2.716335-0.870727 4.091168-1.283176a323.077229 323.077229 0 0 1 12.802603-3.562066l0.254136-0.058326a327.101737 327.101737 0 0 1 12.910924-2.978803c1.383164-0.291631 2.778827-0.554099 4.166158-0.829065a341.275007 341.275007 0 0 1 14.160772-2.512194 346.915985 346.915985 0 0 1 9.682151-1.354001c1.424826-0.179145 2.84132-0.37912 4.274478-0.5416a355.210806 355.210806 0 0 1 14.039953-1.354002h18.539404c1.891436 0.112486 3.778705 0.112486 5.670141 0h1.533146c-133.117084 0-241.028911-107.911827-241.028911-241.028911 0-1.266512 0.074991-2.516359 0.095822-3.774539-1.31234-152.377233 141.516058-244.178526 241.17056-237.37519 102.270849-6.965816 250.006982 89.397421 241.383034 248.353017-0.254136 0.158314-0.529102 0.279133-0.783237 0.43328-4.04534 129.575849-110.286537 233.392343-240.841434 233.392343h25.980162c4.724423 0.354123 9.394687 0.820733 14.035786 1.354002 1.437325 0.16248 2.857984 0.362456 4.282811 0.5416a359.614435 359.614435 0 0 1 14.402408 2.124741c3.153782 0.533268 6.2784 1.11653 9.386355 1.733121 1.412328 0.279133 2.837154 0.545767 4.236982 0.841564a327.626673 327.626673 0 0 1 12.59013 2.903813c0.279133 0.070825 0.566598 0.137483 0.84573 0.212474a318.461125 318.461125 0 0 1 12.42765 3.457911c1.470654 0.437447 2.912145 0.912389 4.366134 1.3665 2.753831 0.866561 5.490996 1.758119 8.207331 2.691338 89.605728 30.850401 155.497685 98.921258 181.536173 189.426876 132.742129-92.497042 219.635689-246.236608 219.635689-420.286195 0.008332-282.719655-229.20952-511.937508-511.929175-511.937508z\" fill=\"#A6D4AE\" p-id=\"10515\"></path><path d=\"M753.36637 492.185752c-70.674706 43.161398-216.244436-31.629472-240.603963-134.708556-24.326197 103.449872-170.645836 178.444884-240.912258 134.271109a243.574433 243.574433 0 0 1-0.258302-10.977826c-0.020831 1.262346-0.095822 2.512193-0.095822 3.774539 0 133.117084 107.911827 241.028911 241.028911 241.028911 130.554896 0.004166 236.796094-103.812328 240.841434-233.388177z\" fill=\"#FCE9EA\" p-id=\"10516\"></path><path d=\"M623.290581 742.805159c0.916555 0.316628 1.824777 0.645755 2.733 0.966549a119.589568 119.589568 0 0 1-10.448724 22.122299c17.243728 26.317621 12.931755 141.561886-12.944254 123.359941l-45.11116-31.650303-44.994507-31.650303 2.953806-2.083079c-0.983213 0.024997-1.96226 0.074991-2.953806 0.074991-1.033207 0-2.04975-0.05416-3.074625-0.079157l2.953806 2.087245-44.994507 31.650303-45.11116 31.650303c-25.809349 18.222776-30.167151-97.300622-12.877595-123.451596a119.714553 119.714553 0 0 1-10.373733-21.95982c0.929053-0.333293 1.858107-0.666585 2.791325-0.987379-89.572399 30.887896-155.42686 98.992083-181.41952 189.5102 82.84822 57.672127 183.519264 91.513829 292.101843 91.513828 108.670068 0 209.420269-33.895862 292.301818-91.651312-26.030156-90.501452-91.926279-158.57231-181.532007-189.42271zM468.467814 727.473697c1.424826-0.179145 2.84132-0.37912 4.274478-0.5416-1.433158 0.16248-2.845486 0.362456-4.274478 0.5416zM454.077904 729.594272zM440.458733 732.168957c1.383164-0.291631 2.778827-0.554099 4.166158-0.829065-1.387331 0.274966-2.782994 0.537434-4.166158 0.829065zM427.293673 735.20192l0.254136-0.058326c-0.083323 0.024997-0.170812 0.041662-0.254136 0.058326zM580.616624 731.331559c1.412328 0.279133 2.837154 0.545767 4.236983 0.841564-1.399829-0.295797-2.824655-0.562431-4.236983-0.841564zM610.721282 738.747321c1.470654 0.437447 2.912145 0.912389 4.366134 1.3665-1.453989-0.454111-2.899646-0.929053-4.366134-1.3665zM597.443737 735.076936c0.279133 0.070825 0.566598 0.137483 0.84573 0.212474-0.279133-0.074991-0.562431-0.141649-0.84573-0.212474zM410.399902 740.051328c1.3665-0.429114 2.716335-0.870727 4.091168-1.283176-1.370666 0.41245-2.724667 0.854062-4.091168 1.283176zM552.545051 726.932097c1.437325 0.16248 2.857984 0.362456 4.28281 0.5416-1.424826-0.179145-2.845486-0.37912-4.28281-0.5416zM566.497514 728.827698z\" fill=\"#F08E83\" p-id=\"10517\"></path><path d=\"M409.425021 765.802352c3.43708-5.199365 7.724057-6.886659 12.877595-3.262102l45.11116 31.650303 42.036535 29.67971c1.024875 0.024997 2.041417 0.079157 3.074625 0.079157 0.991546 0 1.970593-0.049994 2.953806-0.074991l42.040701-29.683876 45.11116-31.650303c5.178535-3.645388 9.490508-1.920599 12.944254 3.353757a119.464584 119.464584 0 0 0 10.448724-22.122299c-0.912389-0.320794-1.820611-0.649921-2.733-0.966549a325.843558 325.843558 0 0 0-8.207331-2.691338c-1.453989-0.454111-2.89548-0.929053-4.366134-1.3665a320.515041 320.515041 0 0 0-12.427649-3.457911c-0.279133-0.074991-0.566598-0.141649-0.84573-0.212474a329.443118 329.443118 0 0 0-12.59013-2.903813c-1.399829-0.295797-2.824655-0.562431-4.236983-0.841564a336.479759 336.479759 0 0 0-23.788763-3.857862c-1.428992-0.179145-2.849652-0.37912-4.28281-0.5416a355.760739 355.760739 0 0 0-14.035787-1.354002h-27.513308c-1.891436 0.112486-3.778705 0.112486-5.670141 0h-18.539404a356.739786 356.739786 0 0 0-14.039953 1.354002c-1.433158 0.16248-2.849652 0.362456-4.274478 0.5416-3.245437 0.41245-6.478376 0.858229-9.682151 1.354001a346.299394 346.299394 0 0 0-14.160772 2.512194c-1.387331 0.274966-2.78716 0.537434-4.166158 0.829065a327.101737 327.101737 0 0 0-12.910924 2.978803l-0.254135 0.058326a337.958745 337.958745 0 0 0-12.802604 3.562066c-1.374832 0.41245-2.728834 0.854062-4.091167 1.283176a316.086415 316.086415 0 0 0-8.557289 2.807991c-0.933219 0.320794-1.862273 0.654087-2.791326 0.987379a119.514577 119.514577 0 0 0 10.369567 21.955654z\" fill=\"#FEFEFE\" p-id=\"10518\"></path><path d=\"M602.630603 762.54025l-45.11116 31.650303-42.040701 29.683876-2.953806 2.083079 44.994507 31.650304 45.11116 31.650303c25.880174 18.201945 30.187982-97.042321 12.944254-123.359942-3.449579-5.278522-7.761553-7.003312-12.944254-3.357923zM422.302616 762.54025c-5.149371-3.624558-9.440514-1.937264-12.877595 3.262102-17.289556 26.146808-12.931755 141.674372 12.877595 123.451596l45.11116-31.650303 44.994507-31.650303-2.953806-2.087245-42.036535-29.67971-45.115326-31.646137z\" fill=\"#CFE07D\" p-id=\"10519\"></path><path d=\"M512.762407 357.477196V243.399455C413.107905 236.596119 270.279507 328.393246 271.591847 480.774645c0.029163 3.637056 0.062492 7.274112 0.258302 10.977827 70.266423 44.165442 216.586061-30.825404 240.912258-134.275276z\" fill=\"#ADBE20\" p-id=\"10520\"></path><path d=\"M512.762407 357.477196c24.359526 103.079084 169.929257 177.869954 240.603963 134.708556 0.254136-0.154148 0.529102-0.274966 0.783237-0.43328 8.619781-158.955596-139.116351-255.318833-241.383034-248.353017v114.077741z\" fill=\"#7EA701\" p-id=\"10521\"></path></svg>','<svg t=\"1690553310651\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"10660\" width=\"200\" height=\"200\"><path d=\"M512.049993 0.016664C229.336805 0.016664 0.116651 229.116001 0.116651 511.950007c0 174.135659 86.980341 327.898971 219.842209 420.345267 26.046609-90.704856 92.104674-158.833485 181.926311-189.616977 2.416352-0.829059 4.857701-1.620622 7.303216-2.395521 1.699779-0.533264 3.387059-1.087358 5.103502-1.595626a316.654602 316.654602 0 0 1 14.056503-3.841166 338.080979 338.080979 0 0 1 11.515167-2.657988c1.491472-0.312459 3.007942-0.599922 4.507747-0.895716a340.214035 340.214035 0 0 1 13.998177-2.470512 337.372738 337.372738 0 0 1 9.57792-1.337326c1.441479-0.187476 2.874626-0.38745 4.328603-0.549928a355.545372 355.545372 0 0 1 14.031506-1.353991H538.029944c4.728551 0.354121 9.398776 0.820726 14.044005 1.353991 1.424814 0.162479 2.837131 0.358287 4.253613 0.53743a361.594584 361.594584 0 0 1 14.38146 2.116391c3.212082 0.545762 6.390835 1.137352 9.557089 1.766437 1.349824 0.266632 2.703815 0.520766 4.049473 0.799895a327.582346 327.582346 0 0 1 26.067439 6.628304c1.299831 0.38745 2.574665 0.804062 3.861997 1.208176 2.970447 0.929046 5.915896 1.883088 8.832183 2.89129 89.467517 30.866814 155.250618 98.845463 181.268065 189.275355 132.745215-92.458794 219.642234-246.163781 219.642234-420.207785-0.004166-282.834006-229.220154-511.933342-511.937509-511.933343z m0 725.443042c-133.116001 0-241.02695-107.910949-241.026949-241.02695 0-1.266502 0.07499-2.516339 0.095821-3.774508-1.312329-152.371827 141.514907-244.059888 241.168598-237.252441h0.116651c102.153365-6.96576 249.88413 89.280042 241.264419 248.230178-0.254134 0.158313-0.529098 0.27913-0.783232 0.437443-4.045307 129.570629-110.281474 233.386278-240.835308 233.386278z\" fill=\"#D6E079\" p-id=\"10661\"></path><path d=\"M512.287463 357.482619c-24.325999 103.44903-170.644447 178.443432-240.910299 134.153366a243.572452 243.572452 0 0 1-0.258299-10.977737c-0.020831 1.262336-0.095821 2.512173-0.095821 3.774508 0 133.111834 107.910949 241.02695 241.026949 241.02695 130.553834 0 236.790001-103.815649 240.835308-233.386278-70.674131 43.277698-216.238511-31.512563-240.597838-134.590809z\" fill=\"#FCE9EA\" p-id=\"10662\"></path><path d=\"M566.051295 728.834266zM552.078115 726.934514c1.424814 0.162479 2.837131 0.358287 4.253613 0.53743-1.420648-0.179143-2.832964-0.374951-4.253613-0.53743zM439.867726 732.192162c1.491472-0.312459 3.007942-0.599922 4.507746-0.895716-1.499805 0.295795-3.016274 0.583257-4.507746 0.895716zM610.383023 738.782971c1.299831 0.38745 2.574665 0.804062 3.861997 1.208176-1.287332-0.404114-2.566333-0.820726-3.861997-1.208176zM453.515948 729.613332zM425.382112 735.604218zM467.951569 727.484442c1.441479-0.187476 2.874626-0.38745 4.328603-0.549928-1.453977 0.162479-2.887124 0.362453-4.328603 0.549928zM580.266111 731.354772c1.349824 0.266632 2.703815 0.520766 4.049473 0.799895-1.341492-0.27913-2.699648-0.533264-4.049473-0.799895zM512.049993 823.834397c-0.995704 0-1.978909-0.05416-2.96628-0.074991l2.96628 2.078896 2.957949-2.078896c-0.983205 0.024997-1.966411 0.07499-2.957949 0.074991z\" fill=\"#A0D9F6\" p-id=\"10663\"></path><path d=\"M623.077203 742.882437c0.81656 0.27913 1.633121 0.574925 2.445515 0.862388a119.234475 119.234475 0 0 1-10.456971 22.092957c17.285249 26.21742 12.985809 141.631558-12.910819 123.417263l-45.110793-31.650046-44.994142-31.766697-45.110792 31.766697-44.994142 31.650046c-25.896628 18.214295-30.196068-97.199844-12.910819-123.413097a119.651087 119.651087 0 0 1-10.423642-22.005468c1.091525-0.38745 2.178883-0.783231 3.274573-1.154017-89.825804 30.783492-155.879703 98.907955-181.926311 189.616977 82.84338 57.646661 183.513605 91.467257 292.091133 91.467257 108.665018 0 209.410233-33.874756 292.291108-91.604739-26.017446-90.434058-91.800547-158.412707-181.263898-189.279521zM409.192553 740.282776c1.699779-0.53743 3.387059-1.087358 5.103502-1.595626-1.716443 0.508267-3.40789 1.062362-5.103502 1.595626z\" fill=\"#A0D9F6\" p-id=\"10664\"></path><path d=\"M409.038406 765.841948c3.449551-5.228486 7.744825-6.932431 12.910819-3.299571l44.994142 31.650046 42.144512 29.571149c0.987371 0.020831 1.970577 0.07499 2.966281 0.074991 0.991538 0 1.974743-0.049993 2.957948-0.074991l42.036193-29.571149 45.110793-31.650046c5.161828-3.63286 9.461268-1.928916 12.910819 3.295405a119.109491 119.109491 0 0 0 10.456972-22.092957c-0.812394-0.287463-1.628955-0.583257-2.445515-0.862388-2.916287-1.008202-5.861737-1.966411-8.832184-2.89129-1.287332-0.404114-2.562166-0.820726-3.861997-1.208176a329.382112 329.382112 0 0 0-26.067439-6.628304c-1.341492-0.27913-2.695482-0.533264-4.049473-0.799895-3.166254-0.624919-6.345007-1.220674-9.557089-1.766437a349.579482 349.579482 0 0 0-14.38146-2.116391c-1.416482-0.179143-2.828798-0.374951-4.253613-0.53743a356.182789 356.182789 0 0 0-14.044005-1.353991H486.311678a356.311939 356.311939 0 0 0-14.031506 1.353991c-1.449811 0.162479-2.882958 0.362453-4.328603 0.549928a353.141518 353.141518 0 0 0-14.435621 2.124723 354.20388 354.20388 0 0 0-9.140476 1.683115c-1.499805 0.295795-3.016274 0.583257-4.507746 0.895716-3.874496 0.820726-7.711496 1.708111-11.515168 2.657988-0.991538 0.249967-1.983075 0.499935-2.970446 0.758234a323.374561 323.374561 0 0 0-11.086057 3.082932c-1.716443 0.508267-3.403723 1.058196-5.103502 1.595626a340.164041 340.164041 0 0 0-7.303216 2.395521c-1.095691 0.374951-2.183049 0.770733-3.274573 1.154017a119.017836 119.017836 0 0 0 10.423642 22.009634z\" fill=\"#FEFEFE\" p-id=\"10665\"></path><path d=\"M602.154928 762.542377l-45.110793 31.650046-42.036193 29.571149-2.957949 2.078896 44.994142 31.766697 45.110793 31.650046c25.896628 18.214295 30.196068-97.199844 12.910819-123.417263-3.445385-5.228486-7.748991-6.932431-12.910819-3.299571zM466.939201 794.192423l-44.994142-31.650046c-5.161828-3.63286-9.461268-1.928916-12.910819 3.299571-17.285249 26.213253-12.985809 141.627392 12.910819 123.413097l44.994142-31.650046 45.110792-31.766697-2.96628-2.078896-42.144512-29.566983z\" fill=\"#FA9689\" p-id=\"10666\"></path><path d=\"M512.287463 357.482619V243.405807c-99.653691-6.803281-242.480927 84.884781-241.168598 237.252441 0.029163 3.637026 0.062492 7.274053 0.258299 10.977737 70.265851 44.2859 216.580133-30.704335 240.910299-134.153366z\" fill=\"#FECF77\" p-id=\"10667\"></path><path d=\"M512.287463 357.482619c24.359328 103.078245 169.923708 177.868507 240.597838 134.590809 0.2583-0.158313 0.533264-0.27913 0.783232-0.437443 8.619711-158.954303-139.115219-255.200104-241.264419-248.230178h-0.116651v114.076812z\" fill=\"#F7B970\" p-id=\"10668\"></path></svg>','<svg t=\"1690553321238\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"11747\" width=\"200\" height=\"200\"><path d=\"M512 0C229.25 0 0 229.129167 0 511.883333c0 174.229167 86.991667 328.041667 219.870833 420.5125 25.1625-87.6125 87.65-154.141667 172.783334-186.329166-16.641667 19.533333 1.808333 162.5 29.1125 143.291666l45.116666-31.654166 45-31.770834-2.966666-2.0875-42.029167-29.566666-65.3125-48.541667a10.058333 10.058333 0 0 0-2.9375-1.566667c-0.179167-0.0625-0.354167-0.095833-0.529167-0.1375l-1.2625 0.445834a299.279167 299.279167 0 0 1 13.1875-4.429167c1.25-0.391667 2.4875-0.795833 3.745834-1.175a328.775 328.775 0 0 1 26.116666-6.641667c1.320833-0.279167 2.658333-0.529167 3.991667-0.791666a352.2375 352.2375 0 0 1 14.229167-2.529167c3.233333-0.5 6.491667-0.954167 9.7625-1.366667 1.404167-0.175 2.795833-0.370833 4.208333-0.533333a364.775 364.775 0 0 1 14.054167-1.354167H537.991667c4.716667 0.354167 9.379167 0.820833 14.0125 1.35 1.458333 0.166667 2.8875 0.366667 4.3375 0.554167a356.125 356.125 0 0 1 14.379166 2.120833c3.1375 0.533333 6.25 1.1125 9.345834 1.725 1.4125 0.279167 2.833333 0.545833 4.2375 0.841667 4.316667 0.9125 8.604167 1.8875 12.8375 2.9625l0.341666 0.083333c4.308333 1.1 8.558333 2.295833 12.770834 3.558334 1.341667 0.4 2.670833 0.833333 4.008333 1.254166 2.920833 0.916667 5.820833 1.858333 8.695833 2.85 1.466667 0.508333 2.916667 1.020833 4.366667 1.545834-0.5375-0.195833-1.083333-0.383333-1.625-0.575-0.0875 0.0125-0.179167 0.05-0.266667 0.070833-1.1125 0.2375-2.304167 0.7875-3.5875 1.745833l-64.841666 48.541667-42.15 29.570833-2.966667 2.083334 45.116667 31.770833 45 31.654167c27.483333 19.333333 45.7125-125.695833 28.441666-143.675 85.6375 32.029167 148.5125 98.716667 173.7875 186.65 132.820833-92.479167 219.770833-246.2625 219.770834-420.445834C1024 229.129167 794.75 0 512 0z m0 725.541667c-130.433333 0-236.6-103.608333-240.858333-233.008334-0.145833-0.091667-0.291667-0.166667-0.4375-0.258333-4.945833-92.4375 42.85-163.65 103.758333-205.725 1.129167-0.7875 2.245833-1.6 3.3875-2.366667 1.15-0.770833 2.320833-1.483333 3.479167-2.229166 2.1625-1.395833 4.320833-2.8 6.529166-4.129167 2.166667-1.308333 4.358333-2.529167 6.545834-3.7625 0.966667-0.541667 1.908333-1.120833 2.883333-1.65 34.6875-19.008333 71.841667-29.0375 105.045833-28.745833 3.208333-0.125 6.420833-0.245833 9.658334-0.245834 3.1 0 6.175 0.116667 9.25 0.233334 26.55-0.183333 55.6 6.191667 83.895833 18.4375a241 241 0 0 1 68.141667 43.266666c48.941667 43.083333 84.0375 107.104167 79.770833 186.916667l-0.2 0.116667c-4.175 129.4625-110.375 233.15-240.85 233.15z\" fill=\"#F7B970\" p-id=\"11748\"></path><path d=\"M394.408333 274.058333c0.9625-0.545833 1.916667-1.116667 2.883334-1.65-0.970833 0.533333-1.9125 1.1125-2.883334 1.65zM521.25 243.654167a243.183333 243.183333 0 0 0-9.25-0.233334c-3.2375 0-6.45 0.116667-9.658333 0.245834 3.1375 0.029167 6.245833 0.133333 9.304166 0.345833a151.845833 151.845833 0 0 1 9.604167-0.358333zM381.333333 281.954167c2.166667-1.4 4.333333-2.804167 6.529167-4.129167-2.208333 1.329167-4.366667 2.729167-6.529167 4.129167zM374.4625 286.55c1.133333-0.783333 2.25-1.604167 3.3875-2.366667-1.141667 0.770833-2.254167 1.579167-3.3875 2.366667zM605.141667 262.091667a259.9875 259.9875 0 0 1 68.141666 43.266666 241.095833 241.095833 0 0 0-68.141666-43.266666zM472.25 386.820833c-46.3125 81.295833-124.7875 153.329167-201.108333 105.7125 4.254167 129.4 110.425 233.008333 240.858333 233.008334 130.475 0 236.675-103.6875 240.858333-233.15-63.745833 39.783333-230.979167-17.845833-280.608333-105.570834z\" fill=\"#FCE9EA\" p-id=\"11749\"></path><path d=\"M597.1375 735.208333l0.341667 0.083334-0.341667-0.083334zM625.429167 743.991667c0.0875-0.020833 0.183333-0.058333 0.266666-0.070834 0.541667 0.191667 1.0875 0.379167 1.625 0.575a336.225 336.225 0 0 0-4.366666-1.545833c0.845833 0.291667 1.683333 0.6 2.525 0.895833-0.020833 0.045833-0.029167 0.095833-0.05 0.145834zM565.920833 728.904167zM580.0625 731.404167c1.4125 0.279167 2.833333 0.545833 4.2375 0.841666-1.404167-0.295833-2.825-0.5625-4.2375-0.841666zM630.441667 745.679167c17.270833 17.979167-0.958333 163.008333-28.441667 143.675l-45-31.654167-45.116667-31.770833-45 31.770833-45.116666 31.654167c-27.308333 19.208333-45.754167-123.758333-29.1125-143.291667-85.133333 32.1875-147.620833 98.7125-172.783334 186.329167 82.854167 57.6625 183.5375 91.4875 292.129167 91.4875 108.6375 0 209.354167-33.854167 292.229167-91.554167-25.279167-87.929167-88.154167-154.620833-173.7875-186.645833zM401.079167 742.979167c-1.420833 0.4875-2.833333 0.9875-4.241667 1.495833l1.2625-0.445833c0.175 0.041667 0.35 0.079167 0.529167 0.1375l-0.095834-0.2875c0.85-0.3 1.691667-0.604167 2.545834-0.9z\" fill=\"#D5E270\" p-id=\"11750\"></path><path d=\"M512 823.920833c-1.0375 0-2.058333-0.054167-3.0875-0.079166l2.966667 2.0875 2.966666-2.083334c-0.945833 0.025-1.891667 0.075-2.845833 0.075zM610.25 738.845833c1.341667 0.4 2.670833 0.833333 4.008333 1.254167-1.3375-0.420833-2.666667-0.854167-4.008333-1.254167zM453.483333 729.6625zM439.8875 732.229167c1.320833-0.279167 2.658333-0.529167 3.991667-0.791667-1.329167 0.2625-2.666667 0.5125-3.991667 0.791667zM552 727.004167c1.454167 0.166667 2.8875 0.370833 4.3375 0.554166-1.45-0.1875-2.883333-0.3875-4.3375-0.554166zM410.025 740.045833c1.25-0.391667 2.491667-0.795833 3.745833-1.175-1.258333 0.379167-2.495833 0.7875-3.745833 1.175zM467.875 727.541667c1.404167-0.175 2.795833-0.370833 4.208333-0.533334-1.4125 0.1625-2.804167 0.358333-4.208333 0.533334z\" fill=\"#D5E270\" p-id=\"11751\"></path><path d=\"M514.85 823.85l42.15-29.570833 64.841667-48.541667c1.2875-0.954167 2.479167-1.508333 3.5875-1.745833l0.054166-0.145834c-0.841667-0.295833-1.679167-0.604167-2.525-0.895833a336.795833 336.795833 0 0 0-8.695833-2.85c-1.3375-0.420833-2.666667-0.854167-4.008333-1.254167a323.458333 323.458333 0 0 0-12.770834-3.558333l-0.341666-0.083333a326.779167 326.779167 0 0 0-12.8375-2.9625c-1.404167-0.295833-2.825-0.5625-4.2375-0.841667a352.491667 352.491667 0 0 0-14.1375-2.504167 338 338 0 0 0-9.5875-1.341666c-1.45-0.183333-2.883333-0.3875-4.3375-0.554167a362.616667 362.616667 0 0 0-14.0125-1.35H486.141667a365.575 365.575 0 0 0-14.054167 1.354167c-1.408333 0.1625-2.804167 0.358333-4.208333 0.533333-3.275 0.416667-6.529167 0.866667-9.7625 1.366667a336.945833 336.945833 0 0 0-14.229167 2.529166c-1.329167 0.2625-2.666667 0.5125-3.991667 0.791667a326.9875 326.9875 0 0 0-26.116666 6.641667c-1.258333 0.379167-2.5 0.783333-3.745834 1.175-3.008333 0.941667-5.991667 1.908333-8.945833 2.933333-0.854167 0.291667-1.695833 0.6-2.545833 0.9l0.095833 0.2875c0.925 0.291667 1.9 0.795833 2.9375 1.566667l65.3125 48.541666 42.029167 29.566667c1.029167 0.025 2.05 0.079167 3.0875 0.079167 0.95 0.004167 1.895833-0.045833 2.845833-0.066667z\" fill=\"#FEFEFE\" p-id=\"11752\"></path><path d=\"M472.25 386.820833c49.629167 87.725 216.8625 145.354167 280.608333 105.570834l0.2-0.116667c4.266667-79.8125-30.825-143.833333-79.770833-186.916667a260.054167 260.054167 0 0 0-68.141667-43.266666c-28.295833-12.245833-57.345833-18.625-83.895833-18.4375-3.2375 0.020833-6.441667 0.1375-9.604167 0.358333 8.2875 29.516667-8.3125 88.245833-39.395833 142.808333z\" fill=\"#ED7667\" p-id=\"11753\"></path><path d=\"M472.25 386.820833c31.083333-54.5625 47.683333-113.2875 39.395833-142.808333a151.9875 151.9875 0 0 0-9.304166-0.345833c-33.204167-0.291667-70.358333 9.7375-105.045834 28.745833-0.966667 0.529167-1.920833 1.104167-2.883333 1.65-2.1875 1.233333-4.379167 2.454167-6.545833 3.7625-2.195833 1.325-4.3625 2.729167-6.529167 4.129167-1.158333 0.745833-2.329167 1.4625-3.479167 2.229166-1.141667 0.7625-2.258333 1.583333-3.3875 2.366667-60.916667 42.075-108.7125 113.2875-103.766666 205.725 0.145833 0.091667 0.291667 0.166667 0.4375 0.258333 76.320833 47.616667 154.795833-24.416667 201.108333-105.7125z\" fill=\"#F08E83\" p-id=\"11754\"></path></svg>','<svg t=\"1690553342243\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"11893\" width=\"200\" height=\"200\"><path d=\"M511.843852 0.354044c-282.65224 0-511.822978 229.170738-511.822978 511.822978 0 174.068962 86.936598 327.828282 219.732335 420.292135 25.986845-90.297936 91.593321-158.27859 180.804133-189.251211a328.636336 328.636336 0 0 1 9.917403-3.253041c0.982993-0.304062 1.957656-0.624784 2.94898-0.92468a329.094511 329.094511 0 0 1 26.44502-6.731006c1.207916-0.254079 2.428327-0.479001 3.640408-0.724749a329.919226 329.919226 0 0 1 14.37836-2.553284 359.529818 359.529818 0 0 1 9.917403-1.391185c1.374525-0.170774 2.736554-0.362375 4.115244-0.520653a358.138632 358.138632 0 0 1 14.065968-1.357864h25.857724c-79.801566 0-150.506278-38.811576-194.361944-98.56591-250.879896-28.769216-36.11251-533.003152 194.47857-411.724265 98.48677-51.761264 193.058228 9.721638 250.434217 99.723842 78.847729 122.507629 88.790124 297.959446-56.426318 312.329476-43.872326 59.566898-114.468743 98.232691-194.124525 98.232692h25.857723c4.723366 0.354044 9.392585 0.82055 14.032647 1.353698 1.437003 0.162444 2.857345 0.362375 4.277687 0.541479a357.505518 357.505518 0 0 1 14.399186 2.124266 353.336126 353.336126 0 0 1 9.39675 1.732734c1.407846 0.27907 2.824023 0.545645 4.223539 0.841375 4.252696 0.899689 8.463739 1.857691 12.624801 2.911493l0.770566 0.191601c4.211044 1.074628 8.363774 2.245057 12.483183 3.473798 1.449499 0.433184 2.878171 0.899689 4.319339 1.349534 2.774041 0.874697 5.53142 1.770221 8.259644 2.707397 89.594012 30.855995 155.475393 98.936615 181.487229 189.442811 132.770746-92.468018 219.686518-246.210677 219.686518-420.258813C1023.662664 229.520617 794.496092 0.354044 511.843852 0.354044z\" fill=\"#F8F7F8\" p-id=\"11894\"></path><path d=\"M705.968377 627.528793c-5.493933 0.541479-11.196128 0.874697-17.139905 0.945506 34.825455-50.532523 52.535996-112.752669 42.031296-194.1037l-216.537607 1.062133h-2.594936v-0.012496l-215.708727-1.049637c-10.508865 81.346865 7.201676 143.571177 42.031296 194.1037a202.030125 202.030125 0 0 1-20.567886-1.278725c43.8515 59.754333 114.560377 98.565909 194.361944 98.56591 79.655783 0 150.2522-38.665793 194.124525-98.232691z\" fill=\"#FCE9EA\" p-id=\"11895\"></path><path d=\"M622.488917 742.993024c0.945506 0.324888 1.878517 0.662271 2.815692 0.995489a119.625292 119.625292 0 0 1-16.252712 30.768525c13.253749 30.277028 8.55954 125.806488-14.086794 109.803689l-41.681417-29.277374-41.560626-29.164913-41.560626 29.164913-41.677252 29.277374c-22.696317 16.040286-27.36137-79.959845-13.999324-110.007785a119.571144 119.571144 0 0 1-16.106929-30.564429l2.174248-0.770567c-89.210812 30.972621-154.817287 98.953275-180.804133 189.251211 82.838016 57.68005 183.507364 91.530843 292.090642 91.530843 108.604104 0 209.290114-33.863288 292.13646-91.559999-26.011837-90.510362-91.893217-158.590982-181.487229-189.446977zM596.656185 735.26653l0.770566 0.1916a41.639765 41.639765 0 0 1-0.770566-0.1916z\" fill=\"#D5EAD8\" p-id=\"11896\"></path><path d=\"M511.843852 824.106636c-1.032976 0-2.053456-0.054148-3.082268-0.079139l2.961476 2.086778 2.953145-2.082613c-0.945506 0.029157-1.882682 0.074974-2.832353 0.074974zM609.909934 738.931929c1.449499 0.433184 2.878171 0.899689 4.319339 1.349533-1.441168-0.449844-2.874006-0.91635-4.319339-1.349533zM579.807845 731.513661c1.407846 0.27907 2.824023 0.545645 4.223539 0.841376-1.399516-0.295731-2.815693-0.562306-4.223539-0.841376zM467.800751 727.640001c1.374525-0.170774 2.736554-0.362375 4.115244-0.520653-1.374525 0.158279-2.740719 0.349879-4.115244 0.520653zM410.474745 739.964905c0.982993-0.304062 1.957656-0.624784 2.94898-0.92468-0.991324 0.299896-1.965987 0.620619-2.94898 0.92468zM439.868745 732.309219c1.207916-0.254079 2.428327-0.479001 3.640408-0.724749-1.212081 0.245748-2.436657 0.474836-3.640408 0.724749zM565.679398 729.01036zM551.734222 727.115182c1.437003 0.162444 2.857345 0.362375 4.277687 0.54148-1.424507-0.179105-2.844849-0.379036-4.277687-0.54148zM453.451547 729.75177z\" fill=\"#D5EAD8\" p-id=\"11897\"></path><path d=\"M414.490023 774.552942c3.457138-7.780642 8.122191-11.15031 13.999325-6.99758l41.677252 29.281539 38.59915 27.190596c1.028811 0.024991 2.049291 0.079139 3.082267 0.079139 0.953837 0 1.891013-0.049983 2.836519-0.074974l38.60748-27.194761 41.681417-29.281539c5.927117-4.186052 10.617161-0.720584 14.086795 7.201676a119.433692 119.433692 0 0 0 16.252712-30.768525c-0.937176-0.333218-1.870186-0.670601-2.815693-0.995489a324.550249 324.550249 0 0 0-8.259643-2.707397c-1.441168-0.449844-2.869841-0.920515-4.31934-1.349533a323.45896 323.45896 0 0 0-12.483182-3.473799l-0.770567-0.1916a329.502703 329.502703 0 0 0-12.6248-2.911493c-1.399516-0.295731-2.815693-0.562306-4.223539-0.841376a353.336126 353.336126 0 0 0-14.128447-2.503301 343.781098 343.781098 0 0 0-9.66749-1.353698c-1.424507-0.179105-2.844849-0.379036-4.277687-0.541479a355.681149 355.681149 0 0 0-14.032647-1.353699h-51.715446c-4.731697 0.354044-9.413411 0.824715-14.065969 1.357864-1.37869 0.158279-2.744884 0.349879-4.115243 0.520653a359.529818 359.529818 0 0 0-14.353369 2.11177c-3.340511 0.562306-6.651866 1.178759-9.942395 1.832699-1.212081 0.245748-2.432492 0.470671-3.640407 0.724749a329.094511 329.094511 0 0 0-26.44502 6.731006c-0.991324 0.295731-1.965987 0.616453-2.948981 0.92468a328.636336 328.636336 0 0 0-12.091651 4.023608 119.200439 119.200439 0 0 0 16.098599 30.560264z\" fill=\"#FEFEFE\" p-id=\"11898\"></path><path d=\"M594.965103 767.555362l-41.681417 29.281539-38.607481 27.194761-2.953145 2.082613 41.560626 29.164913 41.681417 29.277374c22.646334 16.002799 27.336379-79.530826 14.086794-109.803689-3.473799-7.918095-8.163843-11.383563-14.086794-7.197511zM470.162434 796.841067l-41.677252-29.28154c-5.877134-4.15273-10.542187-0.783062-13.999324 6.99758-13.362045 30.047941-8.696992 126.048071 13.999324 110.007786l41.677252-29.277374 41.560626-29.164913-2.961476-2.086779-38.59915-27.19476z\" fill=\"#C3E1C5\" p-id=\"11899\"></path><path d=\"M296.014333 434.370599l215.708727 1.049637v0.012496h2.594936l216.537607-1.062133c10.5047 81.346865-7.201676 143.571177-42.031296 194.1037a198.564657 198.564657 0 0 0 17.139905-0.945506c145.216441-14.37003 135.274047-189.821847 56.426317-312.329476-57.375989-90.002205-151.947447-151.489272-250.434216-99.723843-230.59108-121.283052-445.358466 382.950884-194.47857 411.724266 6.539405 0.749741 13.382871 1.191255 20.567886 1.278724-34.82962-50.536688-52.540161-112.761-42.031296-194.107865z\" fill=\"#B6B6B7\" p-id=\"11900\"></path></svg>','<svg t=\"1690553353324\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"12039\" width=\"200\" height=\"200\"><path d=\"M552.203046 725.056345c0.845544 0.08747 3.811197-1.507818 8.255512-4.206896a241.775695 241.775695 0 0 1-46.759018 4.865004c12.783131 0.074974 25.516279-0.120792 38.503506-0.658108zM484.197124 725.056345c7.789004 0.316558 15.457217 0.487333 23.100438 0.595629a242.100584 242.100584 0 0 1-26.411806-1.932672c1.695254 0.908023 2.83653 1.387026 3.311368 1.337043z\" fill=\"#F8F7F8\" p-id=\"12040\"></path><path d=\"M511.825181 0.470672C229.050999 0.470672 0.000121 229.52155 0.000121 512.295732c0 174.094662 86.916126 327.821285 219.733229 420.252193 25.853663-89.860952 90.914759-157.604465 179.438669-188.768813-22.937993-35.196303-31.151852-55.097834-30.102212-64.869495a242.433804 242.433804 0 0 1-51.515725-51.578204c-251.0267-28.652707-36.237614-533.034477 194.387726-411.738435 52.394592-27.565578 103.677064-23.050455 148.836628 0.753909 18.593645-21.359366 41.952327-37.36223 47.74618-21.530141l17.356568 47.225525 16.390231 44.892989 1.982656 2.540798 48.337645 9.00109 49.470591 9.092726c25.357999 4.756708-16.256943 62.811864-44.005793 78.560648 41.66076 110.195669 26.678381 229.7673-92.189323 241.521615a242.408812 242.408812 0 0 1-42.610436 44.543109c9.317649 4.773368 4.640081 25.36633-28.448609 75.461707 83.288199 32.668001 144.338166 98.516327 169.142187 184.832658 132.779616-92.435073 219.699907-246.14087 219.699908-420.193879 0-282.774182-229.17167-511.82506-511.82506-511.82506z\" fill=\"#F8F7F8\" p-id=\"12041\"></path><path d=\"M480.889921 723.719302c8.672036 1.116285 17.47736 1.766063 26.411806 1.932672 2.13677 0.029157 4.273539 0.054148 6.401978 0.066644a241.775695 241.775695 0 0 0 46.759018-4.865004c23.012968-13.945234 85.891476-57.297083 102.794032-48.658368a242.271359 242.271359 0 0 0 42.610436-44.543109c-3.465482 0.34155-7.005939 0.608125-10.650526 0.77057-2.107613 0.08747-4.244383 0.149949-6.406144 0.17494 34.825597-50.532728 52.53621-112.753128 42.027302-194.104489l-216.534323 1.062137h-2.594946v-0.012496l-215.709604-1.049641c-10.508908 81.347196 7.201705 143.571761 42.031467 194.104489a202.680724 202.680724 0 0 1-20.47217-1.266234 242.433804 242.433804 0 0 0 51.515726 51.578204c3.203072-29.885619 92.72664 34.592343 111.815948 44.809685z\" fill=\"#FCE9EA\" p-id=\"12042\"></path><path d=\"M634.80398 747.656953l-0.662273 1.012154-115.943704-0.116627-115.822912 0.116627c-1.116285-1.678593-2.153431-3.278046-3.203072-4.89416-88.523909 31.164348-153.585005 98.90786-179.438669 188.768812 82.825857 57.638633 183.483119 91.456241 292.091831 91.456241 108.600381 0 209.282635-33.842599 292.125152-91.514554-24.804022-86.312165-85.858154-152.160492-169.146353-184.828493z\" fill=\"#C1E5F9\" p-id=\"12043\"></path><path d=\"M518.198003 748.55248l115.943704 0.116627 0.662273-1.012154c33.08869-50.095378 37.766258-70.692504 28.44861-75.461707-16.902556-8.638714-79.776899 34.713135-102.794032 48.658368-4.444314 2.694912-7.409967 4.294366-8.255512 4.206896a812.168237 812.168237 0 0 1-44.905484 0.591464 836.609883 836.609883 0 0 1-23.100438-0.595629c-0.474838 0.049983-1.616114-0.433185-3.307203-1.337043-19.089309-10.217341-108.612876-74.695303-111.820114-44.81385-1.049641 9.775825 7.164218 29.673191 30.102212 64.869495 1.049641 1.616114 2.086787 3.211402 3.203072 4.89416l115.822912-0.116627z\" fill=\"#FEFEFE\" p-id=\"12044\"></path><path d=\"M295.99895 434.488993l215.709604 1.049641v0.012496h2.594946l216.534323-1.062137c10.508908 81.347196-7.201705 143.571761-42.027302 194.104489a194.212785 194.212785 0 0 0 17.05667-0.94551c118.867705-11.754316 133.850084-131.325947 92.189323-241.521615-9.459267 5.368998-17.31075 5.843836-20.343046-2.407511l-17.239941-47.225525-17.352402-47.225525-49.470592-9.209352-49.358129-9.209353c-17.544004-3.278046-3.198907-31.893266 16.486032-54.502204-45.16373-23.804364-96.442036-28.315322-148.836628-0.753909-230.621174-121.296041-445.414425 383.081564-194.387726 411.73427a202.680724 202.680724 0 0 0 20.472169 1.266234c-34.825597-50.532728-52.53621-112.753128-42.027301-194.104489zM743.121125 289.267796l1.12878 0.208262a296.107125 296.107125 0 0 0-1.982655-2.540798l0.853875 2.332536z\" fill=\"#A1A1A1\" p-id=\"12045\"></path><path d=\"M743.121125 289.267796l17.352402 47.225525 17.239941 47.225525c3.032297 8.251346 10.88378 7.776509 20.343046 2.407511 27.748849-15.752949 69.363792-73.808106 44.005793-78.560649l-49.470591-9.092725-48.337645-9.00109-1.132946-0.204097zM644.296569 270.849091l49.35813 9.209353 49.470591 9.209352-0.84971-2.332536-16.390231-44.892989-17.356568-47.225525c-5.793853-15.827923-29.152536 0.17494-47.74618 21.530141-19.684938 22.608939-34.030035 51.224158-16.486032 54.502204z\" fill=\"#C1E5F9\" p-id=\"12046\"></path></svg>','<svg t=\"1690553370734\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"13049\" width=\"200\" height=\"200\"><path d=\"M880 896c0-126.29-63.62-237.72-160.57-304a368.15 368.15 0 0 1-414.86 0C207.62 658.28 144 769.71 144 896a48 48 0 0 0 48 48h640a48 48 0 0 0 48-48z\" fill=\"#FFFFFF\" p-id=\"13050\"></path><path d=\"M880 896c0-126.29-63.62-237.72-160.57-304A366.25 366.25 0 0 1 512 656c-76.95 0-144-31-160-39.94-84.7 67.5-160 167.87-160 279.94a48 48 0 0 0 48 48h592a48 48 0 0 0 48-48z\" fill=\"#82AAFA\" p-id=\"13051\"></path><path d=\"M512 304m-224 0a224 224 0 1 0 448 0 224 224 0 1 0-448 0Z\" fill=\"#FFFFFF\" p-id=\"13052\"></path><path d=\"M536 328m-200 0a200 200 0 1 0 400 0 200 200 0 1 0-400 0Z\" fill=\"#FF9580\" p-id=\"13053\"></path><path d=\"M832 960H192a64.07 64.07 0 0 1-64-64 384.1 384.1 0 0 1 167.54-317.21 16 16 0 0 1 18.06 0 352.14 352.14 0 0 0 396.8 0 16 16 0 0 1 18.06 0A384.1 384.1 0 0 1 896 896a64.07 64.07 0 0 1-64 64zM304.85 611.38A352.11 352.11 0 0 0 160 896a32 32 0 0 0 32 32h640a32 32 0 0 0 32-32 352.11 352.11 0 0 0-144.85-284.62 384.25 384.25 0 0 1-414.3 0zM512 544a240 240 0 0 1-169.71-409.71 240 240 0 0 1 339.42 339.42A238.43 238.43 0 0 1 512 544z m0-448c-114.69 0-208 93.31-208 208s93.31 208 208 208 208-93.31 208-208S626.69 96 512 96z\" fill=\"#333333\" p-id=\"13054\"></path><path d=\"M576 864H448a32 32 0 0 1 0-64h128a32 32 0 0 1 0 64z\" fill=\"#333333\" p-id=\"13055\"></path></svg>','<svg t=\"1690553436792\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"15573\" width=\"200\" height=\"200\"><path d=\"M0 0m113.777778 0l796.444444 0q113.777778 0 113.777778 113.777778l0 796.444444q0 113.777778-113.777778 113.777778l-796.444444 0q-113.777778 0-113.777778-113.777778l0-796.444444q0-113.777778 113.777778-113.777778Z\" fill=\"#86C0B1\" p-id=\"15574\"></path><path d=\"M757.76 592.099556c-10.884741-57.306074-14.108444-115.674074-21.997037-173.397334-6.788741-49.682963-16.19437-103.689481-46.876444-144.839111-61.553778-82.602667-202.676148-90.263704-288.237038-44.980148A174.459259 174.459259 0 0 0 364.088889 254.369185c-40.429037 37.091556-55.637333 93.828741-65.991111 145.787259-12.667259 63.563852-18.394074 128.265481-30.340741 191.943112-15.853037 83.247407-67.204741 104.334222-67.204741 104.334222s12.325926 35.877926 48.355556 43.804444c9.216 2.048 20.745481-22.945185 24.538074-31.857778l-15.890963 38.456889C271.928889 800.843852 338.602667 788.859259 338.602667 788.859259l5.878518-60.264296h0.379259l13.880889 57.685333c58.861037 3.792593 130.465185-64.018963 153.97926-88.101926 23.514074 24.082963 95.118222 91.856593 153.979259 88.101926l13.880889-57.685333h0.379259L686.838519 788.859259s66.673778 11.870815 81.123555-42.135703l-15.890963-38.456889c3.792593 8.912593 15.17037 33.905778 24.538074 31.857777 36.02963-7.926519 48.355556-43.804444 48.355556-43.804444s-51.275852-20.973037-67.204741-104.220444z\" fill=\"#48494F\" p-id=\"15575\"></path><path d=\"M805.508741 780.515556c-57.306074-63.070815-187.467852-113.512296-188.79526-109.985186s-32.161185 14.866963-102.779259 14.942815c-68.266667 0-98.607407-11.567407-99.972741-14.942815s-138.164148 46.990222-195.470222 109.985186C164.333037 840.173037 158.037333 970.903704 154.699852 1024h714.600296c-3.337481-53.096296-9.633185-183.826963-63.791407-243.484444z\" fill=\"#D1E3FF\" p-id=\"15576\"></path><path d=\"M478.245926 744.675556h72.097185V1024H478.245926z\" fill=\"#B1CEFA\" p-id=\"15577\"></path><path d=\"M601.201778 574.160593s5.30963-46.26963 6.561185-49.607112c-2.161778 1.592889-8.192 4.93037-10.277926 6.637038-13.274074 10.884741-48.31763 14.601481-84.081778 13.767111-35.726222 0.83437-70.769778-2.88237-84.043852-13.767111-2.123852-1.706667-8.116148-5.044148-10.277926-6.637038 1.251556 3.337481 6.599111 49.645037 6.561186 49.607112 1.327407 84.726519-13.653333 96.900741-21.124741 124.73837 23.779556 44.069926 58.292148 0 82.033778 44.032 5.157926 9.519407 48.583111 9.519407 53.741037 0 23.74163-44.107852 58.254222 0 82.033778-44.032-7.471407-27.83763-22.452148-40.011852-21.124741-124.73837z\" fill=\"#FAC396\" p-id=\"15578\"></path><path d=\"M422.987852 636.283259c-0.606815 29.544296 13.387852 58.55763 36.257185 80.137482a132.209778 132.209778 0 0 0 40.353185 26.093037c3.792593 1.479111 15.17037 2.123852 12.174222 7.585185a11.377778 11.377778 0 0 1-4.209777 3.792593 98.948741 98.948741 0 0 0-26.282667 26.548148c-7.585185 10.467556-16.535704 19.873185-24.272593 30.34074a12.667259 12.667259 0 0 1-7.016296 5.650963c-5.082074 1.137778-4.740741-2.730667-5.95437-5.006222a84.764444 84.764444 0 0 0-7.585185-11.377778l-18.962963-24.765629c-10.998519-14.373926-22.110815-28.975407-28.406519-45.511111s-7.35763-35.043556 1.592889-50.479408c8.154074-14.070519 23.817481-24.310519 30.340741-38.987852\" fill=\"#FFFFFF\" p-id=\"15579\"></path><path d=\"M603.932444 636.283259c0.568889 28.216889-12.212148 55.978667-33.261037 77.217185a132.740741 132.740741 0 0 1-37.925926 26.548149c-5.650963 2.616889-12.818963 2.806519-18.128592 6.106074-8.609185 5.385481 7.319704 9.860741 11.605333 12.894814 20.821333 14.791111 33.905778 34.702222 46.26963 55.258075 1.024 1.744593 3.792593 3.185778 5.423407 2.048a4.399407 4.399407 0 0 0 1.289482-1.365334 152.082963 152.082963 0 0 1 13.236148-19.26637c5.916444-6.447407 11.643259-13.425778 16.914963-20.290371 10.960593-14.373926 22.072889-28.975407 28.368592-45.511111s7.35763-35.043556-1.592888-50.479407c-8.154074-14.070519-23.779556-24.310519-30.340741-38.987852\" fill=\"#FFFFFF\" p-id=\"15580\"></path><path d=\"M513.21363 770.503111m-17.028741 0a17.028741 17.028741 0 1 0 34.057481 0 17.028741 17.028741 0 1 0-34.057481 0Z\" fill=\"#8BB0EB\" p-id=\"15581\"></path><path d=\"M513.21363 865.393778m-17.028741 0a17.028741 17.028741 0 1 0 34.057481 0 17.028741 17.028741 0 1 0-34.057481 0Z\" fill=\"#8BB0EB\" p-id=\"15582\"></path><path d=\"M357.755259 538.548148c17.445926 46.042074 58.861037 98.607407 116.242963 118.518519 70.390519 24.651852 128.303407-21.086815 161.412741-66.56 34.778074-47.786667 38.191407-115.332741 29.354667-168.922074-6.371556-38.684444-22.755556-79.644444-62.994963-102.058667-28.406519-15.739259-65.232593-19.797333-99.51763-15.815111s-66.522074 15.17037-97.09037 28.368592c-28.899556 12.288-47.179852 37.925926-55.106371 63.374223a113.777778 113.777778 0 0 0-4.133926 32.502518c-0.796444 34.436741-1.441185 75.738074 11.832889 110.592z\" fill=\"#FFDABE\" p-id=\"15583\"></path><path d=\"M323.280593 522.884741c13.50163 26.927407 32.047407 50.820741 45.966222 27.799703 7.926519-13.160296 2.199704-31.364741-2.465185-44.562963-4.058074-11.605333-5.30963-29.127111-12.288-39.025777-11.946667-16.877037-54.044444-18.962963-49.000297 9.709037a232.561778 232.561778 0 0 0 17.78726 46.08zM694.575407 522.884741c-13.539556 26.927407-32.047407 50.820741-45.966222 27.799703-7.964444-13.160296-2.23763-31.364741 2.427259-44.562963 4.096-11.605333 5.30963-29.127111 12.325926-39.025777 11.908741-16.877037 54.006519-18.962963 49.000297 9.709037a235.140741 235.140741 0 0 1-17.78726 46.08z\" fill=\"#FFDABE\" p-id=\"15584\"></path><path d=\"M330.638222 453.632s62.767407 43.84237 177.758815-78.961778c0 0 72.779852 83.437037 153.637926 86.20563s70.276741-229.944889-137.443556-234.458074c-247.959704-5.385481-193.953185 227.214222-193.953185 227.214222z\" fill=\"#48494F\" p-id=\"15585\"></path></svg>','<svg t=\"1690553449127\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"15732\" width=\"200\" height=\"200\"><path d=\"M0 0m113.777778 0l796.444444 0q113.777778 0 113.777778 113.777778l0 796.444444q0 113.777778-113.777778 113.777778l-796.444444 0q-113.777778 0-113.777778-113.777778l0-796.444444q0-113.777778 113.777778-113.777778Z\" fill=\"#B5E0E8\" p-id=\"15733\"></path><path d=\"M718.354963 507.259259a685.093926 685.093926 0 0 1-11.377778-70.656c-1.327407-15.17037-1.592889-30.340741-5.461333-44.980148-6.561185-24.689778-21.238519-43.652741-23.134815-69.518222-1.820444-24.689778-20.517926-33.640296-39.936-46.345482-20.252444-13.274074-44.676741-24.651852-69.101037-26.548148-46.459259-3.792593-85.978074 32.616296-131.109926 44.41126-18.962963 4.968296-39.708444 5.688889-56.888889 15.625481-12.591407 7.585185-22.755556 18.394074-35.081481 26.055111-11.377778 6.97837-17.749333 8.571259-21.88326 21.617778a226.948741 226.948741 0 0 0-9.595259 52.337778c-4.589037 68.266667-3.792593 137.178074-5.802666 205.520592q-0.796444 24.462222-1.289482 48.886519c0 5.12 2.389333 44.411259-0.758518 46.042074 37.470815-19.418074 82.10963-16.156444 124.207407-13.274074q68.266667 4.664889 136.533333 6.447407c15.966815 0.417185 31.857778 2.010074 47.824593 2.275556 11.643259 0 25.182815-3.109926 36.636444-0.948148 9.860741 1.896296 12.894815 8.798815 20.821334 13.691259 9.102222 5.613037 26.548148 6.637037 36.636444 3.792592 9.481481-2.503111 13.994667-1.782519 23.627852-0.910222a10.922667 10.922667 0 0 0 10.126222-3.792592 13.653333 13.653333 0 0 0 1.137778-9.367704c-5.461333-45.89037-13.539556-91.022222-16.687407-136.988445a1236.385185 1236.385185 0 0 0-36.560593-223.232c-2.616889-10.164148-5.461333-20.593778-11.984593-28.785777s-17.711407-13.653333-27.648-10.353778\" fill=\"#5C3025\" p-id=\"15734\"></path><path d=\"M638.103704 765.534815c0.455111-23.703704-10.202074-48.583111-15.170371-71.604148-3.413333-15.17037-4.361481-30.72-8.533333-45.700741a110.933333 110.933333 0 0 0-8.00237-17.180445c-3.26163-7.168-3.337481-17.028741-4.589037-24.803555-1.061926-6.409481 0.530963-13.463704-2.313482-19.456a35.346963 35.346963 0 0 0-27.306667-20.745482c-35.84-5.195852-77.065481-15.17037-112.526222-3.072a68.835556 68.835556 0 0 0-32.540444 26.548149c-4.133926 6.068148-4.28563 14.032593-5.499259 21.086814-2.275556 13.274074-5.992296 26.548148-7.319704 40.049778a295.822222 295.822222 0 0 1-6.447408 41.718519 129.592889 129.592889 0 0 0-5.688888 29.051259v1.630815a37.129481 37.129481 0 0 0 9.02637 25.827555c13.236148 13.842963 40.96 14.336 57.988741 21.731556 23.817481 10.391704 50.896593 10.467556 76.837926 12.288 22.869333 1.744593 91.32563 19.64563 92.084148-17.370074z\" fill=\"#F5C09D\" p-id=\"15735\"></path><path d=\"M384.379259 521.443556c15.17037 50.062222 50.744889 107.064889 100.200297 128.948148 60.681481 26.81363 110.554074-22.755556 139.07437-72.400593 29.999407-51.958519 32.919704-125.421037 25.296593-183.713185-5.499259-42.097778-19.380148-86.698667-54.272-111.009185-24.462222-17.142519-56.13037-21.579852-85.788445-17.218371s-57.306074 16.725333-83.626667 30.871704c-24.917333 13.349926-40.656593 41.187556-47.521185 68.911407a155.496296 155.496296 0 0 0-3.527111 35.346963c-0.568889 37.281185-1.251556 82.185481 10.164148 120.263112z\" fill=\"#FCD6BD\" p-id=\"15736\"></path><path d=\"M348.197926 465.995852c13.539556 26.927407 32.047407 50.820741 45.966222 27.799704 7.964444-13.160296 2.199704-31.364741-2.427259-44.562963-4.096-11.605333-5.30963-29.127111-12.325926-39.025778-11.908741-16.877037-54.044444-18.962963-49.000296 9.709037a235.140741 235.140741 0 0 0 17.787259 46.08zM681.566815 465.995852c-13.50163 26.927407-32.047407 50.820741-45.966222 27.799704-7.964444-13.160296-2.199704-31.364741 2.465185-44.562963 4.058074-11.605333 5.30963-29.127111 12.288-39.025778 11.946667-16.877037 54.044444-18.962963 49.000296 9.709037a232.561778 232.561778 0 0 1-17.787259 46.08z\" fill=\"#FCD6BD\" p-id=\"15737\"></path><path d=\"M688.924444 325.480296a86.622815 86.622815 0 0 1 0.834371 22.755556c-0.986074 8.419556-7.016296 15.435852-9.860741 23.324444a83.437037 83.437037 0 0 1-14.715259 27.799704q-1.934222 2.313481-3.792593 4.778667c-5.688889 8.078222-9.443556 16.877037-14.715259 25.486222 0.758519-36.105481-17.787259-68.077037-36.02963-97.962667-11.112296-18.204444-24.082963-35.764148-29.733926-56.32-11.643259 13.767111-31.364741 28.937481-46.155851 39.442963a785.483852 785.483852 0 0 1-96.786963 58.292148c-24.538074 12.47763-67.659852 20.821333-67.166815 55.67526A49.607111 49.607111 0 0 0 348.918519 400.877037a39.177481 39.177481 0 0 0-21.390223-4.437333c-5.840593 0-7.585185 2.389333-9.102222-6.257778a64.246519 64.246519 0 0 1 0.948148-18.052741A247.770074 247.770074 0 0 1 337.540741 302.421333c18.659556-44.297481 50.403556-83.892148 92.539259-107.709629a157.658074 157.658074 0 0 1 77.027556-20.48c15.928889 0 30.340741 0.265481 46.004148 5.157926a73.424593 73.424593 0 0 1 30.34074 19.949037 6.181926 6.181926 0 0 0 2.465186 2.085926 5.650963 5.650963 0 0 0 3.072 0 59.429926 59.429926 0 0 1 37.091555 5.271703c64.018963 34.133333 77.217185 137.367704 77.672296 201.879704A383.279407 383.279407 0 0 1 672.085333 333.748148\" fill=\"#5C3025\" p-id=\"15738\"></path><path d=\"M391.130074 745.775407h220.99437V1024h-220.99437z\" fill=\"#E3E3E3\" p-id=\"15739\"></path><path d=\"M296.315259 703.488c11.377778-3.982222 20.973037-10.088296 31.706074-15.17037 8.874667-4.096 17.294222-5.95437 26.168889-10.998519a29.430519 29.430519 0 0 1 18.962963-4.778667 5.423407 5.423407 0 0 1 2.541037 1.061926 6.219852 6.219852 0 0 1 1.630815 4.171852l3.413333 28.672 69.176889 283.685926c4.020148 10.467556 16.57363 21.541926 16.080593 33.716148H114.650074c6.637037-57.306074 12.932741-114.763852 17.408-172.411259 2.730667-34.702222 5.726815-72.666074 29.771852-97.848889 17.863111-18.697481 44.032-26.548148 69.101037-32.957629 21.390222-5.30963 44.183704-9.633185 65.384296-17.142519z\" fill=\"#35658F\" p-id=\"15740\"></path><path d=\"M420.408889 617.092741a135.509333 135.509333 0 0 0 36.636444 92.880592 133.157926 133.157926 0 0 0 40.770371 30.340741c3.792593 1.706667 15.17037 2.465185 12.325926 8.798815a11.377778 11.377778 0 0 1-4.28563 4.361481c-11.377778 8.040296-18.962963 19.493926-26.548148 30.947556-7.585185 12.136296-16.725333 23.058963-24.538074 35.081481a13.463704 13.463704 0 0 1-7.054222 6.561186c-5.157926 1.289481-4.816593-3.147852-6.030223-5.802667a100.617481 100.617481 0 0 0-7.585185-13.084445l-18.962963-28.672c-11.112296-16.687407-22.33837-33.60237-28.709926-52.565333s-7.585185-40.618667 1.630815-58.481778c8.229926-16.346074 24.045037-28.178963 30.833778-45.169777\" fill=\"#FFFFFF\" p-id=\"15741\"></path><path d=\"M603.287704 617.092741a137.746963 137.746963 0 0 1-71.831704 120.263111c-5.726815 3.072-12.932741 3.26163-18.318222 7.092148-8.722963 6.257778 7.395556 11.377778 11.719111 14.942815 21.048889 17.142519 34.133333 40.239407 46.762667 64.056889 1.061926 2.010074 3.792593 3.792593 5.499259 2.389333a5.461333 5.461333 0 0 0 1.289481-1.630815 178.024296 178.024296 0 0 1 13.387852-22.300444c5.95437-7.585185 11.757037-15.54963 17.066667-23.514074 11.112296-16.687407 22.33837-33.60237 28.709926-52.565334s7.585185-40.618667-1.630815-58.481777c-8.229926-16.346074-24.045037-28.178963-30.795852-45.169778\" fill=\"#FFFFFF\" p-id=\"15742\"></path><path d=\"M463.189333 996.617481q-6.409481-30.340741-11.946666-60.681481c-15.17037-81.957926-25.6-164.67437-34.133334-247.542519-2.010074-19.949037 0.568889-40.201481-1.479111-59.922962 0-0.606815 0-0.682667-0.493037-0.986075-1.403259-0.872296-17.256296 15.17037-19.531852 16.990815-8.229926 6.97837-17.256296 13.008593-25.979259 19.342222a408.120889 408.120889 0 0 0-61.970963 56.016593c-3.792593 4.171852-4.740741 7.130074-4.020148 9.443556 1.289481 4.171852 8.040296 6.144 14.336 8.760889 5.006222 2.123852 9.671111 5.726815 14.487704 8.267851 3.792593 2.010074 28.027259 15.890963 31.326814 13.349926a212.764444 212.764444 0 0 1-66.825481 34.133334c10.808889 65.308444 67.128889 160.768 88.481185 230.21037h85.447111c-2.768593-10.012444-6.106074-19.797333-7.698963-27.382519z\" fill=\"#1E507D\" p-id=\"15743\"></path><path d=\"M724.005926 703.488c-11.377778-3.982222-21.010963-10.088296-31.706074-15.17037-8.874667-4.096-17.294222-5.95437-26.206815-10.998519a29.240889 29.240889 0 0 0-18.962963-4.778667 5.764741 5.764741 0 0 0-2.578963 1.061926 6.371556 6.371556 0 0 0-1.592889 4.171852q-1.706667 14.336-3.451259 28.672l-69.138963 283.685926c-4.058074 10.467556-16.611556 21.541926-16.080593 33.716148h351.383704c-6.674963-57.306074-12.932741-114.763852-17.445926-172.411259-2.692741-34.702222-5.726815-72.666074-29.733926-97.848889-17.901037-18.697481-44.032-26.548148-69.138963-32.957629-21.352296-5.30963-44.145778-9.633185-65.34637-17.142519z\" fill=\"#35658F\" p-id=\"15744\"></path><path d=\"M718.999704 728.784593c-18.280296-14.14637-33.829926-31.250963-49.569185-48.052149-16.914963-18.128593-37.546667-33.147259-56.888889-48.734814-0.986074-0.796444-3.565037-3.147852-3.792593-1.858371 0 5.157926-1.099852 9.40563-1.592889 14.070519-0.872296 8.495407-1.782519 16.952889-2.654815 25.448296-1.85837 17.445926-3.792593 34.891852-5.233777 52.375704C591.644444 811.614815 562.706963 932.370963 549.925926 1024h81.464889c18.204444-69.480296 84.043852-161.261037 95.459555-230.248296a212.764444 212.764444 0 0 1-66.825481-34.133334 209.957926 209.957926 0 0 0 58.974815-30.833777z\" fill=\"#1E507D\" p-id=\"15745\"></path><path d=\"M510.596741 792.538074m-17.028741 0a17.028741 17.028741 0 1 0 34.057481 0 17.028741 17.028741 0 1 0-34.057481 0Z\" fill=\"#FFFFFF\" p-id=\"15746\"></path></svg>','<svg t=\"1690553457480\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"15893\" width=\"200\" height=\"200\"><path d=\"M2.603582 0m113.190862 0l792.336035 0q113.190862 0 113.190862 113.190862l0 792.336036q0 113.190862-113.190862 113.190862l-792.336035 0q-113.190862 0-113.190862-113.190862l0-792.336036q0-113.190862 113.190862-113.190862Z\" fill=\"#EEBCD7\" p-id=\"15894\"></path><path d=\"M591.196065 621.832867s4.829477-46.030951 5.961386-49.313486c-1.961975 1.584672-7.546057 4.904937-9.281651 6.6028-11.998231 10.828592-43.729403 14.526161-76.026529 13.696095-32.297126 0.830066-64.141489-2.867502-76.026529-13.696095-1.886514-1.697863-7.319676-5.018128-9.281651-6.6028 1.131909 3.282535 5.961385 49.388946 5.961385 49.313486 1.169639 84.327192-12.375534 96.400884-19.129255 124.132645 21.506264 43.842594 52.822402 86.402358 74.177745 130.282683 4.640825 9.470302 14.752542 11.658659 21.317612 18.525571v3.773028l2.339278 1.28283a13.09241 13.09241 0 0 1 0.679145-1.245099 13.09241 13.09241 0 0 1 0.679145 1.245099l2.339278-1.28283v-3.773028c6.56507-6.866912 16.676787-9.055269 21.317612-18.525571 21.468534-43.880324 52.822402-86.440088 74.177745-130.282683-6.715991-27.731761-20.261164-39.805453-19.204716-124.132645z\" fill=\"#FACDAC\" p-id=\"15895\"></path><path d=\"M680.994149 469.062933c-11.620929 5.697273-17.997347 10.300368-23.090936 22.223139 14.601621-64.481061 9.20619-136.206338-47.804274-168.729845-59.840236-33.957259-159.070892-32.86308-210.610464 12.866028-33.957259 30.18423-59.689315 91.118644-34.825055 155.863817-5.621813-11.319086-10.224908-23.015475-22.940015-22.223139-40.220486 2.490199-31.165217 51.426382-21.619455 69.801032s27.807222 32.636699 48.332498 33.504495a11.696389 11.696389 0 0 1 7.093294 1.697863 9.809875 9.809875 0 0 1 2.64112 4.678555c10.677671 32.448047 20.600737 59.538394 48.332499 81.912454s64.820634 37.202063 101.381282 31.127487c43.238909-7.168755 87.270155-34.674134 102.815033-77.384819 4.791746-13.16787 3.282535-32.523508 17.469123-40.107296a25.015181 25.015181 0 0 1 8.187472-1.961974c21.091231-3.282535 37.730287-18.676492 46.936478-37.352985a80.629624 80.629624 0 0 0 8.640236-42.446573c-1.584672-17.431393-19.506559-29.090052-30.938836-23.468239z\" fill=\"#FFE7D5\" p-id=\"15896\"></path><path d=\"M597.08199 699.821371c12.866028 30.712454-33.051732 80.13913-85.119528 80.13913s-99.268386-40.371408-85.119529-80.13913c-56.369049 24.222845-98.40059 45.276345-139.602063 73.234488 12.337804 47.049668 16.676787 130.773176 33.579956 162.240235 11.319086 20.94031 13.016949 56.595431 11.734119 88.552985h358.43773c-1.245099-32.033014 0.528224-67.612675 11.73412-88.552985 16.903169-31.54252 21.279882-115.266028 33.579955-162.240235\" fill=\"#9DB4EB\" p-id=\"15897\"></path><path d=\"M409.222889 763.132793s61.123066 166.76787 102.588651 170.918202c0 0 72.517612-37.428445 101.683125-172.163302l-104.96566-15.620339z\" fill=\"#E9F4FC\" p-id=\"15898\"></path><path d=\"M419.86283 707.59381s37.466175 40.258217 92.099632 44.446278c0 0-35.994694 47.615623-59.802506 46.181872 0 0-146.355785-46.785556-32.297126-90.62815zM604.062093 707.59381s-37.466175 40.258217-92.099631 44.446278c0 0 35.994694 47.615623 59.802505 46.181872 0 0 146.355785-46.785556 32.297126-90.62815z\" fill=\"#FFFFFF\" p-id=\"15899\"></path><path d=\"M502.378969 752.983346s-54.180693 7.244215-54.520266 32.86308 1.811054 50.558585 1.811054 50.558585 46.181872-28.184525 58.104643-67.537214z\" fill=\"#C28CC0\" p-id=\"15900\"></path><path d=\"M503.812719 747.05969s-50.558585-49.464407-62.443625-10.828592 39.692262 35.39101 65.68843 24.185114zM521.545955 752.983346s54.180693 7.244215 54.520265 32.86308-1.811054 50.558585-1.811054 50.558585-46.181872-28.184525-58.104643-67.537214z\" fill=\"#C28CC0\" p-id=\"15901\"></path><path d=\"M520.112204 747.05969s50.558585-49.464407 62.443625-10.828592-39.692262 35.39101-65.68843 24.185114z\" fill=\"#C28CC0\" p-id=\"15902\"></path><path d=\"M511.962462 758.076934m-17.280472 0a17.280472 17.280472 0 1 0 34.560943 0 17.280472 17.280472 0 1 0-34.560943 0Z\" fill=\"#C28CC0\" p-id=\"15903\"></path><path d=\"M425.673294 697.746205s8.942078 175.143994 86.138246 236.30479c0 0-76.026529-0.188651-141.941341-106.814444l29.014591-30.448342-55.388062-17.393662s-2.075166-50.520855 82.176566-81.648342zM597.949787 697.746205s-8.904348 175.143994-86.138247 236.30479c0 0 76.026529-0.188651 141.941342-106.814444l-29.014591-30.448342 55.388062-17.393662s2.075166-50.520855-82.176566-81.648342z\" fill=\"#82A0E8\" p-id=\"15904\"></path><path d=\"M320.858556 935.371555c-16.903169-31.54252-21.242152-115.266028-33.579956-162.240236-46.521444 31.50479-117.341194 250.868681-117.341194 250.868681h162.655269c1.28283-32.108475-0.528224-67.688136-11.734119-88.628445zM702.764525 935.371555c16.903169-31.54252 21.279882-115.266028 33.579956-162.240236 46.521444 31.50479 117.378924 250.868681 117.378924 250.868681h-162.692999c-1.245099-32.108475 0.528224-67.688136 11.734119-88.628445z\" fill=\"#E9F4FC\" p-id=\"15905\"></path><path d=\"M514.679042 243.360354m-81.120118 0a81.120118 81.120118 0 1 0 162.240236 0 81.120118 81.120118 0 1 0-162.240236 0Z\" fill=\"#553930\" p-id=\"15906\"></path><path d=\"M672.467104 341.798674c-25.807517-65.462049-117.265733-85.798674-161.52336-85.798674s-140.809433 21.128961-161.523361 85.798674c-23.845542 74.290936-13.545173 126.396463-13.545173 126.396462s38.862196 9.734414 34.787325 60.36846c-2.075166 25.581135-17.431393 44.5972-6.150037 69.197347a65.160206 65.160206 0 0 1 11.319087-43.804863c15.092115-21.770376 22.223139-81.950184 19.997052-102.173619 0 0 70.291525 13.469713 115.190567 13.469713s115.190567-13.469713 115.190568-13.469713c-2.226087 20.223434-4.414444 52.822402 7.546057 76.517023 22.638172 44.068976 6.338688 73.045836 6.338689 73.045837 26.411201-33.579956 7.88563-44.63493 9.092999-70.291526 2.64112-56.595431 36.824761-62.820929 36.82476-62.820928s15.092115-53.87885-13.545173-126.434193z\" fill=\"#7D5C55\" p-id=\"15907\"></path></svg>','<svg t=\"1690553467987\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"16054\" width=\"200\" height=\"200\"><path d=\"M2.603582 0m113.199204 0l792.394428 0q113.199204 0 113.199204 113.199204l0 792.394429q0 113.199204-113.199204 113.199204l-792.394428 0q-113.199204 0-113.199204-113.199204l0-792.394429q0-113.199204 113.199204-113.199204Z\" fill=\"#EEBCD7\" p-id=\"16055\"></path><path d=\"M602.1443 621.878694s5.433562-46.034343 6.754219-49.31712c-2.226251 1.584789-8.414474 4.905299-10.565259 6.603287-13.621638 10.829391-49.618984 14.527231-86.33326 13.697104-36.714275 0.830127-72.711622-2.867713-86.33326-13.697104-2.150785-1.697988-8.339008-5.018498-10.565259-6.603287 1.320657 3.282777 6.791952 49.392586 6.754219 49.31712 1.320657 84.333407-14.036701 96.407989-21.696514 124.141794 24.413295 43.845825 59.844646 86.408726 84.257941 130.292284 5.28263 9.471 16.715749 11.659518 24.186897 18.526936v3.773307l2.641315 1.282924 0.792394-1.245191 0.792394 1.245191 2.641315-1.282924v-3.773307c7.546614-6.867418 18.866534-9.055936 24.186897-18.526936 24.413295-43.883558 59.844646-86.446459 84.257941-130.292284-7.735279-27.733805-23.092638-39.808387-21.77198-124.141794z\" fill=\"#FACDAC\" p-id=\"16056\"></path><path d=\"M681.044145 431.364434c-11.621785 5.697693-17.998673 10.301128-23.092638 22.224777 14.602697-64.485813 9.206869-136.216376-47.807797-168.74228-59.844646-33.959761-159.082615-32.865502-210.625986 12.866976-33.959761 30.186454-59.693714 91.125359-34.827622 155.875304-5.622227-11.31992-10.225661-23.017171-22.941705-22.224777-40.223451 2.490382-31.167514 51.430172-21.621048 69.806175s27.809271 32.639104 48.33606 33.506965a11.697251 11.697251 0 0 1 7.093817 1.697988 9.810598 9.810598 0 0 1 2.641315 4.6789c10.678458 32.450438 20.602255 59.542781 48.33606 81.918491s64.825411 37.204805 101.388754 31.129781c43.242096-7.169283 87.276586-34.67669 102.82261-77.390522 4.7921-13.168841 3.282777-32.525905 17.470411-40.110252a25.017024 25.017024 0 0 1 8.188075-1.962119c21.092785-3.282777 37.733068-18.677869 46.939937-37.355738a80.635566 80.635566 0 0 0 8.640873-42.449701c-1.584789-17.432677-19.507996-29.092195-30.941116-23.469968z\" fill=\"#FFE7D5\" p-id=\"16057\"></path><path d=\"M866.690839 917.290884c-4.414769-118.859164-121.160881-165.836834-252.811555-217.417938-6.527821 24.451028-44.562753 33.356032-101.690619 33.356032s-95.162798-8.905004-101.652885-33.356032C278.620974 751.45405 161.874862 798.431719 157.309161 917.290884c-2.414916 65.617805 0 106.709116 0 106.709116h709.381678s2.263984-41.091311 0-106.709116z\" fill=\"#9DB4EB\" p-id=\"16058\"></path><path d=\"M364.841035 446.344462s25.809419-93.993072 135.461714-95.841993l-6.490088 7.320215a3.056379 3.056379 0 0 0 3.207311 4.905299l31.846709-10.376594-2.565848 12.79151a3.018645 3.018645 0 0 0 4.112904 3.395976l30.639251-12.980175a14.451765 14.451765 0 0 1 11.319921 0c17.696809 7.320215 70.334439 33.959761 88.785909 98.105977 0 0 8.188076-16.942148 23.130371-22.224777a450.268701 450.268701 0 0 0-1.999853-104.256467C674.252192 267.904783 646.405188 215.493551 589.315056 190.551994c-45.921144-20.073992-100.520893-22.639841-146.668435-1.735722-14.338566 6.527821-41.506375 15.093227-57.957993 14.791363 10.338861 10.338861 26.639546 9.169136 26.639547 9.169136S387.480876 226.398408 372.387648 226.398408c2.82998 7.546614 13.093375 8.48994 13.093375 8.48994a246.283735 246.283735 0 0 0-18.225072 22.639841c-18.413737 25.469821-27.167809 56.901467-29.658191 88.031248-0.679195 8.60314 5.622227 86.559658 7.546613 85.804997-0.150932 0 7.62208-3.433709 19.696662 14.980028z\" fill=\"#7D5C55\" p-id=\"16059\"></path><path d=\"M417.063601 675.044587c17.734542 9.96153 53.769622 27.809271 89.200973 31.318446 4.6789 5.65996 5.735426 47.807797 5.735426 47.807798s-79.239443 5.395829-120.745818-47.581399l9.810598-25.58302a11.31992 11.31992 0 0 1 15.998821-5.961825z\" fill=\"#82A0E8\" p-id=\"16060\"></path><path d=\"M606.936399 675.044587c-17.734542 9.96153-53.769622 27.809271-89.200973 31.318446-4.6789 5.65996-5.735426 47.807797-5.735426 47.807798s79.239443 5.395829 120.934483-47.581399l-9.810598-25.58302a11.31992 11.31992 0 0 0-16.187486-5.961825z\" fill=\"#82A0E8\" p-id=\"16061\"></path><path d=\"M485.964183 743.982902h52.109367v279.073771H485.964183zM603.314025 889.443879h122.707937v22.715307H603.314025z\" fill=\"#82A0E8\" p-id=\"16062\"></path></svg>','<svg t=\"1690553481316\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"16209\" width=\"200\" height=\"200\"><path d=\"M0 0m113.777778 0l796.444444 0q113.777778 0 113.777778 113.777778l0 796.444444q0 113.777778-113.777778 113.777778l-796.444444 0q-113.777778 0-113.777778-113.777778l0-796.444444q0-113.777778 113.777778-113.777778Z\" fill=\"#ED8888\" p-id=\"16210\"></path><path d=\"M597.485037 565.627259s5.157926-46.26963 6.409482-49.607111c-2.123852 1.592889-7.964444 4.93037-10.012445 6.637037-12.932741 10.884741-47.066074 14.601481-81.882074 13.767111-34.816 0.83437-68.949333-2.88237-81.882074-13.767111-2.048-1.706667-7.888593-5.044148-10.012445-6.637037 1.251556 3.337481 6.447407 49.645037 6.409482 49.607111 1.251556 84.726519-13.312 96.862815-20.593778 124.738371 23.172741 44.069926 56.888889 86.888296 79.909926 130.958222 5.006222 9.519407 15.890963 11.719111 22.945185 18.621629v3.982223l2.503111 1.289481c0.227556-0.417185 0.493037-0.83437 0.758519-1.251555 0.265481 0.417185 0.530963 0.83437 0.758518 1.251555l2.503112-1.289481v-3.982223c7.054222-6.902519 17.938963-9.102222 22.945185-18.621629 23.134815-44.069926 56.888889-86.888296 79.909926-130.958222-7.35763-27.875556-21.921185-40.011852-20.66963-124.738371z\" fill=\"#F5C4A5\" p-id=\"16211\"></path><path d=\"M357.641481 694.575407h308.754963v218.605037H357.641481z\" fill=\"#EAE0EB\" p-id=\"16212\"></path><path d=\"M513.099852 1024h254.445037c2.048-14.14637 4.209778-28.254815 5.802667-42.477037 5.499259-49.303704 4.171852-99.252148 9.02637-148.66963 2.199704-22.300444 5.688889-41.984 5.650963-64.474074 0-17.104593 2.351407-34.512593 3.792592-51.503407 0.530963-6.33363 3.792593-18.280296-0.948148-22.755556a15.625481 15.625481 0 0 0-6.674963-2.920296 31.478519 31.478519 0 0 0-7.964444-3.337481c-6.144-1.706667-12.47763-4.399407-18.962963-5.802667-11.908741-2.616889-23.703704-6.068148-35.460741-9.481482a544.350815 544.350815 0 0 1-71.755852-25.903407 97.545481 97.545481 0 0 0-10.012444-4.892444c-2.048-0.644741-6.712889-0.644741-7.926519-2.048a2.313481 2.313481 0 0 0-3.375407 0.417185 7.926519 7.926519 0 0 0-1.289481 3.792592 306.441481 306.441481 0 0 1-22.755556 75.093334c-1.630815 3.792593-3.26163 7.585185-4.968296 11.112296-15.853037 34.853926-35.346963 71.149037-65.156741 94.549333-5.726815 4.475259-15.36 13.312-22.755556 11.946667-7.35763 1.365333-16.990815-7.585185-22.755555-11.946667-29.809778-23.400296-49.303704-59.695407-65.156741-94.549333-1.706667-3.792593-3.337481-7.395556-4.968296-11.112296a306.441481 306.441481 0 0 1-22.755556-75.093334 7.926519 7.926519 0 0 0-1.289481-3.792592 2.313481 2.313481 0 0 0-3.375408-0.417185c-1.21363 1.403259-5.878519 1.403259-7.926518 2.048a97.545481 97.545481 0 0 0-10.012445 4.892444 544.350815 544.350815 0 0 1-71.755851 25.903407c-11.757037 3.413333-23.552 6.864593-35.460741 9.481482-6.447407 1.403259-12.781037 4.096-18.962963 5.802667a31.478519 31.478519 0 0 0-7.964445 3.337481 15.625481 15.625481 0 0 0-6.674963 2.920296c-4.816593 4.626963-1.479111 16.57363-0.948148 22.755556 1.479111 16.990815 3.792593 34.398815 3.792593 51.503407 0 22.414222 3.451259 42.097778 5.650963 64.474074 4.854519 49.303704 3.527111 99.290074 9.02637 148.66963 1.592889 14.222222 3.792593 28.330667 5.802667 42.477037h254.445037\" fill=\"#5C6A94\" p-id=\"16213\"></path><path d=\"M781.274074 698.254222a48.772741 48.772741 0 0 0-7.168 13.615408 247.732148 247.732148 0 0 0-10.998518 42.059851 675.081481 675.081481 0 0 0-10.884741 81.768297c0 2.23763-0.227556 3.792593-0.227556 5.006222-0.720593 61.515852-10.277926 122.349037-17.635555 183.296h187.733333a1103.075556 1103.075556 0 0 0-29.278815-168.011852 485.451852 485.451852 0 0 0-11.946666-55.561481c-11.377778-40.429037-32.995556-90.794667-76.951704-104.372148-8.722963-2.654815-16.421926-5.347556-22.641778 2.199703zM242.725926 698.254222a48.772741 48.772741 0 0 1 7.168 13.615408 247.732148 247.732148 0 0 1 10.998518 42.059851 675.081481 675.081481 0 0 1 10.884741 81.768297c0 2.23763 0.227556 3.792593 0.227556 5.006222 0.720593 61.515852 10.277926 122.349037 17.635555 183.296H102.058667a1103.075556 1103.075556 0 0 1 29.278814-168.011852 485.451852 485.451852 0 0 1 11.946667-55.561481c11.377778-40.429037 32.995556-90.794667 76.951704-104.372148 8.571259-2.654815 16.270222-5.347556 22.490074 2.199703z\" fill=\"#F6ECF7\" p-id=\"16214\"></path><path d=\"M373.797926 455.111111c4.968296 52.792889 22.490074 102.058667 72.666074 138.733037 19.949037 14.563556 42.81837 28.899556 68.266667 27.723852 14.563556-0.644741 28.216889-6.447407 40.846222-13.198222 100.314074-53.665185 99.214222-149.010963 99.328-245.342815 0-18.318222-0.530963-37.243259-8.760889-53.892741-10.42963-20.897185-31.744-35.498667-54.916741-43.311407-53.589333-18.166519-113.057185-17.180444-164.560592 5.95437C354.228148 304.31763 368.222815 395.946667 373.797926 455.111111z\" fill=\"#FCD6BD\" p-id=\"16215\"></path><path d=\"M698.823111 288.881778c-2.730667-15.54963-11.188148-39.367111-25.258667-54.46163a228.389926 228.389926 0 0 0-17.445925-31.895704c-22.452148-33.754074-61.212444-53.741037-102.4-56.888888a287.971556 287.971556 0 0 0-59.126519 1.782518c-38.570667 5.195852-78.810074 20.897185-94.587259 57.685333a61.022815 61.022815 0 0 0-3.034074 9.216 19.721481 19.721481 0 0 0-4.854519-3.337481c-20.366222-9.40563-44.828444 13.387852-53.096296 28.823704-13.084444 24.272593-16.763259 52.565333-15.853037 79.644444a328.552296 328.552296 0 0 0 5.613037 49.038222c2.199704 12.022519 3.034074 34.512593 15.435852 41.718519C369.739852 424.77037 391.850667 367.881481 399.132444 353.583407a153.827556 153.827556 0 0 0 15.587556-59.240296 44.86637 44.86637 0 0 0 5.575111 4.854519c19.380148 13.805037 40.12563 20.48 63.829333 24.38637l51.048297 8.495407c4.589037 0.758519 9.253926 1.554963 13.918815 2.465186 14.639407 2.88237 29.278815 7.016296 41.339259 15.435851s28.141037 17.408 36.901926 30.037334a2.123852 2.123852 0 0 0 3.792592-1.175704v-17.901037c3.072 6.295704 6.295704 12.47763 9.936593 18.432 5.347556 8.722963 5.423407 21.390222 13.312 28.785778 10.202074 9.557333 19.911111-0.720593 25.144889-10.619259a194.673778 194.673778 0 0 0 10.581333-23.893334 164.977778 164.977778 0 0 0 8.722963-84.764444z\" fill=\"#7D4E3C\" p-id=\"16216\"></path><path d=\"M361.244444 482.417778c5.575111 6.637037 16.57363 11.757037 25.713778 5.650963 10.543407-6.97837 4.020148-22.262519 2.578963-31.023408a313.571556 313.571556 0 0 0-9.936592-38.949926c-3.034074-10.126222-8.798815-26.548148-27.420445-21.845333a21.541926 21.541926 0 0 0-16.042667 15.739259c-3.792593 18.432 12.515556 33.829926 18.962963 50.517334 2.23763 6.030222 1.137778 12.325926 4.892445 18.014814a16.270222 16.270222 0 0 0 1.251555 1.896297zM663.476148 482.417778c-5.575111 6.637037-16.57363 11.757037-25.713778 5.650963-10.505481-6.97837-3.792593-22.262519-2.541037-31.023408a320.246519 320.246519 0 0 1 9.898667-38.949926c3.072-10.126222 8.798815-26.548148 27.420444-21.845333a21.504 21.504 0 0 1 16.042667 15.739259c3.982222 18.432-12.515556 33.829926-18.773333 50.517334-2.275556 6.030222-1.175704 12.325926-4.930371 18.014814a16.270222 16.270222 0 0 1-1.403259 1.896297z\" fill=\"#FCD6BD\" p-id=\"16217\"></path><path d=\"M661.086815 650.126222a481.659259 481.659259 0 0 1-58.898963 125.686519c-19.911111 30.151111-53.930667 92.766815-96.635259 90.453333-37.05363-2.010074-63.829333-57.419852-80.820149-84.574815-25.78963-41.14963-48.090074-84.233481-61.667555-130.844444-5.840593 2.085926-11.719111 4.058074-17.483852 6.106074 15.815111 53.930667 43.008 103.348148 73.614222 150.376296 19.531852 29.999407 45.511111 75.851852 86.357334 77.444741 45.89037 1.744593 77.63437-49.531259 100.465777-81.995852a522.012444 522.012444 0 0 0 72.400593-146.090667c-5.802667-2.085926-11.567407-4.361481-17.332148-6.561185z\" fill=\"#42507A\" p-id=\"16218\"></path><path d=\"M424.77037 594.640593c4.475259 9.291852 7.319704 19.683556 13.349926 27.875555a455.793778 455.793778 0 0 0 31.971556 39.898074 142.032593 142.032593 0 0 0 29.620148 25.372445c2.88237 1.744593 6.068148 3.185778 9.064296 4.854518a2.730667 2.730667 0 0 1 0 4.778667c-10.088296 5.575111-18.962963 18.962963-26.965333 26.548148a230.551704 230.551704 0 0 0-23.703704 27.913481 106.533926 106.533926 0 0 0-11.377778 15.473778 2.806519 2.806519 0 0 1-4.892444 0 565.096296 565.096296 0 0 1-30.340741-55.030518c-9.329778-20.252444-19.190519-44.714667-19.797333-67.356445a9.064296 9.064296 0 0 1 0.530963-3.792592 9.974519 9.974519 0 0 1 2.616889-3.034074 95.838815 95.838815 0 0 0 27.192889-41.984M599.22963 594.640593c-4.475259 9.291852-7.319704 19.683556-13.349926 27.875555a455.793778 455.793778 0 0 1-31.971556 39.898074 142.032593 142.032593 0 0 1-29.620148 25.372445c-2.88237 1.744593-6.068148 3.185778-9.064296 4.854518a2.730667 2.730667 0 0 0 0 4.778667c10.088296 5.575111 18.962963 18.962963 26.965333 26.548148a230.551704 230.551704 0 0 1 23.703704 27.913481 106.533926 106.533926 0 0 1 11.188148 15.473778 2.806519 2.806519 0 0 0 4.892444 0 565.096296 565.096296 0 0 0 30.340741-55.030518c9.329778-20.252444 19.190519-44.714667 19.797333-67.356445a9.064296 9.064296 0 0 0-0.530963-3.792592 9.974519 9.974519 0 0 0-2.616888-3.034074 95.838815 95.838815 0 0 1-27.192889-41.984\" fill=\"#FFFFFF\" p-id=\"16219\"></path></svg>','<svg t=\"1690553491534\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"16366\" width=\"200\" height=\"200\"><path d=\"M0 0m113.765137 0l796.355961 0q113.765137 0 113.765137 113.765137l0 796.355961q0 113.765137-113.765137 113.765137l-796.355961 0q-113.765137 0-113.765137-113.765137l0-796.355961q0-113.765137 113.765137-113.765137Z\" fill=\"#B5E0E8\" p-id=\"16367\"></path><path d=\"M601.969263 558.662667s5.460727-46.264489 6.750064-49.6016c-2.199459 1.630634-8.41862 4.929823-10.580157 6.674222-13.689738 10.883531-49.867052 14.561938-86.764878 13.72766-36.897826 0.834278-73.07514-2.844128-86.764878-13.72766-2.199459-1.744399-8.380698-5.043588-10.61808-6.674222 1.289338 3.337111 6.825908 49.639522 6.787987 49.6016 1.32726 84.717106-14.106877 96.889975-21.804985 124.762434 24.535348 44.06503 60.143836 86.840721 84.679184 130.905751 5.30904 9.51835 16.799319 11.717809 24.307818 18.657483v3.792171l2.654519 1.289338c0.22753-0.417139 0.530904-0.796356 0.796356-1.213495l0.796356 1.213495 2.65452-1.289338v-3.792171c7.584342-6.939673 18.960856-9.139133 24.307818-18.657483 24.535348-44.06503 60.143836-86.840721 84.679184-130.905751-7.773951-27.872459-23.208088-40.045328-21.880828-124.762434z\" fill=\"#F5C09D\" p-id=\"16368\"></path><path d=\"M674.589342 849.446358a21.577454 21.577454 0 0 1 1.023886-2.692442c-39.779876 84.337888-40.348702 86.537348-1.023886 2.692442z\" fill=\"#EEE4D3\" p-id=\"16369\"></path><path d=\"M683.159649 683.007962c-2.692442 0-12.438322-2.123616-15.168685-2.161538-3.147502 2.009851 2.123616-2.616598 0 0-30.944117 38.490538-62.419139 76.791468-93.590786 115.168241-3.488798 4.323075-8.153168-16.420101-13.045069-19.415917-3.792171-2.389068-17.785283 11.376514-23.435619 12.286635a21.312002 21.312002 0 0 0-7.925637 4.929823c-7.811873 7.243047-13.120912 16.875162-21.274081 23.9286-6.825908 5.915787 2.578676 15.396215 6.522534 22.411732 11.376514 20.022664 29.199719 142.244343 43.420361 183.730697h108.266489l0.568826-3.792171c4.891901-32.005925-2.919972-198.254712 2.161537-230.222716 5.574492-34.963819 10.731845-69.927638 16.60971-104.853535 0.644669-3.75425 0.985965 1.365182-3.10958-2.009851z\" fill=\"#E3E3E3\" p-id=\"16370\"></path><path d=\"M508.378476 819.8295c-1.403103-1.09973-4.474762-2.692442-5.7641-3.792171-8.911602-7.849794-14.296486-20.667333-25.672999-27.076102-5.119431-0.985965-17.140614-3.488798-20.439803-1.441026-7.584342 4.816057-7.584342 13.95519-12.779617 7.811873-25.407547-30.982039-50.208347-62.267452-75.615895-93.287412-7.584342-9.480428-14.106877-10.200941-24.269896-18.619561h-8.115246c-3.792171 3.071659-3.033737 6.901752-2.502833 10.428471 2.275303 15.775432 4.816057 22.070437 7.31889 37.921712 5.043588 32.195534 9.97341 64.466911 15.168685 96.54868 3.147502 19.908899 5.195275 151.68685 8.001482 195.676036h116.798874c6.939673-28.024145 14.599859-170.344332 22.032515-183.048106 4.285154-7.546421 13.538051-15.016998 5.839943-21.122394z\" fill=\"#E3E3E3\" p-id=\"16371\"></path><path d=\"M822.521942 758.168796c-57.944377-58.361515-182.327593-100.98552-183.730697-98.027627-24.952487 52.028589 17.785283 134.318705-7.394734 186.271452a12.552087 12.552087 0 0 0 2.464912 15.585824c5.119431 5.498648 11.035218 112.892938 16.192571 161.88779H891.160241c-3.792171-45.885272-26.545199-223.207199-68.638299-265.717439z\" fill=\"#35658F\" p-id=\"16372\"></path><path d=\"M528.969966 832.2299a9.594193 9.594193 0 0 1 1.061808-10.238862c7.584342-10.466393 14.941155-21.274081 22.373811-31.930082 3.792171-0.530904 5.119431-7.584342 3.375032-8.911602-11.717809-10.011332-31.89216-15.851276-43.609969-25.824686l-1.289339 0.303373c-2.351146 0-3.602563 2.123616-5.195274 3.450876-12.059105 9.897567-27.68285 12.248713-39.704033 22.222124a436.820205 436.820205 0 0 0 25.217939 39.893641 10.731845 10.731845 0 0 1 1.516868 11.376514c-9.063289 23.928601-17.899048 153.165796-26.734807 191.277117h97.838018c-8.873681-38.187164-25.824686-167.613969-34.850054-191.618413z\" fill=\"#1E507D\" p-id=\"16373\"></path><path d=\"M362.07651 438.374995s58.513202-31.816317 35.153427-169.510054a59.80254 59.80254 0 0 0-42.586083 22.753027c-22.677184 27.948302-25.862608 84.451654 7.432656 146.757027zM655.325112 438.374995s-58.513202-31.816317-35.153427-169.510054a59.80254 59.80254 0 0 1 42.586083 22.753027c22.677184 27.948302 27.417398 78.573788-7.432656 146.757027z\" fill=\"#5D1F1D\" p-id=\"16374\"></path><path d=\"M680.429286 409.175277c-11.717809 5.7641-19.984742 17.216457-25.104174 29.199718a184.982113 184.982113 0 0 1-34.925897-154.493056c1.137651-5.005666 2.42699-10.618079-0.22753-15.168685a18.657483 18.657483 0 0 0-10.997297-6.787986 335.114172 335.114172 0 0 0-204.435952 0.872199 14.789468 14.789468 0 0 0-5.802022 2.957894c-3.792171 3.792171-2.730363 10.314706-1.403103 15.661667a180.317742 180.317742 0 0 1-35.039662 155.820316c-5.650335-11.376514-10.276784-28.858423-23.094323-28.062067-40.424545 2.502833-31.323334 51.687294-21.691219 70.155168s27.948302 32.802281 48.577713 33.67448a11.755731 11.755731 0 0 1 7.129282 1.706477 9.859645 9.859645 0 0 1 2.65452 4.702293c10.731845 32.612673 20.705255 59.840462 48.577713 82.328037s65.11158 37.390808 101.85772 31.285413c43.496204-7.205125 87.750842-34.850054 103.336666-77.73951 4.853979-13.272599 3.337111-32.726438 17.595675-40.310781a24.269896 24.269896 0 0 1 8.229011-2.00985c21.160316-3.299189 37.921712-18.771248 47.174611-37.542496a80.962856 80.962856 0 0 0 8.494463-42.661926c-1.441025-17.368144-19.415917-29.199719-30.906195-23.587305z\" fill=\"#FCD6BD\" p-id=\"16375\"></path><path d=\"M636.629708 254.075473v0.758434c12.703774 60.181758-66.173388 87.219939-112.324112 90.594971-26.962338 2.085694-54.03844-4.285154-79.635596-14.18272a348.197163 348.197163 0 0 1-51.421842-25.445469c-9.252898-5.460727-47.970966-31.816317-54.796875-37.163278a0.530904 0.530904 0 0 1 0.22753-0.910121A197.572122 197.572122 0 0 0 432.307521 219.490871c35.077584-32.840203 66.66637-48.539792 107.963116-43.306595 42.548161 5.384883 86.613191 33.560715 96.359071 77.891197z\" fill=\"#783E2B\" p-id=\"16376\"></path><path d=\"M415.128986 628.286931c-0.682591 32.953968 15.168685 65.33911 41.372588 89.419398a175.463763 175.463763 0 0 0 50.208347 30.754509c4.171388 1.706477 20.781098 6.408769 7.015517 16.913083-12.097026 9.252898-41.713884 77.28445-41.713884 77.28445s-55.934526-49.867052-63.139651-59.082028c-12.514165-16.040884-22.753027-29.389327-33.788246-46.150724a174.705329 174.705329 0 0 1-19.908899-46.94708s44.595934-26.848572 52.218198-43.230752\" fill=\"#FFFFFF\" p-id=\"16377\"></path><path d=\"M607.581676 628.173166c0.682591 32.953968-14.713624 65.452876-40.765841 89.533163a176.184276 176.184276 0 0 1-50.246269 30.754509c-4.133467 1.706477-18.392031 10.238862-4.626449 20.743176 12.097026 9.252898 35.418879 75.843425 35.41888 75.843425s59.916306-52.294041 67.121431-61.509017c12.552087-16.040884 22.753027-29.389327 33.788246-46.150724 13.272599-20.060586 16.154649-46.94708 16.154649-46.94708S633.520127 663.629967 614.331741 647.247787\" fill=\"#FFFFFF\" p-id=\"16378\"></path><path d=\"M657.827945 671.21431l-45.126838-42.131023a4.43684 4.43684 0 0 0-7.584342 3.223346l0.606747 391.579602h74.099026l12.893382-106.180795L648.461282 854.755398l73.378514-51.421842z\" fill=\"#1E507D\" p-id=\"16379\"></path><path d=\"M200.681702 758.168796c57.944377-58.361515 182.327593-100.98552 183.730697-98.027627 24.952487 52.028589-17.785283 134.318705 7.356812 186.271452a12.552087 12.552087 0 0 1-2.42699 15.585824c-5.119431 5.498648-11.035218 112.892938-16.230493 161.88779H132.157168c3.564641-45.885272 26.317668-223.207199 68.524534-265.717439z\" fill=\"#35658F\" p-id=\"16380\"></path><path d=\"M365.982446 670.683406l44.520091-41.713884a4.43684 4.43684 0 0 1 7.584342 3.223345l-0.45506 387.142762a4.398919 4.398919 0 0 1-4.398919 4.398919H347.362886a4.398919 4.398919 0 0 1-4.398919-3.640484l-12.286635-100.720069a4.398919 4.398919 0 0 1 0.758434-2.995815l40.614154-58.02022a4.398919 4.398919 0 0 0-1.099729-6.143317l-66.666371-46.71955a4.398919 4.398919 0 0 1-1.441025-5.53657l62.153687-127.985779a4.664371 4.664371 0 0 1 0.985964-1.289338z\" fill=\"#1E507D\" p-id=\"16381\"></path></svg>'];const starList=['<svg t=\"1690553545689\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"17387\" width=\"200\" height=\"200\"><path d=\"M231.866858 924.559197l99.623975-315.315432L76.893274 391.534348l320.43094 0L512.050142 98.1586l128.641869 293.375747 306.414715 0L706.971553 609.097432 809.674657 925.850609 513.64343 727.408001 231.866858 924.559197z\" fill=\"#14AEED\" p-id=\"17388\"></path></svg>','<svg t=\"1690553555548\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"17527\" width=\"200\" height=\"200\"><path d=\"M957.111079 403.480424c-3.927449-11.669784-14.447037-19.86442-26.723641-20.816095L647.68068 360.749204 540.183388 84.126003c-4.586458-11.803837-15.951297-19.579941-28.614711-19.579941s-24.02723 7.776104-28.614711 19.579941L375.458719 360.749204l-282.708803 21.915126c-12.276604 0.951675-22.796192 9.146311-26.723641 20.816095-3.927449 11.669784-0.50142 24.557302 8.701173 32.737612l217.547735 193.358823-67.980277 291.298436c-2.848884 12.20702 2.009773 24.919553 12.273535 32.114418 10.264784 7.195889 23.87271 7.42818 34.375925 0.586354l240.624313-156.709111 240.625336 156.709111c5.099135 3.320629 10.92891 4.974291 16.752546 4.974291 6.173606 0 12.342096-1.858324 17.623379-5.561669 10.263761-7.194866 15.122419-19.907399 12.273535-32.114418l-67.980277-291.299459L948.409906 436.218036C957.613522 428.037726 961.037505 415.150208 957.111079 403.480424z\" fill=\"#F8AE00\" p-id=\"17528\"></path></svg>','<svg t=\"1690553563899\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"17667\" width=\"200\" height=\"200\"><path d=\"M529.066667 162.133333l83.626666 169.386667a42.666667 42.666667 0 0 0 32.213334 23.466667L832 382.08a42.666667 42.666667 0 0 1 23.68 72.96l-135.253333 132.053333a42.666667 42.666667 0 0 0-12.373334 37.76L739.84 810.666667a42.666667 42.666667 0 0 1-62.08 45.013333L510.506667 768a42.666667 42.666667 0 0 0-39.68 0l-167.253334 87.893333A42.666667 42.666667 0 0 1 241.493333 810.666667l32-186.24a42.666667 42.666667 0 0 0-12.373333-37.76L125.866667 455.04A42.666667 42.666667 0 0 1 149.333333 382.08l186.88-27.093333a42.666667 42.666667 0 0 0 32.213334-23.466667L452.266667 162.133333a42.666667 42.666667 0 0 1 76.8 0z\" fill=\"#FF3355\" p-id=\"17668\"></path></svg>','<svg t=\"1690553570735\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"17807\" width=\"200\" height=\"200\"><path d=\"M512 181.12l83.626667 169.386667a85.333333 85.333333 0 0 0 64 46.72l187.093333 27.306666-135.466667 131.84a85.333333 85.333333 0 0 0-24.533333 75.733334l31.786667 186.24-167.253334-87.893334a85.333333 85.333333 0 0 0-79.36 0l-167.466666 87.893334 32-186.24a85.333333 85.333333 0 0 0-24.533334-75.733334L177.066667 424.32l186.88-27.093333a85.333333 85.333333 0 0 0 64-46.72L512 181.12m0-42.666667a42.666667 42.666667 0 0 0-38.4 23.68l-83.626667 169.386667a42.666667 42.666667 0 0 1-32.213333 23.466667L170.666667 382.08a42.666667 42.666667 0 0 0-23.466667 72.96l135.253333 132.053333a42.666667 42.666667 0 0 1 12.373334 37.76L262.826667 810.666667a42.666667 42.666667 0 0 0 42.666666 50.133333 43.733333 43.733333 0 0 0 20.053334-5.12L492.16 768a42.666667 42.666667 0 0 1 39.68 0l167.253333 87.893333a43.733333 43.733333 0 0 0 20.053334 5.12 42.666667 42.666667 0 0 0 42.666666-50.133333l-32-186.24a42.666667 42.666667 0 0 1 12.373334-37.76l135.253333-132.053333A42.666667 42.666667 0 0 0 853.333333 382.08l-186.88-27.093333a42.666667 42.666667 0 0 1-32.213333-23.466667L550.4 162.133333A42.666667 42.666667 0 0 0 512 138.453333z\" fill=\"#FF0000\" p-id=\"17808\"></path></svg>','<svg t=\"1690553587731\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"17947\" width=\"200\" height=\"200\"><path d=\"M435.3 97.2c-1.7-1.5-1.8-4.2-0.3-5.9l30.5-33.6c1.5-1.7 4.2-1.8 5.9-0.3 1.7 1.5 1.8 4.2 0.3 5.9l-30.5 33.6c-1.6 1.7-4.2 1.8-5.9 0.3z\" fill=\"#EF8218\" p-id=\"17948\"></path><path d=\"M467.4 95.6l-33.6-30.5c-1.7-1.5-1.8-4.2-0.3-5.9 1.6-1.7 4.2-1.8 5.9-0.3L473 89.4c1.7 1.5 1.8 4.2 0.3 5.9-1.6 1.8-4.2 1.9-5.9 0.3z\" fill=\"#EF8218\" p-id=\"17949\"></path><path d=\"M325.593656 64.620169a12.2 2.3 42.228 1 0 3.09158-3.406191 12.2 2.3 42.228 1 0-3.09158 3.406191Z\" fill=\"#E61F19\" p-id=\"17950\"></path><path d=\"M321.514555 74.781928a12.2 2.3 12.228 1 0 0.974291-4.495638 12.2 2.3 12.228 1 0-0.974291 4.495638Z\" fill=\"#E61F19\" p-id=\"17951\"></path><path d=\"M310.690332 87.216681a2.3 12.2 72.232 1 0 23.236119-7.445989 2.3 12.2 72.232 1 0-23.236119 7.445989Z\" fill=\"#E61F19\" p-id=\"17952\"></path><path d=\"M319.874 101.797759a2.3 12.2 42.228 1 0 16.398814-18.06762 2.3 12.2 42.228 1 0-16.398814 18.06762Z\" fill=\"#E61F19\" p-id=\"17953\"></path><path d=\"M335.119225 109.893199a2.3 12.2 12.228 1 0 5.16798-23.846425 2.3 12.2 12.228 1 0-5.16798 23.846425Z\" fill=\"#E61F19\" p-id=\"17954\"></path><path d=\"M346.427506 98.409723a12.2 2.3 72.232 1 0 4.380579-1.403752 12.2 2.3 72.232 1 0-4.380579 1.403752Z\" fill=\"#E61F19\" p-id=\"17955\"></path><path d=\"M356.462821 93.55854a12.2 2.3 42.228 1 0 3.09158-3.406191 12.2 2.3 42.228 1 0-3.09158 3.406191Z\" fill=\"#E61F19\" p-id=\"17956\"></path><path d=\"M362.704151 84.479027a12.2 2.3 12.228 1 0 0.974291-4.495637 12.2 2.3 12.228 1 0-0.974291 4.495637Z\" fill=\"#E61F19\" p-id=\"17957\"></path><path d=\"M351.183638 75.025855a2.3 12.2 72.232 1 0 23.236119-7.445989 2.3 12.2 72.232 1 0-23.236119 7.445989Z\" fill=\"#E61F19\" p-id=\"17958\"></path><path d=\"M348.887159 70.995475a2.3 12.2 42.228 1 0 16.398814-18.067621 2.3 12.2 42.228 1 0-16.398814 18.067621Z\" fill=\"#E61F19\" p-id=\"17959\"></path><path d=\"M344.756835 68.733839a2.3 12.2 12.228 1 0 5.167979-23.846425 2.3 12.2 12.228 1 0-5.167979 23.846425Z\" fill=\"#E61F19\" p-id=\"17960\"></path><path d=\"M334.301699 57.790623a12.2 2.3 72.232 1 0 4.38058-1.403752 12.2 2.3 72.232 1 0-4.38058 1.403752Z\" fill=\"#E61F19\" p-id=\"17961\"></path><path d=\"M248.038644 37.844228a14.8 14.8 0 1 0 19.893643-21.918097 14.8 14.8 0 1 0-19.893643 21.918097Z\" fill=\"#2C65AF\" p-id=\"17962\"></path><path d=\"M232.1 143.9c-1.5 1.7-4.2 1.8-5.9 0.3l-33.6-30.5c-1.7-1.5-1.8-4.2-0.3-5.9 1.6-1.7 4.2-1.8 5.9-0.3l33.6 30.5c1.7 1.6 1.8 4.2 0.3 5.9z\" fill=\"#2C65AF\" p-id=\"17963\"></path><path d=\"M230.5 111.8L200 145.5c-1.5 1.7-4.2 1.8-5.9 0.3-1.7-1.5-1.8-4.2-0.3-5.9l30.5-33.6c1.5-1.7 4.2-1.8 5.9-0.3 1.7 1.5 1.8 4.1 0.3 5.8z\" fill=\"#2C65AF\" p-id=\"17964\"></path><path d=\"M147.4 246.6c-14 15.4-37.8 16.7-53 2.8-15.2-13.9-16.3-37.6-2.3-53 14-15.4 37.8-16.7 53-2.8 15.2 13.8 16.2 37.6 2.3 53z m-48-43.6c-10.3 11.4-9.5 28.8 1.7 39s28.7 9.2 39-2.1c10.3-11.3 9.5-28.8-1.7-39s-28.8-9.2-39 2.1z\" fill=\"#E62A52\" p-id=\"17965\"></path><path d=\"M544.1 598.3m-410.1 0a410.1 410.1 0 1 0 820.2 0 410.1 410.1 0 1 0-820.2 0Z\" fill=\"#61C3E6\" p-id=\"17966\"></path><path d=\"M563.7 364.1L628 494.4c3.2 6.5 9.3 11 16.5 12l143.7 20.9c18 2.6 25.1 24.7 12.2 37.4L696.4 666c-5.2 5.1-7.5 12.3-6.3 19.4l24.6 143.1c3.1 17.9-15.7 31.6-31.8 23.1L554.4 784c-6.4-3.4-14-3.4-20.4 0l-128.7 67.6c-16.1 8.5-34.9-5.2-31.8-23.1l24.6-143.1c1.2-7.1-1.1-14.3-6.3-19.4l-104-101.4c-13-12.7-5.8-34.8 12.2-37.4l143.7-20.9c7.1-1 13.3-5.5 16.5-12l64.3-130.2c7.9-16.3 31.2-16.3 39.2 0z\" fill=\"#FC5454\" p-id=\"17967\"></path><path d=\"M633.2 867.7c-5.6 0-11.3-1.4-16.6-4.1L488.1 796c-2.4-1.2-5.3-1.2-7.8 0l-128.5 67.6c-12.1 6.4-26.3 5.3-37.4-2.7-11-8-16.4-21.3-14.1-34.7L324.9 683c0.5-2.7-0.4-5.5-2.4-7.4l-104-101.3c-9.7-9.5-13.2-23.5-9-36.4 4.2-12.9 15.2-22.2 28.6-24.2l143.7-20.9c2.7-0.4 5.1-2.1 6.2-4.6L452.3 358c6-12.2 18.2-19.8 31.8-19.8 13.6 0 25.8 7.6 31.8 19.8l64.3 130.2c1.2 2.4 3.6 4.2 6.2 4.6l143.7 20.9c13.5 2 24.4 11.2 28.6 24.2 4.2 12.9 0.8 26.9-9 36.4L646 675.7c-2 1.9-2.9 4.7-2.4 7.4l24.6 143.1c2.3 13.4-3.1 26.7-14.1 34.7-6.3 4.6-13.6 6.8-20.9 6.8z m-149-99.7c5.6 0 11.4 1.4 16.5 4.1l128.5 67.6c4.1 2.2 7.5 0.3 8.8-0.7 1.2-0.9 4.1-3.5 3.3-8.1l-24.6-143.1c-2-11.5 1.8-23.2 10.2-31.4l104-101.4c3.4-3.3 2.6-7.1 2.1-8.5s-2.1-5-6.7-5.6L582.6 520c-11.6-1.7-21.6-9-26.7-19.4l-64.2-130.3c-2.1-4.2-5.9-4.6-7.5-4.6s-5.4 0.4-7.5 4.6l-64.2 130.2c-5.2 10.5-15.2 17.7-26.7 19.4l-143.7 20.9c-4.6 0.7-6.2 4.2-6.7 5.6-0.5 1.5-1.2 5.3 2.1 8.5l104 101.4c8.4 8.1 12.2 19.9 10.2 31.4l-24.6 143.2c-0.8 4.6 2.1 7.2 3.3 8.1s4.6 2.8 8.8 0.7L467.7 772c5.2-2.7 10.9-4 16.5-4z\" fill=\"\" p-id=\"17968\"></path><path d=\"M124.8 414.1c-2.2 0-4.5-0.5-6.5-1.7-6.6-3.6-9-11.9-5.3-18.5 15.2-27.6 33.6-53.6 54.5-77.1 20.9-23.5 44.5-44.8 70-63.1 6.1-4.3 14.6-3 19 3.1s3 14.6-3.1 19c-47.9 34.3-88.2 79.7-116.6 131.2-2.5 4.6-7.2 7.1-12 7.1z\" fill=\"\" p-id=\"17969\"></path><path d=\"M484.2 1022c-57.2 0-112.7-11.2-164.9-33.3-50.5-21.3-95.8-51.9-134.7-90.8-38.9-38.9-69.5-84.2-90.8-134.7C71.7 711 60.5 655.5 60.5 598.3c0-46.4 7.4-92 22.2-135.6 2.4-7.1 10.1-10.9 17.2-8.5 7.1 2.4 10.9 10.1 8.5 17.2-13.7 40.7-20.7 83.4-20.7 126.9 0 218.6 177.9 396.5 396.5 396.5 71.9 0 142.3-19.4 203.6-56.2 6.4-3.9 14.8-1.8 18.6 4.7 3.9 6.4 1.8 14.8-4.7 18.6-65.4 39.4-140.7 60.1-217.5 60.1z\" fill=\"\" p-id=\"17970\"></path><path d=\"M740.3 932.3c-4 0-7.9-1.7-10.6-5.1-4.7-5.9-3.7-14.4 2.1-19.1 38.1-30.5 70-67.4 94.7-109.4 3.8-6.5 12.1-8.6 18.6-4.8 6.5 3.8 8.6 12.1 4.8 18.6-26.3 44.9-60.4 84.2-101.1 116.9-2.5 1.9-5.5 2.9-8.5 2.9z\" fill=\"\" p-id=\"17971\"></path><path d=\"M863.2 769c-1.7 0-3.5-0.3-5.2-1-7-2.9-10.2-10.8-7.3-17.8 20-48.2 30.1-99.3 30.1-151.9 0-218.6-177.9-396.5-396.5-396.5-53.6 0-105.5 10.5-154.4 31.2-6.9 2.9-14.9-0.3-17.8-7.2-2.9-7 0.3-14.9 7.2-17.8 52.3-22.1 107.7-33.3 164.9-33.3s112.7 11.2 164.9 33.3c50.5 21.3 95.8 51.9 134.7 90.8 38.9 38.9 69.5 84.2 90.8 134.7 22.1 52.3 33.3 107.7 33.3 164.9 0 56.2-10.9 110.9-32.2 162.4-2.1 5.1-7.2 8.2-12.5 8.2z\" fill=\"\" p-id=\"17972\"></path><path d=\"M684.3 350c-3.3 0-6.6-1.2-9.3-3.6-13.9-12.9-28.7-24.9-44.1-35.6-6.1-4.3-7.7-12.7-3.4-18.9 4.3-6.1 12.7-7.7 18.9-3.4 16.5 11.4 32.3 24.2 47.1 38.1 5.5 5.1 5.8 13.7 0.7 19.2-2.7 2.8-6.2 4.2-9.9 4.2zM775.1 473.2c-5 0-9.8-2.8-12.2-7.6-14-28.6-31.2-55.5-51.2-80-4.7-5.8-3.9-14.3 1.9-19.1 5.8-4.7 14.3-3.9 19.1 1.9 21.3 26 39.7 54.7 54.6 85.2 3.3 6.7 0.5 14.9-6.2 18.1-1.9 1-3.9 1.5-6 1.5z\" fill=\"#FFFFFF\" p-id=\"17973\"></path></svg>','<svg t=\"1690553598301\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"18118\" width=\"200\" height=\"200\"><path d=\"M768 640l64 352-320-164.128L192 992l64-352-224-256 331.104-35.2L512 32l148.864 316.8L992 384z\" fill=\"#3399FF\" p-id=\"18119\"></path></svg>','<svg t=\"1690553608487\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"18444\" width=\"200\" height=\"200\"><path d=\"M688.810667 846.506667c-6.826667 0-13.653333-0.682667-20.48-2.730667l-146.773334-40.96c-6.144-2.048-12.970667-2.048-19.114666 0l-146.773334 40.96c-22.528 6.144-46.421333 2.048-64.853333-11.605333-19.114667-13.653333-30.037333-34.816-31.402667-58.026667L253.269333 621.226667c0-6.144-2.048-12.288-6.144-17.749334L163.157333 476.501333c-12.970667-19.114667-16.384-43.008-8.874666-65.536 7.509333-22.528 23.893333-39.594667 45.738666-47.786666l142.677334-53.248c6.144-2.048 10.922667-6.144 15.018666-10.922667l94.890667-119.466667c14.336-18.432 36.181333-28.672 59.392-28.672 23.210667 0 45.056 10.24 59.392 28.672l94.890667 119.466667c4.096 4.778667 9.557333 8.874667 15.018666 10.922667l142.677334 53.248c21.845333 8.192 38.229333 25.258667 45.738666 47.786666 7.509333 22.528 4.096 46.421333-8.874666 65.536l-83.968 126.976c-3.413333 5.461333-5.461333 11.605333-6.144 17.749334l-6.144 152.234666c-0.682667 23.210667-12.288 44.373333-31.402667 58.026667-12.970667 9.557333-28.672 15.018667-44.373333 15.018667zM512 760.490667c6.826667 0 13.653333 0.682667 20.48 2.730666l146.773333 40.96c10.24 2.730667 21.162667 0.682667 30.037334-5.461333 8.874667-6.144 13.653333-16.384 14.336-26.624l6.144-152.234667c0.682667-13.653333 4.778667-27.306667 12.288-38.912L826.026667 453.973333c6.144-8.874667 7.509333-19.797333 4.096-30.037333-3.413333-10.24-10.922667-18.432-21.162667-21.845333L666.965333 348.16c-12.970667-4.778667-24.576-12.970667-32.768-23.893333L539.306667 204.8c-6.826667-8.192-16.384-12.970667-27.306667-12.970667s-20.48 4.778667-27.306667 12.970667L389.802667 324.266667c-8.874667 10.922667-19.797333 19.114667-32.768 23.893333l-142.677334 53.248c-10.24 4.096-17.749333 11.605333-21.162666 21.845333-3.413333 10.24-2.048 21.162667 4.096 30.037334L281.258667 580.266667c7.509333 11.605333 12.288 25.258667 12.288 38.912l6.826666 152.234666c0.682667 10.922667 5.461333 20.48 14.336 26.624s19.797333 8.192 30.037334 5.461334l146.773333-40.96c6.826667-1.365333 13.653333-2.048 20.48-2.048z\" fill=\"#4D4D4D\" p-id=\"18445\"></path><path d=\"M550.229333 326.997333l46.421334 58.709334c5.461333 6.826667 12.970667 12.288 21.162666 15.018666l69.632 25.941334c29.354667 10.922667 40.96 46.421333 23.210667 72.362666l-40.96 62.122667c-4.778667 7.509333-7.509333 15.701333-8.192 24.576l-3.413333 74.410667c-1.365333 31.402667-31.402667 53.248-61.44 45.056l-71.68-19.797334c-8.874667-2.048-17.749333-2.048-25.941334 0l-71.68 19.797334c-30.037333 8.192-60.074667-13.653333-61.44-45.056l-3.413333-74.410667c-0.682667-8.874667-3.413333-17.749333-8.192-24.576l-40.96-62.122667c-17.066667-25.941333-6.144-61.44 23.210667-72.362666l69.632-25.941334c8.192-3.413333 15.701333-8.192 21.162666-15.018666l46.421334-58.709334c19.797333-24.576 56.661333-24.576 76.458666 0z\" fill=\"#FFE55C\" p-id=\"18446\"></path></svg>','<svg t=\"1690553616467\" class=\"icon\" viewBox=\"0 0 1034 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"18597\" width=\"200\" height=\"200\"><path d=\"M615.12666 101.3l95.4 193.5c10 20.3 29.4 34.3 51.7 37.6l213.5 31c56.3 8.2 78.8 77.4 38 117.1L859.32666 631.1a68.751 68.751 0 0 0-19.8 60.8l36.4 212.6c9.6 56.1-49.2 98.9-99.6 72.4L585.52666 876.4a68.75 68.75 0 0 0-63.9 0l-191 100.4c-50.4 26.5-109.2-16.3-99.6-72.4l36.4-212.6c3.8-22.3-3.5-45-19.8-60.8L93.32666 480.4c-40.7-39.7-18.3-108.9 38-117.1l213.5-31c22.3-3.3 41.7-17.3 51.7-37.6l95.4-193.5c25.3-50.9 98.1-50.9 123.2 0.1z\" fill=\"#5ECEF4\" p-id=\"18598\"></path><path d=\"M180.22666 852.6c-0.8 0-1.6-0.1-2.5-0.2-7.8-1.3-13-8.7-11.7-16.5l10.3-60c1.3-7.8 8.7-13 16.5-11.7 7.8 1.3 13 8.7 11.7 16.5l-10.3 60c-1.2 7-7.3 11.9-14 11.9zM741.52666 994c-13.6 0-27.3-3.3-39.9-9.9l-184-96.7c-16.6-8.7-36.5-8.7-53.2 0l-184 96.7c-29.1 15.3-63.6 12.8-90.2-6.5s-39.6-51.4-34.1-83.8c1.3-7.8 8.7-13 16.5-11.7 7.8 1.3 13 8.7 11.7 16.5-3.8 21.9 4.7 42.8 22.7 55.9s40.5 14.7 60.1 4.3l184-96.7c25-13.1 54.8-13.1 79.7 0l184 96.7c19.6 10.3 42.2 8.7 60.1-4.3s26.5-33.9 22.7-55.9l-35.1-204.8c-4.7-27.8 4.5-56.1 24.6-75.9 5.7-5.5 14.7-5.4 20.2 0.3s5.4 14.7-0.3 20.2c-13.5 13.1-19.6 32-16.5 50.6l35.1 204.8c5.5 32.4-7.5 64.5-34.1 83.8-14.8 10.9-32.3 16.4-50 16.4zM838.12666 602.5c-3.7 0-7.4-1.4-10.2-4.3-5.5-5.7-5.4-14.7 0.3-20.2l71.1-69.3c5.7-5.5 14.7-5.4 20.2 0.3s5.4 14.7-0.3 20.2L848.12666 598.5c-2.8 2.7-6.4 4-10 4zM946.02666 497.3c-3.7 0-7.4-1.4-10.2-4.3-5.5-5.7-5.4-14.7 0.3-20.2 15.9-15.5 21.3-37.4 14.5-58.5-6.9-21.1-24.1-35.7-46.1-38.9l-205.7-29.9c-27.9-4.1-52-21.6-64.5-46.9l-92-186.3c-9.8-19.9-29-31.8-51.2-31.8-22.3 0-41.4 11.9-51.2 31.8l-44.9 91c-3.5 7.1-12.1 10-19.1 6.5-7.1-3.5-10-12.1-6.5-19.1l44.9-91c14.6-29.5 44-47.8 76.8-47.8s62.3 18.3 76.8 47.8l92 186.4c8.3 16.9 24.4 28.6 43 31.2l205.7 29.9c32.5 4.7 59 27.1 69.2 58.3s1.8 64.9-21.7 87.9c-2.9 2.6-6.5 3.9-10.1 3.9zM201.52666 728.1c-0.8 0-1.6-0.1-2.5-0.2-7.8-1.3-13-8.7-11.7-16.5l3.9-22.5c3.2-18.5-3-37.4-16.5-50.6l-148.8-145C2.42666 470.3-5.87334 436.7 4.22666 405.4c10.2-31.2 36.7-53.6 69.2-58.3L279.12666 317.2c18.6-2.7 34.7-14.4 43-31.2l16.6-33.5c3.5-7.1 12.1-10 19.1-6.5 7.1 3.5 10 12.1 6.5 19.1l-16.6 33.5a85.818 85.818 0 0 1-64.5 46.9L77.72666 375.4c-22 3.2-39.3 17.8-46.2 38.9-6.9 21.1-1.5 43.1 14.5 58.5l148.8 145c20.2 19.7 29.4 48 24.6 75.9l-3.9 22.5c-1.1 7-7.2 11.9-14 11.9z\" fill=\"#231815\" p-id=\"18599\"></path><path d=\"M475.62666 256.3c-2.1 0-4.3-0.5-6.3-1.5-7.1-3.5-10-12.1-6.5-19.1l13.6-27.5c3.5-7.1 12.1-10 19.1-6.5 7.1 3.5 10 12.1 6.5 19.1l-13.6 27.5c-2.4 5.1-7.5 8-12.8 8zM363.42666 388c-7 0-13.1-5.1-14.1-12.2-1.1-7.8 4.3-15 12.1-16.2 15.1-2.2 33.8-9.2 46.4-17.5 4.8-3.1 8.7-7.7 11.4-13.1l26.8-54.3c3.5-7.1 12.1-10 19.1-6.5 7.1 3.5 10 12.1 6.5 19.1l-26.8 54.3c-5 10-12.3 18.4-21.4 24.3-16.1 10.5-38.8 19-57.9 21.8-0.7 0.2-1.4 0.3-2.1 0.3z\" fill=\"#FFFFFF\" p-id=\"18600\"></path><path d=\"M723.32666 83.1c-6.2 3.2-9.4 9.5-7 14.1l45.9 88.9c2.3 4.6 9.3 5.7 15.5 2.5 6.2-3.2 9.4-9.5 7-14.1l-45.9-88.9c-2.4-4.7-9.3-5.8-15.5-2.5z\" fill=\"#7CCBE2\" p-id=\"18601\"></path><path d=\"M697.82666 163c3.2 6.2 9.5 9.4 14.1 7l88.9-45.9c4.6-2.3 5.7-9.3 2.5-15.5-3.2-6.2-9.5-9.4-14.1-7l-88.9 45.9c-4.6 2.4-5.7 9.3-2.5 15.5z\" fill=\"#7CCBE2\" p-id=\"18602\"></path><path d=\"M114.22666 252.7c-3.9 2-5.9 6-4.4 8.9l28.8 55.8c1.5 2.9 5.8 3.5 9.8 1.5 3.9-2 5.9-6 4.4-8.9l-28.8-55.8c-1.5-2.8-5.9-3.5-9.8-1.5z\" fill=\"#DAB647\" p-id=\"18603\"></path><path d=\"M98.22666 302.9c2 3.9 6 5.9 8.9 4.4l55.8-28.8c2.9-1.5 3.5-5.8 1.5-9.8-2-3.9-6-5.9-8.9-4.4l-55.8 28.8c-2.8 1.5-3.5 5.9-1.5 9.8z\" fill=\"#DAB647\" p-id=\"18604\"></path><path d=\"M913.17376 863.1122a24.4 24.4 0 1 0 34.506209-34.507414 24.4 24.4 0 1 0-34.506209 34.507414Z\" fill=\"#EC7677\" p-id=\"18605\"></path><path d=\"M893.32666 280.6c-16.9 0-30.6-13.5-30.6-30.2s13.7-30.2 30.6-30.2 30.5 13.5 30.5 30.2-13.7 30.2-30.5 30.2z m0-52.5c-12.4 0-22.4 10-22.4 22.2s10.1 22.2 22.4 22.2 22.4-10 22.4-22.2-10-22.2-22.4-22.2z\" fill=\"#E62A52\" p-id=\"18606\"></path><path d=\"M209.12666 165.9c-16.7 0-30.3-13.5-30.3-30s13.6-30 30.3-30 30.3 13.5 30.3 30-13.6 30-30.3 30z m0-52.2c-12.3 0-22.3 9.9-22.3 22.1s10 22.1 22.3 22.1 22.3-9.9 22.3-22.1-10-22.1-22.3-22.1z\" fill=\"#D9554E\" p-id=\"18607\"></path></svg>'];const flagList=['<svg t=\"1690553676407\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"20518\" width=\"200\" height=\"200\"><path d=\"M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z\" fill=\"#E8E8E8\" p-id=\"20519\"></path><path d=\"M876.8 603.2z\" fill=\"\" p-id=\"20520\"></path><path d=\"M438.4 153.6l-17.6 3.2c-97.6 22.4-168-3.2-203.2-22.4V496c49.6 46.4 144 51.2 289.6 17.6 137.6-32 283.2 17.6 337.6 40h1.6V164.8c-179.2-62.4-291.2-36.8-408-11.2z\" fill=\"#F2385A\" p-id=\"20521\"></path><path d=\"M865.6 139.2C672 68.8 548.8 96 430.4 123.2l-17.6 3.2c-90.208 19.552-153.568-4.704-183.44-20.976 16.768-9.856 28.144-27.872 28.144-48.72C257.504 25.392 232.112 0 200.8 0S144.096 25.392 144.096 56.704c0 25.424 16.848 46.688 39.904 53.872V1024h32V536c60.8 38.4 160 40 297.6 8 158.4-36.8 337.6 46.4 339.2 46.4l22.4 11.2V142.4l-9.6-3.2z m-19.2 414.4h-1.6c-54.4-22.4-200-72-337.6-40-145.6 33.6-240 28.8-289.6-17.6V134.4c35.2 19.2 105.6 44.8 203.2 22.4l17.6-3.2c116.8-25.6 228.8-51.2 408 11.2v388.8z\" fill=\"\" p-id=\"20522\"></path><path d=\"M200.8 56.704m-23.872 0a23.872 23.872 0 1 0 47.744 0 23.872 23.872 0 1 0-47.744 0Z\" fill=\"#F2385A\" p-id=\"20523\"></path></svg>','<svg t=\"1690553691277\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"20664\" width=\"200\" height=\"200\"><path d=\"M416.085333 917.077333c-168.874667 0-296.192-69.376-296.192-161.450666 0-48.469333 34.901333-91.733333 98.304-121.856 17.066667-8.106667 37.376-0.853333 45.482667 16.213333 8.106667 17.066667 0.853333 37.376-16.213333 45.482667-37.205333 17.664-59.392 40.192-59.392 60.16 0 38.912 86.698667 93.184 227.925333 93.184s227.925333-54.272 227.925333-93.184c0-21.333333-25.685333-45.738667-67.072-63.658667-17.322667-7.509333-25.258667-27.562667-17.749333-44.885333s27.562667-25.258667 44.885333-17.749334c68.778667 29.781333 108.202667 75.861333 108.202667 126.293334 0.085333 92.074667-127.232 161.450667-296.106667 161.450666z\" fill=\"#333C4F\" p-id=\"20665\"></path><path d=\"M905.216 244.309333a34.0736 34.0736 0 0 0-23.210667-22.954666L488.96 108.202667a33.937067 33.937067 0 0 0-28.330667 4.437333c-8.362667 5.546667-13.824 14.506667-14.933333 24.490667l-12.8 111.104-19.968 173.141333-6.144 53.248-29.952 260.437333a34.133333 34.133333 0 0 0 30.037333 37.802667c1.365333 0.170667 2.645333 0.256 3.925334 0.256 17.066667 0 31.829333-12.8 33.877333-30.208l25.685333-222.805333 325.973334 71.936c2.474667 0.512 4.949333 0.768 7.338666 0.768 9.216 0 18.176-3.754667 24.661334-10.581334 8.277333-8.618667 11.349333-20.906667 8.277333-32.426666l-41.045333-152.576 102.997333-120.917334c7.509333-8.789333 10.069333-20.906667 6.656-32zM731.818667 366.421333c-7.338667 8.533333-9.898667 20.138667-6.997334 31.061334l31.061334 115.626666-277.845334-61.269333 30.72-266.837333 303.445334 87.296-80.384 94.122666z\" fill=\"#333C4F\" p-id=\"20666\"></path><path d=\"M524.885333 418.389333l20.565334-178.432 191.317333 55.04-63.573333 74.496 23.296 86.784z\" fill=\"#64EDAC\" p-id=\"20667\"></path></svg>','<svg t=\"1690553703488\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"20806\" width=\"200\" height=\"200\"><path d=\"M609.28 91.601455c-31.557818 0-53.480727-7.912727-98.769455-33.605819l-10.33309-5.911272C434.269091 13.870545 399.546182 0 344.250182 0c-93.090909 0-196.049455 26.810182-196.887273 91.834182-0.465455 42.821818 105.658182 418.443636 133.073455 445.812363 22.062545 22.062545 45.428364 21.038545 78.894545 11.077819 6.330182-1.861818 13.032727-4.189091 20.945455-7.074909l50.594909-19.595637 10.891636-4.002909c23.691636-8.471273 40.96-12.613818 52.130909-12.613818 29.230545 0 50.455273 6.842182 89.832727 28.299636l20.107637 11.310546c66.466909 38.167273 101.376 51.991273 156.718545 51.991272 20.898909 0 45.474909-4.980364 74.24-13.730909 11.496727-3.490909 23.412364-7.540364 35.653818-12.101818 9.634909-3.490909 19.083636-7.168 28.299637-10.938182l28.765091-12.288 41.425454-19.083636L785.687273 28.951273l-53.294546 24.436363-7.633454 3.258182c-11.962182 5.12-24.715636 10.24-37.608728 14.941091-10.705455 3.956364-21.038545 7.447273-30.72 10.379636-20.759273 6.330182-37.515636 9.681455-47.243636 9.681455z m242.176 387.304727l-13.125818 4.980363c-10.705455 3.909818-20.945455 7.447273-30.673455 10.379637-20.712727 6.283636-37.469091 9.681455-47.104 9.681454-29.602909 0-50.920727-6.888727-90.670545-28.532363l-20.293818-11.450182c-65.954909-37.841455-100.817455-51.665455-155.741091-51.665455-21.317818 0-43.938909 4.840727-71.307637 13.917091l-18.059636 6.330182-49.245091 19.083636-12.567273 4.654546-5.492363-15.732364-6.190546-18.804363-12.148363-38.725819-10.705455-35.514181c-5.445818-18.618182-11.170909-38.306909-16.896-58.647273l-21.085091-76.706909c-11.636364-43.287273-21.224727-81.221818-26.158545-102.167273 5.12-1.861818 11.170909-3.723636 18.013091-5.492364A369.105455 369.105455 0 0 1 344.250182 93.090909c29.416727 0 50.455273 6.842182 89.739636 28.485818l19.735273 11.170909c65.768727 38.167273 100.445091 51.944727 155.508364 51.944728 20.945455 0 45.521455-4.933818 74.286545-13.684364 11.543273-3.537455 23.505455-7.586909 35.793455-12.101818l13.079272-4.933818 119.063273 324.933818z\" fill=\"#2CB18D\" p-id=\"20807\"></path><path d=\"M47.848727 188.509091l221.090909 808.401454a36.864 36.864 0 0 0 71.074909-19.316363L118.923636 169.192727a36.864 36.864 0 0 0-71.074909 19.316364z\" fill=\"#2CB18D\" p-id=\"20808\"></path></svg>','<svg t=\"1690553713396\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"20951\" width=\"200\" height=\"200\"><path d=\"M165.16 690.25c-8.61 0-17.16-2.57-24.47-7.56a43.342 43.342 0 0 1-18.88-35.79V107.36c0-14.31 7.06-27.7 18.88-35.79a43.307 43.307 0 0 1 40.19-4.61l693.67 269.77c16.65 6.48 27.63 22.52 27.63 40.4s-10.98 33.93-27.63 40.4L180.89 687.3a43.52 43.52 0 0 1-15.73 2.95z m43.36-519.51v412.77l530.7-206.39-530.7-206.38z\" fill=\"#7373FF\" p-id=\"20952\"></path><path d=\"M165.16 960c-23.94 0-43.35-19.41-43.35-43.35V107.36c0-23.95 19.42-43.35 43.35-43.35s43.35 19.41 43.35 43.35v809.28c0.01 23.95-19.41 43.36-43.35 43.36z\" fill=\"#7373FF\" p-id=\"20953\"></path></svg>','<svg t=\"1690553725843\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"21100\" width=\"200\" height=\"200\"><path d=\"M316.4 1003.7h-66.3c-0.8 0-1.5-0.7-1.5-1.5V44.6c0-19.1 15.6-34.7 34.7-34.7S318 25.5 318 44.6v957.7c-0.1 0.8-0.8 1.4-1.6 1.4z\" fill=\"#83C6EF\" p-id=\"21101\"></path><path d=\"M283.3 9.9c-0.8 0-1.6 0.2-2.5 0.2v993.3c0.8 0.1 1.6 0.3 2.5 0.3 19.1 0 34.7-15.6 34.7-34.7V44.6c-0.1-19.1-15.7-34.7-34.7-34.7z\" fill=\"#429BCF\" p-id=\"21102\"></path><path d=\"M849.2 467.1H517.1V123.6h332.1l-92.4 171.7z\" fill=\"#F9AB10\" p-id=\"21103\"></path><path d=\"M283.3 105.7h352.9v343.5H283.3z\" fill=\"#FDC223\" p-id=\"21104\"></path><path d=\"M635.8 122.2l130 184.1-9.5-17.3 93.5-165.4z\" fill=\"#F9AB10\" p-id=\"21105\"></path><path d=\"M354.8 1011.4h-143l36.8-50h69.3z\" fill=\"#1A7FC0\" p-id=\"21106\"></path><path d=\"M280.8 1011.4h74l-36.9-50h-37.1z\" fill=\"#2D416C\" p-id=\"21107\"></path></svg>','<svg t=\"1690553734686\" class=\"icon\" viewBox=\"0 0 1211 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"21660\" width=\"200\" height=\"200\"><path d=\"M563.2 568.32m-360.106667 0a360.106667 360.106667 0 1 0 720.213334 0 360.106667 360.106667 0 1 0-720.213334 0Z\" fill=\"#E9EAEB\" p-id=\"21661\"></path><path d=\"M430.08 40.96h1.706667-1.706667z m0 0c-22.186667 0-39.253333 18.773333-39.253333 40.96v740.693333h80.213333V81.92c0-22.186667-18.773333-39.253333-40.96-40.96z\" fill=\"#FFFFFF\" p-id=\"21662\"></path><path d=\"M488.106667 839.68h-114.346667V81.92c0-32.426667 25.6-58.026667 58.026667-58.026667 17.066667 0 34.133333 8.533333 44.373333 22.186667L448.853333 68.266667c-5.12-6.826667-10.24-8.533333-17.066666-8.533334-13.653333 0-23.893333 10.24-23.893334 23.893334v723.626666h46.08V136.533333h34.133334v703.146667z\" fill=\"#2A5082\" p-id=\"21663\"></path><path d=\"M247.466667 805.546667h525.653333v34.133333H247.466667z\" fill=\"#2A5082\" p-id=\"21664\"></path><path d=\"M954.026667 401.066667s81.92-100.693333 105.813333-168.96c-107.52 30.72-327.68 18.773333-351.573333 0v302.08c40.96 59.733333 296.96 34.133333 382.293333-15.36-66.56-47.786667-136.533333-117.76-136.533333-117.76z\" fill=\"#A3D4FF\" p-id=\"21665\"></path><path d=\"M841.386667 587.093333c-66.56 0-124.586667-11.946667-145.066667-40.96l-3.413333-5.12v-85.333333h34.133333V529.066667c37.546667 37.546667 233.813333 29.013333 332.8-13.653334-59.733333-46.08-114.346667-100.693333-117.76-102.4l-11.946667-10.24 10.24-11.946666s59.733333-71.68 90.453334-133.12c-92.16 17.066667-240.64 13.653333-305.493334 0v88.746666h-34.133333v-146.773333l27.306667 22.186667c23.893333 13.653333 232.106667 27.306667 336.213333-3.413334l30.72-8.533333-8.533333 29.013333c-20.48 56.32-76.8 133.12-98.986667 162.133334 22.186667 20.48 75.093333 69.973333 124.586667 105.813333l20.48 15.36-22.186667 13.653333c-49.493333 27.306667-163.84 51.2-259.413333 51.2z\" fill=\"#2A5082\" p-id=\"21666\"></path><path d=\"M790.186667 168.96l-80.213334 47.786667v303.786666l15.36 15.36 80.213334-80.213333V201.386667z\" fill=\"#E9EAEB\" p-id=\"21667\"></path><path d=\"M725.333333 559.786667l-32.426666-32.426667v-71.68h34.133333v54.613333l61.44-61.44V204.8l-6.826667-11.946667-63.146666 39.253334-18.773334-29.013334 97.28-58.026666 25.6 51.2v266.24z\" fill=\"#2A5082\" p-id=\"21668\"></path><path d=\"M805.546667 139.946667C727.04 78.506667 452.266667 75.093333 390.826667 136.533333v303.786667c88.746667-37.546667 276.48-51.2 397.653333 0h17.066667V139.946667z\" fill=\"#A3D4FF\" p-id=\"21669\"></path><path d=\"M373.76 465.92V129.706667l5.12-5.12c68.266667-68.266667 349.866667-66.56 436.906667 1.706666l6.826666 5.12v325.973334H785.066667l-3.413334-1.706667c-119.466667-51.2-303.786667-34.133333-384 0l-23.893333 10.24z m218.453333-76.8c68.266667 0 139.946667 10.24 196.266667 32.426667v-273.066667c-78.506667-51.2-317.44-52.906667-380.586667-5.12v271.36c49.493333-15.36 116.053333-25.6 184.32-25.6z\" fill=\"#2A5082\" p-id=\"21670\"></path><path d=\"M453.973333 136.533333h34.133334v238.933334h-34.133334zM805.546667 805.546667h63.146666v34.133333h-63.146666zM901.12 805.546667h32.426667v34.133333h-32.426667zM182.613333 805.546667h32.426667v34.133333h-32.426667z\" fill=\"#2A5082\" p-id=\"21671\"></path><path d=\"M534.186667 822.613333H325.973333v-46.08c0-18.773333 15.36-34.133333 34.133334-34.133333h138.24c18.773333 0 34.133333 15.36 34.133333 34.133333v46.08z\" fill=\"#FFFFFF\" p-id=\"21672\"></path><path d=\"M551.253333 839.68H308.906667v-63.146667c0-29.013333 22.186667-51.2 51.2-51.2h138.24c29.013333 0 51.2 22.186667 51.2 51.2v63.146667z m-208.213333-34.133333h172.373333v-29.013334c0-10.24-6.826667-17.066667-17.066666-17.066666h-138.24c-10.24 0-17.066667 6.826667-17.066667 17.066666v29.013334zM501.76 885.76h206.506667v34.133333H501.76zM295.253333 965.973333h303.786667v34.133334H295.253333zM119.466667 885.76h256v34.133333H119.466667z\" fill=\"#2A5082\" p-id=\"21673\"></path></svg>','<svg t=\"1690553741773\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"21826\" width=\"200\" height=\"200\"><path d=\"M217.19461 155.378673h496.355044v372.266283H217.19461z\" fill=\"#FFC824\" p-id=\"21827\"></path><path d=\"M868.660605 248.445244h-124.088761V155.378673a31.02219 31.02219 0 0 0-31.02219-31.02219H304.677186A93.066571 93.066571 0 0 0 310.26118 93.334292a93.066571 93.066571 0 1 0-124.088761 87.482577V992.97781a31.02219 31.02219 0 0 0 62.044381 0V558.667146h155.110951v93.066571a50.255948 50.255948 0 0 0 0 5.894216 44.05151 44.05151 0 0 0 0 6.204438 25.748418 25.748418 0 0 0 5.894216 8.375991 10.547545 10.547545 0 0 0 1.861332 1.861332 33.193744 33.193744 0 0 0 6.824882 4.653328h2.791997A31.02219 31.02219 0 0 0 434.349941 682.755907h434.310664a31.02219 31.02219 0 0 0 31.02219-31.02219V279.467434a31.02219 31.02219 0 0 0-31.02219-31.02219zM217.19461 62.312102a31.02219 31.02219 0 1 1-31.022191 31.02219 31.02219 31.02219 0 0 1 31.022191-31.02219z m31.02219 124.088761h434.310663v310.221903H248.2168z m319.218338 372.266283L465.372132 603.959544V558.667146zM837.638415 620.711527h-257.173958l145.804295-64.836378 3.412441-2.171553a46.223063 46.223063 0 0 0 6.204438-4.653329 24.197308 24.197308 0 0 0 3.102219-4.653328 23.266643 23.266643 0 0 0 3.102219-5.273773 19.854202 19.854202 0 0 0 0-7.445325A15.511095 15.511095 0 0 0 744.571844 527.644956v-217.155332h93.066571z\" fill=\"#6B400D\" p-id=\"21828\"></path></svg>','<svg t=\"1690553759441\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"22009\" width=\"200\" height=\"200\"><path d=\"M793.6 307.2h-153.6v-51.2c0-28.16-23.04-51.2-51.2-51.2h-230.4V179.2c0-28.16-23.04-51.2-51.2-51.2h-51.2c-28.16 0-51.2 23.04-51.2 51.2v716.8c0 28.16 23.04 51.2 51.2 51.2h51.2c28.16 0 51.2-23.04 51.2-51.2v-230.4h230.4v25.6c0 28.16 23.04 51.2 51.2 51.2h153.6c28.16 0 51.2-23.04 51.2-51.2V358.4c0-28.16-23.04-51.2-51.2-51.2zM307.2 870.4c0 15.36-10.24 25.6-25.6 25.6s-25.6-10.24-25.6-25.6V204.8c0-15.36 10.24-25.6 25.6-25.6s25.6 10.24 25.6 25.6v665.6z m281.6-281.6c0 15.36-10.24 25.6-25.6 25.6h-204.8V256h204.8c15.36 0 25.6 10.24 25.6 25.6v307.2z m204.8 76.8c0 15.36-10.24 25.6-25.6 25.6h-128V358.4h128c15.36 0 25.6 10.24 25.6 25.6v281.6z\" fill=\"#00AAC1\" p-id=\"22010\"></path></svg>'];const weatherList=['<svg t=\"1690592253489\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"1105\" width=\"200\" height=\"200\"><path d=\"M512 512m-332.8 0a332.8 332.8 0 1 0 665.6 0 332.8 332.8 0 1 0-665.6 0Z\" fill=\"#FC9709\" p-id=\"1106\"></path><path d=\"M583.9872 173.312c-15.4112-3.328-25.2928-18.688-21.9648-34.0992l20.4288-94.3616c3.328-15.4112 18.688-25.2928 34.0992-21.9648 15.4112 3.328 25.2928 18.688 21.9648 34.0992l-20.4288 94.3616c-3.328 15.4112-18.688 25.2928-34.0992 21.9648zM371.1488 195.6864c-14.4384 6.3488-31.4368-0.256-37.7856-14.6432l-38.912-88.3712c-6.3488-14.4384 0.256-31.4368 14.6432-37.7856 14.4384-6.3488 31.4368 0.256 37.7856 14.6432l38.9632 88.3712c6.3488 14.4384-0.256 31.4368-14.6944 37.7856zM212.1216 338.8928c-7.936 13.6192-25.5488 18.2784-39.2192 10.3424l-83.456-48.5888c-13.6192-7.936-18.2784-25.5488-10.3424-39.2192 7.936-13.6192 25.5488-18.2784 39.2192-10.3424l83.456 48.5888c13.6192 7.936 18.2784 25.5488 10.3424 39.2192zM167.6288 548.1984c1.5872 15.6672-9.9328 29.7984-25.6512 31.3856l-96.0512 9.728c-15.6672 1.5872-29.7984-9.9328-31.3856-25.6512-1.5872-15.6672 9.9328-29.7984 25.6512-31.3856l96.0512-9.728c15.6672-1.5872 29.7984 9.984 31.3856 25.6512zM254.6688 743.68c10.496 11.776 9.472 29.952-2.2528 40.4992l-71.9872 64.3584c-11.776 10.496-29.952 9.472-40.4992-2.2528-10.496-11.776-9.472-29.952 2.2528-40.4992l71.9872-64.3584c11.776-10.496 30.0032-9.472 40.4992 2.2528zM440.0128 850.688c15.4112 3.328 25.2928 18.688 21.9648 34.0992l-20.4288 94.3616c-3.328 15.4112-18.688 25.2928-34.0992 21.9648-15.4112-3.328-25.2928-18.688-21.9648-34.0992l20.4288-94.3616c3.328-15.4112 18.688-25.2928 34.0992-21.9648zM652.8512 828.3136c14.4384-6.3488 31.4368 0.256 37.7856 14.6432l38.9632 88.3712c6.3488 14.4384-0.256 31.4368-14.6432 37.7856-14.4384 6.3488-31.4368-0.256-37.7856-14.6432l-38.9632-88.3712c-6.4-14.4384 0.2048-31.4368 14.6432-37.7856zM811.8784 685.1072c7.936-13.6192 25.5488-18.2784 39.2192-10.3424l83.456 48.5888c13.6192 7.936 18.2784 25.5488 10.3424 39.2192-7.936 13.6192-25.5488 18.2784-39.2192 10.3424l-83.456-48.5888c-13.6192-7.936-18.2784-25.5488-10.3424-39.2192zM856.3712 475.8016c-1.5872-15.6672 9.9328-29.7984 25.6512-31.3856l96.0512-9.728c15.6672-1.5872 29.7984 9.9328 31.3856 25.6512 1.5872 15.6672-9.9328 29.7984-25.6512 31.3856l-96.0512 9.728c-15.6672 1.5872-29.7984-9.984-31.3856-25.6512zM769.3312 280.32c-10.496-11.776-9.472-29.952 2.2528-40.4992l71.9872-64.3584c11.776-10.496 29.952-9.472 40.4992 2.2528 10.496 11.776 9.472 29.952-2.2528 40.4992l-71.9872 64.3584c-11.776 10.496-30.0032 9.472-40.4992-2.2528z\" fill=\"#FC9709\" p-id=\"1107\"></path></svg>','<svg t=\"1690592260131\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"1256\" width=\"200\" height=\"200\"><path d=\"M466.2784 386.048c-41.9328-115.2-35.0208-236.288 10.0864-340.5312A462.4896 462.4896 0 0 0 397.6704 66.56C158.5152 153.6 35.2256 418.048 122.2656 657.2032s351.488 362.4448 590.592 275.4048c123.9552-45.1072 216.7296-137.8816 265.3184-250.0608-215.8592 37.7856-434.3296-83.3536-511.8976-296.4992z\" fill=\"#FFB612\" p-id=\"1257\"></path></svg>','<svg t=\"1690592267581\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"1406\" width=\"200\" height=\"200\"><path d=\"M394.496 506.2144m-307.2 0a307.2 307.2 0 1 0 614.4 0 307.2 307.2 0 1 0-614.4 0Z\" fill=\"#9FDFFF\" p-id=\"1407\"></path><path d=\"M747.52 710.6048m-271.36 0a271.36 271.36 0 1 0 542.72 0 271.36 271.36 0 1 0-542.72 0Z\" fill=\"#78CCFF\" p-id=\"1408\"></path><path d=\"M250.88 736.2048m-245.76 0a245.76 245.76 0 1 0 491.52 0 245.76 245.76 0 1 0-491.52 0Z\" fill=\"#78CCFF\" p-id=\"1409\"></path><path d=\"M248.32 736.2048h496.64v245.76h-496.64z\" fill=\"#78CCFF\" p-id=\"1410\"></path></svg>','<svg t=\"1690592274478\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"1557\" width=\"200\" height=\"200\"><path d=\"M683.1616 395.1104m-220.672 0a220.672 220.672 0 1 0 441.344 0 220.672 220.672 0 1 0-441.344 0Z\" fill=\"#FC9709\" p-id=\"1558\"></path><path d=\"M726.8352 169.728c-10.24-2.048-16.9984-12.0832-14.9504-22.3232l12.3904-62.8224c2.048-10.24 12.0832-16.9984 22.3232-14.9504 10.24 2.048 16.9984 12.0832 14.9504 22.3232l-12.3904 62.8224c-2.048 10.24-12.0832 16.9984-22.3232 14.9504zM585.984 187.136c-9.472 4.4032-20.8384 0.2048-25.2416-9.2672l-26.88-58.112c-4.4032-9.472-0.2048-20.8384 9.2672-25.2416 9.472-4.4032 20.8384-0.2048 25.2416 9.2672l26.88 58.112c4.4032 9.472 0.256 20.8384-9.2672 25.2416zM482.304 283.9552c-5.12 9.1136-16.7424 12.4416-25.856 7.3216l-55.9104-31.232c-9.1136-5.12-12.4416-16.7424-7.3216-25.856 5.12-9.1136 16.7424-12.4416 25.856-7.3216l55.9104 31.232c9.1136 5.0688 12.3904 16.6912 7.3216 25.856zM455.3216 423.2192a19.10784 19.10784 0 0 1-16.5888 21.1456l-63.5904 7.5776a19.10784 19.10784 0 0 1-21.1456-16.5888 19.10784 19.10784 0 0 1 16.5888-21.1456l63.5904-7.5776c10.3936-1.28 19.8656 6.1952 21.1456 16.5888zM515.328 551.7824c7.1168 7.68 6.656 19.7632-1.024 26.88l-46.9504 43.52a19.06688 19.06688 0 0 1-26.88-1.024c-7.1168-7.68-6.656-19.7632 1.024-26.88l46.9504-43.52c7.68-7.1168 19.7632-6.656 26.88 1.024zM639.4368 620.4928c10.24 2.048 16.9984 12.0832 14.9504 22.3232l-12.3904 62.8224c-2.048 10.24-12.0832 16.9984-22.3232 14.9504-10.24-2.048-16.9984-12.0832-14.9504-22.3232l12.3904-62.8224c2.048-10.24 12.0832-16.9984 22.3232-14.9504zM780.288 603.136c9.472-4.4032 20.8384-0.2048 25.2416 9.2672l26.88 58.112c4.4032 9.472 0.2048 20.8384-9.2672 25.2416-9.472 4.4032-20.8384 0.2048-25.2416-9.2672l-26.88-58.112c-4.4032-9.5232-0.256-20.8896 9.2672-25.2416zM883.968 506.3168c5.12-9.1136 16.7424-12.4416 25.856-7.3216l55.9104 31.232c9.1136 5.12 12.4416 16.7424 7.3216 25.856-5.12 9.1136-16.7424 12.4416-25.856 7.3216l-55.9104-31.232a19.0976 19.0976 0 0 1-7.3216-25.856zM911.0016 367.0016a19.10784 19.10784 0 0 1 16.5888-21.1456l63.5904-7.5776a19.10784 19.10784 0 0 1 21.1456 16.5888 19.10784 19.10784 0 0 1-16.5888 21.1456l-63.5904 7.5776a19.00544 19.00544 0 0 1-21.1456-16.5888zM850.944 238.4384c-7.1168-7.68-6.656-19.7632 1.024-26.88l46.9504-43.52c7.68-7.1168 19.7632-6.656 26.88 1.024 7.1168 7.68 6.656 19.7632-1.024 26.88l-46.9504 43.52a19.06688 19.06688 0 0 1-26.88-1.024z\" fill=\"#FC9709\" p-id=\"1559\"></path><path d=\"M361.8816 548.1984m-280.1152 0a280.1152 280.1152 0 1 0 560.2304 0 280.1152 280.1152 0 1 0-560.2304 0Z\" fill=\"#9FDFFF\" p-id=\"1560\"></path><path d=\"M683.776 734.5664m-247.3984 0a247.3984 247.3984 0 1 0 494.7968 0 247.3984 247.3984 0 1 0-494.7968 0Z\" fill=\"#78CCFF\" p-id=\"1561\"></path><path d=\"M230.9632 757.9136m-224.1024 0a224.1024 224.1024 0 1 0 448.2048 0 224.1024 224.1024 0 1 0-448.2048 0Z\" fill=\"#78CCFF\" p-id=\"1562\"></path><path d=\"M228.608 757.9136h452.8128v224.1024H228.608z\" fill=\"#78CCFF\" p-id=\"1563\"></path></svg>','<svg t=\"1690592280438\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"1710\" width=\"200\" height=\"200\"><path d=\"M672.768 282.5216c-27.648-75.9808-23.0912-155.8016 6.656-224.5632-17.3568 3.0208-34.7136 7.6288-51.9168 13.8752C469.8112 129.2288 388.5056 303.616 445.9008 461.312s231.7824 239.0016 389.4784 181.6064c81.7152-29.7472 142.9504-90.9312 174.9504-164.9152-142.336 24.9344-286.4128-54.9376-337.5616-195.4816z\" fill=\"#FFB612\" p-id=\"1711\"></path><path d=\"M360.5504 548.1984m-280.1152 0a280.1152 280.1152 0 1 0 560.2304 0 280.1152 280.1152 0 1 0-560.2304 0Z\" fill=\"#9FDFFF\" p-id=\"1712\"></path><path d=\"M682.3936 734.5664m-247.3984 0a247.3984 247.3984 0 1 0 494.7968 0 247.3984 247.3984 0 1 0-494.7968 0Z\" fill=\"#78CCFF\" p-id=\"1713\"></path><path d=\"M229.5808 757.9136m-224.1024 0a224.1024 224.1024 0 1 0 448.2048 0 224.1024 224.1024 0 1 0-448.2048 0Z\" fill=\"#78CCFF\" p-id=\"1714\"></path><path d=\"M227.2768 757.9136h452.8128v224.1024H227.2768z\" fill=\"#78CCFF\" p-id=\"1715\"></path></svg>','<svg t=\"1690592289984\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"1862\" width=\"200\" height=\"200\"><path d=\"M402.432 307.968m-286.5152 0a286.5152 286.5152 0 1 0 573.0304 0 286.5152 286.5152 0 1 0-573.0304 0Z\" fill=\"#9FDFFF\" p-id=\"1863\"></path><path d=\"M731.648 498.5856m-253.0816 0a253.0816 253.0816 0 1 0 506.1632 0 253.0816 253.0816 0 1 0-506.1632 0Z\" fill=\"#78CCFF\" p-id=\"1864\"></path><path d=\"M268.4416 522.4448m-229.2224 0a229.2224 229.2224 0 1 0 458.4448 0 229.2224 229.2224 0 1 0-458.4448 0Z\" fill=\"#78CCFF\" p-id=\"1865\"></path><path d=\"M266.0864 522.4448h463.2064v229.2224H266.0864z\" fill=\"#78CCFF\" p-id=\"1866\"></path><path d=\"M294.2464 776.2944c0 42.0864-30.3616 76.1344-67.7888 76.1344S158.72 818.3808 158.72 776.2944c0-42.0864 67.7888-125.44 67.7888-125.44s67.7376 83.4048 67.7376 125.44zM828.2112 776.2944c0 42.0864-30.3616 76.1344-67.7888 76.1344-37.4272 0-67.7888-34.0992-67.7888-76.1344 0-42.0864 67.7888-125.44 67.7888-125.44s67.7888 83.4048 67.7888 125.44z\" fill=\"#9FDFFF\" p-id=\"1867\"></path><path d=\"M565.4528 926.4128c0 42.0864-30.3616 76.1344-67.7888 76.1344-37.4272 0-67.7888-34.0992-67.7888-76.1344s67.7888-125.44 67.7888-125.44 67.7888 83.3536 67.7888 125.44z\" fill=\"#78CCFF\" p-id=\"1868\"></path></svg>','<svg t=\"1690592297041\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"2015\" width=\"200\" height=\"200\"><path d=\"M402.432 307.968m-286.5152 0a286.5152 286.5152 0 1 0 573.0304 0 286.5152 286.5152 0 1 0-573.0304 0Z\" fill=\"#9FDFFF\" p-id=\"2016\"></path><path d=\"M731.648 498.5856m-253.0816 0a253.0816 253.0816 0 1 0 506.1632 0 253.0816 253.0816 0 1 0-506.1632 0Z\" fill=\"#78CCFF\" p-id=\"2017\"></path><path d=\"M268.4416 522.4448m-229.2224 0a229.2224 229.2224 0 1 0 458.4448 0 229.2224 229.2224 0 1 0-458.4448 0Z\" fill=\"#78CCFF\" p-id=\"2018\"></path><path d=\"M266.0864 522.4448h463.2064v229.2224H266.0864zM281.8048 899.8912c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9568 60.928 112.7424zM648.9088 899.8912c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9568 60.928 112.7424z\" fill=\"#78CCFF\" p-id=\"2019\"></path><path d=\"M465.3568 899.8912c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9568 60.928 112.7424zM832.4608 899.8912c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9568 60.928 112.7424z\" fill=\"#9FDFFF\" p-id=\"2020\"></path></svg>','<svg t=\"1690592304344\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"2167\" width=\"200\" height=\"200\"><path d=\"M402.432 307.968m-286.5152 0a286.5152 286.5152 0 1 0 573.0304 0 286.5152 286.5152 0 1 0-573.0304 0Z\" fill=\"#9FDFFF\" p-id=\"2168\"></path><path d=\"M731.648 498.5856m-253.0816 0a253.0816 253.0816 0 1 0 506.1632 0 253.0816 253.0816 0 1 0-506.1632 0Z\" fill=\"#78CCFF\" p-id=\"2169\"></path><path d=\"M268.4416 522.4448m-229.2224 0a229.2224 229.2224 0 1 0 458.4448 0 229.2224 229.2224 0 1 0-458.4448 0Z\" fill=\"#78CCFF\" p-id=\"2170\"></path><path d=\"M266.0864 522.4448h463.2064v229.2224H266.0864zM219.9552 915.1488c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544c0-37.8368 60.928-112.7424 60.928-112.7424s60.928 74.9056 60.928 112.7424zM572.928 915.1488c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544c0-37.8368 60.928-112.7424 60.928-112.7424s60.928 74.9056 60.928 112.7424zM925.8496 915.1488c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544c0-37.8368 60.928-112.7424 60.928-112.7424s60.928 74.9056 60.928 112.7424z\" fill=\"#78CCFF\" p-id=\"2171\"></path><path d=\"M396.4416 773.7856c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9568 60.928 112.7424zM749.3632 773.7856c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9568 60.928 112.7424z\" fill=\"#9FDFFF\" p-id=\"2172\"></path></svg>','<svg t=\"1690592312098\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"2319\" width=\"200\" height=\"200\"><path d=\"M402.432 307.968m-286.5152 0a286.5152 286.5152 0 1 0 573.0304 0 286.5152 286.5152 0 1 0-573.0304 0Z\" fill=\"#9FDFFF\" p-id=\"2320\"></path><path d=\"M731.648 498.5856m-253.0816 0a253.0816 253.0816 0 1 0 506.1632 0 253.0816 253.0816 0 1 0-506.1632 0Z\" fill=\"#78CCFF\" p-id=\"2321\"></path><path d=\"M268.4416 522.4448m-229.2224 0a229.2224 229.2224 0 1 0 458.4448 0 229.2224 229.2224 0 1 0-458.4448 0Z\" fill=\"#78CCFF\" p-id=\"2322\"></path><path d=\"M266.0864 522.4448h463.2064v229.2224H266.0864zM219.9552 859.8528c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544c0-37.8368 60.928-112.7424 60.928-112.7424s60.928 74.9056 60.928 112.7424z\" fill=\"#78CCFF\" p-id=\"2323\"></path><path d=\"M572.928 859.8528c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544c0-37.8368 60.928-112.7424 60.928-112.7424s60.928 74.9056 60.928 112.7424zM925.8496 859.8528c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544c0-37.8368 60.928-112.7424 60.928-112.7424s60.928 74.9056 60.928 112.7424z\" fill=\"#78CCFF\" p-id=\"2324\"></path><path d=\"M396.4416 718.4896c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9568 60.928 112.7424zM749.3632 718.4896c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9568 60.928 112.7424zM396.4416 950.4256c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9568 60.928 112.7424zM749.3632 950.4256c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9568 60.928 112.7424z\" fill=\"#9FDFFF\" p-id=\"2325\"></path></svg>','<svg t=\"1690592319109\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"2472\" width=\"200\" height=\"200\"><path d=\"M402.432 307.968m-286.5152 0a286.5152 286.5152 0 1 0 573.0304 0 286.5152 286.5152 0 1 0-573.0304 0Z\" fill=\"#9FDFFF\" p-id=\"2473\"></path><path d=\"M731.648 498.5856m-253.0816 0a253.0816 253.0816 0 1 0 506.1632 0 253.0816 253.0816 0 1 0-506.1632 0Z\" fill=\"#78CCFF\" p-id=\"2474\"></path><path d=\"M268.4416 522.4448m-229.2224 0a229.2224 229.2224 0 1 0 458.4448 0 229.2224 229.2224 0 1 0-458.4448 0Z\" fill=\"#78CCFF\" p-id=\"2475\"></path><path d=\"M266.0864 522.4448h463.2064v229.2224H266.0864zM277.8624 940.7488c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9056 60.928 112.7424zM676.5568 940.7488c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9056 60.928 112.7424zM477.184 940.7488c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9056 60.928 112.7424zM875.9296 940.7488c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9056 60.928 112.7424z\" fill=\"#78CCFF\" p-id=\"2476\"></path><path d=\"M277.8624 735.3856c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9056 60.928 112.7424zM676.5568 735.3856c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9056 60.928 112.7424zM477.184 735.3856c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9056 60.928 112.7424zM875.9296 735.3856c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544 60.928-112.7424 60.928-112.7424 60.928 74.9056 60.928 112.7424z\" fill=\"#9FDFFF\" p-id=\"2477\"></path></svg>','<svg t=\"1690592327422\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"2624\" width=\"200\" height=\"200\"><path d=\"M402.432 307.968m-286.5152 0a286.5152 286.5152 0 1 0 573.0304 0 286.5152 286.5152 0 1 0-573.0304 0Z\" fill=\"#9FDFFF\" p-id=\"2625\"></path><path d=\"M731.648 498.5856m-253.0816 0a253.0816 253.0816 0 1 0 506.1632 0 253.0816 253.0816 0 1 0-506.1632 0Z\" fill=\"#78CCFF\" p-id=\"2626\"></path><path d=\"M268.4416 522.4448m-229.2224 0a229.2224 229.2224 0 1 0 458.4448 0 229.2224 229.2224 0 1 0-458.4448 0Z\" fill=\"#78CCFF\" p-id=\"2627\"></path><path d=\"M266.0864 522.4448h463.2064v229.2224H266.0864z\" fill=\"#78CCFF\" p-id=\"2628\"></path><path d=\"M543.6416 260.864l-187.9552 293.888 189.7472 27.648L450.56 803.84l281.088-289.8944-213.8624-32.3584z\" fill=\"#FFB612\" p-id=\"2629\"></path><path d=\"M297.6256 904.9088c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544c0-37.8368 60.928-112.7424 60.928-112.7424s60.928 74.9056 60.928 112.7424zM664.6784 904.9088c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544c0-37.8368 60.928-112.7424 60.928-112.7424s60.928 74.9056 60.928 112.7424z\" fill=\"#78CCFF\" p-id=\"2630\"></path><path d=\"M481.1264 904.9088c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544c0-37.8368 60.928-112.7424 60.928-112.7424s60.928 74.9056 60.928 112.7424zM848.2304 904.9088c0 37.8368-27.2896 68.4544-60.928 68.4544s-60.928-30.6688-60.928-68.4544c0-37.8368 60.928-112.7424 60.928-112.7424s60.928 74.9056 60.928 112.7424z\" fill=\"#9FDFFF\" p-id=\"2631\"></path></svg>','<svg t=\"1690592336369\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"2778\" width=\"200\" height=\"200\"><path d=\"M402.432 307.968m-286.5152 0a286.5152 286.5152 0 1 0 573.0304 0 286.5152 286.5152 0 1 0-573.0304 0Z\" fill=\"#9FDFFF\" p-id=\"2779\"></path><path d=\"M731.648 498.5856m-253.0816 0a253.0816 253.0816 0 1 0 506.1632 0 253.0816 253.0816 0 1 0-506.1632 0Z\" fill=\"#78CCFF\" p-id=\"2780\"></path><path d=\"M268.4416 522.4448m-229.2224 0a229.2224 229.2224 0 1 0 458.4448 0 229.2224 229.2224 0 1 0-458.4448 0Z\" fill=\"#78CCFF\" p-id=\"2781\"></path><path d=\"M266.0864 522.4448h463.2064v229.2224H266.0864z\" fill=\"#78CCFF\" p-id=\"2782\"></path><path d=\"M391.7312 767.7952l23.1936-5.7344c1.024-0.1536 1.8944-0.768 2.4576-1.6384 0.5632-0.8704 0.7168-1.9456 0.4096-2.9184a3.9936 3.9936 0 0 0-4.7616-2.6112l-30.8224 7.8848-23.1936-12.4416 26.2656-14.08 30.8224 7.6288h0.9728c1.8432 0.0512 3.4816-1.28 3.84-3.1232a3.55328 3.55328 0 0 0-2.8672-4.0448l-23.1936-5.7344 27.2384-14.592a3.61472 3.61472 0 0 0 1.4336-5.0176 4.11136 4.11136 0 0 0-5.2736-1.4336l-27.2384 14.7968 6.1952-21.504c0.3072-0.9728 0.1536-2.048-0.4096-2.9184a3.57376 3.57376 0 0 0-2.4576-1.6384c-2.048-0.4608-4.096 0.6656-4.7616 2.6112l-8.3456 28.672-26.2656 14.08v-28.2112l22.4768-20.7872c0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112a4.02432 4.02432 0 0 0-5.4784 0l-16.9472 15.7696v-29.1328a4.10112 4.10112 0 0 0-3.9424-3.072c-1.8432 0-3.4816 1.28-3.9424 3.072v29.1328l-16.9472-15.7696a4.02432 4.02432 0 0 0-5.4784 0c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112l22.4768 20.7872v27.9552l-26.2656-14.08-8.1408-28.2112a3.9936 3.9936 0 0 0-4.7616-2.6112c-1.024 0.1536-1.8944 0.768-2.4576 1.6384-0.5632 0.8704-0.7168 1.9456-0.4096 2.9184l6.1952 21.504-27.2384-14.7968a4.12672 4.12672 0 0 0-5.2736 1.4336 3.61472 3.61472 0 0 0 1.4336 5.0176l27.2384 14.592-23.3984 5.4784c-1.024 0.1536-1.8944 0.768-2.4576 1.6384-0.5632 0.8704-0.7168 1.9456-0.4096 2.9184 0.6656 1.9968 2.7648 3.1232 4.7616 2.6112l30.8224-7.6288 26.2656 14.08-23.1936 12.4416-30.5664-7.6288c-2.048-0.4608-4.096 0.6656-4.7616 2.6112-0.3072 0.9728-0.1536 1.9968 0.3072 2.8672 0.512 0.8704 1.3312 1.4848 2.304 1.6896l23.1936 5.7344-30.3616 16.0256c-1.536 0.7168-2.304 2.4064-1.8944 4.0448 0.512 1.6384 2.0992 2.7136 3.84 2.6112l1.8944-0.4608 30.3616-16.2304-6.1952 21.504c-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384 2.048 0.4608 4.096-0.6656 4.7616-2.6112l8.3456-28.416 23.1936-12.4416v24.832l-22.4768 20.7872c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112c1.536 1.4336 3.9424 1.4336 5.4784 0l16.9472-15.7696v32.256c0.4608 1.792 2.0992 3.072 3.9424 3.072 1.8432 0 3.4816-1.28 3.9424-3.072v-32.256l16.9472 15.7696c1.536 1.4336 3.9424 1.4336 5.4784 0 0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112l-22.4768-20.7872v-24.832l23.1936 12.4416 8.3456 28.416c0.6656 1.9968 2.7648 3.1232 4.7616 2.6112 1.024-0.1536 1.8944-0.768 2.4576-1.6384 0.5632-0.8704 0.7168-1.9456 0.4096-2.9184l-6.1952-21.504 30.3616 16.2304c0.9216 0.5632 2.048 0.7168 3.1232 0.4608a3.84 3.84 0 0 0 2.4064-1.6896c0.5632-0.8192 0.768-1.8944 0.4608-2.8672a3.59424 3.59424 0 0 0-1.8944-2.1504l-30.6688-16.1792z m0 0M684.8512 767.7952l23.1936-5.7344c1.024-0.1536 1.8944-0.768 2.4576-1.6384 0.5632-0.8704 0.7168-1.9456 0.4096-2.9184a3.9936 3.9936 0 0 0-4.7616-2.6112l-30.8224 7.8848-23.1936-12.4416 26.2656-14.08 30.8224 7.6288h0.9728c1.8432 0.0512 3.4816-1.28 3.84-3.1232a3.55328 3.55328 0 0 0-2.8672-4.0448l-23.1936-5.7344 27.2384-14.592a3.61472 3.61472 0 0 0 1.4336-5.0176 4.11136 4.11136 0 0 0-5.2736-1.4336l-27.2384 14.7968 6.1952-21.504c0.3072-0.9728 0.1536-2.048-0.4096-2.9184a3.57376 3.57376 0 0 0-2.4576-1.6384c-2.048-0.4608-4.096 0.6656-4.7616 2.6112l-8.3456 28.672-26.2656 14.08v-28.2112l22.4768-20.7872c0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112a4.02432 4.02432 0 0 0-5.4784 0l-16.9472 15.7696v-29.1328a4.10112 4.10112 0 0 0-3.9424-3.072c-1.8432 0-3.4816 1.28-3.9424 3.072v29.1328l-16.9472-15.7696a4.02432 4.02432 0 0 0-5.4784 0c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112l22.4768 20.7872v27.9552l-26.2656-14.08-8.1408-28.2112a3.9936 3.9936 0 0 0-4.7616-2.6112c-1.024 0.1536-1.8944 0.768-2.4576 1.6384-0.5632 0.8704-0.7168 1.9456-0.4096 2.9184l6.1952 21.504-27.2384-14.7968a4.12672 4.12672 0 0 0-5.2736 1.4336 3.61472 3.61472 0 0 0 1.4336 5.0176l27.2384 14.592-23.3984 5.4784c-1.024 0.1536-1.8944 0.768-2.4576 1.6384-0.5632 0.8704-0.7168 1.9456-0.4096 2.9184 0.6656 1.9968 2.7648 3.1232 4.7616 2.6112l30.8224-7.6288 26.2656 14.08-23.1936 12.4416-30.5664-7.6288c-2.048-0.4608-4.096 0.6656-4.7616 2.6112-0.3072 0.9728-0.1536 1.9968 0.3072 2.8672 0.512 0.8704 1.3312 1.4848 2.304 1.6896l23.1936 5.7344-30.3616 16.0256c-1.536 0.7168-2.304 2.4064-1.8944 4.0448 0.512 1.6384 2.0992 2.7136 3.84 2.6112l1.8944-0.4608 30.3616-16.2304-6.1952 21.504c-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384 2.048 0.4608 4.096-0.6656 4.7616-2.6112l8.3456-28.416 23.1936-12.4416v24.832l-22.4768 20.7872c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112c1.536 1.4336 3.9424 1.4336 5.4784 0l16.9472-15.7696v32.256c0.4608 1.792 2.0992 3.072 3.9424 3.072 1.8432 0 3.4816-1.28 3.9424-3.072v-32.256l16.9472 15.7696c1.536 1.4336 3.9424 1.4336 5.4784 0 0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112l-22.4768-20.7872v-24.832l23.1936 12.4416 8.3456 28.416c0.6656 1.9968 2.7648 3.1232 4.7616 2.6112 1.024-0.1536 1.8944-0.768 2.4576-1.6384 0.5632-0.8704 0.7168-1.9456 0.4096-2.9184l-6.1952-21.504 30.3616 16.2304c0.9216 0.5632 2.048 0.7168 3.1232 0.4608a3.84 3.84 0 0 0 2.4064-1.6896c0.5632-0.8192 0.768-1.8944 0.4608-2.8672a3.59424 3.59424 0 0 0-1.8944-2.1504l-30.6688-16.1792z m0 0\" fill=\"#9FDFFF\" p-id=\"2783\"></path><path d=\"M245.1456 895.8464l23.1936-5.7344c1.024-0.1536 1.8944-0.768 2.4576-1.6384 0.5632-0.8704 0.7168-1.9456 0.4096-2.9184a3.9936 3.9936 0 0 0-4.7616-2.6112l-30.8224 7.8848-23.1936-12.4416 26.2656-14.08 30.8224 7.6288h0.9728c1.8432 0.0512 3.4816-1.28 3.84-3.1232a3.55328 3.55328 0 0 0-2.8672-4.0448l-23.1936-5.7344 27.2384-14.592a3.61472 3.61472 0 0 0 1.4336-5.0176 4.11136 4.11136 0 0 0-5.2736-1.4336l-27.2384 14.7968 6.1952-21.504c0.3072-0.9728 0.1536-2.048-0.4096-2.9184a3.57376 3.57376 0 0 0-2.4576-1.6384c-2.048-0.4608-4.096 0.6656-4.7616 2.6112l-8.3456 28.672-26.2656 14.08v-28.2112l22.4768-20.7872c0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112a4.02432 4.02432 0 0 0-5.4784 0l-16.9472 15.7696v-29.1328a4.10112 4.10112 0 0 0-3.9424-3.072c-1.8432 0-3.4816 1.28-3.9424 3.072v29.1328l-16.9472-15.7696a4.02432 4.02432 0 0 0-5.4784 0c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112l22.4768 20.7872v27.9552l-26.2656-14.08-8.1408-28.2112a3.9936 3.9936 0 0 0-4.7616-2.6112c-1.024 0.1536-1.8944 0.768-2.4576 1.6384-0.5632 0.8704-0.7168 1.9456-0.4096 2.9184l6.1952 21.504-27.2384-14.7968a4.12672 4.12672 0 0 0-5.2736 1.4336 3.61472 3.61472 0 0 0 1.4336 5.0176l27.2384 14.592-23.3984 5.4784c-1.024 0.1536-1.8944 0.768-2.4576 1.6384-0.5632 0.8704-0.7168 1.9456-0.4096 2.9184 0.6656 1.9968 2.7648 3.1232 4.7616 2.6112l30.8224-7.6288 26.2656 14.08-23.1936 12.4416-30.5664-7.6288c-2.048-0.4608-4.096 0.6656-4.7616 2.6112-0.3072 0.9728-0.1536 1.9968 0.3072 2.8672 0.512 0.8704 1.3312 1.4848 2.304 1.6896l23.1936 5.7344-30.3616 16.0256c-1.536 0.7168-2.304 2.4064-1.8944 4.0448 0.512 1.6384 2.0992 2.7136 3.84 2.6112l1.8944-0.4608 30.3616-16.2304-6.1952 21.504c-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384 2.048 0.4608 4.096-0.6656 4.7616-2.6112l8.3456-28.416 23.1936-12.4416v24.832l-22.4768 20.7872c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112c1.536 1.4336 3.9424 1.4336 5.4784 0l16.9472-15.7696v32.256c0.4608 1.792 2.0992 3.072 3.9424 3.072 1.8432 0 3.4816-1.28 3.9424-3.072v-32.256l16.9472 15.7696c1.536 1.4336 3.9424 1.4336 5.4784 0 0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112l-22.4768-20.7872v-24.832l23.1936 12.4416 8.3456 28.416c0.6656 1.9968 2.7648 3.1232 4.7616 2.6112 1.024-0.1536 1.8944-0.768 2.4576-1.6384 0.5632-0.8704 0.7168-1.9456 0.4096-2.9184l-6.1952-21.504 30.3616 16.2304c0.9216 0.5632 2.048 0.7168 3.1232 0.4608a3.84 3.84 0 0 0 2.4064-1.6896c0.5632-0.8192 0.768-1.8944 0.4608-2.8672a3.59424 3.59424 0 0 0-1.8944-2.1504l-30.6688-16.1792z m0 0\" fill=\"#78CCFF\" p-id=\"2784\"></path><path d=\"M538.2656 895.8464l23.1936-5.7344c1.024-0.1536 1.8944-0.768 2.4576-1.6384 0.5632-0.8704 0.7168-1.9456 0.4096-2.9184a3.9936 3.9936 0 0 0-4.7616-2.6112l-30.8224 7.8848-23.1936-12.4416 26.2656-14.08 30.8224 7.6288h0.9728c1.8432 0.0512 3.4816-1.28 3.84-3.1232a3.55328 3.55328 0 0 0-2.8672-4.0448l-23.1936-5.7344 27.2384-14.592a3.61472 3.61472 0 0 0 1.4336-5.0176 4.11136 4.11136 0 0 0-5.2736-1.4336l-27.2384 14.7968 6.1952-21.504c0.3072-0.9728 0.1536-2.048-0.4096-2.9184a3.57376 3.57376 0 0 0-2.4576-1.6384c-2.048-0.4608-4.096 0.6656-4.7616 2.6112l-8.3456 28.672-26.2656 14.08v-28.2112l22.4768-20.7872c0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112a4.02432 4.02432 0 0 0-5.4784 0l-16.9472 15.7696v-29.1328a4.10112 4.10112 0 0 0-3.9424-3.072c-1.8432 0-3.4816 1.28-3.9424 3.072v29.1328l-16.9472-15.7696a4.02432 4.02432 0 0 0-5.4784 0c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112l22.4768 20.7872v27.9552l-26.2656-14.08-8.1408-28.2112a3.9936 3.9936 0 0 0-4.7616-2.6112c-1.024 0.1536-1.8944 0.768-2.4576 1.6384-0.5632 0.8704-0.7168 1.9456-0.4096 2.9184l6.1952 21.504-27.2384-14.7968a4.12672 4.12672 0 0 0-5.2736 1.4336 3.61472 3.61472 0 0 0 1.4336 5.0176l27.2384 14.592-23.3984 5.4784c-1.024 0.1536-1.8944 0.768-2.4576 1.6384-0.5632 0.8704-0.7168 1.9456-0.4096 2.9184 0.6656 1.9968 2.7648 3.1232 4.7616 2.6112l30.8224-7.6288 26.2656 14.08-23.1936 12.4416-30.5664-7.6288c-2.048-0.4608-4.096 0.6656-4.7616 2.6112-0.3072 0.9728-0.1536 1.9968 0.3072 2.8672 0.512 0.8704 1.3312 1.4848 2.304 1.6896l23.1936 5.7344-30.3616 16.0256c-1.536 0.7168-2.304 2.4064-1.8944 4.0448 0.512 1.6384 2.0992 2.7136 3.84 2.6112l1.8944-0.4608 30.3616-16.2304-6.1952 21.504c-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384 2.048 0.4608 4.096-0.6656 4.7616-2.6112l8.3456-28.416 23.1936-12.4416v24.832l-22.4768 20.7872c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112c1.536 1.4336 3.9424 1.4336 5.4784 0l16.9472-15.7696v32.256c0.4608 1.792 2.0992 3.072 3.9424 3.072 1.8432 0 3.4816-1.28 3.9424-3.072v-32.256l16.9472 15.7696c1.536 1.4336 3.9424 1.4336 5.4784 0 0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112l-22.4768-20.7872v-24.832l23.1936 12.4416 8.3456 28.416c0.6656 1.9968 2.7648 3.1232 4.7616 2.6112 1.024-0.1536 1.8944-0.768 2.4576-1.6384 0.5632-0.8704 0.7168-1.9456 0.4096-2.9184l-6.1952-21.504 30.3616 16.2304c0.9216 0.5632 2.048 0.7168 3.1232 0.4608a3.84 3.84 0 0 0 2.4064-1.6896c0.5632-0.8192 0.768-1.8944 0.4608-2.8672a3.59424 3.59424 0 0 0-1.8944-2.1504l-30.6688-16.1792z m0 0\" fill=\"#78CCFF\" p-id=\"2785\"></path><path d=\"M831.3856 895.8464l23.1936-5.7344c1.024-0.1536 1.8944-0.768 2.4576-1.6384 0.5632-0.8704 0.7168-1.9456 0.4096-2.9184a3.9936 3.9936 0 0 0-4.7616-2.6112l-30.8224 7.8848-23.1936-12.4416 26.2656-14.08 30.8224 7.6288h0.9728c1.8432 0.0512 3.4816-1.28 3.84-3.1232a3.55328 3.55328 0 0 0-2.8672-4.0448l-23.1936-5.7344 27.2384-14.592a3.61472 3.61472 0 0 0 1.4336-5.0176 4.11136 4.11136 0 0 0-5.2736-1.4336l-27.2384 14.7968 6.1952-21.504c0.3072-0.9728 0.1536-2.048-0.4096-2.9184a3.57376 3.57376 0 0 0-2.4576-1.6384c-2.048-0.4608-4.096 0.6656-4.7616 2.6112l-8.3456 28.672-26.2656 14.08v-28.2112l22.4768-20.7872c0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112a4.02432 4.02432 0 0 0-5.4784 0l-16.9472 15.7696v-29.1328a4.10112 4.10112 0 0 0-3.9424-3.072c-1.8432 0-3.4816 1.28-3.9424 3.072v29.1328l-16.9472-15.7696a4.02432 4.02432 0 0 0-5.4784 0c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112l22.4768 20.7872v27.9552l-26.2656-14.08-8.1408-28.2112a3.9936 3.9936 0 0 0-4.7616-2.6112c-1.024 0.1536-1.8944 0.768-2.4576 1.6384-0.5632 0.8704-0.7168 1.9456-0.4096 2.9184l6.1952 21.504-27.2384-14.7968a4.12672 4.12672 0 0 0-5.2736 1.4336 3.61472 3.61472 0 0 0 1.4336 5.0176l27.2384 14.592-23.3984 5.4784c-1.024 0.1536-1.8944 0.768-2.4576 1.6384-0.5632 0.8704-0.7168 1.9456-0.4096 2.9184 0.6656 1.9968 2.7648 3.1232 4.7616 2.6112l30.8224-7.6288 26.2656 14.08-23.1936 12.4416-30.5664-7.6288c-2.048-0.4608-4.096 0.6656-4.7616 2.6112-0.3072 0.9728-0.1536 1.9968 0.3072 2.8672 0.512 0.8704 1.3312 1.4848 2.304 1.6896l23.1936 5.7344-30.3616 16.0256c-1.536 0.7168-2.304 2.4064-1.8944 4.0448 0.512 1.6384 2.0992 2.7136 3.84 2.6112l1.8944-0.4608 30.3616-16.2304-6.1952 21.504c-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384 2.048 0.4608 4.096-0.6656 4.7616-2.6112l8.3456-28.416 23.1936-12.4416v24.832l-22.4768 20.7872c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112c1.536 1.4336 3.9424 1.4336 5.4784 0l16.9472-15.7696v32.256c0.4608 1.792 2.0992 3.072 3.9424 3.072 1.8432 0 3.4816-1.28 3.9424-3.072v-32.256l16.9472 15.7696c1.536 1.4336 3.9424 1.4336 5.4784 0 0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112l-22.4768-20.7872v-24.832l23.1936 12.4416 8.3456 28.416c0.6656 1.9968 2.7648 3.1232 4.7616 2.6112 1.024-0.1536 1.8944-0.768 2.4576-1.6384 0.5632-0.8704 0.7168-1.9456 0.4096-2.9184l-6.1952-21.504 30.3616 16.2304c0.9216 0.5632 2.048 0.7168 3.1232 0.4608a3.84 3.84 0 0 0 2.4064-1.6896c0.5632-0.8192 0.768-1.8944 0.4608-2.8672a3.59424 3.59424 0 0 0-1.8944-2.1504l-30.6688-16.1792z m0 0\" fill=\"#78CCFF\" p-id=\"2786\"></path></svg>','<svg t=\"1690592345674\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"2933\" width=\"200\" height=\"200\"><path d=\"M402.432 307.968m-286.5152 0a286.5152 286.5152 0 1 0 573.0304 0 286.5152 286.5152 0 1 0-573.0304 0Z\" fill=\"#9FDFFF\" p-id=\"2934\"></path><path d=\"M731.648 498.5856m-253.0816 0a253.0816 253.0816 0 1 0 506.1632 0 253.0816 253.0816 0 1 0-506.1632 0Z\" fill=\"#78CCFF\" p-id=\"2935\"></path><path d=\"M268.4416 522.4448m-229.2224 0a229.2224 229.2224 0 1 0 458.4448 0 229.2224 229.2224 0 1 0-458.4448 0Z\" fill=\"#78CCFF\" p-id=\"2936\"></path><path d=\"M266.0864 522.4448h463.2064v229.2224H266.0864zM436.6336 810.8032c0.9216-0.4096 1.5872-1.1776 1.8944-2.1504 0.3072-0.9728 0.1024-2.048-0.4608-2.8672a3.89632 3.89632 0 0 0-2.4064-1.6896 4.43392 4.43392 0 0 0-3.1232 0.4608l-30.3616 16.2304 6.1952-21.504c0.3072-0.9728 0.1536-2.048-0.4096-2.9184a3.57376 3.57376 0 0 0-2.4576-1.6384c-2.048-0.4608-4.096 0.6656-4.7616 2.6112l-8.3456 28.416-23.1936 12.4416v-24.832l22.4768-20.7872c0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112a4.02432 4.02432 0 0 0-5.4784 0l-16.9472 15.7696v-32.256a4.10112 4.10112 0 0 0-3.9424-3.072c-1.8432 0-3.4816 1.28-3.9424 3.072v32.256l-16.9472-15.7696a4.02432 4.02432 0 0 0-5.4784 0c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112l22.4768 20.7872v24.832l-23.1936-12.4416-8.3456-28.416a3.9936 3.9936 0 0 0-4.7616-2.6112c-1.024 0.1536-1.8944 0.768-2.4576 1.6384-0.5632 0.8704-0.7168 1.9456-0.4096 2.9184l6.1952 21.504-30.3616-16.2304-1.8944-0.4608a3.8144 3.8144 0 0 0-3.84 2.6112c-0.4096 1.6384 0.4096 3.328 1.8944 4.0448l30.3616 16.0256-23.1936 5.7344c-0.9728 0.2048-1.792 0.8192-2.304 1.6896-0.512 0.8704-0.6144 1.8944-0.3072 2.8672 0.6656 1.9968 2.7648 3.1232 4.7616 2.6112l30.5664-7.6288 23.1936 12.4416-26.2656 14.08-30.8224-7.6288c-2.048-0.4608-4.096 0.6656-4.7616 2.6112-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384l23.3984 5.4784-27.2384 14.592a3.61472 3.61472 0 0 0-1.4336 5.0176c1.1264 1.7408 3.3792 2.3552 5.2736 1.4336l27.2384-14.7968-6.1952 21.504c-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384 2.048 0.4608 4.096-0.6656 4.7616-2.6112l8.1408-28.2112 26.2656-14.08v27.9552l-22.4768 20.7872c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112c1.536 1.4336 3.9424 1.4336 5.4784 0l16.9472-15.7696v29.1328c0.4608 1.792 2.0992 3.072 3.9424 3.072 1.8432 0 3.4816-1.28 3.9424-3.072v-29.1328l16.9472 15.7696c1.536 1.4336 3.9424 1.4336 5.4784 0 0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112l-22.4768-20.7872v-28.2112l26.2656 14.08 8.3456 28.672c0.6656 1.9968 2.7648 3.1232 4.7616 2.6112 1.024-0.1536 1.8944-0.768 2.4576-1.6384 0.5632-0.8704 0.7168-1.9456 0.4096-2.9184l-6.1952-21.504 27.2384 14.7968c1.8432 0.9216 4.1472 0.3072 5.2736-1.4336a3.61472 3.61472 0 0 0-1.4336-5.0176l-27.2384-14.592 23.1936-5.7344c1.8944-0.3584 3.1744-2.1504 2.8672-4.0448a3.85536 3.85536 0 0 0-3.84-3.1232h-0.9728l-30.8224 7.6288-26.2656-14.08 23.1936-12.4416 30.8224 7.8848c2.048 0.4608 4.096-0.6656 4.7616-2.6112 0.3072-0.9728 0.1536-2.048-0.4096-2.9184s-1.4336-1.4848-2.4576-1.6384l-23.1936-5.7344 30.6688-16.1792z m-30.5664 16.2304M729.7536 810.8032c0.9216-0.4096 1.5872-1.1776 1.8944-2.1504 0.3072-0.9728 0.1024-2.048-0.4608-2.8672a3.89632 3.89632 0 0 0-2.4064-1.6896 4.43392 4.43392 0 0 0-3.1232 0.4608l-30.3616 16.2304 6.1952-21.504c0.3072-0.9728 0.1536-2.048-0.4096-2.9184a3.57376 3.57376 0 0 0-2.4576-1.6384c-2.048-0.4608-4.096 0.6656-4.7616 2.6112l-8.3456 28.416-23.1936 12.4416v-24.832l22.4768-20.7872c0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112a4.02432 4.02432 0 0 0-5.4784 0l-16.9472 15.7696v-32.256a4.10112 4.10112 0 0 0-3.9424-3.072c-1.8432 0-3.4816 1.28-3.9424 3.072v32.256l-16.9472-15.7696a4.02432 4.02432 0 0 0-5.4784 0c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112l22.4768 20.7872v24.832l-23.1936-12.4416-8.3456-28.416a3.9936 3.9936 0 0 0-4.7616-2.6112c-1.024 0.1536-1.8944 0.768-2.4576 1.6384-0.5632 0.8704-0.7168 1.9456-0.4096 2.9184l6.1952 21.504-30.3616-16.2304-1.8944-0.4608a3.8144 3.8144 0 0 0-3.84 2.6112c-0.4096 1.6384 0.4096 3.328 1.8944 4.0448l30.3616 16.0256-23.1936 5.7344c-0.9728 0.2048-1.792 0.8192-2.304 1.6896-0.512 0.8704-0.6144 1.8944-0.3072 2.8672 0.6656 1.9968 2.7648 3.1232 4.7616 2.6112l30.5664-7.6288 23.1936 12.4416-26.2656 14.08-30.8224-7.6288c-2.048-0.4608-4.096 0.6656-4.7616 2.6112-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384l23.3984 5.4784-27.2384 14.592a3.61472 3.61472 0 0 0-1.4336 5.0176c1.1264 1.7408 3.3792 2.3552 5.2736 1.4336l27.2384-14.7968-6.1952 21.504c-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384 2.048 0.4608 4.096-0.6656 4.7616-2.6112l8.1408-28.2112 26.2656-14.08v27.9552l-22.4768 20.7872c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112c1.536 1.4336 3.9424 1.4336 5.4784 0l16.9472-15.7696v29.1328c0.4608 1.792 2.0992 3.072 3.9424 3.072 1.8432 0 3.4816-1.28 3.9424-3.072v-29.1328l16.9472 15.7696c1.536 1.4336 3.9424 1.4336 5.4784 0 0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112l-22.4768-20.7872v-28.2112l26.2656 14.08 8.3456 28.672c0.6656 1.9968 2.7648 3.1232 4.7616 2.6112 1.024-0.1536 1.8944-0.768 2.4576-1.6384 0.5632-0.8704 0.7168-1.9456 0.4096-2.9184l-6.1952-21.504 27.2384 14.7968c1.8432 0.9216 4.1472 0.3072 5.2736-1.4336a3.61472 3.61472 0 0 0-1.4336-5.0176l-27.2384-14.592 23.1936-5.7344c1.8944-0.3584 3.1744-2.1504 2.8672-4.0448a3.85536 3.85536 0 0 0-3.84-3.1232h-0.9728l-30.8224 7.6288-26.2656-14.08 23.1936-12.4416 30.8224 7.8848c2.048 0.4608 4.096-0.6656 4.7616-2.6112 0.3072-0.9728 0.1536-2.048-0.4096-2.9184s-1.4336-1.4848-2.4576-1.6384l-23.1936-5.7344 30.6688-16.1792z m-30.6176 16.2304\" fill=\"#78CCFF\" p-id=\"2937\"></path><path d=\"M290.0992 716.4416c0.9216-0.4096 1.5872-1.1776 1.8944-2.1504 0.3072-0.9728 0.1024-2.048-0.4608-2.8672a3.89632 3.89632 0 0 0-2.4064-1.6896 4.43392 4.43392 0 0 0-3.1232 0.4608l-30.3616 16.2304 6.1952-21.504c0.3072-0.9728 0.1536-2.048-0.4096-2.9184a3.57376 3.57376 0 0 0-2.4576-1.6384c-2.048-0.4608-4.096 0.6656-4.7616 2.6112l-8.3456 28.416-23.1936 12.4416v-24.832l22.4768-20.7872c0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112a4.02432 4.02432 0 0 0-5.4784 0l-16.9472 15.7696v-32.256a4.10112 4.10112 0 0 0-3.9424-3.072c-1.8432 0-3.4816 1.28-3.9424 3.072v32.256l-16.9472-15.7696a4.02432 4.02432 0 0 0-5.4784 0c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112l22.4768 20.7872v24.832l-23.1936-12.4416-8.3456-28.416a3.9936 3.9936 0 0 0-4.7616-2.6112c-1.024 0.1536-1.8944 0.768-2.4576 1.6384-0.5632 0.8704-0.7168 1.9456-0.4096 2.9184l6.1952 21.504-30.3616-16.2304-1.8944-0.4608a3.8144 3.8144 0 0 0-3.84 2.6112c-0.4096 1.6384 0.4096 3.328 1.8944 4.0448l30.3616 16.0256-23.1936 5.7344c-0.9728 0.2048-1.792 0.8192-2.304 1.6896-0.512 0.8704-0.6144 1.8944-0.3072 2.8672 0.6656 1.9968 2.7648 3.1232 4.7616 2.6112l30.5664-7.6288 23.1936 12.4416-26.2656 14.08-30.8224-7.6288c-2.048-0.4608-4.096 0.6656-4.7616 2.6112-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384l23.3984 5.4784-27.2384 14.592a3.61472 3.61472 0 0 0-1.4336 5.0176c1.1264 1.7408 3.3792 2.3552 5.2736 1.4336l27.2384-14.7968-6.1952 21.504c-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384 2.048 0.4608 4.096-0.6656 4.7616-2.6112l8.1408-28.2112 26.2656-14.08v27.9552l-22.4768 20.7872c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112c1.536 1.4336 3.9424 1.4336 5.4784 0l16.9472-15.7696v29.1328c0.4608 1.792 2.0992 3.072 3.9424 3.072 1.8432 0 3.4816-1.28 3.9424-3.072v-29.1328l16.9472 15.7696c1.536 1.4336 3.9424 1.4336 5.4784 0 0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112l-22.4768-20.7872v-28.2112l26.2656 14.08 8.3456 28.672c0.6656 1.9968 2.7648 3.1232 4.7616 2.6112 1.024-0.1536 1.8944-0.768 2.4576-1.6384 0.5632-0.8704 0.7168-1.9456 0.4096-2.9184l-6.1952-21.504 27.2384 14.7968c1.8432 0.9216 4.1472 0.3072 5.2736-1.4336 0.512-0.8704 0.6144-1.8944 0.3584-2.816a3.5072 3.5072 0 0 0-1.792-2.2016l-27.2384-14.592 23.1936-5.7344c1.8944-0.3584 3.1744-2.1504 2.8672-4.0448a3.85536 3.85536 0 0 0-3.84-3.1232h-0.9728l-30.8224 7.6288-26.2656-14.08 23.1936-12.4416 30.8224 7.8848c2.048 0.4608 4.096-0.6656 4.7616-2.6112 0.3072-0.9728 0.1536-2.048-0.4096-2.9184a3.57376 3.57376 0 0 0-2.4576-1.6384l-23.1936-5.7344 30.6688-16.1792z m-30.6176 16.2304\" fill=\"#9FDFFF\" p-id=\"2938\"></path><path d=\"M583.168 716.4416c0.9216-0.4096 1.5872-1.1776 1.8944-2.1504 0.3072-0.9728 0.1024-2.048-0.4608-2.8672a3.89632 3.89632 0 0 0-2.4064-1.6896 4.43392 4.43392 0 0 0-3.1232 0.4608l-30.3616 16.2304 6.1952-21.504c0.3072-0.9728 0.1536-2.048-0.4096-2.9184a3.57376 3.57376 0 0 0-2.4576-1.6384c-2.048-0.4608-4.096 0.6656-4.7616 2.6112l-8.3456 28.416-23.1936 12.4416v-24.832l22.4768-20.7872c0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112a4.02432 4.02432 0 0 0-5.4784 0l-16.9472 15.7696v-32.256a4.10112 4.10112 0 0 0-3.9424-3.072c-1.8432 0-3.4816 1.28-3.9424 3.072v32.256l-16.9472-15.7696a4.02432 4.02432 0 0 0-5.4784 0c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112l22.4768 20.7872v24.832l-23.1936-12.4416-8.3456-28.416a3.9936 3.9936 0 0 0-4.7616-2.6112c-1.024 0.1536-1.8944 0.768-2.4576 1.6384-0.5632 0.8704-0.7168 1.9456-0.4096 2.9184l6.1952 21.504-30.3616-16.2304-1.8944-0.4608a3.8144 3.8144 0 0 0-3.84 2.6112c-0.4096 1.6384 0.4096 3.328 1.8944 4.0448l30.3616 16.0256-23.1936 5.7344c-0.9728 0.2048-1.792 0.8192-2.304 1.6896-0.512 0.8704-0.6144 1.8944-0.3072 2.8672 0.6656 1.9968 2.7648 3.1232 4.7616 2.6112l30.5664-7.6288 23.1936 12.4416-26.2656 14.08-30.8224-7.6288c-2.048-0.4608-4.096 0.6656-4.7616 2.6112-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384l23.3984 5.4784-27.2384 14.592a3.61472 3.61472 0 0 0-1.4336 5.0176c1.1264 1.7408 3.3792 2.3552 5.2736 1.4336l27.2384-14.7968-6.1952 21.504c-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384 2.048 0.4608 4.096-0.6656 4.7616-2.6112l8.1408-28.2112 26.2656-14.08v27.9552l-22.4768 20.7872c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112c1.536 1.4336 3.9424 1.4336 5.4784 0l16.9472-15.7696v29.1328c0.4608 1.792 2.0992 3.072 3.9424 3.072 1.8432 0 3.4816-1.28 3.9424-3.072v-29.1328l16.9472 15.7696c1.536 1.4336 3.9424 1.4336 5.4784 0 0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112l-22.4768-20.7872v-28.2112l26.2656 14.08 8.3456 28.672c0.6656 1.9968 2.7648 3.1232 4.7616 2.6112 1.024-0.1536 1.8944-0.768 2.4576-1.6384 0.5632-0.8704 0.7168-1.9456 0.4096-2.9184l-6.1952-21.504 27.2384 14.7968c1.8432 0.9216 4.1472 0.3072 5.2736-1.4336 0.512-0.8704 0.6144-1.8944 0.3584-2.816a3.5072 3.5072 0 0 0-1.792-2.2016l-27.2384-14.592 23.1936-5.7344c1.8944-0.3584 3.1744-2.1504 2.8672-4.0448a3.85536 3.85536 0 0 0-3.84-3.1232h-0.9728l-30.8224 7.6288-26.2656-14.08 23.1936-12.4416 30.8224 7.8848c2.048 0.4608 4.096-0.6656 4.7616-2.6112 0.3072-0.9728 0.1536-2.048-0.4096-2.9184a3.57376 3.57376 0 0 0-2.4576-1.6384l-23.1936-5.7344 30.6688-16.1792z m-30.5664 16.2304\" fill=\"#9FDFFF\" p-id=\"2939\"></path><path d=\"M876.288 716.4416c0.9216-0.4096 1.5872-1.1776 1.8944-2.1504 0.3072-0.9728 0.1024-2.048-0.4608-2.8672a3.89632 3.89632 0 0 0-2.4064-1.6896 4.43392 4.43392 0 0 0-3.1232 0.4608l-30.3616 16.2304 6.1952-21.504c0.3072-0.9728 0.1536-2.048-0.4096-2.9184a3.57376 3.57376 0 0 0-2.4576-1.6384c-2.048-0.4608-4.096 0.6656-4.7616 2.6112l-8.3456 28.416-23.1936 12.4416v-24.832l22.4768-20.7872c0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112a4.02432 4.02432 0 0 0-5.4784 0l-16.9472 15.7696v-32.256a4.10112 4.10112 0 0 0-3.9424-3.072c-1.8432 0-3.4816 1.28-3.9424 3.072v32.256l-16.9472-15.7696a4.02432 4.02432 0 0 0-5.4784 0c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112l22.4768 20.7872v24.832l-23.1936-12.4416-8.3456-28.416a3.9936 3.9936 0 0 0-4.7616-2.6112c-1.024 0.1536-1.8944 0.768-2.4576 1.6384-0.5632 0.8704-0.7168 1.9456-0.4096 2.9184l6.1952 21.504-30.3616-16.2304-1.8944-0.4608a3.8144 3.8144 0 0 0-3.84 2.6112c-0.4096 1.6384 0.4096 3.328 1.8944 4.0448l30.3616 16.0256-23.1936 5.7344c-0.9728 0.2048-1.792 0.8192-2.304 1.6896-0.512 0.8704-0.6144 1.8944-0.3072 2.8672 0.6656 1.9968 2.7648 3.1232 4.7616 2.6112l30.5664-7.6288 23.1936 12.4416-26.2656 14.08-30.8224-7.6288c-2.048-0.4608-4.096 0.6656-4.7616 2.6112-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384l23.3984 5.4784-27.2384 14.592a3.61472 3.61472 0 0 0-1.4336 5.0176c1.1264 1.7408 3.3792 2.3552 5.2736 1.4336l27.2384-14.7968-6.1952 21.504c-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384 2.048 0.4608 4.096-0.6656 4.7616-2.6112l8.1408-28.2112 26.2656-14.08v27.9552l-22.4768 20.7872c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112c1.536 1.4336 3.9424 1.4336 5.4784 0l16.9472-15.7696v29.1328c0.4608 1.792 2.0992 3.072 3.9424 3.072 1.8432 0 3.4816-1.28 3.9424-3.072v-29.1328l16.9472 15.7696c1.536 1.4336 3.9424 1.4336 5.4784 0 0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112l-22.4768-20.7872v-28.2112l26.2656 14.08 8.3456 28.672c0.6656 1.9968 2.7648 3.1232 4.7616 2.6112 1.024-0.1536 1.8944-0.768 2.4576-1.6384 0.5632-0.8704 0.7168-1.9456 0.4096-2.9184l-6.1952-21.504 27.2384 14.7968c1.8432 0.9216 4.1472 0.3072 5.2736-1.4336 0.512-0.8704 0.6144-1.8944 0.3584-2.816a3.5072 3.5072 0 0 0-1.792-2.2016l-27.2384-14.592 23.1936-5.7344c1.8944-0.3584 3.1744-2.1504 2.8672-4.0448a3.85536 3.85536 0 0 0-3.84-3.1232h-0.9728l-30.8224 7.6288-26.2656-14.08 23.1936-12.4416 30.8224 7.8848c2.048 0.4608 4.096-0.6656 4.7616-2.6112 0.3072-0.9728 0.1536-2.048-0.4096-2.9184a3.57376 3.57376 0 0 0-2.4576-1.6384l-23.1936-5.7344 30.6688-16.1792z m-30.5664 16.2304\" fill=\"#9FDFFF\" p-id=\"2940\"></path><path d=\"M583.168 908.0832c0.9216-0.4096 1.5872-1.1776 1.8944-2.1504 0.3072-0.9728 0.1024-2.048-0.4608-2.8672a3.89632 3.89632 0 0 0-2.4064-1.6896 4.43392 4.43392 0 0 0-3.1232 0.4608l-30.3616 16.2304 6.1952-21.504c0.3072-0.9728 0.1536-2.048-0.4096-2.9184a3.57376 3.57376 0 0 0-2.4576-1.6384c-2.048-0.4608-4.096 0.6656-4.7616 2.6112l-8.3456 28.416-23.1936 12.4416v-24.832l22.4768-20.7872c0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112a4.02432 4.02432 0 0 0-5.4784 0l-16.9472 15.7696v-32.256a4.10112 4.10112 0 0 0-3.9424-3.072c-1.8432 0-3.4816 1.28-3.9424 3.072v32.256l-16.9472-15.7696a4.02432 4.02432 0 0 0-5.4784 0c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112l22.4768 20.7872v24.832l-23.1936-12.4416-8.3456-28.416a3.9936 3.9936 0 0 0-4.7616-2.6112c-1.024 0.1536-1.8944 0.768-2.4576 1.6384-0.5632 0.8704-0.7168 1.9456-0.4096 2.9184l6.1952 21.504-30.3616-16.2304-1.8944-0.4608a3.8144 3.8144 0 0 0-3.84 2.6112c-0.4096 1.6384 0.4096 3.328 1.8944 4.0448l30.3616 16.0256-23.1936 5.7344c-0.9728 0.2048-1.792 0.8192-2.304 1.6896-0.512 0.8704-0.6144 1.8944-0.3072 2.8672 0.6656 1.9968 2.7648 3.1232 4.7616 2.6112l30.5664-7.6288 23.1936 12.4416-26.2656 14.08-30.8224-7.6288c-2.048-0.4608-4.096 0.6656-4.7616 2.6112-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384l23.3984 5.4784-27.2384 14.592a3.61472 3.61472 0 0 0-1.4336 5.0176c1.1264 1.7408 3.3792 2.3552 5.2736 1.4336l27.2384-14.7968-6.1952 21.504c-0.3072 0.9728-0.1536 2.048 0.4096 2.9184 0.5632 0.8704 1.4336 1.4848 2.4576 1.6384 2.048 0.4608 4.096-0.6656 4.7616-2.6112l8.1408-28.2112 26.2656-14.08v27.9552l-22.4768 20.7872c-0.8192 0.6144-1.28 1.5872-1.28 2.6112s0.4608 1.9968 1.28 2.6112c1.536 1.4336 3.9424 1.4336 5.4784 0l16.9472-15.7696v29.1328c0.4608 1.792 2.0992 3.072 3.9424 3.072 1.8432 0 3.4816-1.28 3.9424-3.072v-29.1328l16.9472 15.7696c1.536 1.4336 3.9424 1.4336 5.4784 0 0.8192-0.6144 1.28-1.5872 1.28-2.6112s-0.4608-1.9968-1.28-2.6112l-22.4768-20.7872v-28.2112l26.2656 14.08 8.3456 28.672c0.6656 1.9968 2.7648 3.1232 4.7616 2.6112 1.024-0.1536 1.8944-0.768 2.4576-1.6384 0.5632-0.8704 0.7168-1.9456 0.4096-2.9184l-6.1952-21.504 27.2384 14.7968c1.8432 0.9216 4.1472 0.3072 5.2736-1.4336 0.512-0.8704 0.6144-1.8944 0.3584-2.816a3.5072 3.5072 0 0 0-1.792-2.2016l-27.2384-14.592 23.1936-5.7344c1.8944-0.3584 3.1744-2.1504 2.8672-4.0448a3.85536 3.85536 0 0 0-3.84-3.1232h-0.9728l-30.8224 7.6288-26.2656-14.08 23.1936-12.4416 30.8224 7.8848c2.048 0.4608 4.096-0.6656 4.7616-2.6112 0.3072-0.9728 0.1536-2.048-0.4096-2.9184a3.57376 3.57376 0 0 0-2.4576-1.6384l-23.1936-5.7344 30.6688-16.1792z m-30.5664 16.2304\" fill=\"#9FDFFF\" p-id=\"2941\"></path></svg>','<svg t=\"1690592352675\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"3088\" width=\"200\" height=\"200\"><path d=\"M402.432 307.968m-286.5152 0a286.5152 286.5152 0 1 0 573.0304 0 286.5152 286.5152 0 1 0-573.0304 0Z\" fill=\"#9FDFFF\" p-id=\"3089\"></path><path d=\"M731.648 498.5856m-253.0816 0a253.0816 253.0816 0 1 0 506.1632 0 253.0816 253.0816 0 1 0-506.1632 0Z\" fill=\"#78CCFF\" p-id=\"3090\"></path><path d=\"M268.4416 522.4448m-229.2224 0a229.2224 229.2224 0 1 0 458.4448 0 229.2224 229.2224 0 1 0-458.4448 0Z\" fill=\"#78CCFF\" p-id=\"3091\"></path><path d=\"M266.0864 522.4448h463.2064v229.2224H266.0864z\" fill=\"#78CCFF\" p-id=\"3092\"></path><path d=\"M264.2944 742.912a3.072 3.072 0 0 0 1.6384-1.8432c0.256-0.8704 0.1024-1.7408-0.4096-2.5088a3.24608 3.24608 0 0 0-2.048-1.4336 3.85536 3.85536 0 0 0-2.7136 0.4096l-26.3168 14.08 5.376-18.6368c0.256-0.8704 0.1024-1.792-0.3584-2.5088a2.8416 2.8416 0 0 0-2.1504-1.3824 3.56352 3.56352 0 0 0-4.1472 2.2528l-7.2704 24.6272-20.0704 10.752v-21.5552l19.456-18.0224c0.7168-0.5632 1.1264-1.3824 1.1264-2.2528 0-0.8704-0.4096-1.7408-1.1264-2.2528a3.5328 3.5328 0 0 0-4.7616 0l-14.6944 13.6704v-27.9552a3.5072 3.5072 0 0 0-3.4304-2.6624c-1.6384 0-3.0208 1.1264-3.4304 2.6624v27.9552l-14.6944-13.6704a3.5328 3.5328 0 0 0-4.7616 0c-0.7168 0.5632-1.1264 1.3824-1.1264 2.2528 0 0.8704 0.4096 1.7408 1.1264 2.2528l19.456 18.0224v21.5552l-20.0704-10.752-7.2704-24.6272a3.51232 3.51232 0 0 0-4.1472-2.2528c-0.8704 0.1536-1.6384 0.6656-2.1504 1.3824a3.1232 3.1232 0 0 0-0.3584 2.5088l5.376 18.6368-26.3168-14.08-1.6384-0.4096a3.38432 3.38432 0 0 0-3.328 2.2528c-0.3584 1.4336 0.3584 2.8672 1.6384 3.5328l26.3168 13.8752-20.0704 4.9664c-0.8192 0.2048-1.5872 0.7168-1.9968 1.4848a3.4304 3.4304 0 0 0-0.3072 2.4576c0.6144 1.6896 2.4064 2.7136 4.1472 2.2528l26.5216-6.6048 20.0704 10.752-22.784 12.2368-26.7264-6.6048a3.56352 3.56352 0 0 0-4.1472 2.2528c-0.256 0.8704-0.1024 1.792 0.3584 2.5088 0.4608 0.768 1.2288 1.28 2.1504 1.3824l20.2752 4.7616-23.6032 12.6464c-0.768 0.4096-1.3312 1.0752-1.536 1.8944-0.256 0.8192-0.1024 1.6896 0.3072 2.4576 0.9728 1.536 2.9184 2.048 4.5568 1.2288l23.6032-12.8512-5.376 18.6368c-0.256 0.8704-0.1024 1.792 0.3584 2.5088 0.4608 0.768 1.2288 1.28 2.1504 1.3824 1.7408 0.4096 3.5328-0.5632 4.1472-2.2528l7.0656-24.4224 22.784-12.2368v24.2176l-19.456 18.0224c-0.7168 0.5632-1.1264 1.3824-1.1264 2.2528s0.4096 1.7408 1.1264 2.2528c1.3312 1.2288 3.4304 1.2288 4.7616 0l14.6944-13.6704v25.2416c0.4096 1.5872 1.792 2.6624 3.4304 2.6624 1.6384 0 3.0208-1.1264 3.4304-2.6624v-25.2416l14.6944 13.6704c1.3312 1.2288 3.4304 1.2288 4.7616 0 0.7168-0.5632 1.1264-1.3824 1.1264-2.2528s-0.4096-1.7408-1.1264-2.2528l-19.456-18.0224v-24.4224l22.784 12.2368 7.2704 24.832c0.6144 1.6896 2.4064 2.7136 4.1472 2.2528 0.8704-0.1536 1.6384-0.6656 2.1504-1.3824a3.1232 3.1232 0 0 0 0.3584-2.5088l-5.376-18.6368 23.6032 12.8512c1.5872 0.8192 3.584 0.256 4.5568-1.2288 0.4608-0.7168 0.5632-1.6384 0.3072-2.4576a3.17952 3.17952 0 0 0-1.536-1.8944l-23.6032-12.6464 20.0704-4.9664a3.1744 3.1744 0 0 0 2.5088-3.5328 3.3536 3.3536 0 0 0-3.328-2.7136h-0.8192l-26.7264 6.6048-22.784-12.2368 20.0704-10.752 26.7264 6.8096c1.7408 0.4096 3.5328-0.5632 4.1472-2.2528 0.256-0.8704 0.1024-1.792-0.3584-2.5088a2.8416 2.8416 0 0 0-2.1504-1.3824l-20.0704-4.9664 26.5216-14.0288z m-26.5216 14.08M461.0048 742.912a3.072 3.072 0 0 0 1.6384-1.8432c0.256-0.8704 0.1024-1.7408-0.4096-2.5088a3.24608 3.24608 0 0 0-2.048-1.4336 3.85536 3.85536 0 0 0-2.7136 0.4096l-26.3168 14.08 5.376-18.6368c0.256-0.8704 0.1024-1.792-0.3584-2.5088a2.8416 2.8416 0 0 0-2.1504-1.3824 3.56352 3.56352 0 0 0-4.1472 2.2528l-7.2704 24.6272-20.0704 10.752v-21.5552l19.456-18.0224c0.7168-0.5632 1.1264-1.3824 1.1264-2.2528 0-0.8704-0.4096-1.7408-1.1264-2.2528a3.5328 3.5328 0 0 0-4.7616 0l-14.6944 13.6704v-27.9552a3.5072 3.5072 0 0 0-3.4304-2.6624c-1.6384 0-3.0208 1.1264-3.4304 2.6624v27.9552l-14.6944-13.6704a3.5328 3.5328 0 0 0-4.7616 0c-0.7168 0.5632-1.1264 1.3824-1.1264 2.2528 0 0.8704 0.4096 1.7408 1.1264 2.2528l19.456 18.0224v21.5552l-20.0704-10.752-7.2704-24.6272a3.51232 3.51232 0 0 0-4.1472-2.2528c-0.8704 0.1536-1.6384 0.6656-2.1504 1.3824a3.1232 3.1232 0 0 0-0.3584 2.5088l5.376 18.6368-26.3168-14.08-1.6384-0.4096a3.38432 3.38432 0 0 0-3.328 2.2528c-0.3584 1.4336 0.3584 2.8672 1.6384 3.5328l26.3168 13.8752-20.0704 4.9664c-0.8192 0.2048-1.5872 0.7168-1.9968 1.4848a3.4304 3.4304 0 0 0-0.3072 2.4576c0.6144 1.6896 2.4064 2.7136 4.1472 2.2528l26.5216-6.6048 20.0704 10.752-22.784 12.2368-26.7264-6.6048a3.56352 3.56352 0 0 0-4.1472 2.2528c-0.256 0.8704-0.1024 1.792 0.3584 2.5088 0.4608 0.768 1.2288 1.28 2.1504 1.3824l20.2752 4.7616-23.6032 12.6464c-0.768 0.4096-1.3312 1.0752-1.536 1.8944-0.256 0.8192-0.1024 1.6896 0.3072 2.4576 0.9728 1.536 2.9184 2.048 4.5568 1.2288l23.6032-12.8512-5.376 18.6368c-0.256 0.8704-0.1024 1.792 0.3584 2.5088 0.4608 0.768 1.2288 1.28 2.1504 1.3824 1.7408 0.4096 3.5328-0.5632 4.1472-2.2528l7.0656-24.4224 22.784-12.2368v24.2176l-19.456 18.0224c-0.7168 0.5632-1.1264 1.3824-1.1264 2.2528s0.4096 1.7408 1.1264 2.2528c1.3312 1.2288 3.4304 1.2288 4.7616 0l14.6944-13.6704v25.2416c0.4096 1.5872 1.792 2.6624 3.4304 2.6624 1.6384 0 3.0208-1.1264 3.4304-2.6624v-25.2416l14.6944 13.6704c1.3312 1.2288 3.4304 1.2288 4.7616 0 0.7168-0.5632 1.1264-1.3824 1.1264-2.2528s-0.4096-1.7408-1.1264-2.2528l-19.456-18.0224v-24.4224l22.784 12.2368 7.2704 24.832c0.6144 1.6896 2.4064 2.7136 4.1472 2.2528 0.8704-0.1536 1.6384-0.6656 2.1504-1.3824a3.1232 3.1232 0 0 0 0.3584-2.5088l-5.376-18.6368 23.6032 12.8512c1.5872 0.8192 3.584 0.256 4.5568-1.2288 0.4608-0.7168 0.5632-1.6384 0.3072-2.4576a3.17952 3.17952 0 0 0-1.536-1.8944l-23.6032-12.6464 20.0704-4.9664a3.1744 3.1744 0 0 0 2.5088-3.5328 3.3536 3.3536 0 0 0-3.328-2.7136h-0.8192l-26.7264 6.6048-22.784-12.2368 20.0704-10.752 26.7264 6.8096c1.7408 0.4096 3.5328-0.5632 4.1472-2.2528 0.256-0.8704 0.1024-1.792-0.3584-2.5088a2.8416 2.8416 0 0 0-2.1504-1.3824l-20.0704-4.9664 26.5216-14.0288z m-26.5216 14.08M657.7152 744.3456a3.072 3.072 0 0 0 1.6384-1.8432c0.256-0.8704 0.1024-1.7408-0.4096-2.5088a3.24608 3.24608 0 0 0-2.048-1.4336 3.85536 3.85536 0 0 0-2.7136 0.4096l-26.3168 14.08 5.376-18.6368c0.256-0.8704 0.1024-1.792-0.3584-2.5088a2.8416 2.8416 0 0 0-2.1504-1.3824 3.56352 3.56352 0 0 0-4.1472 2.2528l-7.2704 24.6272-20.0704 10.752v-21.5552l19.456-18.0224c0.7168-0.5632 1.1264-1.3824 1.1264-2.2528 0-0.8704-0.4096-1.7408-1.1264-2.2528a3.5328 3.5328 0 0 0-4.7616 0l-14.6944 13.6704v-27.9552a3.5072 3.5072 0 0 0-3.4304-2.6624c-1.6384 0-3.0208 1.1264-3.4304 2.6624v27.9552l-14.6944-13.6704a3.5328 3.5328 0 0 0-4.7616 0c-0.7168 0.5632-1.1264 1.3824-1.1264 2.2528 0 0.8704 0.4096 1.7408 1.1264 2.2528l19.456 18.0224v21.5552l-20.0704-10.752-7.2704-24.6272a3.51232 3.51232 0 0 0-4.1472-2.2528c-0.8704 0.1536-1.6384 0.6656-2.1504 1.3824a3.1232 3.1232 0 0 0-0.3584 2.5088l5.376 18.6368-26.3168-14.08-1.6384-0.4096a3.38432 3.38432 0 0 0-3.328 2.2528c-0.3584 1.4336 0.3584 2.8672 1.6384 3.5328l26.3168 13.8752-20.0704 4.9664c-0.8192 0.2048-1.5872 0.7168-1.9968 1.4848a3.4304 3.4304 0 0 0-0.3072 2.4576c0.6144 1.6896 2.4064 2.7136 4.1472 2.2528l26.5216-6.6048 20.0704 10.752-22.784 12.2368-26.7264-6.6048a3.56352 3.56352 0 0 0-4.1472 2.2528c-0.256 0.8704-0.1024 1.792 0.3584 2.5088 0.4608 0.768 1.2288 1.28 2.1504 1.3824l20.2752 4.7616-23.6032 12.6464c-0.768 0.4096-1.3312 1.0752-1.536 1.8944-0.256 0.8192-0.1024 1.6896 0.3072 2.4576 0.9728 1.536 2.9184 2.048 4.5568 1.2288l23.6032-12.8512-5.376 18.6368c-0.256 0.8704-0.1024 1.792 0.3584 2.5088 0.4608 0.768 1.2288 1.28 2.1504 1.3824 1.7408 0.4096 3.5328-0.5632 4.1472-2.2528l7.0656-24.4224 22.784-12.2368v24.2176l-19.456 18.0224c-0.7168 0.5632-1.1264 1.3824-1.1264 2.2528 0 0.8704 0.4096 1.7408 1.1264 2.2528 1.3312 1.2288 3.4304 1.2288 4.7616 0l14.6944-13.6704v25.2416c0.4096 1.5872 1.792 2.6624 3.4304 2.6624 1.6384 0 3.0208-1.1264 3.4304-2.6624v-25.2416l14.6944 13.6704c1.3312 1.2288 3.4304 1.2288 4.7616 0 0.7168-0.5632 1.1264-1.3824 1.1264-2.2528 0-0.8704-0.4096-1.7408-1.1264-2.2528l-19.456-18.0224v-24.4224l22.784 12.2368 7.2704 24.832c0.6144 1.6896 2.4064 2.7136 4.1472 2.2528 0.8704-0.1536 1.6384-0.6656 2.1504-1.3824a3.1232 3.1232 0 0 0 0.3584-2.5088l-5.376-18.6368 23.6032 12.8512c1.5872 0.8192 3.584 0.256 4.5568-1.2288 0.4608-0.7168 0.5632-1.6384 0.3072-2.4576a3.17952 3.17952 0 0 0-1.536-1.8944l-23.6032-12.6464 20.0704-4.9664a3.1744 3.1744 0 0 0 2.5088-3.5328 3.3536 3.3536 0 0 0-3.328-2.7136h-0.8192l-26.7264 6.6048-22.784-12.2368 20.0704-10.752 26.7264 6.8096c1.7408 0.4096 3.5328-0.5632 4.1472-2.2528 0.256-0.8704 0.1024-1.792-0.3584-2.5088a2.8416 2.8416 0 0 0-2.1504-1.3824l-20.0704-4.9664 26.5216-14.0288z m-26.4704 14.08M854.4256 742.912a3.072 3.072 0 0 0 1.6384-1.8432c0.256-0.8704 0.1024-1.7408-0.4096-2.5088a3.24608 3.24608 0 0 0-2.048-1.4336 3.85536 3.85536 0 0 0-2.7136 0.4096l-26.3168 14.08 5.376-18.6368c0.256-0.8704 0.1024-1.792-0.3584-2.5088a2.8416 2.8416 0 0 0-2.1504-1.3824 3.56352 3.56352 0 0 0-4.1472 2.2528l-7.2704 24.6272-20.0704 10.752v-21.5552l19.456-18.0224c0.7168-0.5632 1.1264-1.3824 1.1264-2.2528 0-0.8704-0.4096-1.7408-1.1264-2.2528a3.5328 3.5328 0 0 0-4.7616 0l-14.6944 13.6704v-27.9552a3.5072 3.5072 0 0 0-3.4304-2.6624c-1.6384 0-3.0208 1.1264-3.4304 2.6624v27.9552l-14.6944-13.6704a3.5328 3.5328 0 0 0-4.7616 0c-0.7168 0.5632-1.1264 1.3824-1.1264 2.2528 0 0.8704 0.4096 1.7408 1.1264 2.2528l19.456 18.0224v21.5552l-20.0704-10.752-7.2704-24.6272a3.51232 3.51232 0 0 0-4.1472-2.2528c-0.8704 0.1536-1.6384 0.6656-2.1504 1.3824a3.1232 3.1232 0 0 0-0.3584 2.5088l5.376 18.6368-26.3168-14.08-1.6384-0.4096a3.38432 3.38432 0 0 0-3.328 2.2528c-0.3584 1.4336 0.3584 2.8672 1.6384 3.5328l26.3168 13.8752-20.0704 4.9664c-0.8192 0.2048-1.5872 0.7168-1.9968 1.4848a3.4304 3.4304 0 0 0-0.3072 2.4576c0.6144 1.6896 2.4064 2.7136 4.1472 2.2528l26.5216-6.6048 20.0704 10.752-22.784 12.2368-26.7264-6.6048a3.56352 3.56352 0 0 0-4.1472 2.2528c-0.256 0.8704-0.1024 1.792 0.3584 2.5088 0.4608 0.768 1.2288 1.28 2.1504 1.3824l20.2752 4.7616-23.6032 12.6464c-0.768 0.4096-1.3312 1.0752-1.536 1.8944-0.256 0.8192-0.1024 1.6896 0.3072 2.4576 0.9728 1.536 2.9184 2.048 4.5568 1.2288l23.6032-12.8512-5.376 18.6368c-0.256 0.8704-0.1024 1.792 0.3584 2.5088 0.4608 0.768 1.2288 1.28 2.1504 1.3824 1.7408 0.4096 3.5328-0.5632 4.1472-2.2528l7.0656-24.4224 22.784-12.2368v24.2176l-19.456 18.0224c-0.7168 0.5632-1.1264 1.3824-1.1264 2.2528s0.4096 1.7408 1.1264 2.2528c1.3312 1.2288 3.4304 1.2288 4.7616 0l14.6944-13.6704v25.2416c0.4096 1.5872 1.792 2.6624 3.4304 2.6624 1.6384 0 3.0208-1.1264 3.4304-2.6624v-25.2416l14.6944 13.6704c1.3312 1.2288 3.4304 1.2288 4.7616 0 0.7168-0.5632 1.1264-1.3824 1.1264-2.2528s-0.4096-1.7408-1.1264-2.2528l-19.456-18.0224v-24.4224l22.784 12.2368 7.2704 24.832c0.6144 1.6896 2.4064 2.7136 4.1472 2.2528 0.8704-0.1536 1.6384-0.6656 2.1504-1.3824a3.1232 3.1232 0 0 0 0.3584-2.5088l-5.376-18.6368 23.6032 12.8512c1.5872 0.8192 3.584 0.256 4.5568-1.2288 0.4608-0.7168 0.5632-1.6384 0.3072-2.4576a3.17952 3.17952 0 0 0-1.536-1.8944l-23.6032-12.6464 20.0704-4.9664a3.1744 3.1744 0 0 0 2.5088-3.5328 3.3536 3.3536 0 0 0-3.328-2.7136h-0.8192l-26.7264 6.6048-22.784-12.2368 20.0704-10.752 26.7264 6.8096c1.7408 0.4096 3.5328-0.5632 4.1472-2.2528 0.256-0.8704 0.1024-1.792-0.3584-2.5088a2.8416 2.8416 0 0 0-2.1504-1.3824l-20.0704-4.9664 26.5216-14.0288z m-26.4704 14.08\" fill=\"#9FDFFF\" p-id=\"3093\"></path><path d=\"M264.2944 896.512a3.072 3.072 0 0 0 1.6384-1.8432c0.256-0.8704 0.1024-1.7408-0.4096-2.5088a3.24608 3.24608 0 0 0-2.048-1.4336 3.85536 3.85536 0 0 0-2.7136 0.4096l-26.3168 14.08 5.376-18.6368c0.256-0.8704 0.1024-1.792-0.3584-2.5088a2.8416 2.8416 0 0 0-2.1504-1.3824 3.56352 3.56352 0 0 0-4.1472 2.2528l-7.2704 24.6272-20.0704 10.752v-21.5552l19.456-18.0224c0.7168-0.5632 1.1264-1.3824 1.1264-2.2528 0-0.8704-0.4096-1.7408-1.1264-2.2528a3.5328 3.5328 0 0 0-4.7616 0l-14.6944 13.6704v-27.9552a3.5072 3.5072 0 0 0-3.4304-2.6624c-1.6384 0-3.0208 1.1264-3.4304 2.6624v27.9552l-14.6944-13.6704a3.5328 3.5328 0 0 0-4.7616 0c-0.7168 0.5632-1.1264 1.3824-1.1264 2.2528 0 0.8704 0.4096 1.7408 1.1264 2.2528l19.456 18.0224v21.5552l-20.0704-10.752-7.2704-24.6272a3.51232 3.51232 0 0 0-4.1472-2.2528c-0.8704 0.1536-1.6384 0.6656-2.1504 1.3824a3.1232 3.1232 0 0 0-0.3584 2.5088l5.376 18.6368-26.3168-14.08-1.6384-0.4096a3.38432 3.38432 0 0 0-3.328 2.2528c-0.3584 1.4336 0.3584 2.8672 1.6384 3.5328l26.3168 13.8752-20.0704 4.9664c-0.8192 0.2048-1.5872 0.7168-1.9968 1.4848a3.4304 3.4304 0 0 0-0.3072 2.4576c0.6144 1.6896 2.4064 2.7136 4.1472 2.2528l26.5216-6.6048 20.0704 10.752-22.784 12.2368-26.7264-6.6048a3.56352 3.56352 0 0 0-4.1472 2.2528c-0.256 0.8704-0.1024 1.792 0.3584 2.5088 0.4608 0.768 1.2288 1.28 2.1504 1.3824l20.2752 4.7616-23.6032 12.6464c-0.768 0.4096-1.3312 1.0752-1.536 1.8944-0.256 0.8192-0.1024 1.6896 0.3072 2.4576 0.9728 1.536 2.9184 2.048 4.5568 1.2288l23.6032-12.8512-5.376 18.6368c-0.256 0.8704-0.1024 1.792 0.3584 2.5088 0.4608 0.768 1.2288 1.28 2.1504 1.3824 1.7408 0.4096 3.5328-0.5632 4.1472-2.2528l7.0656-24.4224 22.784-12.2368v24.2176l-19.456 18.0224c-0.7168 0.5632-1.1264 1.3824-1.1264 2.2528s0.4096 1.7408 1.1264 2.2528c1.3312 1.2288 3.4304 1.2288 4.7616 0l14.6944-13.6704v25.2416c0.4096 1.5872 1.792 2.6624 3.4304 2.6624 1.6384 0 3.0208-1.1264 3.4304-2.6624v-25.2416l14.6944 13.6704c1.3312 1.2288 3.4304 1.2288 4.7616 0 0.7168-0.5632 1.1264-1.3824 1.1264-2.2528s-0.4096-1.7408-1.1264-2.2528l-19.456-18.0224v-24.4224l22.784 12.2368 7.2704 24.832c0.6144 1.6896 2.4064 2.7136 4.1472 2.2528 0.8704-0.1536 1.6384-0.6656 2.1504-1.3824a3.1232 3.1232 0 0 0 0.3584-2.5088l-5.376-18.6368 23.6032 12.8512c1.5872 0.8192 3.584 0.256 4.5568-1.2288 0.4608-0.7168 0.5632-1.6384 0.3072-2.4576a3.17952 3.17952 0 0 0-1.536-1.8944l-23.6032-12.6464 20.0704-4.9664a3.1744 3.1744 0 0 0 2.5088-3.5328 3.3536 3.3536 0 0 0-3.328-2.7136h-0.8192l-26.7264 6.6048-22.784-12.2368 20.0704-10.752 26.7264 6.8096c1.7408 0.4096 3.5328-0.5632 4.1472-2.2528 0.256-0.8704 0.1024-1.792-0.3584-2.5088a2.8416 2.8416 0 0 0-2.1504-1.3824l-20.0704-4.9664 26.5216-14.0288z m-26.5216 14.08\" fill=\"#78CCFF\" p-id=\"3094\"></path><path d=\"M461.0048 896.512a3.072 3.072 0 0 0 1.6384-1.8432c0.256-0.8704 0.1024-1.7408-0.4096-2.5088a3.24608 3.24608 0 0 0-2.048-1.4336 3.85536 3.85536 0 0 0-2.7136 0.4096l-26.3168 14.08 5.376-18.6368c0.256-0.8704 0.1024-1.792-0.3584-2.5088a2.8416 2.8416 0 0 0-2.1504-1.3824 3.56352 3.56352 0 0 0-4.1472 2.2528l-7.2704 24.6272-20.0704 10.752v-21.5552l19.456-18.0224c0.7168-0.5632 1.1264-1.3824 1.1264-2.2528 0-0.8704-0.4096-1.7408-1.1264-2.2528a3.5328 3.5328 0 0 0-4.7616 0l-14.6944 13.6704v-27.9552a3.5072 3.5072 0 0 0-3.4304-2.6624c-1.6384 0-3.0208 1.1264-3.4304 2.6624v27.9552l-14.6944-13.6704a3.5328 3.5328 0 0 0-4.7616 0c-0.7168 0.5632-1.1264 1.3824-1.1264 2.2528 0 0.8704 0.4096 1.7408 1.1264 2.2528l19.456 18.0224v21.5552l-20.0704-10.752-7.2704-24.6272a3.51232 3.51232 0 0 0-4.1472-2.2528c-0.8704 0.1536-1.6384 0.6656-2.1504 1.3824a3.1232 3.1232 0 0 0-0.3584 2.5088l5.376 18.6368-26.3168-14.08-1.6384-0.4096a3.38432 3.38432 0 0 0-3.328 2.2528c-0.3584 1.4336 0.3584 2.8672 1.6384 3.5328l26.3168 13.8752-20.0704 4.9664c-0.8192 0.2048-1.5872 0.7168-1.9968 1.4848a3.4304 3.4304 0 0 0-0.3072 2.4576c0.6144 1.6896 2.4064 2.7136 4.1472 2.2528l26.5216-6.6048 20.0704 10.752-22.784 12.2368-26.7264-6.6048a3.56352 3.56352 0 0 0-4.1472 2.2528c-0.256 0.8704-0.1024 1.792 0.3584 2.5088 0.4608 0.768 1.2288 1.28 2.1504 1.3824l20.2752 4.7616-23.6032 12.6464c-0.768 0.4096-1.3312 1.0752-1.536 1.8944-0.256 0.8192-0.1024 1.6896 0.3072 2.4576 0.9728 1.536 2.9184 2.048 4.5568 1.2288l23.6032-12.8512-5.376 18.6368c-0.256 0.8704-0.1024 1.792 0.3584 2.5088 0.4608 0.768 1.2288 1.28 2.1504 1.3824 1.7408 0.4096 3.5328-0.5632 4.1472-2.2528l7.0656-24.4224 22.784-12.2368v24.2176l-19.456 18.0224c-0.7168 0.5632-1.1264 1.3824-1.1264 2.2528s0.4096 1.7408 1.1264 2.2528c1.3312 1.2288 3.4304 1.2288 4.7616 0l14.6944-13.6704v25.2416c0.4096 1.5872 1.792 2.6624 3.4304 2.6624 1.6384 0 3.0208-1.1264 3.4304-2.6624v-25.2416l14.6944 13.6704c1.3312 1.2288 3.4304 1.2288 4.7616 0 0.7168-0.5632 1.1264-1.3824 1.1264-2.2528s-0.4096-1.7408-1.1264-2.2528l-19.456-18.0224v-24.4224l22.784 12.2368 7.2704 24.832c0.6144 1.6896 2.4064 2.7136 4.1472 2.2528 0.8704-0.1536 1.6384-0.6656 2.1504-1.3824a3.1232 3.1232 0 0 0 0.3584-2.5088l-5.376-18.6368 23.6032 12.8512c1.5872 0.8192 3.584 0.256 4.5568-1.2288 0.4608-0.7168 0.5632-1.6384 0.3072-2.4576a3.17952 3.17952 0 0 0-1.536-1.8944l-23.6032-12.6464 20.0704-4.9664a3.1744 3.1744 0 0 0 2.5088-3.5328 3.3536 3.3536 0 0 0-3.328-2.7136h-0.8192l-26.7264 6.6048-22.784-12.2368 20.0704-10.752 26.7264 6.8096c1.7408 0.4096 3.5328-0.5632 4.1472-2.2528 0.256-0.8704 0.1024-1.792-0.3584-2.5088a2.8416 2.8416 0 0 0-2.1504-1.3824l-20.0704-4.9664 26.5216-14.0288z m-26.5216 14.08\" fill=\"#78CCFF\" p-id=\"3095\"></path><path d=\"M657.7152 897.9456a3.072 3.072 0 0 0 1.6384-1.8432c0.256-0.8704 0.1024-1.7408-0.4096-2.5088a3.24608 3.24608 0 0 0-2.048-1.4336 3.85536 3.85536 0 0 0-2.7136 0.4096l-26.3168 14.08 5.376-18.6368c0.256-0.8704 0.1024-1.792-0.3584-2.5088a2.8416 2.8416 0 0 0-2.1504-1.3824 3.56352 3.56352 0 0 0-4.1472 2.2528l-7.2704 24.6272-20.0704 10.752v-21.5552l19.456-18.0224c0.7168-0.5632 1.1264-1.3824 1.1264-2.2528 0-0.8704-0.4096-1.7408-1.1264-2.2528a3.5328 3.5328 0 0 0-4.7616 0l-14.6944 13.6704v-27.9552a3.5072 3.5072 0 0 0-3.4304-2.6624c-1.6384 0-3.0208 1.1264-3.4304 2.6624v27.9552l-14.6944-13.6704a3.5328 3.5328 0 0 0-4.7616 0c-0.7168 0.5632-1.1264 1.3824-1.1264 2.2528 0 0.8704 0.4096 1.7408 1.1264 2.2528l19.456 18.0224v21.5552l-20.0704-10.752-7.2704-24.6272a3.51232 3.51232 0 0 0-4.1472-2.2528c-0.8704 0.1536-1.6384 0.6656-2.1504 1.3824a3.1232 3.1232 0 0 0-0.3584 2.5088l5.376 18.6368-26.3168-14.08-1.6384-0.4096a3.38432 3.38432 0 0 0-3.328 2.2528c-0.3584 1.4336 0.3584 2.8672 1.6384 3.5328l26.3168 13.8752-20.0704 4.9664c-0.8192 0.2048-1.5872 0.7168-1.9968 1.4848a3.4304 3.4304 0 0 0-0.3072 2.4576c0.6144 1.6896 2.4064 2.7136 4.1472 2.2528l26.5216-6.6048 20.0704 10.752-22.784 12.2368-26.7264-6.6048a3.56352 3.56352 0 0 0-4.1472 2.2528c-0.256 0.8704-0.1024 1.792 0.3584 2.5088 0.4608 0.768 1.2288 1.28 2.1504 1.3824l20.2752 4.7616-23.6032 12.6464c-0.768 0.4096-1.3312 1.0752-1.536 1.8944-0.256 0.8192-0.1024 1.6896 0.3072 2.4576 0.9728 1.536 2.9184 2.048 4.5568 1.2288l23.6032-12.8512-5.376 18.6368c-0.256 0.8704-0.1024 1.792 0.3584 2.5088 0.4608 0.768 1.2288 1.28 2.1504 1.3824 1.7408 0.4096 3.5328-0.5632 4.1472-2.2528l7.0656-24.4224 22.784-12.2368v24.2176l-19.456 18.0224c-0.7168 0.5632-1.1264 1.3824-1.1264 2.2528 0 0.8704 0.4096 1.7408 1.1264 2.2528 1.3312 1.2288 3.4304 1.2288 4.7616 0l14.6944-13.6704v25.2416c0.4096 1.5872 1.792 2.6624 3.4304 2.6624 1.6384 0 3.0208-1.1264 3.4304-2.6624v-25.2416l14.6944 13.6704c1.3312 1.2288 3.4304 1.2288 4.7616 0 0.7168-0.5632 1.1264-1.3824 1.1264-2.2528 0-0.8704-0.4096-1.7408-1.1264-2.2528l-19.456-18.0224v-24.4224l22.784 12.2368 7.2704 24.832c0.6144 1.6896 2.4064 2.7136 4.1472 2.2528 0.8704-0.1536 1.6384-0.6656 2.1504-1.3824a3.1232 3.1232 0 0 0 0.3584-2.5088l-5.376-18.6368 23.6032 12.8512c1.5872 0.8192 3.584 0.256 4.5568-1.2288 0.4608-0.7168 0.5632-1.6384 0.3072-2.4576a3.17952 3.17952 0 0 0-1.536-1.8944l-23.6032-12.6464 20.0704-4.9664a3.1744 3.1744 0 0 0 2.5088-3.5328 3.3536 3.3536 0 0 0-3.328-2.7136h-0.8192l-26.7264 6.6048-22.784-12.2368 20.0704-10.752 26.7264 6.8096c1.7408 0.4096 3.5328-0.5632 4.1472-2.2528 0.256-0.8704 0.1024-1.792-0.3584-2.5088a2.8416 2.8416 0 0 0-2.1504-1.3824l-20.0704-4.9664 26.5216-14.0288z m-26.4704 14.08\" fill=\"#78CCFF\" p-id=\"3096\"></path><path d=\"M854.4256 896.512a3.072 3.072 0 0 0 1.6384-1.8432c0.256-0.8704 0.1024-1.7408-0.4096-2.5088a3.24608 3.24608 0 0 0-2.048-1.4336 3.85536 3.85536 0 0 0-2.7136 0.4096l-26.3168 14.08 5.376-18.6368c0.256-0.8704 0.1024-1.792-0.3584-2.5088a2.8416 2.8416 0 0 0-2.1504-1.3824 3.56352 3.56352 0 0 0-4.1472 2.2528l-7.2704 24.6272-20.0704 10.752v-21.5552l19.456-18.0224c0.7168-0.5632 1.1264-1.3824 1.1264-2.2528 0-0.8704-0.4096-1.7408-1.1264-2.2528a3.5328 3.5328 0 0 0-4.7616 0l-14.6944 13.6704v-27.9552a3.5072 3.5072 0 0 0-3.4304-2.6624c-1.6384 0-3.0208 1.1264-3.4304 2.6624v27.9552l-14.6944-13.6704a3.5328 3.5328 0 0 0-4.7616 0c-0.7168 0.5632-1.1264 1.3824-1.1264 2.2528 0 0.8704 0.4096 1.7408 1.1264 2.2528l19.456 18.0224v21.5552l-20.0704-10.752-7.2704-24.6272a3.51232 3.51232 0 0 0-4.1472-2.2528c-0.8704 0.1536-1.6384 0.6656-2.1504 1.3824a3.1232 3.1232 0 0 0-0.3584 2.5088l5.376 18.6368-26.3168-14.08-1.6384-0.4096a3.38432 3.38432 0 0 0-3.328 2.2528c-0.3584 1.4336 0.3584 2.8672 1.6384 3.5328l26.3168 13.8752-20.0704 4.9664c-0.8192 0.2048-1.5872 0.7168-1.9968 1.4848a3.4304 3.4304 0 0 0-0.3072 2.4576c0.6144 1.6896 2.4064 2.7136 4.1472 2.2528l26.5216-6.6048 20.0704 10.752-22.784 12.2368-26.7264-6.6048a3.56352 3.56352 0 0 0-4.1472 2.2528c-0.256 0.8704-0.1024 1.792 0.3584 2.5088 0.4608 0.768 1.2288 1.28 2.1504 1.3824l20.2752 4.7616-23.6032 12.6464c-0.768 0.4096-1.3312 1.0752-1.536 1.8944-0.256 0.8192-0.1024 1.6896 0.3072 2.4576 0.9728 1.536 2.9184 2.048 4.5568 1.2288l23.6032-12.8512-5.376 18.6368c-0.256 0.8704-0.1024 1.792 0.3584 2.5088 0.4608 0.768 1.2288 1.28 2.1504 1.3824 1.7408 0.4096 3.5328-0.5632 4.1472-2.2528l7.0656-24.4224 22.784-12.2368v24.2176l-19.456 18.0224c-0.7168 0.5632-1.1264 1.3824-1.1264 2.2528s0.4096 1.7408 1.1264 2.2528c1.3312 1.2288 3.4304 1.2288 4.7616 0l14.6944-13.6704v25.2416c0.4096 1.5872 1.792 2.6624 3.4304 2.6624 1.6384 0 3.0208-1.1264 3.4304-2.6624v-25.2416l14.6944 13.6704c1.3312 1.2288 3.4304 1.2288 4.7616 0 0.7168-0.5632 1.1264-1.3824 1.1264-2.2528s-0.4096-1.7408-1.1264-2.2528l-19.456-18.0224v-24.4224l22.784 12.2368 7.2704 24.832c0.6144 1.6896 2.4064 2.7136 4.1472 2.2528 0.8704-0.1536 1.6384-0.6656 2.1504-1.3824a3.1232 3.1232 0 0 0 0.3584-2.5088l-5.376-18.6368 23.6032 12.8512c1.5872 0.8192 3.584 0.256 4.5568-1.2288 0.4608-0.7168 0.5632-1.6384 0.3072-2.4576a3.17952 3.17952 0 0 0-1.536-1.8944l-23.6032-12.6464 20.0704-4.9664a3.1744 3.1744 0 0 0 2.5088-3.5328 3.3536 3.3536 0 0 0-3.328-2.7136h-0.8192l-26.7264 6.6048-22.784-12.2368 20.0704-10.752 26.7264 6.8096c1.7408 0.4096 3.5328-0.5632 4.1472-2.2528 0.256-0.8704 0.1024-1.792-0.3584-2.5088a2.8416 2.8416 0 0 0-2.1504-1.3824l-20.0704-4.9664 26.5216-14.0288z m-26.4704 14.08\" fill=\"#78CCFF\" p-id=\"3097\"></path></svg>','<svg t=\"1690592361863\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"3244\" width=\"200\" height=\"200\"><path d=\"M402.432 558.4384m-286.5152 0a286.5152 286.5152 0 1 0 573.0304 0 286.5152 286.5152 0 1 0-573.0304 0Z\" fill=\"#9FDFFF\" p-id=\"3245\"></path><path d=\"M731.648 749.1072m-253.0816 0a253.0816 253.0816 0 1 0 506.1632 0 253.0816 253.0816 0 1 0-506.1632 0Z\" fill=\"#78CCFF\" p-id=\"3246\"></path><path d=\"M268.4416 772.9664m-229.2224 0a229.2224 229.2224 0 1 0 458.4448 0 229.2224 229.2224 0 1 0-458.4448 0Z\" fill=\"#78CCFF\" p-id=\"3247\"></path><path d=\"M266.0864 772.9664h463.2064v229.2224H266.0864zM877.1584 460.4928H405.7088c-20.4288 0-37.12-16.6912-37.12-37.12s16.6912-37.12 37.12-37.12h471.4496c20.4288 0 37.12 16.6912 37.12 37.12s-16.6912 37.12-37.12 37.12z\" fill=\"#78CCFF\" p-id=\"3248\"></path><path d=\"M877.1584 231.8336h-342.3744c-20.4288 0-37.12-16.6912-37.12-37.12s16.6912-37.12 37.12-37.12h342.3744c20.4288 0 37.12 16.6912 37.12 37.12s-16.6912 37.12-37.12 37.12z\" fill=\"#9FDFFF\" p-id=\"3249\"></path><path d=\"M880.9984 346.1632h-228.7616c-20.4288 0-37.12-16.6912-37.12-37.12s16.6912-37.12 37.12-37.12h228.7616c20.4288 0 37.12 16.6912 37.12 37.12-0.0512 20.4288-16.7424 37.12-37.12 37.12z\" fill=\"#78CCFF\" p-id=\"3250\"></path></svg>','<svg t=\"1690592379051\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"3551\" width=\"200\" height=\"200\"><path d=\"M973.312 584.448m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3552\"></path><path d=\"M789.76 720.6912m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3553\"></path><path d=\"M957.952 941.0048m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3554\"></path><path d=\"M899.072 800.1536m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3555\"></path><path d=\"M789.76 877.0048m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3556\"></path><path d=\"M789.76 258.5088m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3557\"></path><path d=\"M899.072 163.84m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3558\"></path><path d=\"M641.4336 221.3888m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3559\"></path><path d=\"M752.64 126.72m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3560\"></path><path d=\"M918.0672 349.696m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3561\"></path><path d=\"M492.8512 467.968c-14.1312 0-25.6-11.4688-25.6-25.6s11.4688-25.6 25.6-25.6c42.4448 0 77.0048-34.56 77.0048-77.0048s-34.56-77.0048-77.0048-77.0048c-29.696 0-57.088 17.408-69.7344 44.288-5.9904 12.8-21.248 18.2784-34.048 12.288s-18.2784-21.248-12.288-34.048c21.0432-44.8 66.6112-73.728 116.0704-73.728 70.656 0 128.2048 57.4976 128.2048 128.2048S563.5072 467.968 492.8512 467.968z\" fill=\"#FFB612\" p-id=\"3562\"></path><path d=\"M492.288 467.968H79.6672c-14.08 0-25.6-11.52-25.6-25.6s11.52-25.6 25.6-25.6h412.5696v51.2zM604.8256 957.2864c-49.4592 0-95.0272-28.928-116.0704-73.728-5.9904-12.8-0.512-28.0576 12.288-34.048s28.0576-0.512 34.048 12.288c12.6464 26.9312 39.9872 44.288 69.7344 44.288 42.4448 0 77.0048-34.5088 77.0048-76.9536s-34.56-77.0048-77.0048-77.0048c-14.1312 0-25.6-11.4688-25.6-25.6s11.4688-25.6 25.6-25.6c70.656 0 128.2048 57.4976 128.2048 128.2048 0 70.656-57.4976 128.1536-128.2048 128.1536z\" fill=\"#FFB612\" p-id=\"3563\"></path><path d=\"M609.6896 700.9792H79.6672c-14.08 0-25.6 11.52-25.6 25.6s11.52 25.6 25.6 25.6h529.9712v-51.2zM775.5776 610.048c-14.1312 0-25.6-11.4688-25.6-25.6s11.4688-25.6 25.6-25.6c42.4448 0 76.9536-34.56 76.9536-77.0048s-34.5088-77.0048-76.9536-77.0048c-29.696 0-57.088 17.408-69.7344 44.288-5.9904 12.8-21.2992 18.2784-34.048 12.288-12.8-5.9904-18.2784-21.248-12.288-34.048 21.0432-44.8 66.6112-73.728 116.0704-73.728 70.656 0 128.1536 57.4976 128.1536 128.2048s-57.4976 128.2048-128.1536 128.2048z\" fill=\"#FFB612\" p-id=\"3564\"></path><path d=\"M780.3904 610.048H76.6976c-14.08 0-25.6-11.52-25.6-25.6s11.52-25.6 25.6-25.6h703.6928v51.2z\" fill=\"#FFB612\" p-id=\"3565\"></path></svg>','<svg t=\"1690592385764\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"3708\" width=\"200\" height=\"200\"><path d=\"M217.5488 275.6096m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3709\"></path><path d=\"M656.64 430.848m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3710\"></path><path d=\"M660.5824 830.2592m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3711\"></path><path d=\"M377.5488 479.8464m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3712\"></path><path d=\"M693.76 200.96m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3713\"></path><path d=\"M857.7536 297.728m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3714\"></path><path d=\"M340.4288 163.84m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3715\"></path><path d=\"M511.1808 270.336m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3716\"></path><path d=\"M276.4288 625.408m-37.12 0a37.12 37.12 0 1 0 74.24 0 37.12 37.12 0 1 0-74.24 0Z\" fill=\"#FFB612\" p-id=\"3717\"></path><path d=\"M511.1808 581.3248c-195.5328 0-405.9136-39.68-405.9136-126.7712s210.432-126.72 405.9136-126.72 405.9136 39.68 405.9136 126.72c0.0512 87.0912-210.3808 126.7712-405.9136 126.7712z m0-202.2912c-99.4304 0-192.6144 10.24-262.3488 28.7744-75.9296 20.1728-92.3648 42.3936-92.3648 46.7968 0 4.4032 16.4352 26.5728 92.3648 46.7968 69.7344 18.5344 162.9184 28.7744 262.3488 28.7744s192.6144-10.24 262.3488-28.7744c75.9296-20.1728 92.3648-42.3936 92.3648-46.7968 0-4.4032-16.4352-26.5728-92.3648-46.7968-69.7344-18.5856-162.9184-28.7744-262.3488-28.7744zM515.584 782.336c-129.2288 0-242.4832-22.9888-318.976-64.768a25.6 25.6 0 0 1-10.1888-34.7648c6.7584-12.3904 22.3232-16.9472 34.7648-10.1888 68.096 37.1712 175.4112 58.5216 294.4512 58.5216 123.5968 0 229.9904-21.1456 291.9936-58.0608a25.58976 25.58976 0 0 1 26.1632 43.9808c-70.7584 42.0864-183.7568 65.28-318.208 65.28zM511.1808 965.2736c-118.784 0-208.0256-33.4336-261.9904-61.4912a25.6 25.6 0 0 1 23.6032-45.4144c48.896 25.4464 129.8944 55.7568 238.336 55.7568 84.992 0 173.056-19.3024 241.5104-53.0432 12.6976-6.2464 28.0064-1.024 34.2528 11.6736 6.2464 12.6976 1.024 28.0064-11.6736 34.2528-75.1616 37.0176-171.4176 58.2656-264.0384 58.2656z\" fill=\"#FFB612\" p-id=\"3718\"></path></svg>','<svg t=\"1690592392150\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"3861\" width=\"200\" height=\"200\"><path d=\"M402.432 356.3008m-286.5152 0a286.5152 286.5152 0 1 0 573.0304 0 286.5152 286.5152 0 1 0-573.0304 0Z\" fill=\"#9FDFFF\" p-id=\"3862\"></path><path d=\"M731.648 546.9184m-253.0816 0a253.0816 253.0816 0 1 0 506.1632 0 253.0816 253.0816 0 1 0-506.1632 0Z\" fill=\"#78CCFF\" p-id=\"3863\"></path><path d=\"M268.4416 570.8288m-229.2224 0a229.2224 229.2224 0 1 0 458.4448 0 229.2224 229.2224 0 1 0-458.4448 0Z\" fill=\"#78CCFF\" p-id=\"3864\"></path><path d=\"M266.0864 570.8288h463.2064v229.2224H266.0864z\" fill=\"#78CCFF\" p-id=\"3865\"></path><path d=\"M324.096 831.232h17.6128l82.7392 118.9888h0.6144v-118.9888h16.7936v146.2272h-17.2032L341.504 857.2416h-0.6144v120.2176H324.096v-146.2272zM536.8832 809.5232h14.5408l-72.4992 188.416h-14.7456l72.704-188.416zM616.5504 831.232h19.456l57.5488 146.2272h-18.2272l-15.5648-40.96h-67.1744l-15.5648 40.96h-18.0224l57.5488-146.2272z m-18.6368 91.136h56.5248l-27.648-73.1136h-0.8192l-28.0576 73.1136z\" fill=\"#78CCFF\" p-id=\"3866\"></path></svg>'];/* harmony default export */ __webpack_exports__[\"default\"] = ([{name:'多彩标记图标',// 分组名称\ntype:'sign2',// 分组的值\nlist:iconList.map((item,index)=>{return{name:String(index+1),icon:item};})},{name:'星期',// 分组名称\ntype:'weekday',// 分组的值\nlist:weekdayList.map((item,index)=>{return{name:String(index+1),icon:item};})},{name:'头像',// 分组名称\ntype:'avatar',// 分组的值\nlist:avatarList.map((item,index)=>{return{name:String(index+1),icon:item};})},{name:'五角星',// 分组名称\ntype:'star',// 分组的值\nlist:starList.map((item,index)=>{return{name:String(index+1),icon:item};})},{name:'旗帜',// 分组名称\ntype:'flag',// 分组的值\nlist:flagList.map((item,index)=>{return{name:String(index+1),icon:item};})},{name:'天气',// 分组名称\ntype:'weather',// 分组的值\nlist:weatherList.map((item,index)=>{return{name:String(index+1),icon:item};})}]);\n\n//# sourceURL=webpack:///./src/config/icon.js?");
/***/ }),
/***/ "./src/config/image.js":
/*!*****************************!*\
!*** ./src/config/image.js ***!
\*****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assets_svg_business_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../assets/svg/business/-.svg */ \"./src/assets/svg/business/-.svg\");\n/* harmony import */ var _assets_svg_business_svg__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_svg__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assets_svg_business_1_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../assets/svg/business/-_1.svg */ \"./src/assets/svg/business/-_1.svg\");\n/* harmony import */ var _assets_svg_business_1_svg__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_1_svg__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _assets_svg_business_10_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../assets/svg/business/-_10.svg */ \"./src/assets/svg/business/-_10.svg\");\n/* harmony import */ var _assets_svg_business_10_svg__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_10_svg__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _assets_svg_business_11_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../assets/svg/business/-_11.svg */ \"./src/assets/svg/business/-_11.svg\");\n/* harmony import */ var _assets_svg_business_11_svg__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_11_svg__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _assets_svg_business_12_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../assets/svg/business/-_12.svg */ \"./src/assets/svg/business/-_12.svg\");\n/* harmony import */ var _assets_svg_business_12_svg__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_12_svg__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _assets_svg_business_13_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../assets/svg/business/-_13.svg */ \"./src/assets/svg/business/-_13.svg\");\n/* harmony import */ var _assets_svg_business_13_svg__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_13_svg__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _assets_svg_business_14_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../assets/svg/business/-_14.svg */ \"./src/assets/svg/business/-_14.svg\");\n/* harmony import */ var _assets_svg_business_14_svg__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_14_svg__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _assets_svg_business_15_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../assets/svg/business/-_15.svg */ \"./src/assets/svg/business/-_15.svg\");\n/* harmony import */ var _assets_svg_business_15_svg__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_15_svg__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _assets_svg_business_16_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../assets/svg/business/-_16.svg */ \"./src/assets/svg/business/-_16.svg\");\n/* harmony import */ var _assets_svg_business_16_svg__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_16_svg__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _assets_svg_business_17_svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../assets/svg/business/-_17.svg */ \"./src/assets/svg/business/-_17.svg\");\n/* harmony import */ var _assets_svg_business_17_svg__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_17_svg__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _assets_svg_business_18_svg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../assets/svg/business/-_18.svg */ \"./src/assets/svg/business/-_18.svg\");\n/* harmony import */ var _assets_svg_business_18_svg__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_18_svg__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _assets_svg_business_2_svg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../assets/svg/business/-_2.svg */ \"./src/assets/svg/business/-_2.svg\");\n/* harmony import */ var _assets_svg_business_2_svg__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_2_svg__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _assets_svg_business_3_svg__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../assets/svg/business/-_3.svg */ \"./src/assets/svg/business/-_3.svg\");\n/* harmony import */ var _assets_svg_business_3_svg__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_3_svg__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var _assets_svg_business_4_svg__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../assets/svg/business/-_4.svg */ \"./src/assets/svg/business/-_4.svg\");\n/* harmony import */ var _assets_svg_business_4_svg__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_4_svg__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var _assets_svg_business_5_svg__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../assets/svg/business/-_5.svg */ \"./src/assets/svg/business/-_5.svg\");\n/* harmony import */ var _assets_svg_business_5_svg__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_5_svg__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var _assets_svg_business_6_svg__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../assets/svg/business/-_6.svg */ \"./src/assets/svg/business/-_6.svg\");\n/* harmony import */ var _assets_svg_business_6_svg__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_6_svg__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var _assets_svg_business_7_svg__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../assets/svg/business/-_7.svg */ \"./src/assets/svg/business/-_7.svg\");\n/* harmony import */ var _assets_svg_business_7_svg__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_7_svg__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var _assets_svg_business_8_svg__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../assets/svg/business/-_8.svg */ \"./src/assets/svg/business/-_8.svg\");\n/* harmony import */ var _assets_svg_business_8_svg__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_8_svg__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var _assets_svg_business_9_svg__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../assets/svg/business/-_9.svg */ \"./src/assets/svg/business/-_9.svg\");\n/* harmony import */ var _assets_svg_business_9_svg__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_9_svg__WEBPACK_IMPORTED_MODULE_18__);\n/* harmony import */ var _assets_svg_business_OAxitong_svg__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../assets/svg/business/OAxitong.svg */ \"./src/assets/svg/business/OAxitong.svg\");\n/* harmony import */ var _assets_svg_business_OAxitong_svg__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_OAxitong_svg__WEBPACK_IMPORTED_MODULE_19__);\n/* harmony import */ var _assets_svg_business_changyongziyuan_svg__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../assets/svg/business/changyongziyuan.svg */ \"./src/assets/svg/business/changyongziyuan.svg\");\n/* harmony import */ var _assets_svg_business_changyongziyuan_svg__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_changyongziyuan_svg__WEBPACK_IMPORTED_MODULE_20__);\n/* harmony import */ var _assets_svg_business_chuchashenpi_svg__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../assets/svg/business/chuchashenpi.svg */ \"./src/assets/svg/business/chuchashenpi.svg\");\n/* harmony import */ var _assets_svg_business_chuchashenpi_svg__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_chuchashenpi_svg__WEBPACK_IMPORTED_MODULE_21__);\n/* harmony import */ var _assets_svg_business_fanwendengji_svg__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../assets/svg/business/fanwendengji.svg */ \"./src/assets/svg/business/fanwendengji.svg\");\n/* harmony import */ var _assets_svg_business_fanwendengji_svg__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_fanwendengji_svg__WEBPACK_IMPORTED_MODULE_22__);\n/* harmony import */ var _assets_svg_business_feizhengshiwendengji_svg__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../assets/svg/business/feizhengshiwendengji.svg */ \"./src/assets/svg/business/feizhengshiwendengji.svg\");\n/* harmony import */ var _assets_svg_business_feizhengshiwendengji_svg__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_feizhengshiwendengji_svg__WEBPACK_IMPORTED_MODULE_23__);\n/* harmony import */ var _assets_svg_business_gongwenjiaohuan_svg__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../assets/svg/business/gongwenjiaohuan.svg */ \"./src/assets/svg/business/gongwenjiaohuan.svg\");\n/* harmony import */ var _assets_svg_business_gongwenjiaohuan_svg__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_gongwenjiaohuan_svg__WEBPACK_IMPORTED_MODULE_24__);\n/* harmony import */ var _assets_svg_business_gongzuohuibao_svg__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../assets/svg/business/gongzuohuibao.svg */ \"./src/assets/svg/business/gongzuohuibao.svg\");\n/* harmony import */ var _assets_svg_business_gongzuohuibao_svg__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_gongzuohuibao_svg__WEBPACK_IMPORTED_MODULE_25__);\n/* harmony import */ var _assets_svg_business_gudingzichan_svg__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../assets/svg/business/gudingzichan.svg */ \"./src/assets/svg/business/gudingzichan.svg\");\n/* harmony import */ var _assets_svg_business_gudingzichan_svg__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_gudingzichan_svg__WEBPACK_IMPORTED_MODULE_26__);\n/* harmony import */ var _assets_svg_business_huiyiguanli_svg__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../assets/svg/business/huiyiguanli.svg */ \"./src/assets/svg/business/huiyiguanli.svg\");\n/* harmony import */ var _assets_svg_business_huiyiguanli_svg__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_huiyiguanli_svg__WEBPACK_IMPORTED_MODULE_27__);\n/* harmony import */ var _assets_svg_business_huiyiyuding_svg__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../assets/svg/business/huiyiyuding.svg */ \"./src/assets/svg/business/huiyiyuding.svg\");\n/* harmony import */ var _assets_svg_business_huiyiyuding_svg__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_huiyiyuding_svg__WEBPACK_IMPORTED_MODULE_28__);\n/* harmony import */ var _assets_svg_business_kaoqinguanli_svg__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../assets/svg/business/kaoqinguanli.svg */ \"./src/assets/svg/business/kaoqinguanli.svg\");\n/* harmony import */ var _assets_svg_business_kaoqinguanli_svg__WEBPACK_IMPORTED_MODULE_29___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_kaoqinguanli_svg__WEBPACK_IMPORTED_MODULE_29__);\n/* harmony import */ var _assets_svg_business_qingxiujiashenqing_svg__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../assets/svg/business/qingxiujiashenqing.svg */ \"./src/assets/svg/business/qingxiujiashenqing.svg\");\n/* harmony import */ var _assets_svg_business_qingxiujiashenqing_svg__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_qingxiujiashenqing_svg__WEBPACK_IMPORTED_MODULE_30__);\n/* harmony import */ var _assets_svg_business_sannianjihua_svg__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../assets/svg/business/sannianjihua.svg */ \"./src/assets/svg/business/sannianjihua.svg\");\n/* harmony import */ var _assets_svg_business_sannianjihua_svg__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_sannianjihua_svg__WEBPACK_IMPORTED_MODULE_31__);\n/* harmony import */ var _assets_svg_business_tongzhifabu_svg__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../assets/svg/business/tongzhifabu.svg */ \"./src/assets/svg/business/tongzhifabu.svg\");\n/* harmony import */ var _assets_svg_business_tongzhifabu_svg__WEBPACK_IMPORTED_MODULE_32___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_tongzhifabu_svg__WEBPACK_IMPORTED_MODULE_32__);\n/* harmony import */ var _assets_svg_business_xiangmuguanli_svg__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../assets/svg/business/xiangmuguanli.svg */ \"./src/assets/svg/business/xiangmuguanli.svg\");\n/* harmony import */ var _assets_svg_business_xiangmuguanli_svg__WEBPACK_IMPORTED_MODULE_33___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_xiangmuguanli_svg__WEBPACK_IMPORTED_MODULE_33__);\n/* harmony import */ var _assets_svg_business_xinxitougao_svg__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ../assets/svg/business/xinxitougao.svg */ \"./src/assets/svg/business/xinxitougao.svg\");\n/* harmony import */ var _assets_svg_business_xinxitougao_svg__WEBPACK_IMPORTED_MODULE_34___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_xinxitougao_svg__WEBPACK_IMPORTED_MODULE_34__);\n/* harmony import */ var _assets_svg_business_zhishichanquan_svg__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ../assets/svg/business/zhishichanquan.svg */ \"./src/assets/svg/business/zhishichanquan.svg\");\n/* harmony import */ var _assets_svg_business_zhishichanquan_svg__WEBPACK_IMPORTED_MODULE_35___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_zhishichanquan_svg__WEBPACK_IMPORTED_MODULE_35__);\n/* harmony import */ var _assets_svg_business_zhongxindongtaifabu_svg__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ../assets/svg/business/zhongxindongtaifabu.svg */ \"./src/assets/svg/business/zhongxindongtaifabu.svg\");\n/* harmony import */ var _assets_svg_business_zhongxindongtaifabu_svg__WEBPACK_IMPORTED_MODULE_36___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_zhongxindongtaifabu_svg__WEBPACK_IMPORTED_MODULE_36__);\n/* harmony import */ var _assets_svg_business_zongheshenpi_svg__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ../assets/svg/business/zongheshenpi.svg */ \"./src/assets/svg/business/zongheshenpi.svg\");\n/* harmony import */ var _assets_svg_business_zongheshenpi_svg__WEBPACK_IMPORTED_MODULE_37___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_business_zongheshenpi_svg__WEBPACK_IMPORTED_MODULE_37__);\n/* harmony import */ var _assets_svg_education_DNA_svg__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ../assets/svg/education/DNA.svg */ \"./src/assets/svg/education/DNA.svg\");\n/* harmony import */ var _assets_svg_education_DNA_svg__WEBPACK_IMPORTED_MODULE_38___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_DNA_svg__WEBPACK_IMPORTED_MODULE_38__);\n/* harmony import */ var _assets_svg_education_a_1_shilibiao_svg__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ../assets/svg/education/a-1-shilibiao.svg */ \"./src/assets/svg/education/a-1-shilibiao.svg\");\n/* harmony import */ var _assets_svg_education_a_1_shilibiao_svg__WEBPACK_IMPORTED_MODULE_39___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_1_shilibiao_svg__WEBPACK_IMPORTED_MODULE_39__);\n/* harmony import */ var _assets_svg_education_a_10_yiliaoxiang_svg__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ../assets/svg/education/a-10-yiliaoxiang.svg */ \"./src/assets/svg/education/a-10-yiliaoxiang.svg\");\n/* harmony import */ var _assets_svg_education_a_10_yiliaoxiang_svg__WEBPACK_IMPORTED_MODULE_40___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_10_yiliaoxiang_svg__WEBPACK_IMPORTED_MODULE_40__);\n/* harmony import */ var _assets_svg_education_a_11_yiyongweishengzhi_svg__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../assets/svg/education/a-11-yiyongweishengzhi.svg */ \"./src/assets/svg/education/a-11-yiyongweishengzhi.svg\");\n/* harmony import */ var _assets_svg_education_a_11_yiyongweishengzhi_svg__WEBPACK_IMPORTED_MODULE_41___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_11_yiyongweishengzhi_svg__WEBPACK_IMPORTED_MODULE_41__);\n/* harmony import */ var _assets_svg_education_a_12_huxi_svg__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ../assets/svg/education/a-12-huxi.svg */ \"./src/assets/svg/education/a-12-huxi.svg\");\n/* harmony import */ var _assets_svg_education_a_12_huxi_svg__WEBPACK_IMPORTED_MODULE_42___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_12_huxi_svg__WEBPACK_IMPORTED_MODULE_42__);\n/* harmony import */ var _assets_svg_education_a_13_xiguan_svg__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ../assets/svg/education/a-13-xiguan.svg */ \"./src/assets/svg/education/a-13-xiguan.svg\");\n/* harmony import */ var _assets_svg_education_a_13_xiguan_svg__WEBPACK_IMPORTED_MODULE_43___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_13_xiguan_svg__WEBPACK_IMPORTED_MODULE_43__);\n/* harmony import */ var _assets_svg_education_a_14_zhutingqi_svg__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ../assets/svg/education/a-14-zhutingqi.svg */ \"./src/assets/svg/education/a-14-zhutingqi.svg\");\n/* harmony import */ var _assets_svg_education_a_14_zhutingqi_svg__WEBPACK_IMPORTED_MODULE_44___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_14_zhutingqi_svg__WEBPACK_IMPORTED_MODULE_44__);\n/* harmony import */ var _assets_svg_education_a_15_bingdu_svg__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ../assets/svg/education/a-15-bingdu.svg */ \"./src/assets/svg/education/a-15-bingdu.svg\");\n/* harmony import */ var _assets_svg_education_a_15_bingdu_svg__WEBPACK_IMPORTED_MODULE_45___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_15_bingdu_svg__WEBPACK_IMPORTED_MODULE_45__);\n/* harmony import */ var _assets_svg_education_a_16_yiyuan_svg__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ../assets/svg/education/a-16-yiyuan.svg */ \"./src/assets/svg/education/a-16-yiyuan.svg\");\n/* harmony import */ var _assets_svg_education_a_16_yiyuan_svg__WEBPACK_IMPORTED_MODULE_46___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_16_yiyuan_svg__WEBPACK_IMPORTED_MODULE_46__);\n/* harmony import */ var _assets_svg_education_a_17_zhusheqi_svg__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ../assets/svg/education/a-17-zhusheqi.svg */ \"./src/assets/svg/education/a-17-zhusheqi.svg\");\n/* harmony import */ var _assets_svg_education_a_17_zhusheqi_svg__WEBPACK_IMPORTED_MODULE_47___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_17_zhusheqi_svg__WEBPACK_IMPORTED_MODULE_47__);\n/* harmony import */ var _assets_svg_education_a_18_xiguan_svg__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ../assets/svg/education/a-18-xiguan.svg */ \"./src/assets/svg/education/a-18-xiguan.svg\");\n/* harmony import */ var _assets_svg_education_a_18_xiguan_svg__WEBPACK_IMPORTED_MODULE_48___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_18_xiguan_svg__WEBPACK_IMPORTED_MODULE_48__);\n/* harmony import */ var _assets_svg_education_a_19guaizhang_svg__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ../assets/svg/education/a-19guaizhang.svg */ \"./src/assets/svg/education/a-19guaizhang.svg\");\n/* harmony import */ var _assets_svg_education_a_19guaizhang_svg__WEBPACK_IMPORTED_MODULE_49___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_19guaizhang_svg__WEBPACK_IMPORTED_MODULE_49__);\n/* harmony import */ var _assets_svg_education_a_2_kouzhao_svg__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ../assets/svg/education/a-2-kouzhao.svg */ \"./src/assets/svg/education/a-2-kouzhao.svg\");\n/* harmony import */ var _assets_svg_education_a_2_kouzhao_svg__WEBPACK_IMPORTED_MODULE_50___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_2_kouzhao_svg__WEBPACK_IMPORTED_MODULE_50__);\n/* harmony import */ var _assets_svg_education_a_20_shuye_svg__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ../assets/svg/education/a-20-shuye.svg */ \"./src/assets/svg/education/a-20-shuye.svg\");\n/* harmony import */ var _assets_svg_education_a_20_shuye_svg__WEBPACK_IMPORTED_MODULE_51___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_20_shuye_svg__WEBPACK_IMPORTED_MODULE_51__);\n/* harmony import */ var _assets_svg_education_a_3_chuangkoutie_svg__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ../assets/svg/education/a-3-chuangkoutie.svg */ \"./src/assets/svg/education/a-3-chuangkoutie.svg\");\n/* harmony import */ var _assets_svg_education_a_3_chuangkoutie_svg__WEBPACK_IMPORTED_MODULE_52___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_3_chuangkoutie_svg__WEBPACK_IMPORTED_MODULE_52__);\n/* harmony import */ var _assets_svg_education_a_4_lunyi_svg__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ../assets/svg/education/a-4-lunyi.svg */ \"./src/assets/svg/education/a-4-lunyi.svg\");\n/* harmony import */ var _assets_svg_education_a_4_lunyi_svg__WEBPACK_IMPORTED_MODULE_53___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_4_lunyi_svg__WEBPACK_IMPORTED_MODULE_53__);\n/* harmony import */ var _assets_svg_education_a_5_mianqian_svg__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ../assets/svg/education/a-5-mianqian.svg */ \"./src/assets/svg/education/a-5-mianqian.svg\");\n/* harmony import */ var _assets_svg_education_a_5_mianqian_svg__WEBPACK_IMPORTED_MODULE_54___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_5_mianqian_svg__WEBPACK_IMPORTED_MODULE_54__);\n/* harmony import */ var _assets_svg_education_a_6_jiancebi_svg__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../assets/svg/education/a-6-jiancebi.svg */ \"./src/assets/svg/education/a-6-jiancebi.svg\");\n/* harmony import */ var _assets_svg_education_a_6_jiancebi_svg__WEBPACK_IMPORTED_MODULE_55___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_6_jiancebi_svg__WEBPACK_IMPORTED_MODULE_55__);\n/* harmony import */ var _assets_svg_education_a_7_xinzang_svg__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../assets/svg/education/a-7-xinzang.svg */ \"./src/assets/svg/education/a-7-xinzang.svg\");\n/* harmony import */ var _assets_svg_education_a_7_xinzang_svg__WEBPACK_IMPORTED_MODULE_56___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_7_xinzang_svg__WEBPACK_IMPORTED_MODULE_56__);\n/* harmony import */ var _assets_svg_education_a_8_DNA_svg__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../assets/svg/education/a-8-DNA.svg */ \"./src/assets/svg/education/a-8-DNA.svg\");\n/* harmony import */ var _assets_svg_education_a_8_DNA_svg__WEBPACK_IMPORTED_MODULE_57___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_8_DNA_svg__WEBPACK_IMPORTED_MODULE_57__);\n/* harmony import */ var _assets_svg_education_a_9_tizhongcheng_svg__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../assets/svg/education/a-9-tizhongcheng.svg */ \"./src/assets/svg/education/a-9-tizhongcheng.svg\");\n/* harmony import */ var _assets_svg_education_a_9_tizhongcheng_svg__WEBPACK_IMPORTED_MODULE_58___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_9_tizhongcheng_svg__WEBPACK_IMPORTED_MODULE_58__);\n/* harmony import */ var _assets_svg_education_a_bitong1_svg__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../assets/svg/education/a-bitong1.svg */ \"./src/assets/svg/education/a-bitong1.svg\");\n/* harmony import */ var _assets_svg_education_a_bitong1_svg__WEBPACK_IMPORTED_MODULE_59___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_bitong1_svg__WEBPACK_IMPORTED_MODULE_59__);\n/* harmony import */ var _assets_svg_education_a_shu2_svg__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../assets/svg/education/a-shu2.svg */ \"./src/assets/svg/education/a-shu2.svg\");\n/* harmony import */ var _assets_svg_education_a_shu2_svg__WEBPACK_IMPORTED_MODULE_60___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_shu2_svg__WEBPACK_IMPORTED_MODULE_60__);\n/* harmony import */ var _assets_svg_education_a_shu4_svg__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../assets/svg/education/a-shu4.svg */ \"./src/assets/svg/education/a-shu4.svg\");\n/* harmony import */ var _assets_svg_education_a_shu4_svg__WEBPACK_IMPORTED_MODULE_61___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_shu4_svg__WEBPACK_IMPORTED_MODULE_61__);\n/* harmony import */ var _assets_svg_education_a_shu5_svg__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../assets/svg/education/a-shu5.svg */ \"./src/assets/svg/education/a-shu5.svg\");\n/* harmony import */ var _assets_svg_education_a_shu5_svg__WEBPACK_IMPORTED_MODULE_62___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_shu5_svg__WEBPACK_IMPORTED_MODULE_62__);\n/* harmony import */ var _assets_svg_education_a_shuben2_svg__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../assets/svg/education/a-shuben2.svg */ \"./src/assets/svg/education/a-shuben2.svg\");\n/* harmony import */ var _assets_svg_education_a_shuben2_svg__WEBPACK_IMPORTED_MODULE_63___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_shuben2_svg__WEBPACK_IMPORTED_MODULE_63__);\n/* harmony import */ var _assets_svg_education_a_shuben3_svg__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../assets/svg/education/a-shuben3.svg */ \"./src/assets/svg/education/a-shuben3.svg\");\n/* harmony import */ var _assets_svg_education_a_shuben3_svg__WEBPACK_IMPORTED_MODULE_64___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_shuben3_svg__WEBPACK_IMPORTED_MODULE_64__);\n/* harmony import */ var _assets_svg_education_a_shuben4_svg__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ../assets/svg/education/a-shuben4.svg */ \"./src/assets/svg/education/a-shuben4.svg\");\n/* harmony import */ var _assets_svg_education_a_shuben4_svg__WEBPACK_IMPORTED_MODULE_65___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_shuben4_svg__WEBPACK_IMPORTED_MODULE_65__);\n/* harmony import */ var _assets_svg_education_a_xueshimao1_svg__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ../assets/svg/education/a-xueshimao1.svg */ \"./src/assets/svg/education/a-xueshimao1.svg\");\n/* harmony import */ var _assets_svg_education_a_xueshimao1_svg__WEBPACK_IMPORTED_MODULE_66___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_a_xueshimao1_svg__WEBPACK_IMPORTED_MODULE_66__);\n/* harmony import */ var _assets_svg_education_baichui_svg__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ../assets/svg/education/baichui.svg */ \"./src/assets/svg/education/baichui.svg\");\n/* harmony import */ var _assets_svg_education_baichui_svg__WEBPACK_IMPORTED_MODULE_67___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_baichui_svg__WEBPACK_IMPORTED_MODULE_67__);\n/* harmony import */ var _assets_svg_education_bijiben_svg__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ../assets/svg/education/bijiben.svg */ \"./src/assets/svg/education/bijiben.svg\");\n/* harmony import */ var _assets_svg_education_bijiben_svg__WEBPACK_IMPORTED_MODULE_68___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_bijiben_svg__WEBPACK_IMPORTED_MODULE_68__);\n/* harmony import */ var _assets_svg_education_bitong_svg__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ../assets/svg/education/bitong.svg */ \"./src/assets/svg/education/bitong.svg\");\n/* harmony import */ var _assets_svg_education_bitong_svg__WEBPACK_IMPORTED_MODULE_69___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_bitong_svg__WEBPACK_IMPORTED_MODULE_69__);\n/* harmony import */ var _assets_svg_education_chizi_svg__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../assets/svg/education/chizi.svg */ \"./src/assets/svg/education/chizi.svg\");\n/* harmony import */ var _assets_svg_education_chizi_svg__WEBPACK_IMPORTED_MODULE_70___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_chizi_svg__WEBPACK_IMPORTED_MODULE_70__);\n/* harmony import */ var _assets_svg_education_chongdian_svg__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../assets/svg/education/chongdian.svg */ \"./src/assets/svg/education/chongdian.svg\");\n/* harmony import */ var _assets_svg_education_chongdian_svg__WEBPACK_IMPORTED_MODULE_71___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_chongdian_svg__WEBPACK_IMPORTED_MODULE_71__);\n/* harmony import */ var _assets_svg_education_citie_svg__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../assets/svg/education/citie.svg */ \"./src/assets/svg/education/citie.svg\");\n/* harmony import */ var _assets_svg_education_citie_svg__WEBPACK_IMPORTED_MODULE_72___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_citie_svg__WEBPACK_IMPORTED_MODULE_72__);\n/* harmony import */ var _assets_svg_education_daima_svg__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../assets/svg/education/daima.svg */ \"./src/assets/svg/education/daima.svg\");\n/* harmony import */ var _assets_svg_education_daima_svg__WEBPACK_IMPORTED_MODULE_73___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_daima_svg__WEBPACK_IMPORTED_MODULE_73__);\n/* harmony import */ var _assets_svg_education_deng_svg__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../assets/svg/education/deng.svg */ \"./src/assets/svg/education/deng.svg\");\n/* harmony import */ var _assets_svg_education_deng_svg__WEBPACK_IMPORTED_MODULE_74___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_deng_svg__WEBPACK_IMPORTED_MODULE_74__);\n/* harmony import */ var _assets_svg_education_dianliushiyan_svg__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../assets/svg/education/dianliushiyan.svg */ \"./src/assets/svg/education/dianliushiyan.svg\");\n/* harmony import */ var _assets_svg_education_dianliushiyan_svg__WEBPACK_IMPORTED_MODULE_75___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_dianliushiyan_svg__WEBPACK_IMPORTED_MODULE_75__);\n/* harmony import */ var _assets_svg_education_diqiu_svg__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../assets/svg/education/diqiu.svg */ \"./src/assets/svg/education/diqiu.svg\");\n/* harmony import */ var _assets_svg_education_diqiu_svg__WEBPACK_IMPORTED_MODULE_76___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_diqiu_svg__WEBPACK_IMPORTED_MODULE_76__);\n/* harmony import */ var _assets_svg_education_diqiuyi_svg__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../assets/svg/education/diqiuyi.svg */ \"./src/assets/svg/education/diqiuyi.svg\");\n/* harmony import */ var _assets_svg_education_diqiuyi_svg__WEBPACK_IMPORTED_MODULE_77___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_diqiuyi_svg__WEBPACK_IMPORTED_MODULE_77__);\n/* harmony import */ var _assets_svg_education_fanyi_svg__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../assets/svg/education/fanyi.svg */ \"./src/assets/svg/education/fanyi.svg\");\n/* harmony import */ var _assets_svg_education_fanyi_svg__WEBPACK_IMPORTED_MODULE_78___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_fanyi_svg__WEBPACK_IMPORTED_MODULE_78__);\n/* harmony import */ var _assets_svg_education_gongwenbao_svg__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../assets/svg/education/gongwenbao.svg */ \"./src/assets/svg/education/gongwenbao.svg\");\n/* harmony import */ var _assets_svg_education_gongwenbao_svg__WEBPACK_IMPORTED_MODULE_79___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_gongwenbao_svg__WEBPACK_IMPORTED_MODULE_79__);\n/* harmony import */ var _assets_svg_education_heiban_svg__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../assets/svg/education/heiban.svg */ \"./src/assets/svg/education/heiban.svg\");\n/* harmony import */ var _assets_svg_education_heiban_svg__WEBPACK_IMPORTED_MODULE_80___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_heiban_svg__WEBPACK_IMPORTED_MODULE_80__);\n/* harmony import */ var _assets_svg_education_huiyi_svg__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../assets/svg/education/huiyi.svg */ \"./src/assets/svg/education/huiyi.svg\");\n/* harmony import */ var _assets_svg_education_huiyi_svg__WEBPACK_IMPORTED_MODULE_81___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_huiyi_svg__WEBPACK_IMPORTED_MODULE_81__);\n/* harmony import */ var _assets_svg_education_jiangbei_svg__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ../assets/svg/education/jiangbei.svg */ \"./src/assets/svg/education/jiangbei.svg\");\n/* harmony import */ var _assets_svg_education_jiangbei_svg__WEBPACK_IMPORTED_MODULE_82___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_jiangbei_svg__WEBPACK_IMPORTED_MODULE_82__);\n/* harmony import */ var _assets_svg_education_jiaoxuelou_svg__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ../assets/svg/education/jiaoxuelou.svg */ \"./src/assets/svg/education/jiaoxuelou.svg\");\n/* harmony import */ var _assets_svg_education_jiaoxuelou_svg__WEBPACK_IMPORTED_MODULE_83___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_jiaoxuelou_svg__WEBPACK_IMPORTED_MODULE_83__);\n/* harmony import */ var _assets_svg_education_jinpai_svg__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../assets/svg/education/jinpai.svg */ \"./src/assets/svg/education/jinpai.svg\");\n/* harmony import */ var _assets_svg_education_jinpai_svg__WEBPACK_IMPORTED_MODULE_84___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_jinpai_svg__WEBPACK_IMPORTED_MODULE_84__);\n/* harmony import */ var _assets_svg_education_jisuan_svg__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ../assets/svg/education/jisuan.svg */ \"./src/assets/svg/education/jisuan.svg\");\n/* harmony import */ var _assets_svg_education_jisuan_svg__WEBPACK_IMPORTED_MODULE_85___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_jisuan_svg__WEBPACK_IMPORTED_MODULE_85__);\n/* harmony import */ var _assets_svg_education_jisuanqi_svg__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ../assets/svg/education/jisuanqi.svg */ \"./src/assets/svg/education/jisuanqi.svg\");\n/* harmony import */ var _assets_svg_education_jisuanqi_svg__WEBPACK_IMPORTED_MODULE_86___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_jisuanqi_svg__WEBPACK_IMPORTED_MODULE_86__);\n/* harmony import */ var _assets_svg_education_naozhong_svg__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ../assets/svg/education/naozhong.svg */ \"./src/assets/svg/education/naozhong.svg\");\n/* harmony import */ var _assets_svg_education_naozhong_svg__WEBPACK_IMPORTED_MODULE_87___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_naozhong_svg__WEBPACK_IMPORTED_MODULE_87__);\n/* harmony import */ var _assets_svg_education_qianbi_svg__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ../assets/svg/education/qianbi.svg */ \"./src/assets/svg/education/qianbi.svg\");\n/* harmony import */ var _assets_svg_education_qianbi_svg__WEBPACK_IMPORTED_MODULE_88___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_qianbi_svg__WEBPACK_IMPORTED_MODULE_88__);\n/* harmony import */ var _assets_svg_education_sepan_svg__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ../assets/svg/education/sepan.svg */ \"./src/assets/svg/education/sepan.svg\");\n/* harmony import */ var _assets_svg_education_sepan_svg__WEBPACK_IMPORTED_MODULE_89___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_sepan_svg__WEBPACK_IMPORTED_MODULE_89__);\n/* harmony import */ var _assets_svg_education_shiyan_svg__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ../assets/svg/education/shiyan.svg */ \"./src/assets/svg/education/shiyan.svg\");\n/* harmony import */ var _assets_svg_education_shiyan_svg__WEBPACK_IMPORTED_MODULE_90___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_shiyan_svg__WEBPACK_IMPORTED_MODULE_90__);\n/* harmony import */ var _assets_svg_education_shouji_svg__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ../assets/svg/education/shouji.svg */ \"./src/assets/svg/education/shouji.svg\");\n/* harmony import */ var _assets_svg_education_shouji_svg__WEBPACK_IMPORTED_MODULE_91___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_shouji_svg__WEBPACK_IMPORTED_MODULE_91__);\n/* harmony import */ var _assets_svg_education_shuben_svg__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ../assets/svg/education/shuben.svg */ \"./src/assets/svg/education/shuben.svg\");\n/* harmony import */ var _assets_svg_education_shuben_svg__WEBPACK_IMPORTED_MODULE_92___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_shuben_svg__WEBPACK_IMPORTED_MODULE_92__);\n/* harmony import */ var _assets_svg_education_shuxie_svg__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ../assets/svg/education/shuxie.svg */ \"./src/assets/svg/education/shuxie.svg\");\n/* harmony import */ var _assets_svg_education_shuxie_svg__WEBPACK_IMPORTED_MODULE_93___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_shuxie_svg__WEBPACK_IMPORTED_MODULE_93__);\n/* harmony import */ var _assets_svg_education_sousuo_svg__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ../assets/svg/education/sousuo.svg */ \"./src/assets/svg/education/sousuo.svg\");\n/* harmony import */ var _assets_svg_education_sousuo_svg__WEBPACK_IMPORTED_MODULE_94___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_sousuo_svg__WEBPACK_IMPORTED_MODULE_94__);\n/* harmony import */ var _assets_svg_education_suanpan_svg__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ../assets/svg/education/suanpan.svg */ \"./src/assets/svg/education/suanpan.svg\");\n/* harmony import */ var _assets_svg_education_suanpan_svg__WEBPACK_IMPORTED_MODULE_95___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_suanpan_svg__WEBPACK_IMPORTED_MODULE_95__);\n/* harmony import */ var _assets_svg_education_tianping_svg__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ../assets/svg/education/tianping.svg */ \"./src/assets/svg/education/tianping.svg\");\n/* harmony import */ var _assets_svg_education_tianping_svg__WEBPACK_IMPORTED_MODULE_96___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_tianping_svg__WEBPACK_IMPORTED_MODULE_96__);\n/* harmony import */ var _assets_svg_education_tingzhenqi_svg__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ../assets/svg/education/tingzhenqi.svg */ \"./src/assets/svg/education/tingzhenqi.svg\");\n/* harmony import */ var _assets_svg_education_tingzhenqi_svg__WEBPACK_IMPORTED_MODULE_97___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_tingzhenqi_svg__WEBPACK_IMPORTED_MODULE_97__);\n/* harmony import */ var _assets_svg_education_tiyu_svg__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ../assets/svg/education/tiyu.svg */ \"./src/assets/svg/education/tiyu.svg\");\n/* harmony import */ var _assets_svg_education_tiyu_svg__WEBPACK_IMPORTED_MODULE_98___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_tiyu_svg__WEBPACK_IMPORTED_MODULE_98__);\n/* harmony import */ var _assets_svg_education_wenjian_svg__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ../assets/svg/education/wenjian.svg */ \"./src/assets/svg/education/wenjian.svg\");\n/* harmony import */ var _assets_svg_education_wenjian_svg__WEBPACK_IMPORTED_MODULE_99___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_wenjian_svg__WEBPACK_IMPORTED_MODULE_99__);\n/* harmony import */ var _assets_svg_education_xianweijing_svg__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ../assets/svg/education/xianweijing.svg */ \"./src/assets/svg/education/xianweijing.svg\");\n/* harmony import */ var _assets_svg_education_xianweijing_svg__WEBPACK_IMPORTED_MODULE_100___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_xianweijing_svg__WEBPACK_IMPORTED_MODULE_100__);\n/* harmony import */ var _assets_svg_education_xiaoheiban_svg__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ../assets/svg/education/xiaoheiban.svg */ \"./src/assets/svg/education/xiaoheiban.svg\");\n/* harmony import */ var _assets_svg_education_xiaoheiban_svg__WEBPACK_IMPORTED_MODULE_101___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_xiaoheiban_svg__WEBPACK_IMPORTED_MODULE_101__);\n/* harmony import */ var _assets_svg_education_xiezizhuo_svg__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ../assets/svg/education/xiezizhuo.svg */ \"./src/assets/svg/education/xiezizhuo.svg\");\n/* harmony import */ var _assets_svg_education_xiezizhuo_svg__WEBPACK_IMPORTED_MODULE_102___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_xiezizhuo_svg__WEBPACK_IMPORTED_MODULE_102__);\n/* harmony import */ var _assets_svg_education_xueshimao_svg__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ../assets/svg/education/xueshimao.svg */ \"./src/assets/svg/education/xueshimao.svg\");\n/* harmony import */ var _assets_svg_education_xueshimao_svg__WEBPACK_IMPORTED_MODULE_103___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_xueshimao_svg__WEBPACK_IMPORTED_MODULE_103__);\n/* harmony import */ var _assets_svg_education_yuanpan_svg__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ../assets/svg/education/yuanpan.svg */ \"./src/assets/svg/education/yuanpan.svg\");\n/* harmony import */ var _assets_svg_education_yuanpan_svg__WEBPACK_IMPORTED_MODULE_104___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_education_yuanpan_svg__WEBPACK_IMPORTED_MODULE_104__);\n/* harmony import */ var _assets_svg_festival_celianggongju_svg__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ../assets/svg/festival/celianggongju.svg */ \"./src/assets/svg/festival/celianggongju.svg\");\n/* harmony import */ var _assets_svg_festival_celianggongju_svg__WEBPACK_IMPORTED_MODULE_105___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_celianggongju_svg__WEBPACK_IMPORTED_MODULE_105__);\n/* harmony import */ var _assets_svg_festival_chunjie_svg__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ../assets/svg/festival/chunjie.svg */ \"./src/assets/svg/festival/chunjie.svg\");\n/* harmony import */ var _assets_svg_festival_chunjie_svg__WEBPACK_IMPORTED_MODULE_106___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_chunjie_svg__WEBPACK_IMPORTED_MODULE_106__);\n/* harmony import */ var _assets_svg_festival_duanwujie_svg__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ../assets/svg/festival/duanwujie.svg */ \"./src/assets/svg/festival/duanwujie.svg\");\n/* harmony import */ var _assets_svg_festival_duanwujie_svg__WEBPACK_IMPORTED_MODULE_107___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_duanwujie_svg__WEBPACK_IMPORTED_MODULE_107__);\n/* harmony import */ var _assets_svg_festival_ertongjie_svg__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ../assets/svg/festival/ertongjie.svg */ \"./src/assets/svg/festival/ertongjie.svg\");\n/* harmony import */ var _assets_svg_festival_ertongjie_svg__WEBPACK_IMPORTED_MODULE_108___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_ertongjie_svg__WEBPACK_IMPORTED_MODULE_108__);\n/* harmony import */ var _assets_svg_festival_fuqinjie_svg__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ../assets/svg/festival/fuqinjie.svg */ \"./src/assets/svg/festival/fuqinjie.svg\");\n/* harmony import */ var _assets_svg_festival_fuqinjie_svg__WEBPACK_IMPORTED_MODULE_109___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_fuqinjie_svg__WEBPACK_IMPORTED_MODULE_109__);\n/* harmony import */ var _assets_svg_festival_ganenjie_svg__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ../assets/svg/festival/ganenjie.svg */ \"./src/assets/svg/festival/ganenjie.svg\");\n/* harmony import */ var _assets_svg_festival_ganenjie_svg__WEBPACK_IMPORTED_MODULE_110___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_ganenjie_svg__WEBPACK_IMPORTED_MODULE_110__);\n/* harmony import */ var _assets_svg_festival_gongju_svg__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ../assets/svg/festival/gongju.svg */ \"./src/assets/svg/festival/gongju.svg\");\n/* harmony import */ var _assets_svg_festival_gongju_svg__WEBPACK_IMPORTED_MODULE_111___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_gongju_svg__WEBPACK_IMPORTED_MODULE_111__);\n/* harmony import */ var _assets_svg_festival_hushijie_svg__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ../assets/svg/festival/hushijie.svg */ \"./src/assets/svg/festival/hushijie.svg\");\n/* harmony import */ var _assets_svg_festival_hushijie_svg__WEBPACK_IMPORTED_MODULE_112___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_hushijie_svg__WEBPACK_IMPORTED_MODULE_112__);\n/* harmony import */ var _assets_svg_festival_jiaoshijie_svg__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ../assets/svg/festival/jiaoshijie.svg */ \"./src/assets/svg/festival/jiaoshijie.svg\");\n/* harmony import */ var _assets_svg_festival_jiaoshijie_svg__WEBPACK_IMPORTED_MODULE_113___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_jiaoshijie_svg__WEBPACK_IMPORTED_MODULE_113__);\n/* harmony import */ var _assets_svg_festival_laodongjie_svg__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ../assets/svg/festival/laodongjie.svg */ \"./src/assets/svg/festival/laodongjie.svg\");\n/* harmony import */ var _assets_svg_festival_laodongjie_svg__WEBPACK_IMPORTED_MODULE_114___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_laodongjie_svg__WEBPACK_IMPORTED_MODULE_114__);\n/* harmony import */ var _assets_svg_festival_muqinjie_svg__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ../assets/svg/festival/muqinjie.svg */ \"./src/assets/svg/festival/muqinjie.svg\");\n/* harmony import */ var _assets_svg_festival_muqinjie_svg__WEBPACK_IMPORTED_MODULE_115___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_muqinjie_svg__WEBPACK_IMPORTED_MODULE_115__);\n/* harmony import */ var _assets_svg_festival_nvshengjie_svg__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ../assets/svg/festival/nvshengjie.svg */ \"./src/assets/svg/festival/nvshengjie.svg\");\n/* harmony import */ var _assets_svg_festival_nvshengjie_svg__WEBPACK_IMPORTED_MODULE_116___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_nvshengjie_svg__WEBPACK_IMPORTED_MODULE_116__);\n/* harmony import */ var _assets_svg_festival_qingrenjie_svg__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ../assets/svg/festival/qingrenjie.svg */ \"./src/assets/svg/festival/qingrenjie.svg\");\n/* harmony import */ var _assets_svg_festival_qingrenjie_svg__WEBPACK_IMPORTED_MODULE_117___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_qingrenjie_svg__WEBPACK_IMPORTED_MODULE_117__);\n/* harmony import */ var _assets_svg_festival_qixi_svg__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ../assets/svg/festival/qixi.svg */ \"./src/assets/svg/festival/qixi.svg\");\n/* harmony import */ var _assets_svg_festival_qixi_svg__WEBPACK_IMPORTED_MODULE_118___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_qixi_svg__WEBPACK_IMPORTED_MODULE_118__);\n/* harmony import */ var _assets_svg_festival_shengdanjie_svg__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ../assets/svg/festival/shengdanjie.svg */ \"./src/assets/svg/festival/shengdanjie.svg\");\n/* harmony import */ var _assets_svg_festival_shengdanjie_svg__WEBPACK_IMPORTED_MODULE_119___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_shengdanjie_svg__WEBPACK_IMPORTED_MODULE_119__);\n/* harmony import */ var _assets_svg_festival_shuang_svg__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ../assets/svg/festival/shuang.svg */ \"./src/assets/svg/festival/shuang.svg\");\n/* harmony import */ var _assets_svg_festival_shuang_svg__WEBPACK_IMPORTED_MODULE_120___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_shuang_svg__WEBPACK_IMPORTED_MODULE_120__);\n/* harmony import */ var _assets_svg_festival_yuandan_svg__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ../assets/svg/festival/yuandan.svg */ \"./src/assets/svg/festival/yuandan.svg\");\n/* harmony import */ var _assets_svg_festival_yuandan_svg__WEBPACK_IMPORTED_MODULE_121___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_yuandan_svg__WEBPACK_IMPORTED_MODULE_121__);\n/* harmony import */ var _assets_svg_festival_yuanxiaojie_svg__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ../assets/svg/festival/yuanxiaojie.svg */ \"./src/assets/svg/festival/yuanxiaojie.svg\");\n/* harmony import */ var _assets_svg_festival_yuanxiaojie_svg__WEBPACK_IMPORTED_MODULE_122___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_yuanxiaojie_svg__WEBPACK_IMPORTED_MODULE_122__);\n/* harmony import */ var _assets_svg_festival_zhongqiujie_svg__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ../assets/svg/festival/zhongqiujie.svg */ \"./src/assets/svg/festival/zhongqiujie.svg\");\n/* harmony import */ var _assets_svg_festival_zhongqiujie_svg__WEBPACK_IMPORTED_MODULE_123___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_zhongqiujie_svg__WEBPACK_IMPORTED_MODULE_123__);\n/* harmony import */ var _assets_svg_festival_zhongyangjie_svg__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ../assets/svg/festival/zhongyangjie.svg */ \"./src/assets/svg/festival/zhongyangjie.svg\");\n/* harmony import */ var _assets_svg_festival_zhongyangjie_svg__WEBPACK_IMPORTED_MODULE_124___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_festival_zhongyangjie_svg__WEBPACK_IMPORTED_MODULE_124__);\n/* harmony import */ var _assets_svg_food_binggan_svg__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ../assets/svg/food/binggan.svg */ \"./src/assets/svg/food/binggan.svg\");\n/* harmony import */ var _assets_svg_food_binggan_svg__WEBPACK_IMPORTED_MODULE_125___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_binggan_svg__WEBPACK_IMPORTED_MODULE_125__);\n/* harmony import */ var _assets_svg_food_binggun_svg__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ../assets/svg/food/binggun.svg */ \"./src/assets/svg/food/binggun.svg\");\n/* harmony import */ var _assets_svg_food_binggun_svg__WEBPACK_IMPORTED_MODULE_126___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_binggun_svg__WEBPACK_IMPORTED_MODULE_126__);\n/* harmony import */ var _assets_svg_food_bingqilin_svg__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ../assets/svg/food/bingqilin.svg */ \"./src/assets/svg/food/bingqilin.svg\");\n/* harmony import */ var _assets_svg_food_bingqilin_svg__WEBPACK_IMPORTED_MODULE_127___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_bingqilin_svg__WEBPACK_IMPORTED_MODULE_127__);\n/* harmony import */ var _assets_svg_food_boluo_svg__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ../assets/svg/food/boluo.svg */ \"./src/assets/svg/food/boluo.svg\");\n/* harmony import */ var _assets_svg_food_boluo_svg__WEBPACK_IMPORTED_MODULE_128___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_boluo_svg__WEBPACK_IMPORTED_MODULE_128__);\n/* harmony import */ var _assets_svg_food_caomei_svg__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ../assets/svg/food/caomei.svg */ \"./src/assets/svg/food/caomei.svg\");\n/* harmony import */ var _assets_svg_food_caomei_svg__WEBPACK_IMPORTED_MODULE_129___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_caomei_svg__WEBPACK_IMPORTED_MODULE_129__);\n/* harmony import */ var _assets_svg_food_celianggongju_svg__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(/*! ../assets/svg/food/celianggongju.svg */ \"./src/assets/svg/food/celianggongju.svg\");\n/* harmony import */ var _assets_svg_food_celianggongju_svg__WEBPACK_IMPORTED_MODULE_130___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_celianggongju_svg__WEBPACK_IMPORTED_MODULE_130__);\n/* harmony import */ var _assets_svg_food_chengzi_svg__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(/*! ../assets/svg/food/chengzi.svg */ \"./src/assets/svg/food/chengzi.svg\");\n/* harmony import */ var _assets_svg_food_chengzi_svg__WEBPACK_IMPORTED_MODULE_131___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_chengzi_svg__WEBPACK_IMPORTED_MODULE_131__);\n/* harmony import */ var _assets_svg_food_dangao_svg__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(/*! ../assets/svg/food/dangao.svg */ \"./src/assets/svg/food/dangao.svg\");\n/* harmony import */ var _assets_svg_food_dangao_svg__WEBPACK_IMPORTED_MODULE_132___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_dangao_svg__WEBPACK_IMPORTED_MODULE_132__);\n/* harmony import */ var _assets_svg_food_fanqiejiang_svg__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(/*! ../assets/svg/food/fanqiejiang.svg */ \"./src/assets/svg/food/fanqiejiang.svg\");\n/* harmony import */ var _assets_svg_food_fanqiejiang_svg__WEBPACK_IMPORTED_MODULE_133___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_fanqiejiang_svg__WEBPACK_IMPORTED_MODULE_133__);\n/* harmony import */ var _assets_svg_food_gongju_svg__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(/*! ../assets/svg/food/gongju.svg */ \"./src/assets/svg/food/gongju.svg\");\n/* harmony import */ var _assets_svg_food_gongju_svg__WEBPACK_IMPORTED_MODULE_134___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_gongju_svg__WEBPACK_IMPORTED_MODULE_134__);\n/* harmony import */ var _assets_svg_food_hanbao_svg__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(/*! ../assets/svg/food/hanbao.svg */ \"./src/assets/svg/food/hanbao.svg\");\n/* harmony import */ var _assets_svg_food_hanbao_svg__WEBPACK_IMPORTED_MODULE_135___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_hanbao_svg__WEBPACK_IMPORTED_MODULE_135__);\n/* harmony import */ var _assets_svg_food_jiandan_svg__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(/*! ../assets/svg/food/jiandan.svg */ \"./src/assets/svg/food/jiandan.svg\");\n/* harmony import */ var _assets_svg_food_jiandan_svg__WEBPACK_IMPORTED_MODULE_136___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_jiandan_svg__WEBPACK_IMPORTED_MODULE_136__);\n/* harmony import */ var _assets_svg_food_kafeibei_svg__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(/*! ../assets/svg/food/kafeibei.svg */ \"./src/assets/svg/food/kafeibei.svg\");\n/* harmony import */ var _assets_svg_food_kafeibei_svg__WEBPACK_IMPORTED_MODULE_137___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_kafeibei_svg__WEBPACK_IMPORTED_MODULE_137__);\n/* harmony import */ var _assets_svg_food_lajiao_svg__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(/*! ../assets/svg/food/lajiao.svg */ \"./src/assets/svg/food/lajiao.svg\");\n/* harmony import */ var _assets_svg_food_lajiao_svg__WEBPACK_IMPORTED_MODULE_138___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_lajiao_svg__WEBPACK_IMPORTED_MODULE_138__);\n/* harmony import */ var _assets_svg_food_naixi_svg__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(/*! ../assets/svg/food/naixi.svg */ \"./src/assets/svg/food/naixi.svg\");\n/* harmony import */ var _assets_svg_food_naixi_svg__WEBPACK_IMPORTED_MODULE_139___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_naixi_svg__WEBPACK_IMPORTED_MODULE_139__);\n/* harmony import */ var _assets_svg_food_niunai_svg__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(/*! ../assets/svg/food/niunai.svg */ \"./src/assets/svg/food/niunai.svg\");\n/* harmony import */ var _assets_svg_food_niunai_svg__WEBPACK_IMPORTED_MODULE_140___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_niunai_svg__WEBPACK_IMPORTED_MODULE_140__);\n/* harmony import */ var _assets_svg_food_pingguo_svg__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(/*! ../assets/svg/food/pingguo.svg */ \"./src/assets/svg/food/pingguo.svg\");\n/* harmony import */ var _assets_svg_food_pingguo_svg__WEBPACK_IMPORTED_MODULE_141___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_pingguo_svg__WEBPACK_IMPORTED_MODULE_141__);\n/* harmony import */ var _assets_svg_food_pisa_svg__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(/*! ../assets/svg/food/pisa.svg */ \"./src/assets/svg/food/pisa.svg\");\n/* harmony import */ var _assets_svg_food_pisa_svg__WEBPACK_IMPORTED_MODULE_142___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_pisa_svg__WEBPACK_IMPORTED_MODULE_142__);\n/* harmony import */ var _assets_svg_food_putao_svg__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(/*! ../assets/svg/food/putao.svg */ \"./src/assets/svg/food/putao.svg\");\n/* harmony import */ var _assets_svg_food_putao_svg__WEBPACK_IMPORTED_MODULE_143___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_putao_svg__WEBPACK_IMPORTED_MODULE_143__);\n/* harmony import */ var _assets_svg_food_quqi_svg__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(/*! ../assets/svg/food/quqi.svg */ \"./src/assets/svg/food/quqi.svg\");\n/* harmony import */ var _assets_svg_food_quqi_svg__WEBPACK_IMPORTED_MODULE_144___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_quqi_svg__WEBPACK_IMPORTED_MODULE_144__);\n/* harmony import */ var _assets_svg_food_regou_svg__WEBPACK_IMPORTED_MODULE_145__ = __webpack_require__(/*! ../assets/svg/food/regou.svg */ \"./src/assets/svg/food/regou.svg\");\n/* harmony import */ var _assets_svg_food_regou_svg__WEBPACK_IMPORTED_MODULE_145___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_regou_svg__WEBPACK_IMPORTED_MODULE_145__);\n/* harmony import */ var _assets_svg_food_shutiao_svg__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(/*! ../assets/svg/food/shutiao.svg */ \"./src/assets/svg/food/shutiao.svg\");\n/* harmony import */ var _assets_svg_food_shutiao_svg__WEBPACK_IMPORTED_MODULE_146___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_shutiao_svg__WEBPACK_IMPORTED_MODULE_146__);\n/* harmony import */ var _assets_svg_food_sudaqishui_svg__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(/*! ../assets/svg/food/sudaqishui.svg */ \"./src/assets/svg/food/sudaqishui.svg\");\n/* harmony import */ var _assets_svg_food_sudaqishui_svg__WEBPACK_IMPORTED_MODULE_147___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_sudaqishui_svg__WEBPACK_IMPORTED_MODULE_147__);\n/* harmony import */ var _assets_svg_food_taozi_svg__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(/*! ../assets/svg/food/taozi.svg */ \"./src/assets/svg/food/taozi.svg\");\n/* harmony import */ var _assets_svg_food_taozi_svg__WEBPACK_IMPORTED_MODULE_148___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_taozi_svg__WEBPACK_IMPORTED_MODULE_148__);\n/* harmony import */ var _assets_svg_food_tiantianquan_svg__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(/*! ../assets/svg/food/tiantianquan.svg */ \"./src/assets/svg/food/tiantianquan.svg\");\n/* harmony import */ var _assets_svg_food_tiantianquan_svg__WEBPACK_IMPORTED_MODULE_149___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_tiantianquan_svg__WEBPACK_IMPORTED_MODULE_149__);\n/* harmony import */ var _assets_svg_food_xiangjiao_svg__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(/*! ../assets/svg/food/xiangjiao.svg */ \"./src/assets/svg/food/xiangjiao.svg\");\n/* harmony import */ var _assets_svg_food_xiangjiao_svg__WEBPACK_IMPORTED_MODULE_150___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_xiangjiao_svg__WEBPACK_IMPORTED_MODULE_150__);\n/* harmony import */ var _assets_svg_food_xigua_svg__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(/*! ../assets/svg/food/xigua.svg */ \"./src/assets/svg/food/xigua.svg\");\n/* harmony import */ var _assets_svg_food_xigua_svg__WEBPACK_IMPORTED_MODULE_151___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_xigua_svg__WEBPACK_IMPORTED_MODULE_151__);\n/* harmony import */ var _assets_svg_food_xilanhua_svg__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(/*! ../assets/svg/food/xilanhua.svg */ \"./src/assets/svg/food/xilanhua.svg\");\n/* harmony import */ var _assets_svg_food_xilanhua_svg__WEBPACK_IMPORTED_MODULE_152___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_xilanhua_svg__WEBPACK_IMPORTED_MODULE_152__);\n/* harmony import */ var _assets_svg_food_yingtao_svg__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(/*! ../assets/svg/food/yingtao.svg */ \"./src/assets/svg/food/yingtao.svg\");\n/* harmony import */ var _assets_svg_food_yingtao_svg__WEBPACK_IMPORTED_MODULE_153___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_yingtao_svg__WEBPACK_IMPORTED_MODULE_153__);\n/* harmony import */ var _assets_svg_food_yumi_svg__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(/*! ../assets/svg/food/yumi.svg */ \"./src/assets/svg/food/yumi.svg\");\n/* harmony import */ var _assets_svg_food_yumi_svg__WEBPACK_IMPORTED_MODULE_154___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_food_yumi_svg__WEBPACK_IMPORTED_MODULE_154__);\n/* harmony import */ var _assets_svg_medicine_a_1_shilibiao_svg__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(/*! ../assets/svg/medicine/a-1-shilibiao.svg */ \"./src/assets/svg/medicine/a-1-shilibiao.svg\");\n/* harmony import */ var _assets_svg_medicine_a_1_shilibiao_svg__WEBPACK_IMPORTED_MODULE_155___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_1_shilibiao_svg__WEBPACK_IMPORTED_MODULE_155__);\n/* harmony import */ var _assets_svg_medicine_a_10_yiliaoxiang_svg__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(/*! ../assets/svg/medicine/a-10-yiliaoxiang.svg */ \"./src/assets/svg/medicine/a-10-yiliaoxiang.svg\");\n/* harmony import */ var _assets_svg_medicine_a_10_yiliaoxiang_svg__WEBPACK_IMPORTED_MODULE_156___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_10_yiliaoxiang_svg__WEBPACK_IMPORTED_MODULE_156__);\n/* harmony import */ var _assets_svg_medicine_a_11_yiyongweishengzhi_svg__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(/*! ../assets/svg/medicine/a-11-yiyongweishengzhi.svg */ \"./src/assets/svg/medicine/a-11-yiyongweishengzhi.svg\");\n/* harmony import */ var _assets_svg_medicine_a_11_yiyongweishengzhi_svg__WEBPACK_IMPORTED_MODULE_157___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_11_yiyongweishengzhi_svg__WEBPACK_IMPORTED_MODULE_157__);\n/* harmony import */ var _assets_svg_medicine_a_12_huxi_svg__WEBPACK_IMPORTED_MODULE_158__ = __webpack_require__(/*! ../assets/svg/medicine/a-12-huxi.svg */ \"./src/assets/svg/medicine/a-12-huxi.svg\");\n/* harmony import */ var _assets_svg_medicine_a_12_huxi_svg__WEBPACK_IMPORTED_MODULE_158___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_12_huxi_svg__WEBPACK_IMPORTED_MODULE_158__);\n/* harmony import */ var _assets_svg_medicine_a_13_xiguan_svg__WEBPACK_IMPORTED_MODULE_159__ = __webpack_require__(/*! ../assets/svg/medicine/a-13-xiguan.svg */ \"./src/assets/svg/medicine/a-13-xiguan.svg\");\n/* harmony import */ var _assets_svg_medicine_a_13_xiguan_svg__WEBPACK_IMPORTED_MODULE_159___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_13_xiguan_svg__WEBPACK_IMPORTED_MODULE_159__);\n/* harmony import */ var _assets_svg_medicine_a_14_zhutingqi_svg__WEBPACK_IMPORTED_MODULE_160__ = __webpack_require__(/*! ../assets/svg/medicine/a-14-zhutingqi.svg */ \"./src/assets/svg/medicine/a-14-zhutingqi.svg\");\n/* harmony import */ var _assets_svg_medicine_a_14_zhutingqi_svg__WEBPACK_IMPORTED_MODULE_160___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_14_zhutingqi_svg__WEBPACK_IMPORTED_MODULE_160__);\n/* harmony import */ var _assets_svg_medicine_a_15_bingdu_svg__WEBPACK_IMPORTED_MODULE_161__ = __webpack_require__(/*! ../assets/svg/medicine/a-15-bingdu.svg */ \"./src/assets/svg/medicine/a-15-bingdu.svg\");\n/* harmony import */ var _assets_svg_medicine_a_15_bingdu_svg__WEBPACK_IMPORTED_MODULE_161___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_15_bingdu_svg__WEBPACK_IMPORTED_MODULE_161__);\n/* harmony import */ var _assets_svg_medicine_a_16_yiyuan_svg__WEBPACK_IMPORTED_MODULE_162__ = __webpack_require__(/*! ../assets/svg/medicine/a-16-yiyuan.svg */ \"./src/assets/svg/medicine/a-16-yiyuan.svg\");\n/* harmony import */ var _assets_svg_medicine_a_16_yiyuan_svg__WEBPACK_IMPORTED_MODULE_162___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_16_yiyuan_svg__WEBPACK_IMPORTED_MODULE_162__);\n/* harmony import */ var _assets_svg_medicine_a_17_zhusheqi_svg__WEBPACK_IMPORTED_MODULE_163__ = __webpack_require__(/*! ../assets/svg/medicine/a-17-zhusheqi.svg */ \"./src/assets/svg/medicine/a-17-zhusheqi.svg\");\n/* harmony import */ var _assets_svg_medicine_a_17_zhusheqi_svg__WEBPACK_IMPORTED_MODULE_163___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_17_zhusheqi_svg__WEBPACK_IMPORTED_MODULE_163__);\n/* harmony import */ var _assets_svg_medicine_a_18_xiguan_svg__WEBPACK_IMPORTED_MODULE_164__ = __webpack_require__(/*! ../assets/svg/medicine/a-18-xiguan.svg */ \"./src/assets/svg/medicine/a-18-xiguan.svg\");\n/* harmony import */ var _assets_svg_medicine_a_18_xiguan_svg__WEBPACK_IMPORTED_MODULE_164___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_18_xiguan_svg__WEBPACK_IMPORTED_MODULE_164__);\n/* harmony import */ var _assets_svg_medicine_a_19guaizhang_svg__WEBPACK_IMPORTED_MODULE_165__ = __webpack_require__(/*! ../assets/svg/medicine/a-19guaizhang.svg */ \"./src/assets/svg/medicine/a-19guaizhang.svg\");\n/* harmony import */ var _assets_svg_medicine_a_19guaizhang_svg__WEBPACK_IMPORTED_MODULE_165___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_19guaizhang_svg__WEBPACK_IMPORTED_MODULE_165__);\n/* harmony import */ var _assets_svg_medicine_a_2_kouzhao_svg__WEBPACK_IMPORTED_MODULE_166__ = __webpack_require__(/*! ../assets/svg/medicine/a-2-kouzhao.svg */ \"./src/assets/svg/medicine/a-2-kouzhao.svg\");\n/* harmony import */ var _assets_svg_medicine_a_2_kouzhao_svg__WEBPACK_IMPORTED_MODULE_166___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_2_kouzhao_svg__WEBPACK_IMPORTED_MODULE_166__);\n/* harmony import */ var _assets_svg_medicine_a_20_shuye_svg__WEBPACK_IMPORTED_MODULE_167__ = __webpack_require__(/*! ../assets/svg/medicine/a-20-shuye.svg */ \"./src/assets/svg/medicine/a-20-shuye.svg\");\n/* harmony import */ var _assets_svg_medicine_a_20_shuye_svg__WEBPACK_IMPORTED_MODULE_167___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_20_shuye_svg__WEBPACK_IMPORTED_MODULE_167__);\n/* harmony import */ var _assets_svg_medicine_a_3_chuangkoutie_svg__WEBPACK_IMPORTED_MODULE_168__ = __webpack_require__(/*! ../assets/svg/medicine/a-3-chuangkoutie.svg */ \"./src/assets/svg/medicine/a-3-chuangkoutie.svg\");\n/* harmony import */ var _assets_svg_medicine_a_3_chuangkoutie_svg__WEBPACK_IMPORTED_MODULE_168___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_3_chuangkoutie_svg__WEBPACK_IMPORTED_MODULE_168__);\n/* harmony import */ var _assets_svg_medicine_a_4_lunyi_svg__WEBPACK_IMPORTED_MODULE_169__ = __webpack_require__(/*! ../assets/svg/medicine/a-4-lunyi.svg */ \"./src/assets/svg/medicine/a-4-lunyi.svg\");\n/* harmony import */ var _assets_svg_medicine_a_4_lunyi_svg__WEBPACK_IMPORTED_MODULE_169___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_4_lunyi_svg__WEBPACK_IMPORTED_MODULE_169__);\n/* harmony import */ var _assets_svg_medicine_a_5_mianqian_svg__WEBPACK_IMPORTED_MODULE_170__ = __webpack_require__(/*! ../assets/svg/medicine/a-5-mianqian.svg */ \"./src/assets/svg/medicine/a-5-mianqian.svg\");\n/* harmony import */ var _assets_svg_medicine_a_5_mianqian_svg__WEBPACK_IMPORTED_MODULE_170___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_5_mianqian_svg__WEBPACK_IMPORTED_MODULE_170__);\n/* harmony import */ var _assets_svg_medicine_a_6_jiancebi_svg__WEBPACK_IMPORTED_MODULE_171__ = __webpack_require__(/*! ../assets/svg/medicine/a-6-jiancebi.svg */ \"./src/assets/svg/medicine/a-6-jiancebi.svg\");\n/* harmony import */ var _assets_svg_medicine_a_6_jiancebi_svg__WEBPACK_IMPORTED_MODULE_171___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_6_jiancebi_svg__WEBPACK_IMPORTED_MODULE_171__);\n/* harmony import */ var _assets_svg_medicine_a_7_xinzang_svg__WEBPACK_IMPORTED_MODULE_172__ = __webpack_require__(/*! ../assets/svg/medicine/a-7-xinzang.svg */ \"./src/assets/svg/medicine/a-7-xinzang.svg\");\n/* harmony import */ var _assets_svg_medicine_a_7_xinzang_svg__WEBPACK_IMPORTED_MODULE_172___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_7_xinzang_svg__WEBPACK_IMPORTED_MODULE_172__);\n/* harmony import */ var _assets_svg_medicine_a_8_DNA_svg__WEBPACK_IMPORTED_MODULE_173__ = __webpack_require__(/*! ../assets/svg/medicine/a-8-DNA.svg */ \"./src/assets/svg/medicine/a-8-DNA.svg\");\n/* harmony import */ var _assets_svg_medicine_a_8_DNA_svg__WEBPACK_IMPORTED_MODULE_173___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_8_DNA_svg__WEBPACK_IMPORTED_MODULE_173__);\n/* harmony import */ var _assets_svg_medicine_a_9_tizhongcheng_svg__WEBPACK_IMPORTED_MODULE_174__ = __webpack_require__(/*! ../assets/svg/medicine/a-9-tizhongcheng.svg */ \"./src/assets/svg/medicine/a-9-tizhongcheng.svg\");\n/* harmony import */ var _assets_svg_medicine_a_9_tizhongcheng_svg__WEBPACK_IMPORTED_MODULE_174___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_medicine_a_9_tizhongcheng_svg__WEBPACK_IMPORTED_MODULE_174__);\n/* harmony import */ var _assets_svg_tools_gaizhui_svg__WEBPACK_IMPORTED_MODULE_175__ = __webpack_require__(/*! ../assets/svg/tools/gaizhui.svg */ \"./src/assets/svg/tools/gaizhui.svg\");\n/* harmony import */ var _assets_svg_tools_gaizhui_svg__WEBPACK_IMPORTED_MODULE_175___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_gaizhui_svg__WEBPACK_IMPORTED_MODULE_175__);\n/* harmony import */ var _assets_svg_tools_ziyuan_svg__WEBPACK_IMPORTED_MODULE_176__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan.svg */ \"./src/assets/svg/tools/ziyuan.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_svg__WEBPACK_IMPORTED_MODULE_176___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_svg__WEBPACK_IMPORTED_MODULE_176__);\n/* harmony import */ var _assets_svg_tools_ziyuan_1_svg__WEBPACK_IMPORTED_MODULE_177__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_1.svg */ \"./src/assets/svg/tools/ziyuan_1.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_1_svg__WEBPACK_IMPORTED_MODULE_177___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_1_svg__WEBPACK_IMPORTED_MODULE_177__);\n/* harmony import */ var _assets_svg_tools_ziyuan_10_svg__WEBPACK_IMPORTED_MODULE_178__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_10.svg */ \"./src/assets/svg/tools/ziyuan_10.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_10_svg__WEBPACK_IMPORTED_MODULE_178___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_10_svg__WEBPACK_IMPORTED_MODULE_178__);\n/* harmony import */ var _assets_svg_tools_ziyuan_11_svg__WEBPACK_IMPORTED_MODULE_179__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_11.svg */ \"./src/assets/svg/tools/ziyuan_11.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_11_svg__WEBPACK_IMPORTED_MODULE_179___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_11_svg__WEBPACK_IMPORTED_MODULE_179__);\n/* harmony import */ var _assets_svg_tools_ziyuan_12_svg__WEBPACK_IMPORTED_MODULE_180__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_12.svg */ \"./src/assets/svg/tools/ziyuan_12.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_12_svg__WEBPACK_IMPORTED_MODULE_180___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_12_svg__WEBPACK_IMPORTED_MODULE_180__);\n/* harmony import */ var _assets_svg_tools_ziyuan_13_svg__WEBPACK_IMPORTED_MODULE_181__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_13.svg */ \"./src/assets/svg/tools/ziyuan_13.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_13_svg__WEBPACK_IMPORTED_MODULE_181___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_13_svg__WEBPACK_IMPORTED_MODULE_181__);\n/* harmony import */ var _assets_svg_tools_ziyuan_14_svg__WEBPACK_IMPORTED_MODULE_182__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_14.svg */ \"./src/assets/svg/tools/ziyuan_14.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_14_svg__WEBPACK_IMPORTED_MODULE_182___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_14_svg__WEBPACK_IMPORTED_MODULE_182__);\n/* harmony import */ var _assets_svg_tools_ziyuan_15_svg__WEBPACK_IMPORTED_MODULE_183__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_15.svg */ \"./src/assets/svg/tools/ziyuan_15.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_15_svg__WEBPACK_IMPORTED_MODULE_183___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_15_svg__WEBPACK_IMPORTED_MODULE_183__);\n/* harmony import */ var _assets_svg_tools_ziyuan_16_svg__WEBPACK_IMPORTED_MODULE_184__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_16.svg */ \"./src/assets/svg/tools/ziyuan_16.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_16_svg__WEBPACK_IMPORTED_MODULE_184___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_16_svg__WEBPACK_IMPORTED_MODULE_184__);\n/* harmony import */ var _assets_svg_tools_ziyuan_17_svg__WEBPACK_IMPORTED_MODULE_185__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_17.svg */ \"./src/assets/svg/tools/ziyuan_17.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_17_svg__WEBPACK_IMPORTED_MODULE_185___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_17_svg__WEBPACK_IMPORTED_MODULE_185__);\n/* harmony import */ var _assets_svg_tools_ziyuan_18_svg__WEBPACK_IMPORTED_MODULE_186__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_18.svg */ \"./src/assets/svg/tools/ziyuan_18.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_18_svg__WEBPACK_IMPORTED_MODULE_186___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_18_svg__WEBPACK_IMPORTED_MODULE_186__);\n/* harmony import */ var _assets_svg_tools_ziyuan_2_svg__WEBPACK_IMPORTED_MODULE_187__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_2.svg */ \"./src/assets/svg/tools/ziyuan_2.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_2_svg__WEBPACK_IMPORTED_MODULE_187___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_2_svg__WEBPACK_IMPORTED_MODULE_187__);\n/* harmony import */ var _assets_svg_tools_ziyuan_3_svg__WEBPACK_IMPORTED_MODULE_188__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_3.svg */ \"./src/assets/svg/tools/ziyuan_3.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_3_svg__WEBPACK_IMPORTED_MODULE_188___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_3_svg__WEBPACK_IMPORTED_MODULE_188__);\n/* harmony import */ var _assets_svg_tools_ziyuan_4_svg__WEBPACK_IMPORTED_MODULE_189__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_4.svg */ \"./src/assets/svg/tools/ziyuan_4.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_4_svg__WEBPACK_IMPORTED_MODULE_189___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_4_svg__WEBPACK_IMPORTED_MODULE_189__);\n/* harmony import */ var _assets_svg_tools_ziyuan_5_svg__WEBPACK_IMPORTED_MODULE_190__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_5.svg */ \"./src/assets/svg/tools/ziyuan_5.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_5_svg__WEBPACK_IMPORTED_MODULE_190___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_5_svg__WEBPACK_IMPORTED_MODULE_190__);\n/* harmony import */ var _assets_svg_tools_ziyuan_6_svg__WEBPACK_IMPORTED_MODULE_191__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_6.svg */ \"./src/assets/svg/tools/ziyuan_6.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_6_svg__WEBPACK_IMPORTED_MODULE_191___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_6_svg__WEBPACK_IMPORTED_MODULE_191__);\n/* harmony import */ var _assets_svg_tools_ziyuan_7_svg__WEBPACK_IMPORTED_MODULE_192__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_7.svg */ \"./src/assets/svg/tools/ziyuan_7.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_7_svg__WEBPACK_IMPORTED_MODULE_192___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_7_svg__WEBPACK_IMPORTED_MODULE_192__);\n/* harmony import */ var _assets_svg_tools_ziyuan_8_svg__WEBPACK_IMPORTED_MODULE_193__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_8.svg */ \"./src/assets/svg/tools/ziyuan_8.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_8_svg__WEBPACK_IMPORTED_MODULE_193___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_8_svg__WEBPACK_IMPORTED_MODULE_193__);\n/* harmony import */ var _assets_svg_tools_ziyuan_9_svg__WEBPACK_IMPORTED_MODULE_194__ = __webpack_require__(/*! ../assets/svg/tools/ziyuan_9.svg */ \"./src/assets/svg/tools/ziyuan_9.svg\");\n/* harmony import */ var _assets_svg_tools_ziyuan_9_svg__WEBPACK_IMPORTED_MODULE_194___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_tools_ziyuan_9_svg__WEBPACK_IMPORTED_MODULE_194__);\n/* harmony import */ var _assets_svg_travel_banshouli_svg__WEBPACK_IMPORTED_MODULE_195__ = __webpack_require__(/*! ../assets/svg/travel/banshouli.svg */ \"./src/assets/svg/travel/banshouli.svg\");\n/* harmony import */ var _assets_svg_travel_banshouli_svg__WEBPACK_IMPORTED_MODULE_195___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_banshouli_svg__WEBPACK_IMPORTED_MODULE_195__);\n/* harmony import */ var _assets_svg_travel_chuhangshijian_svg__WEBPACK_IMPORTED_MODULE_196__ = __webpack_require__(/*! ../assets/svg/travel/chuhangshijian.svg */ \"./src/assets/svg/travel/chuhangshijian.svg\");\n/* harmony import */ var _assets_svg_travel_chuhangshijian_svg__WEBPACK_IMPORTED_MODULE_196___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_chuhangshijian_svg__WEBPACK_IMPORTED_MODULE_196__);\n/* harmony import */ var _assets_svg_travel_ditu_svg__WEBPACK_IMPORTED_MODULE_197__ = __webpack_require__(/*! ../assets/svg/travel/ditu.svg */ \"./src/assets/svg/travel/ditu.svg\");\n/* harmony import */ var _assets_svg_travel_ditu_svg__WEBPACK_IMPORTED_MODULE_197___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_ditu_svg__WEBPACK_IMPORTED_MODULE_197__);\n/* harmony import */ var _assets_svg_travel_fengjing_svg__WEBPACK_IMPORTED_MODULE_198__ = __webpack_require__(/*! ../assets/svg/travel/fengjing.svg */ \"./src/assets/svg/travel/fengjing.svg\");\n/* harmony import */ var _assets_svg_travel_fengjing_svg__WEBPACK_IMPORTED_MODULE_198___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_fengjing_svg__WEBPACK_IMPORTED_MODULE_198__);\n/* harmony import */ var _assets_svg_travel_gonglve_svg__WEBPACK_IMPORTED_MODULE_199__ = __webpack_require__(/*! ../assets/svg/travel/gonglve.svg */ \"./src/assets/svg/travel/gonglve.svg\");\n/* harmony import */ var _assets_svg_travel_gonglve_svg__WEBPACK_IMPORTED_MODULE_199___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_gonglve_svg__WEBPACK_IMPORTED_MODULE_199__);\n/* harmony import */ var _assets_svg_travel_hangli_svg__WEBPACK_IMPORTED_MODULE_200__ = __webpack_require__(/*! ../assets/svg/travel/hangli.svg */ \"./src/assets/svg/travel/hangli.svg\");\n/* harmony import */ var _assets_svg_travel_hangli_svg__WEBPACK_IMPORTED_MODULE_200___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_hangli_svg__WEBPACK_IMPORTED_MODULE_200__);\n/* harmony import */ var _assets_svg_travel_huafei_svg__WEBPACK_IMPORTED_MODULE_201__ = __webpack_require__(/*! ../assets/svg/travel/huafei.svg */ \"./src/assets/svg/travel/huafei.svg\");\n/* harmony import */ var _assets_svg_travel_huafei_svg__WEBPACK_IMPORTED_MODULE_201___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_huafei_svg__WEBPACK_IMPORTED_MODULE_201__);\n/* harmony import */ var _assets_svg_travel_jipiao_svg__WEBPACK_IMPORTED_MODULE_202__ = __webpack_require__(/*! ../assets/svg/travel/jipiao.svg */ \"./src/assets/svg/travel/jipiao.svg\");\n/* harmony import */ var _assets_svg_travel_jipiao_svg__WEBPACK_IMPORTED_MODULE_202___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_jipiao_svg__WEBPACK_IMPORTED_MODULE_202__);\n/* harmony import */ var _assets_svg_travel_jiudian_svg__WEBPACK_IMPORTED_MODULE_203__ = __webpack_require__(/*! ../assets/svg/travel/jiudian.svg */ \"./src/assets/svg/travel/jiudian.svg\");\n/* harmony import */ var _assets_svg_travel_jiudian_svg__WEBPACK_IMPORTED_MODULE_203___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_jiudian_svg__WEBPACK_IMPORTED_MODULE_203__);\n/* harmony import */ var _assets_svg_travel_lvban_svg__WEBPACK_IMPORTED_MODULE_204__ = __webpack_require__(/*! ../assets/svg/travel/lvban.svg */ \"./src/assets/svg/travel/lvban.svg\");\n/* harmony import */ var _assets_svg_travel_lvban_svg__WEBPACK_IMPORTED_MODULE_204___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_lvban_svg__WEBPACK_IMPORTED_MODULE_204__);\n/* harmony import */ var _assets_svg_travel_meishi_svg__WEBPACK_IMPORTED_MODULE_205__ = __webpack_require__(/*! ../assets/svg/travel/meishi.svg */ \"./src/assets/svg/travel/meishi.svg\");\n/* harmony import */ var _assets_svg_travel_meishi_svg__WEBPACK_IMPORTED_MODULE_205___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_meishi_svg__WEBPACK_IMPORTED_MODULE_205__);\n/* harmony import */ var _assets_svg_travel_menpiao_svg__WEBPACK_IMPORTED_MODULE_206__ = __webpack_require__(/*! ../assets/svg/travel/menpiao.svg */ \"./src/assets/svg/travel/menpiao.svg\");\n/* harmony import */ var _assets_svg_travel_menpiao_svg__WEBPACK_IMPORTED_MODULE_206___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_menpiao_svg__WEBPACK_IMPORTED_MODULE_206__);\n/* harmony import */ var _assets_svg_travel_paishe_svg__WEBPACK_IMPORTED_MODULE_207__ = __webpack_require__(/*! ../assets/svg/travel/paishe.svg */ \"./src/assets/svg/travel/paishe.svg\");\n/* harmony import */ var _assets_svg_travel_paishe_svg__WEBPACK_IMPORTED_MODULE_207___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_paishe_svg__WEBPACK_IMPORTED_MODULE_207__);\n/* harmony import */ var _assets_svg_travel_qianzheng_svg__WEBPACK_IMPORTED_MODULE_208__ = __webpack_require__(/*! ../assets/svg/travel/qianzheng.svg */ \"./src/assets/svg/travel/qianzheng.svg\");\n/* harmony import */ var _assets_svg_travel_qianzheng_svg__WEBPACK_IMPORTED_MODULE_208___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_qianzheng_svg__WEBPACK_IMPORTED_MODULE_208__);\n/* harmony import */ var _assets_svg_travel_shangdian_svg__WEBPACK_IMPORTED_MODULE_209__ = __webpack_require__(/*! ../assets/svg/travel/shangdian.svg */ \"./src/assets/svg/travel/shangdian.svg\");\n/* harmony import */ var _assets_svg_travel_shangdian_svg__WEBPACK_IMPORTED_MODULE_209___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_shangdian_svg__WEBPACK_IMPORTED_MODULE_209__);\n/* harmony import */ var _assets_svg_travel_tianqi_svg__WEBPACK_IMPORTED_MODULE_210__ = __webpack_require__(/*! ../assets/svg/travel/tianqi.svg */ \"./src/assets/svg/travel/tianqi.svg\");\n/* harmony import */ var _assets_svg_travel_tianqi_svg__WEBPACK_IMPORTED_MODULE_210___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_tianqi_svg__WEBPACK_IMPORTED_MODULE_210__);\n/* harmony import */ var _assets_svg_travel_youlechangsuo_svg__WEBPACK_IMPORTED_MODULE_211__ = __webpack_require__(/*! ../assets/svg/travel/youlechangsuo.svg */ \"./src/assets/svg/travel/youlechangsuo.svg\");\n/* harmony import */ var _assets_svg_travel_youlechangsuo_svg__WEBPACK_IMPORTED_MODULE_211___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_youlechangsuo_svg__WEBPACK_IMPORTED_MODULE_211__);\n/* harmony import */ var _assets_svg_travel_yuyanfanyi_svg__WEBPACK_IMPORTED_MODULE_212__ = __webpack_require__(/*! ../assets/svg/travel/yuyanfanyi.svg */ \"./src/assets/svg/travel/yuyanfanyi.svg\");\n/* harmony import */ var _assets_svg_travel_yuyanfanyi_svg__WEBPACK_IMPORTED_MODULE_212___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_yuyanfanyi_svg__WEBPACK_IMPORTED_MODULE_212__);\n/* harmony import */ var _assets_svg_travel_zhuyishixiang_svg__WEBPACK_IMPORTED_MODULE_213__ = __webpack_require__(/*! ../assets/svg/travel/zhuyishixiang.svg */ \"./src/assets/svg/travel/zhuyishixiang.svg\");\n/* harmony import */ var _assets_svg_travel_zhuyishixiang_svg__WEBPACK_IMPORTED_MODULE_213___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_zhuyishixiang_svg__WEBPACK_IMPORTED_MODULE_213__);\n/* harmony import */ var _assets_svg_travel_zuche_svg__WEBPACK_IMPORTED_MODULE_214__ = __webpack_require__(/*! ../assets/svg/travel/zuche.svg */ \"./src/assets/svg/travel/zuche.svg\");\n/* harmony import */ var _assets_svg_travel_zuche_svg__WEBPACK_IMPORTED_MODULE_214___default = /*#__PURE__*/__webpack_require__.n(_assets_svg_travel_zuche_svg__WEBPACK_IMPORTED_MODULE_214__);\n// 该文件请运行npm run createNodeImageList命令自动生成\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ([{\n \"name\": \"商务\",\n \"list\": [{\n \"url\": _assets_svg_business_svg__WEBPACK_IMPORTED_MODULE_0___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_1_svg__WEBPACK_IMPORTED_MODULE_1___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_10_svg__WEBPACK_IMPORTED_MODULE_2___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_11_svg__WEBPACK_IMPORTED_MODULE_3___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_12_svg__WEBPACK_IMPORTED_MODULE_4___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_13_svg__WEBPACK_IMPORTED_MODULE_5___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_14_svg__WEBPACK_IMPORTED_MODULE_6___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_15_svg__WEBPACK_IMPORTED_MODULE_7___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_16_svg__WEBPACK_IMPORTED_MODULE_8___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_17_svg__WEBPACK_IMPORTED_MODULE_9___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_18_svg__WEBPACK_IMPORTED_MODULE_10___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_2_svg__WEBPACK_IMPORTED_MODULE_11___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_3_svg__WEBPACK_IMPORTED_MODULE_12___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_4_svg__WEBPACK_IMPORTED_MODULE_13___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_5_svg__WEBPACK_IMPORTED_MODULE_14___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_6_svg__WEBPACK_IMPORTED_MODULE_15___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_7_svg__WEBPACK_IMPORTED_MODULE_16___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_8_svg__WEBPACK_IMPORTED_MODULE_17___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_9_svg__WEBPACK_IMPORTED_MODULE_18___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_OAxitong_svg__WEBPACK_IMPORTED_MODULE_19___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_changyongziyuan_svg__WEBPACK_IMPORTED_MODULE_20___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_chuchashenpi_svg__WEBPACK_IMPORTED_MODULE_21___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_fanwendengji_svg__WEBPACK_IMPORTED_MODULE_22___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_feizhengshiwendengji_svg__WEBPACK_IMPORTED_MODULE_23___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_gongwenjiaohuan_svg__WEBPACK_IMPORTED_MODULE_24___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_gongzuohuibao_svg__WEBPACK_IMPORTED_MODULE_25___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_gudingzichan_svg__WEBPACK_IMPORTED_MODULE_26___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_huiyiguanli_svg__WEBPACK_IMPORTED_MODULE_27___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_huiyiyuding_svg__WEBPACK_IMPORTED_MODULE_28___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_kaoqinguanli_svg__WEBPACK_IMPORTED_MODULE_29___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_qingxiujiashenqing_svg__WEBPACK_IMPORTED_MODULE_30___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_sannianjihua_svg__WEBPACK_IMPORTED_MODULE_31___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_tongzhifabu_svg__WEBPACK_IMPORTED_MODULE_32___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_xiangmuguanli_svg__WEBPACK_IMPORTED_MODULE_33___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_xinxitougao_svg__WEBPACK_IMPORTED_MODULE_34___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_zhishichanquan_svg__WEBPACK_IMPORTED_MODULE_35___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_zhongxindongtaifabu_svg__WEBPACK_IMPORTED_MODULE_36___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_business_zongheshenpi_svg__WEBPACK_IMPORTED_MODULE_37___default.a,\n \"width\": 100,\n \"height\": 100\n }]\n}, {\n \"name\": \"教育\",\n \"list\": [{\n \"url\": _assets_svg_education_DNA_svg__WEBPACK_IMPORTED_MODULE_38___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_1_shilibiao_svg__WEBPACK_IMPORTED_MODULE_39___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_10_yiliaoxiang_svg__WEBPACK_IMPORTED_MODULE_40___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_11_yiyongweishengzhi_svg__WEBPACK_IMPORTED_MODULE_41___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_12_huxi_svg__WEBPACK_IMPORTED_MODULE_42___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_13_xiguan_svg__WEBPACK_IMPORTED_MODULE_43___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_14_zhutingqi_svg__WEBPACK_IMPORTED_MODULE_44___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_15_bingdu_svg__WEBPACK_IMPORTED_MODULE_45___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_16_yiyuan_svg__WEBPACK_IMPORTED_MODULE_46___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_17_zhusheqi_svg__WEBPACK_IMPORTED_MODULE_47___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_18_xiguan_svg__WEBPACK_IMPORTED_MODULE_48___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_19guaizhang_svg__WEBPACK_IMPORTED_MODULE_49___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_2_kouzhao_svg__WEBPACK_IMPORTED_MODULE_50___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_20_shuye_svg__WEBPACK_IMPORTED_MODULE_51___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_3_chuangkoutie_svg__WEBPACK_IMPORTED_MODULE_52___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_4_lunyi_svg__WEBPACK_IMPORTED_MODULE_53___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_5_mianqian_svg__WEBPACK_IMPORTED_MODULE_54___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_6_jiancebi_svg__WEBPACK_IMPORTED_MODULE_55___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_7_xinzang_svg__WEBPACK_IMPORTED_MODULE_56___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_8_DNA_svg__WEBPACK_IMPORTED_MODULE_57___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_9_tizhongcheng_svg__WEBPACK_IMPORTED_MODULE_58___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_bitong1_svg__WEBPACK_IMPORTED_MODULE_59___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_shu2_svg__WEBPACK_IMPORTED_MODULE_60___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_shu4_svg__WEBPACK_IMPORTED_MODULE_61___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_shu5_svg__WEBPACK_IMPORTED_MODULE_62___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_shuben2_svg__WEBPACK_IMPORTED_MODULE_63___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_shuben3_svg__WEBPACK_IMPORTED_MODULE_64___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_shuben4_svg__WEBPACK_IMPORTED_MODULE_65___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_a_xueshimao1_svg__WEBPACK_IMPORTED_MODULE_66___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_baichui_svg__WEBPACK_IMPORTED_MODULE_67___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_bijiben_svg__WEBPACK_IMPORTED_MODULE_68___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_bitong_svg__WEBPACK_IMPORTED_MODULE_69___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_chizi_svg__WEBPACK_IMPORTED_MODULE_70___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_chongdian_svg__WEBPACK_IMPORTED_MODULE_71___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_citie_svg__WEBPACK_IMPORTED_MODULE_72___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_daima_svg__WEBPACK_IMPORTED_MODULE_73___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_deng_svg__WEBPACK_IMPORTED_MODULE_74___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_dianliushiyan_svg__WEBPACK_IMPORTED_MODULE_75___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_diqiu_svg__WEBPACK_IMPORTED_MODULE_76___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_diqiuyi_svg__WEBPACK_IMPORTED_MODULE_77___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_fanyi_svg__WEBPACK_IMPORTED_MODULE_78___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_gongwenbao_svg__WEBPACK_IMPORTED_MODULE_79___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_heiban_svg__WEBPACK_IMPORTED_MODULE_80___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_huiyi_svg__WEBPACK_IMPORTED_MODULE_81___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_jiangbei_svg__WEBPACK_IMPORTED_MODULE_82___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_jiaoxuelou_svg__WEBPACK_IMPORTED_MODULE_83___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_jinpai_svg__WEBPACK_IMPORTED_MODULE_84___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_jisuan_svg__WEBPACK_IMPORTED_MODULE_85___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_jisuanqi_svg__WEBPACK_IMPORTED_MODULE_86___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_naozhong_svg__WEBPACK_IMPORTED_MODULE_87___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_qianbi_svg__WEBPACK_IMPORTED_MODULE_88___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_sepan_svg__WEBPACK_IMPORTED_MODULE_89___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_shiyan_svg__WEBPACK_IMPORTED_MODULE_90___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_shouji_svg__WEBPACK_IMPORTED_MODULE_91___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_shuben_svg__WEBPACK_IMPORTED_MODULE_92___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_shuxie_svg__WEBPACK_IMPORTED_MODULE_93___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_sousuo_svg__WEBPACK_IMPORTED_MODULE_94___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_suanpan_svg__WEBPACK_IMPORTED_MODULE_95___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_tianping_svg__WEBPACK_IMPORTED_MODULE_96___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_tingzhenqi_svg__WEBPACK_IMPORTED_MODULE_97___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_tiyu_svg__WEBPACK_IMPORTED_MODULE_98___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_wenjian_svg__WEBPACK_IMPORTED_MODULE_99___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_xianweijing_svg__WEBPACK_IMPORTED_MODULE_100___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_xiaoheiban_svg__WEBPACK_IMPORTED_MODULE_101___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_xiezizhuo_svg__WEBPACK_IMPORTED_MODULE_102___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_xueshimao_svg__WEBPACK_IMPORTED_MODULE_103___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_education_yuanpan_svg__WEBPACK_IMPORTED_MODULE_104___default.a,\n \"width\": 100,\n \"height\": 100\n }]\n}, {\n \"name\": \"节日\",\n \"list\": [{\n \"url\": _assets_svg_festival_celianggongju_svg__WEBPACK_IMPORTED_MODULE_105___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_chunjie_svg__WEBPACK_IMPORTED_MODULE_106___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_duanwujie_svg__WEBPACK_IMPORTED_MODULE_107___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_ertongjie_svg__WEBPACK_IMPORTED_MODULE_108___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_fuqinjie_svg__WEBPACK_IMPORTED_MODULE_109___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_ganenjie_svg__WEBPACK_IMPORTED_MODULE_110___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_gongju_svg__WEBPACK_IMPORTED_MODULE_111___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_hushijie_svg__WEBPACK_IMPORTED_MODULE_112___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_jiaoshijie_svg__WEBPACK_IMPORTED_MODULE_113___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_laodongjie_svg__WEBPACK_IMPORTED_MODULE_114___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_muqinjie_svg__WEBPACK_IMPORTED_MODULE_115___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_nvshengjie_svg__WEBPACK_IMPORTED_MODULE_116___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_qingrenjie_svg__WEBPACK_IMPORTED_MODULE_117___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_qixi_svg__WEBPACK_IMPORTED_MODULE_118___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_shengdanjie_svg__WEBPACK_IMPORTED_MODULE_119___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_shuang_svg__WEBPACK_IMPORTED_MODULE_120___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_yuandan_svg__WEBPACK_IMPORTED_MODULE_121___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_yuanxiaojie_svg__WEBPACK_IMPORTED_MODULE_122___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_zhongqiujie_svg__WEBPACK_IMPORTED_MODULE_123___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_festival_zhongyangjie_svg__WEBPACK_IMPORTED_MODULE_124___default.a,\n \"width\": 100,\n \"height\": 100\n }]\n}, {\n \"name\": \"食物\",\n \"list\": [{\n \"url\": _assets_svg_food_binggan_svg__WEBPACK_IMPORTED_MODULE_125___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_binggun_svg__WEBPACK_IMPORTED_MODULE_126___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_bingqilin_svg__WEBPACK_IMPORTED_MODULE_127___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_boluo_svg__WEBPACK_IMPORTED_MODULE_128___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_caomei_svg__WEBPACK_IMPORTED_MODULE_129___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_celianggongju_svg__WEBPACK_IMPORTED_MODULE_130___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_chengzi_svg__WEBPACK_IMPORTED_MODULE_131___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_dangao_svg__WEBPACK_IMPORTED_MODULE_132___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_fanqiejiang_svg__WEBPACK_IMPORTED_MODULE_133___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_gongju_svg__WEBPACK_IMPORTED_MODULE_134___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_hanbao_svg__WEBPACK_IMPORTED_MODULE_135___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_jiandan_svg__WEBPACK_IMPORTED_MODULE_136___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_kafeibei_svg__WEBPACK_IMPORTED_MODULE_137___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_lajiao_svg__WEBPACK_IMPORTED_MODULE_138___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_naixi_svg__WEBPACK_IMPORTED_MODULE_139___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_niunai_svg__WEBPACK_IMPORTED_MODULE_140___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_pingguo_svg__WEBPACK_IMPORTED_MODULE_141___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_pisa_svg__WEBPACK_IMPORTED_MODULE_142___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_putao_svg__WEBPACK_IMPORTED_MODULE_143___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_quqi_svg__WEBPACK_IMPORTED_MODULE_144___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_regou_svg__WEBPACK_IMPORTED_MODULE_145___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_shutiao_svg__WEBPACK_IMPORTED_MODULE_146___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_sudaqishui_svg__WEBPACK_IMPORTED_MODULE_147___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_taozi_svg__WEBPACK_IMPORTED_MODULE_148___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_tiantianquan_svg__WEBPACK_IMPORTED_MODULE_149___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_xiangjiao_svg__WEBPACK_IMPORTED_MODULE_150___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_xigua_svg__WEBPACK_IMPORTED_MODULE_151___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_xilanhua_svg__WEBPACK_IMPORTED_MODULE_152___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_yingtao_svg__WEBPACK_IMPORTED_MODULE_153___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_food_yumi_svg__WEBPACK_IMPORTED_MODULE_154___default.a,\n \"width\": 100,\n \"height\": 100\n }]\n}, {\n \"name\": \"医疗\",\n \"list\": [{\n \"url\": _assets_svg_medicine_a_1_shilibiao_svg__WEBPACK_IMPORTED_MODULE_155___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_10_yiliaoxiang_svg__WEBPACK_IMPORTED_MODULE_156___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_11_yiyongweishengzhi_svg__WEBPACK_IMPORTED_MODULE_157___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_12_huxi_svg__WEBPACK_IMPORTED_MODULE_158___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_13_xiguan_svg__WEBPACK_IMPORTED_MODULE_159___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_14_zhutingqi_svg__WEBPACK_IMPORTED_MODULE_160___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_15_bingdu_svg__WEBPACK_IMPORTED_MODULE_161___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_16_yiyuan_svg__WEBPACK_IMPORTED_MODULE_162___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_17_zhusheqi_svg__WEBPACK_IMPORTED_MODULE_163___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_18_xiguan_svg__WEBPACK_IMPORTED_MODULE_164___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_19guaizhang_svg__WEBPACK_IMPORTED_MODULE_165___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_2_kouzhao_svg__WEBPACK_IMPORTED_MODULE_166___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_20_shuye_svg__WEBPACK_IMPORTED_MODULE_167___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_3_chuangkoutie_svg__WEBPACK_IMPORTED_MODULE_168___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_4_lunyi_svg__WEBPACK_IMPORTED_MODULE_169___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_5_mianqian_svg__WEBPACK_IMPORTED_MODULE_170___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_6_jiancebi_svg__WEBPACK_IMPORTED_MODULE_171___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_7_xinzang_svg__WEBPACK_IMPORTED_MODULE_172___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_8_DNA_svg__WEBPACK_IMPORTED_MODULE_173___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_medicine_a_9_tizhongcheng_svg__WEBPACK_IMPORTED_MODULE_174___default.a,\n \"width\": 100,\n \"height\": 100\n }]\n}, {\n \"name\": \"工具\",\n \"list\": [{\n \"url\": _assets_svg_tools_gaizhui_svg__WEBPACK_IMPORTED_MODULE_175___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_svg__WEBPACK_IMPORTED_MODULE_176___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_1_svg__WEBPACK_IMPORTED_MODULE_177___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_10_svg__WEBPACK_IMPORTED_MODULE_178___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_11_svg__WEBPACK_IMPORTED_MODULE_179___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_12_svg__WEBPACK_IMPORTED_MODULE_180___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_13_svg__WEBPACK_IMPORTED_MODULE_181___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_14_svg__WEBPACK_IMPORTED_MODULE_182___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_15_svg__WEBPACK_IMPORTED_MODULE_183___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_16_svg__WEBPACK_IMPORTED_MODULE_184___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_17_svg__WEBPACK_IMPORTED_MODULE_185___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_18_svg__WEBPACK_IMPORTED_MODULE_186___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_2_svg__WEBPACK_IMPORTED_MODULE_187___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_3_svg__WEBPACK_IMPORTED_MODULE_188___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_4_svg__WEBPACK_IMPORTED_MODULE_189___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_5_svg__WEBPACK_IMPORTED_MODULE_190___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_6_svg__WEBPACK_IMPORTED_MODULE_191___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_7_svg__WEBPACK_IMPORTED_MODULE_192___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_8_svg__WEBPACK_IMPORTED_MODULE_193___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_tools_ziyuan_9_svg__WEBPACK_IMPORTED_MODULE_194___default.a,\n \"width\": 100,\n \"height\": 100\n }]\n}, {\n \"name\": \"旅行\",\n \"list\": [{\n \"url\": _assets_svg_travel_banshouli_svg__WEBPACK_IMPORTED_MODULE_195___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_chuhangshijian_svg__WEBPACK_IMPORTED_MODULE_196___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_ditu_svg__WEBPACK_IMPORTED_MODULE_197___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_fengjing_svg__WEBPACK_IMPORTED_MODULE_198___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_gonglve_svg__WEBPACK_IMPORTED_MODULE_199___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_hangli_svg__WEBPACK_IMPORTED_MODULE_200___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_huafei_svg__WEBPACK_IMPORTED_MODULE_201___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_jipiao_svg__WEBPACK_IMPORTED_MODULE_202___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_jiudian_svg__WEBPACK_IMPORTED_MODULE_203___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_lvban_svg__WEBPACK_IMPORTED_MODULE_204___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_meishi_svg__WEBPACK_IMPORTED_MODULE_205___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_menpiao_svg__WEBPACK_IMPORTED_MODULE_206___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_paishe_svg__WEBPACK_IMPORTED_MODULE_207___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_qianzheng_svg__WEBPACK_IMPORTED_MODULE_208___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_shangdian_svg__WEBPACK_IMPORTED_MODULE_209___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_tianqi_svg__WEBPACK_IMPORTED_MODULE_210___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_youlechangsuo_svg__WEBPACK_IMPORTED_MODULE_211___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_yuyanfanyi_svg__WEBPACK_IMPORTED_MODULE_212___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_zhuyishixiang_svg__WEBPACK_IMPORTED_MODULE_213___default.a,\n \"width\": 100,\n \"height\": 100\n }, {\n \"url\": _assets_svg_travel_zuche_svg__WEBPACK_IMPORTED_MODULE_214___default.a,\n \"width\": 100,\n \"height\": 100\n }]\n}]);\n\n//# sourceURL=webpack:///./src/config/image.js?");
/***/ }),
/***/ "./src/config/index.js":
/*!*****************************!*\
!*** ./src/config/index.js ***!
\*****************************/
/*! exports provided: fontSizeList, borderWidthList, borderRadiusList, lineWidthList, store, colorList, langList, fontFamilyList, borderDasharrayList, lineStyleList, lineStyleMap, rootLineKeepSameInCurveList, backgroundRepeatList, backgroundPositionList, backgroundSizeList, shortcutKeyList, shapeList, shapeListMap, sidebarTriggerList, downTypeList, numberTypeList, numberLevelList, linearGradientDirList, alignList */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fontFamilyList\", function() { return fontFamilyList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"borderDasharrayList\", function() { return borderDasharrayList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lineStyleList\", function() { return lineStyleList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lineStyleMap\", function() { return lineStyleMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rootLineKeepSameInCurveList\", function() { return rootLineKeepSameInCurveList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"backgroundRepeatList\", function() { return backgroundRepeatList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"backgroundPositionList\", function() { return backgroundPositionList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"backgroundSizeList\", function() { return backgroundSizeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shortcutKeyList\", function() { return shortcutKeyList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shapeList\", function() { return shapeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shapeListMap\", function() { return shapeListMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sidebarTriggerList\", function() { return sidebarTriggerList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"downTypeList\", function() { return downTypeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"numberTypeList\", function() { return numberTypeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"numberLevelList\", function() { return numberLevelList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"linearGradientDirList\", function() { return linearGradientDirList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"alignList\", function() { return alignList; });\n/* harmony import */ var _zh__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./zh */ \"./src/config/zh.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fontSizeList\", function() { return _zh__WEBPACK_IMPORTED_MODULE_0__[\"fontSizeList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"borderWidthList\", function() { return _zh__WEBPACK_IMPORTED_MODULE_0__[\"borderWidthList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"borderRadiusList\", function() { return _zh__WEBPACK_IMPORTED_MODULE_0__[\"borderRadiusList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lineWidthList\", function() { return _zh__WEBPACK_IMPORTED_MODULE_0__[\"lineWidthList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"store\", function() { return _zh__WEBPACK_IMPORTED_MODULE_0__[\"store\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"colorList\", function() { return _zh__WEBPACK_IMPORTED_MODULE_0__[\"colorList\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"langList\", function() { return _zh__WEBPACK_IMPORTED_MODULE_0__[\"langList\"]; });\n\n/* harmony import */ var _en__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./en */ \"./src/config/en.js\");\n/* harmony import */ var _zhtw__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./zhtw */ \"./src/config/zhtw.js\");\n\n\n\nconst fontFamilyList = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"fontFamilyList\"],\n en: _en__WEBPACK_IMPORTED_MODULE_1__[\"fontFamilyList\"],\n zhtw: _zhtw__WEBPACK_IMPORTED_MODULE_2__[\"fontFamilyList\"]\n};\nconst borderDasharrayList = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"borderDasharrayList\"],\n en: _en__WEBPACK_IMPORTED_MODULE_1__[\"borderDasharrayList\"],\n zhtw: _zhtw__WEBPACK_IMPORTED_MODULE_2__[\"borderDasharrayList\"]\n};\nconst lineStyleList = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"lineStyleList\"],\n en: _en__WEBPACK_IMPORTED_MODULE_1__[\"lineStyleList\"],\n zhtw: _zhtw__WEBPACK_IMPORTED_MODULE_2__[\"lineStyleList\"]\n};\nconst lineStyleMap = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"lineStyleMap\"],\n en: _zh__WEBPACK_IMPORTED_MODULE_0__[\"lineStyleMap\"],\n zhtw: _zh__WEBPACK_IMPORTED_MODULE_0__[\"lineStyleMap\"]\n};\nconst rootLineKeepSameInCurveList = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"rootLineKeepSameInCurveList\"],\n en: _en__WEBPACK_IMPORTED_MODULE_1__[\"rootLineKeepSameInCurveList\"],\n zhtw: _zhtw__WEBPACK_IMPORTED_MODULE_2__[\"rootLineKeepSameInCurveList\"]\n};\nconst backgroundRepeatList = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"backgroundRepeatList\"],\n en: _en__WEBPACK_IMPORTED_MODULE_1__[\"backgroundRepeatList\"],\n zhtw: _zhtw__WEBPACK_IMPORTED_MODULE_2__[\"backgroundRepeatList\"]\n};\nconst backgroundPositionList = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"backgroundPositionList\"],\n en: _en__WEBPACK_IMPORTED_MODULE_1__[\"backgroundPositionList\"],\n zhtw: _zhtw__WEBPACK_IMPORTED_MODULE_2__[\"backgroundPositionList\"]\n};\nconst backgroundSizeList = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"backgroundSizeList\"],\n en: _en__WEBPACK_IMPORTED_MODULE_1__[\"backgroundSizeList\"],\n zhtw: _zhtw__WEBPACK_IMPORTED_MODULE_2__[\"backgroundSizeList\"]\n};\nconst shortcutKeyList = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"shortcutKeyList\"],\n en: _en__WEBPACK_IMPORTED_MODULE_1__[\"shortcutKeyList\"],\n zhtw: _zhtw__WEBPACK_IMPORTED_MODULE_2__[\"shortcutKeyList\"]\n};\nconst shapeList = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"shapeList\"],\n en: _en__WEBPACK_IMPORTED_MODULE_1__[\"shapeList\"],\n zhtw: _zhtw__WEBPACK_IMPORTED_MODULE_2__[\"shapeList\"]\n};\nconst shapeListMap = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"shapeListMap\"],\n en: _zh__WEBPACK_IMPORTED_MODULE_0__[\"shapeListMap\"],\n zhtw: _zh__WEBPACK_IMPORTED_MODULE_0__[\"shapeListMap\"]\n};\nconst sidebarTriggerList = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"sidebarTriggerList\"],\n en: _en__WEBPACK_IMPORTED_MODULE_1__[\"sidebarTriggerList\"],\n zhtw: _zhtw__WEBPACK_IMPORTED_MODULE_2__[\"sidebarTriggerList\"]\n};\nconst downTypeList = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"downTypeList\"],\n en: _en__WEBPACK_IMPORTED_MODULE_1__[\"downTypeList\"],\n zhtw: _zhtw__WEBPACK_IMPORTED_MODULE_2__[\"downTypeList\"]\n};\nconst numberTypeList = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"numberTypeList\"],\n en: _en__WEBPACK_IMPORTED_MODULE_1__[\"numberTypeList\"],\n zhtw: _zhtw__WEBPACK_IMPORTED_MODULE_2__[\"numberTypeList\"]\n};\nconst numberLevelList = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"numberLevelList\"],\n en: _en__WEBPACK_IMPORTED_MODULE_1__[\"numberLevelList\"],\n zhtw: _zhtw__WEBPACK_IMPORTED_MODULE_2__[\"numberLevelList\"]\n};\nconst linearGradientDirList = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"linearGradientDirList\"],\n en: _en__WEBPACK_IMPORTED_MODULE_1__[\"linearGradientDirList\"],\n zhtw: _zhtw__WEBPACK_IMPORTED_MODULE_2__[\"linearGradientDirList\"]\n};\nconst alignList = {\n zh: _zh__WEBPACK_IMPORTED_MODULE_0__[\"alignList\"],\n en: _en__WEBPACK_IMPORTED_MODULE_1__[\"alignList\"],\n zhtw: _zhtw__WEBPACK_IMPORTED_MODULE_2__[\"alignList\"]\n};\n\n\n//# sourceURL=webpack:///./src/config/index.js?");
/***/ }),
/***/ "./src/config/zh.js":
/*!**************************!*\
!*** ./src/config/zh.js ***!
\**************************/
/*! exports provided: fontFamilyList, fontSizeList, colorList, borderWidthList, borderDasharrayList, borderRadiusList, lineWidthList, lineStyleMap, lineStyleList, rootLineKeepSameInCurveList, backgroundRepeatList, backgroundPositionList, backgroundSizeList, store, shortcutKeyList, shapeListMap, shapeList, langList, sidebarTriggerList, downTypeList, numberTypeList, numberLevelList, linearGradientDirList, alignList */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fontFamilyList\", function() { return fontFamilyList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fontSizeList\", function() { return fontSizeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"colorList\", function() { return colorList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"borderWidthList\", function() { return borderWidthList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"borderDasharrayList\", function() { return borderDasharrayList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"borderRadiusList\", function() { return borderRadiusList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lineWidthList\", function() { return lineWidthList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lineStyleMap\", function() { return lineStyleMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lineStyleList\", function() { return lineStyleList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rootLineKeepSameInCurveList\", function() { return rootLineKeepSameInCurveList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"backgroundRepeatList\", function() { return backgroundRepeatList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"backgroundPositionList\", function() { return backgroundPositionList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"backgroundSizeList\", function() { return backgroundSizeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"store\", function() { return store; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shortcutKeyList\", function() { return shortcutKeyList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shapeListMap\", function() { return shapeListMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shapeList\", function() { return shapeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"langList\", function() { return langList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sidebarTriggerList\", function() { return sidebarTriggerList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"downTypeList\", function() { return downTypeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"numberTypeList\", function() { return numberTypeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"numberLevelList\", function() { return numberLevelList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"linearGradientDirList\", function() { return linearGradientDirList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"alignList\", function() { return alignList; });\n// 字体列表\nconst fontFamilyList = [{\n name: '宋体',\n value: '宋体, SimSun, Songti SC'\n}, {\n name: '微软雅黑',\n value: '微软雅黑, Microsoft YaHei'\n}, {\n name: '楷体',\n value: '楷体, 楷体_GB2312, SimKai, STKaiti'\n}, {\n name: '黑体',\n value: '黑体, SimHei, Heiti SC'\n}, {\n name: '隶书',\n value: '隶书, SimLi'\n}, {\n name: 'Andale Mono',\n value: 'andale mono'\n}, {\n name: 'Arial',\n value: 'arial, helvetica, sans-serif'\n}, {\n name: 'arialBlack',\n value: 'arial black, avant garde'\n}, {\n name: 'Comic Sans Ms',\n value: 'comic sans ms'\n}, {\n name: 'Impact',\n value: 'impact, chicago'\n}, {\n name: 'Times New Roman',\n value: 'times new roman'\n}, {\n name: 'Sans-Serif',\n value: 'sans-serif'\n}, {\n name: 'serif',\n value: 'serif'\n}];\n\n// 字号\nconst fontSizeList = [10, 12, 14, 16, 18, 24, 32, 48];\n\n// 颜色\nconst colorList = ['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294',\n// '#AB149E',\n'transparent'];\n\n// 边框宽度\nconst borderWidthList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n\n// 边框样式\nconst borderDasharrayList = [{\n name: '实线',\n value: 'none'\n}, {\n name: '虚线1',\n value: '5,5'\n}, {\n name: '虚线2',\n value: '10,10'\n}, {\n name: '虚线3',\n value: '20,10,5,5,5,10'\n}, {\n name: '虚线4',\n value: '5, 5, 1, 5'\n}, {\n name: '虚线5',\n value: '15, 10, 5, 10, 15'\n}, {\n name: '虚线6',\n value: '1, 5'\n}, {\n name: '虚线7',\n value: '6, 4'\n}];\n\n// 圆角\nconst borderRadiusList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n\n// 线宽\nconst lineWidthList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nconst lineStyleMap = {\n straight: `<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"60\" height=\"26\"><path d=\"M18,14L30,14L30,5L42,5\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\"></path><path d=\"M18,14L30,14L30,23L42,23\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\"></path></svg>`,\n curve: `<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"60\" height=\"26\"><path d=\"M18,14L30,14A12,-9 0 0 1 42,5\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\"></path><path d=\"M18,14L30,14A12,9 0 0 0 42,23\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\"></path></svg>`,\n direct: `<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"60\" height=\"26\"><path d=\"M18,14L30,14L42,5\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\"></path><path d=\"M18,14L30,14L42,23\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\"></path></svg>`\n};\n\n// 连线风格\nconst lineStyleList = [{\n name: '直线',\n value: 'straight'\n}, {\n name: '曲线',\n value: 'curve'\n}, {\n name: '直连',\n value: 'direct'\n}];\n\n// 曲线风格中,根节点样式是否和其他节点保持一致\nconst rootLineKeepSameInCurveList = [{\n name: '括号',\n value: false\n}, {\n name: '大括号',\n value: true\n}];\n\n// 图片重复方式\nconst backgroundRepeatList = [{\n name: '不重复',\n value: 'no-repeat'\n}, {\n name: '重复',\n value: 'repeat'\n}, {\n name: '水平方向重复',\n value: 'repeat-x'\n}, {\n name: '垂直方向重复',\n value: 'repeat-y'\n}];\n\n// 背景图片定位\nconst backgroundPositionList = [{\n name: '默认',\n value: '0% 0%'\n}, {\n name: '左上',\n value: 'left top'\n}, {\n name: '左中',\n value: 'left center'\n}, {\n name: '左下',\n value: 'left bottom'\n}, {\n name: '右上',\n value: 'right top'\n}, {\n name: '右中',\n value: 'right center'\n}, {\n name: '右下',\n value: 'right bottom'\n}, {\n name: '中上',\n value: 'center top'\n}, {\n name: '居中',\n value: 'center center'\n}, {\n name: '中下',\n value: 'center bottom'\n}];\n\n// 背景图片大小\nconst backgroundSizeList = [{\n name: '自动',\n value: 'auto'\n}, {\n name: '覆盖',\n value: 'cover'\n}, {\n name: '保持',\n value: 'contain'\n}];\n\n// 数据存储\nconst store = {\n sidebarZIndex: 1 //侧边栏zIndex\n};\nconst isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0;\nconst ctrl = isMac ? '⌘' : 'Ctrl';\nconst enter = isMac ? 'Return' : 'Enter';\nconst macFn = isMac ? 'fn + ' : '';\n\n// 快捷键列表\nconst shortcutKeyList = [{\n type: '节点操作',\n list: [{\n icon: 'icontianjiazijiedian',\n name: '插入下级节点',\n value: 'Tab | Insert'\n }, {\n icon: 'iconjiedian',\n name: '插入同级节点',\n value: enter\n }, {\n icon: 'icondodeparent',\n name: '插入父节点',\n value: 'Shift + Tab'\n }, {\n icon: 'iconshangyi',\n name: '上移节点',\n value: `${ctrl} + ↑`\n }, {\n icon: 'iconxiayi',\n name: '下移节点',\n value: `${ctrl} + ↓`\n }, {\n icon: 'icongaikuozonglan',\n name: '插入概要',\n value: `${ctrl} + G`\n }, {\n icon: 'iconzhankai',\n name: '展开/收起节点',\n value: '/'\n }, {\n icon: 'iconshanchu',\n name: '删除节点',\n value: 'Delete | Backspace'\n }, {\n icon: 'iconshanchu',\n name: '仅删除当前节点',\n value: 'Shift + Backspace'\n }, {\n icon: 'iconfuzhi',\n name: '复制节点',\n value: `${ctrl} + C`\n }, {\n icon: 'iconjianqie',\n name: '剪切节点',\n value: `${ctrl} + X`\n }, {\n icon: 'iconniantie',\n name: '粘贴节点',\n value: `${ctrl} + V`\n }, {\n icon: 'iconbianji',\n name: '编辑节点',\n value: macFn + 'F2'\n }, {\n icon: 'iconhuanhang',\n name: '文本换行',\n value: `Shift + ${enter}`\n }, {\n icon: 'iconhoutui-shi',\n name: '回退',\n value: `${ctrl} + Z`\n }, {\n icon: 'iconqianjin1',\n name: '前进',\n value: `${ctrl} + Y`\n }, {\n icon: 'iconquanxuan',\n name: '全选',\n value: `${ctrl} + A`\n }, {\n icon: 'iconquanxuan',\n name: '多选',\n value: `右键 / ${ctrl} + 左键`\n }, {\n icon: 'iconzhengli',\n name: '一键整理布局',\n value: `${ctrl} + L`\n }, {\n icon: 'iconsousuo',\n name: '搜索和替换',\n value: `${ctrl} + F`\n }]\n}, {\n type: '画布操作',\n list: [{\n icon: 'iconfangda',\n name: '放大',\n value: `${ctrl} + +`\n }, {\n icon: 'iconsuoxiao',\n name: '缩小',\n value: `${ctrl} + -`\n }, {\n icon: 'iconfangda',\n name: '放大/缩小',\n value: `${ctrl} + 鼠标滚动`\n }, {\n icon: 'icondingwei',\n name: '回到根节点',\n value: `${ctrl} + ${enter}`\n }, {\n icon: 'iconquanping1',\n name: '适应画布',\n value: `${ctrl} + i`\n }]\n}, {\n type: '大纲操作',\n list: [{\n icon: 'iconhuanhang',\n name: '文本换行',\n value: `Shift + ${enter}`\n }, {\n icon: 'iconshanchu',\n name: '删除节点',\n value: 'Delete'\n }, {\n icon: 'icontianjiazijiedian',\n name: '插入下级节点',\n value: 'Tab'\n }, {\n icon: 'iconjiedian',\n name: '插入同级节点',\n value: enter\n }, {\n icon: 'icondodeparent',\n name: '上移一个层级',\n value: 'Shift + Tab'\n }]\n}];\nconst shapeListMap = {\n rectangle: 'M 4 12 L 4 3 L 56 3 L 56 21 L 4 21 L 4 12 Z',\n diamond: 'M 4 12 L 30 3 L 56 12 L 30 21 L 4 12 Z',\n parallelogram: 'M 10 3 L 56 3 L 50 21 L 4 21 L 10 3 Z',\n roundedRectangle: 'M 13 3 L 47 3 A 9 9 0, 0 1 47 21 L 13 21 A 9 9 0, 0 1 13 3 Z',\n octagonalRectangle: 'M 4 12 L 4 9 L 10 3 L 50 3 L 56 9 L 56 15 L 50 21 L 10 21 L 4 15 L 4 12 Z',\n outerTriangularRectangle: 'M 4 12 L 10 3 L 50 3 L 56 12 L 50 21 L 10 21 L 4 12 Z',\n innerTriangularRectangle: 'M 10 12 L 4 3 L 56 3 L 50 12 L 56 21 L 4 21 L 10 12 Z',\n ellipse: 'M 4 12 A 26 9 0, 1, 0 30 3 A 26 9 0, 0, 0 4 12 Z',\n circle: 'M 21 12 A 9 9 0, 1, 0 30 3 A 9 9 0, 0, 0 21 12 Z'\n};\n\n// 形状列表\nconst shapeList = [{\n name: '矩形',\n value: 'rectangle'\n}, {\n name: '菱形',\n value: 'diamond'\n}, {\n name: '平行四边形',\n value: 'parallelogram'\n}, {\n name: '圆角矩形',\n value: 'roundedRectangle'\n}, {\n name: '八角矩形',\n value: 'octagonalRectangle'\n}, {\n name: '外三角矩形',\n value: 'outerTriangularRectangle'\n}, {\n name: '内三角矩形',\n value: 'innerTriangularRectangle'\n}, {\n name: '椭圆',\n value: 'ellipse'\n}, {\n name: '圆',\n value: 'circle'\n}];\n\n// 多语言列表\nconst langList = [{\n value: 'zh',\n name: '简体中文'\n}, {\n value: 'zhtw',\n name: '繁體中文'\n}, {\n value: 'en',\n name: 'English'\n}];\n\n// 侧边栏列表\nconst sidebarTriggerList = [\n// {\n// name: '历史记录',\n// value: 'kmindHistory',\n// icon: 'iconzhuti'\n// },\n{\n name: '节点样式',\n value: 'nodeStyle',\n icon: 'iconzhuti'\n},\n// {\n// name: '基础样式',\n// value: 'baseStyle',\n// icon: 'iconyangshi'\n// },\n{\n name: '导图样式',\n value: 'baseStyle',\n icon: 'iconyangshi'\n}, {\n name: '主题',\n value: 'theme',\n icon: 'iconjingzi'\n}, {\n name: '结构',\n value: 'structure',\n icon: 'iconjiegou'\n}, {\n name: '大纲',\n value: 'outline',\n icon: 'iconfuhao-dagangshu'\n},\n// {\n// name: '设置',\n// value: 'setting',\n// icon: 'iconshezhi'\n// },\n{\n name: '快捷键',\n value: 'shortcutKey',\n icon: 'iconjianpan'\n}];\n\n// 下载类型列表\nconst downTypeList = [{\n name: '文档子导图',\n type: 'subKMind',\n icon: 'iconwenjian',\n desc: '插入为思源文档子导图'\n}, {\n name: '专有文件',\n // type: 'smm',\n type: 'kmind',\n icon: 'iconwenjian',\n desc: 'KMind私有格式,可用于再次导入'\n}, {\n name: 'JSON',\n type: 'json',\n icon: 'iconjson',\n desc: '流行的数据交换格式,可用于再次导入'\n}, {\n name: '图片',\n type: 'png',\n icon: 'iconPNG',\n desc: '常用图片格式,适合查看分享'\n}, {\n name: 'SVG',\n type: 'svg',\n icon: 'iconSVG',\n desc: '可缩放矢量图形'\n}, {\n name: 'PDF',\n type: 'pdf',\n icon: 'iconpdf',\n desc: '适合查看浏览和打印'\n}, {\n name: 'Markdown',\n type: 'md',\n icon: 'iconmarkdown',\n desc: 'md文本格式,便于其他软件打开'\n}, {\n name: 'XMind',\n type: 'xmind',\n icon: 'iconxmind',\n desc: 'XMind软件格式'\n}, {\n name: 'Txt',\n type: 'txt',\n icon: 'iconTXT',\n desc: '纯文本文件'\n}, {\n name: 'FreeMind',\n type: 'mm',\n icon: 'iconfreemind',\n desc: 'FreeMind软件格式'\n}, {\n name: 'Excel',\n type: 'xlsx',\n icon: 'iconfile-excel',\n desc: '表格文本形式,可用Excel软件编辑'\n}];\n\n// 编号类型列表\nconst numberTypeList = [{\n name: '无编号',\n value: ''\n}, {\n name: '1, 2, 3',\n value: 1\n}, {\n name: '1., 2., 3.',\n value: 2\n}, {\n name: '(1), (2), (3)',\n value: 3\n}, {\n name: 'a., b., c.',\n value: 4\n}, {\n name: 'A., B., C.',\n value: 5\n}, {\n name: 'i., ii., iii.',\n value: 6\n}, {\n name: 'I., II., III.',\n value: 7\n}, {\n name: '一、, 二、, 三、',\n value: 8\n}];\n\n// 编号层级列表\nconst numberLevelList = [{\n name: '编号首层',\n value: 1\n}, {\n name: '编号前两层',\n value: 2\n}, {\n name: '编号前三层',\n value: 3\n}, {\n name: '编号所有层',\n value: 0\n}];\n\n// 背景渐变方向\nconst linearGradientDirList = [{\n name: '从左到右',\n value: '1',\n start: [0, 0],\n end: [1, 0]\n}, {\n name: '从右到左',\n value: '2',\n start: [1, 0],\n end: [0, 0]\n}, {\n name: '从上到下',\n value: '3',\n start: [0, 0],\n end: [0, 1]\n}, {\n name: '从下到上',\n value: '4',\n start: [0, 1],\n end: [0, 0]\n}, {\n name: '从左上到右下',\n value: '5',\n start: [0, 0],\n end: [1, 1]\n}, {\n name: '从左下到右上',\n value: '6',\n start: [0, 1],\n end: [1, 0]\n}, {\n name: '从右上到左下',\n value: '7',\n start: [1, 0],\n end: [0, 1]\n}, {\n name: '从右下到左上',\n value: '8',\n start: [1, 1],\n end: [0, 0]\n}];\n\n// 文本对齐方式\nconst alignList = [{\n name: '左对齐',\n value: 'left'\n}, {\n name: '居中对齐',\n value: 'center'\n}, {\n name: '右对齐',\n value: 'right'\n}];\n\n//# sourceURL=webpack:///./src/config/zh.js?");
/***/ }),
/***/ "./src/config/zhtw.js":
/*!****************************!*\
!*** ./src/config/zhtw.js ***!
\****************************/
/*! exports provided: fontFamilyList, borderDasharrayList, lineStyleList, rootLineKeepSameInCurveList, backgroundRepeatList, backgroundPositionList, backgroundSizeList, shortcutKeyList, shapeList, sidebarTriggerList, downTypeList, numberTypeList, numberLevelList, linearGradientDirList, alignList */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fontFamilyList\", function() { return fontFamilyList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"borderDasharrayList\", function() { return borderDasharrayList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lineStyleList\", function() { return lineStyleList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rootLineKeepSameInCurveList\", function() { return rootLineKeepSameInCurveList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"backgroundRepeatList\", function() { return backgroundRepeatList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"backgroundPositionList\", function() { return backgroundPositionList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"backgroundSizeList\", function() { return backgroundSizeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shortcutKeyList\", function() { return shortcutKeyList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shapeList\", function() { return shapeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sidebarTriggerList\", function() { return sidebarTriggerList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"downTypeList\", function() { return downTypeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"numberTypeList\", function() { return numberTypeList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"numberLevelList\", function() { return numberLevelList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"linearGradientDirList\", function() { return linearGradientDirList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"alignList\", function() { return alignList; });\n// 字型列表\nconst fontFamilyList = [{\n name: '宋體',\n value: '宋体, SimSun, Songti SC'\n}, {\n name: '微軟雅黑',\n value: '微软雅黑, Microsoft YaHei'\n}, {\n name: '楷體',\n value: '楷体, 楷体_GB2312, SimKai, STKaiti'\n}, {\n name: '黑體',\n value: '黑体, SimHei, Heiti SC'\n}, {\n name: '隸書',\n value: '隶书, SimLi'\n}, {\n name: 'Andale Mono',\n value: 'andale mono'\n}, {\n name: 'Arial',\n value: 'arial, helvetica, sans-serif'\n}, {\n name: 'arialBlack',\n value: 'arial black, avant garde'\n}, {\n name: 'Comic Sans Ms',\n value: 'comic sans ms'\n}, {\n name: 'Impact',\n value: 'impact, chicago'\n}, {\n name: 'Times New Roman',\n value: 'times new roman'\n}, {\n name: 'Sans-Serif',\n value: 'sans-serif'\n}, {\n name: 'serif',\n value: 'serif'\n}];\n\n// 框線樣式\nconst borderDasharrayList = [{\n name: '實線',\n value: 'none'\n}, {\n name: '虛線 1',\n value: '5,5'\n}, {\n name: '虛線 2',\n value: '10,10'\n}, {\n name: '虛線 3',\n value: '20,10,5,5,5,10'\n}, {\n name: '虛線 4',\n value: '5, 5, 1, 5'\n}, {\n name: '虛線 5',\n value: '15, 10, 5, 10, 15'\n}, {\n name: '虛線 6',\n value: '1, 5'\n}, {\n name: '虛線 7',\n value: '6, 4'\n}];\n\n// 連線樣式\nconst lineStyleList = [{\n name: '直線',\n value: 'straight'\n}, {\n name: '曲線',\n value: 'curve'\n}, {\n name: '直接連線',\n value: 'direct'\n}];\n\n// 曲線樣式中,根節點樣式是否和其他節點保持一致\nconst rootLineKeepSameInCurveList = [{\n name: '括號',\n value: false\n}, {\n name: '大括號',\n value: true\n}];\n\n// 圖片重複方式\nconst backgroundRepeatList = [{\n name: '不重複',\n value: 'no-repeat'\n}, {\n name: '重複',\n value: 'repeat'\n}, {\n name: '水平重複',\n value: 'repeat-x'\n}, {\n name: '垂直重複',\n value: 'repeat-y'\n}];\n\n// 背景圖片位置\nconst backgroundPositionList = [{\n name: '預設',\n value: '0% 0%'\n}, {\n name: '左上',\n value: 'left top'\n}, {\n name: '左中',\n value: 'left center'\n}, {\n name: '左下',\n value: 'left bottom'\n}, {\n name: '右上',\n value: 'right top'\n}, {\n name: '右中',\n value: 'right center'\n}, {\n name: '右下',\n value: 'right bottom'\n}, {\n name: '中上',\n value: 'center top'\n}, {\n name: '置中',\n value: 'center center'\n}, {\n name: '中下',\n value: 'center bottom'\n}];\nconst isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0;\nconst ctrl = isMac ? '⌘' : 'Ctrl';\nconst enter = isMac ? 'Return' : 'Enter';\nconst macFn = isMac ? 'fn + ' : '';\n\n// 背景圖片大小\nconst backgroundSizeList = [{\n name: '自動',\n value: 'auto'\n}, {\n name: '覆蓋',\n value: 'cover'\n}, {\n name: '包含',\n value: 'contain'\n}];\n\n// 快捷鍵列表\nconst shortcutKeyList = [{\n type: '節點操作',\n list: [{\n icon: 'icontianjiazijiedian',\n name: '插入子節點',\n value: 'Tab | Insert'\n }, {\n icon: 'iconjiedian',\n name: '插入同層節點',\n value: enter\n }, {\n icon: 'icondodeparent',\n name: '插入父節點',\n value: 'Shift + Tab'\n }, {\n icon: 'iconshangyi',\n name: '上移節點',\n value: `${ctrl} + ↑`\n }, {\n icon: 'iconxiayi',\n name: '下移節點',\n value: `${ctrl} + ↓`\n }, {\n icon: 'icongaikuozonglan',\n name: '插入摘要',\n value: `${ctrl} + G`\n }, {\n icon: 'iconzhankai',\n name: '展開/收合節點',\n value: '/'\n }, {\n icon: 'iconshanchu',\n name: '刪除節點',\n value: 'Delete | Backspace'\n }, {\n icon: 'iconshanchu',\n name: '僅刪除目前節點',\n value: 'Shift + Backspace'\n }, {\n icon: 'iconfuzhi',\n name: '複製節點',\n value: `${ctrl} + C`\n }, {\n icon: 'iconjianqie',\n name: '剪下節點',\n value: `${ctrl} + X`\n }, {\n icon: 'iconniantie',\n name: '貼上節點',\n value: `${ctrl} + V`\n }, {\n icon: 'iconbianji',\n name: '編輯節點',\n value: macFn + 'F2'\n }, {\n icon: 'iconhuanhang',\n name: '文字換行',\n value: `Shift + ${enter}`\n }, {\n icon: 'iconhoutui-shi',\n name: '復原',\n value: `${ctrl} + Z`\n }, {\n icon: 'iconqianjin1',\n name: '重做',\n value: `${ctrl} + Y`\n }, {\n icon: 'iconquanxuan',\n name: '全選',\n value: `${ctrl} + A`\n }, {\n icon: 'iconquanxuan',\n name: '多重選擇',\n value: `右鍵 / ${ctrl} + 左鍵`\n }, {\n icon: 'iconzhengli',\n name: '一鍵整理版面配置',\n value: `${ctrl} + L`\n }, {\n icon: 'iconsousuo',\n name: '搜尋與取代',\n value: `${ctrl} + F`\n }]\n}, {\n type: '畫布操作',\n list: [{\n icon: 'iconfangda',\n name: '放大',\n value: `${ctrl} + +`\n }, {\n icon: 'iconsuoxiao',\n name: '縮小',\n value: `${ctrl} + -`\n }, {\n icon: 'iconfangda',\n name: '放大/縮小',\n value: `${ctrl} + 滑鼠滾輪`\n }, {\n icon: 'icondingwei',\n name: '回到根節點',\n value: `${ctrl} + ${enter}`\n }, {\n icon: 'iconquanping1',\n name: '適應畫布',\n value: `${ctrl} + i`\n }]\n}, {\n type: '大綱操作',\n list: [{\n icon: 'iconhuanhang',\n name: '文字換行',\n value: `Shift + ${enter}`\n }, {\n icon: 'iconshanchu',\n name: '刪除節點',\n value: 'Delete'\n }, {\n icon: 'icontianjiazijiedian',\n name: '插入子節點',\n value: 'Tab'\n }, {\n icon: 'iconjiedian',\n name: '插入同層節點',\n value: enter\n }, {\n icon: 'icondodeparent',\n name: '上移一層',\n value: 'Shift + Tab'\n }]\n}];\n\n// 形狀列表\nconst shapeList = [{\n name: '矩形',\n value: 'rectangle'\n}, {\n name: '菱形',\n value: 'diamond'\n}, {\n name: '平行四邊形',\n value: 'parallelogram'\n}, {\n name: '圓角矩形',\n value: 'roundedRectangle'\n}, {\n name: '八角矩形',\n value: 'octagonalRectangle'\n}, {\n name: '外三角矩形',\n value: 'outerTriangularRectangle'\n}, {\n name: '內三角矩形',\n value: 'innerTriangularRectangle'\n}, {\n name: '橢圓形',\n value: 'ellipse'\n}, {\n name: '圓形',\n value: 'circle'\n}];\n\n// 側邊欄列表\nconst sidebarTriggerList = [\n// {\n// name: '歷史記錄',\n// value: 'kmindHistory',\n// icon: 'iconzhuti'\n// },\n{\n name: '節點樣式',\n value: 'nodeStyle',\n icon: 'iconzhuti'\n}, {\n name: '基礎樣式',\n value: 'baseStyle',\n icon: 'iconyangshi'\n}, {\n name: '主題',\n value: 'theme',\n icon: 'iconjingzi'\n}, {\n name: '結構',\n value: 'structure',\n icon: 'iconjiegou'\n}, {\n name: '大綱',\n value: 'outline',\n icon: 'iconfuhao-dagangshu'\n},\n// {\n// name: '設置',\n// value: 'setting',\n// icon: 'iconshezhi'\n// },\n{\n name: '快捷鍵',\n value: 'shortcutKey',\n icon: 'iconjianpan'\n}];\n\n// 下載類型列表\nconst downTypeList = [{\n name: '文檔子導圖',\n type: 'subKMind',\n icon: 'iconwenjian',\n desc: '插入為思源文檔子導圖'\n}, {\n name: '專用檔案',\n // type: 'smm',\n type: 'kmind',\n icon: 'iconwenjian',\n desc: 'KMind私有格式,可用于再次導入'\n}, {\n name: 'JSON',\n type: 'json',\n icon: 'iconjson',\n desc: '流行的數據交換格式,可用于再次導入'\n}, {\n name: '圖片',\n type: 'png',\n icon: 'iconPNG',\n desc: '常用圖片格式,適合查看分享'\n}, {\n name: 'SVG',\n type: 'svg',\n icon: 'iconSVG',\n desc: '可縮放矢量圖形'\n}, {\n name: 'PDF',\n type: 'pdf',\n icon: 'iconpdf',\n desc: '適合查看浏覽和打印'\n}, {\n name: 'Markdown',\n type: 'md',\n icon: 'iconmarkdown',\n desc: 'md文本格式,便于其他軟件打開'\n}, {\n name: 'XMind',\n type: 'xmind',\n icon: 'iconxmind',\n desc: 'XMind軟件格式'\n}, {\n name: 'Txt',\n type: 'txt',\n icon: 'iconTXT',\n desc: '純文本文件'\n}, {\n name: 'FreeMind',\n type: 'mm',\n icon: 'iconfreemind',\n desc: 'FreeMind軟件格式'\n}, {\n name: 'Excel',\n type: 'xlsx',\n icon: 'iconfile-excel',\n desc: '表格文本形式,可用Excel軟件編輯'\n}];\n\n// 編號類型列表\nconst numberTypeList = [{\n name: '無編號',\n value: ''\n}, {\n name: '1, 2, 3',\n value: 1\n}, {\n name: '1., 2., 3.',\n value: 2\n}, {\n name: '(1), (2), (3)',\n value: 3\n}, {\n name: 'a., b., c.',\n value: 4\n}, {\n name: 'A., B., C.',\n value: 5\n}, {\n name: 'i., ii., iii.',\n value: 6\n}, {\n name: 'I., II., III.',\n value: 7\n}, {\n name: '一、, 二、, 三、',\n value: 8\n}];\n\n// 編號層級列表\nconst numberLevelList = [{\n name: '編號第一層',\n value: 1\n}, {\n name: '編號前兩層',\n value: 2\n}, {\n name: '編號前三層',\n value: 3\n}, {\n name: '編號每一層',\n value: 0\n}];\n\n// 背景渐变方向\nconst linearGradientDirList = [{\n name: '从左到右',\n value: '1',\n start: [0, 0],\n end: [1, 0]\n}, {\n name: '从右到左',\n value: '2',\n start: [1, 0],\n end: [0, 0]\n}, {\n name: '从上到下',\n value: '3',\n start: [0, 0],\n end: [0, 1]\n}, {\n name: '从下到上',\n value: '4',\n start: [0, 1],\n end: [0, 0]\n}, {\n name: '从左上到右下',\n value: '5',\n start: [0, 0],\n end: [1, 1]\n}, {\n name: '从左下到右上',\n value: '6',\n start: [0, 1],\n end: [1, 0]\n}, {\n name: '从右上到左下',\n value: '7',\n start: [1, 0],\n end: [0, 1]\n}, {\n name: '从右下到左上',\n value: '8',\n start: [1, 1],\n end: [0, 0]\n}];\n\n// 文本对齐方式\nconst alignList = [{\n name: '左對齊',\n value: 'left'\n}, {\n name: '居中對齊',\n value: 'center'\n}, {\n name: '右對齊',\n value: 'right'\n}];\n\n//# sourceURL=webpack:///./src/config/zhtw.js?");
/***/ }),
/***/ "./src/hooks/useComposition.tsx":
/*!**************************************!*\
!*** ./src/hooks/useComposition.tsx ***!
\**************************************/
/*! exports provided: useStore, useRouter, useRoute, useBus */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useStore\", function() { return useStore; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useRouter\", function() { return useRouter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useRoute\", function() { return useRoute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useBus\", function() { return useBus; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n\n\n// 访问vuex\nconst useStore = () => {\n const vm = Object(vue__WEBPACK_IMPORTED_MODULE_1__[\"getCurrentInstance\"])();\n if (!vm) throw new Error('must be called in setup');\n return vm.proxy.$store;\n};\n// 访问router\nconst useRouter = () => {\n const vm = Object(vue__WEBPACK_IMPORTED_MODULE_1__[\"getCurrentInstance\"])();\n if (!vm) throw new Error('must be called in setup');\n return vm.proxy.$router;\n};\n// 访问route\nconst useRoute = () => {\n const vm = Object(vue__WEBPACK_IMPORTED_MODULE_1__[\"getCurrentInstance\"])();\n if (!vm) throw new Error('must be called in setup');\n return vm.proxy.$route;\n};\n// 访问bus\nconst useBus = () => {\n const vm = Object(vue__WEBPACK_IMPORTED_MODULE_1__[\"getCurrentInstance\"])();\n if (!vm) throw new Error('must be called in setup');\n\n // 优先使用 inject 获取事件总线\n const injectedBus = Object(vue__WEBPACK_IMPORTED_MODULE_1__[\"inject\"])('$bus', null);\n if (injectedBus) {\n return injectedBus;\n }\n\n // 降级方案:从实例获取\n return vm.proxy.$bus;\n};\n\n//# sourceURL=webpack:///./src/hooks/useComposition.tsx?");
/***/ }),
/***/ "./src/hooks/useCompositionBus.tsx":
/*!*****************************************!*\
!*** ./src/hooks/useCompositionBus.tsx ***!
\*****************************************/
/*! exports provided: useCompositionBus */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useCompositionBus\", function() { return useCompositionBus; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n\n// 组件外使用思路:在初始化的时候,将bus挂载到window下,然后在组件外使用的时候,从window下拿bus\n\nconst useCompositionBus = () => {\n const instance = Object(vue__WEBPACK_IMPORTED_MODULE_1__[\"getCurrentInstance\"])();\n if (!instance) {\n throw new Error('useCompositionBus must be called within a setup function');\n }\n\n // 优先使用 inject 获取事件总线\n const injectedBus = Object(vue__WEBPACK_IMPORTED_MODULE_1__[\"inject\"])('$bus', null);\n if (injectedBus) {\n return injectedBus;\n }\n\n // 降级方案:从实例获取\n const bus = instance.proxy.$bus;\n return bus;\n};\n\n//# sourceURL=webpack:///./src/hooks/useCompositionBus.tsx?");
/***/ }),
/***/ "./src/hooks/useCrossFrameAPI.ts":
/*!***************************************!*\
!*** ./src/hooks/useCrossFrameAPI.ts ***!
\***************************************/
/*! exports provided: useCrossFrameAPI */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useCrossFrameAPI\", function() { return useCrossFrameAPI; });\n/**\n * 统一的跨框架通信层\n * 用于处理 iframe 模式和 DOM 模式下的 API 访问差异\n */\n\n// 定义 openTab 的参数类型(与思源官方 API 一致)\n\n// 定义 openDoc 的选项类型\n\n// 定义 API 接口\n\n/**\n * 跨框架 API 通信 Hook\n * @param injectConfig - 注入的配置对象,如果不传则尝试从全局获取\n */\nfunction useCrossFrameAPI(injectConfig) {\n // 如果没有传入 injectConfig,使用空对象\n if (!injectConfig) {\n console.warn('[useCrossFrameAPI] injectConfig not provided, using empty object');\n injectConfig = {};\n }\n\n // 判断是否为 iframe 模式\n const isIframeMode = () => {\n const domModeTypes = ['sy-doctree-doc-dom', 'sy-doctree-moc-dom'];\n return !domModeTypes.includes(injectConfig.type);\n };\n\n // 获取父级 API\n const getParentAPI = () => {\n var _parent;\n if (!isIframeMode()) {\n // DOM模式:直接访问全局API\n return window.kmindApi || globalThis.kmindApi;\n }\n // iframe模式:通过parent访问\n return (_parent = window.parent) === null || _parent === void 0 ? void 0 : _parent.kmindApi;\n };\n\n // 获取思源 API\n const getSiyuanAPI = () => {\n var _parent2;\n if (!isIframeMode()) {\n // DOM模式:直接访问\n return window.siyuan || globalThis.siyuan;\n }\n // iframe模式:通过parent访问\n return (_parent2 = window.parent) === null || _parent2 === void 0 ? void 0 : _parent2.siyuan;\n };\n\n // ========== 核心 openTab 方法 ==========\n\n /**\n * 全面的 openTab 方法(供需要完全自定义的场景使用)\n * @param options - 完整的 openTab 参数,与思源官方 API 一致\n */\n const openTab = options => {\n const api = getParentAPI();\n if (api !== null && api !== void 0 && api.openTab) {\n return api.openTab(options);\n }\n console.warn('openTab API not available');\n };\n\n // ========== 语义化的 openTab 方法 ==========\n\n /**\n * 打开文档(基础语义化方法)\n * @param id - 文档 ID\n * @param options - 打开选项\n */\n const openDoc = (id, options) => {\n return openTab({\n doc: {\n id,\n action: options === null || options === void 0 ? void 0 : options.action,\n zoomIn: options === null || options === void 0 ? void 0 : options.zoomIn\n },\n position: options === null || options === void 0 ? void 0 : options.position,\n keepCursor: options === null || options === void 0 ? void 0 : options.keepCursor,\n removeCurrentTab: options === null || options === void 0 ? void 0 : options.removeCurrentTab,\n openNewTab: options === null || options === void 0 ? void 0 : options.openNewTab\n });\n };\n\n /**\n * 在右侧打开文档\n * @param id - 文档 ID\n * @param action - 文档动作\n */\n const openDocRight = (id, action) => {\n return openDoc(id, {\n position: 'right',\n action\n });\n };\n\n /**\n * 在底部打开文档\n * @param id - 文档 ID\n * @param action - 文档动作\n */\n const openDocBottom = (id, action) => {\n return openDoc(id, {\n position: 'bottom',\n action\n });\n };\n\n /**\n * 打开文档并聚焦(会滚动到文档位置)\n * @param id - 文档 ID\n * @param position - 打开位置\n */\n const openDocWithFocus = (id, position) => {\n return openDoc(id, {\n position,\n action: ['cb-get-focus', 'cb-get-context', 'cb-get-rootscroll']\n });\n };\n\n /**\n * 在当前标签页打开文档(替换当前标签页)\n * @param id - 文档 ID\n */\n const openDocInCurrentTab = id => {\n return openDoc(id, {\n removeCurrentTab: true,\n keepCursor: false\n });\n };\n\n /**\n * 在新标签页打开文档\n * @param id - 文档 ID\n * @param position - 打开位置\n */\n const openDocInNewTab = (id, position) => {\n return openDoc(id, {\n position,\n openNewTab: true\n });\n };\n\n /**\n * 打开 PDF 文件\n * @param path - PDF 文件路径\n * @param page - 页码\n * @param id - File Annotation id\n */\n const openPDF = (path, page, id) => {\n return openTab({\n pdf: {\n path,\n page,\n id\n }\n });\n };\n\n /**\n * 打开资源文件\n * @param path - 资源文件路径\n */\n const openAsset = path => {\n return openTab({\n asset: {\n path\n }\n });\n };\n\n /**\n * 打开自定义标签页\n * @param id - 插件名称+页签类型\n * @param icon - 图标\n * @param title - 标题\n * @param data - 自定义数据\n * @param options - 其他选项\n */\n const openCustomTab = (id, icon, title, data, options) => {\n return openTab({\n custom: {\n id,\n icon,\n title,\n data\n },\n ...options\n });\n };\n\n /**\n * 打开搜索标签页\n * @param config - 搜索配置\n */\n const openSearch = config => {\n return openTab({\n search: config\n });\n };\n\n /**\n * 打开卡片标签页\n * @param type - 卡片类型\n * @param id - 文档或笔记本 ID\n * @param title - 文档或笔记本名称\n */\n const openCard = (type, id, title) => {\n return openTab({\n card: {\n type,\n id,\n title\n }\n });\n };\n\n // ========== 其他原有方法 ==========\n\n /**\n * 打开标签页,自动传入app,其它参数透传(旧版本,保留兼容)\n * @deprecated 请使用新的 openTab 或语义化方法\n */\n const openTabPlugin = options => {\n const api = getParentAPI();\n if (api !== null && api !== void 0 && api.openTabPlugin) {\n return api.openTabPlugin(options);\n }\n };\n\n /**\n * 添加浮动层\n */\n const addFloatLayer = options => {\n var _api$plugin;\n const api = getParentAPI();\n if (api !== null && api !== void 0 && (_api$plugin = api.plugin) !== null && _api$plugin !== void 0 && _api$plugin.addFloatLayer) {\n return api.plugin.addFloatLayer(options);\n }\n console.warn('addFloatLayer API not available');\n };\n\n /**\n * 获取插件实例\n */\n const getPlugin = () => {\n const api = getParentAPI();\n return api === null || api === void 0 ? void 0 : api.plugin;\n };\n\n /**\n * 获取全局配置\n */\n const getGlobalConfig = () => {\n const api = getParentAPI();\n return (api === null || api === void 0 ? void 0 : api.globalConfig) || {};\n };\n\n /**\n * 获取内核版本\n */\n const getKernelVersion = () => {\n var _siyuan$config;\n const siyuan = getSiyuanAPI();\n return siyuan === null || siyuan === void 0 || (_siyuan$config = siyuan.config) === null || _siyuan$config === void 0 || (_siyuan$config = _siyuan$config.system) === null || _siyuan$config === void 0 ? void 0 : _siyuan$config.kernelVersion;\n };\n\n /**\n * 判断是否为移动端\n */\n const isMobile = () => {\n const plugin = getPlugin();\n return (plugin === null || plugin === void 0 ? void 0 : plugin.isMobile) || false;\n };\n return {\n // 基础方法\n isIframeMode,\n getParentAPI,\n getSiyuanAPI,\n addFloatLayer,\n getPlugin,\n getGlobalConfig,\n getKernelVersion,\n isMobile,\n // 核心 openTab 方法\n openTab,\n // 全面方法\n\n // 语义化的文档打开方法\n openDoc,\n // 基础文档打开\n openDocRight,\n // 右侧打开\n openDocBottom,\n // 底部打开\n openDocWithFocus,\n // 打开并聚焦\n openDocInCurrentTab,\n // 当前标签页打开\n openDocInNewTab,\n // 新标签页打开\n\n // 其他类型打开方法\n openPDF,\n // 打开 PDF\n openAsset,\n // 打开资源文件\n openCustomTab,\n // 打开自定义标签页\n openSearch,\n // 打开搜索\n openCard,\n // 打开卡片\n\n // 兼容旧版本\n openTabPlugin // 旧版本方法,已废弃\n };\n}\n\n//# sourceURL=webpack:///./src/hooks/useCrossFrameAPI.ts?");
/***/ }),
/***/ "./src/hooks/useGlobalConfig.tsx":
/*!***************************************!*\
!*** ./src/hooks/useGlobalConfig.tsx ***!
\***************************************/
/*! exports provided: useGlobalConfig */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useGlobalConfig\", function() { return useGlobalConfig; });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/**\n * 现在kmind的产物都是放在iframe中,所以一些东西都是在window.parent中\n */\n\n\nconst globalConfig = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])({});\nconst isMobile = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\nconst useGlobalConfig = () => {\n const initGlobalConfig = injectConfig => {\n // 直接判断是否为 DOM 模式\n const isDomMode = (injectConfig === null || injectConfig === void 0 ? void 0 : injectConfig.type) === 'sy-doctree-doc-dom' || (injectConfig === null || injectConfig === void 0 ? void 0 : injectConfig.type) === 'sy-doctree-moc-dom';\n if (isDomMode) {\n var _globalThis$kmindApi, _globalThis$kmindApi2;\n // DOM模式\n globalConfig.value = ((_globalThis$kmindApi = globalThis.kmindApi) === null || _globalThis$kmindApi === void 0 ? void 0 : _globalThis$kmindApi.globalConfig) || {};\n isMobile.value = ((_globalThis$kmindApi2 = globalThis.kmindApi) === null || _globalThis$kmindApi2 === void 0 || (_globalThis$kmindApi2 = _globalThis$kmindApi2.plugin) === null || _globalThis$kmindApi2 === void 0 ? void 0 : _globalThis$kmindApi2.isMobile) || false;\n } else {\n var _globalThis$parent, _globalThis$parent2;\n // iframe模式\n globalConfig.value = (globalThis === null || globalThis === void 0 || (_globalThis$parent = globalThis.parent) === null || _globalThis$parent === void 0 || (_globalThis$parent = _globalThis$parent.kmindApi) === null || _globalThis$parent === void 0 ? void 0 : _globalThis$parent.globalConfig) || {};\n isMobile.value = (globalThis === null || globalThis === void 0 || (_globalThis$parent2 = globalThis.parent) === null || _globalThis$parent2 === void 0 || (_globalThis$parent2 = _globalThis$parent2.kmindApi) === null || _globalThis$parent2 === void 0 || (_globalThis$parent2 = _globalThis$parent2.plugin) === null || _globalThis$parent2 === void 0 ? void 0 : _globalThis$parent2.isMobile) || false;\n }\n // console.log('globalThis:', globalThis)\n // console.log('globalConfig.value:', globalConfig.value)\n };\n return {\n globalConfig,\n isMobile,\n initGlobalConfig\n };\n};\n\n//# sourceURL=webpack:///./src/hooks/useGlobalConfig.tsx?");
/***/ }),
/***/ "./src/hooks/useKMindHistory.tsx":
/*!***************************************!*\
!*** ./src/hooks/useKMindHistory.tsx ***!
\***************************************/
/*! exports provided: useKMindHistory */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useKMindHistory\", function() { return useKMindHistory; });\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.error.cause.js */ \"./node_modules/core-js/modules/es.error.cause.js\");\n/* harmony import */ var core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_error_cause_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _api_siyuan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/api/siyuan */ \"./src/api/siyuan.tsx\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/* harmony import */ var _useData__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useData */ \"./src/hooks/useData.tsx\");\n/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! dayjs */ \"./node_modules/dayjs/dayjs.min.js\");\n/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var lodash_cloneDeep__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/cloneDeep */ \"./node_modules/lodash/cloneDeep.js\");\n/* harmony import */ var lodash_cloneDeep__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_cloneDeep__WEBPACK_IMPORTED_MODULE_5__);\n\n// 根据id和类型获取历史记录\n// 保存历史记录\n// 删除多余的历史记录\n\n\n\n\n\n// import { km } from './useKMindMessage'\n\n\n// 开启可以配置的定时器,每6分钟数据变动的时候,保存一次\nconst saveInterval = 6 * 60 * 1000;\nconst maxNormalHistoryCount = 3;\n\n// 大文件的历史记录份数\nconst maxBigFileHistoryCount = 3;\n\n// 是否是大文件,大于10mb\nconst isBigFile = Object(vue__WEBPACK_IMPORTED_MODULE_2__[\"ref\"])(false);\nconst maxHistoryCount = Object(vue__WEBPACK_IMPORTED_MODULE_2__[\"computed\"])(() => {\n return isBigFile.value ? maxBigFileHistoryCount : maxNormalHistoryCount;\n});\n\n// 每6分钟设置一次canSave为true,表示可以保存,data_change事件触发的时候,如果为true,则保存一次历史记录并设置canSave为false\nconst canSave = Object(vue__WEBPACK_IMPORTED_MODULE_2__[\"ref\"])(true);\n// 设置定时器,每6分钟设置一次canSave为true,表示可以保存,保存后记得设置canSave为false\nsetInterval(() => {\n canSave.value = true;\n}, saveInterval);\n\n// 所有历史记录\nconst allHistoryList = Object(vue__WEBPACK_IMPORTED_MODULE_2__[\"ref\"])([]);\n// 自动保存的历史记录\nconst autoSaveHistoryList = Object(vue__WEBPACK_IMPORTED_MODULE_2__[\"ref\"])([]);\n// 标记的历史记录\nconst pinHistoryList = Object(vue__WEBPACK_IMPORTED_MODULE_2__[\"ref\"])([]);\n// 智能择优的历史记录\nconst bestHistoryList = Object(vue__WEBPACK_IMPORTED_MODULE_2__[\"ref\"])([]);\n\n// smm有个问题,每次打开一张导图都会自动save_change一次,所以需要一个标识来判断是否是第一次保存,用来跳过第一次历史记录的生成\nconst isFirstSave = Object(vue__WEBPACK_IMPORTED_MODULE_2__[\"ref\"])(true);\nconst {\n getWidgetBlockInfo,\n wordsCount,\n nodeCount\n} = Object(_useData__WEBPACK_IMPORTED_MODULE_3__[\"useData\"])();\nconst useKMindHistory = injectConfig => {\n // 初始化目录,入参为想要的目录path,优化一下/data/storage/petal/kmind/history/xxxid的情况\n // 优化一下/data/storage/petal/\n const initDir = path => {};\n const putHistoryFile = ({\n injectConfig,\n kmindData\n }) => {\n const dir = getHistoryDir(injectConfig);\n // {创建日期}_{块计数}_{文字计数}_{类型(normal自动生成,pin为标记,可以pin-标记名称,不超过5个字)}_{可能会上的最后一个操作的更新摘要}_{可能会上的操作端提示}\n const createDate = dayjs__WEBPACK_IMPORTED_MODULE_4___default()().format('YYYYMMDDHHmmssSSS');\n let fileName = `${createDate}_${nodeCount.value}_${wordsCount.value}_normal`;\n let path = `${dir}/${fileName}.kmind`;\n const json = JSON.stringify(kmindData);\n // 如果文件大于10mb,则设置为大文件\n const fileSizeInBytes = new TextEncoder().encode(json).length;\n const MAX_SIZE = 10 * 1024 * 1024; // 10MB\n // console.log('KMind: 文件大小:', fileSizeInBytes)\n if (fileSizeInBytes > MAX_SIZE) {\n // console.log('KMind: 文件大于10mb,设置为大文件')\n isBigFile.value = true;\n }\n const blob = new Blob([json], {\n type: 'application/json'\n });\n const file = new File([blob], `${path}`, {\n type: 'application/json',\n lastModified: Date.now()\n });\n Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_1__[\"putFile\"])({\n path,\n file\n });\n };\n const getKmindId = injectConfig => {\n switch (injectConfig.type) {\n case 'sy-plugin':\n // 插件的name格式为去掉后缀的完整文件名称 xxx-时间戳-随机id,例如:奇-怪-的-名-字-20240918222336-kfvyu2g\n const pluginStrArr = injectConfig.name.split('-');\n const pluginRandomId = pluginStrArr.pop();\n const pluginTimeStamp = pluginStrArr.pop();\n return `${pluginTimeStamp}-${pluginRandomId}`;\n case 'sy-widget':\n // 挂件的name被手动设置为 \"sy-widget\",保存的时候会使用getWidgetBlockInfo方法动态获取dataAssets,例如:assets/kmind-20240923120735-lkc9x96.kmind\n let {\n dataAssets,\n id\n } = getWidgetBlockInfo();\n // 避免新建的时候dataAssets不存在\n dataAssets = dataAssets || `assets/kmind-${id}.kmind`;\n const fileNameWithSuffix = dataAssets.split('/').pop();\n const fileName = fileNameWithSuffix.split('.kmind')[0];\n const widgetStrArr = fileName.split('-');\n const widgetRandomId = widgetStrArr.pop();\n const widgetTimeStamp = widgetStrArr.pop();\n return `${widgetTimeStamp}-${widgetRandomId}`;\n case 'sy-doctree-doc':\n case 'sy-doctree-doc-dom':\n return injectConfig.name;\n case 'sy-doctree-moc-dom':\n throw new Error('MOC模式,无需保存历史记录');\n default:\n throw new Error('不支持的类型,无需保存历史记录');\n }\n };\n\n // 获取/data/storage/petal/kmind/history/xxxid\n const getHistoryDir = injectConfig => {\n const kmindId = getKmindId(injectConfig);\n switch (injectConfig.type) {\n case 'sy-plugin':\n return `/data/storage/petal/kmind/history/dock_${kmindId}`;\n case 'sy-widget':\n return `/data/storage/petal/kmind/history/widget_${kmindId}`;\n case 'sy-doctree-doc':\n case 'sy-doctree-doc-dom':\n return `/data/storage/petal/kmind/history/doctree_${kmindId}`;\n case 'sy-doctree-moc-dom':\n throw new Error('MOC模式,无需保存历史记录');\n default:\n throw new Error('不支持的类型,无需保存历史记录');\n }\n };\n const initHistory = () => {\n // 先根据id查一下是否有,有则更新,没有则创建\n };\n\n // 获取历史记录列表\n const getHistoryList = injectConfig => {\n const path = getHistoryDir(injectConfig);\n return Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_1__[\"listFile\"])({\n path\n }).then(res => {\n // console.log('res:', res)\n if (res.code === 0) {\n // 过滤掉非.kmind的文件\n // 根据 {创建日期}_{块计数}_{文字计数}_{类型(normal自动生成,pin为标记,可以pin-标记名称,不超过5个字)}_{可能会上的最后一个操作的更新摘要}_{可能会上的操作端} 分组\n allHistoryList.value = res.data.filter(item => item.name.endsWith('.kmind')).map(item => {\n const fileName = item.name.split('.kmind')[0];\n const [createDate, nodeCount, wordsCount, type, updateSummary, updateBy] = fileName.split('_');\n const res = {\n ...item,\n createDate,\n nodeCount,\n wordsCount,\n type,\n updateSummary,\n updateBy,\n createDateStr: dayjs__WEBPACK_IMPORTED_MODULE_4___default()(createDate).format('YYYY-MM-DD HH:mm:ss'),\n path: `${path}/${item.name}`\n };\n if (type !== null && type !== void 0 && type.startsWith('pin-')) {\n res.pinName = type.split('-')[1];\n res.type = 'pin';\n }\n return res;\n });\n autoSaveHistoryList.value = getAutoSaveHistoryList(allHistoryList.value);\n pinHistoryList.value = getPinHistoryList(allHistoryList.value);\n bestHistoryList.value = getBestHistoryList(allHistoryList.value);\n\n // console.log('allHistoryList.value:', allHistoryList.value)\n // console.log('autoSaveHistoryList.value:', autoSaveHistoryList.value)\n // console.log('pinHistoryList.value:', pinHistoryList.value)\n // console.log('bestHistoryList.value:', bestHistoryList.value)\n }\n return [];\n });\n };\n\n // 刷新历史记录列表,索引有延迟,所以需要等待2秒后再获取\n const refreshHistoryList = injectConfig => {\n return new Promise(resolve => {\n setTimeout(() => {\n resolve(getHistoryList(injectConfig));\n }, 2000);\n });\n };\n\n // 获取自动保存的历史记录\n const getAutoSaveHistoryList = allHistoryList => {\n return allHistoryList.filter(item => item.type === 'normal').sort((a, b) => dayjs__WEBPACK_IMPORTED_MODULE_4___default()(b.createDate).unix() - dayjs__WEBPACK_IMPORTED_MODULE_4___default()(a.createDate).unix());\n };\n // 获取标记的历史记录\n const getPinHistoryList = allHistoryList => {\n return allHistoryList.filter(item => item.type === 'pin').sort((a, b) => dayjs__WEBPACK_IMPORTED_MODULE_4___default()(b.createDate).unix() - dayjs__WEBPACK_IMPORTED_MODULE_4___default()(a.createDate).unix());\n };\n // 获取最佳的历史记录,根据节点数和文字数加权计算信息量\n const getBestHistoryList = allHistoryList => {\n return allHistoryList.filter(item => item.type === 'normal').sort((a, b) => {\n // 将节点数和文字数转为数字\n const aNodeCount = parseInt(a.nodeCount) || 0;\n const aWordsCount = parseInt(a.wordsCount) || 0;\n const bNodeCount = parseInt(b.nodeCount) || 0;\n const bWordsCount = parseInt(b.wordsCount) || 0;\n\n // 计算加权分数\n // 节点数权重为1,每个节点平均预期包含10个字,如果超过说明节点内容丰富\n const aScore = aNodeCount + aWordsCount / (aNodeCount * 10 || 1);\n const bScore = bNodeCount + bWordsCount / (bNodeCount * 10 || 1);\n\n // 节点数权重更高的版本\n // const aScore = aNodeCount * 2 + aWordsCount / (aNodeCount * 10 || 1)\n // const bScore = bNodeCount * 2 + bWordsCount / (bNodeCount * 10 || 1)\n return bScore - aScore;\n })[0];\n };\n\n // 进行保存历史记录,外部调用此方法,根据canSave判断是否可以保存\n const saveHistory = async ({\n injectConfig,\n kmindData,\n isDebugger = false\n }) => {\n if (canSave.value || isDebugger) {\n await putHistoryFile({\n injectConfig,\n kmindData\n });\n canSave.value = false;\n return new Promise(resolve => {\n setTimeout(() => {\n // 清理多余的normal类型的历史记录\n // 思源的获取历史记录应该依赖索引,索引是异步的,所以需要等待2秒后再获取,之后监听索引完成事件即可完美解决\n resolve(clearHistory(injectConfig));\n // km(`保存了${injectConfig.type}的历史记录`)\n }, 2000);\n });\n }\n };\n\n // 执行历史记录清理,删除多余的normal类型的历史记录\n const clearHistory = async injectConfig => {\n await getHistoryList(injectConfig);\n // 删除autoSaveHistoryList中多余的normal类型的历史记录\n const normalHistoryList = lodash_cloneDeep__WEBPACK_IMPORTED_MODULE_5___default()(autoSaveHistoryList.value);\n if (normalHistoryList.length > maxHistoryCount.value) {\n // 取出maxHistoryCount个之后的所有\n const deleteList = normalHistoryList.splice(maxHistoryCount.value);\n // console.log('deleteList:', deleteList)\n return await Promise.all([...deleteList.map(item => Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_1__[\"deleteFile\"])({\n path: item.path\n })), refreshHistoryList(injectConfig)]);\n }\n };\n\n // 删除历史记录\n const deleteHistory = async path => {\n await Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_1__[\"deleteFile\"])({\n path\n });\n return await refreshHistoryList(injectConfig);\n };\n\n // 应用历史记录\n const applyHistory = async path => {\n return await Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_1__[\"getFile\"])({\n path\n });\n };\n\n /**\n * 为所有的kmind初始化一份历史记录,只有没有进行过此操作的才需要初始化\n * 有三种产物:\n * sy-doctree-doc\n * 文档树\n * 目录:/data/assets\n * 查询方式: sql\n * sy-widget\n * 插件\n * 目录:/data/assets\n * 查询方式: sql\n * sy-plugin\n * 左下角dock栏\n * 目录:/data/storage/petal/kmind/xxx.kmind\n * 查询方式: 直接listFile\n *\n * 查询sql: SELECT * FROM attributes WHERE name IN ('custom-data-assets', 'custom-data-assets-kmind-doctree-doc') AND value LIKE '%.kmind'\n * 特征:如果查出来的root_id === block_id,则说明是文档树,否则是挂件\n */\n const initHistoryForAllKmind = async () => {\n // 先查询配置文件,获取初始化状态\n // 执行初始化\n // 设置配置文件,标识已初始化,value值为初始化时间\n };\n const isInitHistory = injectConfig => {\n const path = getHistoryDir(injectConfig);\n return Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_1__[\"listFile\"])({\n path\n }).then(res => {\n return res.code === 0;\n });\n };\n return {\n canSave,\n putHistoryFile,\n getHistoryList,\n refreshHistoryList,\n allHistoryList,\n autoSaveHistoryList,\n pinHistoryList,\n bestHistoryList,\n saveHistory,\n clearHistory,\n deleteHistory,\n applyHistory,\n isFirstSave\n };\n};\n\n//# sourceURL=webpack:///./src/hooks/useKMindHistory.tsx?");
/***/ }),
/***/ "./src/hooks/useKMindMirrorBlock.tsx":
/*!*******************************************!*\
!*** ./src/hooks/useKMindMirrorBlock.tsx ***!
\*******************************************/
/*! exports provided: useKMindMirrorBlock */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useKMindMirrorBlock\", function() { return useKMindMirrorBlock; });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n\nconst isMirrorBlockRef = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\nconst mirrorTargetNodeIdRef = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])('');\nlet mindMapInstance = null;\nconst useKMindMirrorBlock = () => {\n const setMirrorRootNodeCenter = () => {\n // console.log(\"mindMapInstance:\", mindMapInstance);\n if (isMirrorBlockRef.value && mirrorTargetNodeIdRef.value) {\n var _mindMapInstance;\n (_mindMapInstance = mindMapInstance) === null || _mindMapInstance === void 0 || _mindMapInstance.renderer.setRootNodeCenter();\n }\n };\n const setIsMirrorBlock = isMirrorBlock => {\n isMirrorBlockRef.value = isMirrorBlock;\n };\n const setMirrorTargetNodeId = mirrorTargetNodeId => {\n mirrorTargetNodeIdRef.value = mirrorTargetNodeId;\n };\n const setMindMapInstance = mindMap => {\n mindMapInstance = mindMap;\n };\n return {\n setMirrorRootNodeCenter,\n setIsMirrorBlock,\n setMirrorTargetNodeId,\n setMindMapInstance\n };\n};\n\n//# sourceURL=webpack:///./src/hooks/useKMindMirrorBlock.tsx?");
/***/ }),
/***/ "./src/hooks/useKmindPreview.tsx":
/*!***************************************!*\
!*** ./src/hooks/useKmindPreview.tsx ***!
\***************************************/
/*! exports provided: useKmindPreview */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useKmindPreview\", function() { return useKmindPreview; });\n/* harmony import */ var _api_siyuan__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/api/siyuan */ \"./src/api/siyuan.tsx\");\n// 入参为类型和地址,返回待预览的数据\n\nconst useKmindPreview = async ({\n type,\n path\n}) => {\n return await Object(_api_siyuan__WEBPACK_IMPORTED_MODULE_0__[\"getFile\"])({\n path\n });\n};\n\n//# sourceURL=webpack:///./src/hooks/useKmindPreview.tsx?");
/***/ }),
/***/ "./src/hooks/useQueryFunction.tsx":
/*!****************************************!*\
!*** ./src/hooks/useQueryFunction.tsx ***!
\****************************************/
/*! exports provided: useQueryFunction */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useQueryFunction\", function() { return useQueryFunction; });\n/* harmony import */ var vue_router_composables__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue-router/composables */ \"./node_modules/vue-router/composables.mjs\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n/**\n * 根据url上面的标识来启用或者删除一些功能\n */\n\n\nconst isDebugger = Object(vue__WEBPACK_IMPORTED_MODULE_1__[\"ref\"])(false);\nconst syPluginMode = Object(vue__WEBPACK_IMPORTED_MODULE_1__[\"ref\"])(false);\nconst useQueryFunction = () => {\n try {\n var _route$query, _route$query2;\n const route = Object(vue_router_composables__WEBPACK_IMPORTED_MODULE_0__[\"useRoute\"])();\n if ((route === null || route === void 0 || (_route$query = route.query) === null || _route$query === void 0 ? void 0 : _route$query.debugger) === 'suka233') {\n isDebugger.value = true;\n }\n if (route !== null && route !== void 0 && (_route$query2 = route.query) !== null && _route$query2 !== void 0 && _route$query2.injectConfig) {\n const injectConfig = JSON.parse(route.query.injectConfig);\n switch (injectConfig.type) {\n case 'sy-plugin':\n syPluginMode.value = true;\n break;\n }\n }\n } catch (error) {\n console.error('useQueryFunction--error:', error);\n }\n return {\n isDebugger,\n syPluginMode\n };\n};\n\n//# sourceURL=webpack:///./src/hooks/useQueryFunction.tsx?");
/***/ }),
/***/ "./src/hooks/useSiYuanAddFloatLayer.tsx":
/*!**********************************************!*\
!*** ./src/hooks/useSiYuanAddFloatLayer.tsx ***!
\**********************************************/
/*! exports provided: addSiYuanFloatLayer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addSiYuanFloatLayer\", function() { return addSiYuanFloatLayer; });\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! semver */ \"./node_modules/semver/index.js\");\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(semver__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./useCrossFrameAPI */ \"./src/hooks/useCrossFrameAPI.ts\");\n\n\n/**\n * 兼容新旧版本的 addFloatLayer 方法\n * @param options 配置项\n * @param options.ids 块 ID 数组\n * @param options.defIds 定义块 ID 数组(可选)\n * @param options.x 悬浮层 x 坐标(可选)\n * @param options.y 悬浮层 y 坐标(可选)\n * @param options.targetElement 目标元素(可选)\n */\nconst addSiYuanFloatLayer = options => {\n const {\n addFloatLayer,\n getKernelVersion\n } = Object(_useCrossFrameAPI__WEBPACK_IMPORTED_MODULE_1__[\"useCrossFrameAPI\"])(options.injectConfig);\n\n // @see https://github.com/siyuan-note/siyuan/issues/13816?utm_source=ld246.com\n const kernelVersion = getKernelVersion();\n if (!kernelVersion) {\n console.warn('无法获取内核版本');\n return;\n }\n const isOldVersion = semver__WEBPACK_IMPORTED_MODULE_0___default.a.lt(kernelVersion, '3.1.20');\n if (isOldVersion) {\n // 旧版本直接透传参数\n addFloatLayer({\n ids: options.ids,\n defIds: options.defIds,\n x: options.x,\n y: options.y,\n targetElement: options.targetElement\n });\n } else {\n // 新版本转换参数格式\n const refDefs = options.ids.map(id => ({\n refID: id,\n defIDs: options.defIds\n }));\n addFloatLayer({\n refDefs,\n x: options.x,\n y: options.y,\n targetElement: options.targetElement,\n isBacklink: false\n });\n }\n};\n\n//# sourceURL=webpack:///./src/hooks/useSiYuanAddFloatLayer.tsx?");
/***/ }),
/***/ "./src/hooks/useVisibilityDetection.js":
/*!*********************************************!*\
!*** ./src/hooks/useVisibilityDetection.js ***!
\*********************************************/
/*! exports provided: useVisibilityDetection */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useVisibilityDetection\", function() { return useVisibilityDetection; });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm.js\");\n\n\n/**\n * 统一的可见性检测\n * 处理 iframe 模式和 DOM 模式下的可见性检测差异\n * @param {Object} injectConfig - 注入的配置对象\n */\nfunction useVisibilityDetection(injectConfig) {\n const isHidden = Object(vue__WEBPACK_IMPORTED_MODULE_0__[\"ref\"])(false);\n // 如果没有传入,使用空对象\n if (!injectConfig) {\n injectConfig = {};\n }\n let observer = null;\n\n /**\n * 开始观察元素的可见性\n * @param {HTMLElement} element - 要观察的元素(仅在 DOM 模式下需要)\n * @returns {Function|null} - 返回清理函数,用于停止观察\n */\n const startObserver = element => {\n // 清理之前的观察器\n if (observer) {\n observer.disconnect();\n observer = null;\n }\n if (injectConfig.type === 'sy-doctree-doc-dom' || injectConfig.type === 'sy-doctree-moc-dom') {\n // DOM模式:检测传入的容器元素是否在视口内\n if (!element) {\n console.warn('[useVisibilityDetection] DOM模式需要提供要观察的元素');\n return null;\n }\n observer = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n isHidden.value = !entry.isIntersecting;\n });\n }, {\n threshold: 0.1 // 当10%可见时就认为是可见的\n });\n observer.observe(element);\n return () => {\n if (observer) {\n observer.disconnect();\n observer = null;\n }\n };\n } else {\n // iframe模式:检测iframe是否可见\n if (window.frameElement) {\n observer = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n isHidden.value = !entry.isIntersecting;\n });\n }, {\n threshold: 0.1\n });\n observer.observe(window.frameElement);\n return () => {\n if (observer) {\n observer.disconnect();\n observer = null;\n }\n };\n } else {\n console.warn('[useVisibilityDetection] 不在iframe中,无法检测可见性');\n return null;\n }\n }\n };\n\n /**\n * 停止观察\n */\n const stopObserver = () => {\n if (observer) {\n observer.disconnect();\n observer = null;\n }\n };\n\n /**\n * 手动设置隐藏状态\n */\n const setHidden = hidden => {\n isHidden.value = hidden;\n };\n\n /**\n * 获取当前是否处于隐藏状态\n */\n const getIsHidden = () => {\n return isHidden.value;\n };\n\n // 返回清理函数,供组件在 beforeDestroy 钩子中调用\n const cleanup = () => {\n stopObserver();\n };\n return {\n isHidden,\n startObserver,\n stopObserver,\n setHidden,\n getIsHidden,\n cleanup\n };\n}\n\n//# sourceURL=webpack:///./src/hooks/useVisibilityDetection.js?");
/***/ }),
/***/ "./src/mixins/domMode.js":
/*!*******************************!*\
!*** ./src/mixins/domMode.js ***!
\*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n computed: {\n isDomMode() {\n var _this$$store$state$in, _this$$store$state$in2;\n return ((_this$$store$state$in = this.$store.state.injectConfig) === null || _this$$store$state$in === void 0 ? void 0 : _this$$store$state$in.type) === 'sy-doctree-doc-dom' || ((_this$$store$state$in2 = this.$store.state.injectConfig) === null || _this$$store$state$in2 === void 0 ? void 0 : _this$$store$state$in2.type) === 'sy-doctree-moc-dom';\n },\n positionMode() {\n return this.isDomMode ? 'absolute' : 'fixed';\n },\n // 在 DOM 模式下,dialog 的遮罩层应该插入到当前容器内,而不是 body\n modalAppendToBody() {\n // return !this.isDomMode\n // 加入这个,会让后加载的dom导图悬浮在dialog上面,所以直接返回ture,全部插入body就行\n return true;\n },\n // 在 DOM 模式下,popover/tooltip/dropdown 等弹出层也应该插入到当前容器内\n appendToBody() {\n // return !this.isDomMode\n // 加入这个,会让后加载的dom导图悬浮在dialog上面,所以直接返回ture,全部插入body就行\n return true;\n },\n // 获取当前组件所在的导图容器\n currentEditContainer() {\n if (this.isDomMode) {\n // 从当前组件向上查找最近的 .kmind-container\n let element = this.$el;\n // console.log('element:', element)\n while (element && element !== document.body) {\n var _this$$store$state$in3;\n if (element.classList && element.classList.contains('kmind-container')) {\n return element;\n }\n // 如果当前元素没有父元素,尝试查找包含当前文档ID的容器\n if (!element.parentElement && (_this$$store$state$in3 = this.$store.state.injectConfig) !== null && _this$$store$state$in3 !== void 0 && _this$$store$state$in3.name) {\n var _this$$store$state$in4;\n const docId = this.$store.state.injectConfig.name;\n // 根据类型使用不同的前缀\n const type = (_this$$store$state$in4 = this.$store.state.injectConfig) === null || _this$$store$state$in4 === void 0 ? void 0 : _this$$store$state$in4.type;\n const prefix = type === 'sy-doctree-moc-dom' ? 'kmind-doctree-moc-root' : 'kmind-doctree-doc-root';\n const container = document.querySelector(`#${prefix}-${docId}`);\n if (container) {\n // 查找这个容器内的 .kmind-container\n return container.querySelector('.kmind-container') || container;\n }\n }\n element = element.parentElement;\n }\n }\n return document.body;\n },\n // 获取弹出层的容器元素\n popperAppendTo() {\n if (this.isDomMode) {\n // 返回一个函数,每次调用时动态获取当前容器\n return () => this.currentEditContainer;\n }\n return undefined; // 使用默认值 (body)\n }\n }\n});\n\n//# sourceURL=webpack:///./src/mixins/domMode.js?");
/***/ }),
/***/ "./src/pages/Edit/Index.vue":
/*!**********************************!*\
!*** ./src/pages/Edit/Index.vue ***!
\**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Index_vue_vue_type_template_id_4c868391_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Index.vue?vue&type=template&id=4c868391&scoped=true */ \"./src/pages/Edit/Index.vue?vue&type=template&id=4c868391&scoped=true\");\n/* harmony import */ var _Index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Index.vue?vue&type=script&lang=js */ \"./src/pages/Edit/Index.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Index_vue_vue_type_style_index_0_id_4c868391_lang_less__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Index.vue?vue&type=style&index=0&id=4c868391&lang=less */ \"./src/pages/Edit/Index.vue?vue&type=style&index=0&id=4c868391&lang=less\");\n/* harmony import */ var _Index_vue_vue_type_style_index_1_id_4c868391_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Index.vue?vue&type=style&index=1&id=4c868391&lang=less&scoped=true */ \"./src/pages/Edit/Index.vue?vue&type=style&index=1&id=4c868391&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(\n _Index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Index_vue_vue_type_template_id_4c868391_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Index_vue_vue_type_template_id_4c868391_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"4c868391\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/Index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/Index.vue?");
/***/ }),
/***/ "./src/pages/Edit/Index.vue?vue&type=script&lang=js":
/*!**********************************************************!*\
!*** ./src/pages/Edit/Index.vue?vue&type=script&lang=js ***!
\**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/babel-loader/lib!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/Index.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/Index.vue?");
/***/ }),
/***/ "./src/pages/Edit/Index.vue?vue&type=style&index=0&id=4c868391&lang=less":
/*!*******************************************************************************!*\
!*** ./src/pages/Edit/Index.vue?vue&type=style&index=0&id=4c868391&lang=less ***!
\*******************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_style_index_0_id_4c868391_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=style&index=0&id=4c868391&lang=less */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/Index.vue?vue&type=style&index=0&id=4c868391&lang=less\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_style_index_0_id_4c868391_lang_less__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_style_index_0_id_4c868391_lang_less__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_style_index_0_id_4c868391_lang_less__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_style_index_0_id_4c868391_lang_less__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/Index.vue?");
/***/ }),
/***/ "./src/pages/Edit/Index.vue?vue&type=style&index=1&id=4c868391&lang=less&scoped=true":
/*!*******************************************************************************************!*\
!*** ./src/pages/Edit/Index.vue?vue&type=style&index=1&id=4c868391&lang=less&scoped=true ***!
\*******************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_style_index_1_id_4c868391_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=style&index=1&id=4c868391&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/Index.vue?vue&type=style&index=1&id=4c868391&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_style_index_1_id_4c868391_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_style_index_1_id_4c868391_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_style_index_1_id_4c868391_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_style_index_1_id_4c868391_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/Index.vue?");
/***/ }),
/***/ "./src/pages/Edit/Index.vue?vue&type=template&id=4c868391&scoped=true":
/*!****************************************************************************!*\
!*** ./src/pages/Edit/Index.vue?vue&type=template&id=4c868391&scoped=true ***!
\****************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_4c868391_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/babel-loader/lib!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib??vue-loader-options!./Index.vue?vue&type=template&id=4c868391&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/Index.vue?vue&type=template&id=4c868391&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_4c868391_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Index_vue_vue_type_template_id_4c868391_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/Index.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/AssociativeLineStyle.vue":
/*!************************************************************!*\
!*** ./src/pages/Edit/components/AssociativeLineStyle.vue ***!
\************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AssociativeLineStyle_vue_vue_type_template_id_127c4038_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AssociativeLineStyle.vue?vue&type=template&id=127c4038&scoped=true */ \"./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=template&id=127c4038&scoped=true\");\n/* harmony import */ var _AssociativeLineStyle_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AssociativeLineStyle.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _AssociativeLineStyle_vue_vue_type_style_index_0_id_127c4038_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AssociativeLineStyle.vue?vue&type=style&index=0&id=127c4038&lang=less&scoped=true */ \"./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=0&id=127c4038&lang=less&scoped=true\");\n/* harmony import */ var _AssociativeLineStyle_vue_vue_type_style_index_1_id_127c4038_lang_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AssociativeLineStyle.vue?vue&type=style&index=1&id=127c4038&lang=less */ \"./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=1&id=127c4038&lang=less\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(\n _AssociativeLineStyle_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _AssociativeLineStyle_vue_vue_type_template_id_127c4038_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _AssociativeLineStyle_vue_vue_type_template_id_127c4038_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"127c4038\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/AssociativeLineStyle.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/AssociativeLineStyle.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=script&lang=js":
/*!************************************************************************************!*\
!*** ./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=script&lang=js ***!
\************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AssociativeLineStyle_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./AssociativeLineStyle.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AssociativeLineStyle_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/AssociativeLineStyle.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=0&id=127c4038&lang=less&scoped=true":
/*!*********************************************************************************************************************!*\
!*** ./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=0&id=127c4038&lang=less&scoped=true ***!
\*********************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AssociativeLineStyle_vue_vue_type_style_index_0_id_127c4038_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./AssociativeLineStyle.vue?vue&type=style&index=0&id=127c4038&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=0&id=127c4038&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AssociativeLineStyle_vue_vue_type_style_index_0_id_127c4038_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AssociativeLineStyle_vue_vue_type_style_index_0_id_127c4038_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AssociativeLineStyle_vue_vue_type_style_index_0_id_127c4038_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AssociativeLineStyle_vue_vue_type_style_index_0_id_127c4038_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/AssociativeLineStyle.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=1&id=127c4038&lang=less":
/*!*********************************************************************************************************!*\
!*** ./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=1&id=127c4038&lang=less ***!
\*********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AssociativeLineStyle_vue_vue_type_style_index_1_id_127c4038_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./AssociativeLineStyle.vue?vue&type=style&index=1&id=127c4038&lang=less */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=style&index=1&id=127c4038&lang=less\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AssociativeLineStyle_vue_vue_type_style_index_1_id_127c4038_lang_less__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AssociativeLineStyle_vue_vue_type_style_index_1_id_127c4038_lang_less__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AssociativeLineStyle_vue_vue_type_style_index_1_id_127c4038_lang_less__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AssociativeLineStyle_vue_vue_type_style_index_1_id_127c4038_lang_less__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/AssociativeLineStyle.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=template&id=127c4038&scoped=true":
/*!******************************************************************************************************!*\
!*** ./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=template&id=127c4038&scoped=true ***!
\******************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AssociativeLineStyle_vue_vue_type_template_id_127c4038_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./AssociativeLineStyle.vue?vue&type=template&id=127c4038&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/AssociativeLineStyle.vue?vue&type=template&id=127c4038&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AssociativeLineStyle_vue_vue_type_template_id_127c4038_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AssociativeLineStyle_vue_vue_type_template_id_127c4038_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/AssociativeLineStyle.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/BaseStyle.vue":
/*!*************************************************!*\
!*** ./src/pages/Edit/components/BaseStyle.vue ***!
\*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _BaseStyle_vue_vue_type_template_id_f49af710_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BaseStyle.vue?vue&type=template&id=f49af710&scoped=true */ \"./src/pages/Edit/components/BaseStyle.vue?vue&type=template&id=f49af710&scoped=true\");\n/* harmony import */ var _BaseStyle_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BaseStyle.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/BaseStyle.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _BaseStyle_vue_vue_type_style_index_0_id_f49af710_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BaseStyle.vue?vue&type=style&index=0&id=f49af710&lang=less&scoped=true */ \"./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=0&id=f49af710&lang=less&scoped=true\");\n/* harmony import */ var _BaseStyle_vue_vue_type_style_index_1_id_f49af710_lang_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./BaseStyle.vue?vue&type=style&index=1&id=f49af710&lang=less */ \"./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=1&id=f49af710&lang=less\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(\n _BaseStyle_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _BaseStyle_vue_vue_type_template_id_f49af710_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _BaseStyle_vue_vue_type_template_id_f49af710_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"f49af710\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/BaseStyle.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/BaseStyle.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/BaseStyle.vue?vue&type=script&lang=js":
/*!*************************************************************************!*\
!*** ./src/pages/Edit/components/BaseStyle.vue?vue&type=script&lang=js ***!
\*************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseStyle_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./BaseStyle.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/BaseStyle.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseStyle_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/BaseStyle.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=0&id=f49af710&lang=less&scoped=true":
/*!**********************************************************************************************************!*\
!*** ./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=0&id=f49af710&lang=less&scoped=true ***!
\**********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseStyle_vue_vue_type_style_index_0_id_f49af710_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./BaseStyle.vue?vue&type=style&index=0&id=f49af710&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=0&id=f49af710&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseStyle_vue_vue_type_style_index_0_id_f49af710_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseStyle_vue_vue_type_style_index_0_id_f49af710_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseStyle_vue_vue_type_style_index_0_id_f49af710_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseStyle_vue_vue_type_style_index_0_id_f49af710_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/BaseStyle.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=1&id=f49af710&lang=less":
/*!**********************************************************************************************!*\
!*** ./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=1&id=f49af710&lang=less ***!
\**********************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseStyle_vue_vue_type_style_index_1_id_f49af710_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./BaseStyle.vue?vue&type=style&index=1&id=f49af710&lang=less */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/BaseStyle.vue?vue&type=style&index=1&id=f49af710&lang=less\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseStyle_vue_vue_type_style_index_1_id_f49af710_lang_less__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseStyle_vue_vue_type_style_index_1_id_f49af710_lang_less__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseStyle_vue_vue_type_style_index_1_id_f49af710_lang_less__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseStyle_vue_vue_type_style_index_1_id_f49af710_lang_less__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/BaseStyle.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/BaseStyle.vue?vue&type=template&id=f49af710&scoped=true":
/*!*******************************************************************************************!*\
!*** ./src/pages/Edit/components/BaseStyle.vue?vue&type=template&id=f49af710&scoped=true ***!
\*******************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseStyle_vue_vue_type_template_id_f49af710_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./BaseStyle.vue?vue&type=template&id=f49af710&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/BaseStyle.vue?vue&type=template&id=f49af710&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseStyle_vue_vue_type_template_id_f49af710_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_BaseStyle_vue_vue_type_template_id_f49af710_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/BaseStyle.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Color.vue":
/*!*********************************************!*\
!*** ./src/pages/Edit/components/Color.vue ***!
\*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Color_vue_vue_type_template_id_48030e0a_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Color.vue?vue&type=template&id=48030e0a&scoped=true */ \"./src/pages/Edit/components/Color.vue?vue&type=template&id=48030e0a&scoped=true\");\n/* harmony import */ var _Color_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Color.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Color.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Color_vue_vue_type_style_index_0_id_48030e0a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Color.vue?vue&type=style&index=0&id=48030e0a&lang=less&scoped=true */ \"./src/pages/Edit/components/Color.vue?vue&type=style&index=0&id=48030e0a&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Color_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Color_vue_vue_type_template_id_48030e0a_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Color_vue_vue_type_template_id_48030e0a_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"48030e0a\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Color.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Color.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Color.vue?vue&type=script&lang=js":
/*!*********************************************************************!*\
!*** ./src/pages/Edit/components/Color.vue?vue&type=script&lang=js ***!
\*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Color_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Color.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Color.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Color_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Color.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Color.vue?vue&type=style&index=0&id=48030e0a&lang=less&scoped=true":
/*!******************************************************************************************************!*\
!*** ./src/pages/Edit/components/Color.vue?vue&type=style&index=0&id=48030e0a&lang=less&scoped=true ***!
\******************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Color_vue_vue_type_style_index_0_id_48030e0a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Color.vue?vue&type=style&index=0&id=48030e0a&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Color.vue?vue&type=style&index=0&id=48030e0a&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Color_vue_vue_type_style_index_0_id_48030e0a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Color_vue_vue_type_style_index_0_id_48030e0a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Color_vue_vue_type_style_index_0_id_48030e0a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Color_vue_vue_type_style_index_0_id_48030e0a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Color.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Color.vue?vue&type=template&id=48030e0a&scoped=true":
/*!***************************************************************************************!*\
!*** ./src/pages/Edit/components/Color.vue?vue&type=template&id=48030e0a&scoped=true ***!
\***************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Color_vue_vue_type_template_id_48030e0a_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Color.vue?vue&type=template&id=48030e0a&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Color.vue?vue&type=template&id=48030e0a&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Color_vue_vue_type_template_id_48030e0a_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Color_vue_vue_type_template_id_48030e0a_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Color.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Contextmenu.vue":
/*!***************************************************!*\
!*** ./src/pages/Edit/components/Contextmenu.vue ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Contextmenu_vue_vue_type_template_id_ca7290b4_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Contextmenu.vue?vue&type=template&id=ca7290b4&scoped=true */ \"./src/pages/Edit/components/Contextmenu.vue?vue&type=template&id=ca7290b4&scoped=true\");\n/* harmony import */ var _Contextmenu_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Contextmenu.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Contextmenu.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Contextmenu_vue_vue_type_style_index_0_id_ca7290b4_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Contextmenu.vue?vue&type=style&index=0&id=ca7290b4&lang=less&scoped=true */ \"./src/pages/Edit/components/Contextmenu.vue?vue&type=style&index=0&id=ca7290b4&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Contextmenu_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Contextmenu_vue_vue_type_template_id_ca7290b4_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Contextmenu_vue_vue_type_template_id_ca7290b4_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"ca7290b4\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Contextmenu.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Contextmenu.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Contextmenu.vue?vue&type=script&lang=js":
/*!***************************************************************************!*\
!*** ./src/pages/Edit/components/Contextmenu.vue?vue&type=script&lang=js ***!
\***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Contextmenu_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Contextmenu.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Contextmenu.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Contextmenu_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Contextmenu.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Contextmenu.vue?vue&type=style&index=0&id=ca7290b4&lang=less&scoped=true":
/*!************************************************************************************************************!*\
!*** ./src/pages/Edit/components/Contextmenu.vue?vue&type=style&index=0&id=ca7290b4&lang=less&scoped=true ***!
\************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Contextmenu_vue_vue_type_style_index_0_id_ca7290b4_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Contextmenu.vue?vue&type=style&index=0&id=ca7290b4&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Contextmenu.vue?vue&type=style&index=0&id=ca7290b4&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Contextmenu_vue_vue_type_style_index_0_id_ca7290b4_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Contextmenu_vue_vue_type_style_index_0_id_ca7290b4_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Contextmenu_vue_vue_type_style_index_0_id_ca7290b4_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Contextmenu_vue_vue_type_style_index_0_id_ca7290b4_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Contextmenu.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Contextmenu.vue?vue&type=template&id=ca7290b4&scoped=true":
/*!*********************************************************************************************!*\
!*** ./src/pages/Edit/components/Contextmenu.vue?vue&type=template&id=ca7290b4&scoped=true ***!
\*********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Contextmenu_vue_vue_type_template_id_ca7290b4_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Contextmenu.vue?vue&type=template&id=ca7290b4&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Contextmenu.vue?vue&type=template&id=ca7290b4&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Contextmenu_vue_vue_type_template_id_ca7290b4_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Contextmenu_vue_vue_type_template_id_ca7290b4_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Contextmenu.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Count.vue":
/*!*********************************************!*\
!*** ./src/pages/Edit/components/Count.vue ***!
\*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Count_vue_vue_type_template_id_930436b2_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Count.vue?vue&type=template&id=930436b2&scoped=true */ \"./src/pages/Edit/components/Count.vue?vue&type=template&id=930436b2&scoped=true\");\n/* harmony import */ var _Count_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Count.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Count.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Count_vue_vue_type_style_index_0_id_930436b2_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Count.vue?vue&type=style&index=0&id=930436b2&lang=less&scoped=true */ \"./src/pages/Edit/components/Count.vue?vue&type=style&index=0&id=930436b2&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Count_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Count_vue_vue_type_template_id_930436b2_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Count_vue_vue_type_template_id_930436b2_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"930436b2\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Count.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Count.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Count.vue?vue&type=script&lang=js":
/*!*********************************************************************!*\
!*** ./src/pages/Edit/components/Count.vue?vue&type=script&lang=js ***!
\*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Count_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Count.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Count.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Count_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Count.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Count.vue?vue&type=style&index=0&id=930436b2&lang=less&scoped=true":
/*!******************************************************************************************************!*\
!*** ./src/pages/Edit/components/Count.vue?vue&type=style&index=0&id=930436b2&lang=less&scoped=true ***!
\******************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Count_vue_vue_type_style_index_0_id_930436b2_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Count.vue?vue&type=style&index=0&id=930436b2&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Count.vue?vue&type=style&index=0&id=930436b2&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Count_vue_vue_type_style_index_0_id_930436b2_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Count_vue_vue_type_style_index_0_id_930436b2_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Count_vue_vue_type_style_index_0_id_930436b2_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Count_vue_vue_type_style_index_0_id_930436b2_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Count.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Count.vue?vue&type=template&id=930436b2&scoped=true":
/*!***************************************************************************************!*\
!*** ./src/pages/Edit/components/Count.vue?vue&type=template&id=930436b2&scoped=true ***!
\***************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Count_vue_vue_type_template_id_930436b2_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Count.vue?vue&type=template&id=930436b2&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Count.vue?vue&type=template&id=930436b2&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Count_vue_vue_type_template_id_930436b2_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Count_vue_vue_type_template_id_930436b2_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Count.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Demonstrate.vue":
/*!***************************************************!*\
!*** ./src/pages/Edit/components/Demonstrate.vue ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Demonstrate_vue_vue_type_template_id_7e7ebaf8_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Demonstrate.vue?vue&type=template&id=7e7ebaf8&scoped=true */ \"./src/pages/Edit/components/Demonstrate.vue?vue&type=template&id=7e7ebaf8&scoped=true\");\n/* harmony import */ var _Demonstrate_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Demonstrate.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Demonstrate.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Demonstrate_vue_vue_type_style_index_0_id_7e7ebaf8_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Demonstrate.vue?vue&type=style&index=0&id=7e7ebaf8&lang=less&scoped=true */ \"./src/pages/Edit/components/Demonstrate.vue?vue&type=style&index=0&id=7e7ebaf8&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Demonstrate_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Demonstrate_vue_vue_type_template_id_7e7ebaf8_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Demonstrate_vue_vue_type_template_id_7e7ebaf8_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"7e7ebaf8\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Demonstrate.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Demonstrate.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Demonstrate.vue?vue&type=script&lang=js":
/*!***************************************************************************!*\
!*** ./src/pages/Edit/components/Demonstrate.vue?vue&type=script&lang=js ***!
\***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Demonstrate_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Demonstrate.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Demonstrate.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Demonstrate_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Demonstrate.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Demonstrate.vue?vue&type=style&index=0&id=7e7ebaf8&lang=less&scoped=true":
/*!************************************************************************************************************!*\
!*** ./src/pages/Edit/components/Demonstrate.vue?vue&type=style&index=0&id=7e7ebaf8&lang=less&scoped=true ***!
\************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Demonstrate_vue_vue_type_style_index_0_id_7e7ebaf8_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Demonstrate.vue?vue&type=style&index=0&id=7e7ebaf8&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Demonstrate.vue?vue&type=style&index=0&id=7e7ebaf8&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Demonstrate_vue_vue_type_style_index_0_id_7e7ebaf8_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Demonstrate_vue_vue_type_style_index_0_id_7e7ebaf8_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Demonstrate_vue_vue_type_style_index_0_id_7e7ebaf8_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Demonstrate_vue_vue_type_style_index_0_id_7e7ebaf8_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Demonstrate.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Demonstrate.vue?vue&type=template&id=7e7ebaf8&scoped=true":
/*!*********************************************************************************************!*\
!*** ./src/pages/Edit/components/Demonstrate.vue?vue&type=template&id=7e7ebaf8&scoped=true ***!
\*********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Demonstrate_vue_vue_type_template_id_7e7ebaf8_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Demonstrate.vue?vue&type=template&id=7e7ebaf8&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Demonstrate.vue?vue&type=template&id=7e7ebaf8&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Demonstrate_vue_vue_type_template_id_7e7ebaf8_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Demonstrate_vue_vue_type_template_id_7e7ebaf8_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Demonstrate.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Edit.vue":
/*!********************************************!*\
!*** ./src/pages/Edit/components/Edit.vue ***!
\********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Edit_vue_vue_type_template_id_84e609bc_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Edit.vue?vue&type=template&id=84e609bc&scoped=true */ \"./src/pages/Edit/components/Edit.vue?vue&type=template&id=84e609bc&scoped=true\");\n/* harmony import */ var _Edit_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Edit.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Edit.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Edit_vue_vue_type_style_index_0_id_84e609bc_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Edit.vue?vue&type=style&index=0&id=84e609bc&lang=less&scoped=true */ \"./src/pages/Edit/components/Edit.vue?vue&type=style&index=0&id=84e609bc&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Edit_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Edit_vue_vue_type_template_id_84e609bc_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Edit_vue_vue_type_template_id_84e609bc_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"84e609bc\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Edit.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Edit.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Edit.vue?vue&type=script&lang=js":
/*!********************************************************************!*\
!*** ./src/pages/Edit/components/Edit.vue?vue&type=script&lang=js ***!
\********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Edit_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Edit.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Edit.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Edit_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Edit.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Edit.vue?vue&type=style&index=0&id=84e609bc&lang=less&scoped=true":
/*!*****************************************************************************************************!*\
!*** ./src/pages/Edit/components/Edit.vue?vue&type=style&index=0&id=84e609bc&lang=less&scoped=true ***!
\*****************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Edit_vue_vue_type_style_index_0_id_84e609bc_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Edit.vue?vue&type=style&index=0&id=84e609bc&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Edit.vue?vue&type=style&index=0&id=84e609bc&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Edit_vue_vue_type_style_index_0_id_84e609bc_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Edit_vue_vue_type_style_index_0_id_84e609bc_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Edit_vue_vue_type_style_index_0_id_84e609bc_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Edit_vue_vue_type_style_index_0_id_84e609bc_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Edit.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Edit.vue?vue&type=template&id=84e609bc&scoped=true":
/*!**************************************************************************************!*\
!*** ./src/pages/Edit/components/Edit.vue?vue&type=template&id=84e609bc&scoped=true ***!
\**************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Edit_vue_vue_type_template_id_84e609bc_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Edit.vue?vue&type=template&id=84e609bc&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Edit.vue?vue&type=template&id=84e609bc&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Edit_vue_vue_type_template_id_84e609bc_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Edit_vue_vue_type_template_id_84e609bc_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Edit.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Export.vue":
/*!**********************************************!*\
!*** ./src/pages/Edit/components/Export.vue ***!
\**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Export_vue_vue_type_template_id_6609dbcc_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Export.vue?vue&type=template&id=6609dbcc&scoped=true */ \"./src/pages/Edit/components/Export.vue?vue&type=template&id=6609dbcc&scoped=true\");\n/* harmony import */ var _Export_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Export.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Export.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Export_vue_vue_type_style_index_0_id_6609dbcc_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Export.vue?vue&type=style&index=0&id=6609dbcc&lang=less&scoped=true */ \"./src/pages/Edit/components/Export.vue?vue&type=style&index=0&id=6609dbcc&lang=less&scoped=true\");\n/* harmony import */ var _Export_vue_vue_type_style_index_1_id_6609dbcc_lang_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Export.vue?vue&type=style&index=1&id=6609dbcc&lang=less */ \"./src/pages/Edit/components/Export.vue?vue&type=style&index=1&id=6609dbcc&lang=less\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(\n _Export_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Export_vue_vue_type_template_id_6609dbcc_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Export_vue_vue_type_template_id_6609dbcc_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"6609dbcc\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Export.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Export.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Export.vue?vue&type=script&lang=js":
/*!**********************************************************************!*\
!*** ./src/pages/Edit/components/Export.vue?vue&type=script&lang=js ***!
\**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Export_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Export.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Export.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Export_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Export.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Export.vue?vue&type=style&index=0&id=6609dbcc&lang=less&scoped=true":
/*!*******************************************************************************************************!*\
!*** ./src/pages/Edit/components/Export.vue?vue&type=style&index=0&id=6609dbcc&lang=less&scoped=true ***!
\*******************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Export_vue_vue_type_style_index_0_id_6609dbcc_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Export.vue?vue&type=style&index=0&id=6609dbcc&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Export.vue?vue&type=style&index=0&id=6609dbcc&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Export_vue_vue_type_style_index_0_id_6609dbcc_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Export_vue_vue_type_style_index_0_id_6609dbcc_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Export_vue_vue_type_style_index_0_id_6609dbcc_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Export_vue_vue_type_style_index_0_id_6609dbcc_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Export.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Export.vue?vue&type=style&index=1&id=6609dbcc&lang=less":
/*!*******************************************************************************************!*\
!*** ./src/pages/Edit/components/Export.vue?vue&type=style&index=1&id=6609dbcc&lang=less ***!
\*******************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Export_vue_vue_type_style_index_1_id_6609dbcc_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Export.vue?vue&type=style&index=1&id=6609dbcc&lang=less */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Export.vue?vue&type=style&index=1&id=6609dbcc&lang=less\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Export_vue_vue_type_style_index_1_id_6609dbcc_lang_less__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Export_vue_vue_type_style_index_1_id_6609dbcc_lang_less__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Export_vue_vue_type_style_index_1_id_6609dbcc_lang_less__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Export_vue_vue_type_style_index_1_id_6609dbcc_lang_less__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Export.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Export.vue?vue&type=template&id=6609dbcc&scoped=true":
/*!****************************************************************************************!*\
!*** ./src/pages/Edit/components/Export.vue?vue&type=template&id=6609dbcc&scoped=true ***!
\****************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Export_vue_vue_type_template_id_6609dbcc_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Export.vue?vue&type=template&id=6609dbcc&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Export.vue?vue&type=template&id=6609dbcc&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Export_vue_vue_type_template_id_6609dbcc_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Export_vue_vue_type_template_id_6609dbcc_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Export.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/FormulaSidebar.vue":
/*!******************************************************!*\
!*** ./src/pages/Edit/components/FormulaSidebar.vue ***!
\******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _FormulaSidebar_vue_vue_type_template_id_3b54da2e_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FormulaSidebar.vue?vue&type=template&id=3b54da2e&scoped=true */ \"./src/pages/Edit/components/FormulaSidebar.vue?vue&type=template&id=3b54da2e&scoped=true\");\n/* harmony import */ var _FormulaSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FormulaSidebar.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/FormulaSidebar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _FormulaSidebar_vue_vue_type_style_index_0_id_3b54da2e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FormulaSidebar.vue?vue&type=style&index=0&id=3b54da2e&lang=less&scoped=true */ \"./src/pages/Edit/components/FormulaSidebar.vue?vue&type=style&index=0&id=3b54da2e&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _FormulaSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _FormulaSidebar_vue_vue_type_template_id_3b54da2e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _FormulaSidebar_vue_vue_type_template_id_3b54da2e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"3b54da2e\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/FormulaSidebar.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/FormulaSidebar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/FormulaSidebar.vue?vue&type=script&lang=js":
/*!******************************************************************************!*\
!*** ./src/pages/Edit/components/FormulaSidebar.vue?vue&type=script&lang=js ***!
\******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormulaSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./FormulaSidebar.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/FormulaSidebar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormulaSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/FormulaSidebar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/FormulaSidebar.vue?vue&type=style&index=0&id=3b54da2e&lang=less&scoped=true":
/*!***************************************************************************************************************!*\
!*** ./src/pages/Edit/components/FormulaSidebar.vue?vue&type=style&index=0&id=3b54da2e&lang=less&scoped=true ***!
\***************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormulaSidebar_vue_vue_type_style_index_0_id_3b54da2e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./FormulaSidebar.vue?vue&type=style&index=0&id=3b54da2e&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/FormulaSidebar.vue?vue&type=style&index=0&id=3b54da2e&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormulaSidebar_vue_vue_type_style_index_0_id_3b54da2e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormulaSidebar_vue_vue_type_style_index_0_id_3b54da2e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormulaSidebar_vue_vue_type_style_index_0_id_3b54da2e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormulaSidebar_vue_vue_type_style_index_0_id_3b54da2e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/FormulaSidebar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/FormulaSidebar.vue?vue&type=template&id=3b54da2e&scoped=true":
/*!************************************************************************************************!*\
!*** ./src/pages/Edit/components/FormulaSidebar.vue?vue&type=template&id=3b54da2e&scoped=true ***!
\************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormulaSidebar_vue_vue_type_template_id_3b54da2e_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./FormulaSidebar.vue?vue&type=template&id=3b54da2e&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/FormulaSidebar.vue?vue&type=template&id=3b54da2e&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormulaSidebar_vue_vue_type_template_id_3b54da2e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FormulaSidebar_vue_vue_type_template_id_3b54da2e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/FormulaSidebar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Fullscreen.vue":
/*!**************************************************!*\
!*** ./src/pages/Edit/components/Fullscreen.vue ***!
\**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Fullscreen_vue_vue_type_template_id_bd69af5a_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Fullscreen.vue?vue&type=template&id=bd69af5a&scoped=true */ \"./src/pages/Edit/components/Fullscreen.vue?vue&type=template&id=bd69af5a&scoped=true\");\n/* harmony import */ var _Fullscreen_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Fullscreen.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Fullscreen.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Fullscreen_vue_vue_type_style_index_0_id_bd69af5a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Fullscreen.vue?vue&type=style&index=0&id=bd69af5a&lang=less&scoped=true */ \"./src/pages/Edit/components/Fullscreen.vue?vue&type=style&index=0&id=bd69af5a&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Fullscreen_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Fullscreen_vue_vue_type_template_id_bd69af5a_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Fullscreen_vue_vue_type_template_id_bd69af5a_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"bd69af5a\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Fullscreen.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Fullscreen.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Fullscreen.vue?vue&type=script&lang=js":
/*!**************************************************************************!*\
!*** ./src/pages/Edit/components/Fullscreen.vue?vue&type=script&lang=js ***!
\**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Fullscreen_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Fullscreen.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Fullscreen.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Fullscreen_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Fullscreen.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Fullscreen.vue?vue&type=style&index=0&id=bd69af5a&lang=less&scoped=true":
/*!***********************************************************************************************************!*\
!*** ./src/pages/Edit/components/Fullscreen.vue?vue&type=style&index=0&id=bd69af5a&lang=less&scoped=true ***!
\***********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Fullscreen_vue_vue_type_style_index_0_id_bd69af5a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Fullscreen.vue?vue&type=style&index=0&id=bd69af5a&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Fullscreen.vue?vue&type=style&index=0&id=bd69af5a&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Fullscreen_vue_vue_type_style_index_0_id_bd69af5a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Fullscreen_vue_vue_type_style_index_0_id_bd69af5a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Fullscreen_vue_vue_type_style_index_0_id_bd69af5a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Fullscreen_vue_vue_type_style_index_0_id_bd69af5a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Fullscreen.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Fullscreen.vue?vue&type=template&id=bd69af5a&scoped=true":
/*!********************************************************************************************!*\
!*** ./src/pages/Edit/components/Fullscreen.vue?vue&type=template&id=bd69af5a&scoped=true ***!
\********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Fullscreen_vue_vue_type_template_id_bd69af5a_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Fullscreen.vue?vue&type=template&id=bd69af5a&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Fullscreen.vue?vue&type=template&id=bd69af5a&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Fullscreen_vue_vue_type_template_id_bd69af5a_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Fullscreen_vue_vue_type_template_id_bd69af5a_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Fullscreen.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Import.vue":
/*!**********************************************!*\
!*** ./src/pages/Edit/components/Import.vue ***!
\**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Import_vue_vue_type_template_id_4f824986_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Import.vue?vue&type=template&id=4f824986&scoped=true */ \"./src/pages/Edit/components/Import.vue?vue&type=template&id=4f824986&scoped=true\");\n/* harmony import */ var _Import_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Import.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Import.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Import_vue_vue_type_style_index_0_id_4f824986_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Import.vue?vue&type=style&index=0&id=4f824986&lang=less&scoped=true */ \"./src/pages/Edit/components/Import.vue?vue&type=style&index=0&id=4f824986&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Import_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Import_vue_vue_type_template_id_4f824986_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Import_vue_vue_type_template_id_4f824986_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"4f824986\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Import.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Import.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Import.vue?vue&type=script&lang=js":
/*!**********************************************************************!*\
!*** ./src/pages/Edit/components/Import.vue?vue&type=script&lang=js ***!
\**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Import_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Import.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Import.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Import_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Import.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Import.vue?vue&type=style&index=0&id=4f824986&lang=less&scoped=true":
/*!*******************************************************************************************************!*\
!*** ./src/pages/Edit/components/Import.vue?vue&type=style&index=0&id=4f824986&lang=less&scoped=true ***!
\*******************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Import_vue_vue_type_style_index_0_id_4f824986_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Import.vue?vue&type=style&index=0&id=4f824986&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Import.vue?vue&type=style&index=0&id=4f824986&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Import_vue_vue_type_style_index_0_id_4f824986_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Import_vue_vue_type_style_index_0_id_4f824986_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Import_vue_vue_type_style_index_0_id_4f824986_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Import_vue_vue_type_style_index_0_id_4f824986_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Import.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Import.vue?vue&type=template&id=4f824986&scoped=true":
/*!****************************************************************************************!*\
!*** ./src/pages/Edit/components/Import.vue?vue&type=template&id=4f824986&scoped=true ***!
\****************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Import_vue_vue_type_template_id_4f824986_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Import.vue?vue&type=template&id=4f824986&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Import.vue?vue&type=template&id=4f824986&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Import_vue_vue_type_template_id_4f824986_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Import_vue_vue_type_template_id_4f824986_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Import.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue":
/*!***************************************************************************!*\
!*** ./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue ***!
\***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _KmindFloatToolbar_vue_vue_type_template_id_035dc43e_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./KmindFloatToolbar.vue?vue&type=template&id=035dc43e&scoped=true */ \"./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=template&id=035dc43e&scoped=true\");\n/* harmony import */ var _KmindFloatToolbar_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./KmindFloatToolbar.vue?vue&type=script&setup=true&lang=js */ \"./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=script&setup=true&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _KmindFloatToolbar_vue_vue_type_style_index_0_id_035dc43e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./KmindFloatToolbar.vue?vue&type=style&index=0&id=035dc43e&lang=less&scoped=true */ \"./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=style&index=0&id=035dc43e&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _KmindFloatToolbar_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _KmindFloatToolbar_vue_vue_type_template_id_035dc43e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _KmindFloatToolbar_vue_vue_type_template_id_035dc43e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"035dc43e\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=script&setup=true&lang=js":
/*!**************************************************************************************************************!*\
!*** ./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=script&setup=true&lang=js ***!
\**************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindFloatToolbar_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./KmindFloatToolbar.vue?vue&type=script&setup=true&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=script&setup=true&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindFloatToolbar_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=style&index=0&id=035dc43e&lang=less&scoped=true":
/*!************************************************************************************************************************************!*\
!*** ./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=style&index=0&id=035dc43e&lang=less&scoped=true ***!
\************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindFloatToolbar_vue_vue_type_style_index_0_id_035dc43e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./KmindFloatToolbar.vue?vue&type=style&index=0&id=035dc43e&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=style&index=0&id=035dc43e&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindFloatToolbar_vue_vue_type_style_index_0_id_035dc43e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindFloatToolbar_vue_vue_type_style_index_0_id_035dc43e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindFloatToolbar_vue_vue_type_style_index_0_id_035dc43e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindFloatToolbar_vue_vue_type_style_index_0_id_035dc43e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=template&id=035dc43e&scoped=true":
/*!*********************************************************************************************************************!*\
!*** ./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=template&id=035dc43e&scoped=true ***!
\*********************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindFloatToolbar_vue_vue_type_template_id_035dc43e_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./KmindFloatToolbar.vue?vue&type=template&id=035dc43e&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?vue&type=template&id=035dc43e&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindFloatToolbar_vue_vue_type_template_id_035dc43e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindFloatToolbar_vue_vue_type_template_id_035dc43e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindFloatToolbar/KmindFloatToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue":
/*!**********************************************************************************!*\
!*** ./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue ***!
\**********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AddNodeButton_vue_vue_type_template_id_3124bbe7_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AddNodeButton.vue?vue&type=template&id=3124bbe7&scoped=true */ \"./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=template&id=3124bbe7&scoped=true\");\n/* harmony import */ var _AddNodeButton_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AddNodeButton.vue?vue&type=script&setup=true&lang=js */ \"./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=script&setup=true&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _AddNodeButton_vue_vue_type_style_index_0_id_3124bbe7_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AddNodeButton.vue?vue&type=style&index=0&id=3124bbe7&lang=less&scoped=true */ \"./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=style&index=0&id=3124bbe7&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _AddNodeButton_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _AddNodeButton_vue_vue_type_template_id_3124bbe7_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _AddNodeButton_vue_vue_type_template_id_3124bbe7_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"3124bbe7\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=script&setup=true&lang=js":
/*!*********************************************************************************************************************!*\
!*** ./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=script&setup=true&lang=js ***!
\*********************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AddNodeButton_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./AddNodeButton.vue?vue&type=script&setup=true&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=script&setup=true&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AddNodeButton_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=style&index=0&id=3124bbe7&lang=less&scoped=true":
/*!*******************************************************************************************************************************************!*\
!*** ./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=style&index=0&id=3124bbe7&lang=less&scoped=true ***!
\*******************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AddNodeButton_vue_vue_type_style_index_0_id_3124bbe7_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./AddNodeButton.vue?vue&type=style&index=0&id=3124bbe7&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=style&index=0&id=3124bbe7&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AddNodeButton_vue_vue_type_style_index_0_id_3124bbe7_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AddNodeButton_vue_vue_type_style_index_0_id_3124bbe7_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AddNodeButton_vue_vue_type_style_index_0_id_3124bbe7_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AddNodeButton_vue_vue_type_style_index_0_id_3124bbe7_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=template&id=3124bbe7&scoped=true":
/*!****************************************************************************************************************************!*\
!*** ./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=template&id=3124bbe7&scoped=true ***!
\****************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AddNodeButton_vue_vue_type_template_id_3124bbe7_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib??vue-loader-options!./AddNodeButton.vue?vue&type=template&id=3124bbe7&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?vue&type=template&id=3124bbe7&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AddNodeButton_vue_vue_type_template_id_3124bbe7_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_AddNodeButton_vue_vue_type_template_id_3124bbe7_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindFloatToolbar/components/AddNodeButton.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindHistory/KMindHistory.vue":
/*!*****************************************************************!*\
!*** ./src/pages/Edit/components/KmindHistory/KMindHistory.vue ***!
\*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _KMindHistory_vue_vue_type_template_id_75ed2ea7_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./KMindHistory.vue?vue&type=template&id=75ed2ea7&scoped=true */ \"./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=template&id=75ed2ea7&scoped=true\");\n/* harmony import */ var _KMindHistory_vue_vue_type_script_setup_true_lang_tsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./KMindHistory.vue?vue&type=script&setup=true&lang=tsx */ \"./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=script&setup=true&lang=tsx\");\n/* empty/unused harmony star reexport *//* harmony import */ var _KMindHistory_vue_vue_type_style_index_0_id_75ed2ea7_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./KMindHistory.vue?vue&type=style&index=0&id=75ed2ea7&lang=less&scoped=true */ \"./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=style&index=0&id=75ed2ea7&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _KMindHistory_vue_vue_type_script_setup_true_lang_tsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _KMindHistory_vue_vue_type_template_id_75ed2ea7_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _KMindHistory_vue_vue_type_template_id_75ed2ea7_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"75ed2ea7\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/KmindHistory/KMindHistory.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindHistory/KMindHistory.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=script&setup=true&lang=tsx":
/*!*****************************************************************************************************!*\
!*** ./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=script&setup=true&lang=tsx ***!
\*****************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KMindHistory_vue_vue_type_script_setup_true_lang_tsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./KMindHistory.vue?vue&type=script&setup=true&lang=tsx */ \"./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=script&setup=true&lang=tsx\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KMindHistory_vue_vue_type_script_setup_true_lang_tsx__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindHistory/KMindHistory.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=style&index=0&id=75ed2ea7&lang=less&scoped=true":
/*!**************************************************************************************************************************!*\
!*** ./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=style&index=0&id=75ed2ea7&lang=less&scoped=true ***!
\**************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KMindHistory_vue_vue_type_style_index_0_id_75ed2ea7_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./KMindHistory.vue?vue&type=style&index=0&id=75ed2ea7&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=style&index=0&id=75ed2ea7&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KMindHistory_vue_vue_type_style_index_0_id_75ed2ea7_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KMindHistory_vue_vue_type_style_index_0_id_75ed2ea7_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KMindHistory_vue_vue_type_style_index_0_id_75ed2ea7_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KMindHistory_vue_vue_type_style_index_0_id_75ed2ea7_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindHistory/KMindHistory.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=template&id=75ed2ea7&scoped=true":
/*!***********************************************************************************************************!*\
!*** ./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=template&id=75ed2ea7&scoped=true ***!
\***********************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KMindHistory_vue_vue_type_template_id_75ed2ea7_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./KMindHistory.vue?vue&type=template&id=75ed2ea7&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindHistory/KMindHistory.vue?vue&type=template&id=75ed2ea7&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KMindHistory_vue_vue_type_template_id_75ed2ea7_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KMindHistory_vue_vue_type_template_id_75ed2ea7_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindHistory/KMindHistory.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue":
/*!***************************************************************************!*\
!*** ./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue ***!
\***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _KmindHistoryModal_vue_vue_type_template_id_5531bb55_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./KmindHistoryModal.vue?vue&type=template&id=5531bb55&scoped=true */ \"./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=template&id=5531bb55&scoped=true\");\n/* harmony import */ var _KmindHistoryModal_vue_vue_type_script_setup_true_lang_tsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./KmindHistoryModal.vue?vue&type=script&setup=true&lang=tsx */ \"./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=script&setup=true&lang=tsx\");\n/* empty/unused harmony star reexport *//* harmony import */ var _KmindHistoryModal_vue_vue_type_style_index_0_id_5531bb55_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./KmindHistoryModal.vue?vue&type=style&index=0&id=5531bb55&lang=less&scoped=true */ \"./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=style&index=0&id=5531bb55&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _KmindHistoryModal_vue_vue_type_script_setup_true_lang_tsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _KmindHistoryModal_vue_vue_type_template_id_5531bb55_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _KmindHistoryModal_vue_vue_type_template_id_5531bb55_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"5531bb55\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=script&setup=true&lang=tsx":
/*!***************************************************************************************************************!*\
!*** ./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=script&setup=true&lang=tsx ***!
\***************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindHistoryModal_vue_vue_type_script_setup_true_lang_tsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./KmindHistoryModal.vue?vue&type=script&setup=true&lang=tsx */ \"./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=script&setup=true&lang=tsx\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindHistoryModal_vue_vue_type_script_setup_true_lang_tsx__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=style&index=0&id=5531bb55&lang=less&scoped=true":
/*!************************************************************************************************************************************!*\
!*** ./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=style&index=0&id=5531bb55&lang=less&scoped=true ***!
\************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindHistoryModal_vue_vue_type_style_index_0_id_5531bb55_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./KmindHistoryModal.vue?vue&type=style&index=0&id=5531bb55&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=style&index=0&id=5531bb55&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindHistoryModal_vue_vue_type_style_index_0_id_5531bb55_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindHistoryModal_vue_vue_type_style_index_0_id_5531bb55_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindHistoryModal_vue_vue_type_style_index_0_id_5531bb55_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindHistoryModal_vue_vue_type_style_index_0_id_5531bb55_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=template&id=5531bb55&scoped=true":
/*!*********************************************************************************************************************!*\
!*** ./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=template&id=5531bb55&scoped=true ***!
\*********************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindHistoryModal_vue_vue_type_template_id_5531bb55_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./KmindHistoryModal.vue?vue&type=template&id=5531bb55&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?vue&type=template&id=5531bb55&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindHistoryModal_vue_vue_type_template_id_5531bb55_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindHistoryModal_vue_vue_type_template_id_5531bb55_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindHistoryModal/KmindHistoryModal.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindPreview/KmindPreview.vue":
/*!*****************************************************************!*\
!*** ./src/pages/Edit/components/KmindPreview/KmindPreview.vue ***!
\*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _KmindPreview_vue_vue_type_template_id_207f8b47_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./KmindPreview.vue?vue&type=template&id=207f8b47&scoped=true */ \"./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=template&id=207f8b47&scoped=true\");\n/* harmony import */ var _KmindPreview_vue_vue_type_script_setup_true_lang_tsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./KmindPreview.vue?vue&type=script&setup=true&lang=tsx */ \"./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=script&setup=true&lang=tsx\");\n/* empty/unused harmony star reexport *//* harmony import */ var _KmindPreview_vue_vue_type_style_index_0_id_207f8b47_scoped_true_lang_less__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./KmindPreview.vue?vue&type=style&index=0&id=207f8b47&scoped=true&lang=less */ \"./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=style&index=0&id=207f8b47&scoped=true&lang=less\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _KmindPreview_vue_vue_type_script_setup_true_lang_tsx__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _KmindPreview_vue_vue_type_template_id_207f8b47_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _KmindPreview_vue_vue_type_template_id_207f8b47_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"207f8b47\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/KmindPreview/KmindPreview.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindPreview/KmindPreview.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=script&setup=true&lang=tsx":
/*!*****************************************************************************************************!*\
!*** ./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=script&setup=true&lang=tsx ***!
\*****************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindPreview_vue_vue_type_script_setup_true_lang_tsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./KmindPreview.vue?vue&type=script&setup=true&lang=tsx */ \"./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=script&setup=true&lang=tsx\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindPreview_vue_vue_type_script_setup_true_lang_tsx__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindPreview/KmindPreview.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=style&index=0&id=207f8b47&scoped=true&lang=less":
/*!**************************************************************************************************************************!*\
!*** ./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=style&index=0&id=207f8b47&scoped=true&lang=less ***!
\**************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindPreview_vue_vue_type_style_index_0_id_207f8b47_scoped_true_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./KmindPreview.vue?vue&type=style&index=0&id=207f8b47&scoped=true&lang=less */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=style&index=0&id=207f8b47&scoped=true&lang=less\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindPreview_vue_vue_type_style_index_0_id_207f8b47_scoped_true_lang_less__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindPreview_vue_vue_type_style_index_0_id_207f8b47_scoped_true_lang_less__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindPreview_vue_vue_type_style_index_0_id_207f8b47_scoped_true_lang_less__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindPreview_vue_vue_type_style_index_0_id_207f8b47_scoped_true_lang_less__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindPreview/KmindPreview.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=template&id=207f8b47&scoped=true":
/*!***********************************************************************************************************!*\
!*** ./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=template&id=207f8b47&scoped=true ***!
\***********************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindPreview_vue_vue_type_template_id_207f8b47_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./KmindPreview.vue?vue&type=template&id=207f8b47&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/KmindPreview/KmindPreview.vue?vue&type=template&id=207f8b47&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindPreview_vue_vue_type_template_id_207f8b47_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_KmindPreview_vue_vue_type_template_id_207f8b47_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/KmindPreview/KmindPreview.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/MouseAction.vue":
/*!***************************************************!*\
!*** ./src/pages/Edit/components/MouseAction.vue ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _MouseAction_vue_vue_type_template_id_1a05d65a_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MouseAction.vue?vue&type=template&id=1a05d65a&scoped=true */ \"./src/pages/Edit/components/MouseAction.vue?vue&type=template&id=1a05d65a&scoped=true\");\n/* harmony import */ var _MouseAction_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MouseAction.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/MouseAction.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _MouseAction_vue_vue_type_style_index_0_id_1a05d65a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MouseAction.vue?vue&type=style&index=0&id=1a05d65a&lang=less&scoped=true */ \"./src/pages/Edit/components/MouseAction.vue?vue&type=style&index=0&id=1a05d65a&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _MouseAction_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _MouseAction_vue_vue_type_template_id_1a05d65a_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _MouseAction_vue_vue_type_template_id_1a05d65a_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"1a05d65a\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/MouseAction.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/MouseAction.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/MouseAction.vue?vue&type=script&lang=js":
/*!***************************************************************************!*\
!*** ./src/pages/Edit/components/MouseAction.vue?vue&type=script&lang=js ***!
\***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MouseAction_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./MouseAction.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/MouseAction.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MouseAction_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/MouseAction.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/MouseAction.vue?vue&type=style&index=0&id=1a05d65a&lang=less&scoped=true":
/*!************************************************************************************************************!*\
!*** ./src/pages/Edit/components/MouseAction.vue?vue&type=style&index=0&id=1a05d65a&lang=less&scoped=true ***!
\************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MouseAction_vue_vue_type_style_index_0_id_1a05d65a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./MouseAction.vue?vue&type=style&index=0&id=1a05d65a&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/MouseAction.vue?vue&type=style&index=0&id=1a05d65a&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MouseAction_vue_vue_type_style_index_0_id_1a05d65a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MouseAction_vue_vue_type_style_index_0_id_1a05d65a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MouseAction_vue_vue_type_style_index_0_id_1a05d65a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MouseAction_vue_vue_type_style_index_0_id_1a05d65a_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/MouseAction.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/MouseAction.vue?vue&type=template&id=1a05d65a&scoped=true":
/*!*********************************************************************************************!*\
!*** ./src/pages/Edit/components/MouseAction.vue?vue&type=template&id=1a05d65a&scoped=true ***!
\*********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MouseAction_vue_vue_type_template_id_1a05d65a_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./MouseAction.vue?vue&type=template&id=1a05d65a&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/MouseAction.vue?vue&type=template&id=1a05d65a&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MouseAction_vue_vue_type_template_id_1a05d65a_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MouseAction_vue_vue_type_template_id_1a05d65a_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/MouseAction.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Navigator.vue":
/*!*************************************************!*\
!*** ./src/pages/Edit/components/Navigator.vue ***!
\*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Navigator_vue_vue_type_template_id_20a399ef_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Navigator.vue?vue&type=template&id=20a399ef&scoped=true */ \"./src/pages/Edit/components/Navigator.vue?vue&type=template&id=20a399ef&scoped=true\");\n/* harmony import */ var _Navigator_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Navigator.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Navigator.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Navigator_vue_vue_type_style_index_0_id_20a399ef_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Navigator.vue?vue&type=style&index=0&id=20a399ef&lang=less&scoped=true */ \"./src/pages/Edit/components/Navigator.vue?vue&type=style&index=0&id=20a399ef&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Navigator_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Navigator_vue_vue_type_template_id_20a399ef_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Navigator_vue_vue_type_template_id_20a399ef_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"20a399ef\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Navigator.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Navigator.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Navigator.vue?vue&type=script&lang=js":
/*!*************************************************************************!*\
!*** ./src/pages/Edit/components/Navigator.vue?vue&type=script&lang=js ***!
\*************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Navigator_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Navigator.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Navigator.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Navigator_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Navigator.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Navigator.vue?vue&type=style&index=0&id=20a399ef&lang=less&scoped=true":
/*!**********************************************************************************************************!*\
!*** ./src/pages/Edit/components/Navigator.vue?vue&type=style&index=0&id=20a399ef&lang=less&scoped=true ***!
\**********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Navigator_vue_vue_type_style_index_0_id_20a399ef_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Navigator.vue?vue&type=style&index=0&id=20a399ef&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Navigator.vue?vue&type=style&index=0&id=20a399ef&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Navigator_vue_vue_type_style_index_0_id_20a399ef_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Navigator_vue_vue_type_style_index_0_id_20a399ef_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Navigator_vue_vue_type_style_index_0_id_20a399ef_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Navigator_vue_vue_type_style_index_0_id_20a399ef_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Navigator.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Navigator.vue?vue&type=template&id=20a399ef&scoped=true":
/*!*******************************************************************************************!*\
!*** ./src/pages/Edit/components/Navigator.vue?vue&type=template&id=20a399ef&scoped=true ***!
\*******************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Navigator_vue_vue_type_template_id_20a399ef_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Navigator.vue?vue&type=template&id=20a399ef&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Navigator.vue?vue&type=template&id=20a399ef&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Navigator_vue_vue_type_template_id_20a399ef_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Navigator_vue_vue_type_template_id_20a399ef_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Navigator.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NavigatorToolbar.vue":
/*!********************************************************!*\
!*** ./src/pages/Edit/components/NavigatorToolbar.vue ***!
\********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NavigatorToolbar_vue_vue_type_template_id_92e9ad88_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NavigatorToolbar.vue?vue&type=template&id=92e9ad88&scoped=true */ \"./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=template&id=92e9ad88&scoped=true\");\n/* harmony import */ var _NavigatorToolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NavigatorToolbar.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _NavigatorToolbar_vue_vue_type_style_index_0_id_92e9ad88_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NavigatorToolbar.vue?vue&type=style&index=0&id=92e9ad88&lang=less&scoped=true */ \"./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=style&index=0&id=92e9ad88&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _NavigatorToolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _NavigatorToolbar_vue_vue_type_template_id_92e9ad88_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _NavigatorToolbar_vue_vue_type_template_id_92e9ad88_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"92e9ad88\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/NavigatorToolbar.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NavigatorToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=script&lang=js":
/*!********************************************************************************!*\
!*** ./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=script&lang=js ***!
\********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NavigatorToolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NavigatorToolbar.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NavigatorToolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/NavigatorToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=style&index=0&id=92e9ad88&lang=less&scoped=true":
/*!*****************************************************************************************************************!*\
!*** ./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=style&index=0&id=92e9ad88&lang=less&scoped=true ***!
\*****************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NavigatorToolbar_vue_vue_type_style_index_0_id_92e9ad88_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NavigatorToolbar.vue?vue&type=style&index=0&id=92e9ad88&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=style&index=0&id=92e9ad88&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NavigatorToolbar_vue_vue_type_style_index_0_id_92e9ad88_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NavigatorToolbar_vue_vue_type_style_index_0_id_92e9ad88_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NavigatorToolbar_vue_vue_type_style_index_0_id_92e9ad88_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NavigatorToolbar_vue_vue_type_style_index_0_id_92e9ad88_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NavigatorToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=template&id=92e9ad88&scoped=true":
/*!**************************************************************************************************!*\
!*** ./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=template&id=92e9ad88&scoped=true ***!
\**************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NavigatorToolbar_vue_vue_type_template_id_92e9ad88_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NavigatorToolbar.vue?vue&type=template&id=92e9ad88&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NavigatorToolbar.vue?vue&type=template&id=92e9ad88&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NavigatorToolbar_vue_vue_type_template_id_92e9ad88_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NavigatorToolbar_vue_vue_type_template_id_92e9ad88_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NavigatorToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeAnnotationBtn.vue":
/*!*********************************************************!*\
!*** ./src/pages/Edit/components/NodeAnnotationBtn.vue ***!
\*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NodeAnnotationBtn_vue_vue_type_template_id_47918363_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NodeAnnotationBtn.vue?vue&type=template&id=47918363&scoped=true */ \"./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=template&id=47918363&scoped=true\");\n/* harmony import */ var _NodeAnnotationBtn_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NodeAnnotationBtn.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _NodeAnnotationBtn_vue_vue_type_style_index_0_id_47918363_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NodeAnnotationBtn.vue?vue&type=style&index=0&id=47918363&lang=less&scoped=true */ \"./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=style&index=0&id=47918363&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _NodeAnnotationBtn_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _NodeAnnotationBtn_vue_vue_type_template_id_47918363_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _NodeAnnotationBtn_vue_vue_type_template_id_47918363_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"47918363\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/NodeAnnotationBtn.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeAnnotationBtn.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=script&lang=js":
/*!*********************************************************************************!*\
!*** ./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=script&lang=js ***!
\*********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAnnotationBtn_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeAnnotationBtn.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAnnotationBtn_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeAnnotationBtn.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=style&index=0&id=47918363&lang=less&scoped=true":
/*!******************************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=style&index=0&id=47918363&lang=less&scoped=true ***!
\******************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAnnotationBtn_vue_vue_type_style_index_0_id_47918363_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeAnnotationBtn.vue?vue&type=style&index=0&id=47918363&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=style&index=0&id=47918363&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAnnotationBtn_vue_vue_type_style_index_0_id_47918363_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAnnotationBtn_vue_vue_type_style_index_0_id_47918363_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAnnotationBtn_vue_vue_type_style_index_0_id_47918363_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAnnotationBtn_vue_vue_type_style_index_0_id_47918363_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeAnnotationBtn.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=template&id=47918363&scoped=true":
/*!***************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=template&id=47918363&scoped=true ***!
\***************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAnnotationBtn_vue_vue_type_template_id_47918363_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeAnnotationBtn.vue?vue&type=template&id=47918363&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeAnnotationBtn.vue?vue&type=template&id=47918363&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAnnotationBtn_vue_vue_type_template_id_47918363_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAnnotationBtn_vue_vue_type_template_id_47918363_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeAnnotationBtn.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeAttachment.vue":
/*!******************************************************!*\
!*** ./src/pages/Edit/components/NodeAttachment.vue ***!
\******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NodeAttachment_vue_vue_type_template_id_102b205d_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NodeAttachment.vue?vue&type=template&id=102b205d&scoped=true */ \"./src/pages/Edit/components/NodeAttachment.vue?vue&type=template&id=102b205d&scoped=true\");\n/* harmony import */ var _NodeAttachment_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NodeAttachment.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/NodeAttachment.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _NodeAttachment_vue_vue_type_style_index_0_id_102b205d_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NodeAttachment.vue?vue&type=style&index=0&id=102b205d&lang=less&scoped=true */ \"./src/pages/Edit/components/NodeAttachment.vue?vue&type=style&index=0&id=102b205d&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _NodeAttachment_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _NodeAttachment_vue_vue_type_template_id_102b205d_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _NodeAttachment_vue_vue_type_template_id_102b205d_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"102b205d\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/NodeAttachment.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeAttachment.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeAttachment.vue?vue&type=script&lang=js":
/*!******************************************************************************!*\
!*** ./src/pages/Edit/components/NodeAttachment.vue?vue&type=script&lang=js ***!
\******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAttachment_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeAttachment.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeAttachment.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAttachment_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeAttachment.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeAttachment.vue?vue&type=style&index=0&id=102b205d&lang=less&scoped=true":
/*!***************************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeAttachment.vue?vue&type=style&index=0&id=102b205d&lang=less&scoped=true ***!
\***************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAttachment_vue_vue_type_style_index_0_id_102b205d_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeAttachment.vue?vue&type=style&index=0&id=102b205d&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeAttachment.vue?vue&type=style&index=0&id=102b205d&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAttachment_vue_vue_type_style_index_0_id_102b205d_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAttachment_vue_vue_type_style_index_0_id_102b205d_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAttachment_vue_vue_type_style_index_0_id_102b205d_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAttachment_vue_vue_type_style_index_0_id_102b205d_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeAttachment.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeAttachment.vue?vue&type=template&id=102b205d&scoped=true":
/*!************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeAttachment.vue?vue&type=template&id=102b205d&scoped=true ***!
\************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAttachment_vue_vue_type_template_id_102b205d_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeAttachment.vue?vue&type=template&id=102b205d&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeAttachment.vue?vue&type=template&id=102b205d&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAttachment_vue_vue_type_template_id_102b205d_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeAttachment_vue_vue_type_template_id_102b205d_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeAttachment.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeHyperlink.vue":
/*!*****************************************************!*\
!*** ./src/pages/Edit/components/NodeHyperlink.vue ***!
\*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NodeHyperlink_vue_vue_type_template_id_73163d9c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NodeHyperlink.vue?vue&type=template&id=73163d9c&scoped=true */ \"./src/pages/Edit/components/NodeHyperlink.vue?vue&type=template&id=73163d9c&scoped=true\");\n/* harmony import */ var _NodeHyperlink_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NodeHyperlink.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/NodeHyperlink.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _NodeHyperlink_vue_vue_type_style_index_0_id_73163d9c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NodeHyperlink.vue?vue&type=style&index=0&id=73163d9c&lang=less&scoped=true */ \"./src/pages/Edit/components/NodeHyperlink.vue?vue&type=style&index=0&id=73163d9c&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _NodeHyperlink_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _NodeHyperlink_vue_vue_type_template_id_73163d9c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _NodeHyperlink_vue_vue_type_template_id_73163d9c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"73163d9c\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/NodeHyperlink.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeHyperlink.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeHyperlink.vue?vue&type=script&lang=js":
/*!*****************************************************************************!*\
!*** ./src/pages/Edit/components/NodeHyperlink.vue?vue&type=script&lang=js ***!
\*****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeHyperlink_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeHyperlink.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeHyperlink.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeHyperlink_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeHyperlink.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeHyperlink.vue?vue&type=style&index=0&id=73163d9c&lang=less&scoped=true":
/*!**************************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeHyperlink.vue?vue&type=style&index=0&id=73163d9c&lang=less&scoped=true ***!
\**************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeHyperlink_vue_vue_type_style_index_0_id_73163d9c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeHyperlink.vue?vue&type=style&index=0&id=73163d9c&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeHyperlink.vue?vue&type=style&index=0&id=73163d9c&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeHyperlink_vue_vue_type_style_index_0_id_73163d9c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeHyperlink_vue_vue_type_style_index_0_id_73163d9c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeHyperlink_vue_vue_type_style_index_0_id_73163d9c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeHyperlink_vue_vue_type_style_index_0_id_73163d9c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeHyperlink.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeHyperlink.vue?vue&type=template&id=73163d9c&scoped=true":
/*!***********************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeHyperlink.vue?vue&type=template&id=73163d9c&scoped=true ***!
\***********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeHyperlink_vue_vue_type_template_id_73163d9c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeHyperlink.vue?vue&type=template&id=73163d9c&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeHyperlink.vue?vue&type=template&id=73163d9c&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeHyperlink_vue_vue_type_template_id_73163d9c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeHyperlink_vue_vue_type_template_id_73163d9c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeHyperlink.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeIcon.vue":
/*!************************************************!*\
!*** ./src/pages/Edit/components/NodeIcon.vue ***!
\************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NodeIcon_vue_vue_type_template_id_1e192a33_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NodeIcon.vue?vue&type=template&id=1e192a33&scoped=true */ \"./src/pages/Edit/components/NodeIcon.vue?vue&type=template&id=1e192a33&scoped=true\");\n/* harmony import */ var _NodeIcon_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NodeIcon.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/NodeIcon.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _NodeIcon_vue_vue_type_style_index_0_id_1e192a33_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NodeIcon.vue?vue&type=style&index=0&id=1e192a33&lang=less&scoped=true */ \"./src/pages/Edit/components/NodeIcon.vue?vue&type=style&index=0&id=1e192a33&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _NodeIcon_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _NodeIcon_vue_vue_type_template_id_1e192a33_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _NodeIcon_vue_vue_type_template_id_1e192a33_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"1e192a33\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/NodeIcon.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIcon.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeIcon.vue?vue&type=script&lang=js":
/*!************************************************************************!*\
!*** ./src/pages/Edit/components/NodeIcon.vue?vue&type=script&lang=js ***!
\************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIcon_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeIcon.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIcon.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIcon_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIcon.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeIcon.vue?vue&type=style&index=0&id=1e192a33&lang=less&scoped=true":
/*!*********************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeIcon.vue?vue&type=style&index=0&id=1e192a33&lang=less&scoped=true ***!
\*********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIcon_vue_vue_type_style_index_0_id_1e192a33_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeIcon.vue?vue&type=style&index=0&id=1e192a33&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIcon.vue?vue&type=style&index=0&id=1e192a33&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIcon_vue_vue_type_style_index_0_id_1e192a33_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIcon_vue_vue_type_style_index_0_id_1e192a33_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIcon_vue_vue_type_style_index_0_id_1e192a33_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIcon_vue_vue_type_style_index_0_id_1e192a33_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIcon.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeIcon.vue?vue&type=template&id=1e192a33&scoped=true":
/*!******************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeIcon.vue?vue&type=template&id=1e192a33&scoped=true ***!
\******************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIcon_vue_vue_type_template_id_1e192a33_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeIcon.vue?vue&type=template&id=1e192a33&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIcon.vue?vue&type=template&id=1e192a33&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIcon_vue_vue_type_template_id_1e192a33_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIcon_vue_vue_type_template_id_1e192a33_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIcon.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeIconSidebar.vue":
/*!*******************************************************!*\
!*** ./src/pages/Edit/components/NodeIconSidebar.vue ***!
\*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NodeIconSidebar_vue_vue_type_template_id_57cd2bd9_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NodeIconSidebar.vue?vue&type=template&id=57cd2bd9&scoped=true */ \"./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=template&id=57cd2bd9&scoped=true\");\n/* harmony import */ var _NodeIconSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NodeIconSidebar.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _NodeIconSidebar_vue_vue_type_style_index_0_id_57cd2bd9_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NodeIconSidebar.vue?vue&type=style&index=0&id=57cd2bd9&lang=less&scoped=true */ \"./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=style&index=0&id=57cd2bd9&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _NodeIconSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _NodeIconSidebar_vue_vue_type_template_id_57cd2bd9_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _NodeIconSidebar_vue_vue_type_template_id_57cd2bd9_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"57cd2bd9\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/NodeIconSidebar.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIconSidebar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=script&lang=js":
/*!*******************************************************************************!*\
!*** ./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=script&lang=js ***!
\*******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeIconSidebar.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIconSidebar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=style&index=0&id=57cd2bd9&lang=less&scoped=true":
/*!****************************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=style&index=0&id=57cd2bd9&lang=less&scoped=true ***!
\****************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconSidebar_vue_vue_type_style_index_0_id_57cd2bd9_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeIconSidebar.vue?vue&type=style&index=0&id=57cd2bd9&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=style&index=0&id=57cd2bd9&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconSidebar_vue_vue_type_style_index_0_id_57cd2bd9_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconSidebar_vue_vue_type_style_index_0_id_57cd2bd9_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconSidebar_vue_vue_type_style_index_0_id_57cd2bd9_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconSidebar_vue_vue_type_style_index_0_id_57cd2bd9_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIconSidebar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=template&id=57cd2bd9&scoped=true":
/*!*************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=template&id=57cd2bd9&scoped=true ***!
\*************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconSidebar_vue_vue_type_template_id_57cd2bd9_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeIconSidebar.vue?vue&type=template&id=57cd2bd9&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIconSidebar.vue?vue&type=template&id=57cd2bd9&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconSidebar_vue_vue_type_template_id_57cd2bd9_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconSidebar_vue_vue_type_template_id_57cd2bd9_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIconSidebar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeIconToolbar.vue":
/*!*******************************************************!*\
!*** ./src/pages/Edit/components/NodeIconToolbar.vue ***!
\*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NodeIconToolbar_vue_vue_type_template_id_46f8f710_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NodeIconToolbar.vue?vue&type=template&id=46f8f710&scoped=true */ \"./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=template&id=46f8f710&scoped=true\");\n/* harmony import */ var _NodeIconToolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NodeIconToolbar.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _NodeIconToolbar_vue_vue_type_style_index_0_id_46f8f710_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NodeIconToolbar.vue?vue&type=style&index=0&id=46f8f710&lang=less&scoped=true */ \"./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=style&index=0&id=46f8f710&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _NodeIconToolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _NodeIconToolbar_vue_vue_type_template_id_46f8f710_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _NodeIconToolbar_vue_vue_type_template_id_46f8f710_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"46f8f710\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/NodeIconToolbar.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIconToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=script&lang=js":
/*!*******************************************************************************!*\
!*** ./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=script&lang=js ***!
\*******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconToolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeIconToolbar.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconToolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIconToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=style&index=0&id=46f8f710&lang=less&scoped=true":
/*!****************************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=style&index=0&id=46f8f710&lang=less&scoped=true ***!
\****************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconToolbar_vue_vue_type_style_index_0_id_46f8f710_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeIconToolbar.vue?vue&type=style&index=0&id=46f8f710&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=style&index=0&id=46f8f710&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconToolbar_vue_vue_type_style_index_0_id_46f8f710_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconToolbar_vue_vue_type_style_index_0_id_46f8f710_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconToolbar_vue_vue_type_style_index_0_id_46f8f710_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconToolbar_vue_vue_type_style_index_0_id_46f8f710_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIconToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=template&id=46f8f710&scoped=true":
/*!*************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=template&id=46f8f710&scoped=true ***!
\*************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconToolbar_vue_vue_type_template_id_46f8f710_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeIconToolbar.vue?vue&type=template&id=46f8f710&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeIconToolbar.vue?vue&type=template&id=46f8f710&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconToolbar_vue_vue_type_template_id_46f8f710_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeIconToolbar_vue_vue_type_template_id_46f8f710_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeIconToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeImage.vue":
/*!*************************************************!*\
!*** ./src/pages/Edit/components/NodeImage.vue ***!
\*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NodeImage_vue_vue_type_template_id_7395e9de_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NodeImage.vue?vue&type=template&id=7395e9de&scoped=true */ \"./src/pages/Edit/components/NodeImage.vue?vue&type=template&id=7395e9de&scoped=true\");\n/* harmony import */ var _NodeImage_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NodeImage.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/NodeImage.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _NodeImage_vue_vue_type_style_index_0_id_7395e9de_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NodeImage.vue?vue&type=style&index=0&id=7395e9de&lang=less&scoped=true */ \"./src/pages/Edit/components/NodeImage.vue?vue&type=style&index=0&id=7395e9de&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _NodeImage_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _NodeImage_vue_vue_type_template_id_7395e9de_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _NodeImage_vue_vue_type_template_id_7395e9de_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"7395e9de\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/NodeImage.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImage.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeImage.vue?vue&type=script&lang=js":
/*!*************************************************************************!*\
!*** ./src/pages/Edit/components/NodeImage.vue?vue&type=script&lang=js ***!
\*************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImage_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeImage.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImage.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImage_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImage.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeImage.vue?vue&type=style&index=0&id=7395e9de&lang=less&scoped=true":
/*!**********************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeImage.vue?vue&type=style&index=0&id=7395e9de&lang=less&scoped=true ***!
\**********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImage_vue_vue_type_style_index_0_id_7395e9de_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeImage.vue?vue&type=style&index=0&id=7395e9de&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImage.vue?vue&type=style&index=0&id=7395e9de&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImage_vue_vue_type_style_index_0_id_7395e9de_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImage_vue_vue_type_style_index_0_id_7395e9de_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImage_vue_vue_type_style_index_0_id_7395e9de_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImage_vue_vue_type_style_index_0_id_7395e9de_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImage.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeImage.vue?vue&type=template&id=7395e9de&scoped=true":
/*!*******************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeImage.vue?vue&type=template&id=7395e9de&scoped=true ***!
\*******************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImage_vue_vue_type_template_id_7395e9de_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeImage.vue?vue&type=template&id=7395e9de&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImage.vue?vue&type=template&id=7395e9de&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImage_vue_vue_type_template_id_7395e9de_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImage_vue_vue_type_template_id_7395e9de_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImage.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeImgPlacementToolbar.vue":
/*!***************************************************************!*\
!*** ./src/pages/Edit/components/NodeImgPlacementToolbar.vue ***!
\***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NodeImgPlacementToolbar_vue_vue_type_template_id_e543fe22_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NodeImgPlacementToolbar.vue?vue&type=template&id=e543fe22&scoped=true */ \"./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=template&id=e543fe22&scoped=true\");\n/* harmony import */ var _NodeImgPlacementToolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NodeImgPlacementToolbar.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _NodeImgPlacementToolbar_vue_vue_type_style_index_0_id_e543fe22_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NodeImgPlacementToolbar.vue?vue&type=style&index=0&id=e543fe22&lang=less&scoped=true */ \"./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=style&index=0&id=e543fe22&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _NodeImgPlacementToolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _NodeImgPlacementToolbar_vue_vue_type_template_id_e543fe22_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _NodeImgPlacementToolbar_vue_vue_type_template_id_e543fe22_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e543fe22\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/NodeImgPlacementToolbar.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImgPlacementToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=script&lang=js":
/*!***************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=script&lang=js ***!
\***************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImgPlacementToolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeImgPlacementToolbar.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImgPlacementToolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImgPlacementToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=style&index=0&id=e543fe22&lang=less&scoped=true":
/*!************************************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=style&index=0&id=e543fe22&lang=less&scoped=true ***!
\************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImgPlacementToolbar_vue_vue_type_style_index_0_id_e543fe22_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeImgPlacementToolbar.vue?vue&type=style&index=0&id=e543fe22&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=style&index=0&id=e543fe22&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImgPlacementToolbar_vue_vue_type_style_index_0_id_e543fe22_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImgPlacementToolbar_vue_vue_type_style_index_0_id_e543fe22_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImgPlacementToolbar_vue_vue_type_style_index_0_id_e543fe22_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImgPlacementToolbar_vue_vue_type_style_index_0_id_e543fe22_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImgPlacementToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=template&id=e543fe22&scoped=true":
/*!*********************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=template&id=e543fe22&scoped=true ***!
\*********************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImgPlacementToolbar_vue_vue_type_template_id_e543fe22_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeImgPlacementToolbar.vue?vue&type=template&id=e543fe22&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImgPlacementToolbar.vue?vue&type=template&id=e543fe22&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImgPlacementToolbar_vue_vue_type_template_id_e543fe22_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImgPlacementToolbar_vue_vue_type_template_id_e543fe22_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImgPlacementToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeImgPreview.vue":
/*!******************************************************!*\
!*** ./src/pages/Edit/components/NodeImgPreview.vue ***!
\******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NodeImgPreview_vue_vue_type_template_id_512178bf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NodeImgPreview.vue?vue&type=template&id=512178bf */ \"./src/pages/Edit/components/NodeImgPreview.vue?vue&type=template&id=512178bf\");\n/* harmony import */ var _NodeImgPreview_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NodeImgPreview.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/NodeImgPreview.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _NodeImgPreview_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _NodeImgPreview_vue_vue_type_template_id_512178bf__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _NodeImgPreview_vue_vue_type_template_id_512178bf__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/NodeImgPreview.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImgPreview.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeImgPreview.vue?vue&type=script&lang=js":
/*!******************************************************************************!*\
!*** ./src/pages/Edit/components/NodeImgPreview.vue?vue&type=script&lang=js ***!
\******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImgPreview_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeImgPreview.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImgPreview.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImgPreview_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImgPreview.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeImgPreview.vue?vue&type=template&id=512178bf":
/*!************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeImgPreview.vue?vue&type=template&id=512178bf ***!
\************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImgPreview_vue_vue_type_template_id_512178bf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeImgPreview.vue?vue&type=template&id=512178bf */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeImgPreview.vue?vue&type=template&id=512178bf\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImgPreview_vue_vue_type_template_id_512178bf__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeImgPreview_vue_vue_type_template_id_512178bf__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeImgPreview.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeNote.vue":
/*!************************************************!*\
!*** ./src/pages/Edit/components/NodeNote.vue ***!
\************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NodeNote_vue_vue_type_template_id_af598da8_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NodeNote.vue?vue&type=template&id=af598da8&scoped=true */ \"./src/pages/Edit/components/NodeNote.vue?vue&type=template&id=af598da8&scoped=true\");\n/* harmony import */ var _NodeNote_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NodeNote.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/NodeNote.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _NodeNote_vue_vue_type_style_index_0_id_af598da8_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NodeNote.vue?vue&type=style&index=0&id=af598da8&lang=less&scoped=true */ \"./src/pages/Edit/components/NodeNote.vue?vue&type=style&index=0&id=af598da8&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _NodeNote_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _NodeNote_vue_vue_type_template_id_af598da8_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _NodeNote_vue_vue_type_template_id_af598da8_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"af598da8\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/NodeNote.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeNote.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeNote.vue?vue&type=script&lang=js":
/*!************************************************************************!*\
!*** ./src/pages/Edit/components/NodeNote.vue?vue&type=script&lang=js ***!
\************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNote_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeNote.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeNote.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNote_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeNote.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeNote.vue?vue&type=style&index=0&id=af598da8&lang=less&scoped=true":
/*!*********************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeNote.vue?vue&type=style&index=0&id=af598da8&lang=less&scoped=true ***!
\*********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNote_vue_vue_type_style_index_0_id_af598da8_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeNote.vue?vue&type=style&index=0&id=af598da8&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeNote.vue?vue&type=style&index=0&id=af598da8&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNote_vue_vue_type_style_index_0_id_af598da8_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNote_vue_vue_type_style_index_0_id_af598da8_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNote_vue_vue_type_style_index_0_id_af598da8_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNote_vue_vue_type_style_index_0_id_af598da8_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeNote.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeNote.vue?vue&type=template&id=af598da8&scoped=true":
/*!******************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeNote.vue?vue&type=template&id=af598da8&scoped=true ***!
\******************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNote_vue_vue_type_template_id_af598da8_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeNote.vue?vue&type=template&id=af598da8&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeNote.vue?vue&type=template&id=af598da8&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNote_vue_vue_type_template_id_af598da8_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNote_vue_vue_type_template_id_af598da8_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeNote.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeNoteContentShow.vue":
/*!***********************************************************!*\
!*** ./src/pages/Edit/components/NodeNoteContentShow.vue ***!
\***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NodeNoteContentShow_vue_vue_type_template_id_6b66390c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NodeNoteContentShow.vue?vue&type=template&id=6b66390c&scoped=true */ \"./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=template&id=6b66390c&scoped=true\");\n/* harmony import */ var _NodeNoteContentShow_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NodeNoteContentShow.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _NodeNoteContentShow_vue_vue_type_style_index_0_id_6b66390c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NodeNoteContentShow.vue?vue&type=style&index=0&id=6b66390c&lang=less&scoped=true */ \"./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=style&index=0&id=6b66390c&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _NodeNoteContentShow_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _NodeNoteContentShow_vue_vue_type_template_id_6b66390c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _NodeNoteContentShow_vue_vue_type_template_id_6b66390c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"6b66390c\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/NodeNoteContentShow.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeNoteContentShow.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=script&lang=js":
/*!***********************************************************************************!*\
!*** ./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=script&lang=js ***!
\***********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNoteContentShow_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeNoteContentShow.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNoteContentShow_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeNoteContentShow.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=style&index=0&id=6b66390c&lang=less&scoped=true":
/*!********************************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=style&index=0&id=6b66390c&lang=less&scoped=true ***!
\********************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNoteContentShow_vue_vue_type_style_index_0_id_6b66390c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeNoteContentShow.vue?vue&type=style&index=0&id=6b66390c&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=style&index=0&id=6b66390c&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNoteContentShow_vue_vue_type_style_index_0_id_6b66390c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNoteContentShow_vue_vue_type_style_index_0_id_6b66390c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNoteContentShow_vue_vue_type_style_index_0_id_6b66390c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNoteContentShow_vue_vue_type_style_index_0_id_6b66390c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeNoteContentShow.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=template&id=6b66390c&scoped=true":
/*!*****************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=template&id=6b66390c&scoped=true ***!
\*****************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNoteContentShow_vue_vue_type_template_id_6b66390c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeNoteContentShow.vue?vue&type=template&id=6b66390c&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeNoteContentShow.vue?vue&type=template&id=6b66390c&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNoteContentShow_vue_vue_type_template_id_6b66390c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeNoteContentShow_vue_vue_type_template_id_6b66390c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeNoteContentShow.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeOuterFrame.vue":
/*!******************************************************!*\
!*** ./src/pages/Edit/components/NodeOuterFrame.vue ***!
\******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NodeOuterFrame_vue_vue_type_template_id_7cdd956c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NodeOuterFrame.vue?vue&type=template&id=7cdd956c&scoped=true */ \"./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=template&id=7cdd956c&scoped=true\");\n/* harmony import */ var _NodeOuterFrame_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NodeOuterFrame.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _NodeOuterFrame_vue_vue_type_style_index_0_id_7cdd956c_lang_less__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NodeOuterFrame.vue?vue&type=style&index=0&id=7cdd956c&lang=less */ \"./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=0&id=7cdd956c&lang=less\");\n/* harmony import */ var _NodeOuterFrame_vue_vue_type_style_index_1_id_7cdd956c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./NodeOuterFrame.vue?vue&type=style&index=1&id=7cdd956c&lang=less&scoped=true */ \"./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=1&id=7cdd956c&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(\n _NodeOuterFrame_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _NodeOuterFrame_vue_vue_type_template_id_7cdd956c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _NodeOuterFrame_vue_vue_type_template_id_7cdd956c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"7cdd956c\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/NodeOuterFrame.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeOuterFrame.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=script&lang=js":
/*!******************************************************************************!*\
!*** ./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=script&lang=js ***!
\******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeOuterFrame_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeOuterFrame.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeOuterFrame_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeOuterFrame.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=0&id=7cdd956c&lang=less":
/*!***************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=0&id=7cdd956c&lang=less ***!
\***************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeOuterFrame_vue_vue_type_style_index_0_id_7cdd956c_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeOuterFrame.vue?vue&type=style&index=0&id=7cdd956c&lang=less */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=0&id=7cdd956c&lang=less\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeOuterFrame_vue_vue_type_style_index_0_id_7cdd956c_lang_less__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeOuterFrame_vue_vue_type_style_index_0_id_7cdd956c_lang_less__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeOuterFrame_vue_vue_type_style_index_0_id_7cdd956c_lang_less__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeOuterFrame_vue_vue_type_style_index_0_id_7cdd956c_lang_less__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeOuterFrame.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=1&id=7cdd956c&lang=less&scoped=true":
/*!***************************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=1&id=7cdd956c&lang=less&scoped=true ***!
\***************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeOuterFrame_vue_vue_type_style_index_1_id_7cdd956c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeOuterFrame.vue?vue&type=style&index=1&id=7cdd956c&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=style&index=1&id=7cdd956c&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeOuterFrame_vue_vue_type_style_index_1_id_7cdd956c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeOuterFrame_vue_vue_type_style_index_1_id_7cdd956c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeOuterFrame_vue_vue_type_style_index_1_id_7cdd956c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeOuterFrame_vue_vue_type_style_index_1_id_7cdd956c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeOuterFrame.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=template&id=7cdd956c&scoped=true":
/*!************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=template&id=7cdd956c&scoped=true ***!
\************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeOuterFrame_vue_vue_type_template_id_7cdd956c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeOuterFrame.vue?vue&type=template&id=7cdd956c&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeOuterFrame.vue?vue&type=template&id=7cdd956c&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeOuterFrame_vue_vue_type_template_id_7cdd956c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeOuterFrame_vue_vue_type_template_id_7cdd956c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeOuterFrame.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeTag.vue":
/*!***********************************************!*\
!*** ./src/pages/Edit/components/NodeTag.vue ***!
\***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NodeTag_vue_vue_type_template_id_a37d0d60_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NodeTag.vue?vue&type=template&id=a37d0d60&scoped=true */ \"./src/pages/Edit/components/NodeTag.vue?vue&type=template&id=a37d0d60&scoped=true\");\n/* harmony import */ var _NodeTag_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NodeTag.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/NodeTag.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _NodeTag_vue_vue_type_style_index_0_id_a37d0d60_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NodeTag.vue?vue&type=style&index=0&id=a37d0d60&lang=less&scoped=true */ \"./src/pages/Edit/components/NodeTag.vue?vue&type=style&index=0&id=a37d0d60&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _NodeTag_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _NodeTag_vue_vue_type_template_id_a37d0d60_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _NodeTag_vue_vue_type_template_id_a37d0d60_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"a37d0d60\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/NodeTag.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeTag.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeTag.vue?vue&type=script&lang=js":
/*!***********************************************************************!*\
!*** ./src/pages/Edit/components/NodeTag.vue?vue&type=script&lang=js ***!
\***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTag_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeTag.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeTag.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTag_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeTag.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeTag.vue?vue&type=style&index=0&id=a37d0d60&lang=less&scoped=true":
/*!********************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeTag.vue?vue&type=style&index=0&id=a37d0d60&lang=less&scoped=true ***!
\********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTag_vue_vue_type_style_index_0_id_a37d0d60_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeTag.vue?vue&type=style&index=0&id=a37d0d60&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeTag.vue?vue&type=style&index=0&id=a37d0d60&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTag_vue_vue_type_style_index_0_id_a37d0d60_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTag_vue_vue_type_style_index_0_id_a37d0d60_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTag_vue_vue_type_style_index_0_id_a37d0d60_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTag_vue_vue_type_style_index_0_id_a37d0d60_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeTag.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeTag.vue?vue&type=template&id=a37d0d60&scoped=true":
/*!*****************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeTag.vue?vue&type=template&id=a37d0d60&scoped=true ***!
\*****************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTag_vue_vue_type_template_id_a37d0d60_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeTag.vue?vue&type=template&id=a37d0d60&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeTag.vue?vue&type=template&id=a37d0d60&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTag_vue_vue_type_template_id_a37d0d60_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTag_vue_vue_type_template_id_a37d0d60_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeTag.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeTagStyle.vue":
/*!****************************************************!*\
!*** ./src/pages/Edit/components/NodeTagStyle.vue ***!
\****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NodeTagStyle_vue_vue_type_template_id_cecf481e_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NodeTagStyle.vue?vue&type=template&id=cecf481e&scoped=true */ \"./src/pages/Edit/components/NodeTagStyle.vue?vue&type=template&id=cecf481e&scoped=true\");\n/* harmony import */ var _NodeTagStyle_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NodeTagStyle.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/NodeTagStyle.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _NodeTagStyle_vue_vue_type_style_index_0_id_cecf481e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NodeTagStyle.vue?vue&type=style&index=0&id=cecf481e&lang=less&scoped=true */ \"./src/pages/Edit/components/NodeTagStyle.vue?vue&type=style&index=0&id=cecf481e&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _NodeTagStyle_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _NodeTagStyle_vue_vue_type_template_id_cecf481e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _NodeTagStyle_vue_vue_type_template_id_cecf481e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"cecf481e\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/NodeTagStyle.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeTagStyle.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeTagStyle.vue?vue&type=script&lang=js":
/*!****************************************************************************!*\
!*** ./src/pages/Edit/components/NodeTagStyle.vue?vue&type=script&lang=js ***!
\****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTagStyle_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeTagStyle.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeTagStyle.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTagStyle_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeTagStyle.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeTagStyle.vue?vue&type=style&index=0&id=cecf481e&lang=less&scoped=true":
/*!*************************************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeTagStyle.vue?vue&type=style&index=0&id=cecf481e&lang=less&scoped=true ***!
\*************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTagStyle_vue_vue_type_style_index_0_id_cecf481e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeTagStyle.vue?vue&type=style&index=0&id=cecf481e&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeTagStyle.vue?vue&type=style&index=0&id=cecf481e&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTagStyle_vue_vue_type_style_index_0_id_cecf481e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTagStyle_vue_vue_type_style_index_0_id_cecf481e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTagStyle_vue_vue_type_style_index_0_id_cecf481e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTagStyle_vue_vue_type_style_index_0_id_cecf481e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeTagStyle.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/NodeTagStyle.vue?vue&type=template&id=cecf481e&scoped=true":
/*!**********************************************************************************************!*\
!*** ./src/pages/Edit/components/NodeTagStyle.vue?vue&type=template&id=cecf481e&scoped=true ***!
\**********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTagStyle_vue_vue_type_template_id_cecf481e_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./NodeTagStyle.vue?vue&type=template&id=cecf481e&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/NodeTagStyle.vue?vue&type=template&id=cecf481e&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTagStyle_vue_vue_type_template_id_cecf481e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_NodeTagStyle_vue_vue_type_template_id_cecf481e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/NodeTagStyle.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/OpenSiyuanFloat/index.vue":
/*!*************************************************************!*\
!*** ./src/pages/Edit/components/OpenSiyuanFloat/index.vue ***!
\*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_9136dda4_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=9136dda4&scoped=true */ \"./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=template&id=9136dda4&scoped=true\");\n/* harmony import */ var _index_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=ts&setup=true */ \"./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=script&lang=ts&setup=true\");\n/* empty/unused harmony star reexport *//* harmony import */ var _index_vue_vue_type_style_index_0_id_9136dda4_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.vue?vue&type=style&index=0&id=9136dda4&lang=less&scoped=true */ \"./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=style&index=0&id=9136dda4&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _index_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _index_vue_vue_type_template_id_9136dda4_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _index_vue_vue_type_template_id_9136dda4_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"9136dda4\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/OpenSiyuanFloat/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OpenSiyuanFloat/index.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=script&lang=ts&setup=true":
/*!************************************************************************************************!*\
!*** ./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=script&lang=ts&setup=true ***!
\************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./index.vue?vue&type=script&lang=ts&setup=true */ \"./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=script&lang=ts&setup=true\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_ts_setup_true__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/OpenSiyuanFloat/index.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=style&index=0&id=9136dda4&lang=less&scoped=true":
/*!**********************************************************************************************************************!*\
!*** ./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=style&index=0&id=9136dda4&lang=less&scoped=true ***!
\**********************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_9136dda4_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./index.vue?vue&type=style&index=0&id=9136dda4&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=style&index=0&id=9136dda4&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_9136dda4_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_9136dda4_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_9136dda4_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_9136dda4_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OpenSiyuanFloat/index.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=template&id=9136dda4&scoped=true":
/*!*******************************************************************************************************!*\
!*** ./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=template&id=9136dda4&scoped=true ***!
\*******************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_9136dda4_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=9136dda4&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OpenSiyuanFloat/index.vue?vue&type=template&id=9136dda4&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_9136dda4_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_9136dda4_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OpenSiyuanFloat/index.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Outline.vue":
/*!***********************************************!*\
!*** ./src/pages/Edit/components/Outline.vue ***!
\***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Outline_vue_vue_type_template_id_f578ab4c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Outline.vue?vue&type=template&id=f578ab4c&scoped=true */ \"./src/pages/Edit/components/Outline.vue?vue&type=template&id=f578ab4c&scoped=true\");\n/* harmony import */ var _Outline_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Outline.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Outline.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Outline_vue_vue_type_style_index_0_id_f578ab4c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Outline.vue?vue&type=style&index=0&id=f578ab4c&lang=less&scoped=true */ \"./src/pages/Edit/components/Outline.vue?vue&type=style&index=0&id=f578ab4c&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Outline_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Outline_vue_vue_type_template_id_f578ab4c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Outline_vue_vue_type_template_id_f578ab4c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"f578ab4c\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Outline.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Outline.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Outline.vue?vue&type=script&lang=js":
/*!***********************************************************************!*\
!*** ./src/pages/Edit/components/Outline.vue?vue&type=script&lang=js ***!
\***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Outline_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Outline.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Outline.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Outline_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Outline.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Outline.vue?vue&type=style&index=0&id=f578ab4c&lang=less&scoped=true":
/*!********************************************************************************************************!*\
!*** ./src/pages/Edit/components/Outline.vue?vue&type=style&index=0&id=f578ab4c&lang=less&scoped=true ***!
\********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Outline_vue_vue_type_style_index_0_id_f578ab4c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Outline.vue?vue&type=style&index=0&id=f578ab4c&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Outline.vue?vue&type=style&index=0&id=f578ab4c&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Outline_vue_vue_type_style_index_0_id_f578ab4c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Outline_vue_vue_type_style_index_0_id_f578ab4c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Outline_vue_vue_type_style_index_0_id_f578ab4c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Outline_vue_vue_type_style_index_0_id_f578ab4c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Outline.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Outline.vue?vue&type=template&id=f578ab4c&scoped=true":
/*!*****************************************************************************************!*\
!*** ./src/pages/Edit/components/Outline.vue?vue&type=template&id=f578ab4c&scoped=true ***!
\*****************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Outline_vue_vue_type_template_id_f578ab4c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Outline.vue?vue&type=template&id=f578ab4c&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Outline.vue?vue&type=template&id=f578ab4c&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Outline_vue_vue_type_template_id_f578ab4c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Outline_vue_vue_type_template_id_f578ab4c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Outline.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/OutlineEdit.vue":
/*!***************************************************!*\
!*** ./src/pages/Edit/components/OutlineEdit.vue ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _OutlineEdit_vue_vue_type_template_id_15cdb684_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./OutlineEdit.vue?vue&type=template&id=15cdb684&scoped=true */ \"./src/pages/Edit/components/OutlineEdit.vue?vue&type=template&id=15cdb684&scoped=true\");\n/* harmony import */ var _OutlineEdit_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./OutlineEdit.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/OutlineEdit.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _OutlineEdit_vue_vue_type_style_index_0_id_15cdb684_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./OutlineEdit.vue?vue&type=style&index=0&id=15cdb684&lang=less&scoped=true */ \"./src/pages/Edit/components/OutlineEdit.vue?vue&type=style&index=0&id=15cdb684&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _OutlineEdit_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _OutlineEdit_vue_vue_type_template_id_15cdb684_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _OutlineEdit_vue_vue_type_template_id_15cdb684_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"15cdb684\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/OutlineEdit.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OutlineEdit.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/OutlineEdit.vue?vue&type=script&lang=js":
/*!***************************************************************************!*\
!*** ./src/pages/Edit/components/OutlineEdit.vue?vue&type=script&lang=js ***!
\***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineEdit_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./OutlineEdit.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OutlineEdit.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineEdit_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/OutlineEdit.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/OutlineEdit.vue?vue&type=style&index=0&id=15cdb684&lang=less&scoped=true":
/*!************************************************************************************************************!*\
!*** ./src/pages/Edit/components/OutlineEdit.vue?vue&type=style&index=0&id=15cdb684&lang=less&scoped=true ***!
\************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineEdit_vue_vue_type_style_index_0_id_15cdb684_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./OutlineEdit.vue?vue&type=style&index=0&id=15cdb684&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OutlineEdit.vue?vue&type=style&index=0&id=15cdb684&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineEdit_vue_vue_type_style_index_0_id_15cdb684_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineEdit_vue_vue_type_style_index_0_id_15cdb684_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineEdit_vue_vue_type_style_index_0_id_15cdb684_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineEdit_vue_vue_type_style_index_0_id_15cdb684_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OutlineEdit.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/OutlineEdit.vue?vue&type=template&id=15cdb684&scoped=true":
/*!*********************************************************************************************!*\
!*** ./src/pages/Edit/components/OutlineEdit.vue?vue&type=template&id=15cdb684&scoped=true ***!
\*********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineEdit_vue_vue_type_template_id_15cdb684_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./OutlineEdit.vue?vue&type=template&id=15cdb684&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OutlineEdit.vue?vue&type=template&id=15cdb684&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineEdit_vue_vue_type_template_id_15cdb684_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineEdit_vue_vue_type_template_id_15cdb684_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OutlineEdit.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/OutlineSidebar.vue":
/*!******************************************************!*\
!*** ./src/pages/Edit/components/OutlineSidebar.vue ***!
\******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _OutlineSidebar_vue_vue_type_template_id_51befc5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./OutlineSidebar.vue?vue&type=template&id=51befc5c&scoped=true */ \"./src/pages/Edit/components/OutlineSidebar.vue?vue&type=template&id=51befc5c&scoped=true\");\n/* harmony import */ var _OutlineSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./OutlineSidebar.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/OutlineSidebar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _OutlineSidebar_vue_vue_type_style_index_0_id_51befc5c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./OutlineSidebar.vue?vue&type=style&index=0&id=51befc5c&lang=less&scoped=true */ \"./src/pages/Edit/components/OutlineSidebar.vue?vue&type=style&index=0&id=51befc5c&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _OutlineSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _OutlineSidebar_vue_vue_type_template_id_51befc5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _OutlineSidebar_vue_vue_type_template_id_51befc5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"51befc5c\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/OutlineSidebar.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OutlineSidebar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/OutlineSidebar.vue?vue&type=script&lang=js":
/*!******************************************************************************!*\
!*** ./src/pages/Edit/components/OutlineSidebar.vue?vue&type=script&lang=js ***!
\******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./OutlineSidebar.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OutlineSidebar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineSidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/OutlineSidebar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/OutlineSidebar.vue?vue&type=style&index=0&id=51befc5c&lang=less&scoped=true":
/*!***************************************************************************************************************!*\
!*** ./src/pages/Edit/components/OutlineSidebar.vue?vue&type=style&index=0&id=51befc5c&lang=less&scoped=true ***!
\***************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineSidebar_vue_vue_type_style_index_0_id_51befc5c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./OutlineSidebar.vue?vue&type=style&index=0&id=51befc5c&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OutlineSidebar.vue?vue&type=style&index=0&id=51befc5c&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineSidebar_vue_vue_type_style_index_0_id_51befc5c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineSidebar_vue_vue_type_style_index_0_id_51befc5c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineSidebar_vue_vue_type_style_index_0_id_51befc5c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineSidebar_vue_vue_type_style_index_0_id_51befc5c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OutlineSidebar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/OutlineSidebar.vue?vue&type=template&id=51befc5c&scoped=true":
/*!************************************************************************************************!*\
!*** ./src/pages/Edit/components/OutlineSidebar.vue?vue&type=template&id=51befc5c&scoped=true ***!
\************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineSidebar_vue_vue_type_template_id_51befc5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./OutlineSidebar.vue?vue&type=template&id=51befc5c&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/OutlineSidebar.vue?vue&type=template&id=51befc5c&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineSidebar_vue_vue_type_template_id_51befc5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_OutlineSidebar_vue_vue_type_template_id_51befc5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/OutlineSidebar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/RichEditor/index.vue":
/*!********************************************************!*\
!*** ./src/pages/Edit/components/RichEditor/index.vue ***!
\********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_10cbee78__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=10cbee78 */ \"./src/pages/Edit/components/RichEditor/index.vue?vue&type=template&id=10cbee78\");\n/* harmony import */ var _index_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&setup=true&lang=ts */ \"./src/pages/Edit/components/RichEditor/index.vue?vue&type=script&setup=true&lang=ts\");\n/* empty/unused harmony star reexport *//* harmony import */ var _index_vue_vue_type_style_index_0_id_10cbee78_lang_less__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.vue?vue&type=style&index=0&id=10cbee78&lang=less */ \"./src/pages/Edit/components/RichEditor/index.vue?vue&type=style&index=0&id=10cbee78&lang=less\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _index_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _index_vue_vue_type_template_id_10cbee78__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _index_vue_vue_type_template_id_10cbee78__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/RichEditor/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/RichEditor/index.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/RichEditor/index.vue?vue&type=script&setup=true&lang=ts":
/*!*******************************************************************************************!*\
!*** ./src/pages/Edit/components/RichEditor/index.vue?vue&type=script&setup=true&lang=ts ***!
\*******************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts */ \"./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/RichEditor/index.vue?vue&type=script&setup=true&lang=ts\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/RichEditor/index.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/RichEditor/index.vue?vue&type=style&index=0&id=10cbee78&lang=less":
/*!*****************************************************************************************************!*\
!*** ./src/pages/Edit/components/RichEditor/index.vue?vue&type=style&index=0&id=10cbee78&lang=less ***!
\*****************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_10cbee78_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./index.vue?vue&type=style&index=0&id=10cbee78&lang=less */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/RichEditor/index.vue?vue&type=style&index=0&id=10cbee78&lang=less\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_10cbee78_lang_less__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_10cbee78_lang_less__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_10cbee78_lang_less__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_10cbee78_lang_less__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/RichEditor/index.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/RichEditor/index.vue?vue&type=template&id=10cbee78":
/*!**************************************************************************************!*\
!*** ./src/pages/Edit/components/RichEditor/index.vue?vue&type=template&id=10cbee78 ***!
\**************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_10cbee78__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=10cbee78 */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/RichEditor/index.vue?vue&type=template&id=10cbee78\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_10cbee78__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_10cbee78__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/RichEditor/index.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/RichTextToolbar.vue":
/*!*******************************************************!*\
!*** ./src/pages/Edit/components/RichTextToolbar.vue ***!
\*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _RichTextToolbar_vue_vue_type_template_id_06888dac_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RichTextToolbar.vue?vue&type=template&id=06888dac&scoped=true */ \"./src/pages/Edit/components/RichTextToolbar.vue?vue&type=template&id=06888dac&scoped=true\");\n/* harmony import */ var _RichTextToolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RichTextToolbar.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/RichTextToolbar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _RichTextToolbar_vue_vue_type_style_index_0_id_06888dac_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RichTextToolbar.vue?vue&type=style&index=0&id=06888dac&lang=less&scoped=true */ \"./src/pages/Edit/components/RichTextToolbar.vue?vue&type=style&index=0&id=06888dac&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _RichTextToolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _RichTextToolbar_vue_vue_type_template_id_06888dac_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _RichTextToolbar_vue_vue_type_template_id_06888dac_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"06888dac\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/RichTextToolbar.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/RichTextToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/RichTextToolbar.vue?vue&type=script&lang=js":
/*!*******************************************************************************!*\
!*** ./src/pages/Edit/components/RichTextToolbar.vue?vue&type=script&lang=js ***!
\*******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RichTextToolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./RichTextToolbar.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/RichTextToolbar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RichTextToolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/RichTextToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/RichTextToolbar.vue?vue&type=style&index=0&id=06888dac&lang=less&scoped=true":
/*!****************************************************************************************************************!*\
!*** ./src/pages/Edit/components/RichTextToolbar.vue?vue&type=style&index=0&id=06888dac&lang=less&scoped=true ***!
\****************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RichTextToolbar_vue_vue_type_style_index_0_id_06888dac_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./RichTextToolbar.vue?vue&type=style&index=0&id=06888dac&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/RichTextToolbar.vue?vue&type=style&index=0&id=06888dac&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RichTextToolbar_vue_vue_type_style_index_0_id_06888dac_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RichTextToolbar_vue_vue_type_style_index_0_id_06888dac_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RichTextToolbar_vue_vue_type_style_index_0_id_06888dac_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RichTextToolbar_vue_vue_type_style_index_0_id_06888dac_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/RichTextToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/RichTextToolbar.vue?vue&type=template&id=06888dac&scoped=true":
/*!*************************************************************************************************!*\
!*** ./src/pages/Edit/components/RichTextToolbar.vue?vue&type=template&id=06888dac&scoped=true ***!
\*************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RichTextToolbar_vue_vue_type_template_id_06888dac_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./RichTextToolbar.vue?vue&type=template&id=06888dac&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/RichTextToolbar.vue?vue&type=template&id=06888dac&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RichTextToolbar_vue_vue_type_template_id_06888dac_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_RichTextToolbar_vue_vue_type_template_id_06888dac_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/RichTextToolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Scale.vue":
/*!*********************************************!*\
!*** ./src/pages/Edit/components/Scale.vue ***!
\*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Scale_vue_vue_type_template_id_1405f13c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Scale.vue?vue&type=template&id=1405f13c&scoped=true */ \"./src/pages/Edit/components/Scale.vue?vue&type=template&id=1405f13c&scoped=true\");\n/* harmony import */ var _Scale_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Scale.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Scale.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Scale_vue_vue_type_style_index_0_id_1405f13c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Scale.vue?vue&type=style&index=0&id=1405f13c&lang=less&scoped=true */ \"./src/pages/Edit/components/Scale.vue?vue&type=style&index=0&id=1405f13c&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Scale_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Scale_vue_vue_type_template_id_1405f13c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Scale_vue_vue_type_template_id_1405f13c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"1405f13c\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Scale.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Scale.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Scale.vue?vue&type=script&lang=js":
/*!*********************************************************************!*\
!*** ./src/pages/Edit/components/Scale.vue?vue&type=script&lang=js ***!
\*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scale_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Scale.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Scale.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scale_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Scale.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Scale.vue?vue&type=style&index=0&id=1405f13c&lang=less&scoped=true":
/*!******************************************************************************************************!*\
!*** ./src/pages/Edit/components/Scale.vue?vue&type=style&index=0&id=1405f13c&lang=less&scoped=true ***!
\******************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scale_vue_vue_type_style_index_0_id_1405f13c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Scale.vue?vue&type=style&index=0&id=1405f13c&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Scale.vue?vue&type=style&index=0&id=1405f13c&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scale_vue_vue_type_style_index_0_id_1405f13c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scale_vue_vue_type_style_index_0_id_1405f13c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scale_vue_vue_type_style_index_0_id_1405f13c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scale_vue_vue_type_style_index_0_id_1405f13c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Scale.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Scale.vue?vue&type=template&id=1405f13c&scoped=true":
/*!***************************************************************************************!*\
!*** ./src/pages/Edit/components/Scale.vue?vue&type=template&id=1405f13c&scoped=true ***!
\***************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scale_vue_vue_type_template_id_1405f13c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Scale.vue?vue&type=template&id=1405f13c&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Scale.vue?vue&type=template&id=1405f13c&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scale_vue_vue_type_template_id_1405f13c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scale_vue_vue_type_template_id_1405f13c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Scale.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Scrollbar.vue":
/*!*************************************************!*\
!*** ./src/pages/Edit/components/Scrollbar.vue ***!
\*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Scrollbar_vue_vue_type_template_id_6aaa1384_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Scrollbar.vue?vue&type=template&id=6aaa1384&scoped=true */ \"./src/pages/Edit/components/Scrollbar.vue?vue&type=template&id=6aaa1384&scoped=true\");\n/* harmony import */ var _Scrollbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Scrollbar.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Scrollbar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Scrollbar_vue_vue_type_style_index_0_id_6aaa1384_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Scrollbar.vue?vue&type=style&index=0&id=6aaa1384&lang=less&scoped=true */ \"./src/pages/Edit/components/Scrollbar.vue?vue&type=style&index=0&id=6aaa1384&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Scrollbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Scrollbar_vue_vue_type_template_id_6aaa1384_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Scrollbar_vue_vue_type_template_id_6aaa1384_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"6aaa1384\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Scrollbar.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Scrollbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Scrollbar.vue?vue&type=script&lang=js":
/*!*************************************************************************!*\
!*** ./src/pages/Edit/components/Scrollbar.vue?vue&type=script&lang=js ***!
\*************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scrollbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Scrollbar.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Scrollbar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scrollbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Scrollbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Scrollbar.vue?vue&type=style&index=0&id=6aaa1384&lang=less&scoped=true":
/*!**********************************************************************************************************!*\
!*** ./src/pages/Edit/components/Scrollbar.vue?vue&type=style&index=0&id=6aaa1384&lang=less&scoped=true ***!
\**********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scrollbar_vue_vue_type_style_index_0_id_6aaa1384_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Scrollbar.vue?vue&type=style&index=0&id=6aaa1384&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Scrollbar.vue?vue&type=style&index=0&id=6aaa1384&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scrollbar_vue_vue_type_style_index_0_id_6aaa1384_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scrollbar_vue_vue_type_style_index_0_id_6aaa1384_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scrollbar_vue_vue_type_style_index_0_id_6aaa1384_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scrollbar_vue_vue_type_style_index_0_id_6aaa1384_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Scrollbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Scrollbar.vue?vue&type=template&id=6aaa1384&scoped=true":
/*!*******************************************************************************************!*\
!*** ./src/pages/Edit/components/Scrollbar.vue?vue&type=template&id=6aaa1384&scoped=true ***!
\*******************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scrollbar_vue_vue_type_template_id_6aaa1384_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Scrollbar.vue?vue&type=template&id=6aaa1384&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Scrollbar.vue?vue&type=template&id=6aaa1384&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scrollbar_vue_vue_type_template_id_6aaa1384_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Scrollbar_vue_vue_type_template_id_6aaa1384_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Scrollbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Search.vue":
/*!**********************************************!*\
!*** ./src/pages/Edit/components/Search.vue ***!
\**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Search_vue_vue_type_template_id_2f3913c0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Search.vue?vue&type=template&id=2f3913c0&scoped=true */ \"./src/pages/Edit/components/Search.vue?vue&type=template&id=2f3913c0&scoped=true\");\n/* harmony import */ var _Search_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Search.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Search.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Search_vue_vue_type_style_index_0_id_2f3913c0_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Search.vue?vue&type=style&index=0&id=2f3913c0&lang=less&scoped=true */ \"./src/pages/Edit/components/Search.vue?vue&type=style&index=0&id=2f3913c0&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Search_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Search_vue_vue_type_template_id_2f3913c0_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Search_vue_vue_type_template_id_2f3913c0_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"2f3913c0\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Search.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Search.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Search.vue?vue&type=script&lang=js":
/*!**********************************************************************!*\
!*** ./src/pages/Edit/components/Search.vue?vue&type=script&lang=js ***!
\**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Search_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Search.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Search.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Search_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Search.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Search.vue?vue&type=style&index=0&id=2f3913c0&lang=less&scoped=true":
/*!*******************************************************************************************************!*\
!*** ./src/pages/Edit/components/Search.vue?vue&type=style&index=0&id=2f3913c0&lang=less&scoped=true ***!
\*******************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Search_vue_vue_type_style_index_0_id_2f3913c0_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Search.vue?vue&type=style&index=0&id=2f3913c0&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Search.vue?vue&type=style&index=0&id=2f3913c0&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Search_vue_vue_type_style_index_0_id_2f3913c0_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Search_vue_vue_type_style_index_0_id_2f3913c0_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Search_vue_vue_type_style_index_0_id_2f3913c0_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Search_vue_vue_type_style_index_0_id_2f3913c0_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Search.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Search.vue?vue&type=template&id=2f3913c0&scoped=true":
/*!****************************************************************************************!*\
!*** ./src/pages/Edit/components/Search.vue?vue&type=template&id=2f3913c0&scoped=true ***!
\****************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Search_vue_vue_type_template_id_2f3913c0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Search.vue?vue&type=template&id=2f3913c0&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Search.vue?vue&type=template&id=2f3913c0&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Search_vue_vue_type_template_id_2f3913c0_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Search_vue_vue_type_template_id_2f3913c0_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Search.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Setting.vue":
/*!***********************************************!*\
!*** ./src/pages/Edit/components/Setting.vue ***!
\***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Setting_vue_vue_type_template_id_59360d30_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Setting.vue?vue&type=template&id=59360d30&scoped=true */ \"./src/pages/Edit/components/Setting.vue?vue&type=template&id=59360d30&scoped=true\");\n/* harmony import */ var _Setting_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Setting.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Setting.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Setting_vue_vue_type_style_index_0_id_59360d30_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Setting.vue?vue&type=style&index=0&id=59360d30&lang=less&scoped=true */ \"./src/pages/Edit/components/Setting.vue?vue&type=style&index=0&id=59360d30&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Setting_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Setting_vue_vue_type_template_id_59360d30_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Setting_vue_vue_type_template_id_59360d30_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"59360d30\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Setting.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Setting.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Setting.vue?vue&type=script&lang=js":
/*!***********************************************************************!*\
!*** ./src/pages/Edit/components/Setting.vue?vue&type=script&lang=js ***!
\***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Setting_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Setting.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Setting.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Setting_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Setting.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Setting.vue?vue&type=style&index=0&id=59360d30&lang=less&scoped=true":
/*!********************************************************************************************************!*\
!*** ./src/pages/Edit/components/Setting.vue?vue&type=style&index=0&id=59360d30&lang=less&scoped=true ***!
\********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Setting_vue_vue_type_style_index_0_id_59360d30_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Setting.vue?vue&type=style&index=0&id=59360d30&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Setting.vue?vue&type=style&index=0&id=59360d30&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Setting_vue_vue_type_style_index_0_id_59360d30_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Setting_vue_vue_type_style_index_0_id_59360d30_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Setting_vue_vue_type_style_index_0_id_59360d30_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Setting_vue_vue_type_style_index_0_id_59360d30_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Setting.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Setting.vue?vue&type=template&id=59360d30&scoped=true":
/*!*****************************************************************************************!*\
!*** ./src/pages/Edit/components/Setting.vue?vue&type=template&id=59360d30&scoped=true ***!
\*****************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Setting_vue_vue_type_template_id_59360d30_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Setting.vue?vue&type=template&id=59360d30&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Setting.vue?vue&type=template&id=59360d30&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Setting_vue_vue_type_template_id_59360d30_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Setting_vue_vue_type_template_id_59360d30_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Setting.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/ShortcutKey.vue":
/*!***************************************************!*\
!*** ./src/pages/Edit/components/ShortcutKey.vue ***!
\***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ShortcutKey_vue_vue_type_template_id_d257aa5e_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ShortcutKey.vue?vue&type=template&id=d257aa5e&scoped=true */ \"./src/pages/Edit/components/ShortcutKey.vue?vue&type=template&id=d257aa5e&scoped=true\");\n/* harmony import */ var _ShortcutKey_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ShortcutKey.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/ShortcutKey.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _ShortcutKey_vue_vue_type_style_index_0_id_d257aa5e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ShortcutKey.vue?vue&type=style&index=0&id=d257aa5e&lang=less&scoped=true */ \"./src/pages/Edit/components/ShortcutKey.vue?vue&type=style&index=0&id=d257aa5e&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _ShortcutKey_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _ShortcutKey_vue_vue_type_template_id_d257aa5e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _ShortcutKey_vue_vue_type_template_id_d257aa5e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"d257aa5e\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/ShortcutKey.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/ShortcutKey.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/ShortcutKey.vue?vue&type=script&lang=js":
/*!***************************************************************************!*\
!*** ./src/pages/Edit/components/ShortcutKey.vue?vue&type=script&lang=js ***!
\***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ShortcutKey_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./ShortcutKey.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/ShortcutKey.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ShortcutKey_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/ShortcutKey.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/ShortcutKey.vue?vue&type=style&index=0&id=d257aa5e&lang=less&scoped=true":
/*!************************************************************************************************************!*\
!*** ./src/pages/Edit/components/ShortcutKey.vue?vue&type=style&index=0&id=d257aa5e&lang=less&scoped=true ***!
\************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ShortcutKey_vue_vue_type_style_index_0_id_d257aa5e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./ShortcutKey.vue?vue&type=style&index=0&id=d257aa5e&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/ShortcutKey.vue?vue&type=style&index=0&id=d257aa5e&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ShortcutKey_vue_vue_type_style_index_0_id_d257aa5e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ShortcutKey_vue_vue_type_style_index_0_id_d257aa5e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ShortcutKey_vue_vue_type_style_index_0_id_d257aa5e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ShortcutKey_vue_vue_type_style_index_0_id_d257aa5e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/ShortcutKey.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/ShortcutKey.vue?vue&type=template&id=d257aa5e&scoped=true":
/*!*********************************************************************************************!*\
!*** ./src/pages/Edit/components/ShortcutKey.vue?vue&type=template&id=d257aa5e&scoped=true ***!
\*********************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ShortcutKey_vue_vue_type_template_id_d257aa5e_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./ShortcutKey.vue?vue&type=template&id=d257aa5e&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/ShortcutKey.vue?vue&type=template&id=d257aa5e&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ShortcutKey_vue_vue_type_template_id_d257aa5e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ShortcutKey_vue_vue_type_template_id_d257aa5e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/ShortcutKey.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Sidebar.vue":
/*!***********************************************!*\
!*** ./src/pages/Edit/components/Sidebar.vue ***!
\***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Sidebar_vue_vue_type_template_id_7b9adf18_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Sidebar.vue?vue&type=template&id=7b9adf18&scoped=true */ \"./src/pages/Edit/components/Sidebar.vue?vue&type=template&id=7b9adf18&scoped=true\");\n/* harmony import */ var _Sidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Sidebar.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Sidebar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Sidebar_vue_vue_type_style_index_0_id_7b9adf18_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Sidebar.vue?vue&type=style&index=0&id=7b9adf18&lang=less&scoped=true */ \"./src/pages/Edit/components/Sidebar.vue?vue&type=style&index=0&id=7b9adf18&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Sidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Sidebar_vue_vue_type_template_id_7b9adf18_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Sidebar_vue_vue_type_template_id_7b9adf18_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"7b9adf18\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Sidebar.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Sidebar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Sidebar.vue?vue&type=script&lang=js":
/*!***********************************************************************!*\
!*** ./src/pages/Edit/components/Sidebar.vue?vue&type=script&lang=js ***!
\***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Sidebar.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Sidebar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Sidebar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Sidebar.vue?vue&type=style&index=0&id=7b9adf18&lang=less&scoped=true":
/*!********************************************************************************************************!*\
!*** ./src/pages/Edit/components/Sidebar.vue?vue&type=style&index=0&id=7b9adf18&lang=less&scoped=true ***!
\********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_style_index_0_id_7b9adf18_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Sidebar.vue?vue&type=style&index=0&id=7b9adf18&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Sidebar.vue?vue&type=style&index=0&id=7b9adf18&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_style_index_0_id_7b9adf18_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_style_index_0_id_7b9adf18_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_style_index_0_id_7b9adf18_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_style_index_0_id_7b9adf18_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Sidebar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Sidebar.vue?vue&type=template&id=7b9adf18&scoped=true":
/*!*****************************************************************************************!*\
!*** ./src/pages/Edit/components/Sidebar.vue?vue&type=template&id=7b9adf18&scoped=true ***!
\*****************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_template_id_7b9adf18_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Sidebar.vue?vue&type=template&id=7b9adf18&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Sidebar.vue?vue&type=template&id=7b9adf18&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_template_id_7b9adf18_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_template_id_7b9adf18_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Sidebar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/SidebarTrigger.vue":
/*!******************************************************!*\
!*** ./src/pages/Edit/components/SidebarTrigger.vue ***!
\******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _SidebarTrigger_vue_vue_type_template_id_c4f3b258_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SidebarTrigger.vue?vue&type=template&id=c4f3b258&scoped=true */ \"./src/pages/Edit/components/SidebarTrigger.vue?vue&type=template&id=c4f3b258&scoped=true\");\n/* harmony import */ var _SidebarTrigger_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SidebarTrigger.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/SidebarTrigger.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _SidebarTrigger_vue_vue_type_style_index_0_id_c4f3b258_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SidebarTrigger.vue?vue&type=style&index=0&id=c4f3b258&lang=less&scoped=true */ \"./src/pages/Edit/components/SidebarTrigger.vue?vue&type=style&index=0&id=c4f3b258&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _SidebarTrigger_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _SidebarTrigger_vue_vue_type_template_id_c4f3b258_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _SidebarTrigger_vue_vue_type_template_id_c4f3b258_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"c4f3b258\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/SidebarTrigger.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/SidebarTrigger.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/SidebarTrigger.vue?vue&type=script&lang=js":
/*!******************************************************************************!*\
!*** ./src/pages/Edit/components/SidebarTrigger.vue?vue&type=script&lang=js ***!
\******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SidebarTrigger_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./SidebarTrigger.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/SidebarTrigger.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SidebarTrigger_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/SidebarTrigger.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/SidebarTrigger.vue?vue&type=style&index=0&id=c4f3b258&lang=less&scoped=true":
/*!***************************************************************************************************************!*\
!*** ./src/pages/Edit/components/SidebarTrigger.vue?vue&type=style&index=0&id=c4f3b258&lang=less&scoped=true ***!
\***************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SidebarTrigger_vue_vue_type_style_index_0_id_c4f3b258_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./SidebarTrigger.vue?vue&type=style&index=0&id=c4f3b258&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/SidebarTrigger.vue?vue&type=style&index=0&id=c4f3b258&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SidebarTrigger_vue_vue_type_style_index_0_id_c4f3b258_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SidebarTrigger_vue_vue_type_style_index_0_id_c4f3b258_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SidebarTrigger_vue_vue_type_style_index_0_id_c4f3b258_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SidebarTrigger_vue_vue_type_style_index_0_id_c4f3b258_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/SidebarTrigger.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/SidebarTrigger.vue?vue&type=template&id=c4f3b258&scoped=true":
/*!************************************************************************************************!*\
!*** ./src/pages/Edit/components/SidebarTrigger.vue?vue&type=template&id=c4f3b258&scoped=true ***!
\************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SidebarTrigger_vue_vue_type_template_id_c4f3b258_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./SidebarTrigger.vue?vue&type=template&id=c4f3b258&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/SidebarTrigger.vue?vue&type=template&id=c4f3b258&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SidebarTrigger_vue_vue_type_template_id_c4f3b258_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SidebarTrigger_vue_vue_type_template_id_c4f3b258_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/SidebarTrigger.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/SourceCodeEdit.vue":
/*!******************************************************!*\
!*** ./src/pages/Edit/components/SourceCodeEdit.vue ***!
\******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _SourceCodeEdit_vue_vue_type_template_id_3c00482c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SourceCodeEdit.vue?vue&type=template&id=3c00482c&scoped=true */ \"./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=template&id=3c00482c&scoped=true\");\n/* harmony import */ var _SourceCodeEdit_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SourceCodeEdit.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _SourceCodeEdit_vue_vue_type_style_index_0_id_3c00482c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SourceCodeEdit.vue?vue&type=style&index=0&id=3c00482c&lang=less&scoped=true */ \"./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=style&index=0&id=3c00482c&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _SourceCodeEdit_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _SourceCodeEdit_vue_vue_type_template_id_3c00482c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _SourceCodeEdit_vue_vue_type_template_id_3c00482c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"3c00482c\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/SourceCodeEdit.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/SourceCodeEdit.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=script&lang=js":
/*!******************************************************************************!*\
!*** ./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=script&lang=js ***!
\******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SourceCodeEdit_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./SourceCodeEdit.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SourceCodeEdit_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/SourceCodeEdit.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=style&index=0&id=3c00482c&lang=less&scoped=true":
/*!***************************************************************************************************************!*\
!*** ./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=style&index=0&id=3c00482c&lang=less&scoped=true ***!
\***************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SourceCodeEdit_vue_vue_type_style_index_0_id_3c00482c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./SourceCodeEdit.vue?vue&type=style&index=0&id=3c00482c&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=style&index=0&id=3c00482c&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SourceCodeEdit_vue_vue_type_style_index_0_id_3c00482c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SourceCodeEdit_vue_vue_type_style_index_0_id_3c00482c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SourceCodeEdit_vue_vue_type_style_index_0_id_3c00482c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SourceCodeEdit_vue_vue_type_style_index_0_id_3c00482c_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/SourceCodeEdit.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=template&id=3c00482c&scoped=true":
/*!************************************************************************************************!*\
!*** ./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=template&id=3c00482c&scoped=true ***!
\************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SourceCodeEdit_vue_vue_type_template_id_3c00482c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./SourceCodeEdit.vue?vue&type=template&id=3c00482c&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/SourceCodeEdit.vue?vue&type=template&id=3c00482c&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SourceCodeEdit_vue_vue_type_template_id_3c00482c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SourceCodeEdit_vue_vue_type_template_id_3c00482c_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/SourceCodeEdit.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Structure.vue":
/*!*************************************************!*\
!*** ./src/pages/Edit/components/Structure.vue ***!
\*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Structure_vue_vue_type_template_id_1932af0b_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Structure.vue?vue&type=template&id=1932af0b&scoped=true */ \"./src/pages/Edit/components/Structure.vue?vue&type=template&id=1932af0b&scoped=true\");\n/* harmony import */ var _Structure_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Structure.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Structure.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Structure_vue_vue_type_style_index_0_id_1932af0b_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Structure.vue?vue&type=style&index=0&id=1932af0b&lang=less&scoped=true */ \"./src/pages/Edit/components/Structure.vue?vue&type=style&index=0&id=1932af0b&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Structure_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Structure_vue_vue_type_template_id_1932af0b_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Structure_vue_vue_type_template_id_1932af0b_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"1932af0b\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Structure.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Structure.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Structure.vue?vue&type=script&lang=js":
/*!*************************************************************************!*\
!*** ./src/pages/Edit/components/Structure.vue?vue&type=script&lang=js ***!
\*************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Structure_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Structure.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Structure.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Structure_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Structure.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Structure.vue?vue&type=style&index=0&id=1932af0b&lang=less&scoped=true":
/*!**********************************************************************************************************!*\
!*** ./src/pages/Edit/components/Structure.vue?vue&type=style&index=0&id=1932af0b&lang=less&scoped=true ***!
\**********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Structure_vue_vue_type_style_index_0_id_1932af0b_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Structure.vue?vue&type=style&index=0&id=1932af0b&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Structure.vue?vue&type=style&index=0&id=1932af0b&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Structure_vue_vue_type_style_index_0_id_1932af0b_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Structure_vue_vue_type_style_index_0_id_1932af0b_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Structure_vue_vue_type_style_index_0_id_1932af0b_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Structure_vue_vue_type_style_index_0_id_1932af0b_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Structure.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Structure.vue?vue&type=template&id=1932af0b&scoped=true":
/*!*******************************************************************************************!*\
!*** ./src/pages/Edit/components/Structure.vue?vue&type=template&id=1932af0b&scoped=true ***!
\*******************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Structure_vue_vue_type_template_id_1932af0b_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Structure.vue?vue&type=template&id=1932af0b&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Structure.vue?vue&type=template&id=1932af0b&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Structure_vue_vue_type_template_id_1932af0b_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Structure_vue_vue_type_template_id_1932af0b_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Structure.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Style.vue":
/*!*********************************************!*\
!*** ./src/pages/Edit/components/Style.vue ***!
\*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Style_vue_vue_type_template_id_5cf2df6e_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Style.vue?vue&type=template&id=5cf2df6e&scoped=true */ \"./src/pages/Edit/components/Style.vue?vue&type=template&id=5cf2df6e&scoped=true\");\n/* harmony import */ var _Style_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Style.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Style.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Style_vue_vue_type_style_index_0_id_5cf2df6e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Style.vue?vue&type=style&index=0&id=5cf2df6e&lang=less&scoped=true */ \"./src/pages/Edit/components/Style.vue?vue&type=style&index=0&id=5cf2df6e&lang=less&scoped=true\");\n/* harmony import */ var _Style_vue_vue_type_style_index_1_id_5cf2df6e_lang_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Style.vue?vue&type=style&index=1&id=5cf2df6e&lang=less */ \"./src/pages/Edit/components/Style.vue?vue&type=style&index=1&id=5cf2df6e&lang=less\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(\n _Style_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Style_vue_vue_type_template_id_5cf2df6e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Style_vue_vue_type_template_id_5cf2df6e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"5cf2df6e\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Style.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Style.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Style.vue?vue&type=script&lang=js":
/*!*********************************************************************!*\
!*** ./src/pages/Edit/components/Style.vue?vue&type=script&lang=js ***!
\*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Style_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Style.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Style.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Style_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Style.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Style.vue?vue&type=style&index=0&id=5cf2df6e&lang=less&scoped=true":
/*!******************************************************************************************************!*\
!*** ./src/pages/Edit/components/Style.vue?vue&type=style&index=0&id=5cf2df6e&lang=less&scoped=true ***!
\******************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Style_vue_vue_type_style_index_0_id_5cf2df6e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Style.vue?vue&type=style&index=0&id=5cf2df6e&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Style.vue?vue&type=style&index=0&id=5cf2df6e&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Style_vue_vue_type_style_index_0_id_5cf2df6e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Style_vue_vue_type_style_index_0_id_5cf2df6e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Style_vue_vue_type_style_index_0_id_5cf2df6e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Style_vue_vue_type_style_index_0_id_5cf2df6e_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Style.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Style.vue?vue&type=style&index=1&id=5cf2df6e&lang=less":
/*!******************************************************************************************!*\
!*** ./src/pages/Edit/components/Style.vue?vue&type=style&index=1&id=5cf2df6e&lang=less ***!
\******************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Style_vue_vue_type_style_index_1_id_5cf2df6e_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Style.vue?vue&type=style&index=1&id=5cf2df6e&lang=less */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Style.vue?vue&type=style&index=1&id=5cf2df6e&lang=less\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Style_vue_vue_type_style_index_1_id_5cf2df6e_lang_less__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Style_vue_vue_type_style_index_1_id_5cf2df6e_lang_less__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Style_vue_vue_type_style_index_1_id_5cf2df6e_lang_less__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Style_vue_vue_type_style_index_1_id_5cf2df6e_lang_less__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Style.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Style.vue?vue&type=template&id=5cf2df6e&scoped=true":
/*!***************************************************************************************!*\
!*** ./src/pages/Edit/components/Style.vue?vue&type=template&id=5cf2df6e&scoped=true ***!
\***************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Style_vue_vue_type_template_id_5cf2df6e_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Style.vue?vue&type=template&id=5cf2df6e&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Style.vue?vue&type=template&id=5cf2df6e&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Style_vue_vue_type_template_id_5cf2df6e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Style_vue_vue_type_template_id_5cf2df6e_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Style.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Theme.vue":
/*!*********************************************!*\
!*** ./src/pages/Edit/components/Theme.vue ***!
\*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Theme_vue_vue_type_template_id_66f51c61_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Theme.vue?vue&type=template&id=66f51c61&scoped=true */ \"./src/pages/Edit/components/Theme.vue?vue&type=template&id=66f51c61&scoped=true\");\n/* harmony import */ var _Theme_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Theme.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Theme.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Theme_vue_vue_type_style_index_0_id_66f51c61_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Theme.vue?vue&type=style&index=0&id=66f51c61&lang=less&scoped=true */ \"./src/pages/Edit/components/Theme.vue?vue&type=style&index=0&id=66f51c61&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Theme_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Theme_vue_vue_type_template_id_66f51c61_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Theme_vue_vue_type_template_id_66f51c61_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"66f51c61\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Theme.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Theme.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Theme.vue?vue&type=script&lang=js":
/*!*********************************************************************!*\
!*** ./src/pages/Edit/components/Theme.vue?vue&type=script&lang=js ***!
\*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Theme_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Theme.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Theme.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Theme_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Theme.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Theme.vue?vue&type=style&index=0&id=66f51c61&lang=less&scoped=true":
/*!******************************************************************************************************!*\
!*** ./src/pages/Edit/components/Theme.vue?vue&type=style&index=0&id=66f51c61&lang=less&scoped=true ***!
\******************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Theme_vue_vue_type_style_index_0_id_66f51c61_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Theme.vue?vue&type=style&index=0&id=66f51c61&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Theme.vue?vue&type=style&index=0&id=66f51c61&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Theme_vue_vue_type_style_index_0_id_66f51c61_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Theme_vue_vue_type_style_index_0_id_66f51c61_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Theme_vue_vue_type_style_index_0_id_66f51c61_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Theme_vue_vue_type_style_index_0_id_66f51c61_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Theme.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Theme.vue?vue&type=template&id=66f51c61&scoped=true":
/*!***************************************************************************************!*\
!*** ./src/pages/Edit/components/Theme.vue?vue&type=template&id=66f51c61&scoped=true ***!
\***************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Theme_vue_vue_type_template_id_66f51c61_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Theme.vue?vue&type=template&id=66f51c61&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Theme.vue?vue&type=template&id=66f51c61&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Theme_vue_vue_type_template_id_66f51c61_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Theme_vue_vue_type_template_id_66f51c61_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Theme.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Toolbar.vue":
/*!***********************************************!*\
!*** ./src/pages/Edit/components/Toolbar.vue ***!
\***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Toolbar_vue_vue_type_template_id_46e8e913_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Toolbar.vue?vue&type=template&id=46e8e913&scoped=true */ \"./src/pages/Edit/components/Toolbar.vue?vue&type=template&id=46e8e913&scoped=true\");\n/* harmony import */ var _Toolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Toolbar.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/Toolbar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _Toolbar_vue_vue_type_style_index_0_id_46e8e913_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Toolbar.vue?vue&type=style&index=0&id=46e8e913&lang=less&scoped=true */ \"./src/pages/Edit/components/Toolbar.vue?vue&type=style&index=0&id=46e8e913&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _Toolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _Toolbar_vue_vue_type_template_id_46e8e913_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _Toolbar_vue_vue_type_template_id_46e8e913_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"46e8e913\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/Toolbar.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Toolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Toolbar.vue?vue&type=script&lang=js":
/*!***********************************************************************!*\
!*** ./src/pages/Edit/components/Toolbar.vue?vue&type=script&lang=js ***!
\***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Toolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Toolbar.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Toolbar.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Toolbar_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/Toolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Toolbar.vue?vue&type=style&index=0&id=46e8e913&lang=less&scoped=true":
/*!********************************************************************************************************!*\
!*** ./src/pages/Edit/components/Toolbar.vue?vue&type=style&index=0&id=46e8e913&lang=less&scoped=true ***!
\********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Toolbar_vue_vue_type_style_index_0_id_46e8e913_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Toolbar.vue?vue&type=style&index=0&id=46e8e913&lang=less&scoped=true */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Toolbar.vue?vue&type=style&index=0&id=46e8e913&lang=less&scoped=true\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Toolbar_vue_vue_type_style_index_0_id_46e8e913_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Toolbar_vue_vue_type_style_index_0_id_46e8e913_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Toolbar_vue_vue_type_style_index_0_id_46e8e913_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Toolbar_vue_vue_type_style_index_0_id_46e8e913_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Toolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/Toolbar.vue?vue&type=template&id=46e8e913&scoped=true":
/*!*****************************************************************************************!*\
!*** ./src/pages/Edit/components/Toolbar.vue?vue&type=template&id=46e8e913&scoped=true ***!
\*****************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Toolbar_vue_vue_type_template_id_46e8e913_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./Toolbar.vue?vue&type=template&id=46e8e913&scoped=true */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/Toolbar.vue?vue&type=template&id=46e8e913&scoped=true\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Toolbar_vue_vue_type_template_id_46e8e913_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Toolbar_vue_vue_type_template_id_46e8e913_scoped_true__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/Toolbar.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/ToolbarNodeBtnList.vue":
/*!**********************************************************!*\
!*** ./src/pages/Edit/components/ToolbarNodeBtnList.vue ***!
\**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ToolbarNodeBtnList_vue_vue_type_template_id_6f1765d5__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ToolbarNodeBtnList.vue?vue&type=template&id=6f1765d5 */ \"./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=template&id=6f1765d5\");\n/* harmony import */ var _ToolbarNodeBtnList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ToolbarNodeBtnList.vue?vue&type=script&lang=js */ \"./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _ToolbarNodeBtnList_vue_vue_type_style_index_0_id_6f1765d5_lang_less__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ToolbarNodeBtnList.vue?vue&type=style&index=0&id=6f1765d5&lang=less */ \"./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=style&index=0&id=6f1765d5&lang=less\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _ToolbarNodeBtnList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _ToolbarNodeBtnList_vue_vue_type_template_id_6f1765d5__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _ToolbarNodeBtnList_vue_vue_type_template_id_6f1765d5__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/pages/Edit/components/ToolbarNodeBtnList.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/pages/Edit/components/ToolbarNodeBtnList.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=script&lang=js":
/*!**********************************************************************************!*\
!*** ./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=script&lang=js ***!
\**********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ToolbarNodeBtnList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./ToolbarNodeBtnList.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ToolbarNodeBtnList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/pages/Edit/components/ToolbarNodeBtnList.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=style&index=0&id=6f1765d5&lang=less":
/*!*******************************************************************************************************!*\
!*** ./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=style&index=0&id=6f1765d5&lang=less ***!
\*******************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ToolbarNodeBtnList_vue_vue_type_style_index_0_id_6f1765d5_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-style-loader??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./ToolbarNodeBtnList.vue?vue&type=style&index=0&id=6f1765d5&lang=less */ \"./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=style&index=0&id=6f1765d5&lang=less\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ToolbarNodeBtnList_vue_vue_type_style_index_0_id_6f1765d5_lang_less__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ToolbarNodeBtnList_vue_vue_type_style_index_0_id_6f1765d5_lang_less__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ToolbarNodeBtnList_vue_vue_type_style_index_0_id_6f1765d5_lang_less__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ToolbarNodeBtnList_vue_vue_type_style_index_0_id_6f1765d5_lang_less__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/ToolbarNodeBtnList.vue?");
/***/ }),
/***/ "./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=template&id=6f1765d5":
/*!****************************************************************************************!*\
!*** ./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=template&id=6f1765d5 ***!
\****************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ToolbarNodeBtnList_vue_vue_type_template_id_6f1765d5__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"551ac3d2-vue-loader-template\"}!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./ToolbarNodeBtnList.vue?vue&type=template&id=6f1765d5 */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"551ac3d2-vue-loader-template\\\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/pages/Edit/components/ToolbarNodeBtnList.vue?vue&type=template&id=6f1765d5\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ToolbarNodeBtnList_vue_vue_type_template_id_6f1765d5__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_551ac3d2_vue_loader_template_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ToolbarNodeBtnList_vue_vue_type_template_id_6f1765d5__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/pages/Edit/components/ToolbarNodeBtnList.vue?");
/***/ }),
/***/ "./src/utils/handleClipboardText.js":
/*!******************************************!*\
!*** ./src/utils/handleClipboardText.js ***!
\******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! simple-mind-map/src/utils/index */ \"../simple-mind-map/src/utils/index.js\");\n\n\n\n// 处理思源PDF粘贴\n/** 带有图片的矩形\n * <<assets/Google-20250409140857-o6ldehg.pdf/20250409140908-g6i1mdg \"Google-P1-20250409140908-g6i1mdg\">>\n![](assets/Google-P1-20250409140908-g6i1mdg.png)\n */\n\n/** 文字标注\n * <<assets/Google-20250409140857-o6ldehg.pdf/20250409150643-9qnyr94 \"/www.google.com 1/1\">>\n */\n\n// 处理知犀\nconst handleZHIXI = async data => {\n try {\n try {\n if (!Array.isArray(data)) {\n data = String(data).replace('￿', '');\n data = JSON.parse(data);\n }\n } catch (error) {\n console.log(error);\n }\n if (!Array.isArray(data)) {\n data = [];\n }\n const newNodeList = [];\n const waitLoadImageList = [];\n const walk = (list, newList) => {\n list.forEach(async item => {\n let newRoot = {};\n newList.push(newRoot);\n newRoot.data = {\n text: item.data.text,\n hyperlink: item.data.hyperlink,\n hyperlinkTitle: item.data.hyperlinkTitle,\n note: item.data.note\n };\n // 图片\n if (item.data.image) {\n let resolve = null;\n let promise = new Promise(_resolve => {\n resolve = _resolve;\n });\n waitLoadImageList.push(promise);\n try {\n newRoot.data.image = await Object(simple_mind_map_src_utils_index__WEBPACK_IMPORTED_MODULE_1__[\"imgToDataUrl\"])(item.data.image);\n newRoot.data.imageSize = item.data.imageSize;\n resolve();\n } catch (error) {\n resolve();\n }\n }\n // 子节点\n newRoot.children = [];\n if (item.children && item.children.length > 0) {\n const children = [];\n item.children.forEach(item2 => {\n // 概要\n if (item2.data.type === 'generalize') {\n newRoot.data.generalization = [{\n text: item2.data.text\n }];\n } else {\n children.push(item2);\n }\n });\n walk(children, newRoot.children);\n }\n });\n };\n walk(data, newNodeList);\n await Promise.all(waitLoadImageList);\n return {\n simpleMindMap: true,\n data: newNodeList\n };\n } catch (error) {\n return '';\n }\n};\nconst handleClipboardText = async text => {\n // 知犀数据格式1\n try {\n let parsedData = JSON.parse(text);\n if (parsedData.__c_zx_v !== undefined) {\n const res = await handleZHIXI(parsedData.children);\n return res;\n }\n } catch (error) {}\n // 知犀数据格式2\n if (text.includes('￿')) {\n const res = await handleZHIXI(text);\n return res;\n }\n return '';\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (handleClipboardText);\n\n//# sourceURL=webpack:///./src/utils/handleClipboardText.js?");
/***/ }),
/***/ "./src/utils/index.js":
/*!****************************!*\
!*** ./src/utils/index.js ***!
\****************************/
/*! exports provided: fullscrrenEvent, fullScreen, fileToBuffer, copy, setDataToClipboard, setImgToClipboard, printOutline */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fullscrrenEvent\", function() { return fullscrrenEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fullScreen\", function() { return fullScreen; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fileToBuffer\", function() { return fileToBuffer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"copy\", function() { return copy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setDataToClipboard\", function() { return setDataToClipboard; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setImgToClipboard\", function() { return setImgToClipboard; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"printOutline\", function() { return printOutline; });\n/**\n * @Author: 王林\n * @Date: 2021-07-11 21:38:09\n * @Desc: 全屏事件检测\n */\nconst getOnfullscreEnevt = () => {\n if (document.documentElement.requestFullScreen) {\n return 'onfullscreenchange';\n } else if (document.documentElement.webkitRequestFullScreen) {\n return 'onwebkitfullscreenchange';\n } else if (document.documentElement.mozRequestFullScreen) {\n return 'onmozfullscreenchange';\n } else if (document.documentElement.msRequestFullscreen) {\n return 'onmsfullscreenchange';\n }\n};\nconst fullscrrenEvent = getOnfullscreEnevt();\n\n/**\n * @Author: 王林\n * @Date: 2021-07-11 21:45:06\n * @Desc: 全屏\n */\nconst fullScreen = element => {\n if (element.requestFullScreen) {\n element.requestFullScreen();\n } else if (element.webkitRequestFullScreen) {\n element.webkitRequestFullScreen();\n } else if (element.mozRequestFullScreen) {\n element.mozRequestFullScreen();\n }\n};\n\n/**\n * javascript comment\n * @Author: 王林25\n * @Date: 2022-10-24 14:16:18\n * @Desc: 文件转buffer\n */\nconst fileToBuffer = file => {\n return new Promise(r => {\n const reader = new FileReader();\n reader.onload = () => {\n r(reader.result);\n };\n reader.readAsArrayBuffer(file);\n });\n};\n\n// 复制文本到剪贴板\nconst copy = text => {\n // 使用textarea可以保留换行\n const input = document.createElement('textarea');\n // input.setAttribute('value', text)\n input.innerHTML = text;\n document.body.appendChild(input);\n input.select();\n document.execCommand('copy');\n document.body.removeChild(input);\n};\n\n// 复制文本到剪贴板\nconst setDataToClipboard = data => {\n if (navigator.clipboard && navigator.clipboard.writeText) {\n navigator.clipboard.writeText(data);\n }\n};\n\n// 复制图片到剪贴板\nconst setImgToClipboard = img => {\n if (navigator.clipboard && navigator.clipboard.write) {\n const data = [new ClipboardItem({\n ['image/png']: img\n })];\n navigator.clipboard.write(data);\n }\n};\n\n// 打印大纲\nconst printOutline = el => {\n const printContent = el.outerHTML;\n const iframe = document.createElement('iframe');\n iframe.setAttribute('style', 'position: absolute; width: 0; height: 0;');\n document.body.appendChild(iframe);\n const iframeDoc = iframe.contentWindow.document;\n // 将当前页面的所有样式添加到iframe中\n const styleList = document.querySelectorAll('style');\n Array.from(styleList).forEach(el => {\n iframeDoc.write(el.outerHTML);\n });\n // 设置打印展示方式 - 纵向展示\n iframeDoc.write('<style media=\"print\">@page {size: portrait;}</style>');\n // 写入内容\n iframeDoc.write('<div>' + printContent + '</div>');\n setTimeout(function () {\n var _iframe$contentWindow;\n (_iframe$contentWindow = iframe.contentWindow) === null || _iframe$contentWindow === void 0 || _iframe$contentWindow.print();\n document.body.removeChild(iframe);\n }, 500);\n};\n\n//# sourceURL=webpack:///./src/utils/index.js?");
/***/ }),
/***/ "./src/utils/kmindInitLoading.tsx":
/*!****************************************!*\
!*** ./src/utils/kmindInitLoading.tsx ***!
\****************************************/
/*! exports provided: showKMindInitLoading, hideKMindInitLoading */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"showKMindInitLoading\", function() { return showKMindInitLoading; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hideKMindInitLoading\", function() { return hideKMindInitLoading; });\n/* harmony import */ var element_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! element-ui */ \"./node_modules/element-ui/lib/element-ui.common.js\");\n/* harmony import */ var element_ui__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(element_ui__WEBPACK_IMPORTED_MODULE_0__);\n\nlet kmindLoadingInstance = null;\nconst showKMindInitLoading = (vm, target) => {\n var _vm$$t;\n // console.log(\"vm:\", vm);\n kmindLoadingInstance = element_ui__WEBPACK_IMPORTED_MODULE_0__[\"Loading\"].service({\n lock: true,\n text: (_vm$$t = vm === null || vm === void 0 ? void 0 : vm.$t('kmind.kmindInitLoadingText')) !== null && _vm$$t !== void 0 ? _vm$$t : '如果超过5秒还没有加载完成,说明KMindApp加载失败了,请重新开关一下该页面即可',\n target: target || document.body\n });\n};\nconst hideKMindInitLoading = () => {\n if (kmindLoadingInstance) {\n kmindLoadingInstance.close();\n kmindLoadingInstance = null;\n }\n};\n\n//# sourceURL=webpack:///./src/utils/kmindInitLoading.tsx?");
/***/ }),
/***/ "./src/utils/kmindUtils.tsx":
/*!**********************************!*\
!*** ./src/utils/kmindUtils.tsx ***!
\**********************************/
/*! exports provided: isClickLinkIcon */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isClickLinkIcon\", function() { return isClickLinkIcon; });\n// 是否点击到了超链接icon\n// 实测只会点击到path和rect,所以只需要判断这俩情况就行了\n// 还会有很小的概率点到a\nconst isClickLinkIcon = e => {\n var _e$target, _e$target2, _e$target3;\n // console.log(e.target?.nextElementSibling?.attributes['p-id']?.nodeValue);\n let isLink = false;\n let linkUrl = '';\n // 以下使用switch为啥不行?用if else就行。\n // switch (e) {\n // // 点击到rect的情况:rect的nextElementSibling的p-id为7982\n // case e.target?.nextElementSibling?.attributes['p-id']?.nodeValue ===\n // '7982':\n // // return {\n // // isLink: true,\n // // linkUrl: e.target.parentNode.getAttribute('href'),\n // // };\n // console.log('xxx');\n // isLink = true;\n // linkUrl = e.target.parentNode.getAttribute('href');\n // break;\n // // 点击到path的情况:path的parentNode的p-id为7982\n // case e.target?.parentNode?.attributes['p-id']?.nodeValue === '7982':\n // // return {\n // // isLink: true,\n // // linkUrl: e.target.parentNode.parentNode.getAttribute('href'),\n // // };\n // isLink = true;\n // linkUrl = e.target.parentNode.parentNode.getAttribute('href');\n // break;\n // }\n\n if (((_e$target = e.target) === null || _e$target === void 0 || (_e$target = _e$target.nextElementSibling) === null || _e$target === void 0 || (_e$target = _e$target.attributes) === null || _e$target === void 0 || (_e$target = _e$target['p-id']) === null || _e$target === void 0 ? void 0 : _e$target.nodeValue) === '7982') {\n // 点击到rect的情况:rect的nextElementSibling的p-id为7982\n isLink = true;\n linkUrl = e.target.parentNode.getAttribute('href');\n } else if (((_e$target2 = e.target) === null || _e$target2 === void 0 || (_e$target2 = _e$target2.parentNode) === null || _e$target2 === void 0 || (_e$target2 = _e$target2.attributes) === null || _e$target2 === void 0 || (_e$target2 = _e$target2['p-id']) === null || _e$target2 === void 0 ? void 0 : _e$target2.nodeValue) === '7982') {\n // 点击到path的情况:path的parentNode的p-id为7982\n isLink = true;\n linkUrl = e.target.parentNode.parentNode.getAttribute('href');\n } else if (((_e$target3 = e.target) === null || _e$target3 === void 0 || (_e$target3 = _e$target3.childNodes[1]) === null || _e$target3 === void 0 || (_e$target3 = _e$target3.attributes) === null || _e$target3 === void 0 || (_e$target3 = _e$target3['p-id']) === null || _e$target3 === void 0 ? void 0 : _e$target3.nodeValue) === '7982') {\n // 点击到a标签的情况\n isLink = true;\n linkUrl = e.target.getAttribute('href');\n }\n return {\n isLink,\n linkUrl\n };\n};\n\n//# sourceURL=webpack:///./src/utils/kmindUtils.tsx?");
/***/ }),
/***/ "./src/utils/loading.js":
/*!******************************!*\
!*** ./src/utils/loading.js ***!
\******************************/
/*! exports provided: showLoading, hideLoading */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"showLoading\", function() { return showLoading; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hideLoading\", function() { return hideLoading; });\n/* harmony import */ var element_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! element-ui */ \"./node_modules/element-ui/lib/element-ui.common.js\");\n/* harmony import */ var element_ui__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(element_ui__WEBPACK_IMPORTED_MODULE_0__);\n\nlet loadingInstance = null;\nconst showLoading = target => {\n loadingInstance = element_ui__WEBPACK_IMPORTED_MODULE_0__[\"Loading\"].service({\n lock: true,\n target: target || document.body\n });\n};\nconst hideLoading = () => {\n if (loadingInstance) {\n loadingInstance.close();\n loadingInstance = null;\n }\n};\n\n//# sourceURL=webpack:///./src/utils/loading.js?");
/***/ })
}]);