1{"version":3,"sources":["../../node_modules/codemirror/mode/htmlmixed/htmlmixed.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defaultTags","script","style","maybeBackup","stream","pat","cur","current","close","search","backUp","length","match","attrRegexpCache","getAttrRegexp","attr","regexp","RegExp","getAttrValue","text","exec","getTagRegexp","tagName","anchored","addTags","from","to","tag","dest","source","i","unshift","findMatchingMode","tagInfo","tagText","spec","test","defineMode","config","parserConfig","htmlMode","getMode","name","multilineTagIndentFactor","multilineTagIndentPastTag","tags","configTags","configScript","scriptTypes","matches","mode","html","state","token","htmlState","toLowerCase","hasOwnProperty","inTag","modeSpec","endTagA","endTag","localState","localMode","startState","indent","eol","copyState","local","textAfter","line","Pass","innerMode","defineMIME"],"mappings":"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","file":"htmlmixed.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../javascript/javascript\"), require(\"../css/css\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../xml/xml\", \"../javascript/javascript\", \"../css/css\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var defaultTags = {\n    script: [\n      [\"lang\", /(javascript|babel)/i, \"javascript\"],\n      [\"type\", /^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^module$|^$/i, \"javascript\"],\n      [\"type\", /./, \"text/plain\"],\n      [null, null, \"javascript\"]\n    ],\n    style:  [\n      [\"lang\", /^css$/i, \"css\"],\n      [\"type\", /^(text\\/)?(x-)?(stylesheet|css)$/i, \"css\"],\n      [\"type\", /./, \"text/plain\"],\n      [null, null, \"css\"]\n    ]\n  };\n\n  function maybeBackup(stream, pat, style) {\n    var cur = stream.current(), close = cur.search(pat);\n    if (close > -1) {\n      stream.backUp(cur.length - close);\n    } else if (cur.match(/<\\/?$/)) {\n      stream.backUp(cur.length);\n      if (!stream.match(pat, false)) stream.match(cur);\n    }\n    return style;\n  }\n\n  var attrRegexpCache = {};\n  function getAttrRegexp(attr) {\n    var regexp = attrRegexpCache[attr];\n    if (regexp) return regexp;\n    return attrRegexpCache[attr] = new RegExp(\"\\\\s+\" + attr + \"\\\\s*=\\\\s*('|\\\")?([^'\\\"]+)('|\\\")?\\\\s*\");\n  }\n\n  function getAttrValue(text, attr) {\n    var match = text.match(getAttrRegexp(attr))\n    return match ? /^\\s*(.*?)\\s*$/.exec(match[2])[1] : \"\"\n  }\n\n  function getTagRegexp(tagName, anchored) {\n    return new RegExp((anchored ? \"^\" : \"\") + \"<\\/\\s*\" + tagName + \"\\s*>\", \"i\");\n  }\n\n  function addTags(from, to) {\n    for (var tag in from) {\n      var dest = to[tag] || (to[tag] = []);\n      var source = from[tag];\n      for (var i = source.length - 1; i >= 0; i--)\n        dest.unshift(source[i])\n    }\n  }\n\n  function findMatchingMode(tagInfo, tagText) {\n    for (var i = 0; i < tagInfo.length; i++) {\n      var spec = tagInfo[i];\n      if (!spec[0] || spec[1].test(getAttrValue(tagText, spec[0]))) return spec[2];\n    }\n  }\n\n  CodeMirror.defineMode(\"htmlmixed\", function (config, parserConfig) {\n    var htmlMode = CodeMirror.getMode(config, {\n      name: \"xml\",\n      htmlMode: true,\n      multilineTagIndentFactor: parserConfig.multilineTagIndentFactor,\n      multilineTagIndentPastTag: parserConfig.multilineTagIndentPastTag\n    });\n\n    var tags = {};\n    var configTags = parserConfig && parserConfig.tags, configScript = parserConfig && parserConfig.scriptTypes;\n    addTags(defaultTags, tags);\n    if (configTags) addTags(configTags, tags);\n    if (configScript) for (var i = configScript.length - 1; i >= 0; i--)\n      tags.script.unshift([\"type\", configScript[i].matches, configScript[i].mode])\n\n    function html(stream, state) {\n      var style = htmlMode.token(stream, state.htmlState), tag = /\\btag\\b/.test(style), tagName\n      if (tag && !/[<>\\s\\/]/.test(stream.current()) &&\n          (tagName = state.htmlState.tagName && state.htmlState.tagName.toLowerCase()) &&\n          tags.hasOwnProperty(tagName)) {\n        state.inTag = tagName + \" \"\n      } else if (state.inTag && tag && />$/.test(stream.current())) {\n        var inTag = /^([\\S]+) (.*)/.exec(state.inTag)\n        state.inTag = null\n        var modeSpec = stream.current() == \">\" && findMatchingMode(tags[inTag[1]], inTag[2])\n        var mode = CodeMirror.getMode(config, modeSpec)\n        var endTagA = getTagRegexp(inTag[1], true), endTag = getTagRegexp(inTag[1], false);\n        state.token = function (stream, state) {\n          if (stream.match(endTagA, false)) {\n            state.token = html;\n            state.localState = state.localMode = null;\n            return null;\n          }\n          return maybeBackup(stream, endTag, state.localMode.token(stream, state.localState));\n        };\n        state.localMode = mode;\n        state.localState = CodeMirror.startState(mode, htmlMode.indent(state.htmlState, \"\", \"\"));\n      } else if (state.inTag) {\n        state.inTag += stream.current()\n        if (stream.eol()) state.inTag += \" \"\n      }\n      return style;\n    };\n\n    return {\n      startState: function () {\n        var state = CodeMirror.startState(htmlMode);\n        return {token: html, inTag: null, localMode: null, localState: null, htmlState: state};\n      },\n\n      copyState: function (state) {\n        var local;\n        if (state.localState) {\n          local = CodeMirror.copyState(state.localMode, state.localState);\n        }\n        return {token: state.token, inTag: state.inTag,\n                localMode: state.localMode, localState: local,\n                htmlState: CodeMirror.copyState(htmlMode, state.htmlState)};\n      },\n\n      token: function (stream, state) {\n        return state.token(stream, state);\n      },\n\n      indent: function (state, textAfter, line) {\n        if (!state.localMode || /^\\s*<\\//.test(textAfter))\n          return htmlMode.indent(state.htmlState, textAfter, line);\n        else if (state.localMode.indent)\n          return state.localMode.indent(state.localState, textAfter, line);\n        else\n          return CodeMirror.Pass;\n      },\n\n      innerMode: function (state) {\n        return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode};\n      }\n    };\n  }, \"xml\", \"javascript\", \"css\");\n\n  CodeMirror.defineMIME(\"text/html\", \"htmlmixed\");\n});\n"]}