{"version":3,"file":"mode-xml-d3e57141.js","sources":["../../node_modules/ace-builds/src-noconflict/mode-xml.js"],"sourcesContent":["ace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar XmlHighlightRules = function (normalize) {\n    var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n    this.$rules = {\n        start: [\n            { token: \"string.cdata.xml\", regex: \"<\\\\!\\\\[CDATA\\\\[\", next: \"cdata\" },\n            {\n                token: [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n                regex: \"(<\\\\?)(\" + tagRegex + \")\", next: \"processing_instruction\"\n            },\n            { token: \"comment.start.xml\", regex: \"<\\\\!--\", next: \"comment\" },\n            {\n                token: [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n                regex: \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next: \"doctype\", caseInsensitive: true\n            },\n            { include: \"tag\" },\n            { token: \"text.end-tag-open.xml\", regex: \"</\" },\n            { token: \"text.tag-open.xml\", regex: \"<\" },\n            { include: \"reference\" },\n            { defaultToken: \"text.xml\" }\n        ],\n        processing_instruction: [{\n                token: \"entity.other.attribute-name.decl-attribute-name.xml\",\n                regex: tagRegex\n            }, {\n                token: \"keyword.operator.decl-attribute-equals.xml\",\n                regex: \"=\"\n            }, {\n                include: \"whitespace\"\n            }, {\n                include: \"string\"\n            }, {\n                token: \"punctuation.xml-decl.xml\",\n                regex: \"\\\\?>\",\n                next: \"start\"\n            }],\n        doctype: [\n            { include: \"whitespace\" },\n            { include: \"string\" },\n            { token: \"xml-pe.doctype.xml\", regex: \">\", next: \"start\" },\n            { token: \"xml-pe.xml\", regex: \"[-_a-zA-Z0-9:]+\" },\n            { token: \"punctuation.int-subset\", regex: \"\\\\[\", push: \"int_subset\" }\n        ],\n        int_subset: [{\n                token: \"text.xml\",\n                regex: \"\\\\s+\"\n            }, {\n                token: \"punctuation.int-subset.xml\",\n                regex: \"]\",\n                next: \"pop\"\n            }, {\n                token: [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n                regex: \"(<\\\\!)(\" + tagRegex + \")\",\n                push: [{\n                        token: \"text\",\n                        regex: \"\\\\s+\"\n                    },\n                    {\n                        token: \"punctuation.markup-decl.xml\",\n                        regex: \">\",\n                        next: \"pop\"\n                    },\n                    { include: \"string\" }]\n            }],\n        cdata: [\n            { token: \"string.cdata.xml\", regex: \"\\\\]\\\\]>\", next: \"start\" },\n            { token: \"text.xml\", regex: \"\\\\s+\" },\n            { token: \"text.xml\", regex: \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\" }\n        ],\n        comment: [\n            { token: \"comment.end.xml\", regex: \"-->\", next: \"start\" },\n            { defaultToken: \"comment.xml\" }\n        ],\n        reference: [{\n                token: \"constant.language.escape.reference.xml\",\n                regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n            }],\n        attr_reference: [{\n                token: \"constant.language.escape.reference.attribute-value.xml\",\n                regex: \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n            }],\n        tag: [{\n                token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n                regex: \"(?:(<)|(</))((?:\" + tagRegex + \":)?\" + tagRegex + \")\",\n                next: [\n                    { include: \"attributes\" },\n                    { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: \"start\" }\n                ]\n            }],\n        tag_whitespace: [\n            { token: \"text.tag-whitespace.xml\", regex: \"\\\\s+\" }\n        ],\n        whitespace: [\n            { token: \"text.whitespace.xml\", regex: \"\\\\s+\" }\n        ],\n        string: [{\n                token: \"string.xml\",\n                regex: \"'\",\n                push: [\n                    { token: \"string.xml\", regex: \"'\", next: \"pop\" },\n                    { defaultToken: \"string.xml\" }\n                ]\n            }, {\n                token: \"string.xml\",\n                regex: '\"',\n                push: [\n                    { token: \"string.xml\", regex: '\"', next: \"pop\" },\n                    { defaultToken: \"string.xml\" }\n                ]\n            }],\n        attributes: [{\n                token: \"entity.other.attribute-name.xml\",\n                regex: tagRegex\n            }, {\n                token: \"keyword.operator.attribute-equals.xml\",\n                regex: \"=\"\n            }, {\n                include: \"tag_whitespace\"\n            }, {\n                include: \"attribute_value\"\n            }],\n        attribute_value: [{\n                token: \"string.attribute-value.xml\",\n                regex: \"'\",\n                push: [\n                    { token: \"string.attribute-value.xml\", regex: \"'\", next: \"pop\" },\n                    { include: \"attr_reference\" },\n                    { defaultToken: \"string.attribute-value.xml\" }\n                ]\n            }, {\n                token: \"string.attribute-value.xml\",\n                regex: '\"',\n                push: [\n                    { token: \"string.attribute-value.xml\", regex: '\"', next: \"pop\" },\n                    { include: \"attr_reference\" },\n                    { defaultToken: \"string.attribute-value.xml\" }\n                ]\n            }]\n    };\n    if (this.constructor === XmlHighlightRules)\n        this.normalizeRules();\n};\n(function () {\n    this.embedTagRules = function (HighlightRules, prefix, tag) {\n        this.$rules.tag.unshift({\n            token: [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n            regex: \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n            next: [\n                { include: \"attributes\" },\n                { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: prefix + \"start\" }\n            ]\n        });\n        this.$rules[tag + \"-end\"] = [\n            { include: \"attributes\" },\n            { token: \"meta.tag.punctuation.tag-close.xml\", regex: \"/?>\", next: \"start\",\n                onMatch: function (value, currentState, stack) {\n                    stack.splice(0);\n                    return this.token;\n                } }\n        ];\n        this.embedRules(HighlightRules, prefix, [{\n                token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n                regex: \"(</)(\" + tag + \"(?=\\\\s|>|$))\",\n                next: tag + \"-end\"\n            }, {\n                token: \"string.cdata.xml\",\n                regex: \"<\\\\!\\\\[CDATA\\\\[\"\n            }, {\n                token: \"string.cdata.xml\",\n                regex: \"\\\\]\\\\]>\"\n            }]);\n    };\n}).call(TextHighlightRules.prototype);\noop.inherits(XmlHighlightRules, TextHighlightRules);\nexports.XmlHighlightRules = XmlHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nfunction is(token, type) {\n    return token && token.type.lastIndexOf(type + \".xml\") > -1;\n}\nvar XmlBehaviour = function () {\n    this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '\"' || text == \"'\") {\n            var quote = text;\n            var selected = session.doc.getTextRange(editor.getSelectionRange());\n            if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n                return {\n                    text: quote + selected + quote,\n                    selection: false\n                };\n            }\n            var cursor = editor.getCursorPosition();\n            var line = session.doc.getLine(cursor.row);\n            var rightChar = line.substring(cursor.column, cursor.column + 1);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n                return {\n                    text: \"\",\n                    selection: [1, 1]\n                };\n            }\n            if (!token)\n                token = iterator.stepBackward();\n            if (!token)\n                return;\n            while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n                token = iterator.stepBackward();\n            }\n            var rightSpace = !rightChar || rightChar.match(/\\s/);\n            if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n                return {\n                    text: quote + quote,\n                    selection: [1, 1]\n                };\n            }\n        }\n    });\n    this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n        var selected = session.doc.getTextRange(range);\n        if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n            var line = session.doc.getLine(range.start.row);\n            var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n            if (rightChar == selected) {\n                range.end.column++;\n                return range;\n            }\n        }\n    });\n    this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == '>') {\n            var position = editor.getSelectionRange().start;\n            var iterator = new TokenIterator(session, position.row, position.column);\n            var token = iterator.getCurrentToken() || iterator.stepBackward();\n            if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n                return;\n            if (is(token, \"reference.attribute-value\"))\n                return;\n            if (is(token, \"attribute-value\")) {\n                var tokenEndColumn = iterator.getCurrentTokenColumn() + token.value.length;\n                if (position.column < tokenEndColumn)\n                    return;\n                if (position.column == tokenEndColumn) {\n                    var nextToken = iterator.stepForward();\n                    if (nextToken && is(nextToken, \"attribute-value\"))\n                        return;\n                    iterator.stepBackward();\n                }\n            }\n            if (/^\\s*>/.test(session.getLine(position.row).slice(position.column)))\n                return;\n            while (!is(token, \"tag-name\")) {\n                token = iterator.stepBackward();\n                if (token.value == \"<\") {\n                    token = iterator.stepForward();\n                    break;\n                }\n            }\n            var tokenRow = iterator.getCurrentTokenRow();\n            var tokenColumn = iterator.getCurrentTokenColumn();\n            if (is(iterator.stepBackward(), \"end-tag-open\"))\n                return;\n            var element = token.value;\n            if (tokenRow == position.row)\n                element = element.substring(0, position.column - tokenColumn);\n            if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n                return;\n            return {\n                text: \">\" + \"</\" + element + \">\",\n                selection: [1, 1]\n            };\n        }\n    });\n    this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n        if (text == \"\\n\") {\n            var cursor = editor.getCursorPosition();\n            var line = session.getLine(cursor.row);\n            var iterator = new TokenIterator(session, cursor.row, cursor.column);\n            var token = iterator.getCurrentToken();\n            if (token && token.type.indexOf(\"tag-close\") !== -1) {\n                if (token.value == \"/>\")\n                    return;\n                while (token && token.type.indexOf(\"tag-name\") === -1) {\n                    token = iterator.stepBackward();\n                }\n                if (!token) {\n                    return;\n                }\n                var tag = token.value;\n                var row = iterator.getCurrentTokenRow();\n                token = iterator.stepBackward();\n                if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n                    return;\n                }\n                if (this.voidElements && !this.voidElements[tag]) {\n                    var nextToken = session.getTokenAt(cursor.row, cursor.column + 1);\n                    var line = session.getLine(row);\n                    var nextIndent = this.$getIndent(line);\n                    var indent = nextIndent + session.getTabString();\n                    if (nextToken && nextToken.value === \"</\") {\n                        return {\n                            text: \"\\n\" + indent + \"\\n\" + nextIndent,\n                            selection: [1, indent.length, 1, indent.length]\n                        };\n                    }\n                    else {\n                        return {\n                            text: \"\\n\" + indent\n                        };\n                    }\n                }\n            }\n        }\n    });\n};\noop.inherits(XmlBehaviour, Behaviour);\nexports.XmlBehaviour = XmlBehaviour;\n\n});\n\nace.define(\"ace/mode/folding/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (voidElements, optionalEndTags) {\n    BaseFoldMode.call(this);\n    this.voidElements = voidElements || {};\n    this.optionalEndTags = oop.mixin({}, this.voidElements);\n    if (optionalEndTags)\n        oop.mixin(this.optionalEndTags, optionalEndTags);\n};\noop.inherits(FoldMode, BaseFoldMode);\nvar Tag = function () {\n    this.tagName = \"\";\n    this.closing = false;\n    this.selfClosing = false;\n    this.start = { row: 0, column: 0 };\n    this.end = { row: 0, column: 0 };\n};\nfunction is(token, type) {\n    return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n(function () {\n    this.getFoldWidget = function (session, foldStyle, row) {\n        var tag = this._getFirstTagInLine(session, row);\n        if (!tag)\n            return this.getCommentFoldWidget(session, row);\n        if (tag.closing || (!tag.tagName && tag.selfClosing))\n            return foldStyle === \"markbeginend\" ? \"end\" : \"\";\n        if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n            return \"\";\n        if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n            return \"\";\n        return \"start\";\n    };\n    this.getCommentFoldWidget = function (session, row) {\n        if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))\n            return \"start\";\n        return \"\";\n    };\n    this._getFirstTagInLine = function (session, row) {\n        var tokens = session.getTokens(row);\n        var tag = new Tag();\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            if (is(token, \"tag-open\")) {\n                tag.end.column = tag.start.column + token.value.length;\n                tag.closing = is(token, \"end-tag-open\");\n                token = tokens[++i];\n                if (!token)\n                    return null;\n                tag.tagName = token.value;\n                tag.end.column += token.value.length;\n                for (i++; i < tokens.length; i++) {\n                    token = tokens[i];\n                    tag.end.column += token.value.length;\n                    if (is(token, \"tag-close\")) {\n                        tag.selfClosing = token.value == '/>';\n                        break;\n                    }\n                }\n                return tag;\n            }\n            else if (is(token, \"tag-close\")) {\n                tag.selfClosing = token.value == '/>';\n                return tag;\n            }\n            tag.start.column += token.value.length;\n        }\n        return null;\n    };\n    this._findEndTagInLine = function (session, row, tagName, startColumn) {\n        var tokens = session.getTokens(row);\n        var column = 0;\n        for (var i = 0; i < tokens.length; i++) {\n            var token = tokens[i];\n            column += token.value.length;\n            if (column < startColumn)\n                continue;\n            if (is(token, \"end-tag-open\")) {\n                token = tokens[i + 1];\n                if (token && token.value == tagName)\n                    return true;\n            }\n        }\n        return false;\n    };\n    this.getFoldWidgetRange = function (session, foldStyle, row) {\n        var tags = session.getMatchingTags({ row: row, column: 0 });\n        if (tags) {\n            return new Range(tags.openTag.end.row, tags.openTag.end.column, tags.closeTag.start.row, tags.closeTag.start.column);\n        }\n        else {\n            return this.getCommentFoldWidget(session, row)\n                && session.getCommentFoldRange(row, session.getLine(row).length);\n        }\n    };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar TextMode = require(\"./text\").Mode;\nvar XmlHighlightRules = require(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = require(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = require(\"./folding/xml\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n    this.HighlightRules = XmlHighlightRules;\n    this.$behaviour = new XmlBehaviour();\n    this.foldingRules = new XmlFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n    this.voidElements = lang.arrayToMap([]);\n    this.blockComment = { start: \"<!--\", end: \"-->\" };\n    this.createWorker = function (session) {\n        var worker = new WorkerClient([\"ace\"], \"ace/mode/xml_worker\", \"Worker\");\n        worker.attachToDocument(session.getDocument());\n        worker.on(\"error\", function (e) {\n            session.setAnnotations(e.data);\n        });\n        worker.on(\"terminate\", function () {\n            session.clearAnnotations();\n        });\n        return worker;\n    };\n    this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n});                (function() {\n                    ace.require([\"ace/mode/xml\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "],"names":["require","exports","module","oop","TextHighlightRules","XmlHighlightRules","normalize","tagRegex","HighlightRules","prefix","tag","value","currentState","stack","Behaviour","TokenIterator","is","token","type","XmlBehaviour","state","action","editor","session","text","quote","selected","cursor","line","rightChar","iterator","rightSpace","range","position","tokenEndColumn","nextToken","tokenRow","tokenColumn","element","row","nextIndent","indent","Range","BaseFoldMode","FoldMode","voidElements","optionalEndTags","Tag","foldStyle","tokens","i","tagName","startColumn","column","tags","lang","TextMode","XmlFoldMode","WorkerClient","Mode","worker","e","m"],"mappings":"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","x_google_ignoreList":[0]}