All Downloads are FREE. Search and download functionalities are using the official Maven repository.

web-interface.assets.40f569ded183c3f2843af478d001fbe5.js.map Maven / Gradle / Ivy

There is a newer version: 6.1.4
Show newest version
{"version":3,"sources":["webpack://graylog-web-interface/40f569ded183c3f2843af478d001fbe5.js"],"sourcesContent":["ace.define(\"ace/snippets\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/lang\",\"ace/range\",\"ace/range_list\",\"ace/keyboard/hash_handler\",\"ace/tokenizer\",\"ace/clipboard\",\"ace/editor\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"./lib/dom\");\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar RangeList = require(\"./range_list\").RangeList;\nvar HashHandler = require(\"./keyboard/hash_handler\").HashHandler;\nvar Tokenizer = require(\"./tokenizer\").Tokenizer;\nvar clipboard = require(\"./clipboard\");\nvar VARIABLES = {\n    CURRENT_WORD: function (editor) {\n        return editor.session.getTextRange(editor.session.getWordRange());\n    },\n    SELECTION: function (editor, name, indentation) {\n        var text = editor.session.getTextRange();\n        if (indentation)\n            return text.replace(/\\n\\r?([ \\t]*\\S)/g, \"\\n\" + indentation + \"$1\");\n        return text;\n    },\n    CURRENT_LINE: function (editor) {\n        return editor.session.getLine(editor.getCursorPosition().row);\n    },\n    PREV_LINE: function (editor) {\n        return editor.session.getLine(editor.getCursorPosition().row - 1);\n    },\n    LINE_INDEX: function (editor) {\n        return editor.getCursorPosition().row;\n    },\n    LINE_NUMBER: function (editor) {\n        return editor.getCursorPosition().row + 1;\n    },\n    SOFT_TABS: function (editor) {\n        return editor.session.getUseSoftTabs() ? \"YES\" : \"NO\";\n    },\n    TAB_SIZE: function (editor) {\n        return editor.session.getTabSize();\n    },\n    CLIPBOARD: function (editor) {\n        return clipboard.getText && clipboard.getText();\n    },\n    FILENAME: function (editor) {\n        return /[^/\\\\]*$/.exec(this.FILEPATH(editor))[0];\n    },\n    FILENAME_BASE: function (editor) {\n        return /[^/\\\\]*$/.exec(this.FILEPATH(editor))[0].replace(/\\.[^.]*$/, \"\");\n    },\n    DIRECTORY: function (editor) {\n        return this.FILEPATH(editor).replace(/[^/\\\\]*$/, \"\");\n    },\n    FILEPATH: function (editor) { return \"/not implemented.txt\"; },\n    WORKSPACE_NAME: function () { return \"Unknown\"; },\n    FULLNAME: function () { return \"Unknown\"; },\n    BLOCK_COMMENT_START: function (editor) {\n        var mode = editor.session.$mode || {};\n        return mode.blockComment && mode.blockComment.start || \"\";\n    },\n    BLOCK_COMMENT_END: function (editor) {\n        var mode = editor.session.$mode || {};\n        return mode.blockComment && mode.blockComment.end || \"\";\n    },\n    LINE_COMMENT: function (editor) {\n        var mode = editor.session.$mode || {};\n        return mode.lineCommentStart || \"\";\n    },\n    CURRENT_YEAR: date.bind(null, { year: \"numeric\" }),\n    CURRENT_YEAR_SHORT: date.bind(null, { year: \"2-digit\" }),\n    CURRENT_MONTH: date.bind(null, { month: \"numeric\" }),\n    CURRENT_MONTH_NAME: date.bind(null, { month: \"long\" }),\n    CURRENT_MONTH_NAME_SHORT: date.bind(null, { month: \"short\" }),\n    CURRENT_DATE: date.bind(null, { day: \"2-digit\" }),\n    CURRENT_DAY_NAME: date.bind(null, { weekday: \"long\" }),\n    CURRENT_DAY_NAME_SHORT: date.bind(null, { weekday: \"short\" }),\n    CURRENT_HOUR: date.bind(null, { hour: \"2-digit\", hour12: false }),\n    CURRENT_MINUTE: date.bind(null, { minute: \"2-digit\" }),\n    CURRENT_SECOND: date.bind(null, { second: \"2-digit\" })\n};\nVARIABLES.SELECTED_TEXT = VARIABLES.SELECTION;\nfunction date(dateFormat) {\n    var str = new Date().toLocaleString(\"en-us\", dateFormat);\n    return str.length == 1 ? \"0\" + str : str;\n}\nvar SnippetManager = /** @class */ (function () {\n    function SnippetManager() {\n        this.snippetMap = {};\n        this.snippetNameMap = {};\n        this.variables = VARIABLES;\n    }\n    SnippetManager.prototype.getTokenizer = function () {\n        return SnippetManager.$tokenizer || this.createTokenizer();\n    };\n    SnippetManager.prototype.createTokenizer = function () {\n        function TabstopToken(str) {\n            str = str.substr(1);\n            if (/^\\d+$/.test(str))\n                return [{ tabstopId: parseInt(str, 10) }];\n            return [{ text: str }];\n        }\n        function escape(ch) {\n            return \"(?:[^\\\\\\\\\" + ch + \"]|\\\\\\\\.)\";\n        }\n        var formatMatcher = {\n            regex: \"/(\" + escape(\"/\") + \"+)/\",\n            onMatch: function (val, state, stack) {\n                var ts = stack[0];\n                ts.fmtString = true;\n                ts.guard = val.slice(1, -1);\n                ts.flag = \"\";\n                return \"\";\n            },\n            next: \"formatString\"\n        };\n        SnippetManager.$tokenizer = new Tokenizer({\n            start: [\n                { regex: /\\\\./, onMatch: function (val, state, stack) {\n                        var ch = val[1];\n                        if (ch == \"}\" && stack.length) {\n                            val = ch;\n                        }\n                        else if (\"`$\\\\\".indexOf(ch) != -1) {\n                            val = ch;\n                        }\n                        return [val];\n                    } },\n                { regex: /}/, onMatch: function (val, state, stack) {\n                        return [stack.length ? stack.shift() : val];\n                    } },\n                { regex: /\\$(?:\\d+|\\w+)/, onMatch: TabstopToken },\n                { regex: /\\$\\{[\\dA-Z_a-z]+/, onMatch: function (str, state, stack) {\n                        var t = TabstopToken(str.substr(1));\n                        stack.unshift(t[0]);\n                        return t;\n                    }, next: \"snippetVar\" },\n                { regex: /\\n/, token: \"newline\", merge: false }\n            ],\n            snippetVar: [\n                { regex: \"\\\\|\" + escape(\"\\\\|\") + \"*\\\\|\", onMatch: function (val, state, stack) {\n                        var choices = val.slice(1, -1).replace(/\\\\[,|\\\\]|,/g, function (operator) {\n                            return operator.length == 2 ? operator[1] : \"\\x00\";\n                        }).split(\"\\x00\").map(function (value) {\n                            return { value: value };\n                        });\n                        stack[0].choices = choices;\n                        return [choices[0]];\n                    }, next: \"start\" },\n                formatMatcher,\n                { regex: \"([^:}\\\\\\\\]|\\\\\\\\.)*:?\", token: \"\", next: \"start\" }\n            ],\n            formatString: [\n                { regex: /:/, onMatch: function (val, state, stack) {\n                        if (stack.length && stack[0].expectElse) {\n                            stack[0].expectElse = false;\n                            stack[0].ifEnd = { elseEnd: stack[0] };\n                            return [stack[0].ifEnd];\n                        }\n                        return \":\";\n                    } },\n                { regex: /\\\\./, onMatch: function (val, state, stack) {\n                        var ch = val[1];\n                        if (ch == \"}\" && stack.length)\n                            val = ch;\n                        else if (\"`$\\\\\".indexOf(ch) != -1)\n                            val = ch;\n                        else if (ch == \"n\")\n                            val = \"\\n\";\n                        else if (ch == \"t\")\n                            val = \"\\t\";\n                        else if (\"ulULE\".indexOf(ch) != -1)\n                            val = { changeCase: ch, local: ch > \"a\" };\n                        return [val];\n                    } },\n                { regex: \"/\\\\w*}\", onMatch: function (val, state, stack) {\n                        var next = stack.shift();\n                        if (next)\n                            next.flag = val.slice(1, -1);\n                        this.next = next && next.tabstopId ? \"start\" : \"\";\n                        return [next || val];\n                    }, next: \"start\" },\n                { regex: /\\$(?:\\d+|\\w+)/, onMatch: function (val, state, stack) {\n                        return [{ text: val.slice(1) }];\n                    } },\n                { regex: /\\${\\w+/, onMatch: function (val, state, stack) {\n                        var token = { text: val.slice(2) };\n                        stack.unshift(token);\n                        return [token];\n                    }, next: \"formatStringVar\" },\n                { regex: /\\n/, token: \"newline\", merge: false },\n                { regex: /}/, onMatch: function (val, state, stack) {\n                        var next = stack.shift();\n                        this.next = next && next.tabstopId ? \"start\" : \"\";\n                        return [next || val];\n                    }, next: \"start\" }\n            ],\n            formatStringVar: [\n                { regex: /:\\/\\w+}/, onMatch: function (val, state, stack) {\n                        var ts = stack[0];\n                        ts.formatFunction = val.slice(2, -1);\n                        return [stack.shift()];\n                    }, next: \"formatString\" },\n                formatMatcher,\n                { regex: /:[\\?\\-+]?/, onMatch: function (val, state, stack) {\n                        if (val[1] == \"+\")\n                            stack[0].ifEnd = stack[0];\n                        if (val[1] == \"?\")\n                            stack[0].expectElse = true;\n                    }, next: \"formatString\" },\n                { regex: \"([^:}\\\\\\\\]|\\\\\\\\.)*:?\", token: \"\", next: \"formatString\" }\n            ]\n        });\n        return SnippetManager.$tokenizer;\n    };\n    SnippetManager.prototype.tokenizeTmSnippet = function (str, startState) {\n        return this.getTokenizer().getLineTokens(str, startState).tokens.map(function (x) {\n            return x.value || x;\n        });\n    };\n    SnippetManager.prototype.getVariableValue = function (editor, name, indentation) {\n        if (/^\\d+$/.test(name))\n            return (this.variables.__ || {})[name] || \"\";\n        if (/^[A-Z]\\d+$/.test(name))\n            return (this.variables[name[0] + \"__\"] || {})[name.substr(1)] || \"\";\n        name = name.replace(/^TM_/, \"\");\n        if (!this.variables.hasOwnProperty(name))\n            return \"\";\n        var value = this.variables[name];\n        if (typeof value == \"function\")\n            value = this.variables[name](editor, name, indentation);\n        return value == null ? \"\" : value;\n    };\n    SnippetManager.prototype.tmStrFormat = function (str, ch, editor) {\n        if (!ch.fmt)\n            return str;\n        var flag = ch.flag || \"\";\n        var re = ch.guard;\n        re = new RegExp(re, flag.replace(/[^gim]/g, \"\"));\n        var fmtTokens = typeof ch.fmt == \"string\" ? this.tokenizeTmSnippet(ch.fmt, \"formatString\") : ch.fmt;\n        var _self = this;\n        var formatted = str.replace(re, function () {\n            var oldArgs = _self.variables.__;\n            _self.variables.__ = [].slice.call(arguments);\n            var fmtParts = _self.resolveVariables(fmtTokens, editor);\n            var gChangeCase = \"E\";\n            for (var i = 0; i < fmtParts.length; i++) {\n                var ch = fmtParts[i];\n                if (typeof ch == \"object\") {\n                    fmtParts[i] = \"\";\n                    if (ch.changeCase && ch.local) {\n                        var next = fmtParts[i + 1];\n                        if (next && typeof next == \"string\") {\n                            if (ch.changeCase == \"u\")\n                                fmtParts[i] = next[0].toUpperCase();\n                            else\n                                fmtParts[i] = next[0].toLowerCase();\n                            fmtParts[i + 1] = next.substr(1);\n                        }\n                    }\n                    else if (ch.changeCase) {\n                        gChangeCase = ch.changeCase;\n                    }\n                }\n                else if (gChangeCase == \"U\") {\n                    fmtParts[i] = ch.toUpperCase();\n                }\n                else if (gChangeCase == \"L\") {\n                    fmtParts[i] = ch.toLowerCase();\n                }\n            }\n            _self.variables.__ = oldArgs;\n            return fmtParts.join(\"\");\n        });\n        return formatted;\n    };\n    SnippetManager.prototype.tmFormatFunction = function (str, ch, editor) {\n        if (ch.formatFunction == \"upcase\")\n            return str.toUpperCase();\n        if (ch.formatFunction == \"downcase\")\n            return str.toLowerCase();\n        return str;\n    };\n    SnippetManager.prototype.resolveVariables = function (snippet, editor) {\n        var result = [];\n        var indentation = \"\";\n        var afterNewLine = true;\n        for (var i = 0; i < snippet.length; i++) {\n            var ch = snippet[i];\n            if (typeof ch == \"string\") {\n                result.push(ch);\n                if (ch == \"\\n\") {\n                    afterNewLine = true;\n                    indentation = \"\";\n                }\n                else if (afterNewLine) {\n                    indentation = /^\\t*/.exec(ch)[0];\n                    afterNewLine = /\\S/.test(ch);\n                }\n                continue;\n            }\n            if (!ch)\n                continue;\n            afterNewLine = false;\n            if (ch.fmtString) {\n                var j = snippet.indexOf(ch, i + 1);\n                if (j == -1)\n                    j = snippet.length;\n                ch.fmt = snippet.slice(i + 1, j);\n                i = j;\n            }\n            if (ch.text) {\n                var value = this.getVariableValue(editor, ch.text, indentation) + \"\";\n                if (ch.fmtString)\n                    value = this.tmStrFormat(value, ch, editor);\n                if (ch.formatFunction)\n                    value = this.tmFormatFunction(value, ch, editor);\n                if (value && !ch.ifEnd) {\n                    result.push(value);\n                    gotoNext(ch);\n                }\n                else if (!value && ch.ifEnd) {\n                    gotoNext(ch.ifEnd);\n                }\n            }\n            else if (ch.elseEnd) {\n                gotoNext(ch.elseEnd);\n            }\n            else if (ch.tabstopId != null) {\n                result.push(ch);\n            }\n            else if (ch.changeCase != null) {\n                result.push(ch);\n            }\n        }\n        function gotoNext(ch) {\n            var i1 = snippet.indexOf(ch, i + 1);\n            if (i1 != -1)\n                i = i1;\n        }\n        return result;\n    };\n    SnippetManager.prototype.getDisplayTextForSnippet = function (editor, snippetText) {\n        var processedSnippet = processSnippetText.call(this, editor, snippetText);\n        return processedSnippet.text;\n    };\n    SnippetManager.prototype.insertSnippetForSelection = function (editor, snippetText, options) {\n        if (options === void 0) { options = {}; }\n        var processedSnippet = processSnippetText.call(this, editor, snippetText, options);\n        var range = editor.getSelectionRange();\n        var end = editor.session.replace(range, processedSnippet.text);\n        var tabstopManager = new TabstopManager(editor);\n        var selectionId = editor.inVirtualSelectionMode && editor.selection.index;\n        tabstopManager.addTabstops(processedSnippet.tabstops, range.start, end, selectionId);\n    };\n    SnippetManager.prototype.insertSnippet = function (editor, snippetText, options) {\n        if (options === void 0) { options = {}; }\n        var self = this;\n        if (editor.inVirtualSelectionMode)\n            return self.insertSnippetForSelection(editor, snippetText, options);\n        editor.forEachSelection(function () {\n            self.insertSnippetForSelection(editor, snippetText, options);\n        }, null, { keepOrder: true });\n        if (editor.tabstopManager)\n            editor.tabstopManager.tabNext();\n    };\n    SnippetManager.prototype.$getScope = function (editor) {\n        var scope = editor.session.$mode.$id || \"\";\n        scope = scope.split(\"/\").pop();\n        if (scope === \"html\" || scope === \"php\") {\n            if (scope === \"php\" && !editor.session.$mode.inlinePhp)\n                scope = \"html\";\n            var c = editor.getCursorPosition();\n            var state = editor.session.getState(c.row);\n            if (typeof state === \"object\") {\n                state = state[0];\n            }\n            if (state.substring) {\n                if (state.substring(0, 3) == \"js-\")\n                    scope = \"javascript\";\n                else if (state.substring(0, 4) == \"css-\")\n                    scope = \"css\";\n                else if (state.substring(0, 4) == \"php-\")\n                    scope = \"php\";\n            }\n        }\n        return scope;\n    };\n    SnippetManager.prototype.getActiveScopes = function (editor) {\n        var scope = this.$getScope(editor);\n        var scopes = [scope];\n        var snippetMap = this.snippetMap;\n        if (snippetMap[scope] && snippetMap[scope].includeScopes) {\n            scopes.push.apply(scopes, snippetMap[scope].includeScopes);\n        }\n        scopes.push(\"_\");\n        return scopes;\n    };\n    SnippetManager.prototype.expandWithTab = function (editor, options) {\n        var self = this;\n        var result = editor.forEachSelection(function () {\n            return self.expandSnippetForSelection(editor, options);\n        }, null, { keepOrder: true });\n        if (result && editor.tabstopManager)\n            editor.tabstopManager.tabNext();\n        return result;\n    };\n    SnippetManager.prototype.expandSnippetForSelection = function (editor, options) {\n        var cursor = editor.getCursorPosition();\n        var line = editor.session.getLine(cursor.row);\n        var before = line.substring(0, cursor.column);\n        var after = line.substr(cursor.column);\n        var snippetMap = this.snippetMap;\n        var snippet;\n        this.getActiveScopes(editor).some(function (scope) {\n            var snippets = snippetMap[scope];\n            if (snippets)\n                snippet = this.findMatchingSnippet(snippets, before, after);\n            return !!snippet;\n        }, this);\n        if (!snippet)\n            return false;\n        if (options && options.dryRun)\n            return true;\n        editor.session.doc.removeInLine(cursor.row, cursor.column - snippet.replaceBefore.length, cursor.column + snippet.replaceAfter.length);\n        this.variables.M__ = snippet.matchBefore;\n        this.variables.T__ = snippet.matchAfter;\n        this.insertSnippetForSelection(editor, snippet.content);\n        this.variables.M__ = this.variables.T__ = null;\n        return true;\n    };\n    SnippetManager.prototype.findMatchingSnippet = function (snippetList, before, after) {\n        for (var i = snippetList.length; i--;) {\n            var s = snippetList[i];\n            if (s.startRe && !s.startRe.test(before))\n                continue;\n            if (s.endRe && !s.endRe.test(after))\n                continue;\n            if (!s.startRe && !s.endRe)\n                continue;\n            s.matchBefore = s.startRe ? s.startRe.exec(before) : [\"\"];\n            s.matchAfter = s.endRe ? s.endRe.exec(after) : [\"\"];\n            s.replaceBefore = s.triggerRe ? s.triggerRe.exec(before)[0] : \"\";\n            s.replaceAfter = s.endTriggerRe ? s.endTriggerRe.exec(after)[0] : \"\";\n            return s;\n        }\n    };\n    SnippetManager.prototype.register = function (snippets, scope) {\n        var snippetMap = this.snippetMap;\n        var snippetNameMap = this.snippetNameMap;\n        var self = this;\n        if (!snippets)\n            snippets = [];\n        function wrapRegexp(src) {\n            if (src && !/^\\^?\\(.*\\)\\$?$|^\\\\b$/.test(src))\n                src = \"(?:\" + src + \")\";\n            return src || \"\";\n        }\n        function guardedRegexp(re, guard, opening) {\n            re = wrapRegexp(re);\n            guard = wrapRegexp(guard);\n            if (opening) {\n                re = guard + re;\n                if (re && re[re.length - 1] != \"$\")\n                    re = re + \"$\";\n            }\n            else {\n                re = re + guard;\n                if (re && re[0] != \"^\")\n                    re = \"^\" + re;\n            }\n            return new RegExp(re);\n        }\n        function addSnippet(s) {\n            if (!s.scope)\n                s.scope = scope || \"_\";\n            scope = s.scope;\n            if (!snippetMap[scope]) {\n                snippetMap[scope] = [];\n                snippetNameMap[scope] = {};\n            }\n            var map = snippetNameMap[scope];\n            if (s.name) {\n                var old = map[s.name];\n                if (old)\n                    self.unregister(old);\n                map[s.name] = s;\n            }\n            snippetMap[scope].push(s);\n            if (s.prefix)\n                s.tabTrigger = s.prefix;\n            if (!s.content && s.body)\n                s.content = Array.isArray(s.body) ? s.body.join(\"\\n\") : s.body;\n            if (s.tabTrigger && !s.trigger) {\n                if (!s.guard && /^\\w/.test(s.tabTrigger))\n                    s.guard = \"\\\\b\";\n                s.trigger = lang.escapeRegExp(s.tabTrigger);\n            }\n            if (!s.trigger && !s.guard && !s.endTrigger && !s.endGuard)\n                return;\n            s.startRe = guardedRegexp(s.trigger, s.guard, true);\n            s.triggerRe = new RegExp(s.trigger);\n            s.endRe = guardedRegexp(s.endTrigger, s.endGuard, true);\n            s.endTriggerRe = new RegExp(s.endTrigger);\n        }\n        if (Array.isArray(snippets)) {\n            snippets.forEach(addSnippet);\n        }\n        else {\n            Object.keys(snippets).forEach(function (key) {\n                addSnippet(snippets[key]);\n            });\n        }\n        this._signal(\"registerSnippets\", { scope: scope });\n    };\n    SnippetManager.prototype.unregister = function (snippets, scope) {\n        var snippetMap = this.snippetMap;\n        var snippetNameMap = this.snippetNameMap;\n        function removeSnippet(s) {\n            var nameMap = snippetNameMap[s.scope || scope];\n            if (nameMap && nameMap[s.name]) {\n                delete nameMap[s.name];\n                var map = snippetMap[s.scope || scope];\n                var i = map && map.indexOf(s);\n                if (i >= 0)\n                    map.splice(i, 1);\n            }\n        }\n        if (snippets.content)\n            removeSnippet(snippets);\n        else if (Array.isArray(snippets))\n            snippets.forEach(removeSnippet);\n    };\n    SnippetManager.prototype.parseSnippetFile = function (str) {\n        str = str.replace(/\\r/g, \"\");\n        var list = [], snippet = {};\n        var re = /^#.*|^({[\\s\\S]*})\\s*$|^(\\S+) (.*)$|^((?:\\n*\\t.*)+)/gm;\n        var m;\n        while (m = re.exec(str)) {\n            if (m[1]) {\n                try {\n                    snippet = JSON.parse(m[1]);\n                    list.push(snippet);\n                }\n                catch (e) { }\n            }\n            if (m[4]) {\n                snippet.content = m[4].replace(/^\\t/gm, \"\");\n                list.push(snippet);\n                snippet = {};\n            }\n            else {\n                var key = m[2], val = m[3];\n                if (key == \"regex\") {\n                    var guardRe = /\\/((?:[^\\/\\\\]|\\\\.)*)|$/g;\n                    snippet.guard = guardRe.exec(val)[1];\n                    snippet.trigger = guardRe.exec(val)[1];\n                    snippet.endTrigger = guardRe.exec(val)[1];\n                    snippet.endGuard = guardRe.exec(val)[1];\n                }\n                else if (key == \"snippet\") {\n                    snippet.tabTrigger = val.match(/^\\S*/)[0];\n                    if (!snippet.name)\n                        snippet.name = val;\n                }\n                else if (key) {\n                    snippet[key] = val;\n                }\n            }\n        }\n        return list;\n    };\n    SnippetManager.prototype.getSnippetByName = function (name, editor) {\n        var snippetMap = this.snippetNameMap;\n        var snippet;\n        this.getActiveScopes(editor).some(function (scope) {\n            var snippets = snippetMap[scope];\n            if (snippets)\n                snippet = snippets[name];\n            return !!snippet;\n        }, this);\n        return snippet;\n    };\n    return SnippetManager;\n}());\noop.implement(SnippetManager.prototype, EventEmitter);\nvar processSnippetText = function (editor, snippetText, options) {\n    if (options === void 0) { options = {}; }\n    var cursor = editor.getCursorPosition();\n    var line = editor.session.getLine(cursor.row);\n    var tabString = editor.session.getTabString();\n    var indentString = line.match(/^\\s*/)[0];\n    if (cursor.column < indentString.length)\n        indentString = indentString.slice(0, cursor.column);\n    snippetText = snippetText.replace(/\\r/g, \"\");\n    var tokens = this.tokenizeTmSnippet(snippetText);\n    tokens = this.resolveVariables(tokens, editor);\n    tokens = tokens.map(function (x) {\n        if (x == \"\\n\" && !options.excludeExtraIndent)\n            return x + indentString;\n        if (typeof x == \"string\")\n            return x.replace(/\\t/g, tabString);\n        return x;\n    });\n    var tabstops = [];\n    tokens.forEach(function (p, i) {\n        if (typeof p != \"object\")\n            return;\n        var id = p.tabstopId;\n        var ts = tabstops[id];\n        if (!ts) {\n            ts = tabstops[id] = [];\n            ts.index = id;\n            ts.value = \"\";\n            ts.parents = {};\n        }\n        if (ts.indexOf(p) !== -1)\n            return;\n        if (p.choices && !ts.choices)\n            ts.choices = p.choices;\n        ts.push(p);\n        var i1 = tokens.indexOf(p, i + 1);\n        if (i1 === -1)\n            return;\n        var value = tokens.slice(i + 1, i1);\n        var isNested = value.some(function (t) { return typeof t === \"object\"; });\n        if (isNested && !ts.value) {\n            ts.value = value;\n        }\n        else if (value.length && (!ts.value || typeof ts.value !== \"string\")) {\n            ts.value = value.join(\"\");\n        }\n    });\n    tabstops.forEach(function (ts) { ts.length = 0; });\n    var expanding = {};\n    function copyValue(val) {\n        var copy = [];\n        for (var i = 0; i < val.length; i++) {\n            var p = val[i];\n            if (typeof p == \"object\") {\n                if (expanding[p.tabstopId])\n                    continue;\n                var j = val.lastIndexOf(p, i - 1);\n                p = copy[j] || { tabstopId: p.tabstopId };\n            }\n            copy[i] = p;\n        }\n        return copy;\n    }\n    for (var i = 0; i < tokens.length; i++) {\n        var p = tokens[i];\n        if (typeof p != \"object\")\n            continue;\n        var id = p.tabstopId;\n        var ts = tabstops[id];\n        var i1 = tokens.indexOf(p, i + 1);\n        if (expanding[id]) {\n            if (expanding[id] === p) {\n                delete expanding[id];\n                Object.keys(expanding).forEach(function (parentId) {\n                    ts.parents[parentId] = true;\n                });\n            }\n            continue;\n        }\n        expanding[id] = p;\n        var value = ts.value;\n        if (typeof value !== \"string\")\n            value = copyValue(value);\n        else if (p.fmt)\n            value = this.tmStrFormat(value, p, editor);\n        tokens.splice.apply(tokens, [i + 1, Math.max(0, i1 - i)].concat(value, p));\n        if (ts.indexOf(p) === -1)\n            ts.push(p);\n    }\n    var row = 0, column = 0;\n    var text = \"\";\n    tokens.forEach(function (t) {\n        if (typeof t === \"string\") {\n            var lines = t.split(\"\\n\");\n            if (lines.length > 1) {\n                column = lines[lines.length - 1].length;\n                row += lines.length - 1;\n            }\n            else\n                column += t.length;\n            text += t;\n        }\n        else if (t) {\n            if (!t.start)\n                t.start = { row: row, column: column };\n            else\n                t.end = { row: row, column: column };\n        }\n    });\n    return {\n        text: text,\n        tabstops: tabstops,\n        tokens: tokens\n    };\n};\nvar TabstopManager = /** @class */ (function () {\n    function TabstopManager(editor) {\n        this.index = 0;\n        this.ranges = [];\n        this.tabstops = [];\n        if (editor.tabstopManager)\n            return editor.tabstopManager;\n        editor.tabstopManager = this;\n        this.$onChange = this.onChange.bind(this);\n        this.$onChangeSelection = lang.delayedCall(this.onChangeSelection.bind(this)).schedule;\n        this.$onChangeSession = this.onChangeSession.bind(this);\n        this.$onAfterExec = this.onAfterExec.bind(this);\n        this.attach(editor);\n    }\n    TabstopManager.prototype.attach = function (editor) {\n        this.$openTabstops = null;\n        this.selectedTabstop = null;\n        this.editor = editor;\n        this.session = editor.session;\n        this.editor.on(\"change\", this.$onChange);\n        this.editor.on(\"changeSelection\", this.$onChangeSelection);\n        this.editor.on(\"changeSession\", this.$onChangeSession);\n        this.editor.commands.on(\"afterExec\", this.$onAfterExec);\n        this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler);\n    };\n    TabstopManager.prototype.detach = function () {\n        this.tabstops.forEach(this.removeTabstopMarkers, this);\n        this.ranges.length = 0;\n        this.tabstops.length = 0;\n        this.selectedTabstop = null;\n        this.editor.off(\"change\", this.$onChange);\n        this.editor.off(\"changeSelection\", this.$onChangeSelection);\n        this.editor.off(\"changeSession\", this.$onChangeSession);\n        this.editor.commands.off(\"afterExec\", this.$onAfterExec);\n        this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler);\n        this.editor.tabstopManager = null;\n        this.session = null;\n        this.editor = null;\n    };\n    TabstopManager.prototype.onChange = function (delta) {\n        var isRemove = delta.action[0] == \"r\";\n        var selectedTabstop = this.selectedTabstop || {};\n        var parents = selectedTabstop.parents || {};\n        var tabstops = this.tabstops.slice();\n        for (var i = 0; i < tabstops.length; i++) {\n            var ts = tabstops[i];\n            var active = ts == selectedTabstop || parents[ts.index];\n            ts.rangeList.$bias = active ? 0 : 1;\n            if (delta.action == \"remove\" && ts !== selectedTabstop) {\n                var parentActive = ts.parents && ts.parents[selectedTabstop.index];\n                var startIndex = ts.rangeList.pointIndex(delta.start, parentActive);\n                startIndex = startIndex < 0 ? -startIndex - 1 : startIndex + 1;\n                var endIndex = ts.rangeList.pointIndex(delta.end, parentActive);\n                endIndex = endIndex < 0 ? -endIndex - 1 : endIndex - 1;\n                var toRemove = ts.rangeList.ranges.slice(startIndex, endIndex);\n                for (var j = 0; j < toRemove.length; j++)\n                    this.removeRange(toRemove[j]);\n            }\n            ts.rangeList.$onChange(delta);\n        }\n        var session = this.session;\n        if (!this.$inChange && isRemove && session.getLength() == 1 && !session.getValue())\n            this.detach();\n    };\n    TabstopManager.prototype.updateLinkedFields = function () {\n        var ts = this.selectedTabstop;\n        if (!ts || !ts.hasLinkedRanges || !ts.firstNonLinked)\n            return;\n        this.$inChange = true;\n        var session = this.session;\n        var text = session.getTextRange(ts.firstNonLinked);\n        for (var i = 0; i < ts.length; i++) {\n            var range = ts[i];\n            if (!range.linked)\n                continue;\n            var original = range.original;\n            var fmt = exports.snippetManager.tmStrFormat(text, original, this.editor);\n            session.replace(range, fmt);\n        }\n        this.$inChange = false;\n    };\n    TabstopManager.prototype.onAfterExec = function (e) {\n        if (e.command && !e.command.readOnly)\n            this.updateLinkedFields();\n    };\n    TabstopManager.prototype.onChangeSelection = function () {\n        if (!this.editor)\n            return;\n        var lead = this.editor.selection.lead;\n        var anchor = this.editor.selection.anchor;\n        var isEmpty = this.editor.selection.isEmpty();\n        for (var i = 0; i < this.ranges.length; i++) {\n            if (this.ranges[i].linked)\n                continue;\n            var containsLead = this.ranges[i].contains(lead.row, lead.column);\n            var containsAnchor = isEmpty || this.ranges[i].contains(anchor.row, anchor.column);\n            if (containsLead && containsAnchor)\n                return;\n        }\n        this.detach();\n    };\n    TabstopManager.prototype.onChangeSession = function () {\n        this.detach();\n    };\n    TabstopManager.prototype.tabNext = function (dir) {\n        var max = this.tabstops.length;\n        var index = this.index + (dir || 1);\n        index = Math.min(Math.max(index, 1), max);\n        if (index == max)\n            index = 0;\n        this.selectTabstop(index);\n        if (index === 0)\n            this.detach();\n    };\n    TabstopManager.prototype.selectTabstop = function (index) {\n        this.$openTabstops = null;\n        var ts = this.tabstops[this.index];\n        if (ts)\n            this.addTabstopMarkers(ts);\n        this.index = index;\n        ts = this.tabstops[this.index];\n        if (!ts || !ts.length)\n            return;\n        this.selectedTabstop = ts;\n        var range = ts.firstNonLinked || ts;\n        if (ts.choices)\n            range.cursor = range.start;\n        if (!this.editor.inVirtualSelectionMode) {\n            var sel = this.editor.multiSelect;\n            sel.toSingleRange(range);\n            for (var i = 0; i < ts.length; i++) {\n                if (ts.hasLinkedRanges && ts[i].linked)\n                    continue;\n                sel.addRange(ts[i].clone(), true);\n            }\n        }\n        else {\n            this.editor.selection.fromOrientedRange(range);\n        }\n        this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler);\n        if (this.selectedTabstop && this.selectedTabstop.choices)\n            this.editor.execCommand(\"startAutocomplete\", { matches: this.selectedTabstop.choices });\n    };\n    TabstopManager.prototype.addTabstops = function (tabstops, start, end) {\n        var useLink = this.useLink || !this.editor.getOption(\"enableMultiselect\");\n        if (!this.$openTabstops)\n            this.$openTabstops = [];\n        if (!tabstops[0]) {\n            var p = Range.fromPoints(end, end);\n            moveRelative(p.start, start);\n            moveRelative(p.end, start);\n            tabstops[0] = [p];\n            tabstops[0].index = 0;\n        }\n        var i = this.index;\n        var arg = [i + 1, 0];\n        var ranges = this.ranges;\n        tabstops.forEach(function (ts, index) {\n            var dest = this.$openTabstops[index] || ts;\n            for (var i = 0; i < ts.length; i++) {\n                var p = ts[i];\n                var range = Range.fromPoints(p.start, p.end || p.start);\n                movePoint(range.start, start);\n                movePoint(range.end, start);\n                range.original = p;\n                range.tabstop = dest;\n                ranges.push(range);\n                if (dest != ts)\n                    dest.unshift(range);\n                else\n                    dest[i] = range;\n                if (p.fmtString || (dest.firstNonLinked && useLink)) {\n                    range.linked = true;\n                    dest.hasLinkedRanges = true;\n                }\n                else if (!dest.firstNonLinked)\n                    dest.firstNonLinked = range;\n            }\n            if (!dest.firstNonLinked)\n                dest.hasLinkedRanges = false;\n            if (dest === ts) {\n                arg.push(dest);\n                this.$openTabstops[index] = dest;\n            }\n            this.addTabstopMarkers(dest);\n            dest.rangeList = dest.rangeList || new RangeList();\n            dest.rangeList.$bias = 0;\n            dest.rangeList.addList(dest);\n        }, this);\n        if (arg.length > 2) {\n            if (this.tabstops.length)\n                arg.push(arg.splice(2, 1)[0]);\n            this.tabstops.splice.apply(this.tabstops, arg);\n        }\n    };\n    TabstopManager.prototype.addTabstopMarkers = function (ts) {\n        var session = this.session;\n        ts.forEach(function (range) {\n            if (!range.markerId)\n                range.markerId = session.addMarker(range, \"ace_snippet-marker\", \"text\");\n        });\n    };\n    TabstopManager.prototype.removeTabstopMarkers = function (ts) {\n        var session = this.session;\n        ts.forEach(function (range) {\n            session.removeMarker(range.markerId);\n            range.markerId = null;\n        });\n    };\n    TabstopManager.prototype.removeRange = function (range) {\n        var i = range.tabstop.indexOf(range);\n        if (i != -1)\n            range.tabstop.splice(i, 1);\n        i = this.ranges.indexOf(range);\n        if (i != -1)\n            this.ranges.splice(i, 1);\n        i = range.tabstop.rangeList.ranges.indexOf(range);\n        if (i != -1)\n            range.tabstop.splice(i, 1);\n        this.session.removeMarker(range.markerId);\n        if (!range.tabstop.length) {\n            i = this.tabstops.indexOf(range.tabstop);\n            if (i != -1)\n                this.tabstops.splice(i, 1);\n            if (!this.tabstops.length)\n                this.detach();\n        }\n    };\n    return TabstopManager;\n}());\nTabstopManager.prototype.keyboardHandler = new HashHandler();\nTabstopManager.prototype.keyboardHandler.bindKeys({\n    \"Tab\": function (editor) {\n        if (exports.snippetManager && exports.snippetManager.expandWithTab(editor))\n            return;\n        editor.tabstopManager.tabNext(1);\n        editor.renderer.scrollCursorIntoView();\n    },\n    \"Shift-Tab\": function (editor) {\n        editor.tabstopManager.tabNext(-1);\n        editor.renderer.scrollCursorIntoView();\n    },\n    \"Esc\": function (editor) {\n        editor.tabstopManager.detach();\n    }\n});\nvar movePoint = function (point, diff) {\n    if (point.row == 0)\n        point.column += diff.column;\n    point.row += diff.row;\n};\nvar moveRelative = function (point, start) {\n    if (point.row == start.row)\n        point.column -= start.column;\n    point.row -= start.row;\n};\ndom.importCssString(\"\\n.ace_snippet-marker {\\n    -moz-box-sizing: border-box;\\n    box-sizing: border-box;\\n    background: rgba(194, 193, 208, 0.09);\\n    border: 1px dotted rgba(211, 208, 235, 0.62);\\n    position: absolute;\\n}\", \"snippets.css\", false);\nexports.snippetManager = new SnippetManager();\nvar Editor = require(\"./editor\").Editor;\n(function () {\n    this.insertSnippet = function (content, options) {\n        return exports.snippetManager.insertSnippet(this, content, options);\n    };\n    this.expandSnippet = function (options) {\n        return exports.snippetManager.expandWithTab(this, options);\n    };\n}).call(Editor.prototype);\n\n});\n\nace.define(\"ace/ext/emmet\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\",\"ace/editor\",\"ace/snippets\",\"ace/range\",\"ace/config\",\"resources\",\"resources\",\"tabStops\",\"resources\",\"utils\",\"actions\"], function(require, exports, module){\"use strict\";\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nvar Editor = require(\"../editor\").Editor;\nvar snippetManager = require(\"../snippets\").snippetManager;\nvar Range = require(\"../range\").Range;\nvar config = require(\"../config\");\nvar emmet, emmetPath;\nvar AceEmmetEditor = /** @class */ (function () {\n    function AceEmmetEditor() {\n    }\n    AceEmmetEditor.prototype.setupContext = function (editor) {\n        this.ace = editor;\n        this.indentation = editor.session.getTabString();\n        if (!emmet)\n            emmet = window.emmet;\n        var resources = emmet.resources || emmet.require(\"resources\");\n        resources.setVariable(\"indentation\", this.indentation);\n        this.$syntax = null;\n        this.$syntax = this.getSyntax();\n    };\n    AceEmmetEditor.prototype.getSelectionRange = function () {\n        var range = this.ace.getSelectionRange();\n        var doc = this.ace.session.doc;\n        return {\n            start: doc.positionToIndex(range.start),\n            end: doc.positionToIndex(range.end)\n        };\n    };\n    AceEmmetEditor.prototype.createSelection = function (start, end) {\n        var doc = this.ace.session.doc;\n        this.ace.selection.setRange({\n            start: doc.indexToPosition(start),\n            end: doc.indexToPosition(end)\n        });\n    };\n    AceEmmetEditor.prototype.getCurrentLineRange = function () {\n        var ace = this.ace;\n        var row = ace.getCursorPosition().row;\n        var lineLength = ace.session.getLine(row).length;\n        var index = ace.session.doc.positionToIndex({ row: row, column: 0 });\n        return {\n            start: index,\n            end: index + lineLength\n        };\n    };\n    AceEmmetEditor.prototype.getCaretPos = function () {\n        var pos = this.ace.getCursorPosition();\n        return this.ace.session.doc.positionToIndex(pos);\n    };\n    AceEmmetEditor.prototype.setCaretPos = function (index) {\n        var pos = this.ace.session.doc.indexToPosition(index);\n        this.ace.selection.moveToPosition(pos);\n    };\n    AceEmmetEditor.prototype.getCurrentLine = function () {\n        var row = this.ace.getCursorPosition().row;\n        return this.ace.session.getLine(row);\n    };\n    AceEmmetEditor.prototype.replaceContent = function (value, start, end, noIndent) {\n        if (end == null)\n            end = start == null ? this.getContent().length : start;\n        if (start == null)\n            start = 0;\n        var editor = this.ace;\n        var doc = editor.session.doc;\n        var range = Range.fromPoints(doc.indexToPosition(start), doc.indexToPosition(end));\n        editor.session.remove(range);\n        range.end = range.start;\n        value = this.$updateTabstops(value);\n        snippetManager.insertSnippet(editor, value);\n    };\n    AceEmmetEditor.prototype.getContent = function () {\n        return this.ace.getValue();\n    };\n    AceEmmetEditor.prototype.getSyntax = function () {\n        if (this.$syntax)\n            return this.$syntax;\n        var syntax = this.ace.session.$modeId.split(\"/\").pop();\n        if (syntax == \"html\" || syntax == \"php\") {\n            var cursor = this.ace.getCursorPosition();\n            var state = this.ace.session.getState(cursor.row);\n            if (typeof state != \"string\")\n                state = state[0];\n            if (state) {\n                state = state.split(\"-\");\n                if (state.length > 1)\n                    syntax = state[0];\n                else if (syntax == \"php\")\n                    syntax = \"html\";\n            }\n        }\n        return syntax;\n    };\n    AceEmmetEditor.prototype.getProfileName = function () {\n        var resources = emmet.resources || emmet.require(\"resources\");\n        switch (this.getSyntax()) {\n            case \"css\": return \"css\";\n            case \"xml\":\n            case \"xsl\":\n                return \"xml\";\n            case \"html\":\n                var profile = resources.getVariable(\"profile\");\n                if (!profile)\n                    profile = this.ace.session.getLines(0, 2).join(\"\").search(/]+XHTML/i) != -1 ? \"xhtml\" : \"html\";\n                return profile;\n            default:\n                var mode = this.ace.session.$mode;\n                return mode.emmetConfig && mode.emmetConfig.profile || \"xhtml\";\n        }\n    };\n    AceEmmetEditor.prototype.prompt = function (title) {\n        return prompt(title); // eslint-disable-line no-alert\n    };\n    AceEmmetEditor.prototype.getSelection = function () {\n        return this.ace.session.getTextRange();\n    };\n    AceEmmetEditor.prototype.getFilePath = function () {\n        return \"\";\n    };\n    AceEmmetEditor.prototype.$updateTabstops = function (value) {\n        var base = 1000;\n        var zeroBase = 0;\n        var lastZero = null;\n        var ts = emmet.tabStops || emmet.require('tabStops');\n        var resources = emmet.resources || emmet.require(\"resources\");\n        var settings = resources.getVocabulary(\"user\");\n        var tabstopOptions = {\n            tabstop: function (data) {\n                var group = parseInt(data.group, 10);\n                var isZero = group === 0;\n                if (isZero)\n                    group = ++zeroBase;\n                else\n                    group += base;\n                var placeholder = data.placeholder;\n                if (placeholder) {\n                    placeholder = ts.processText(placeholder, tabstopOptions);\n                }\n                var result = '${' + group + (placeholder ? ':' + placeholder : '') + '}';\n                if (isZero) {\n                    lastZero = [data.start, result];\n                }\n                return result;\n            },\n            escape: function (ch) {\n                if (ch == '$')\n                    return '\\\\$';\n                if (ch == '\\\\')\n                    return '\\\\\\\\';\n                return ch;\n            }\n        };\n        value = ts.processText(value, tabstopOptions);\n        if (settings.variables['insert_final_tabstop'] && !/\\$\\{0\\}$/.test(value)) {\n            value += '${0}';\n        }\n        else if (lastZero) {\n            var common = emmet.utils ? emmet.utils.common : emmet.require('utils');\n            value = common.replaceSubstring(value, '${0}', lastZero[0], lastZero[1]);\n        }\n        return value;\n    };\n    return AceEmmetEditor;\n}());\nvar keymap = {\n    expand_abbreviation: { \"mac\": \"ctrl+alt+e\", \"win\": \"alt+e\" },\n    match_pair_outward: { \"mac\": \"ctrl+d\", \"win\": \"ctrl+,\" },\n    match_pair_inward: { \"mac\": \"ctrl+j\", \"win\": \"ctrl+shift+0\" },\n    matching_pair: { \"mac\": \"ctrl+alt+j\", \"win\": \"alt+j\" },\n    next_edit_point: \"alt+right\",\n    prev_edit_point: \"alt+left\",\n    toggle_comment: { \"mac\": \"command+/\", \"win\": \"ctrl+/\" },\n    split_join_tag: { \"mac\": \"shift+command+'\", \"win\": \"shift+ctrl+`\" },\n    remove_tag: { \"mac\": \"command+'\", \"win\": \"shift+ctrl+;\" },\n    evaluate_math_expression: { \"mac\": \"shift+command+y\", \"win\": \"shift+ctrl+y\" },\n    increment_number_by_1: \"ctrl+up\",\n    decrement_number_by_1: \"ctrl+down\",\n    increment_number_by_01: \"alt+up\",\n    decrement_number_by_01: \"alt+down\",\n    increment_number_by_10: { \"mac\": \"alt+command+up\", \"win\": \"shift+alt+up\" },\n    decrement_number_by_10: { \"mac\": \"alt+command+down\", \"win\": \"shift+alt+down\" },\n    select_next_item: { \"mac\": \"shift+command+.\", \"win\": \"shift+ctrl+.\" },\n    select_previous_item: { \"mac\": \"shift+command+,\", \"win\": \"shift+ctrl+,\" },\n    reflect_css_value: { \"mac\": \"shift+command+r\", \"win\": \"shift+ctrl+r\" },\n    encode_decode_data_url: { \"mac\": \"shift+ctrl+d\", \"win\": \"ctrl+'\" },\n    expand_abbreviation_with_tab: \"Tab\",\n    wrap_with_abbreviation: { \"mac\": \"shift+ctrl+a\", \"win\": \"shift+ctrl+a\" }\n};\nvar editorProxy = new AceEmmetEditor();\nexports.commands = new HashHandler();\nexports.runEmmetCommand = function runEmmetCommand(editor) {\n    if (this.action == \"expand_abbreviation_with_tab\") {\n        if (!editor.selection.isEmpty())\n            return false;\n        var pos = editor.selection.lead;\n        var token = editor.session.getTokenAt(pos.row, pos.column);\n        if (token && /\\btag\\b/.test(token.type))\n            return false;\n    }\n    try {\n        editorProxy.setupContext(editor);\n        var actions = emmet.actions || emmet.require(\"actions\");\n        if (this.action == \"wrap_with_abbreviation\") {\n            return setTimeout(function () {\n                actions.run(\"wrap_with_abbreviation\", editorProxy);\n            }, 0);\n        }\n        var result = actions.run(this.action, editorProxy);\n    }\n    catch (e) {\n        if (!emmet) {\n            var loading = exports.load(runEmmetCommand.bind(this, editor));\n            if (this.action == \"expand_abbreviation_with_tab\")\n                return false;\n            return loading;\n        }\n        editor._signal(\"changeStatus\", typeof e == \"string\" ? e : e.message);\n        config.warn(e);\n        result = false;\n    }\n    return result;\n};\nfor (var command in keymap) {\n    exports.commands.addCommand({\n        name: \"emmet:\" + command,\n        action: command,\n        bindKey: keymap[command],\n        exec: exports.runEmmetCommand,\n        multiSelectAction: \"forEach\"\n    });\n}\nexports.updateCommands = function (editor, enabled) {\n    if (enabled) {\n        editor.keyBinding.addKeyboardHandler(exports.commands);\n    }\n    else {\n        editor.keyBinding.removeKeyboardHandler(exports.commands);\n    }\n};\nexports.isSupportedMode = function (mode) {\n    if (!mode)\n        return false;\n    if (mode.emmetConfig)\n        return true;\n    var id = mode.$id || mode;\n    return /css|less|scss|sass|stylus|html|php|twig|ejs|handlebars/.test(id);\n};\nexports.isAvailable = function (editor, command) {\n    if (/(evaluate_math_expression|expand_abbreviation)$/.test(command))\n        return true;\n    var mode = editor.session.$mode;\n    var isSupported = exports.isSupportedMode(mode);\n    if (isSupported && mode.$modes) {\n        try {\n            editorProxy.setupContext(editor);\n            if (/js|php/.test(editorProxy.getSyntax()))\n                isSupported = false;\n        }\n        catch (e) { }\n    }\n    return isSupported;\n};\nvar onChangeMode = function (e, target) {\n    var editor = target;\n    if (!editor)\n        return;\n    var enabled = exports.isSupportedMode(editor.session.$mode);\n    if (e.enableEmmet === false)\n        enabled = false;\n    if (enabled)\n        exports.load();\n    exports.updateCommands(editor, enabled);\n};\nexports.load = function (cb) {\n    if (typeof emmetPath !== \"string\") {\n        config.warn(\"script for emmet-core is not loaded\");\n        return false;\n    }\n    config.loadModule(emmetPath, function () {\n        emmetPath = null;\n        cb && cb();\n    });\n    return true;\n};\nexports.AceEmmetEditor = AceEmmetEditor;\nconfig.defineOptions(Editor.prototype, \"editor\", {\n    enableEmmet: {\n        set: function (val) {\n            this[val ? \"on\" : \"removeListener\"](\"changeMode\", onChangeMode);\n            onChangeMode({ enableEmmet: !!val }, this);\n        },\n        value: true\n    }\n});\nexports.setCore = function (e) {\n    if (typeof e == \"string\")\n        emmetPath = e;\n    else\n        emmet = e;\n};\n\n});                (function() {\n                    ace.require([\"ace/ext/emmet\"], function(m) {\n                        if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n                            module.exports = m;\n                        }\n                    });\n                })();\n            "],"mappings":"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","names":["require_f569ded183c3f2843af478d001fbe5","__commonJSMin","exports","module","require","dom","oop","EventEmitter","lang","Range","RangeList","HashHandler","Tokenizer","clipboard","VARIABLES","editor","name","indentation","text","mode","date","dateFormat","str","SnippetManager","TabstopToken","escape","ch","formatMatcher","val","state","stack","ts","t","choices","operator","value","next","token","startState","x","flag","re","fmtTokens","_self","formatted","oldArgs","fmtParts","gChangeCase","i","snippet","result","afterNewLine","j","gotoNext","i1","snippetText","processedSnippet","processSnippetText","options","range","end","tabstopManager","TabstopManager","selectionId","self","scope","c","scopes","snippetMap","cursor","line","before","after","snippets","snippetList","snippetNameMap","wrapRegexp","src","guardedRegexp","guard","opening","addSnippet","s","map","old","key","removeSnippet","nameMap","list","m","guardRe","tabString","indentString","tokens","tabstops","p","id","isNested","expanding","copyValue","copy","parentId","row","column","lines","delta","isRemove","selectedTabstop","parents","active","parentActive","startIndex","endIndex","toRemove","session","original","fmt","lead","anchor","isEmpty","containsLead","containsAnchor","dir","max","index","sel","start","useLink","moveRelative","arg","ranges","dest","movePoint","point","diff","Editor","content","snippetManager","config","emmet","emmetPath","AceEmmetEditor","resources","doc","ace","lineLength","pos","noIndent","syntax","profile","title","base","zeroBase","lastZero","settings","tabstopOptions","data","group","isZero","placeholder","common","keymap","editorProxy","runEmmetCommand","actions","e","loading","command","enabled","isSupported","onChangeMode","target","cb"],"sourceRoot":"","file":"40f569ded183c3f2843af478d001fbe5.js"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy