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"]}