{"version":3,"sources":["jsdelivr-header.js","webpack:///webpack/universalModuleDefinition","/npm/vue-editor-html@1.0.1/dist/webpack:/webpack/bootstrap 006b0f6be62251a46f9a","webpack:///src/commands/index.js","webpack:///src/constant-config.js","webpack:///src/modules/font/style.styl","webpack:///node_modules/_css-loader@0.28.7@css-loader/lib/css-base.js","webpack:///node_modules/_style-loader@0.19.0@style-loader/lib/addStyles.js","webpack:///src/modules/fore-color/style.styl","webpack:///src/util/index.js","webpack:///src/editor/style/main.styl","webpack:///node_modules/lrz/dist/lrz.all.bundle.js","webpack:///src/range-handler/index.js","webpack:///src/range-handler/assist-methods.js","webpack:///src/module-inspect/index.js","webpack:///src/index.js","webpack:///src/util/polyfill-ie.js","webpack:///src/modules/index.js","webpack:///src/modules/align/index.js","webpack:///src/modules/align/tab.js","webpack:///src/modules/align/tab.html","webpack:///src/modules/font/index.js","webpack:///src/modules/font/tab.js","webpack:///src/modules/font/tab.html","webpack:///src/modules/font/style.styl?443e","webpack:///node_modules/_style-loader@0.19.0@style-loader/lib/urls.js","webpack:///src/modules/font/config.js","webpack:///src/modules/full-screen/index.js","webpack:///src/modules/image/index.js","webpack:///src/modules/image/tab.js","webpack:///src/modules/image/tab.html","webpack:///src/modules/bold/index.js","webpack:///src/modules/italic/index.js","webpack:///src/modules/underline/index.js","webpack:///src/modules/todo/index.js","webpack:///src/modules/quote/index.js","webpack:///src/modules/indent/index.js","webpack:///src/modules/outdent/index.js","webpack:///src/modules/ul/index.js","webpack:///src/modules/ol/index.js","webpack:///src/modules/linethrough/index.js","webpack:///src/modules/icourt-todo/index.js","webpack:///src/modules/fore-color/index.js","webpack:///src/modules/fore-color/tab.js","webpack:///src/modules/fore-color/tab.html","webpack:///src/modules/fore-color/style.styl?dd6b","webpack:///src/shortcut/index.js","webpack:///src/editor/editor.js","webpack:///src/range-handler/instance.js","webpack:///src/commands/insertImage.js","webpack:///src/commands/fontSize.js","webpack:///src/commands/paste.js","webpack:///src/commands/enter.js","webpack:///src/commands/underline.js","webpack:///src/commands/strikeThrough.js","webpack:///src/commands/italic.js","webpack:///src/commands/bold.js","webpack:///src/commands/quote.js","webpack:///src/commands/todo.js","webpack:///src/commands/keydown.js","webpack:///src/commands/delete.js","webpack:///src/commands/justifyRight.js","webpack:///src/commands/justifyLeft.js","webpack:///src/commands/justifyCenter.js","webpack:///src/range-handler/handle-methods.js","webpack:///src/editor/style/main.styl?5bc6","webpack:///src/editor/editor.html","webpack:///src/editor/drag-pic.js","webpack:///src/module-inspect/load-module-inspect-exclude-rules.js","webpack:///src/i18n/zh-cn.js","webpack:///src/i18n/en-us.js"],"names":[],"mappings":"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","file":"/npm/vue-editor-html@1.0.1/dist/my-vue-editor.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/vue-editor-html@1.0.1/dist/my-vue-editor.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"myVueEditor\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"myVueEditor\"] = factory();\n\telse\n\t\troot[\"myVueEditor\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition",null,"import insertImage from './insertImage'\nimport fontSize from './fontSize'\nimport paste from './paste'\nimport enter from './enter'\nimport underline from './underline'\nimport strikeThrough from './strikeThrough'\nimport italic from './italic'\nimport bold from './bold'\nimport quote from './quote'\nimport todo from './todo'\nimport keydown from './keydown'\nimport deleteModule from './delete'\nimport justifyRight from './justifyRight'\nimport justifyLeft from './justifyLeft'\nimport justifyCenter from './justifyCenter'\nimport {isObj} from '../util'\nimport constant from '../constant-config'\n\nconst commands = {\n  /*\n   * add a style attribute in range(have bug)\n   * @param {obj} arg include\n   *      key: style name\n   *      value: style value\n   **/\n  addStyle (rh, arg) {\n    function doAdd(node) {\n      Object.keys(arg).forEach(styleName => {\n        node.style[styleName] = arg[styleName]\n      })\n    }\n\n    if (!isObj(arg)) return\n    const textNodes = rh.getAllTextNodesInRange()\n    if (!textNodes.length) {\n      if (rh.range.collapsed) {\n        let node = rh.range.commonAncestorContainer\n        if (node.nodeType === Node.ELEMENT_NODE) {\n          doAdd(node)\n          return\n        }\n      }\n    }\n    if (rh.range.collapsed && textNodes.length === 1) {\n      let node = textNodes[0].parentNode\n      if (node) {\n        if (node === rh.editZone()) {\n          let newRow = rh.newRow({tag: 'p'})\n          newRow.innerText = textNodes[0].nodeValue\n          node.replaceChild(newRow, textNodes[0])\n          doAdd(newRow)\n          return\n        }\n        doAdd(node)\n        return\n      }\n    }\n    if (textNodes.length === 1 && textNodes[0] === rh.range.startContainer\n      && textNodes[0] === rh.range.endContainer) {\n      const textNode = textNodes[0]\n      if (rh.range.startOffset === 0\n        && rh.range.endOffset === textNode.textContent.length) {\n        if (textNode.parentNode.childNodes.length === 1\n          && rh.isInlineElement(textNode.parentNode)) {\n          doAdd(textNode.parentNode)\n          return\n        }\n        const span = document.createElement('span')\n        doAdd(span)\n        textNode.parentNode.insertBefore(span, textNode)\n        span.appendChild(textNode)\n        return\n      }\n      const span = document.createElement('span')\n      span.innerText = textNode.textContent.substring(\n        rh.range.startOffset, rh.range.endOffset)\n      doAdd(span)\n      const frontPart = document.createTextNode(\n        textNode.textContent.substring(0, rh.range.startOffset))\n      textNode.parentNode.insertBefore(frontPart, textNode)\n      textNode.parentNode.insertBefore(span, textNode)\n      textNode.textContent = textNode.textContent.substring(rh.range.endOffset)\n      rh.range.setStart(span, 0)\n      rh.range.setEnd(span, 1)\n      return\n    }\n\n    textNodes.forEach((textNode) => {\n      if (textNode === rh.range.startContainer) {\n        if (rh.range.startOffset === 0) {\n          if (textNode.parentNode.childNodes.length === 1\n            && rh.isInlineElement(textNode.parentNode)) {\n            doAdd(textNode.parentNode)\n          } else {\n            const span = document.createElement('span')\n            doAdd(span)\n            textNode.parentNode.insertBefore(span, textNode)\n            span.appendChild(textNode)\n          }\n          return\n        }\n        const span = document.createElement('span')\n        textNode.textContent = textNode.textContent.substring(\n          0, rh.range.startOffset)\n        doAdd(span)\n        textNode.parentNode.insertBefore(span, textNode)\n        rh.range.setStart(textNode, 0)\n        return\n      }\n      if (textNode === rh.range.endContainer) {\n        if (rh.range.endOffset === textNode.textContent.length) {\n          if (textNode.parentNode.childNodes.length === 1\n            && rh.isInlineElement(textNode.parentNode)) {\n            doAdd(textNode.parentNode)\n          } else {\n            const span = document.createElement('span')\n            doAdd(span)\n            textNode.parentNode.insertBefore(span, textNode)\n            span.appendChild(textNode)\n          }\n          return\n        }\n        const span = document.createElement('span')\n        textNode.textContent = textNode.textContent.substring(rh.range.endOffset)\n        doAdd(span)\n        textNode.parentNode.insertBefore(span, textNode)\n        span.appendChild(textNode)\n        rh.range.setStart(textNode, textNode.textContent.length)\n        return\n      }\n      if (textNode.parentNode.childNodes.length === 1\n        && rh.isInlineElement(textNode.parentNode)) {\n        doAdd(textNode.parentNode)\n        return\n      }\n\n      const span = document.createElement('span')\n      doAdd(span)\n      textNode.parentNode.insertBefore(span, textNode)\n      span.appendChild(textNode)\n    })\n    return\n  },\n  'formatBlock' (rh, arg) {\n    if (document.execCommand('formatBlock', false, arg)) {\n      return\n    }\n    // hack\n    const element = document.createElement(arg)\n    rh.range.surroundContents(element)\n    return\n  },\n  'lineHeight' (rh, arg) {\n    const textNodes = rh.getAllTextNodesInRange()\n    textNodes.forEach((textNode) => {\n      const parentBlock = rh.getParentBlockNode(textNode)\n      if (parentBlock) {\n        parentBlock.style.lineHeight = arg\n      }\n    })\n    return\n  },\n  'insertHTML' (rh, arg) {\n    if (document.execCommand('insertHTML', false, arg)) {\n      return\n    }\n    commands['forceInsertHTML'](rh, arg)\n  },\n  /*\n   * insertHTML would insert DOM as row's child\n   * forceInsertHTML would insert DOM as anchorNode of range \n   **/\n  'forceInsertHTML' (rh, arg) {\n    let v = rh.newRow()\n    let s = rh.getSelection()\n    v.innerHTML = arg\n    if (v.hasChildNodes()) {\n      for (let i = 0; i < v.childNodes.length; i++) {\n        let curNode = v.childNodes[i]\n        rh.range.deleteContents()\n        rh.range.insertNode(curNode)\n        s.collapse(curNode, 1)\n      }\n    }\n    return\n  },\n  'indent' (rh, arg) {\n    let nodeList = []\n    if (rh.range.collapsed) {\n      weighting(rh.range.commonAncestorContainer)\n    } else {\n      let texts = rh.getAllTextNodesInRange()\n      texts.forEach(text => {\n        weighting(text)\n      })\n    }\n\n    nodeList.forEach(node => {\n      // cancel todo indent\n      if (node.getAttribute('data-editor-todo')) {\n        return\n      }\n      doIndent(node.nodeName, node)\n    })\n\n    function weighting(text) {\n      let node = rh.findSpecialAncestor(text, 'li') || rh.findSpecialAncestor(text, constant.ROW_TAG)\n      if (node && !nodeList.includes(node)) {\n        nodeList.push(node)\n      }\n    }\n\n    function doIndent(type, node) {\n      switch (type) {\n        case 'LI':\n          let curLevel = rh.howManyNestAncestorSameTag(node, 'UL') || rh.howManyNestAncestorSameTag(node, 'OL')\n          if (curLevel >= constant.MAX_INDENT_LEVEL) break\n          document.execCommand('indent', false, arg)\n          break\n        case constant.ROW_TAG_UPPERCASE:\n          let curPercent = node.style[constant.INDENT_STYLE_NAME] || '0'\n          curPercent = Number(curPercent.replace('%', ''))\n          node.style[constant.INDENT_STYLE_NAME] = ''\n          node.style[constant.OUTDENT_STYLE_NAME] = ''\n          if (curPercent / constant.INDENT_WIDTH_PERCENT >= constant.MAX_INDENT_LEVEL) {\n            node.style[constant.INDENT_STYLE_NAME] = curPercent + '%'\n            return\n          }\n          node.style[constant.INDENT_STYLE_NAME] = curPercent + constant.INDENT_WIDTH_PERCENT + '%'\n      }\n    }\n  },\n  'outdent' (rh, arg) {\n    let nodeList = []\n    if (rh.range.collapsed) {\n      weighting(rh.range.commonAncestorContainer)\n    } else {\n      let texts = rh.getAllTextNodesInRange()\n      texts.forEach(text => {\n        weighting(text)\n      })\n    }\n\n    let outdentResult\n    nodeList.forEach(node => {\n      outdentResult = doOutdent(node.nodeName, node)\n    })\n    return outdentResult\n\n    function weighting(text) {\n      let node = rh.findSpecialAncestor(text, 'li') || rh.findSpecialAncestor(text, constant.ROW_TAG)\n      if (node && !nodeList.includes(node)) {\n        nodeList.push(node)\n      }\n    }\n\n    function doOutdent(type, node) {\n      switch (type) {\n        case 'LI':\n          document.execCommand('outdent', false, arg)\n          break\n        case constant.ROW_TAG_UPPERCASE:\n          let curPercent = node.style[constant.INDENT_STYLE_NAME] || '0'\n          curPercent = Number(curPercent.replace('%', ''))\n          if (curPercent === 0) return 'NO_NEED_OUTDENT'\n          node.style[constant.INDENT_STYLE_NAME] = ''\n          node.style[constant.OUTDENT_STYLE_NAME] = ''\n          let targetIndent = curPercent - constant.INDENT_WIDTH_PERCENT\n          if (targetIndent < 0) {\n            node.style[constant.INDENT_STYLE_NAME] = ''\n          } else {\n            node.style[constant.INDENT_STYLE_NAME] = targetIndent + '%'\n          }\n      }\n    }\n  },\n  'insertUnorderedList' (rh, arg) {\n    // do not insert ul into a row\n    document.execCommand('insertUnorderedList', false, null)\n    let startNode = rh.getSelection().anchorNode\n    let row = rh.getRow(startNode)\n    let s = rh.getSelection()\n\n    // startNode is edit zone\n    if (!row) return\n\n    row = rh.createWrapperForInline(row, constant.ROW_TAG)\n\n    if (row) {\n      // let ul be a row\n      let maybeIsUl = row.firstElementChild\n      if (maybeIsUl && maybeIsUl.nodeName === 'UL' && row.nodeName !== 'UL') {\n        row.parentNode.replaceChild(maybeIsUl, row)\n        row = maybeIsUl\n      }\n\n      // remove br\n      if (row.nextSibling && row.nextSibling.nodeName === 'BR') {\n        row.nextSibling.parentNode.removeChild(row.nextSibling)\n      }\n\n      // special treatment for ul>li, to let module inspect run\n      // if ul and ol is bind into a module's tab, this should be change\n      if (s.isCollapsed && !rh.editor.modulesMap['ul'].moduleInspectResult) {\n        commands['insertHTML'](rh, '&#8203;')\n      }\n      return\n    } else {\n      let startNode = rh.getSelection().anchorNode\n      if (startNode === rh.editZone()) {\n        row = rh.newRow({br: true})\n        commands['insertHTML'](rh, row.outerHTML)\n      }\n    }\n  },\n  'insertOrderedList' (rh, arg) {\n    // do not insert ul into a row\n    document.execCommand('insertOrderedList', false, null)\n    let s = rh.getSelection()\n    let startNode = rh.getSelection().anchorNode\n    let row = rh.getRow(startNode)\n\n    // startNode is edit zone\n    if (!row) return\n\n    row = rh.createWrapperForInline(row, constant.ROW_TAG)\n\n    if (row) {\n      // let ul be a row\n      let maybeIsUl = row.firstElementChild\n      if (maybeIsUl && maybeIsUl.nodeName === 'OL' && row.nodeName !== 'OL') {\n        row.parentNode.replaceChild(maybeIsUl, row)\n        row = maybeIsUl\n      }\n\n      // remove br\n      if (row.nextSibling && row.nextSibling.nodeName === 'BR') {\n        row.nextSibling.parentNode.removeChild(row.nextSibling)\n      }\n\n      // special treatment for ul>li, to let module inspect run\n      // if ul and ol is bind into a module's tab, this should be change\n      if (s.isCollapsed && !rh.editor.modulesMap['ol'].moduleInspectResult) {\n        commands['insertHTML'](rh, '&#8203;')\n      }\n      return\n    } else {\n      let startNode = rh.getSelection().anchorNode\n      if (startNode === rh.editZone()) {\n        row = rh.newRow({br: true})\n        commands['insertHTML'](rh, row.outerHTML)\n      }\n    }\n  }\n}\ncommands.insertImage = insertImage\ncommands.fontSize = fontSize\ncommands.delete = deleteModule\ncommands.paste = paste\ncommands.enter = enter\ncommands.keydown = keydown\ncommands.underline = underline\ncommands.strikeThrough = strikeThrough\ncommands.bold = bold\ncommands.italic = italic\ncommands.justifyLeft = justifyLeft\ncommands.justifyCenter = justifyCenter\ncommands.justifyRight = justifyRight\nObject.assign(commands, quote, todo)\n\nexport default commands\n\n\n\n// WEBPACK FOOTER //\n// ./src/commands/index.js","export default {\n  MAX_INDENT_LEVEL: 10,\n  INDENT_WIDTH_PERCENT: 8,\n  INDENT_STYLE_NAME: 'marginLeft',\n  OUTDENT_STYLE_NAME: 'marginRight',\n  ROW_TAG: 'p',\n  ROW_TAG_UPPERCASE: 'P'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/constant-config.js","exports = module.exports = require(\"../../../node_modules/_css-loader@0.28.7@css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".font-tab {\\n  position: relative;\\n  font-size: 10px;\\n  height: 18px;\\n  line-height: 18px;\\n  width: 52px;\\n  text-align: center;\\n  padding: 4px 4px 4px 6px;\\n  text-align: left;\\n}\\n.font-tab:hover {\\n  background: #fff;\\n  padding: 3px 3px 3px 5px;\\n  border: 1px #bcbcbc solid;\\n}\\n.font-tab.forbidden {\\n  cursor: not-allowed;\\n  opacity: 0.3;\\n}\\n.font-tab .icon {\\n  float: right;\\n  padding: 3px;\\n}\\n.font-tab .dropdown {\\n  z-index: 1;\\n  position: absolute;\\n  background: #fff;\\n  left: -1px;\\n  top: 25px;\\n  border: 1px #bcbcbc solid;\\n  border-top: none;\\n  overflow: hidden;\\n}\\n.font-tab .dropdown li {\\n  box-sizing: border-box;\\n  padding-left: 4px;\\n  font-size: 12px;\\n  width: 60px;\\n  height: 30px;\\n  line-height: 30px;\\n  background: #fff;\\n  text-align: left;\\n  cursor: pointer;\\n}\\n.font-tab .dropdown li:hover {\\n  background: #f0f0f0;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_css-loader@0.28.7@css-loader!./node_modules/_stylus-loader@3.0.1@stylus-loader!./src/modules/font/style.styl\n// module id = 2\n// module chunks = 0","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t//  when a module is imported multiple times with different media queries.\n\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_css-loader@0.28.7@css-loader/lib/css-base.js\n// module id = 3\n// module chunks = 0","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(selector) {\n\t\tif (typeof memo[selector] === \"undefined\") {\n\t\t\tvar styleTarget = fn.call(this, selector);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[selector] = styleTarget;\n\t\t}\n\t\treturn memo[selector]\n\t};\n})(function (target) {\n\treturn document.querySelector(target)\n});\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton) options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n\tif (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertInto + \" \" + options.insertAt.before);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\toptions.attrs.type = \"text/css\";\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\toptions.attrs.type = \"text/css\";\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t    result = options.transform(obj.css);\n\n\t    if (result) {\n\t    \t// If transform returns a value, use that instead of the original css.\n\t    \t// This allows running runtime transformations on the css.\n\t    \tobj.css = result;\n\t    } else {\n\t    \t// If the transform function returns a falsy value, don't add this css.\n\t    \t// This allows conditional loading of css\n\t    \treturn function() {\n\t    \t\t// noop\n\t    \t};\n\t    }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default.  Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_style-loader@0.19.0@style-loader/lib/addStyles.js\n// module id = 4\n// module chunks = 0","exports = module.exports = require(\"../../../node_modules/_css-loader@0.28.7@css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".fore-color-tab {\\n  position: relative;\\n  font-size: 10px;\\n  height: 18px;\\n  line-height: 18px;\\n  width: 14px;\\n  text-align: center;\\n  padding: 4px 4px 4px 6px;\\n  text-align: left;\\n}\\n.fore-color-tab:hover {\\n  background: #fff;\\n  padding: 3px 3px 3px 5px;\\n  border: 1px #bcbcbc solid;\\n}\\n.fore-color-tab.forbidden {\\n  cursor: not-allowed;\\n  opacity: 0.3;\\n}\\n.fore-color-tab .icon {\\n  position: relative;\\n  top: -3px;\\n}\\n.fore-color-tab .choosed {\\n  position: relative;\\n  left: -0.6px;\\n  bottom: 3px;\\n  width: 12px;\\n  height: 4px;\\n}\\n.fore-color-tab .dropdown {\\n  padding: 5px;\\n  width: 180px;\\n  z-index: 1;\\n  position: absolute;\\n  background: #fff;\\n  left: -1px;\\n  top: 25px;\\n  border: 1px #bcbcbc solid;\\n  overflow: hidden;\\n}\\n.fore-color-tab .dropdown li {\\n  margin: 2px;\\n  float: left;\\n  width: 15px;\\n  height: 15px;\\n  cursor: pointer;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_css-loader@0.28.7@css-loader!./node_modules/_stylus-loader@3.0.1@stylus-loader!./src/modules/fore-color/style.styl\n// module id = 5\n// module chunks = 0","/**\n * shadow clone\n * @param source    source object\n * @param ext       extended object\n */\nexport const mixin = (source = {}, ext = {}) => {\n    Object.keys(ext).forEach((k) => {\n        // for data function\n        if (k === 'data') {\n            const dataSrc = source[k]\n            const dataDesc = ext[k]\n            if (typeof dataDesc === 'function') {\n                if (typeof dataSrc !== 'function') {\n                    source[k] = dataDesc\n                } else {\n                    source[k] = () => mixin(dataSrc(), dataDesc())\n                }\n            }\n        } else {\n            source[k] = ext[k]\n        }\n    })\n    return source\n}\n\nexport const isObj = data => {\n  return Object.prototype.toString.call(data).slice(-7, -1) === 'Object'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/index.js","exports = module.exports = require(\"../../../node_modules/_css-loader@0.28.7@css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"html,\\nbody,\\ndiv,\\nspan,\\nobject,\\niframe,\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\np,\\nblockquote,\\npre,\\nabbr,\\naddress,\\ncite,\\ncode,\\ndel,\\ndfn,\\nem,\\nimg,\\nins,\\nkbd,\\nq,\\nsamp,\\nsmall,\\nstrong,\\nsub,\\nsup,\\nvar,\\nb,\\ni,\\ndl,\\ndt,\\ndd,\\nol,\\nul,\\nli,\\nfieldset,\\nform,\\nlabel,\\nlegend,\\ntable,\\ncaption,\\ntbody,\\ntfoot,\\nthead,\\ntr,\\nth,\\ntd,\\narticle,\\naside,\\ncanvas,\\ndetails,\\nfigcaption,\\nfigure,\\nfooter,\\nheader,\\nhgroup,\\nmenu,\\nnav,\\nsection,\\nsummary,\\ntime,\\nmark,\\naudio,\\nvideo {\\n  margin: 0;\\n  padding: 0;\\n  border: 0;\\n  outline: 0;\\n  font-size: 100%;\\n  vertical-align: baseline;\\n  background: transparent;\\n}\\nbody {\\n  line-height: 1;\\n}\\n:focus {\\n  outline: 1;\\n}\\narticle,\\naside,\\ncanvas,\\ndetails,\\nfigcaption,\\nfigure,\\nfooter,\\nheader,\\nhgroup,\\nmenu,\\nnav,\\nsection,\\nsummary {\\n  display: block;\\n}\\nnav ul {\\n  list-style: none;\\n}\\nblockquote,\\nq {\\n  quotes: none;\\n}\\nblockquote:before,\\nblockquote:after,\\nq:before,\\nq:after {\\n  content: '';\\n  content: none;\\n}\\na {\\n  margin: 0;\\n  padding: 0;\\n  border: 0;\\n  font-size: 100%;\\n  vertical-align: baseline;\\n  background: transparent;\\n}\\nins {\\n  background-color: #ff9;\\n  color: #000;\\n  text-decoration: none;\\n}\\nmark {\\n  background-color: #ff9;\\n  color: #000;\\n  font-style: italic;\\n  font-weight: bold;\\n}\\ndel {\\n  text-decoration: line-through;\\n}\\nabbr[title],\\ndfn[title] {\\n  border-bottom: 1px dotted #000;\\n  cursor: help;\\n}\\ntable {\\n  border-collapse: collapse;\\n  border-spacing: 0;\\n}\\nhr {\\n  display: block;\\n  height: 1px;\\n  border: 0;\\n  border-top: 1px solid #ccc;\\n  margin: 1em 0;\\n  padding: 0;\\n}\\ninput,\\nselect {\\n  vertical-align: middle;\\n}\\n.my-vue-editor {\\n  display: block;\\n  border: 1px solid #d1d1d1;\\n  padding: 0;\\n}\\n.my-vue-editor img {\\n  max-width: 98%;\\n}\\n.my-vue-editor .toolbar {\\n  height: auto;\\n  border-bottom: 1px solid #d1d1d1;\\n  background: #f8f8f8;\\n  padding: 6px 8px;\\n  white-space: normal;\\n}\\n.my-vue-editor .toolbar .tabs:after {\\n  content: '';\\n  display: block;\\n  clear: both;\\n}\\n.my-vue-editor .toolbar .tabs .tab {\\n  margin: 0 2px;\\n  float: left;\\n}\\n.my-vue-editor .toolbar .tabs .tab .icon {\\n  vertical-align: sub;\\n}\\n.my-vue-editor .toolbar .tabs .btn {\\n  display: inline-block;\\n  list-style: none;\\n  height: 18px;\\n  line-height: 18px;\\n  padding: 4px 6px;\\n  border: 0;\\n  position: relative;\\n  font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif;\\n  color: #000;\\n  text-align: center;\\n  white-space: nowrap;\\n  text-decoration: none;\\n}\\n.my-vue-editor .toolbar .tabs .btn:hover {\\n  padding: 3px 5px;\\n  background: #f0f0f0;\\n  border: 1px #bcbcbc solid;\\n}\\n.my-vue-editor .toolbar .tabs .btn.highLight {\\n  padding: 3px 5px;\\n  background: #e5e5e5;\\n  border: 1px #bcbcbc solid;\\n}\\n.my-vue-editor .toolbar .tabs .btn.forbidden {\\n  cursor: not-allowed;\\n  opacity: 0.3;\\n}\\n.my-vue-editor .content {\\n  box-sizing: border-box;\\n  width: 100%;\\n  clear: both;\\n  outline: none;\\n  padding: 20px;\\n  font-size: 16px;\\n  line-height: 24px;\\n  word-wrap: break-word;\\n}\\n.my-vue-editor .content blockquote {\\n  min-width: 38px;\\n}\\n.my-vue-editor .content [data-editor-quote] {\\n  margin: 14px 0 14px 35px;\\n}\\n.my-vue-editor .content [data-editor-quote] div:first-child {\\n  margin-top: -21px;\\n}\\n.my-vue-editor .content [data-editor-quote] div {\\n  margin-left: 2px;\\n  outline: none;\\n  color: #737373;\\n  font-size: 14px;\\n}\\n.my-vue-editor .content [data-editor-quote]::before {\\n  position: relative;\\n  top: 2px;\\n  left: 0;\\n  margin: 0px 4px 0 -24px;\\n  color: #b7b7b7;\\n  font-size: 20px;\\n  content: \\\"\\\\F10E\\\";\\n  display: inline-block;\\n  font: normal normal normal 14px/1 FontAwesome;\\n  text-rendering: auto;\\n  -webkit-font-smoothing: antialiased;\\n  transform: rotateY(180deg);\\n}\\n.my-vue-editor .content ul ul {\\n  margin-left: 10%;\\n}\\n.my-vue-editor .content li {\\n  margin-left: 5.5%;\\n}\\n.my-vue-editor .content [data-editor-todo] {\\n  display: inline-block;\\n  width: 90%;\\n}\\n.my-vue-editor .content [data-editor-todo] label {\\n  cursor: pointer;\\n  position: relative;\\n  top: 3.5px;\\n  left: 2.5px;\\n  font-size: 16px;\\n  color: #cdc9c5;\\n}\\n.my-vue-editor .content [data-editor-todo] input[type=text] {\\n  border: none;\\n  outline: none;\\n  width: 90%;\\n  font-size: 14px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_css-loader@0.28.7@css-loader!./node_modules/_stylus-loader@3.0.1@stylus-loader!./src/editor/style/main.styl\n// module id = 7\n// module chunks = 0","!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)(\"object\"==typeof exports?exports:e)[r]=n[r]}}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p=\"\",t(0)}([function(e,t,n){n(6),n(7),e.exports=n(8)},function(e,t,n){(function(t){!function(n){function r(e,t){return function(){e.apply(t,arguments)}}function i(e){if(\"object\"!=typeof this)throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof e)throw new TypeError(\"not a function\");this._state=null,this._value=null,this._deferreds=[],l(e,r(a,this),r(s,this))}function o(e){var t=this;return null===this._state?void this._deferreds.push(e):void f(function(){var n=t._state?e.onFulfilled:e.onRejected;if(null===n)return void(t._state?e.resolve:e.reject)(t._value);var r;try{r=n(t._value)}catch(i){return void e.reject(i)}e.resolve(r)})}function a(e){try{if(e===this)throw new TypeError(\"A promise cannot be resolved with itself.\");if(e&&(\"object\"==typeof e||\"function\"==typeof e)){var t=e.then;if(\"function\"==typeof t)return void l(r(t,e),r(a,this),r(s,this))}this._state=!0,this._value=e,u.call(this)}catch(n){s.call(this,n)}}function s(e){this._state=!1,this._value=e,u.call(this)}function u(){for(var e=0,t=this._deferreds.length;t>e;e++)o.call(this,this._deferreds[e]);this._deferreds=null}function c(e,t,n,r){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.resolve=n,this.reject=r}function l(e,t,n){var r=!1;try{e(function(e){r||(r=!0,t(e))},function(e){r||(r=!0,n(e))})}catch(i){if(r)return;r=!0,n(i)}}var f=\"function\"==typeof t&&t||function(e){setTimeout(e,1)},d=Array.isArray||function(e){return\"[object Array]\"===Object.prototype.toString.call(e)};i.prototype[\"catch\"]=function(e){return this.then(null,e)},i.prototype.then=function(e,t){var n=this;return new i(function(r,i){o.call(n,new c(e,t,r,i))})},i.all=function(){var e=Array.prototype.slice.call(1===arguments.length&&d(arguments[0])?arguments[0]:arguments);return new i(function(t,n){function r(o,a){try{if(a&&(\"object\"==typeof a||\"function\"==typeof a)){var s=a.then;if(\"function\"==typeof s)return void s.call(a,function(e){r(o,e)},n)}e[o]=a,0===--i&&t(e)}catch(u){n(u)}}if(0===e.length)return t([]);for(var i=e.length,o=0;o<e.length;o++)r(o,e[o])})},i.resolve=function(e){return e&&\"object\"==typeof e&&e.constructor===i?e:new i(function(t){t(e)})},i.reject=function(e){return new i(function(t,n){n(e)})},i.race=function(e){return new i(function(t,n){for(var r=0,i=e.length;i>r;r++)e[r].then(t,n)})},i._setImmediateFn=function(e){f=e},i.prototype.always=function(e){var t=this.constructor;return this.then(function(n){return t.resolve(e()).then(function(){return n})},function(n){return t.resolve(e()).then(function(){throw n})})},\"undefined\"!=typeof e&&e.exports?e.exports=i:n.Promise||(n.Promise=i)}(this)}).call(t,n(2).setImmediate)},function(e,t,n){(function(e,r){function i(e,t){this._id=e,this._clearFn=t}var o=n(3).nextTick,a=Function.prototype.apply,s=Array.prototype.slice,u={},c=0;t.setTimeout=function(){return new i(a.call(setTimeout,window,arguments),clearTimeout)},t.setInterval=function(){return new i(a.call(setInterval,window,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(window,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},t.setImmediate=\"function\"==typeof e?e:function(e){var n=c++,r=arguments.length<2?!1:s.call(arguments,1);return u[n]=!0,o(function(){u[n]&&(r?e.apply(null,r):e.call(null),t.clearImmediate(n))}),n},t.clearImmediate=\"function\"==typeof r?r:function(e){delete u[e]}}).call(t,n(2).setImmediate,n(2).clearImmediate)},function(e,t){function n(){c=!1,a.length?u=a.concat(u):l=-1,u.length&&r()}function r(){if(!c){var e=setTimeout(n);c=!0;for(var t=u.length;t;){for(a=u,u=[];++l<t;)a&&a[l].run();l=-1,t=u.length}a=null,c=!1,clearTimeout(e)}}function i(e,t){this.fun=e,this.array=t}function o(){}var a,s=e.exports={},u=[],c=!1,l=-1;s.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new i(e,t)),1!==u.length||c||setTimeout(r,0)},i.prototype.run=function(){this.fun.apply(null,this.array)},s.title=\"browser\",s.browser=!0,s.env={},s.argv=[],s.version=\"\",s.versions={},s.on=o,s.addListener=o,s.once=o,s.off=o,s.removeListener=o,s.removeAllListeners=o,s.emit=o,s.binding=function(e){throw new Error(\"process.binding is not supported\")},s.cwd=function(){return\"/\"},s.chdir=function(e){throw new Error(\"process.chdir is not supported\")},s.umask=function(){return 0}},function(e,t){function n(){var e=~navigator.userAgent.indexOf(\"Android\")&&~navigator.vendor.indexOf(\"Google\")&&!~navigator.userAgent.indexOf(\"Chrome\");return e&&navigator.userAgent.match(/AppleWebKit\\/(\\d+)/).pop()<=534||/MQQBrowser/g.test(navigator.userAgent)}var r=function(){try{return new Blob,!0}catch(e){return!1}}()?window.Blob:function(e,t){var n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MSBlobBuilder||window.MozBlobBuilder);return e.forEach(function(e){n.append(e)}),n.getBlob(t?t.type:void 0)},i=function(){function e(){var e=this,n=[],i=Array(21).join(\"-\")+(+new Date*(1e16*Math.random())).toString(36),o=XMLHttpRequest.prototype.send;this.getParts=function(){return n.toString()},this.append=function(e,t,r){n.push(\"--\"+i+'\\r\\nContent-Disposition: form-data; name=\"'+e+'\"'),t instanceof Blob?(n.push('; filename=\"'+(r||\"blob\")+'\"\\r\\nContent-Type: '+t.type+\"\\r\\n\\r\\n\"),n.push(t)):n.push(\"\\r\\n\\r\\n\"+t),n.push(\"\\r\\n\")},t++,XMLHttpRequest.prototype.send=function(a){var s,u,c=this;a===e?(n.push(\"--\"+i+\"--\\r\\n\"),u=new r(n),s=new FileReader,s.onload=function(){o.call(c,s.result)},s.onerror=function(e){throw e},s.readAsArrayBuffer(u),this.setRequestHeader(\"Content-Type\",\"multipart/form-data; boundary=\"+i),t--,0==t&&(XMLHttpRequest.prototype.send=o)):o.call(this,a)}}var t=0;return e.prototype=Object.create(FormData.prototype),e}();e.exports={Blob:r,FormData:n()?i:FormData}},function(e,t,n){var r,i;(function(){function n(e){return!!e.exifdata}function o(e,t){t=t||e.match(/^data\\:([^\\;]+)\\;base64,/im)[1]||\"\",e=e.replace(/^data\\:([^\\;]+)\\;base64,/gim,\"\");for(var n=atob(e),r=n.length,i=new ArrayBuffer(r),o=new Uint8Array(i),a=0;r>a;a++)o[a]=n.charCodeAt(a);return i}function a(e,t){var n=new XMLHttpRequest;n.open(\"GET\",e,!0),n.responseType=\"blob\",n.onload=function(e){(200==this.status||0===this.status)&&t(this.response)},n.send()}function s(e,t){function n(n){var r=u(n),i=c(n);e.exifdata=r||{},e.iptcdata=i||{},t&&t.call(e)}if(e.src)if(/^data\\:/i.test(e.src)){var r=o(e.src);n(r)}else if(/^blob\\:/i.test(e.src)){var i=new FileReader;i.onload=function(e){n(e.target.result)},a(e.src,function(e){i.readAsArrayBuffer(e)})}else{var s=new XMLHttpRequest;s.onload=function(){200==this.status||0===this.status?n(s.response):t(new Error(\"Could not load image\")),s=null},s.open(\"GET\",e.src,!0),s.responseType=\"arraybuffer\",s.send(null)}else if(window.FileReader&&(e instanceof window.Blob||e instanceof window.File)){var i=new FileReader;i.onload=function(e){p&&console.log(\"Got file of length \"+e.target.result.byteLength),n(e.target.result)},i.readAsArrayBuffer(e)}}function u(e){var t=new DataView(e);if(p&&console.log(\"Got file of length \"+e.byteLength),255!=t.getUint8(0)||216!=t.getUint8(1))return p&&console.log(\"Not a valid JPEG\"),!1;for(var n,r=2,i=e.byteLength;i>r;){if(255!=t.getUint8(r))return p&&console.log(\"Not a valid marker at offset \"+r+\", found: \"+t.getUint8(r)),!1;if(n=t.getUint8(r+1),p&&console.log(n),225==n)return p&&console.log(\"Found 0xFFE1 marker\"),g(t,r+4,t.getUint16(r+2)-2);r+=2+t.getUint16(r+2)}}function c(e){var t=new DataView(e);if(p&&console.log(\"Got file of length \"+e.byteLength),255!=t.getUint8(0)||216!=t.getUint8(1))return p&&console.log(\"Not a valid JPEG\"),!1;for(var n=2,r=e.byteLength,i=function(e,t){return 56===e.getUint8(t)&&66===e.getUint8(t+1)&&73===e.getUint8(t+2)&&77===e.getUint8(t+3)&&4===e.getUint8(t+4)&&4===e.getUint8(t+5)};r>n;){if(i(t,n)){var o=t.getUint8(n+7);o%2!==0&&(o+=1),0===o&&(o=4);var a=n+8+o,s=t.getUint16(n+6+o);return l(e,a,s)}n++}}function l(e,t,n){for(var r,i,o,a,s,u=new DataView(e),c={},l=t;t+n>l;)28===u.getUint8(l)&&2===u.getUint8(l+1)&&(a=u.getUint8(l+2),a in S&&(o=u.getInt16(l+3),s=o+5,i=S[a],r=h(u,l+5,o),c.hasOwnProperty(i)?c[i]instanceof Array?c[i].push(r):c[i]=[c[i],r]:c[i]=r)),l++;return c}function f(e,t,n,r,i){var o,a,s,u=e.getUint16(n,!i),c={};for(s=0;u>s;s++)o=n+12*s+2,a=r[e.getUint16(o,!i)],!a&&p&&console.log(\"Unknown tag: \"+e.getUint16(o,!i)),c[a]=d(e,o,t,n,i);return c}function d(e,t,n,r,i){var o,a,s,u,c,l,f=e.getUint16(t+2,!i),d=e.getUint32(t+4,!i),g=e.getUint32(t+8,!i)+n;switch(f){case 1:case 7:if(1==d)return e.getUint8(t+8,!i);for(o=d>4?g:t+8,a=[],u=0;d>u;u++)a[u]=e.getUint8(o+u);return a;case 2:return o=d>4?g:t+8,h(e,o,d-1);case 3:if(1==d)return e.getUint16(t+8,!i);for(o=d>2?g:t+8,a=[],u=0;d>u;u++)a[u]=e.getUint16(o+2*u,!i);return a;case 4:if(1==d)return e.getUint32(t+8,!i);for(a=[],u=0;d>u;u++)a[u]=e.getUint32(g+4*u,!i);return a;case 5:if(1==d)return c=e.getUint32(g,!i),l=e.getUint32(g+4,!i),s=new Number(c/l),s.numerator=c,s.denominator=l,s;for(a=[],u=0;d>u;u++)c=e.getUint32(g+8*u,!i),l=e.getUint32(g+4+8*u,!i),a[u]=new Number(c/l),a[u].numerator=c,a[u].denominator=l;return a;case 9:if(1==d)return e.getInt32(t+8,!i);for(a=[],u=0;d>u;u++)a[u]=e.getInt32(g+4*u,!i);return a;case 10:if(1==d)return e.getInt32(g,!i)/e.getInt32(g+4,!i);for(a=[],u=0;d>u;u++)a[u]=e.getInt32(g+8*u,!i)/e.getInt32(g+4+8*u,!i);return a}}function h(e,t,n){var r,i=\"\";for(r=t;t+n>r;r++)i+=String.fromCharCode(e.getUint8(r));return i}function g(e,t){if(\"Exif\"!=h(e,t,4))return p&&console.log(\"Not valid EXIF data! \"+h(e,t,4)),!1;var n,r,i,o,a,s=t+6;if(18761==e.getUint16(s))n=!1;else{if(19789!=e.getUint16(s))return p&&console.log(\"Not valid TIFF data! (no 0x4949 or 0x4D4D)\"),!1;n=!0}if(42!=e.getUint16(s+2,!n))return p&&console.log(\"Not valid TIFF data! (no 0x002A)\"),!1;var u=e.getUint32(s+4,!n);if(8>u)return p&&console.log(\"Not valid TIFF data! (First offset less than 8)\",e.getUint32(s+4,!n)),!1;if(r=f(e,s,s+u,v,n),r.ExifIFDPointer){o=f(e,s,s+r.ExifIFDPointer,w,n);for(i in o){switch(i){case\"LightSource\":case\"Flash\":case\"MeteringMode\":case\"ExposureProgram\":case\"SensingMethod\":case\"SceneCaptureType\":case\"SceneType\":case\"CustomRendered\":case\"WhiteBalance\":case\"GainControl\":case\"Contrast\":case\"Saturation\":case\"Sharpness\":case\"SubjectDistanceRange\":case\"FileSource\":o[i]=b[i][o[i]];break;case\"ExifVersion\":case\"FlashpixVersion\":o[i]=String.fromCharCode(o[i][0],o[i][1],o[i][2],o[i][3]);break;case\"ComponentsConfiguration\":o[i]=b.Components[o[i][0]]+b.Components[o[i][1]]+b.Components[o[i][2]]+b.Components[o[i][3]]}r[i]=o[i]}}if(r.GPSInfoIFDPointer){a=f(e,s,s+r.GPSInfoIFDPointer,y,n);for(i in a){switch(i){case\"GPSVersionID\":a[i]=a[i][0]+\".\"+a[i][1]+\".\"+a[i][2]+\".\"+a[i][3]}r[i]=a[i]}}return r}var p=!1,m=function(e){return e instanceof m?e:this instanceof m?void(this.EXIFwrapped=e):new m(e)};\"undefined\"!=typeof e&&e.exports&&(t=e.exports=m),t.EXIF=m;var w=m.Tags={36864:\"ExifVersion\",40960:\"FlashpixVersion\",40961:\"ColorSpace\",40962:\"PixelXDimension\",40963:\"PixelYDimension\",37121:\"ComponentsConfiguration\",37122:\"CompressedBitsPerPixel\",37500:\"MakerNote\",37510:\"UserComment\",40964:\"RelatedSoundFile\",36867:\"DateTimeOriginal\",36868:\"DateTimeDigitized\",37520:\"SubsecTime\",37521:\"SubsecTimeOriginal\",37522:\"SubsecTimeDigitized\",33434:\"ExposureTime\",33437:\"FNumber\",34850:\"ExposureProgram\",34852:\"SpectralSensitivity\",34855:\"ISOSpeedRatings\",34856:\"OECF\",37377:\"ShutterSpeedValue\",37378:\"ApertureValue\",37379:\"BrightnessValue\",37380:\"ExposureBias\",37381:\"MaxApertureValue\",37382:\"SubjectDistance\",37383:\"MeteringMode\",37384:\"LightSource\",37385:\"Flash\",37396:\"SubjectArea\",37386:\"FocalLength\",41483:\"FlashEnergy\",41484:\"SpatialFrequencyResponse\",41486:\"FocalPlaneXResolution\",41487:\"FocalPlaneYResolution\",41488:\"FocalPlaneResolutionUnit\",41492:\"SubjectLocation\",41493:\"ExposureIndex\",41495:\"SensingMethod\",41728:\"FileSource\",41729:\"SceneType\",41730:\"CFAPattern\",41985:\"CustomRendered\",41986:\"ExposureMode\",41987:\"WhiteBalance\",41988:\"DigitalZoomRation\",41989:\"FocalLengthIn35mmFilm\",41990:\"SceneCaptureType\",41991:\"GainControl\",41992:\"Contrast\",41993:\"Saturation\",41994:\"Sharpness\",41995:\"DeviceSettingDescription\",41996:\"SubjectDistanceRange\",40965:\"InteroperabilityIFDPointer\",42016:\"ImageUniqueID\"},v=m.TiffTags={256:\"ImageWidth\",257:\"ImageHeight\",34665:\"ExifIFDPointer\",34853:\"GPSInfoIFDPointer\",40965:\"InteroperabilityIFDPointer\",258:\"BitsPerSample\",259:\"Compression\",262:\"PhotometricInterpretation\",274:\"Orientation\",277:\"SamplesPerPixel\",284:\"PlanarConfiguration\",530:\"YCbCrSubSampling\",531:\"YCbCrPositioning\",282:\"XResolution\",283:\"YResolution\",296:\"ResolutionUnit\",273:\"StripOffsets\",278:\"RowsPerStrip\",279:\"StripByteCounts\",513:\"JPEGInterchangeFormat\",514:\"JPEGInterchangeFormatLength\",301:\"TransferFunction\",318:\"WhitePoint\",319:\"PrimaryChromaticities\",529:\"YCbCrCoefficients\",532:\"ReferenceBlackWhite\",306:\"DateTime\",270:\"ImageDescription\",271:\"Make\",272:\"Model\",305:\"Software\",315:\"Artist\",33432:\"Copyright\"},y=m.GPSTags={0:\"GPSVersionID\",1:\"GPSLatitudeRef\",2:\"GPSLatitude\",3:\"GPSLongitudeRef\",4:\"GPSLongitude\",5:\"GPSAltitudeRef\",6:\"GPSAltitude\",7:\"GPSTimeStamp\",8:\"GPSSatellites\",9:\"GPSStatus\",10:\"GPSMeasureMode\",11:\"GPSDOP\",12:\"GPSSpeedRef\",13:\"GPSSpeed\",14:\"GPSTrackRef\",15:\"GPSTrack\",16:\"GPSImgDirectionRef\",17:\"GPSImgDirection\",18:\"GPSMapDatum\",19:\"GPSDestLatitudeRef\",20:\"GPSDestLatitude\",21:\"GPSDestLongitudeRef\",22:\"GPSDestLongitude\",23:\"GPSDestBearingRef\",24:\"GPSDestBearing\",25:\"GPSDestDistanceRef\",26:\"GPSDestDistance\",27:\"GPSProcessingMethod\",28:\"GPSAreaInformation\",29:\"GPSDateStamp\",30:\"GPSDifferential\"},b=m.StringValues={ExposureProgram:{0:\"Not defined\",1:\"Manual\",2:\"Normal program\",3:\"Aperture priority\",4:\"Shutter priority\",5:\"Creative program\",6:\"Action program\",7:\"Portrait mode\",8:\"Landscape mode\"},MeteringMode:{0:\"Unknown\",1:\"Average\",2:\"CenterWeightedAverage\",3:\"Spot\",4:\"MultiSpot\",5:\"Pattern\",6:\"Partial\",255:\"Other\"},LightSource:{0:\"Unknown\",1:\"Daylight\",2:\"Fluorescent\",3:\"Tungsten (incandescent light)\",4:\"Flash\",9:\"Fine weather\",10:\"Cloudy weather\",11:\"Shade\",12:\"Daylight fluorescent (D 5700 - 7100K)\",13:\"Day white fluorescent (N 4600 - 5400K)\",14:\"Cool white fluorescent (W 3900 - 4500K)\",15:\"White fluorescent (WW 3200 - 3700K)\",17:\"Standard light A\",18:\"Standard light B\",19:\"Standard light C\",20:\"D55\",21:\"D65\",22:\"D75\",23:\"D50\",24:\"ISO studio tungsten\",255:\"Other\"},Flash:{0:\"Flash did not fire\",1:\"Flash fired\",5:\"Strobe return light not detected\",7:\"Strobe return light detected\",9:\"Flash fired, compulsory flash mode\",13:\"Flash fired, compulsory flash mode, return light not detected\",15:\"Flash fired, compulsory flash mode, return light detected\",16:\"Flash did not fire, compulsory flash mode\",24:\"Flash did not fire, auto mode\",25:\"Flash fired, auto mode\",29:\"Flash fired, auto mode, return light not detected\",31:\"Flash fired, auto mode, return light detected\",32:\"No flash function\",65:\"Flash fired, red-eye reduction mode\",69:\"Flash fired, red-eye reduction mode, return light not detected\",71:\"Flash fired, red-eye reduction mode, return light detected\",73:\"Flash fired, compulsory flash mode, red-eye reduction mode\",77:\"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected\",79:\"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected\",89:\"Flash fired, auto mode, red-eye reduction mode\",93:\"Flash fired, auto mode, return light not detected, red-eye reduction mode\",95:\"Flash fired, auto mode, return light detected, red-eye reduction mode\"},SensingMethod:{1:\"Not defined\",2:\"One-chip color area sensor\",3:\"Two-chip color area sensor\",4:\"Three-chip color area sensor\",5:\"Color sequential area sensor\",7:\"Trilinear sensor\",8:\"Color sequential linear sensor\"},SceneCaptureType:{0:\"Standard\",1:\"Landscape\",2:\"Portrait\",3:\"Night scene\"},SceneType:{1:\"Directly photographed\"},CustomRendered:{0:\"Normal process\",1:\"Custom process\"},WhiteBalance:{0:\"Auto white balance\",1:\"Manual white balance\"},GainControl:{0:\"None\",1:\"Low gain up\",2:\"High gain up\",3:\"Low gain down\",4:\"High gain down\"},Contrast:{0:\"Normal\",1:\"Soft\",2:\"Hard\"},Saturation:{0:\"Normal\",1:\"Low saturation\",2:\"High saturation\"},Sharpness:{0:\"Normal\",1:\"Soft\",2:\"Hard\"},SubjectDistanceRange:{0:\"Unknown\",1:\"Macro\",2:\"Close view\",3:\"Distant view\"},FileSource:{3:\"DSC\"},Components:{0:\"\",1:\"Y\",2:\"Cb\",3:\"Cr\",4:\"R\",5:\"G\",6:\"B\"}},S={120:\"caption\",110:\"credit\",25:\"keywords\",55:\"dateCreated\",80:\"byline\",85:\"bylineTitle\",122:\"captionWriter\",105:\"headline\",116:\"copyright\",15:\"category\"};m.getData=function(e,t){return(e instanceof Image||e instanceof HTMLImageElement)&&!e.complete?!1:(n(e)?t&&t.call(e):s(e,t),!0)},m.getTag=function(e,t){return n(e)?e.exifdata[t]:void 0},m.getAllTags=function(e){if(!n(e))return{};var t,r=e.exifdata,i={};for(t in r)r.hasOwnProperty(t)&&(i[t]=r[t]);return i},m.pretty=function(e){if(!n(e))return\"\";var t,r=e.exifdata,i=\"\";for(t in r)r.hasOwnProperty(t)&&(i+=\"object\"==typeof r[t]?r[t]instanceof Number?t+\" : \"+r[t]+\" [\"+r[t].numerator+\"/\"+r[t].denominator+\"]\\r\\n\":t+\" : [\"+r[t].length+\" values]\\r\\n\":t+\" : \"+r[t]+\"\\r\\n\");return i},m.readFromBinaryFile=function(e){return u(e)},r=[],i=function(){return m}.apply(t,r),!(void 0!==i&&(e.exports=i))}).call(this)},function(e,t,n){var r,i;!function(){function n(e){var t=e.naturalWidth,n=e.naturalHeight;if(t*n>1048576){var r=document.createElement(\"canvas\");r.width=r.height=1;var i=r.getContext(\"2d\");return i.drawImage(e,-t+1,0),0===i.getImageData(0,0,1,1).data[3]}return!1}function o(e,t,n){var r=document.createElement(\"canvas\");r.width=1,r.height=n;var i=r.getContext(\"2d\");i.drawImage(e,0,0);for(var o=i.getImageData(0,0,1,n).data,a=0,s=n,u=n;u>a;){var c=o[4*(u-1)+3];0===c?s=u:a=u,u=s+a>>1}var l=u/n;return 0===l?1:l}function a(e,t,n){var r=document.createElement(\"canvas\");return s(e,r,t,n),r.toDataURL(\"image/jpeg\",t.quality||.8)}function s(e,t,r,i){var a=e.naturalWidth,s=e.naturalHeight,c=r.width,l=r.height,f=t.getContext(\"2d\");f.save(),u(t,f,c,l,r.orientation);var d=n(e);d&&(a/=2,s/=2);var h=1024,g=document.createElement(\"canvas\");g.width=g.height=h;for(var p=g.getContext(\"2d\"),m=i?o(e,a,s):1,w=Math.ceil(h*c/a),v=Math.ceil(h*l/s/m),y=0,b=0;s>y;){for(var S=0,I=0;a>S;)p.clearRect(0,0,h,h),p.drawImage(e,-S,-y),f.drawImage(g,0,0,h,h,I,b,w,v),S+=h,I+=w;y+=h,b+=v}f.restore(),g=p=null}function u(e,t,n,r,i){switch(i){case 5:case 6:case 7:case 8:e.width=r,e.height=n;break;default:e.width=n,e.height=r}switch(i){case 2:t.translate(n,0),t.scale(-1,1);break;case 3:t.translate(n,r),t.rotate(Math.PI);break;case 4:t.translate(0,r),t.scale(1,-1);break;case 5:t.rotate(.5*Math.PI),t.scale(1,-1);break;case 6:t.rotate(.5*Math.PI),t.translate(0,-r);break;case 7:t.rotate(.5*Math.PI),t.translate(n,-r),t.scale(-1,1);break;case 8:t.rotate(-.5*Math.PI),t.translate(-n,0)}}function c(e){if(window.Blob&&e instanceof Blob){var t=new Image,n=window.URL&&window.URL.createObjectURL?window.URL:window.webkitURL&&window.webkitURL.createObjectURL?window.webkitURL:null;if(!n)throw Error(\"No createObjectURL function found to create blob url\");t.src=n.createObjectURL(e),this.blob=e,e=t}if(!e.naturalWidth&&!e.naturalHeight){var r=this;e.onload=function(){var e=r.imageLoadListeners;if(e){r.imageLoadListeners=null;for(var t=0,n=e.length;n>t;t++)e[t]()}},this.imageLoadListeners=[]}this.srcImage=e}c.prototype.render=function(e,t,n){if(this.imageLoadListeners){var r=this;return void this.imageLoadListeners.push(function(){r.render(e,t,n)})}t=t||{};var i=this.srcImage,o=i.src,u=o.length,c=i.naturalWidth,l=i.naturalHeight,f=t.width,d=t.height,h=t.maxWidth,g=t.maxHeight,p=this.blob&&\"image/jpeg\"===this.blob.type||0===o.indexOf(\"data:image/jpeg\")||o.indexOf(\".jpg\")===u-4||o.indexOf(\".jpeg\")===u-5;f&&!d?d=l*f/c<<0:d&&!f?f=c*d/l<<0:(f=c,d=l),h&&f>h&&(f=h,d=l*f/c<<0),g&&d>g&&(d=g,f=c*d/l<<0);var m={width:f,height:d};for(var w in t)m[w]=t[w];var v=e.tagName.toLowerCase();\"img\"===v?e.src=a(this.srcImage,m,p):\"canvas\"===v&&s(this.srcImage,e,m,p),\"function\"==typeof this.onrender&&this.onrender(e),n&&n()},r=[],i=function(){return c}.apply(t,r),!(void 0!==i&&(e.exports=i))}()},function(e,t){function n(e){function t(e){for(var t=[16,11,10,16,24,40,51,61,12,12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99],n=0;64>n;n++){var r=F((t[n]*e+50)/100);1>r?r=1:r>255&&(r=255),D[N[n]]=r}for(var i=[17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99],o=0;64>o;o++){var a=F((i[o]*e+50)/100);1>a?a=1:a>255&&(a=255),x[N[o]]=a}for(var s=[1,1.387039845,1.306562965,1.175875602,1,.785694958,.5411961,.275899379],u=0,c=0;8>c;c++)for(var l=0;8>l;l++)U[u]=1/(D[N[u]]*s[c]*s[l]*8),C[u]=1/(x[N[u]]*s[c]*s[l]*8),u++}function n(e,t){for(var n=0,r=0,i=new Array,o=1;16>=o;o++){for(var a=1;a<=e[o];a++)i[t[r]]=[],i[t[r]][0]=n,i[t[r]][1]=o,r++,n++;n*=2}return i}function r(){y=n(W,H),b=n(V,X),S=n(z,q),I=n(Q,Y)}function i(){for(var e=1,t=2,n=1;15>=n;n++){for(var r=e;t>r;r++)A[32767+r]=n,T[32767+r]=[],T[32767+r][1]=n,T[32767+r][0]=r;for(var i=-(t-1);-e>=i;i++)A[32767+i]=n,T[32767+i]=[],T[32767+i][1]=n,T[32767+i][0]=t-1+i;e<<=1,t<<=1}}function o(){for(var e=0;256>e;e++)k[e]=19595*e,k[e+256>>0]=38470*e,k[e+512>>0]=7471*e+32768,k[e+768>>0]=-11059*e,k[e+1024>>0]=-21709*e,k[e+1280>>0]=32768*e+8421375,k[e+1536>>0]=-27439*e,k[e+1792>>0]=-5329*e}function a(e){for(var t=e[0],n=e[1]-1;n>=0;)t&1<<n&&(G|=1<<O),n--,O--,0>O&&(255==G?(s(255),s(0)):s(G),O=7,G=0)}function s(e){M.push(j[e])}function u(e){s(e>>8&255),s(255&e)}function c(e,t){var n,r,i,o,a,s,u,c,l,f=0;const d=8,h=64;for(l=0;d>l;++l){n=e[f],r=e[f+1],i=e[f+2],o=e[f+3],a=e[f+4],s=e[f+5],u=e[f+6],c=e[f+7];var g=n+c,p=n-c,m=r+u,w=r-u,v=i+s,y=i-s,b=o+a,S=o-a,I=g+b,P=g-b,F=m+v,D=m-v;e[f]=I+F,e[f+4]=I-F;var x=.707106781*(D+P);e[f+2]=P+x,e[f+6]=P-x,I=S+y,F=y+w,D=w+p;var U=.382683433*(I-D),C=.5411961*I+U,T=1.306562965*D+U,A=.707106781*F,R=p+A,M=p-A;e[f+5]=M+C,e[f+3]=M-C,e[f+1]=R+T,e[f+7]=R-T,f+=8}for(f=0,l=0;d>l;++l){n=e[f],r=e[f+8],i=e[f+16],o=e[f+24],a=e[f+32],s=e[f+40],u=e[f+48],c=e[f+56];var G=n+c,O=n-c,_=r+u,B=r-u,E=i+s,j=i-s,k=o+a,N=o-a,W=G+k,H=G-k,z=_+E,q=_-E;e[f]=W+z,e[f+32]=W-z;var V=.707106781*(q+H);e[f+16]=H+V,e[f+48]=H-V,W=N+j,z=j+B,q=B+O;var X=.382683433*(W-q),Q=.5411961*W+X,Y=1.306562965*q+X,K=.707106781*z,J=O+K,Z=O-K;e[f+40]=Z+Q,e[f+24]=Z-Q,e[f+8]=J+Y,e[f+56]=J-Y,f++}var $;for(l=0;h>l;++l)$=e[l]*t[l],L[l]=$>0?$+.5|0:$-.5|0;return L}function l(){u(65504),u(16),s(74),s(70),s(73),s(70),s(0),s(1),s(1),s(0),u(1),u(1),s(0),s(0)}function f(e,t){u(65472),u(17),s(8),u(t),u(e),s(3),s(1),s(17),s(0),s(2),s(17),s(1),s(3),s(17),s(1)}function d(){u(65499),u(132),s(0);for(var e=0;64>e;e++)s(D[e]);s(1);for(var t=0;64>t;t++)s(x[t])}function h(){u(65476),u(418),s(0);for(var e=0;16>e;e++)s(W[e+1]);for(var t=0;11>=t;t++)s(H[t]);s(16);for(var n=0;16>n;n++)s(z[n+1]);for(var r=0;161>=r;r++)s(q[r]);s(1);for(var i=0;16>i;i++)s(V[i+1]);for(var o=0;11>=o;o++)s(X[o]);s(17);for(var a=0;16>a;a++)s(Q[a+1]);for(var c=0;161>=c;c++)s(Y[c])}function g(){u(65498),u(12),s(3),s(1),s(0),s(2),s(17),s(3),s(17),s(0),s(63),s(0)}function p(e,t,n,r,i){var o,s=i[0],u=i[240];const l=16,f=63,d=64;for(var h=c(e,t),g=0;d>g;++g)R[N[g]]=h[g];var p=R[0]-n;n=R[0],0==p?a(r[0]):(o=32767+p,a(r[A[o]]),a(T[o]));for(var m=63;m>0&&0==R[m];m--);if(0==m)return a(s),n;for(var w,v=1;m>=v;){for(var y=v;0==R[v]&&m>=v;++v);var b=v-y;if(b>=l){w=b>>4;for(var S=1;w>=S;++S)a(u);b=15&b}o=32767+R[v],a(i[(b<<4)+A[o]]),a(T[o]),v++}return m!=f&&a(s),n}function m(){for(var e=String.fromCharCode,t=0;256>t;t++)j[t]=e(t)}function w(e){if(0>=e&&(e=1),e>100&&(e=100),P!=e){var n=0;n=50>e?Math.floor(5e3/e):Math.floor(200-2*e),t(n),P=e}}function v(){var t=(new Date).getTime();e||(e=50),m(),r(),i(),o(),w(e);(new Date).getTime()-t}var y,b,S,I,P,F=(Math.round,Math.floor),D=new Array(64),x=new Array(64),U=new Array(64),C=new Array(64),T=new Array(65535),A=new Array(65535),L=new Array(64),R=new Array(64),M=[],G=0,O=7,_=new Array(64),B=new Array(64),E=new Array(64),j=new Array(256),k=new Array(2048),N=[0,1,5,6,14,15,27,28,2,4,7,13,16,26,29,42,3,8,12,17,25,30,41,43,9,11,18,24,31,40,44,53,10,19,23,32,39,45,52,54,20,22,33,38,46,51,55,60,21,34,37,47,50,56,59,61,35,36,48,49,57,58,62,63],W=[0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0],H=[0,1,2,3,4,5,6,7,8,9,10,11],z=[0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125],q=[1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7,34,113,20,50,129,145,161,8,35,66,177,193,21,82,209,240,36,51,98,114,130,9,10,22,23,24,25,26,37,38,39,40,41,42,52,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,225,226,227,228,229,230,231,232,233,234,241,242,243,244,245,246,247,248,249,250],V=[0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0],X=[0,1,2,3,4,5,6,7,8,9,10,11],Q=[0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119],Y=[0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113,19,34,50,129,8,20,66,145,161,177,193,9,35,51,82,240,21,98,114,209,10,22,36,52,225,37,241,23,24,25,26,38,39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,130,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,226,227,228,229,230,231,232,233,234,242,243,244,245,246,247,248,249,250];this.encode=function(e,t,n){var r=(new Date).getTime();t&&w(t),M=new Array,G=0,O=7,u(65496),l(),d(),f(e.width,e.height),h(),g();var i=0,o=0,s=0;G=0,O=7,this.encode.displayName=\"_encode_\";for(var c,m,v,P,F,D,x,T,A,L=e.data,R=e.width,j=e.height,N=4*R,W=0;j>W;){for(c=0;N>c;){for(F=N*W+c,D=F,x=-1,T=0,A=0;64>A;A++)T=A>>3,x=4*(7&A),D=F+T*N+x,W+T>=j&&(D-=N*(W+1+T-j)),c+x>=N&&(D-=c+x-N+4),m=L[D++],v=L[D++],P=L[D++],_[A]=(k[m]+k[v+256>>0]+k[P+512>>0]>>16)-128,B[A]=(k[m+768>>0]+k[v+1024>>0]+k[P+1280>>0]>>16)-128,E[A]=(k[m+1280>>0]+k[v+1536>>0]+k[P+1792>>0]>>16)-128;i=p(_,U,i,y,S),o=p(B,C,o,b,I),s=p(E,C,s,b,I),c+=32}W+=8}if(O>=0){var H=[];H[1]=O+1,H[0]=(1<<O+1)-1,a(H)}if(u(65497),n){for(var z=M.length,q=new Uint8Array(z),V=0;z>V;V++)q[V]=M[V].charCodeAt();M=[];(new Date).getTime()-r;return q}var X=\"data:image/jpeg;base64,\"+btoa(M.join(\"\"));M=[];(new Date).getTime()-r;return X},v()}e.exports=n},function(e,t,n){function r(e,t){var n=this;if(!e)throw new Error(\"没有收到图片，可能的解决方案：https://github.com/think2011/localResizeIMG/issues/7\");t=t||{},n.defaults={width:null,height:null,fieldName:\"file\",quality:.7},n.file=e;for(var r in t)t.hasOwnProperty(r)&&(n.defaults[r]=t[r]);return this.init()}function i(e){var t=null;return t=e?[].filter.call(document.scripts,function(t){return-1!==t.src.indexOf(e)})[0]:document.scripts[document.scripts.length-1],t?t.src.substr(0,t.src.lastIndexOf(\"/\")):null}function o(e){var t;t=e.split(\",\")[0].indexOf(\"base64\")>=0?atob(e.split(\",\")[1]):unescape(e.split(\",\")[1]);for(var n=e.split(\",\")[0].split(\":\")[1].split(\";\")[0],r=new Uint8Array(t.length),i=0;i<t.length;i++)r[i]=t.charCodeAt(i);return new s.Blob([r.buffer],{type:n})}n.p=i(\"lrz\")+\"/\",window.URL=window.URL||window.webkitURL;var a=n(1),s=n(4),u=n(5),c=function(e){var t=/OS (\\d)_.* like Mac OS X/g.exec(e),n=/Android (\\d.*?);/g.exec(e)||/Android\\/(\\d.*?) /g.exec(e);return{oldIOS:t?+t.pop()<8:!1,oldAndroid:n?+n.pop().substr(0,3)<4.5:!1,iOS:/\\(i[^;]+;( U;)? CPU.+Mac OS X/.test(e),android:/Android/g.test(e),mQQBrowser:/MQQBrowser/g.test(e)}}(navigator.userAgent);r.prototype.init=function(){var e=this,t=e.file,n=\"string\"==typeof t,r=/^data:/.test(t),i=new Image,u=document.createElement(\"canvas\"),c=n?t:URL.createObjectURL(t);if(e.img=i,e.blob=c,e.canvas=u,n?e.fileName=r?\"base64.jpg\":t.split(\"/\").pop():e.fileName=t.name,!document.createElement(\"canvas\").getContext)throw new Error(\"浏览器不支持canvas\");return new a(function(n,a){i.onerror=function(){var e=new Error(\"加载图片文件失败\");throw a(e),e},i.onload=function(){e._getBase64().then(function(e){if(e.length<10){var t=new Error(\"生成base64失败\");throw a(t),t}return e}).then(function(r){var i=null;\"object\"==typeof e.file&&r.length>e.file.size?(i=new FormData,t=e.file):(i=new s.FormData,t=o(r)),i.append(e.defaults.fieldName,t,e.fileName.replace(/\\..+/g,\".jpg\")),n({formData:i,fileLen:+t.size,base64:r,base64Len:r.length,origin:e.file,file:t});for(var a in e)e.hasOwnProperty(a)&&(e[a]=null);URL.revokeObjectURL(e.blob)})},!r&&(i.crossOrigin=\"*\"),i.src=c})},r.prototype._getBase64=function(){var e=this,t=e.img,n=e.file,r=e.canvas;return new a(function(i){try{u.getData(\"object\"==typeof n?n:t,function(){e.orientation=u.getTag(this,\"Orientation\"),e.resize=e._getResize(),e.ctx=r.getContext(\"2d\"),r.width=e.resize.width,r.height=e.resize.height,e.ctx.fillStyle=\"#fff\",e.ctx.fillRect(0,0,r.width,r.height),c.oldIOS?e._createBase64ForOldIOS().then(i):e._createBase64().then(i)})}catch(o){throw new Error(o)}})},r.prototype._createBase64ForOldIOS=function(){var e=this,t=e.img,r=e.canvas,i=e.defaults,o=e.orientation;return new a(function(e){!function(){var a=[n(6)];(function(n){var a=new n(t);\"5678\".indexOf(o)>-1?a.render(r,{width:r.height,height:r.width,orientation:o}):a.render(r,{width:r.width,height:r.height,orientation:o}),e(r.toDataURL(\"image/jpeg\",i.quality))}).apply(null,a)}()})},r.prototype._createBase64=function(){var e=this,t=e.resize,r=e.img,i=e.canvas,o=e.ctx,s=e.defaults,u=e.orientation;switch(u){case 3:o.rotate(180*Math.PI/180),o.drawImage(r,-t.width,-t.height,t.width,t.height);break;case 6:o.rotate(90*Math.PI/180),o.drawImage(r,0,-t.width,t.height,t.width);break;case 8:o.rotate(270*Math.PI/180),o.drawImage(r,-t.height,0,t.height,t.width);break;case 2:o.translate(t.width,0),o.scale(-1,1),o.drawImage(r,0,0,t.width,t.height);break;case 4:o.translate(t.width,0),o.scale(-1,1),o.rotate(180*Math.PI/180),o.drawImage(r,-t.width,-t.height,t.width,t.height);break;case 5:o.translate(t.width,0),o.scale(-1,1),o.rotate(90*Math.PI/180),o.drawImage(r,0,-t.width,t.height,t.width);break;case 7:o.translate(t.width,0),o.scale(-1,1),o.rotate(270*Math.PI/180),o.drawImage(r,-t.height,0,t.height,t.width);break;default:o.drawImage(r,0,0,t.width,t.height)}return new a(function(e){c.oldAndroid||c.mQQBrowser||!navigator.userAgent?!function(){var t=[n(7)];(function(t){var n=new t,r=o.getImageData(0,0,i.width,i.height);e(n.encode(r,100*s.quality))}).apply(null,t)}():e(i.toDataURL(\"image/jpeg\",s.quality))})},r.prototype._getResize=function(){var e=this,t=e.img,n=e.defaults,r=n.width,i=n.height,o=e.orientation,a={width:t.width,height:t.height};if(\"5678\".indexOf(o)>-1&&(a.width=t.height,a.height=t.width),a.width<r||a.height<i)return a;var s=a.width/a.height;for(r&&i?s>=r/i?a.width>r&&(a.width=r,a.height=Math.ceil(r/s)):a.height>i&&(a.height=i,a.width=Math.ceil(i*s)):r?r<a.width&&(a.width=r,a.height=Math.ceil(r/s)):i&&i<a.height&&(a.width=Math.ceil(i*s),a.height=i);a.width>=3264||a.height>=2448;)a.width*=.8,a.height*=.8;return a},window.lrz=function(e,t){return new r(e,t)},window.lrz.version=\"4.9.40\",\ne.exports=window.lrz}])});\n//# sourceMappingURL=lrz.all.bundle.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lrz/dist/lrz.all.bundle.js\n// module id = 8\n// module chunks = 0","import Instance from './instance'\nimport hMethods from './handle-methods'\nimport aMethods from './assist-methods'\nObject.assign(Instance.prototype, hMethods, aMethods)\nexport default Instance\n\n\n\n// WEBPACK FOOTER //\n// ./src/range-handler/index.js","import constant from '../constant-config'\nconst methods = {\n  /*\n   * func create a new row element\n   * @param {obj} data\n   *          tag {str}\n   *          contenteditable {boolean} default: true\n   *          id {boolean} whether need a id default: false\n   *          br {boolean} whether need a br element after current row element default: false\n   * @return  {node}\n   **/\n  newRow (data = {}) {\n    const row = document.createElement(data.tag || constant.ROW_TAG)\n    if (data.id) {\n      row.dataset.editorRow = methods.createRandomId('row')\n    }\n    if (data.br) {\n      const br = document.createElement('br')\n      row.appendChild(br)\n    }\n    row.setAttribute('contenteditable', data.contenteditable !== false)\n    return row\n  },\n  // get selection\n  getSelection () {\n    return window.getSelection ? window.getSelection() : document.getSelection()\n  },\n  /*\n   * func insert a element after target element\n   * @param newElement {node}\n   * @param targetElement {node}\n   **/\n  insertAfter (newElement, targetElement) {\n    var parent = targetElement.parentNode\n    if (parent.lastChild === targetElement) {\n      parent.appendChild(newElement)\n    } else {\n      parent.insertBefore(newElement, targetElement.nextSibling)\n    }\n  },\n  /*\n   * func create a random id\n   * @param preffix {str} id's preffix\n   * @return id\n   **/\n  createRandomId (preffix) {\n    return `${preffix || 'id'}-${Math.random() * 1000 + new Date().getTime()}`\n  },\n  /*\n   * return edit zone element\n   **/\n  editZone () {\n    if (methods.editZone_cache) {\n      return methods.editZone_cache\n    }\n    methods.editZone_cache = document.querySelector('[data-editor=\"content\"]')\n    return methods.editZone_cache\n  },\n  /*\n   * set range at target node\n   **/\n  setRangeAt (node, checkAll) {\n    const range = document.createRange()\n    if (checkAll) {\n      range.setStart(node, 0)\n      let end = node.childNodes.length ? node.childNodes.length : (node.length ? node.length : 0)\n      range.setEnd(node, end)\n    } else {\n      range.setStart(node, 0)\n      range.setEnd(node, 0)\n    }\n    let selection = methods.getSelection()\n    selection.removeAllRanges()\n    selection.addRange(range)\n  },\n  getRange () {\n    let s = methods.getSelection()\n    if (s.rangeCount) {\n      return s.getRangeAt(0)\n    }\n    return\n  }\n}\n\nexport default methods\n\n\n\n// WEBPACK FOOTER //\n// ./src/range-handler/assist-methods.js","import { isObj } from '../util'\nimport RH from '../range-handler'\n/*\n * Inspect and highlight module\n **/\nclass Inspector {\n  constructor (moduleName) {\n    this.moduleName = moduleName\n  }\n\n  add (type, param) {\n    let moduleName = this.moduleName\n    if (typeof moduleName !== 'string') {\n      throw new Error('moduleName must be string')\n    }\n    switch (type) {\n      case 'tag':\n        if (typeof param !== 'string') {\n          throw new Error('inspector for tag can only receive a string param which stand for tag name')\n        }\n        Inspector.tagMap[param.toUpperCase()] = moduleName\n        break\n      case 'style':\n        if (!isObj(param)) {\n          throw new Error('inspector for style can only receive a object param')\n        }\n        Inspector.styles[moduleName] = param\n        break\n      case 'attribute':\n        if (!isObj(param)) {\n          throw new Error('inspector for attribute can only receive a object param')\n        }\n        Inspector.attributes[moduleName] = param\n        break\n      default:\n        throw new Error('unknown inspector type')\n    }\n    return this\n  }\n\n  inspect_tag (node) {\n    let result = []\n    while (node && node !== RH.prototype.editZone()) {\n      let inspectResult = Inspector.tagMap[node.nodeName]\n      if (inspectResult && !result.includes(inspectResult)) {\n        result.push(inspectResult)\n      }\n      node = node.parentNode\n    }\n    return result\n  }\n\n  inspect_style (node) {\n    let result = []\n    while (node && node !== RH.prototype.editZone()) {\n      if (!node.style) break\n      Object.keys(Inspector.styles).forEach(moduleName => {\n        let moduleStyle = Inspector.styles[moduleName]\n        Object.keys(moduleStyle).forEach(item => {\n          let curValue = moduleStyle[item]\n          if (typeof curValue === 'string' && node.style[item] === curValue) {\n            if (!result.includes(moduleName)) {\n              result.push(moduleName)\n              Inspector.activeItems[moduleName] = curValue\n            }\n          }\n          if (Array.isArray(curValue)) {\n            curValue.forEach(val => {\n              if (node.style[item] === val) {\n                if (!result.includes(moduleName)) {\n                  result.push(moduleName)\n                  Inspector.activeItems[moduleName] = val\n                }\n              }\n            })\n          }\n        })\n      })\n      node = node.parentNode\n    }\n    return result\n  }\n\n  inspect_attribute (node) {\n    let result = []\n    while (node && node !== RH.prototype.editZone()) {\n      if (!node.getAttribute) break\n      Object.keys(Inspector.attributes).forEach(moduleName => {\n        let moduleAttr = Inspector.attributes[moduleName]\n        Object.keys(moduleAttr).forEach(item => {\n          let value = moduleAttr[item]\n          let nodeVal = node.getAttribute(item)\n          if (Array.isArray(value)) {\n            value.forEach(val => {\n              if (nodeVal === val) {\n                if (!result.includes(moduleName)) {\n                  result.push(moduleName)\n                  Inspector.activeItems[moduleName] = val\n                }\n              }\n            })\n          }\n          if (typeof value === 'string' && nodeVal === value || nodeVal !== null) {\n            if (!result.includes(moduleName)) {\n              result.push(moduleName)\n              Inspector.activeItems[moduleName] = value\n            }\n          }\n        })\n      })\n      node = node.parentNode\n    }\n    return result\n  }\n}\n\nInspector.tagMap = {}\nInspector.styles = {}\nInspector.attributes = {}\nInspector.activeItems = {}\n\nInspector.run = (type, nodeList) => {\n  let fn = Inspector.prototype['inspect_' + type]\n  let result = []\n  if (typeof fn === 'function' && Array.isArray(nodeList)) {\n    nodeList.forEach(node => {\n      result.push(fn(node))\n    })\n  }\n  return result\n}\n\nInspector.removeDuplate = function (list) {\n  // merge same module inspect result\n  let sameStyleMap = {}\n  list.forEach(m => {\n    if (typeof m === 'string') {\n      sameStyleMap[m] = sameStyleMap[m] ? sameStyleMap[m] + 1 : 1\n    }\n    if (Array.isArray(m)) {\n      m = Array.from(new Set(m))\n      m.forEach(am => {\n        sameStyleMap[am] = sameStyleMap[am] ? sameStyleMap[am] + 1 : 1\n      })\n    }\n  })\n  let mergedStyle = []\n  Object.keys(sameStyleMap).forEach(m => {\n    if (sameStyleMap[m] === list.length) {\n      mergedStyle.push(m)\n    }\n  })\n  return mergedStyle\n}\n\n\nexport default Inspector\n\n\n\n// WEBPACK FOOTER //\n// ./src/module-inspect/index.js","import polyfill from './util/polyfill-ie'\nimport buildInModules from './modules/index'\nimport buildInShortcut from './shortcut'\nimport constantConfig from './constant-config'\nimport editor from './editor/editor'\nimport buildInCommands from './commands'\nimport initExcludeRule from './module-inspect/load-module-inspect-exclude-rules'\nimport Inspector from './module-inspect'\nimport i18nZhCn from './i18n/zh-cn'\nimport i18nEnUs from './i18n/en-us'\nimport {\n  mixin,\n  isObj\n} from './util'\n\npolyfill()\n\nclass Editor {\n\n  constructor(options = {}) {\n    let modules = [...buildInModules]\n    let reservedNames = {}\n    modules.forEach(m => {\n      if (m.name) {\n        reservedNames[m.name] = true\n      }\n    })\n    const components = {}\n    const modulesMap = {}\n\n    // extended modules\n    if (Array.isArray(options.extendModules)) {\n      options.extendModules.forEach(module => {\n        if (module.name && !reservedNames[module.name]) {\n          modules.push(module)\n        } else {\n          throw new Error('extended module must have a name and should not be the same as buildIn module')\n        }\n      })\n    }\n\n    // modules in use\n    if (Array.isArray(options.modules)) {\n      let m = []\n      options.modules.forEach(name => {\n        if (typeof name !== 'string') {\n          throw new Error('modules\\'s item must be string')\n        }\n        modules.forEach(module => {\n          if (module.name === name) {\n            m.push(module)\n          }\n        })\n      })\n      modules = m\n    }\n\n    modules.forEach(module => {\n      // config\n      let curConfig = options[module.name]\n      let moduleConfig = module\n      if (isObj(curConfig) && isObj(moduleConfig)) {\n        Object.assign(moduleConfig, curConfig)\n      }\n\n      module.moduleInspectResult = null\n      module.forbidden = null\n      if (typeof module.inspect === 'function') {\n        let inspector = new Inspector(module.name)\n        module.inspect(inspector.add.bind(inspector))\n      } else {\n        module.type = 'fn'\n      }\n      module.exclude = initExcludeRule(module, modules)\n\n      if (module.tab) {\n        module.tab.module = module\n\n        // add activeItem prop\n        module.tab.props = module.tab.props ? Object.assign(module.tab.props, {activeItem: [String, Boolean], forbidden: Boolean}) : {activeItem: [String, Boolean], forbidden: Boolean}\n        module.tabName = `tab-${module.name}`\n        components[module.tabName] = module.tab\n      }\n      if (options.icons && options.icons[module.name]) {\n        module.icon = options.icons[module.name]\n      }\n      module.hasTab = !!module.tab\n\n      // prevent vue sync\n      delete module.tab\n\n      modulesMap[module.name] = module\n    })\n\n    // i18n\n    const i18n = {'zh-cn': i18nZhCn, 'en-us': i18nEnUs}\n    const customI18n = options.i18n || {}\n    Object.keys(customI18n).forEach((key) => {\n      i18n[key] = i18n[key] ? Object.assign(i18n[key], customI18n[key]) : customI18n[key]\n    })\n    const language = options.language || 'en-us'\n    const locale = i18n[language]\n\n    // shortcut\n    options.shortcut = Object.assign(buildInShortcut, options.shortcut || {})\n    const shortcut = {}\n    Object.keys(options.shortcut).forEach(key => {\n      let item = options.shortcut[key]\n      let keyCode = item.keyCode\n      shortcut[keyCode] = shortcut[keyCode] || []\n      shortcut[keyCode].push(item)\n      item.name = key\n    })\n\n    // merge commands\n    if (isObj(options.commands)) {\n      Object.assign(buildInCommands, options.commands)\n    }\n\n    // spellcheck\n    const spellcheck = options.spellcheck || false\n\n    const compo = mixin(editor, {\n      data () {\n        return {modules, locale, shortcut, modulesMap, spellcheck, constantConfig}\n      },\n      components\n    })\n    Object.assign(this, compo)\n  }\n\n  /**\n   * global install\n   * @param Vue\n   * @param options\n   */\n  static install(Vue, options = {}) {\n    Vue.component(options.name || 'my-vue-editor', new Editor(options))\n  }\n}\n\nexport default Editor\n\n// to change Babel6 export's result\nmodule.exports = Editor\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","export default () => {\n    // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n    if (!Array.prototype.includes) {\n        Object.defineProperty(Array.prototype, 'includes', {\n            value(searchElement, fromIndex) {\n                // 1. Let O be ? ToObject(this value).\n                if (this == null) {\n                    throw new TypeError('\"this\" is null or not defined')\n                }\n\n                const o = Object(this)\n\n                // 2. Let len be ? ToLength(? Get(O, \"length\")).\n                const len = o.length >>> 0\n\n                // 3. If len is 0, return false.\n                if (len === 0) {\n                    return false\n                }\n\n                // 4. Let n be ? ToInteger(fromIndex).\n                //    (If fromIndex is undefined, this step produces the value 0.)\n                const n = fromIndex | 0\n\n                // 5. If n ≥ 0, then\n                //  a. Let k be n.\n                // 6. Else n < 0,\n                //  a. Let k be len + n.\n                //  b. If k < 0, let k be 0.\n                let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0)\n\n                // 7. Repeat, while k < len\n                while (k < len) {\n                    // a. Let elementK be the result of ? Get(O, ! ToString(k)).\n                    // b. If SameValueZero(searchElement, elementK) is true, return true.\n                    // c. Increase k by 1.\n                    // NOTE: === provides the correct \"SameValueZero\" comparison needed here.\n                    if (o[k] === searchElement) {\n                        return true\n                    }\n                    k++\n                }\n\n                // 8. Return false\n                return false\n            }\n        })\n    }\n    // text.contains()\n    if (!Text.prototype.contains) {\n        Text.prototype.contains = function contains(node) {\n            return this === node\n        }\n    }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/polyfill-ie.js","import align from './align/index'\nimport font from './font/index'\nimport fullScreen from './full-screen/index'\nimport image from './image/index'\nimport bold from './bold'\nimport italic from './italic'\nimport underline from './underline'\nimport todo from './todo'\nimport quote from './quote'\nimport indent from './indent'\nimport outdent from './outdent'\nimport ul from './ul'\nimport ol from './ol'\nimport linethrough from './linethrough'\nimport itodo from './icourt-todo'\nimport foreColor from './fore-color'\n\n\n/**\n * build-in moduls\n */\nexport default [\n  font,\n  align,\n  image,\n  fullScreen,\n  bold,\n  italic,\n  underline,\n  todo,\n  quote,\n  indent,\n  outdent,\n  ul,\n  ol,\n  linethrough,\n  itodo,\n  foreColor\n]\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/index.js","import tab from './tab'\n\nexport default {\n  name: 'align',\n  icon: 'iui-icon iui-icon-align',\n  tab,\n  inspect (add) {\n    add('style', {\n      'textAlign': ['center', 'right']\n    })\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/align/index.js","import template from './tab.html'\nexport default {\n  template,\n  watch: {\n    activeItem (n) {\n      n = n || 'left'\n      let map = {\n        'left': 2,\n        'center': 0,\n        'right': 1\n      }\n      let index = map[n]\n      let options = Object.keys(this.alignMap)\n      let key = options[index]\n      this.choosed = {\n        icon: 'align-' + n,\n        index,\n        key,\n        type: this.alignMap[key]\n      }\n    }\n  },\n  data () {\n    return {\n      alignMap: {\n        '居中': 'justifyCenter',\n        '居右': 'justifyRight',\n        '居左': 'justifyLeft'\n      },\n      choosed: {}\n    }\n  },\n  methods: {\n    setAlign (index) {\n      let options = Object.keys(this.alignMap)\n      let key = options[index]\n      this.$parent.execCommand(this.alignMap[key])\n      this.$parent.saveCurrentRange()\n      this.$parent.moduleInspect()\n    },\n    changeAlign () {\n      if (this.forbidden) return\n      let pre_index = !isNaN(this.choosed.index) ? this.choosed.index : -1\n      let len = Object.keys(this.alignMap).length\n      let target_index\n      if (pre_index + 1 === len) {\n        target_index = 0\n      } else {\n        target_index = ++pre_index\n      }\n      this.setAlign(target_index)\n    }\n  }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/align/tab.js","export default \"<li class='btn' @click=\\\"changeAlign()\\\" :title=\\\"'对齐方式:' + (choosed.key || '居左')\\\">\\n  <span style=\\\"vertical-align: sub\\\" class=\\\"fa\\\" :class=\\\"'fa-' + (choosed.icon || 'align-left')\\\"></span>\\n</li>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/align/tab.html\n// module id = 17\n// module chunks = 0","import tab from './tab'\nimport config from './config'\n\nexport default {\n  name: 'font',\n  tab,\n  config,\n  inspect (add) {\n    add('style', {\n      fontSize: ['xx-large', 'x-large', 'large', 'medium', 'small']\n    })\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/font/index.js","import template from './tab.html'\nimport './style.styl'\n\nexport default {\n  template,\n  watch: {\n    activeItem (n) {\n      let val = this.fontAttrMap[n]\n      if (val) {\n        this.choosed = val\n      } else {\n        this.choosed = this.fontAttrMap[this.fontAttrMap['default']]\n      }\n    }\n  },\n  data () {\n    return {\n      fontAttrMap: {},\n      curModule: null,\n      choosed: {},\n      showList: false\n    }\n  },\n  methods: {\n    showListFn () {\n      if (this.$refs.tab.classList.contains('forbidden')) return\n      this.showList = true\n    },\n    changeAttr (val) {\n      this.choosed = val\n      // this.$parent.execCommand('lineHeight', val.lineHeight)\n      this.$parent.execCommand('fontSize', val.fontSize)\n      this.showList = false\n    },\n    setFontName (name) {\n      this.$parent.execCommand('fontName', name)\n    },\n    setHeading (heading) {\n      this.$parent.execCommand('formatBlock', heading)\n    }\n  },\n  mounted () {\n    this.curModule = this.$parent.modulesMap['font']\n    this.fontAttrMap = this.curModule.config\n    this.choosed = this.fontAttrMap[this.fontAttrMap['default']]\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/font/tab.js","export default \"<li ref=\\\"tab\\\" class=\\\"font-tab tab-with-dropdown\\\" @mouseenter=\\\"showListFn\\\" @mouseleave=\\\"showList = false\\\">\\n    {{choosed.name}}\\n    <i class=\\\"icon fa fa-caret-down\\\"></i>\\n    <ul class=\\\"dropdown\\\" v-if=\\\"showList\\\">\\n        <li v-if=\\\"val.name\\\" v-for=\\\"(val, key) in fontAttrMap\\\" @click=\\\"changeAttr(val)\\\">{{ val.name }}</li>\\n    </ul>\\n</li>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/font/tab.html\n// module id = 20\n// module chunks = 0","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/_css-loader@0.28.7@css-loader/index.js!../../../node_modules/_stylus-loader@3.0.1@stylus-loader/index.js!./style.styl\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// Prepare cssTransformation\nvar transform;\n\nvar options = {\"hmr\":true}\noptions.transform = transform\n// add the styles to the DOM\nvar update = require(\"!../../../node_modules/_style-loader@0.19.0@style-loader/lib/addStyles.js\")(content, options);\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/_css-loader@0.28.7@css-loader/index.js!../../../node_modules/_stylus-loader@3.0.1@stylus-loader/index.js!./style.styl\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/_css-loader@0.28.7@css-loader/index.js!../../../node_modules/_stylus-loader@3.0.1@stylus-loader/index.js!./style.styl\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/font/style.styl\n// module id = 21\n// module chunks = 0","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n  // get current location\n  var location = typeof window !== \"undefined\" && window.location;\n\n  if (!location) {\n    throw new Error(\"fixUrls requires window.location\");\n  }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t  return css;\n  }\n\n  var baseUrl = location.protocol + \"//\" + location.host;\n  var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\(  = Match on the word \"url\" with any whitespace after it and then a parens\n\t   (  = Start a capturing group\n\t     (?:  = Start a non-capturing group\n\t         [^)(]  = Match anything that isn't a parentheses\n\t         |  = OR\n\t         \\(  = Match a start parentheses\n\t             (?:  = Start another non-capturing groups\n\t                 [^)(]+  = Match anything that isn't a parentheses\n\t                 |  = OR\n\t                 \\(  = Match a start parentheses\n\t                     [^)(]*  = Match anything that isn't a parentheses\n\t                 \\)  = Match a end parentheses\n\t             )  = End Group\n              *\\) = Match anything and then a close parens\n          )  = Close non-capturing group\n          *  = Match anything\n       )  = Close capturing group\n\t \\)  = Match a close parens\n\n\t /gi  = Get all matches, not the first.  Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/)/i.test(unquotedOrigUrl)) {\n\t\t  return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t  \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_style-loader@0.19.0@style-loader/lib/urls.js\n// module id = 22\n// module chunks = 0","export default {\n  // through font tag\n  'xx-large': {\n    fontSize: 6,\n    name: '标题'\n  },\n  'x-large': {\n    fontSize: 5,\n    name: '副标题'\n  },\n  'large': {\n    fontSize: 4,\n    name: '小标题'\n  },\n  'medium': {\n    fontSize: 3,\n    name: '正文'\n  },\n  default: 'medium'\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/font/config.js","/**\n * toggle full screen mode\n * Created by peak on 16/8/18.\n */\nexport default {\n    name: 'full-screen',\n    icon: 'fa fa-arrows-alt',\n    i18n: 'full screen',\n    handler(rh) {\n        rh.editor.toggleFullScreen()\n    }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/full-screen/index.js","import tab from './tab'\n\nexport default {\n  name: 'image',\n  i18n: 'image',\n  canUploadSameImage: true,\n  imgOccupyNewRow: false,\n  maxSize: 5120 * 1024,\n  compress: {\n    // max width\n    width: 1600,\n    // max height\n    height: 1600,\n    // cpmpress quality 0 - 1\n    quality: 0.8\n  },\n  tab,\n  inspect (add) {\n    add('tag', 'img')\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/image/index.js","import lrz from 'lrz'\nimport template from './tab.html'\n\nexport default {\n  template,\n  data() {\n    return {\n      name: 'tab-image',\n      curModule: null\n    }\n  },\n  methods: {\n    pick() {\n      if (this.forbidden) return\n      this.$refs.file.click()\n    },\n    process(e) {\n      const file = this.$refs.file.files[0]\n      this.$parent.execCommand('insertImage', file)\n      if (this.curModule.canUploadSameImage) {\n        e.target.value = ''\n      }\n    }\n  },\n  mounted () {\n    this.curModule = this.$parent.modulesMap['image']\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/image/tab.js","export default \"<li ref=\\\"item\\\" class=\\\"btn\\\">\\n  <input type=\\\"file\\\" ref=\\\"file\\\" style=\\\"display: none;\\\" @change=\\\"process\\\" accept=\\\"image/*\\\">\\n  <span style=\\\"vertical-align: sub\\\" class=\\\"fa fa-picture-o\\\" @click=\\\"pick\\\"></span>\\n</li>\\n\\n\\n\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/image/tab.html\n// module id = 27\n// module chunks = 0","export default {\n  name: 'bold',\n  icon: 'fa fa-bold',\n  handler: function (rh) {\n    rh.editor.execCommand('bold')\n  },\n  inspect (add) {\n    add('tag', 'STRONG').add('tag', 'B').add('style',{'font-weight': 'bold'})\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/bold/index.js","export default {\n  name: 'italic',\n  icon: 'fa fa-italic',\n  handler (rh) {\n    rh.editor.execCommand('italic')\n  },\n  inspect (add) {\n    add('tag', 'I').add('style', {'fontStyle': 'italic'})\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/italic/index.js","export default {\n  name: 'underline',\n  icon: 'fa fa-underline',\n  handler (rh) {\n    rh.editor.execCommand('underline')\n  },\n  inspect (add) {\n    add('tag', 'U').add('style', {'text-decoration-line': 'underline'})\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/underline/index.js","export default {\n  name: 'todo',\n  icon: 'fa fa-check-square',\n  exclude: 'ALL_BUT_MYSELF',\n  mounted (editor) {\n    editor.execCommand('initTodo')\n  },\n  handler (rh) {\n    rh.editor.execCommand('todo', {\n      insertAfter: rh.range.commonAncestorContainer,\n      placeholder: '待办事项'\n    })\n  },\n  inspect (add) {\n    add('attribute', {\n      'data-editor-todo': ''\n    })\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/todo/index.js","export default {\n  name: 'quote',\n  icon: 'fa fa-quote-right',\n  show: true,\n  mounted (editor) {\n    editor.execCommand('initQuote')\n  },\n  handler: function (rh, module) {\n    let isInQuote = rh.editor.activeModules.includes(module.name)\n    rh.editor.execCommand('quote', isInQuote)\n  },\n  inspect (add) {\n    add('attribute', {\n      'data-editor-quote': ''\n    })\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/quote/index.js","export default {\n  name: 'indent',\n  icon: 'fa fa-indent',\n  type: 'fn',\n  handler: function (rh) {\n    rh.editor.execCommand('indent')\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/indent/index.js","export default {\n  name: 'indent',\n  icon: 'fa fa-outdent',\n  type: 'fn',\n  handler: function (rh) {\n    rh.editor.execCommand('outdent')\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/outdent/index.js","export default {\n  name: 'ul',\n  icon: 'fa fa-list-ul',\n  handler: function (rh) {\n    rh.editor.execCommand('insertUnorderedList')\n  },\n  inspect (add) {\n    add('tag', 'UL')\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/ul/index.js","export default {\n  name: 'ol',\n  icon: 'fa fa-list-ol',\n  handler: function (rh) {\n    rh.editor.execCommand('insertOrderedList')\n  },\n  inspect (add) {\n    add('tag', 'OL')\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/ol/index.js","export default {\n  name: 'linethrough',\n  icon: 'fa fa-strikethrough',\n  handler: function (rh) {\n    rh.editor.execCommand('strikeThrough')\n  },\n  inspect (add) {\n    add('tag', 'STRIKE').add('style', {'text-decoration-line': 'line-through'})\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/linethrough/index.js","export default {\n  name: 'itodo',\n  icon: 'iui-icon iui-icon-checked-line',\n  exclude: 'ALL_BUT_MYSELF',\n  mounted (editor) {\n    editor.execCommand('initiTodo')\n  },\n  handler (rh) {\n    rh.editor.execCommand('itodo', {\n      insertAfter: rh.range.commonAncestorContainer,\n      placeholder: '待办事项'\n    })\n  },\n  inspect (add) {\n    add('attribute', {\n      'data-editor-todo': ''\n    })\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/icourt-todo/index.js","import tab from './tab'\n\nconst foreColorConfig = {\n  name: 'foreColor',\n  // color bust be lowercase\n  colors: ['#000000', '#000033', '#000066', '#000099', '#003300', '#003333', '#003366',\n    '#003399', '#006600', '#006633', '#009900', '#330000', '#330033', '#330066',\n    '#333300', '#333366', '#660000', '#660033', '#663300', '#666600', '#666633',\n    '#666666', '#666699', '#990000', '#990033', '#9900cc', '#996600', '#ffcc00',\n    '#ffcccc', '#ffcc99', '#ffff00', '#fa8919', '#ed6c00', '#ccffff', '#ccff99', '#ffffff'],\n  default: '#000000',\n  tab,\n  inspect (add) {\n    add('attribute', {\n      color: foreColorConfig.colors\n    })\n  }\n}\n\nexport default foreColorConfig\n\n\n// WEBPACK FOOTER //\n// ./src/modules/fore-color/index.js","import template from './tab.html'\nimport './style.styl'\n\nexport default {\n  template,\n  watch: {\n    activeItem (n) {\n      n = n || this.curModule.default\n      this.choosed = n\n    }\n  },\n  data () {\n    return {\n      colors: [],\n      curModule: null,\n      choosed: {},\n      showList: false\n    }\n  },\n  methods: {\n    showListFn () {\n      if (this.$refs.tab.classList.contains('forbidden')) return\n      this.showList = true\n    },\n    changeColor (color) {\n      this.choosed = color\n      this.$parent.execCommand('foreColor', color)\n      this.showList = false\n    }\n  },\n  mounted () {\n    this.curModule = this.$parent.modulesMap['foreColor']\n    this.colors = this.curModule.colors\n    this.choosed = this.curModule.default\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/modules/fore-color/tab.js","export default \"<li ref=\\\"tab\\\" class=\\\"fore-color-tab tab-with-dropdown\\\" @mouseenter=\\\"showListFn\\\" @mouseleave=\\\"showList = false\\\">\\n    <i class=\\\"icon fa fa-font\\\"></i>\\n    <div class=\\\"choosed\\\" :style=\\\"{'background': choosed}\\\"></div>\\n    <ul class=\\\"dropdown\\\" v-if=\\\"showList\\\">\\n        <li v-for=\\\"color in colors\\\" :style=\\\"{'background': color}\\\" @click=\\\"changeColor(color)\\\"></li>\\n    </ul>\\n</li>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/fore-color/tab.html\n// module id = 41\n// module chunks = 0","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/_css-loader@0.28.7@css-loader/index.js!../../../node_modules/_stylus-loader@3.0.1@stylus-loader/index.js!./style.styl\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// Prepare cssTransformation\nvar transform;\n\nvar options = {\"hmr\":true}\noptions.transform = transform\n// add the styles to the DOM\nvar update = require(\"!../../../node_modules/_style-loader@0.19.0@style-loader/lib/addStyles.js\")(content, options);\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/_css-loader@0.28.7@css-loader/index.js!../../../node_modules/_stylus-loader@3.0.1@stylus-loader/index.js!./style.styl\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/_css-loader@0.28.7@css-loader/index.js!../../../node_modules/_stylus-loader@3.0.1@stylus-loader/index.js!./style.styl\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/modules/fore-color/style.styl\n// module id = 42\n// module chunks = 0","export default {\n  outdent: {\n    keyCode: 9,\n    shiftKey: true,\n    handler (editor, e) {\n      e.preventDefault()\n      editor.execCommand('outdent')\n    }\n  },\n  indent: {\n    keyCode: 9,\n    handler (editor, e) {\n      e.preventDefault()\n      editor.execCommand('indent')\n    }\n  },\n  delete: {\n    keyCode: 8,\n    handler (editor, e) {\n      editor.execCommand('delete', e, true)\n    }\n  },\n  enter: {\n    keyCode: 13,\n    handler (editor, e) {\n      editor.execCommand('enter', e, true)\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shortcut/index.js","import RH from '../range-handler'\nimport './style/main.styl'\nimport template from './editor.html'\nimport dragPic from './drag-pic'\nimport Inspector from '../module-inspect'\n\nexport default {\n  template,\n  props: {\n    content: {\n      type: String,\n      required: true,\n      default: ''\n    },\n    height: {\n      type: Number,\n      default: 300,\n      validator(val){\n        return val >= 100\n      }\n    },\n    zIndex: {\n      type: Number,\n      default: 1000\n    },\n    autoHeight: {\n      type: Boolean,\n      default: true\n    }\n  },\n  directives: {\n    dragPic\n  },\n  data(){\n    return {\n      modules: {},\n      activeModules: [],\n      allActiveModules: [],\n      fullScreen: false\n    }\n  },\n  watch: {\n    content(val) {\n      const content = this.$refs.content.innerHTML\n      if (val !== content) {\n        this.$refs.content.innerHTML = val\n      }\n    },\n    fullScreen(val){\n      const component = this\n      if (val) {\n        component.parentEl = component.$el.parentNode\n        component.nextEl = component.$el.nextSibling\n        document.body.appendChild(component.$el)\n        return\n      }\n      if (component.nextEl) {\n        component.parentEl.insertBefore(component.$el, component.nextEl)\n        return\n      }\n      component.parentEl.appendChild(component.$el)\n    }\n  },\n  computed: {\n    contentStyle(){\n      const style = {}\n      if (this.fullScreen) {\n        style.height = `${window.innerHeight - this.$refs.toolbar.clientHeight - 1}px`\n        return style\n      }\n      if (!this.autoHeight) {\n        style.height = `${this.height}px`\n        return style\n      }\n      style['min-height'] = `${this.height}px`\n      return style\n    }\n  },\n  methods: {\n    getCurActiveModuleItem () {\n      return Inspector.activeItems\n    },\n    clearActiveModuleItem () {\n      Inspector.activeItems = {}\n    },\n    handleDragPic (file) {\n      if ((this.modulesMap['image'] && this.modulesMap['image'].drag !== false) || !this.modulesMap['image']) {\n        this.saveCurrentRange()\n        this.execCommand('insertImage', file)\n      }\n    },\n    toggleFullScreen(){\n      this.fullScreen = !this.fullScreen\n    },\n    enableFullScreen(){\n      this.fullScreen = true\n    },\n    exitFullScreen(){\n      this.fullScreen = false\n    },\n    focus(){\n      this.$refs.content.focus()\n    },\n    blur(){\n      this.$refs.content.blur()\n    },\n    execCommand(command, arg, execOnly){\n      if (!execOnly) {\n        this.restoreSelection()\n      }\n      if (this.range) {\n        new RH(this.range, this).execCommand(command, arg)\n      }\n      this.$emit('change', this.$refs.content.innerHTML)\n    },\n    saveCurrentRange(){\n      const selection = window.getSelection ? window.getSelection() : document.getSelection()\n      const content = this.$refs.content\n      if (!selection.rangeCount || !content) {\n        return\n      }\n      for (let i = 0; i < selection.rangeCount; i++) {\n        const range = selection.getRangeAt(0)\n        let start = range.startContainer\n        let end = range.endContainer\n        // for IE11 : node.contains(textNode) always return false\n        start = start.nodeType === Node.TEXT_NODE ? start.parentNode : start\n        end = end.nodeType === Node.TEXT_NODE ? end.parentNode : end\n        if (content.contains(start) && content.contains(end)) {\n          this.range = range\n          break\n        }\n      }\n    },\n    restoreSelection(){\n      const selection = window.getSelection ? window.getSelection() : document.getSelection()\n      selection.removeAllRanges()\n      if (this.range) {\n        selection.addRange(this.range)\n      } else {\n        const content = this.$refs.content\n        const row = RH.prototype.newRow({br: true})\n        const range = document.createRange()\n        content.appendChild(row)\n        range.setStart(row, 0)\n        range.setEnd(row, 0)\n        selection.addRange(range)\n        this.range = range\n      }\n    },\n    activeModule(module){\n      if (module.forbidden) return\n      if (typeof module.handler === 'function') {\n        module.handler(new RH(this.range, this), module)\n        this.$nextTick(() => {\n          this.saveCurrentRange()\n          this.moduleInspect()\n        })\n        return\n      }\n    },\n    moduleInspect () {\n      if (this.range) {\n        this.clearActiveModuleItem()\n        this.activeModules = []\n        this.allActiveModules = []\n        let rh = new RH(this.range, this)\n        let texts = rh.getAllTextNodesInRange()\n        if (texts.length === 0 && this.range.collapsed) {\n          texts.push(this.range.commonAncestorContainer)\n        }\n        // texts duplicate removal\n        let textAftetDR = []\n        texts.forEach(text => {\n          if (text.nodeType === Node.TEXT_NODE && text.parentNode !== rh.editZone()) {\n            text = text.parentNode\n          }\n          if (!textAftetDR.includes(text)) {\n            textAftetDR.push(text)\n          }\n        })\n\n        let tagResult = Inspector.run('tag', textAftetDR)\n        let tagResultRD = Inspector.removeDuplate(tagResult)\n\n        let styleResult = Inspector.run('style', textAftetDR)\n        let styleResultRD = Inspector.removeDuplate(styleResult)\n\n        let attributeResult = Inspector.run('attribute', textAftetDR)\n        let attributeResultRD = Inspector.removeDuplate(attributeResult)\n\n        this.allActiveModules = tagResult.concat(styleResult, attributeResult)\n        this.activeModules = Array.from(new Set(tagResultRD.concat(styleResultRD, attributeResultRD)))\n\n        // reset\n        this.modules.forEach(module => {\n          module.forbidden = false\n          module.moduleInspectResult = false\n        })\n\n        // handle forbidden logic\n        if (this.allActiveModules.length) {\n          let excludeList = []\n          this.allActiveModules.forEach(m => {\n            if (Array.isArray(m)) {\n              m.forEach(moduleName => {\n                let curModule = this.modulesMap[moduleName]\n                excludeList = excludeList.concat(curModule.exclude)\n              })\n            }\n          })\n          excludeList = Array.from(new Set(excludeList))\n          excludeList.forEach(exc => {\n            let excModule = this.modulesMap[exc]\n            if (excModule && excModule.type !== 'fn') {\n              excModule.forbidden = true\n            }\n          })\n        }\n\n        // handle highlight logic\n        if (this.activeModules.length) {\n          this.modules.forEach(module => {\n            module.moduleInspectResult = false\n            let moduleName = module.name\n            if (this.activeModules.includes(moduleName)) {\n              module.moduleInspectResult = true\n              let curModuleActiveItem = this.getCurActiveModuleItem()[moduleName]\n              if (typeof curModuleActiveItem === 'string') {\n                module.moduleInspectResult = curModuleActiveItem || 'ALL'\n              }\n            }\n          })\n        }\n      }\n    }\n  },\n  created(){\n    this.modules.forEach((module) => {\n      if (typeof module.init === 'function') {\n        module.init(this)\n      }\n    })\n  },\n  mounted(){\n    const content = this.$refs.content\n    const toolbar = this.$refs.toolbar\n    content.innerHTML = this.content\n    // add eventListener at document to handle selection\n    document.addEventListener('mouseup', e => {\n      this.saveCurrentRange()\n      this.moduleInspect()\n    }, false)\n    // toolbar.addEventListener('mousedown', this.saveCurrentRange, false)\n    content.addEventListener('keyup', e => {\n      this.$emit('change', content.innerHTML)\n      this.saveCurrentRange()\n      this.moduleInspect()\n    }, false)\n    content.addEventListener('mouseout', e => {\n      this.saveCurrentRange()\n    }, false)\n    content.addEventListener('paste', e => {\n      this.execCommand('paste', e, true)\n      let common = this.range.commonAncestorContainer\n      if (common) {\n        if (common.nodeType === Node.TEXT_NODE) {\n          common = common.parentNode\n        }\n        if (common.scrollIntoView) {\n          common.scrollIntoView(false)\n        }\n      }\n    })\n    this.touchHandler = (e) => {\n      if (content.contains(e.target)) {\n        this.saveCurrentRange()\n        this.moduleInspect()\n      }\n    }\n    window.addEventListener('touchend', this.touchHandler, false)\n\n    // before exec command\n    // let text be a row\n    RH.prototype.before((command,  rh, arg) => {\n      let node = rh.range.commonAncestorContainer\n      // handle editor with no content\n      if (rh.isEmptyNode(node) && node === rh.editZone()) {\n        let firstChild = node.firstElementChild\n        if (firstChild && firstChild.nodeName === 'BR') {\n          node.removeChild(firstChild)\n        }\n        let newRow = rh.newRow({br: true})\n        node.appendChild(newRow)\n        rh.getSelection().collapse(newRow, 1)\n        return\n      }\n      let texts = rh.getAllTextNodesInRange()\n      texts.forEach(text => {\n        if (!rh.isEmptyNode(text)) {\n          rh.textToRow(text)\n        }\n      })\n      if (texts.length) {\n        rh.editor.saveCurrentRange()\n      }\n    })\n\n    // handle shortcut\n    content.addEventListener('keydown', e => {\n      this.execCommand('keydown', e, true)\n      let item = this.shortcut[e.keyCode]\n      if (item && item.length) {\n        item.forEach(s => {\n          if (e.keyCode === s.keyCode && e.altKey === !!s.altKey && e.ctrlKey === !!s.ctrlKey && e.metaKey === !!s.metaKey && e.shiftKey === !!s.shiftKey) {\n            if (typeof s.handler === 'function') {\n              this.saveCurrentRange()\n              s.handler(this, e)\n            }\n          }\n        })\n      }\n    }, false)\n\n    this.$nextTick(() => {\n      this.modules.forEach((module) => {\n        if (typeof module.mounted === 'function') {\n          module.mounted(this)\n        }\n      })\n    })\n  },\n  updated(){\n    this.modules.forEach((module) => {\n      if (typeof module.updated === 'function') {\n        module.updated(this)\n      }\n    })\n  },\n  beforeDestroy(){\n    window.removeEventListener('touchend', this.touchHandler)\n    this.modules.forEach((module) => {\n      if (typeof module.destroyed === 'function') {\n        module.destroyed(this)\n      }\n    })\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/editor/editor.js","import commands from '../commands'\n\n// for IE 11\nif (!Text.prototype.contains) {\n  Text.prototype.contains = function contains(otherNode) {\n    return this === otherNode\n  }\n}\n\nexport default class RangeHandler {\n  /**\n   * build range handler\n   * @param {Range} range\n   * @param {editor} current editor\n   */\n  constructor(range, editor) {\n    if (!range || !(range instanceof Range)) {\n      throw new TypeError('cant\\'t resolve range')\n    }\n    this.range = range\n    this.editor = editor\n  }\n\n  /**\n   * execute edit command\n   * @param {String} command\n   * @param arg\n   */\n  execCommand(command, arg) {\n    RangeHandler.beforeList.forEach(fn => {\n      fn.call(this, command, this, arg)\n    })\n    const existCommand = commands[command]\n    const customCommand = this.editor.commands ? this.editor.commands[command] : null\n    if (existCommand) {\n      existCommand(this, arg)\n    }\n    else if (customCommand) {\n       customCommand(this, arg)\n    } else {\n      document.execCommand(command, false, arg)\n    }\n    RangeHandler.afterList.forEach(fn => {\n      fn.call(this, command, this, arg)\n    })\n  }\n\n  /*\n   * run fn before exec command  \n   **/\n  before (fn) {\n    if (typeof fn === 'function') {\n      RangeHandler.beforeList.push(fn)\n    }\n  }\n\n  clearBeforeList () {\n    RangeHandler.beforeList = []\n  }\n\n  /*\n   * run fn after exec command  \n   **/\n  after (fn) {\n    if (typeof fn === 'function') {\n      RangeHandler.afterList.push(fn)\n    }\n  }\n\n  clearAfterList () {\n    RangeHandler.afterList = []\n  }\n}\n\nRangeHandler.beforeList = []\nRangeHandler.afterList = []\n\n\n\n// WEBPACK FOOTER //\n// ./src/range-handler/instance.js","import lrz from 'lrz'\n\nconst insertImage = function (rh, arg) {\n  // forbidden logic\n  let forbidden = false\n  let actives = rh.editor.activeModules\n  actives.forEach(name => {\n    let module = rh.editor.modulesMap[name]\n    if (module && module.exclude && module.exclude.includes('image')) {\n      forbidden = true\n    }\n  })\n  if (forbidden) return\n\n  let returnData = {\n    origin: arg\n  }\n  let editor = rh.editor\n  let config = editor.modulesMap['image']\n  if (!config) {\n    throw new Error('image config load fail')\n  }\n  if (arg instanceof File) {\n    handleFile(arg)\n  }\n  if (typeof arg === 'string') {\n    document.execCommand('insertImage', false, arg)\n  }\n\n  function handleFile(file) {\n    if (config.compress) {\n      config.compress.fieldName = config.fieldName || 'image'\n      lrz(file, config.compress).then(rst => {\n        if (rst.file.size > config.maxSize) {\n          Object.assign(returnData, {\n            status: 'exceed size limit, after compress',\n            statusCode: 3\n          }, rst)\n          editor.$emit('imageUpload', returnData)\n        } else {\n          Object.assign(returnData, rst)\n          let imgId = rh.createRandomId('img')\n          insertBase64(returnData.base64, imgId)\n        }\n      }).catch(err => {\n        Object.assign(returnData, {\n          status: err,\n          statusCode: 2\n        })\n        editor.$emit('imageUpload', returnData)\n      })\n    } else {\n      if (file.size > config.maxSize) {\n        editor.$emit('imageUpload', Object.assign(returnData, {\n          status: 'exceed size limit, without compress',\n          statusCode: 3\n        }))\n      } else {\n        let formData = new FormData()\n        formData.append(config.fieldName, file, file.name)\n        returnData.formData = formData\n        const reader = new FileReader()\n        reader.onload = (e) => {\n          let imgId = rh.createRandomId('img')\n          insertBase64(e.target.result, imgId)\n        }\n        reader.readAsDataURL(file)\n      }\n    }\n  }\n\n  function insertBase64 (base64, id) {\n    let dom = `<img src=\"${base64}\" data-editor-img=\"${id}\">`\n    if (config.imgOccupyNewRow) {\n      let node = rh.range.commonAncestorContainer\n      let curRow = rh.forceGetRow(node)\n      if (curRow) {\n        let sibling = curRow.nextElementSibling\n        let newRow = rh.newRow({contenteditable: false})\n        newRow.innerHTML = dom\n        rh.insertAfter(newRow, curRow)\n        if (!sibling) {\n          sibling = rh.newRow({br: true})\n          rh.insertAfter(sibling, newRow)\n        }\n        try {\n          rh.getSelection().collapse(sibling, 1)\n        } catch (e) {\n          rh.getSelection().collapse(sibling, 0)\n        }\n      }\n    } else {\n      editor.execCommand('insertHTML', dom, true)\n    }\n    editor.saveCurrentRange()\n    editor.$emit('imageUpload', Object.assign(returnData, {\n      status: 'everything fine',\n      statusCode: 2,\n      base64,\n      replaceSrcAfterUploadFinish: replaceImg(id),\n      deleteImgWhenUploadFail: deleteImg(id)\n    }))\n  }\n\n  // replace image's base64 src to url after upload finish\n  function replaceImg (id) {\n    return function (src) {\n      let target = document.querySelector(`img[data-editor-img='${id}']`)\n      if (target) {\n        target.setAttribute('src', src)\n        target.removeAttribute('data-editor-img')\n        editor.$emit('change', editor.$refs.content.innerHTML)\n      }\n    }\n  }\n\n  // delete image after upload fail\n  function deleteImg (id) {\n    return function () {\n      let target = document.querySelector(`img[data-editor-img='${id}']`)\n      if (target) {\n        target.parentNode.removeChild(target)\n        editor.$emit('change', editor.$refs.content.innerHTML)\n      }\n    }\n  }\n}\n\nexport default insertImage\n\n\n\n// WEBPACK FOOTER //\n// ./src/commands/insertImage.js","import commands from './index'\n\nexport default function (rh, arg) {\n  if (rh.range.collapsed) {\n    let s =rh.getSelection()\n    let node = s.baseNode\n    let row = rh.getRow(node)\n    if (row) {\n      // delete current span element to keep line-height run correct\n      if (rh.isEmptyNode(node) && node.parentNode.nodeName === 'SPAN') {\n        document.execCommand('delete', false)\n      }\n      commands.insertHTML(rh, '&#8203;')\n      const range = document.createRange()\n      range.setStart(s.focusNode, s.anchorOffset - 1)\n      range.setEnd(s.focusNode, s.focusOffset)\n      s.removeAllRanges()\n      s.addRange(range)\n      document.execCommand('styleWithCSS', false, true)\n      document.execCommand('fontSize', false, arg)\n      s.collapse(s.focusNode, 1)\n      return\n    }\n  } else {\n    document.execCommand('styleWithCSS', false, true)\n    document.execCommand('fontSize', false, arg)\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/commands/fontSize.js","export default function (rh, e) {\n  e.preventDefault()\n  let text = null\n\n  if(window.clipboardData && clipboardData.setData) {\n    // IE\n    text = window.clipboardData.getData('text')\n  } else {\n    text = (e.originalEvent || e).clipboardData.getData('text/plain') \n  }\n  if (document.body.createTextRange) {\n    if (document.selection) {\n      textRange = document.selection.createRange()\n    } else if (window.getSelection) {\n      sel = window.getSelection()\n      var range = sel.getRangeAt(0)\n\n      // 创建临时元素，使得TextRange可以移动到正确的位置\n      var tempEl = document.createElement(\"span\")\n      tempEl.innerHTML = \"&#FEFF;\"\n      range.deleteContents()\n      range.insertNode(tempEl)\n      textRange = document.body.createTextRange()\n      textRange.moveToElementText(tempEl)\n      tempEl.parentNode.removeChild(tempEl)\n    }\n    textRange.text = text\n    textRange.collapse(false)\n    textRange.select()\n  } else {\n    // Chrome之类浏览器\n    document.execCommand(\"insertText\", false, text)\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/commands/paste.js","import commands from './index'\n\nexport default function (rh, e) {\n  let node = rh.range.commonAncestorContainer\n  if (rh.range.collapsed) {\n\n    // rewrite li enter logic\n    if (rh.findSpecialAncestor(node, 'li') && rh.isEmptyNode(node)) {\n      e.preventDefault()\n      let ulOrOl = rh.findSpecialAncestor(node, 'ul') || rh.findSpecialAncestor(node, 'ol')\n      if (ulOrOl.nodeName === 'UL') {\n        commands['insertUnorderedList'](rh, e)\n      }\n      if (ulOrOl.nodeName === 'OL') {\n        commands['insertOrderedList'](rh, e)\n      }\n    }\n  }\n  afterEnter(rh, e)\n}\n\nfunction afterEnter(rh, e) {\n  setTimeout(function () {\n    let node = rh.getSelection().baseNode\n    let row = rh.getRow(node)\n    // clear new row's indent\n    if (row) {\n      row.style.marginLeft = ''\n      row.style.marginRight = ''\n    }\n  })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/commands/enter.js","import commands from './index'\n\nexport default function (rh, arg) {\n  let s = rh.getSelection()\n  if (!s.isCollapsed) {\n    document.execCommand('styleWithCSS', false, false)\n    document.execCommand('underline', false, arg)\n    return\n  } else {\n    let node = s.focusNode\n    let row = rh.getRow(node)\n    let nodeCtn = node.innerText || node.nodeValue\n\n    // the outermost underline tag\n    let underline = rh.findSpecialAncestor(node, 'u', false, row) || rh.findSpecialAncestorByStyle(node, {\n        'textDecorationLine': 'underline'\n      }, false, row)\n    let existStyle = rh.findExistTagTillBorder(node, ['STRIKE', 'I', 'B', 'STRONG'], row)\n    let fontSize = rh.findSpecialAncestorStyle(node, 'fontSize', true, row)\n    if (!underline) {\n      existStyle.push('U')\n    }\n    if (existStyle.length) {\n      let newDOM = rh.createNestDOMThroughList(existStyle)\n      let v = rh.newRow()\n      if (fontSize) {\n        let span = document.createElement('span')\n        span.style.fontSize = fontSize\n        v.appendChild(span)\n        span.appendChild(newDOM.dom)\n      } else {\n        v.appendChild(newDOM.dom)\n      }\n      commands.insertHTML(rh, v.innerHTML)\n      let deepestNode = document.getElementById(newDOM.deepestId)\n      s.collapse(deepestNode, 1)\n      deepestNode.removeAttribute('id')\n    } else {\n      let newText = document.createElement('span')\n      newText.style.fontSize = fontSize\n      newText.innerHTML = '&#8203;'\n      rh.insertAfter(newText, underline)\n      s.collapse(newText, 1)\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/commands/underline.js","import commands from './index'\n\nexport default function (rh, arg) {\n  let s = rh.getSelection()\n  if (!s.isCollapsed) {\n    document.execCommand('styleWithCSS', false, false)\n    document.execCommand('strikeThrough', false, arg)\n    return\n  } else {\n    let node = s.focusNode\n    let row = rh.getRow(node)\n    let nodeCtn = node.innerText || node.nodeValue\n\n    // the outermost strikeThrough tag\n    let strikeThrough = rh.findSpecialAncestor(node, 'STRIKE', false, row) || rh.findSpecialAncestorByStyle(node, {\n        'textDecorationLine': 'line-through'\n      }, false, row)\n    let existStyle = rh.findExistTagTillBorder(node, ['U', 'I', 'B', 'STRONG'], row)\n    let fontSize = rh.findSpecialAncestorStyle(node, 'fontSize', true, row)\n    if (!strikeThrough) {\n      existStyle.push('STRIKE')\n    }\n    if (existStyle.length) {\n      let newDOM = rh.createNestDOMThroughList(existStyle)\n      let v = rh.newRow()\n      if (fontSize) {\n        let span = document.createElement('span')\n        span.style.fontSize = fontSize\n        v.appendChild(span)\n        span.appendChild(newDOM.dom)\n      } else {\n        v.appendChild(newDOM.dom)\n      }\n      commands.insertHTML(rh, v.innerHTML)\n      let deepestNode = document.getElementById(newDOM.deepestId)\n      s.collapse(deepestNode, 1)\n      deepestNode.removeAttribute('id')\n    } else {\n      let newText = document.createElement('span')\n      newText.style.fontSize = fontSize\n      newText.innerHTML = '&#8203;'\n      rh.insertAfter(newText, strikeThrough)\n      s.collapse(newText, 1)\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/commands/strikeThrough.js","import commands from './index'\n\nexport default function (rh, arg) {\n  let s = rh.getSelection()\n  if (!s.isCollapsed) {\n    document.execCommand('styleWithCSS', false, false)\n    document.execCommand('italic', false, arg)\n    return\n  } else {\n    let node = s.focusNode\n    let row = rh.getRow(node)\n\n    // the outermost italic tag\n    let italic = rh.findSpecialAncestor(node, 'i', false, row) || rh.findSpecialAncestorByStyle(node, {\n        'fontStyle': 'italic'\n      }, false, row)\n    let existStyle = rh.findExistTagTillBorder(node, ['STRIKE', 'U', 'B', 'STRONG'], row)\n    let fontSize = rh.findSpecialAncestorStyle(node, 'fontSize', true, row)\n    // is in a italic\n    if (!italic) {\n      existStyle.push('I')\n    }\n    if (existStyle.length) {\n      let newDOM = rh.createNestDOMThroughList(existStyle)\n      let v = rh.newRow()\n      if (fontSize) {\n        let span = document.createElement('span')\n        span.style.fontSize = fontSize\n        v.appendChild(span)\n        span.appendChild(newDOM.dom)\n      } else {\n        v.appendChild(newDOM.dom)\n      }\n      commands.insertHTML(rh, v.innerHTML)\n      let deepestNode = document.getElementById(newDOM.deepestId)\n      s.collapse(deepestNode, 1)\n      deepestNode.removeAttribute('id')\n    } else {\n      let newText = document.createElement('span')\n      newText.style.fontSize = fontSize\n      newText.innerHTML = '&#8203;'\n      rh.insertAfter(newText, italic)\n      s.collapse(newText, 1)\n    }\n  }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/commands/italic.js","import commands from './index'\n\nexport default function (rh, arg) {\n  let s = rh.getSelection()\n  if (!s.isCollapsed) {\n    document.execCommand('styleWithCSS', false, false)\n    document.execCommand('bold', false, arg)\n    return\n  } else {\n    let node = s.focusNode\n    let row = rh.getRow(node)\n\n    // the outermost bold tag\n    let bold = rh.findSpecialAncestor(node, 'strong') || rh.findSpecialAncestor(node, 'b') || rh.findSpecialAncestorByStyle(node, {\n        'fontWeight': 'bold'\n      })\n    let existStyle = rh.findExistTagTillBorder(node, ['STRIKE', 'I', 'U'], row)\n    let fontSize = rh.findSpecialAncestorStyle(node, 'fontSize', true, row)\n    if (!bold) {\n      existStyle.push('B')\n    }\n    if (existStyle.length) {\n      let newDOM = rh.createNestDOMThroughList(existStyle)\n      let v = rh.newRow()\n      if (fontSize) {\n        let span = document.createElement('span')\n        span.style.fontSize = fontSize\n        v.appendChild(span)\n        span.appendChild(newDOM.dom)\n      } else {\n        v.appendChild(newDOM.dom)\n      }\n      commands.insertHTML(rh, v.innerHTML)\n      let deepestNode = document.getElementById(newDOM.deepestId)\n      s.collapse(deepestNode, 1)\n      deepestNode.removeAttribute('id')\n    } else {\n      let newText = document.createElement('span')\n      newText.style.fontSize = fontSize\n      newText.innerHTML = '&#8203;'\n      rh.insertAfter(newText, bold)\n      s.collapse(newText, 1)\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/commands/bold.js","import commands from './index'\n\nconst q = {\n  // only set contenteditable:false in parent node can child node trigger keydown listener\n  'quote' (rh, isInQuote) {\n    let node = rh.range.commonAncestorContainer\n    if (isInQuote) {\n      node = node.nodeType === Node.TEXT_NODE ? node.parentNode : node\n      let quote = rh.findSpecialAncestor(node, '[data-editor-quote]')\n      if (quote) {\n        let texts = rh.getDescendantTextNodes(quote)\n        let quoteRows = []\n        let rows = Array.from(quote.querySelector('[data-editor-quote-block').children)\n        texts.forEach(text => {\n          // find row in current quote row\n          // let row = rh.findSpecialAncestor(text, constant.ROW_TAG, false, quote)\n          let row\n          rows.forEach(curRow => {\n            if (curRow.contains(text)) {\n              row = curRow\n            }\n          })\n          if (!quoteRows.includes(row)) {\n            quoteRows.push(row)\n          }\n        })\n        quoteRows.forEach((qr, index) => {\n          if (index === 0) {\n            quote.parentNode.replaceChild(qr, quote)\n          } else {\n            rh.insertAfter(qr, quoteRows[index - 1])\n          }\n        })\n        let s = rh.getSelection()\n        if (quoteRows.length) {\n          const range = document.createRange()\n          range.setStart(quoteRows[0], 0)\n          range.setEnd(quoteRows[quoteRows.length - 1], 1)\n          s.removeAllRanges()\n          s.addRange(range)\n        } else {\n          // it's a empty quote\n          let newRow = rh.newRow({br: true})\n          quote.parentNode.replaceChild(newRow, quote)\n          s.collapse(newRow, 1)\n        }\n      }\n      return\n    }\n    const texts = rh.getAllTextNodesInRange()\n    let curRow = rh.getRow(node)\n\n    // is at a empty row without row element, then create a row\n    // or texts has no common parent row\n    if (!curRow && !texts.length) {\n      let v = rh.newRow()\n      let newRow = rh.newRow({br: true})\n      v.appendChild(newRow)\n      commands.insertHTML(rh, newRow.outerHTML)\n      let s = rh.getSelection()\n      texts.push(s.focusNode)\n    }\n    if (!texts.length) {\n      texts.push(curRow)\n    }\n\n    let container = rh.newRow()\n    let quote = document.createElement('section')\n    let quoteBlock = rh.newRow({tag: 'div'})\n    quoteBlock.setAttribute('data-editor-quote-block', rh.createRandomId('quoteblock'))\n    quote.appendChild(quoteBlock)\n    let id = rh.createRandomId('quote')\n    quote.setAttribute('data-editor-quote', id)\n    quote.setAttribute('contenteditable', 'false')\n    let quoteRows = []\n    texts.forEach((text, index) => {\n      let curRow = rh.getRow(text)\n\n      // create a row for text without row\n      if (!curRow && text.nodeValue) {\n        curRow = rh.newRow()\n        curRow.appendChild(text)\n      }\n      if (curRow && !quoteRows.includes(curRow)) {\n        quoteRows.push(curRow)\n      }\n    })\n    let anchorRow\n    quoteRows.forEach((qr, index) => {\n      if (index !== quoteRows.length - 1) {\n        quoteBlock.appendChild(qr)\n        return\n      }\n      quoteBlock.appendChild(qr.cloneNode(true))\n      anchorRow = qr\n    })\n\n    if (anchorRow.parentNode) {\n      anchorRow.parentNode.replaceChild(quote, anchorRow)\n    } else {\n      // current row is created and has no parent\n      let v = rh.newRow()\n      v.appendChild(quote)\n      rh.range.deleteContents()\n      commands['insertHTML'](rh, v.innerHTML)\n    }\n    const curQuote = document.querySelector(`[data-editor-quote='${id}']`)\n    if (!curQuote.lastElementChild) return\n    rh.getSelection().collapse(curQuote.lastElementChild, curQuote.lastElementChild.innerText ? 1 : 0)\n  },\n  'initQuote' (rh, arg) {\n    document.addEventListener('keydown', e => {\n      let quote = rh.findSpecialAncestor(e.target, '[data-editor-quote]')\n      if (quote) {\n        let s = rh.getSelection()\n        let node = s.anchorNode\n        let ctn = node.innerText || node.nodeValue\n        if (e.keyCode === 13) {\n          if (ctn.replace('\\n', '') === '') {\n            e.preventDefault()\n            let newRow = rh.newRow({br: true})\n            rh.insertAfter(newRow, quote)\n            if (node.parentNode.children.length > 1) {\n              node.parentNode.removeChild(node)\n            }\n            rh.getSelection().collapse(newRow, 0)\n            return\n          }\n        }\n        if (e.keyCode === 8) {\n\n          // cursor may at row or at quote block , so there are two judgement conditions\n          if (s.isCollapsed && (s.focusOffset === 0 || (node.contains(s.baseNode) && (rh.isEmptyNode(s.baseNode)) && s.focusOffset === 1))) {\n            let rows = Array.from(quote.querySelector('[data-editor-quote-block]').children)\n\n            // empty quote\n            if (!rows.length) {\n              e.preventDefault()\n              let newRow = rh.newRow({br: true})\n              quote.parentNode.replaceChild(newRow, quote)\n              rh.getSelection().collapse(newRow, 1)\n              return\n            }\n\n            rows.forEach((row, index) => {\n\n              // row and node has father-child relationship\n              if ((row === node || row.contains(node) || node.contains(row)) && index === 0) {\n\n                // only have one empty row in quote,then delete the quote\n                if (rows.length === 1 && rh.isEmptyNode(row)) {\n                  e.preventDefault()\n                  let newRow = rh.newRow({br: true})\n                  quote.parentNode.replaceChild(newRow, quote)\n                  rh.getSelection().collapse(newRow, 1)\n                  return\n                } else {\n\n                  // first row have content and previous element exist, then move cursor to previous element\n                  let preRow = rh.getPreviousRow(quote)\n                  if (preRow) {\n                    e.preventDefault()\n\n                    // previous row is a quote\n                    if (preRow.getAttribute('data-editor-quote')) {\n                      let lastEle = Array.from(preRow.querySelector('[data-editor-quote-block]').children).pop()\n                      try {\n                        rh.getSelection().collapse(lastEle, 1)\n                      } catch (e) {\n                        rh.getSelection().collapse(lastEle, 0)\n                      }\n                      return\n                    }\n\n                    // previous row is a todo\n                    if (preRow.getAttribute('data-editor-todo')) {\n                      let input = preRow.querySelector('[type=\"text\"]')\n                      if (input) {\n                        e.preventDefault()\n                        input.focus()\n                      }\n                      return\n                    }\n\n                    // previous row is a row\n                    try {\n                      rh.getSelection().collapse(preRow, 1)\n                    } catch (e) {\n                      rh.getSelection().collapse(preRow, 0)\n                    }\n                    return\n                  }\n                }\n              }\n            })\n          }\n        }\n      }\n    })\n  }\n}\n\nexport default q\n\n\n\n// WEBPACK FOOTER //\n// ./src/commands/quote.js","import commands from './index'\nimport constant from '../constant-config'\n\nconst t = {\n  'todo' (rh, data) {\n    let row = rh.newRow({\n      br: true\n    })\n    let curRow = rh.getRow(rh.range.commonAncestorContainer)\n    \n    // a empty row without row element, create a row element\n    if (!curRow) {\n      let v = rh.newRow()\n      let newRow = rh.newRow({br: true})\n      v.appendChild(newRow)\n      commands.insertHTML(rh, newRow.outerHTML)\n      let s = rh.getSelection()\n      curRow = s.focusNode\n    }\n\n    // insert todo after this row\n    let afterWhich = rh.getRow(data.insertAfter)\n\n    // is afterWhich is a empty row, just insert todo at current row\n    if (afterWhich && rh.isEmptyRow(afterWhich)) {\n      afterWhich = null\n    }\n    if (afterWhich) {\n      let targetIndex\n      let startIndex\n      let list = afterWhich.parentNode.childNodes\n      list.forEach((child, index) => {\n        if (child === afterWhich) {\n          startIndex = index\n          if (startIndex === list.length - 1) {\n            targetIndex = list.length\n          }\n          return\n        }\n        if (startIndex !== undefined && targetIndex === undefined) {\n          if (child && child.getAttribute('data-editor-todo')) {\n            targetIndex = index\n          }\n        }\n      })\n      targetIndex = targetIndex === undefined ? startIndex + 1 : targetIndex\n      afterWhich.parentNode.insertBefore(row, list[targetIndex])\n      rh.getSelection().collapse(row, 0)\n    } else {\n\n      // insert todo at current row if it is empty\n      if (rh.isEmptyRow(curRow)) {\n        rh.collapseAtRow(curRow)\n        row = curRow\n      } else {\n        rh.range.commonAncestorContainer.appendChild(row, 0)\n        rh.getSelection().collapse(row, 0)\n      }\n    }\n    let todoId = rh.createRandomId('todo')\n    commands['insertHTML'](rh, `<${constant.ROW_TAG} data-editor-todo=${todoId} contenteditable=\"false\"><input type=\"checkbox\"/><input type=\"text\" placeholder=\"${data.placeholder}\"></${constant.ROW_TAG}><br>`)\n    document.querySelector(`[data-editor-todo='${todoId}'] input[type=text]`).focus()\n    row.parentNode.removeChild(row)\n    t['initTodo'](rh, data)\n  },\n  // init todo logic\n  'initTodo' (rh, data) {\n    const checkboxs = document.querySelectorAll('[data-editor-todo]')\n    checkboxs.forEach((c, index) => {\n      const btn = c.querySelector('[type=checkbox]')\n      const ctn = c.querySelector('[type=text]')\n      if (c.init) return\n      ctnCheckedLogic()\n\n      function ctnCheckedLogic() {\n        ctn.value = ctn.value || ctn.getAttribute('data-editor-value')\n        ctn.setAttribute('data-editor-value', ctn.value)\n        if (btn.checked) {\n          ctn.style.textDecoration = 'line-through'\n          btn.setAttribute('checked', '')\n        } else {\n          ctn.style.textDecoration = 'none'\n          btn.removeAttribute('checked')\n        }\n\n      }\n\n      btn.onchange = e => {\n        ctnCheckedLogic()\n        if (rh.editor && rh.editor.$refs && rh.editor.$refs.content) {\n          rh.editor.$emit('change', rh.editor.$refs.content.innerHTML)\n        }\n      }\n      ctn.oninput = e => {\n        ctn.setAttribute('data-editor-value', e.target.value)\n      }\n      ctn.onkeydown = ctn.onkeydown || (e => {\n          if (![13, 8].includes(e.keyCode)) return\n          let row = c.nextSibling\n          if (e.keyCode === 13) {\n            if (ctn.value === '') {\n              e.preventDefault()\n              return deleteTodo()\n            }\n            t['todo'](rh, {\n              insertAfter: c,\n              placeholder: data.placeholder\n            })\n          } else if (e.keyCode === 8) {\n            if (ctn.value === '') {\n              e.preventDefault()\n              e.stopPropagation()\n              deleteTodo()\n            }\n          }\n\n          function deleteTodo() {\n            let newRow = rh.newRow({br: true})\n            c.parentNode.replaceChild(newRow, c)\n            rh.getSelection().collapse(newRow, 1)\n          }\n        })\n      c.init = true\n    })\n  }\n}\n\nexport default t\n\n\n\n// WEBPACK FOOTER //\n// ./src/commands/todo.js","import commands from './index'\nimport constant from '../constant-config'\n\nexport default function (rh, e) {\n  let node = rh.range.commonAncestorContainer\n  if (node.nodeType === Node.TEXT_NODE) {\n\n    // to keep text wrap by a row\n    if (node.parentNode === rh.editZone()) {\n      commands.formatBlock(rh, constant.ROW_TAG)\n      return\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/commands/keydown.js","import commands from './index'\nimport constant from '../constant-config'\n\nexport default function (rh, e) {\n  // restore first row\n  let s = rh.getSelection()\n  let node = s.baseNode\n  let value = node.nodeValue || node.innerText\n  // console.log('delete', node, e)\n  let curRange = rh.getRange() || rh.range\n\n  // cancel list when li is empty\n  if ((rh.findSpecialAncestor(node, 'li')) && rh.range.startOffset === 0) {\n    e.preventDefault()\n    let ulOrOl = rh.findSpecialAncestor(node, 'ul') || rh.findSpecialAncestor(node, 'ol')\n    if (ulOrOl.nodeName === 'UL') {\n      commands['insertUnorderedList'](rh, e)\n    }\n    if (ulOrOl.nodeName === 'OL') {\n      commands['insertOrderedList'](rh, e)\n    }\n    return\n  }\n  let row = rh.getRow(node)\n\n  // node is edit zone\n  if (!row) {\n    e.preventDefault()\n    return afterDelete(rh)\n  }\n  \n  // empty row\n  if (rh.range.collapsed && ((node === row && rh.range.startOffset === 0) || (row.innerHTML.replace(/<br>/g, '') === '' && rh.range.startOffset === 1))) {\n    let firstRow = rh.editZone().firstElementChild\n\n    // first row cancel outdent\n    if (firstRow === row) {\n      commands.outdent(rh, null)\n      e.preventDefault()\n      return\n    }\n  }\n\n  // row has content, cursor is at at start of the node, do outdent\n  if (rh.range.collapsed && value && rh.range.startOffset === 0 && (node === row.fistElementChild || node === row.firstChild)) {\n    let outdentResult = commands.outdent(rh, null)\n    if (outdentResult === 'NO_NEED_OUTDENT') {\n      return\n    }\n    e.preventDefault()\n    return\n  }\n\n  // empty row\n  if (row.innerHTML.replace(/<br>/g, '') === '') {\n    // get previous row with content\n    let preRow = rh.getPreviousRow(row)\n\n    // cursor focus on previous row's input if previous row is todo\n    if (preRow && preRow.dataset && preRow.dataset.editorTodo) {\n      row.parentNode.removeChild(row)\n      let input = preRow.querySelector('input[type=\"text\"]')\n      if (input) {\n        e.preventDefault()\n        input.focus()\n      }\n      e.preventDefault()\n      return\n    }\n  }\n  e.preventDefault()\n  return afterDelete(rh)\n}\n\n// handle &#8203; after delete\nfunction afterDelete(rh) {\n  let deleteInterval = window.setInterval(function () {\n    let s = rh.getSelection()\n    let focusNode = s.focusNode\n    let ctn = typeof focusNode.innerText === 'string' ? focusNode.innerText : focusNode.nodeValue\n    if (typeof ctn === 'string' && /\\u200B/.test(ctn) && ctn.replace(/\\u200B/g, '') === '') {\n      document.execCommand('delete', false)\n    } else {\n      document.execCommand('delete', false)\n      window.clearInterval(deleteInterval)\n    }\n  })\n\n  // if edit zone is empty, create a row\n  if (rh.isEmptyNode(rh.editZone()) && !rh.getRows().length) {\n    let row = rh.newRow({br: true})\n    rh.editZone().appendChild(row)\n    rh.getSelection().collapse(row, 1)\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/commands/delete.js","import commands from './index'\n\nexport default function (rh, arg) {\n  let texts = rh.getAllTextNodesInRange()\n  if (!texts.length) {\n    let s = rh.getSelection()\n    if (s.baseNode && s.baseNode.nodeType === Node.TEXT_NODE) {\n      texts.push(s.baseNode)\n    } else {\n      document.execCommand('insertHTML', false, '&#8203;')\n      if (s.baseNode && s.baseNode.nodeType === Node.TEXT_NODE) {\n        texts.push(s.baseNode)\n      }\n    }\n  }\n  texts.forEach(text => {\n    let curRow = rh.getRow(text)\n    if (!curRow) {\n      let newRow = rh.newRow()\n      newRow.innerText = text.nodeValue\n      let nextSibling = text.nextSibling\n      text.parentNode.replaceChild(newRow, text)\n      if (nextSibling && nextSibling.nodeName === 'BR') {\n        nextSibling.parentNode.removeChild(nextSibling)\n      }\n    }\n    document.execCommand('justifyRight', false)\n  })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/commands/justifyRight.js","import commands from './index'\n\nexport default function (rh, arg) {\n  let texts = rh.getAllTextNodesInRange()\n  if (!texts.length) {\n    let s = rh.getSelection()\n    if (s.baseNode && s.baseNode.nodeType === Node.TEXT_NODE) {\n      texts.push(s.baseNode)\n    } else {\n      document.execCommand('insertHTML', false, '&#8203;')\n      if (s.baseNode && s.baseNode.nodeType === Node.TEXT_NODE) {\n        texts.push(s.baseNode)\n      }\n    }\n  }\n  texts.forEach(text => {\n    let curRow = rh.getRow(text)\n    if (!curRow) {\n      let newRow = rh.newRow()\n      newRow.innerText = text.nodeValue\n      let nextSibling = text.nextSibling\n      text.parentNode.replaceChild(newRow, text)\n      if (nextSibling && nextSibling.nodeName === 'BR') {\n        nextSibling.parentNode.removeChild(nextSibling)\n      }\n    }\n    document.execCommand('justifyLeft', false)\n  })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/commands/justifyLeft.js","import commands from './index'\n\nexport default function (rh, arg) {\n  let texts = rh.getAllTextNodesInRange()\n  if (!texts.length) {\n    let s = rh.getSelection()\n    if (s.baseNode && s.baseNode.nodeType === Node.TEXT_NODE) {\n      texts.push(s.baseNode)\n    } else {\n      document.execCommand('insertHTML', false, '&#8203;')\n      if (s.baseNode && s.baseNode.nodeType === Node.TEXT_NODE) {\n        texts.push(s.baseNode)\n      }\n    }\n  }\n  texts.forEach(text => {\n    let curRow = rh.getRow(text)\n    if (!curRow) {\n      let newRow = rh.newRow()\n      newRow.innerText = text.nodeValue\n      let nextSibling = text.nextSibling\n      text.parentNode.replaceChild(newRow, text)\n      if (nextSibling && nextSibling.nodeName === 'BR') {\n        nextSibling.parentNode.removeChild(nextSibling)\n      }\n    }\n    document.execCommand('justifyCenter', false)\n  })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/commands/justifyCenter.js","import am from './assist-methods'\nimport constant from '../constant-config'\n\nconst m = {\n  /**\n   * func add every elements of extArr to sourceArr.\n   * @param sourceArr\n   * @param extArr\n   */\n  mergeArray (sourceArr, extArr) {\n    // note: Array.prototype.push.apply(arr1,arr2) is unreliable\n    extArr.forEach((el) => {\n      sourceArr.push(el)\n    })\n  },\n  /**\n   * find all the descendant text nodes of a element\n   * @param ancestor\n   */\n  getDescendantTextNodes (ancestor) {\n    if (ancestor.nodeType === Node.TEXT_NODE) {\n      return [ancestor]\n    }\n    const textNodes = []\n    if (!ancestor.hasChildNodes()) {\n      return textNodes\n    }\n    const childNodes = ancestor.childNodes\n    for (let i = 0; i < childNodes.length; i++) {\n      const node = childNodes[i]\n      if (node.nodeType === Node.TEXT_NODE) {\n        textNodes.push(node)\n      } else if (node.nodeType === Node.ELEMENT_NODE) {\n        m.mergeArray(textNodes, m.getDescendantTextNodes(node))\n      }\n    }\n    return textNodes\n  },\n  /**\n   * func find all the descendant text nodes of an ancestor element that before the specify end element,\n   * the ancestor element must contains the end element.\n   * @param ancestor\n   * @param endEl\n   */\n  getBeforeEndDescendantTextNodes (ancestor, endEl) {\n    const textNodes = []\n    let endIndex = 0\n    for (let i = 0; i < ancestor.childNodes.length; i++) {\n      if (ancestor.childNodes[i].contains(endEl)) {\n        endIndex = i\n        break\n      }\n    }\n\n    for (let i = 0; i <= endIndex; i++) {\n      const node = ancestor.childNodes[i]\n      if (node === endEl) {\n        m.mergeArray(textNodes, m.getDescendantTextNodes(node))\n      } else if (i === endIndex) {\n        if (node.nodeType === Node.TEXT_NODE) {\n          textNodes.push(node)\n        } else if (node.nodeType === Node.ELEMENT_NODE) {\n          m.mergeArray(textNodes, m.getBeforeEndDescendantTextNodes(node, endEl))\n        }\n      } else if (node.nodeType === Node.TEXT_NODE) {\n        textNodes.push(node)\n      } else if (node.nodeType === Node.ELEMENT_NODE) {\n        m.mergeArray(textNodes, m.getDescendantTextNodes(node))\n      }\n    }\n    return textNodes\n  },\n  /**\n   * func find all the descendant text nodes of an ancestor element that after the specify start element,\n   * the ancestor element must contains the start element.\n   * @param ancestor\n   * @param startEl\n   */\n  getAfterStartDescendantTextNodes (ancestor, startEl) {\n    const textNodes = []\n    let startIndex = 0\n    for (let i = 0; i < ancestor.childNodes.length; i++) {\n      if (ancestor.childNodes[i].contains(startEl)) {\n        startIndex = i\n        break\n      }\n    }\n\n    for (let i = startIndex; i < ancestor.childNodes.length; i++) {\n      const node = ancestor.childNodes[i]\n      if (node === startEl) {\n        m.mergeArray(textNodes, m.getDescendantTextNodes(node))\n      } else if (i === startIndex) {\n        if (node.nodeType === Node.TEXT_NODE) {\n          textNodes.push(node)\n        } else if (node.nodeType === Node.ELEMENT_NODE) {\n          m.mergeArray(textNodes,\n            m.getAfterStartDescendantTextNodes(node, startEl))\n        }\n      } else if (node.nodeType === Node.TEXT_NODE) {\n        textNodes.push(node)\n      } else if (node.nodeType === Node.ELEMENT_NODE) {\n        m.mergeArray(textNodes,\n          m.getDescendantTextNodes(node))\n      }\n    }\n    return textNodes\n  },\n  /**\n   * func get the closest parent block node of a text node.\n   * @param node\n   * @return {Node}\n   */\n  getParentBlockNode (node) {\n    const blockNodeNames = ['DIV', 'P', 'SECTION', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6',\n      'OL', 'UL', 'LI', 'TR', 'TD', 'TH', 'TBODY', 'THEAD', 'TABLE', 'ARTICLE', 'HEADER', 'FOOTER', 'BLOCKQUOTE']\n    let container = node\n    while (container) {\n      if (blockNodeNames.includes(container.nodeName)) {\n        break\n      }\n      container = container.parentNode\n    }\n    return container\n  },\n  isInlineElement (node) {\n    const inlineNodeNames = ['A', 'ABBR', 'ACRONYM', 'B', 'CITE', 'CODE', 'EM', 'I',\n      'FONT', 'IMG', 'S', 'SMALL', 'SPAN', 'STRIKE', 'STRONG', 'U', 'SUB', 'SUP']\n    return inlineNodeNames.includes(node.nodeName)\n  },\n  isInlineOrText (node) {\n    let isInline = m.isInlineElement(node)\n    let isText = node.nodeType === Node.TEXT_NODE\n    return isInline || isText\n  },\n  /*\n   * find all specify nodes in an ancestor through search opinions(unique attributes)\n   * @param node\n   * @param {obj}\n   *     must have key 'tagName'\n   * @return {arr}\n   **/\n  getAllSpecifyNode (ancestor, searchOpinion) {\n    const targetTagName = searchOpinion.tagName\n    delete searchOpinion.tagName\n    const tags = ancestor.querySelectorAll(targetTagName)\n    const result = []\n    tags.forEach(tag => {\n      const opinionKeys = Object.keys(searchOpinion)\n      let pass = true\n      opinionKeys.forEach(opinion => {\n        var a = tag.getAttribute(opinion)\n        if (tag.getAttribute(opinion) !== searchOpinion[opinion]) {\n          pass = false\n        }\n      })\n      if (pass) {\n        result.push(tag)\n      }\n    })\n    return result\n  },\n  /*\n   * func find the number of nesting ancestor which has same node name\n   * @param {node} current node\n   * @param {str} ancestor's tag name\n   * @return {num} number\n   **/\n  howManyNestAncestorSameTag (node, ancestorNodeName) {\n    let num = 0\n    ancestorNodeName = ancestorNodeName.toUpperCase()\n    while (node && (node !== am.editZone())) {\n      if (node.nodeName === ancestorNodeName) {\n        num++\n      }\n      node = node.parentNode\n    }\n    return num\n  },\n\n  /*\n   * find an ancestor element through selector\n   * @param {node} start at node\n   * @param {str} ancestor element's selector\n   * @param {boolean} either return first eligible element or last eligible element\n   *  default: true\n   * @param {node} searching stop at the border element\n   *  default: editor's content zone\n   * @return target ancestor element\n   **/\n  findSpecialAncestor (node, selector, firstOne = true, border) {\n    let result\n    let contentZone = am.editZone()\n    border = border || contentZone\n    while (node && (firstOne ? !result : true) && (node !== border)) {\n      if (!border || !border.contains(node)) return\n      let ancestors = Array.from(node.parentNode.querySelectorAll(selector))\n      if (ancestors.length) {\n        if (ancestors.includes(node)) {\n          result = node\n        }\n        node = node.parentNode\n      } else {\n        node = node.parentNode\n      }\n    }\n    return result\n  },\n  /*\n   * find target style\n   **/\n  findSpecialAncestorStyle (node, styleName, firstOne = true, border) {\n    let result\n    let contentZone = am.editZone()\n    border = border || contentZone\n    while (node && (firstOne ? !result : true) && (node !== border)) {\n      if (!border || !border.contains(node)) return\n      if (node.style && node.style[styleName]) {\n        result = node.style[styleName]\n      }\n      node = node.parentNode\n    }\n    return result\n  },\n  /*\n   * find an ancestor element through style name and style value\n   * @param style {obj} styleName: styleValue\n   * @return\n   **/\n  findSpecialAncestorByStyle (node, style, firstOne = true, border) {\n    let result\n    let contentZone = am.editZone()\n    border = border || contentZone\n    while (node && (firstOne ? !result : true) && (node !== border)) {\n      if (!border || !border.contains(node)) return\n      let parent = node.parentNode\n      let isTarget = true\n      Object.keys(style).forEach(styleName => {\n        if (style[styleName] !== parent.style[styleName]) {\n          isTarget = false\n        }\n      })\n      if (isTarget) {\n        result = parent\n        node = parent\n      } else {\n        node = parent\n      }\n    }\n    return result\n  },\n\n  getNodeNum (ancestor, nodeName) {\n    return ancestor.querySelectorAll(nodeName).length\n  },\n  /**\n   * find all the text nodes in range\n   */\n  getAllTextNodesInRange() {\n    const startContainer = this.range.startContainer\n    const endContainer = this.range.endContainer\n    const rootEl = this.range.commonAncestorContainer\n    const textNodes = []\n\n    if (startContainer === endContainer) {\n      if (startContainer.nodeType === Node.TEXT_NODE) {\n        return [startContainer]\n      }\n      const childNodes = startContainer.childNodes\n      for (let i = this.range.startOffset; i < this.range.endOffset; i++) {\n        m.mergeArray(textNodes, m.getDescendantTextNodes(childNodes[i]))\n      }\n      return textNodes\n    }\n\n    let startIndex = 0\n    let endIndex = 0\n    for (let i = 0; i < rootEl.childNodes.length; i++) {\n      const node = rootEl.childNodes[i]\n      if (node.contains(startContainer)) {\n        startIndex = i\n      }\n      if (node.contains(endContainer)) {\n        endIndex = i\n      }\n    }\n\n    for (let i = startIndex; i <= endIndex; i++) {\n      const node = rootEl.childNodes[i]\n      if (i === startIndex) {\n        if (node.nodeType === Node.TEXT_NODE) {\n          textNodes.push(node)\n        } else if (node.nodeType === Node.ELEMENT_NODE) {\n          m.mergeArray(textNodes, m.getAfterStartDescendantTextNodes(node, startContainer))\n        }\n      } else if (i === endIndex) {\n        if (node.nodeType === Node.TEXT_NODE) {\n          textNodes.push(node)\n        } else if (node.nodeType === Node.ELEMENT_NODE) {\n          m.mergeArray(textNodes, m.getBeforeEndDescendantTextNodes(node, endContainer))\n        }\n      } else if (node.nodeType === Node.TEXT_NODE) {\n        textNodes.push(node)\n      } else if (node.nodeType === Node.ELEMENT_NODE) {\n        m.mergeArray(textNodes, m.getDescendantTextNodes(node))\n      }\n    }\n    return textNodes\n  },\n  /*\n   * get the row which contains target element\n   * @param {node} target element\n   * @return {node} row\n   **/\n  getRow (node) {\n    let rows = Array.from(am.editZone().children)\n    let result\n    rows.forEach(row => {\n      if (row.contains(node) || row === node) {\n        result = row\n      }\n    })\n    return result\n  },\n  textToRow (node) {\n    if (node.parentNode === am.editZone() && node.nodeType === Node.TEXT_NODE) {\n      document.execCommand('formatBlock', false, constant.ROW_TAG_UPPERCASE)\n    }\n    return node\n  },\n  /*\n   * get row, if there's not, create one\n   **/\n  forceGetRow (node) {\n    node = m.textToRow(node)\n    return m.getRow(node)\n  },\n  /*\n   * return all rows\n   **/\n  getRows () {\n    return Array.from(am.editZone().children)\n  },\n  /*\n   * whether current node is a row\n   **/\n  isRow (node) {\n    let rows = Array.from(am.editZone().children)\n    return rows.includes(node)\n  },\n  /*\n   * create a wrapper for inline element in same row\n   **/\n  createWrapperForInline (node, wrapperNodeName, seperateByBr = true) {\n    if (!m.isInlineOrText(node)) return node\n    let elements = [node]\n    searchLeft()\n    searchRight()\n    let newRow = document.createElement(wrapperNodeName)\n    elements.forEach((ele, index) => {\n      if (index !== elements.length - 1) {\n        newRow.appendChild(ele)\n        return\n      }\n      let lastOne = ele.cloneNode(true)\n      newRow.appendChild(lastOne)\n      ele.parentNode.replaceChild(newRow, ele)\n    })\n\n    if (seperateByBr) {\n      handlerBr(newRow.previousSibling, true)\n      handlerBr(newRow.nextSibling, false)\n    }\n    return newRow\n\n    function handlerBr(node, direction) {\n      if (node && node.nodeName === 'BR') {\n        let nextDir = direction ? 'previousSibling' : 'nextSibling'\n        let targetNode = node[nextDir]\n        if (!targetNode) return\n        if (targetNode.nodeName === 'BR') {\n          return handlerBr(targetNode, direction)\n        }\n        m.createWrapperForInline(targetNode, wrapperNodeName, seperateByBr)\n      }\n    }\n    function searchLeft() {\n      while (elements[0].previousSibling && m.isInlineOrText(elements[0].previousSibling)) {\n        elements.unshift(elements[0].previousSibling)\n      }\n    }\n    function searchRight() {\n      while (elements[elements.length - 1].nextSibling && m.isInlineOrText(elements[elements.length - 1].nextSibling)) {\n        elements.push(elements[elements.length - 1].nextSibling)\n      }\n    }\n  },\n  /*\n   * get node's previous row which has content\n   **/\n  getPreviousRow (node) {\n    let row = m.getRow(node)\n    let preRow\n    let rows = m.getRows()\n    let rowIndex = null\n    rows.forEach((curRow, index) => {\n      if (curRow === row) {\n        rowIndex = index\n      }\n      if (rowIndex === null) {\n        if (curRow.innerHTML !== '') {\n          preRow = curRow\n        }\n      }\n    })\n    return preRow\n  },\n  /*\n   * whether target row is empty\n   **/\n  isEmptyRow (node) {\n    let row = m.isRow(node) ? node : m.getRow(node)\n    if (row.getAttribute) {\n      if (typeof row.getAttribute('data-editor-todo') === 'string' || typeof row.getAttribute('data-editor-quote') === 'string') {\n        return false\n      }\n    }\n    return row.innerText.replace('\\n', '').replace(/\\u200B/g, '') === ''\n  },\n  /*\n   * whether target node is empty\n   **/\n  isEmptyNode (node) {\n    let ctn = typeof node.innerText === 'string' ? node.innerText : node.nodeValue\n    if (typeof ctn !== 'string') return\n    return ctn.replace('\\n', '').replace(/\\u200B/g, '') === ''\n  },\n  /*\n   * try to collapse at target row\n   **/\n  collapseAtRow (node) {\n    let row = m.isRow(node) ? node : m.getRow(node)\n    let s = am.getSelection()\n    try {\n      s.collapse(row, 1)\n    } catch (e) {\n      s.collapse(row, 0)\n    }\n  },\n  /*\n   * searching nested ancestors till border to find the specified tagName\n   * @param {node} from which node\n   * @param {arr} includes tag names of target tag\n   * @param {node} search border\n   * @return {arr}\n   **/\n  findExistTagTillBorder (node, tagNamelist, border) {\n    let result = []\n    let contentZone = am.editZone()\n    border = border || contentZone\n    while (node && node !== border) {\n      if (!border || !border.contains(node)) return\n      let nodeName = node.nodeName\n      if (nodeName && tagNamelist.includes(nodeName)) {\n        if (!result.includes(nodeName)) {\n          result.push(nodeName)\n        }\n      }\n      node = node.parentNode\n    }\n    return result\n  },\n  /*\n   * return a nested DOM data through a tag name list\n   **/\n  createNestDOMThroughList (list) {\n    let result = {\n      dom: null,\n      deepestId: null,\n      deepest: null\n    }\n    list.forEach((tag, index) => {\n      let ele = document.createElement(tag)\n      result[index] = ele\n      let parent = result[index - 1]\n      if (parent) {\n        parent.appendChild(ele)\n      }\n      if (index === list.length - 1) {\n        result.deepest = ele\n        result.deepestId = am.createRandomId('deepest')\n        result.dom = result['0']\n        ele.id = result.deepestId\n        ele.innerHTML = '&#8203;'\n      }\n    })\n    return result\n  }\n}\n\nexport default m\n\n\n\n// WEBPACK FOOTER //\n// ./src/range-handler/handle-methods.js","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/_css-loader@0.28.7@css-loader/index.js!../../../node_modules/_stylus-loader@3.0.1@stylus-loader/index.js!./main.styl\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// Prepare cssTransformation\nvar transform;\n\nvar options = {\"hmr\":true}\noptions.transform = transform\n// add the styles to the DOM\nvar update = require(\"!../../../node_modules/_style-loader@0.19.0@style-loader/lib/addStyles.js\")(content, options);\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/_css-loader@0.28.7@css-loader/index.js!../../../node_modules/_stylus-loader@3.0.1@stylus-loader/index.js!./main.styl\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/_css-loader@0.28.7@css-loader/index.js!../../../node_modules/_stylus-loader@3.0.1@stylus-loader/index.js!./main.styl\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/editor/style/main.styl\n// module id = 62\n// module chunks = 0","export default \"<div class=\\\"my-vue-editor\\\" :class=\\\"{'full-screen':fullScreen}\\\" :style=\\\"{'z-index':zIndex}\\\">\\n    <nav class=\\\"toolbar\\\" :style=\\\"{'z-index':zIndex+1}\\\" ref=\\\"toolbar\\\" data-editor=\\\"toolbar\\\">\\n        <ul class=\\\"tabs\\\">\\n            <template v-for=\\\"module in modules\\\">\\n              <template v-if=\\\"!module.hasTab\\\">\\n                <li :title=\\\"locale[module.i18n]\\\" class=\\\"tab btn\\\" :class=\\\"{highLight: module.moduleInspectResult, forbidden: module.forbidden}\\\" @click=\\\"activeModule(module)\\\">\\n                  <span class=\\\"icon\\\" :class=\\\"module.icon\\\"></span>\\n                </li>\\n              </template>\\n              <template v-else>\\n                <keep-alive>\\n                  <li class=\\\"tab\\\" :is=\\\"module.tabName\\\" :activeItem=\\\"module.moduleInspectResult\\\" :forbidden=\\\"module.forbidden\\\" :class=\\\"{highLight: module.moduleInspectResult, forbidden: module.forbidden}\\\" @click=\\\"activeModule(module)\\\"></li>\\n                </keep-alive>\\n              </template>\\n            </template>\\n        </ul>\\n    </nav>\\n\\n    <p class='content' :is=\\\"constantConfig.ROW_TAG\\\" :spellcheck=\\\"spellcheck\\\" ref=\\\"content\\\" id=\\\"editor-content\\\" :style=\\\"contentStyle\\\" data-editor=\\\"content\\\"\\n         contenteditable=\\\"plaintext-only\\\" v-drag-pic=\\\"handleDragPic\\\">\\n    </p>\\n</div>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/editor/editor.html\n// module id = 63\n// module chunks = 0","/*\n * directive drag and drop pic\n **/\n\nexport default {\n  bind (el, binding, vnode) {\n    let editor = vnode.context\n    let onDragOver = e => {\n      e.preventDefault()\n      const selection = window.getSelection ? window.getSelection() : document.getSelection()\n      try {\n        selection.collapse(e.target, 1)\n      } catch (e) {\n        selection.collapse(e.target, 0)\n      }\n      editor.saveCurrentRange()\n      editor.moduleInspect()\n    }\n    let onDragLeave = e => {\n      e.preventDefault()\n    }\n\n    let onDrop = e => {\n      const selection = window.getSelection ? window.getSelection() : document.getSelection()\n      if (e.dataTransfer && e.dataTransfer.files) {\n        e.preventDefault()\n        console.log(e.target)\n        let files = e.dataTransfer.files\n        for (let i = 0; i< files.length; i ++) {\n          let curFile = files[i]\n          if (curFile.size && curFile.type.includes('image')) {\n            binding.value(curFile)\n          }\n        }\n      }\n    }\n\n    // el.addEventListener('dragenter', onDragEnter, false)\n    el.addEventListener('dragover', onDragOver, false)\n    el.addEventListener('dragleave', onDragLeave, false)\n    el.addEventListener('drop', onDrop, false)\n\n    el.__dragOverHandler = onDragOver\n    el.__dragLeaveHandler = onDragLeave\n    el.__dropHandler = onDrop\n  },\n  unbind (el, binding) {\n    el.removeEventListener('dragover', el.__dragOverHandler)\n    el.removeEventListener('dragleave', el.__dragLeaveHandler)\n    el.removeEventListener('drop', el.__dropHandler)\n    delete el.__dragOverHandler\n    delete el.__dragLeaveHandler\n    delete el.__dropHandler\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/editor/drag-pic.js","/*\n * load rule keywords of style inspect\n **/\n\nexport default function (curModule, modules) {\n  let result = []\n  let curExclude = curModule.exclude\n  if (Array.isArray(curExclude)) return curExclude\n  if (typeof curExclude === 'string') {\n    let moduleNameList = []\n    modules.forEach(m => {\n      if (m.name) {\n        moduleNameList.push(m.name)\n      }\n    })\n    moduleNameList = Array.from(new Set(moduleNameList))\n    switch (curExclude) {\n      // exclude all modules\n      case 'ALL':\n        result = moduleNameList\n        break\n      // exclude all modules but current module\n      case 'ALL_BUT_MYSELF':\n        result = moduleNameList\n        result.splice(result.indexOf(curModule.name), 1)\n        break\n    }\n  }\n  return result\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/module-inspect/load-module-inspect-exclude-rules.js","export default {\n    align: '对齐方式',\n    image: '图片',\n    list: '列表',\n    link: '链接',\n    unlink: '去除链接',\n    table: '表格',\n    font: '文字',\n    'full screen': '全屏',\n    text: '排版',\n    eraser: '格式清除',\n    info: '关于',\n    color: '颜色',\n    'please enter a url': '请输入地址',\n    'create link': '创建链接',\n    bold: '加粗',\n    italic: '倾斜',\n    underline: '下划线',\n    'strike through': '删除线',\n    subscript: '上标',\n    superscript: '下标',\n    heading: '标题',\n    'font name': '字体',\n    'font size': '文字大小',\n    'left justify': '左对齐',\n    'center justify': '居中',\n    'right justify': '右对齐',\n    'ordered list': '有序列表',\n    'unordered list': '无序列表',\n    'fore color': '前景色',\n    'background color': '背景色',\n    'row count': '行数',\n    'column count': '列数',\n    save: '确定',\n    upload: '上传',\n    progress: '进度',\n    unknown: '未知',\n    'please wait': '请稍等',\n    error: '错误',\n    abort: '中断',\n    reset: '重置',\n    hr: '分隔线',\n    undo: '撤消',\n    'line height': '行高',\n    'exceed size limit': '超出大小限制'\n}\n\n\n// WEBPACK FOOTER //\n// ./src/i18n/zh-cn.js","export default {\n    align: 'align',\n    image: 'image',\n    list: 'list',\n    link: 'link',\n    unlink: 'unlink',\n    table: 'table',\n    font: 'font',\n    'full screen': 'full screen',\n    text: 'text',\n    eraser: 'remove format',\n    info: 'info',\n    color: 'color',\n    'please enter a url': 'please enter a url',\n    'create link': 'create link',\n    bold: 'bold',\n    italic: 'italic',\n    underline: 'underline',\n    'strike through': 'strike through',\n    subscript: 'subscript',\n    superscript: 'superscript',\n    heading: 'heading',\n    'font name': 'font name',\n    'font size': 'font size',\n    'left justify': 'left justify',\n    'center justify': 'center justify',\n    'right justify': 'right justify',\n    'ordered list': 'ordered list',\n    'unordered list': 'unordered list',\n    'fore color': 'fore color',\n    'background color': 'background color',\n    'row count': 'row count',\n    'column count': 'column count',\n    save: 'save',\n    upload: 'upload',\n    progress: 'progress',\n    unknown: 'unknown',\n    'please wait': 'please wait',\n    error: 'error',\n    abort: 'abort',\n    reset: 'reset',\n    hr: 'horizontal rule',\n    undo: 'undo',\n    'line height': 'line height',\n    'exceed size limit': 'exceed size limit'\n}\n\n\n// WEBPACK FOOTER //\n// ./src/i18n/en-us.js"]}