forked from oraoto/pib
-
-
Notifications
You must be signed in to change notification settings - Fork 57
/
Copy path2f05a710110f4b8e6b188c13ca619e6b.js
1 lines (1 loc) · 70.7 KB
/
2f05a710110f4b8e6b188c13ca619e6b.js
1
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(e,t,i){"use strict";function o(e){var t=(new Date).toLocaleString("en-us",e);return 1==t.length?"0"+t:t}var n=e("./lib/dom"),s=e("./lib/oop"),r=e("./lib/event_emitter").EventEmitter,a=e("./lib/lang"),c=e("./range").Range,l=e("./range_list").RangeList,p=e("./keyboard/hash_handler").HashHandler,h=e("./tokenizer").Tokenizer,d=e("./clipboard"),u={CURRENT_WORD:function(e){return e.session.getTextRange(e.session.getWordRange())},SELECTION:function(e,t,i){var o=e.session.getTextRange();return i?o.replace(/\n\r?([ \t]*\S)/g,"\n"+i+"$1"):o},CURRENT_LINE:function(e){return e.session.getLine(e.getCursorPosition().row)},PREV_LINE:function(e){return e.session.getLine(e.getCursorPosition().row-1)},LINE_INDEX:function(e){return e.getCursorPosition().row},LINE_NUMBER:function(e){return e.getCursorPosition().row+1},SOFT_TABS:function(e){return e.session.getUseSoftTabs()?"YES":"NO"},TAB_SIZE:function(e){return e.session.getTabSize()},CLIPBOARD:function(e){return d.getText&&d.getText()},FILENAME:function(e){return/[^/\\]*$/.exec(this.FILEPATH(e))[0]},FILENAME_BASE:function(e){return/[^/\\]*$/.exec(this.FILEPATH(e))[0].replace(/\.[^.]*$/,"")},DIRECTORY:function(e){return this.FILEPATH(e).replace(/[^/\\]*$/,"")},FILEPATH:function(e){return"/not implemented.txt"},WORKSPACE_NAME:function(){return"Unknown"},FULLNAME:function(){return"Unknown"},BLOCK_COMMENT_START:function(e){var t=e.session.$mode||{};return t.blockComment&&t.blockComment.start||""},BLOCK_COMMENT_END:function(e){var t=e.session.$mode||{};return t.blockComment&&t.blockComment.end||""},LINE_COMMENT:function(e){return(e.session.$mode||{}).lineCommentStart||""},CURRENT_YEAR:o.bind(null,{year:"numeric"}),CURRENT_YEAR_SHORT:o.bind(null,{year:"2-digit"}),CURRENT_MONTH:o.bind(null,{month:"numeric"}),CURRENT_MONTH_NAME:o.bind(null,{month:"long"}),CURRENT_MONTH_NAME_SHORT:o.bind(null,{month:"short"}),CURRENT_DATE:o.bind(null,{day:"2-digit"}),CURRENT_DAY_NAME:o.bind(null,{weekday:"long"}),CURRENT_DAY_NAME_SHORT:o.bind(null,{weekday:"short"}),CURRENT_HOUR:o.bind(null,{hour:"2-digit",hour12:!1}),CURRENT_MINUTE:o.bind(null,{minute:"2-digit"}),CURRENT_SECOND:o.bind(null,{second:"2-digit"})};u.SELECTED_TEXT=u.SELECTION;var m=function(){function e(){this.snippetMap={},this.snippetNameMap={},this.variables=u}return e.prototype.getTokenizer=function(){return e.$tokenizer||this.createTokenizer()},e.prototype.createTokenizer=function(){function t(e){return e=e.substr(1),/^\d+$/.test(e)?[{tabstopId:parseInt(e,10)}]:[{text:e}]}function i(e){return"(?:[^\\\\"+e+"]|\\\\.)"}var o={regex:"/("+i("/")+"+)/",onMatch:function(e,t,i){var o=i[0];return o.fmtString=!0,o.guard=e.slice(1,-1),o.flag="",""},next:"formatString"};return e.$tokenizer=new h({start:[{regex:/\\./,onMatch:function(e,t,i){var o=e[1];return("}"==o&&i.length||-1!="`$\\".indexOf(o))&&(e=o),[e]}},{regex:/}/,onMatch:function(e,t,i){return[i.length?i.shift():e]}},{regex:/\$(?:\d+|\w+)/,onMatch:t},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(e,i,o){var n=t(e.substr(1));return o.unshift(n[0]),n},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+i("\\|")+"*\\|",onMatch:function(e,t,i){var o=e.slice(1,-1).replace(/\\[,|\\]|,/g,(function(e){return 2==e.length?e[1]:"\0"})).split("\0").map((function(e){return{value:e}}));return i[0].choices=o,[o[0]]},next:"start"},o,{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:/:/,onMatch:function(e,t,i){return i.length&&i[0].expectElse?(i[0].expectElse=!1,i[0].ifEnd={elseEnd:i[0]},[i[0].ifEnd]):":"}},{regex:/\\./,onMatch:function(e,t,i){var o=e[1];return"}"==o&&i.length||-1!="`$\\".indexOf(o)?e=o:"n"==o?e="\n":"t"==o?e="\t":-1!="ulULE".indexOf(o)&&(e={changeCase:o,local:o>"a"}),[e]}},{regex:"/\\w*}",onMatch:function(e,t,i){var o=i.shift();return o&&(o.flag=e.slice(1,-1)),this.next=o&&o.tabstopId?"start":"",[o||e]},next:"start"},{regex:/\$(?:\d+|\w+)/,onMatch:function(e,t,i){return[{text:e.slice(1)}]}},{regex:/\${\w+/,onMatch:function(e,t,i){var o={text:e.slice(2)};return i.unshift(o),[o]},next:"formatStringVar"},{regex:/\n/,token:"newline",merge:!1},{regex:/}/,onMatch:function(e,t,i){var o=i.shift();return this.next=o&&o.tabstopId?"start":"",[o||e]},next:"start"}],formatStringVar:[{regex:/:\/\w+}/,onMatch:function(e,t,i){return i[0].formatFunction=e.slice(2,-1),[i.shift()]},next:"formatString"},o,{regex:/:[\?\-+]?/,onMatch:function(e,t,i){"+"==e[1]&&(i[0].ifEnd=i[0]),"?"==e[1]&&(i[0].expectElse=!0)},next:"formatString"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"formatString"}]}),e.$tokenizer},e.prototype.tokenizeTmSnippet=function(e,t){return this.getTokenizer().getLineTokens(e,t).tokens.map((function(e){return e.value||e}))},e.prototype.getVariableValue=function(e,t,i){if(/^\d+$/.test(t))return(this.variables.__||{})[t]||"";if(/^[A-Z]\d+$/.test(t))return(this.variables[t[0]+"__"]||{})[t.substr(1)]||"";if(t=t.replace(/^TM_/,""),!this.variables.hasOwnProperty(t))return"";var o=this.variables[t];return"function"==typeof o&&(o=this.variables[t](e,t,i)),null==o?"":o},e.prototype.tmStrFormat=function(e,t,i){if(!t.fmt)return e;var o=t.flag||"",n=t.guard;n=new RegExp(n,o.replace(/[^gim]/g,""));var s="string"==typeof t.fmt?this.tokenizeTmSnippet(t.fmt,"formatString"):t.fmt,r=this,a=e.replace(n,(function(){var e=r.variables.__;r.variables.__=[].slice.call(arguments);for(var t=r.resolveVariables(s,i),o="E",n=0;n<t.length;n++){var a=t[n];if("object"==typeof a)if(t[n]="",a.changeCase&&a.local){var c=t[n+1];c&&"string"==typeof c&&("u"==a.changeCase?t[n]=c[0].toUpperCase():t[n]=c[0].toLowerCase(),t[n+1]=c.substr(1))}else a.changeCase&&(o=a.changeCase);else"U"==o?t[n]=a.toUpperCase():"L"==o&&(t[n]=a.toLowerCase())}return r.variables.__=e,t.join("")}));return a},e.prototype.tmFormatFunction=function(e,t,i){return"upcase"==t.formatFunction?e.toUpperCase():"downcase"==t.formatFunction?e.toLowerCase():e},e.prototype.resolveVariables=function(e,t){function i(t){var i=e.indexOf(t,r+1);-1!=i&&(r=i)}for(var o=[],n="",s=!0,r=0;r<e.length;r++){var a=e[r];if("string"!=typeof a){if(a){if(s=!1,a.fmtString){var c=e.indexOf(a,r+1);-1==c&&(c=e.length),a.fmt=e.slice(r+1,c),r=c}if(a.text){var l=this.getVariableValue(t,a.text,n)+"";a.fmtString&&(l=this.tmStrFormat(l,a,t)),a.formatFunction&&(l=this.tmFormatFunction(l,a,t)),l&&!a.ifEnd?(o.push(l),i(a)):!l&&a.ifEnd&&i(a.ifEnd)}else a.elseEnd?i(a.elseEnd):(null!=a.tabstopId||null!=a.changeCase)&&o.push(a)}}else o.push(a),"\n"==a?(s=!0,n=""):s&&(n=/^\t*/.exec(a)[0],s=/\S/.test(a))}return o},e.prototype.getDisplayTextForSnippet=function(e,t){return f.call(this,e,t).text},e.prototype.insertSnippetForSelection=function(e,t,i){void 0===i&&(i={});var o=f.call(this,e,t,i),n=e.getSelectionRange(),s=e.session.replace(n,o.text),r=new g(e),a=e.inVirtualSelectionMode&&e.selection.index;r.addTabstops(o.tabstops,n.start,s,a)},e.prototype.insertSnippet=function(e,t,i){void 0===i&&(i={});var o=this;if(e.inVirtualSelectionMode)return o.insertSnippetForSelection(e,t,i);e.forEachSelection((function(){o.insertSnippetForSelection(e,t,i)}),null,{keepOrder:!0}),e.tabstopManager&&e.tabstopManager.tabNext()},e.prototype.$getScope=function(e){var t=e.session.$mode.$id||"";if("html"===(t=t.split("/").pop())||"php"===t){"php"===t&&!e.session.$mode.inlinePhp&&(t="html");var i=e.getCursorPosition(),o=e.session.getState(i.row);"object"==typeof o&&(o=o[0]),o.substring&&("js-"==o.substring(0,3)?t="javascript":"css-"==o.substring(0,4)?t="css":"php-"==o.substring(0,4)&&(t="php"))}return t},e.prototype.getActiveScopes=function(e){var t=this.$getScope(e),i=[t],o=this.snippetMap;return o[t]&&o[t].includeScopes&&i.push.apply(i,o[t].includeScopes),i.push("_"),i},e.prototype.expandWithTab=function(e,t){var i=this,o=e.forEachSelection((function(){return i.expandSnippetForSelection(e,t)}),null,{keepOrder:!0});return o&&e.tabstopManager&&e.tabstopManager.tabNext(),o},e.prototype.expandSnippetForSelection=function(e,t){var i,o=e.getCursorPosition(),n=e.session.getLine(o.row),s=n.substring(0,o.column),r=n.substr(o.column),a=this.snippetMap;return this.getActiveScopes(e).some((function(e){var t=a[e];return t&&(i=this.findMatchingSnippet(t,s,r)),!!i}),this),!!i&&(t&&t.dryRun||(e.session.doc.removeInLine(o.row,o.column-i.replaceBefore.length,o.column+i.replaceAfter.length),this.variables.M__=i.matchBefore,this.variables.T__=i.matchAfter,this.insertSnippetForSelection(e,i.content),this.variables.M__=this.variables.T__=null),!0)},e.prototype.findMatchingSnippet=function(e,t,i){for(var o=e.length;o--;){var n=e[o];if((!n.startRe||n.startRe.test(t))&&((!n.endRe||n.endRe.test(i))&&(n.startRe||n.endRe)))return n.matchBefore=n.startRe?n.startRe.exec(t):[""],n.matchAfter=n.endRe?n.endRe.exec(i):[""],n.replaceBefore=n.triggerRe?n.triggerRe.exec(t)[0]:"",n.replaceAfter=n.endTriggerRe?n.endTriggerRe.exec(i)[0]:"",n}},e.prototype.register=function(e,t){function i(e){return e&&!/^\^?\(.*\)\$?$|^\\b$/.test(e)&&(e="(?:"+e+")"),e||""}function o(e,t,o){return e=i(e),t=i(t),o?(e=t+e)&&"$"!=e[e.length-1]&&(e+="$"):(e+=t)&&"^"!=e[0]&&(e="^"+e),new RegExp(e)}function n(e){e.scope||(e.scope=t||"_"),t=e.scope,s[t]||(s[t]=[],r[t]={});var i=r[t];if(e.name){var n=i[e.name];n&&c.unregister(n),i[e.name]=e}s[t].push(e),e.prefix&&(e.tabTrigger=e.prefix),!e.content&&e.body&&(e.content=Array.isArray(e.body)?e.body.join("\n"):e.body),e.tabTrigger&&!e.trigger&&(!e.guard&&/^\w/.test(e.tabTrigger)&&(e.guard="\\b"),e.trigger=a.escapeRegExp(e.tabTrigger)),(e.trigger||e.guard||e.endTrigger||e.endGuard)&&(e.startRe=o(e.trigger,e.guard,!0),e.triggerRe=new RegExp(e.trigger),e.endRe=o(e.endTrigger,e.endGuard,!0),e.endTriggerRe=new RegExp(e.endTrigger))}var s=this.snippetMap,r=this.snippetNameMap,c=this;e||(e=[]),Array.isArray(e)?e.forEach(n):Object.keys(e).forEach((function(t){n(e[t])})),this._signal("registerSnippets",{scope:t})},e.prototype.unregister=function(e,t){function i(e){var i=n[e.scope||t];if(i&&i[e.name]){delete i[e.name];var s=o[e.scope||t],r=s&&s.indexOf(e);r>=0&&s.splice(r,1)}}var o=this.snippetMap,n=this.snippetNameMap;e.content?i(e):Array.isArray(e)&&e.forEach(i)},e.prototype.parseSnippetFile=function(e){e=e.replace(/\r/g,"");for(var t,i=[],o={},n=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm;t=n.exec(e);){if(t[1])try{o=JSON.parse(t[1]),i.push(o)}catch(r){}if(t[4])o.content=t[4].replace(/^\t/gm,""),i.push(o),o={};else{var s=t[2],a=t[3];if("regex"==s){var c=/\/((?:[^\/\\]|\\.)*)|$/g;o.guard=c.exec(a)[1],o.trigger=c.exec(a)[1],o.endTrigger=c.exec(a)[1],o.endGuard=c.exec(a)[1]}else"snippet"==s?(o.tabTrigger=a.match(/^\S*/)[0],o.name||(o.name=a)):s&&(o[s]=a)}}return i},e.prototype.getSnippetByName=function(e,t){var i,o=this.snippetNameMap;return this.getActiveScopes(t).some((function(t){var n=o[t];return n&&(i=n[e]),!!i}),this),i},e}();s.implement(m.prototype,r);var f=function(e,t,i){function o(e){for(var t=[],i=0;i<e.length;i++){var o=e[i];if("object"==typeof o){if(p[o.tabstopId])continue;o=t[e.lastIndexOf(o,i-1)]||{tabstopId:o.tabstopId}}t[i]=o}return t}void 0===i&&(i={});var n=e.getCursorPosition(),s=e.session.getLine(n.row),r=e.session.getTabString(),a=s.match(/^\s*/)[0];n.column<a.length&&(a=a.slice(0,n.column)),t=t.replace(/\r/g,"");var c=this.tokenizeTmSnippet(t);c=(c=this.resolveVariables(c,e)).map((function(e){return"\n"!=e||i.excludeExtraIndent?"string"==typeof e?e.replace(/\t/g,r):e:e+a}));var l=[];c.forEach((function(e,t){if("object"==typeof e){var i=e.tabstopId,o=l[i];if(o||((o=l[i]=[]).index=i,o.value="",o.parents={}),-1===o.indexOf(e)){e.choices&&!o.choices&&(o.choices=e.choices),o.push(e);var n=c.indexOf(e,t+1);if(-1!==n){var s=c.slice(t+1,n),r=s.some((function(e){return"object"==typeof e}));r&&!o.value?o.value=s:s.length&&(!o.value||"string"!=typeof o.value)&&(o.value=s.join(""))}}}})),l.forEach((function(e){e.length=0}));for(var p={},h=0;h<c.length;h++){var d=c[h];if("object"==typeof d){var u=d.tabstopId,m=l[u],f=c.indexOf(d,h+1);if(p[u])p[u]===d&&(delete p[u],Object.keys(p).forEach((function(e){m.parents[e]=!0})));else{p[u]=d;var g=m.value;"string"!=typeof g?g=o(g):d.fmt&&(g=this.tmStrFormat(g,d,e)),c.splice.apply(c,[h+1,Math.max(0,f-h)].concat(g,d)),-1===m.indexOf(d)&&m.push(d)}}}var v=0,b=0,y="";return c.forEach((function(e){if("string"==typeof e){var t=e.split("\n");t.length>1?(b=t[t.length-1].length,v+=t.length-1):b+=e.length,y+=e}else e&&(e.start?e.end={row:v,column:b}:e.start={row:v,column:b})})),{text:y,tabstops:l,tokens:c}},g=function(){function e(e){if(this.index=0,this.ranges=[],this.tabstops=[],e.tabstopManager)return e.tabstopManager;e.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=a.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(e)}return e.prototype.attach=function(e){this.$openTabstops=null,this.selectedTabstop=null,this.editor=e,this.session=e.session,this.editor.on("change",this.$onChange),this.editor.on("changeSelection",this.$onChangeSelection),this.editor.on("changeSession",this.$onChangeSession),this.editor.commands.on("afterExec",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},e.prototype.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges.length=0,this.tabstops.length=0,this.selectedTabstop=null,this.editor.off("change",this.$onChange),this.editor.off("changeSelection",this.$onChangeSelection),this.editor.off("changeSession",this.$onChangeSession),this.editor.commands.off("afterExec",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.session=null,this.editor=null},e.prototype.onChange=function(e){for(var t="r"==e.action[0],i=this.selectedTabstop||{},o=i.parents||{},n=this.tabstops.slice(),s=0;s<n.length;s++){var r=n[s],a=r==i||o[r.index];if(r.rangeList.$bias=a?0:1,"remove"==e.action&&r!==i){var c=r.parents&&r.parents[i.index],l=r.rangeList.pointIndex(e.start,c);l=l<0?-l-1:l+1;var p=r.rangeList.pointIndex(e.end,c);p=p<0?-p-1:p-1;for(var h=r.rangeList.ranges.slice(l,p),d=0;d<h.length;d++)this.removeRange(h[d])}r.rangeList.$onChange(e)}var u=this.session;!this.$inChange&&t&&1==u.getLength()&&!u.getValue()&&this.detach()},e.prototype.updateLinkedFields=function(){var e=this.selectedTabstop;if(e&&e.hasLinkedRanges&&e.firstNonLinked){this.$inChange=!0;for(var i=this.session,o=i.getTextRange(e.firstNonLinked),n=0;n<e.length;n++){var s=e[n];if(s.linked){var r=s.original,a=t.snippetManager.tmStrFormat(o,r,this.editor);i.replace(s,a)}}this.$inChange=!1}},e.prototype.onAfterExec=function(e){e.command&&!e.command.readOnly&&this.updateLinkedFields()},e.prototype.onChangeSelection=function(){if(this.editor){for(var e=this.editor.selection.lead,t=this.editor.selection.anchor,i=this.editor.selection.isEmpty(),o=0;o<this.ranges.length;o++)if(!this.ranges[o].linked){var n=this.ranges[o].contains(e.row,e.column),s=i||this.ranges[o].contains(t.row,t.column);if(n&&s)return}this.detach()}},e.prototype.onChangeSession=function(){this.detach()},e.prototype.tabNext=function(e){var t=this.tabstops.length,i=this.index+(e||1);(i=Math.min(Math.max(i,1),t))==t&&(i=0),this.selectTabstop(i),0===i&&this.detach()},e.prototype.selectTabstop=function(e){this.$openTabstops=null;var t=this.tabstops[this.index];if(t&&this.addTabstopMarkers(t),this.index=e,(t=this.tabstops[this.index])&&t.length){this.selectedTabstop=t;var i=t.firstNonLinked||t;if(t.choices&&(i.cursor=i.start),this.editor.inVirtualSelectionMode)this.editor.selection.fromOrientedRange(i);else{var o=this.editor.multiSelect;o.toSingleRange(i);for(var n=0;n<t.length;n++)t.hasLinkedRanges&&t[n].linked||o.addRange(t[n].clone(),!0)}this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler),this.selectedTabstop&&this.selectedTabstop.choices&&this.editor.execCommand("startAutocomplete",{matches:this.selectedTabstop.choices})}},e.prototype.addTabstops=function(e,t,i){var o=this.useLink||!this.editor.getOption("enableMultiselect");if(this.$openTabstops||(this.$openTabstops=[]),!e[0]){var n=c.fromPoints(i,i);b(n.start,t),b(n.end,t),e[0]=[n],e[0].index=0}var s=[this.index+1,0],r=this.ranges;e.forEach((function(e,i){for(var n=this.$openTabstops[i]||e,a=0;a<e.length;a++){var p=e[a],h=c.fromPoints(p.start,p.end||p.start);v(h.start,t),v(h.end,t),h.original=p,h.tabstop=n,r.push(h),n!=e?n.unshift(h):n[a]=h,p.fmtString||n.firstNonLinked&&o?(h.linked=!0,n.hasLinkedRanges=!0):n.firstNonLinked||(n.firstNonLinked=h)}n.firstNonLinked||(n.hasLinkedRanges=!1),n===e&&(s.push(n),this.$openTabstops[i]=n),this.addTabstopMarkers(n),n.rangeList=n.rangeList||new l,n.rangeList.$bias=0,n.rangeList.addList(n)}),this),s.length>2&&(this.tabstops.length&&s.push(s.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,s))},e.prototype.addTabstopMarkers=function(e){var t=this.session;e.forEach((function(e){e.markerId||(e.markerId=t.addMarker(e,"ace_snippet-marker","text"))}))},e.prototype.removeTabstopMarkers=function(e){var t=this.session;e.forEach((function(e){t.removeMarker(e.markerId),e.markerId=null}))},e.prototype.removeRange=function(e){var t=e.tabstop.indexOf(e);-1!=t&&e.tabstop.splice(t,1),-1!=(t=this.ranges.indexOf(e))&&this.ranges.splice(t,1),-1!=(t=e.tabstop.rangeList.ranges.indexOf(e))&&e.tabstop.splice(t,1),this.session.removeMarker(e.markerId),e.tabstop.length||(-1!=(t=this.tabstops.indexOf(e.tabstop))&&this.tabstops.splice(t,1),this.tabstops.length||this.detach())},e}();g.prototype.keyboardHandler=new p,g.prototype.keyboardHandler.bindKeys({Tab:function(e){t.snippetManager&&t.snippetManager.expandWithTab(e)||(e.tabstopManager.tabNext(1),e.renderer.scrollCursorIntoView())},"Shift-Tab":function(e){e.tabstopManager.tabNext(-1),e.renderer.scrollCursorIntoView()},Esc:function(e){e.tabstopManager.detach()}});var v=function(e,t){0==e.row&&(e.column+=t.column),e.row+=t.row},b=function(e,t){e.row==t.row&&(e.column-=t.column),e.row-=t.row};n.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",!1),t.snippetManager=new m;var y=e("./editor").Editor;(function(){this.insertSnippet=function(e,i){return t.snippetManager.insertSnippet(this,e,i)},this.expandSnippet=function(e){return t.snippetManager.expandWithTab(this,e)}}).call(y.prototype)})),ace.define("ace/autocomplete/inline_screenreader",["require","exports","module"],(function(e,t,i){"use strict";var o=function(){function e(e){this.editor=e,this.screenReaderDiv=document.createElement("div"),this.screenReaderDiv.classList.add("ace_screenreader-only"),this.editor.container.appendChild(this.screenReaderDiv)}return e.prototype.setScreenReaderContent=function(e){for(!this.popup&&this.editor.completer&&this.editor.completer.popup&&(this.popup=this.editor.completer.popup,this.popup.renderer.on("afterRender",function(){var e=this.popup.getRow(),t=this.popup.renderer.$textLayer,i=t.element.childNodes[e-t.config.firstRow];if(i){for(var o="doc-tooltip ",n=0;n<this._lines.length;n++)o+="ace-inline-screenreader-line-".concat(n," ");i.setAttribute("aria-describedby",o)}}.bind(this)));this.screenReaderDiv.firstChild;)this.screenReaderDiv.removeChild(this.screenReaderDiv.firstChild);this._lines=e.split(/\r\n|\r|\n/);var t=this.createCodeBlock();this.screenReaderDiv.appendChild(t)},e.prototype.destroy=function(){this.screenReaderDiv.remove()},e.prototype.createCodeBlock=function(){var e=document.createElement("pre");e.setAttribute("id","ace-inline-screenreader");for(var t=0;t<this._lines.length;t++){var i=document.createElement("code");i.setAttribute("id","ace-inline-screenreader-line-".concat(t));var o=document.createTextNode(this._lines[t]);i.appendChild(o),e.appendChild(i)}return e},e}();t.AceInlineScreenReader=o})),ace.define("ace/autocomplete/inline",["require","exports","module","ace/snippets","ace/autocomplete/inline_screenreader"],(function(e,t,i){"use strict";var o=e("../snippets").snippetManager,n=e("./inline_screenreader").AceInlineScreenReader,s=function(){function e(){this.editor=null}return e.prototype.show=function(e,t,i){if(i=i||"",e&&this.editor&&this.editor!==e&&(this.hide(),this.editor=null,this.inlineScreenReader=null),!e||!t)return!1;this.inlineScreenReader||(this.inlineScreenReader=new n(e));var s=t.snippet?o.getDisplayTextForSnippet(e,t.snippet):t.value;return!(t.hideInlinePreview||!s||!s.startsWith(i))&&(this.editor=e,this.inlineScreenReader.setScreenReaderContent(s),""===(s=s.slice(i.length))?e.removeGhostText():e.setGhostText(s),!0)},e.prototype.isOpen=function(){return!!this.editor&&!!this.editor.renderer.$ghostText},e.prototype.hide=function(){return!!this.editor&&(this.editor.removeGhostText(),!0)},e.prototype.destroy=function(){this.hide(),this.editor=null,this.inlineScreenReader&&(this.inlineScreenReader.destroy(),this.inlineScreenReader=null)},e}();t.AceInline=s})),ace.define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/config"],(function(e,t,i){"use strict";var o=e("../virtual_renderer").VirtualRenderer,n=e("../editor").Editor,s=e("../range").Range,r=e("../lib/event"),a=e("../lib/lang"),c=e("../lib/dom"),l=e("../config").nls,p=function(e){return"suggest-aria-id:".concat(e)},h=function(e){var t=new o(e);t.$maxLines=4;var i=new n(t);return i.setHighlightActiveLine(!1),i.setShowPrintMargin(!1),i.renderer.setShowGutter(!1),i.renderer.setHighlightGutterLine(!1),i.$mouseHandler.$focusTimeout=0,i.$highlightTagPending=!0,i},d=function(e){var t=c.createElement("div"),i=new h(t);e&&e.appendChild(t),t.style.display="none",i.renderer.content.style.cursor="default",i.renderer.setStyle("ace_autocomplete"),i.renderer.$textLayer.element.setAttribute("role","listbox"),i.renderer.$textLayer.element.setAttribute("aria-label",l("Autocomplete suggestions")),i.renderer.textarea.setAttribute("aria-hidden","true"),i.setOption("displayIndentGuides",!1),i.setOption("dragDelay",150);var o=function(){};i.focus=o,i.$isFocused=!0,i.renderer.$cursorLayer.restartTimer=o,i.renderer.$cursorLayer.element.style.opacity=0,i.renderer.$maxLines=8,i.renderer.$keepTextAreaAtCursor=!1,i.setHighlightActiveLine(!1),i.session.highlight(""),i.session.$searchHighlight.clazz="ace_highlight-marker",i.on("mousedown",(function(e){var t=e.getDocumentPosition();i.selection.moveToPosition(t),u.start.row=u.end.row=t.row,e.stop()}));var n,d=new s(-1,0,-1,1/0),u=new s(-1,0,-1,1/0);u.id=i.session.addMarker(u,"ace_active-line","fullLine"),i.setSelectOnHover=function(e){e?d.id&&(i.session.removeMarker(d.id),d.id=null):d.id=i.session.addMarker(d,"ace_line-hover","fullLine")},i.setSelectOnHover(!1),i.on("mousemove",(function(e){if(n){if(n.x!=e.x||n.y!=e.y){(n=e).scrollTop=i.renderer.scrollTop,i.isMouseOver=!0;var t=n.getDocumentPosition().row;d.start.row!=t&&(d.id||i.setRow(t),f(t))}}else n=e})),i.renderer.on("beforeRender",(function(){if(n&&-1!=d.start.row){n.$pos=null;var e=n.getDocumentPosition().row;d.id||i.setRow(e),f(e,!0)}})),i.renderer.on("afterRender",(function(){var e=i.getRow(),t=i.renderer.$textLayer,o=t.element.childNodes[e-t.config.firstRow],n=document.activeElement;if(o!==t.selectedNode&&t.selectedNode&&(c.removeCssClass(t.selectedNode,"ace_selected"),n.removeAttribute("aria-activedescendant"),t.selectedNode.removeAttribute("id")),t.selectedNode=o,o){c.addCssClass(o,"ace_selected");var s=p(e);o.id=s,t.element.setAttribute("aria-activedescendant",s),n.setAttribute("aria-activedescendant",s),o.setAttribute("role","option"),o.setAttribute("aria-label",i.getData(e).value),o.setAttribute("aria-setsize",i.data.length),o.setAttribute("aria-posinset",e+1),o.setAttribute("aria-describedby","doc-tooltip")}}));var m=function(){f(-1)},f=function(e,t){e!==d.start.row&&(d.start.row=d.end.row=e,t||i.session._emit("changeBackMarker"),i._emit("changeHoverMarker"))};i.getHoveredRow=function(){return d.start.row},r.addListener(i.container,"mouseout",(function(){i.isMouseOver=!1,m()})),i.on("hide",m),i.on("changeSelection",m),i.session.doc.getLength=function(){return i.data.length},i.session.doc.getLine=function(e){var t=i.data[e];return"string"==typeof t?t:t&&t.value||""};var g=i.session.bgTokenizer;return g.$tokenizeRow=function(e){function t(e,t){e&&n.push({type:(o.className||"")+(t||""),value:e})}var o=i.data[e],n=[];if(!o)return n;"string"==typeof o&&(o={value:o});for(var s=o.caption||o.value||o.name,r=s.toLowerCase(),a=(i.filterText||"").toLowerCase(),c=0,l=0,p=0;p<=a.length;p++)if(p!=l&&(o.matchMask&1<<p||p==a.length)){var h=a.slice(l,p);l=p;var d=r.indexOf(h,c);if(-1==d)continue;t(s.slice(c,d),""),c=d+h.length,t(s.slice(d,c),"completion-highlight")}return t(s.slice(c,s.length),""),n.push({type:"completion-spacer",value:" "}),o.meta&&n.push({type:"completion-meta",value:o.meta}),o.message&&n.push({type:"completion-message",value:o.message}),n},g.$updateOnChange=o,g.start=o,i.session.$computeWidth=function(){return this.screenWidth=0},i.isOpen=!1,i.isTopdown=!1,i.autoSelect=!0,i.filterText="",i.isMouseOver=!1,i.data=[],i.setData=function(e,t){i.filterText=t||"",i.setValue(a.stringRepeat("\n",e.length),-1),i.data=e||[],i.setRow(0)},i.getData=function(e){return i.data[e]},i.getRow=function(){return u.start.row},i.setRow=function(e){e=Math.max(this.autoSelect?0:-1,Math.min(this.data.length-1,e)),u.start.row!=e&&(i.selection.clearSelection(),u.start.row=u.end.row=e||0,i.session._emit("changeBackMarker"),i.moveCursorTo(e||0,0),i.isOpen&&i._signal("select"))},i.on("changeSelection",(function(){i.isOpen&&i.setRow(i.selection.lead.row),i.renderer.scrollCursorIntoView()})),i.hide=function(){this.container.style.display="none",i.anchorPos=null,i.anchor=null,i.isOpen&&(i.isOpen=!1,this._signal("hide"))},i.tryShow=function(e,t,o,s){if(!s&&i.isOpen&&i.anchorPos&&i.anchor&&i.anchorPos.top===e.top&&i.anchorPos.left===e.left&&i.anchor===o)return!0;var r=this.container,a=window.innerHeight,c=window.innerWidth,l=this.renderer,p=l.$maxLines*t*1.4,h={top:0,bottom:0,left:0},d=a-e.top-3*this.$borderSize-t,u=e.top-3*this.$borderSize;o||(o=u<=d||d>=p?"bottom":"top"),"top"===o?(h.bottom=e.top-this.$borderSize,h.top=h.bottom-p):"bottom"===o&&(h.top=e.top+t+this.$borderSize,h.bottom=h.top+p);var m=h.top>=0&&h.bottom<=a;if(!s&&!m)return!1;l.$maxPixelHeight=m?null:"top"===o?u:d,"top"===o?(r.style.top="",r.style.bottom=a-h.bottom+"px",i.isTopdown=!1):(r.style.top=h.top+"px",r.style.bottom="",i.isTopdown=!0),r.style.display="";var f=e.left;return f+r.offsetWidth>c&&(f=c-r.offsetWidth),r.style.left=f+"px",r.style.right="",i.isOpen||(i.isOpen=!0,this._signal("show"),n=null),i.anchorPos=e,i.anchor=o,!0},i.show=function(e,t,i){this.tryShow(e,t,i?"bottom":void 0,!0)},i.goTo=function(e){var t=this.getRow(),i=this.session.getLength()-1;switch(e){case"up":t=t<=0?i:t-1;break;case"down":t=t>=i?-1:t+1;break;case"start":t=0;break;case"end":t=i}this.setRow(t)},i.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},i.$imageSize=0,i.$borderSize=1,i};c.importCssString('\n.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\n background-color: #CAD6FA;\n z-index: 1;\n}\n.ace_dark.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\n background-color: #3a674e;\n}\n.ace_editor.ace_autocomplete .ace_line-hover {\n border: 1px solid #abbffe;\n margin-top: -1px;\n background: rgba(233,233,253,0.4);\n position: absolute;\n z-index: 2;\n}\n.ace_dark.ace_editor.ace_autocomplete .ace_line-hover {\n border: 1px solid rgba(109, 150, 13, 0.8);\n background: rgba(58, 103, 78, 0.62);\n}\n.ace_completion-meta {\n opacity: 0.5;\n margin-left: 0.9em;\n}\n.ace_completion-message {\n margin-left: 0.9em;\n color: blue;\n}\n.ace_editor.ace_autocomplete .ace_completion-highlight{\n color: #2d69c7;\n}\n.ace_dark.ace_editor.ace_autocomplete .ace_completion-highlight{\n color: #93ca12;\n}\n.ace_editor.ace_autocomplete {\n width: 300px;\n z-index: 200000;\n border: 1px lightgray solid;\n position: fixed;\n box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n line-height: 1.4;\n background: #fefefe;\n color: #111;\n}\n.ace_dark.ace_editor.ace_autocomplete {\n border: 1px #484747 solid;\n box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.51);\n line-height: 1.4;\n background: #25282c;\n color: #c1c1c1;\n}\n.ace_autocomplete .ace_text-layer {\n width: calc(100% - 8px);\n}\n.ace_autocomplete .ace_line {\n display: flex;\n align-items: center;\n}\n.ace_autocomplete .ace_line > * {\n min-width: 0;\n flex: 0 0 auto;\n}\n.ace_autocomplete .ace_line .ace_ {\n flex: 0 1 auto;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ace_autocomplete .ace_completion-spacer {\n flex: 1;\n}\n.ace_autocomplete.ace_loading:after {\n content: "";\n position: absolute;\n top: 0px;\n height: 2px;\n width: 8%;\n background: blue;\n z-index: 100;\n animation: ace_progress 3s infinite linear;\n animation-delay: 300ms;\n transform: translateX(-100%) scaleX(1);\n}\n@keyframes ace_progress {\n 0% { transform: translateX(-100%) scaleX(1) }\n 50% { transform: translateX(625%) scaleX(2) } \n 100% { transform: translateX(1500%) scaleX(3) } \n}\n@media (prefers-reduced-motion) {\n .ace_autocomplete.ace_loading:after {\n transform: translateX(625%) scaleX(2);\n animation: none;\n }\n}\n',"autocompletion.css",!1),t.AcePopup=d,t.$singleLineEditor=h,t.getAriaId=p})),ace.define("ace/autocomplete/util",["require","exports","module"],(function(e,t,i){"use strict";t.parForEach=function(e,t,i){var o=0,n=e.length;0===n&&i();for(var s=0;s<n;s++)t(e[s],(function(e,t){++o===n&&i(e,t)}))};var o=/[a-zA-Z_0-9\$\-\u00A2-\u2000\u2070-\uFFFF]/;t.retrievePrecedingIdentifier=function(e,t,i){i=i||o;for(var n=[],s=t-1;s>=0&&i.test(e[s]);s--)n.push(e[s]);return n.reverse().join("")},t.retrieveFollowingIdentifier=function(e,t,i){i=i||o;for(var n=[],s=t;s<e.length&&i.test(e[s]);s++)n.push(e[s]);return n},t.getCompletionPrefix=function(e){var t,i=e.getCursorPosition(),o=e.session.getLine(i.row);return e.completers.forEach(function(e){e.identifierRegexps&&e.identifierRegexps.forEach(function(e){!t&&e&&(t=this.retrievePrecedingIdentifier(o,i.column,e))}.bind(this))}.bind(this)),t||this.retrievePrecedingIdentifier(o,i.column)},t.triggerAutocomplete=function(e){var t=e.getCursorPosition(),i=e.session.getLine(t.row)[0===t.column?0:t.column-1];return e.completers.some((function(e){if(e.triggerCharacters&&Array.isArray(e.triggerCharacters))return e.triggerCharacters.includes(i)}))}})),ace.define("ace/autocomplete",["require","exports","module","ace/keyboard/hash_handler","ace/autocomplete/popup","ace/autocomplete/inline","ace/autocomplete/popup","ace/autocomplete/util","ace/lib/lang","ace/lib/dom","ace/snippets","ace/config","ace/lib/event"],(function(e,t,i){"use strict";var o=e("./keyboard/hash_handler").HashHandler,n=e("./autocomplete/popup").AcePopup,s=e("./autocomplete/inline").AceInline,r=e("./autocomplete/popup").getAriaId,a=e("./autocomplete/util"),c=e("./lib/lang"),l=e("./lib/dom"),p=e("./snippets").snippetManager,h=e("./config"),d=e("./lib/event"),u=function(e,t){t.completer&&t.completer.destroy()},m=function(){function e(){this.autoInsert=!1,this.autoSelect=!0,this.autoShown=!1,this.exactMatch=!1,this.inlineEnabled=!1,this.keyboardHandler=new o,this.keyboardHandler.bindKeys(this.commands),this.parentNode=null,this.setSelectOnHover=!1,this.stickySelectionDelay=500,this.blurListener=this.blurListener.bind(this),this.changeListener=this.changeListener.bind(this),this.mousedownListener=this.mousedownListener.bind(this),this.mousewheelListener=this.mousewheelListener.bind(this),this.onLayoutChange=this.onLayoutChange.bind(this),this.changeTimer=c.delayedCall(function(){this.updateCompletions(!0)}.bind(this)),this.tooltipTimer=c.delayedCall(this.updateDocTooltip.bind(this),50),this.stickySelectionTimer=c.delayedCall(function(){this.stickySelection=!0}.bind(this),this.stickySelectionDelay),this.$firstOpenTimer=c.delayedCall(function(){var e=this.completionProvider&&this.completionProvider.initialPosition;if(!(this.autoShown||this.popup&&this.popup.isOpen)&&e){var t=[{caption:h.nls("Loading..."),value:""}];this.completions=new g(t),this.openPopup(this.editor,e.prefix,!1),this.popup.renderer.setStyle("ace_loading",!0)}}.bind(this),this.stickySelectionDelay)}return e.prototype.$init=function(){return this.popup=new n(this.parentNode||document.body||document.documentElement),this.popup.on("click",function(e){this.insertMatch(),e.stop()}.bind(this)),this.popup.focus=this.editor.focus.bind(this.editor),this.popup.on("show",this.$onPopupShow.bind(this)),this.popup.on("hide",this.$onHidePopup.bind(this)),this.popup.on("select",this.$onPopupChange.bind(this)),d.addListener(this.popup.container,"mouseout",this.mouseOutListener.bind(this)),this.popup.on("changeHoverMarker",this.tooltipTimer.bind(null,null)),this.popup},e.prototype.$initInline=function(){if(this.inlineEnabled&&!this.inlineRenderer)return this.inlineRenderer=new s,this.inlineRenderer},e.prototype.getPopup=function(){return this.popup||this.$init()},e.prototype.$onHidePopup=function(){this.inlineRenderer&&this.inlineRenderer.hide(),this.hideDocTooltip(),this.stickySelectionTimer.cancel(),this.stickySelection=!1},e.prototype.$onPopupChange=function(e){if(this.inlineRenderer&&this.inlineEnabled){var t=e?null:this.popup.getData(this.popup.getRow()),i=a.getCompletionPrefix(this.editor);if(this.inlineRenderer.show(this.editor,t,i)||this.inlineRenderer.hide(),this.popup.isMouseOver&&this.setSelectOnHover)return void this.tooltipTimer.call(null,null)}this.$updatePopupPosition(),this.tooltipTimer.call(null,null)},e.prototype.$onPopupShow=function(e){this.$onPopupChange(e),this.stickySelection=!1,this.stickySelectionDelay>=0&&this.stickySelectionTimer.schedule(this.stickySelectionDelay)},e.prototype.observeLayoutChanges=function(){if(!this.$elements&&this.editor){window.addEventListener("resize",this.onLayoutChange,{passive:!0}),window.addEventListener("wheel",this.mousewheelListener);for(var e=this.editor.container.parentNode,t=[];e;)t.push(e),e.addEventListener("scroll",this.onLayoutChange,{passive:!0}),e=e.parentNode;this.$elements=t}},e.prototype.unObserveLayoutChanges=function(){var e=this;window.removeEventListener("resize",this.onLayoutChange,{passive:!0}),window.removeEventListener("wheel",this.mousewheelListener),this.$elements&&this.$elements.forEach((function(t){t.removeEventListener("scroll",e.onLayoutChange,{passive:!0})})),this.$elements=null},e.prototype.onLayoutChange=function(){if(!this.popup.isOpen)return this.unObserveLayoutChanges();this.$updatePopupPosition(),this.updateDocTooltip()},e.prototype.$updatePopupPosition=function(){var e=this.editor,t=e.renderer,i=t.layerConfig.lineHeight,o=t.$cursorLayer.getPixelPosition(this.base,!0);o.left-=this.popup.getTextLeftOffset();var n=e.container.getBoundingClientRect();o.top+=n.top-t.layerConfig.offset,o.left+=n.left-e.renderer.scrollLeft,o.left+=t.gutterWidth;var s={top:o.top,left:o.left};t.$ghostText&&t.$ghostTextWidget&&this.base.row===t.$ghostText.position.row&&(s.top+=t.$ghostTextWidget.el.offsetHeight),this.popup.tryShow(s,i,"bottom")||this.popup.tryShow(o,i,"top")||this.popup.show(o,i)},e.prototype.openPopup=function(e,t,i){this.$firstOpenTimer.cancel(),this.popup||this.$init(),this.inlineEnabled&&!this.inlineRenderer&&this.$initInline(),this.popup.autoSelect=this.autoSelect,this.popup.setSelectOnHover(this.setSelectOnHover);var o=this.popup.data[this.popup.getRow()];this.popup.setData(this.completions.filtered,this.completions.filterText),this.editor.textInput.setAriaOptions&&this.editor.textInput.setAriaOptions({activeDescendant:r(this.popup.getRow()),inline:this.inlineEnabled}),e.keyBinding.addKeyboardHandler(this.keyboardHandler);var n=this.popup.data.indexOf(o);n&&this.stickySelection?this.popup.setRow(this.autoSelect?n:-1):this.popup.setRow(this.autoSelect?0:-1),i?i&&!t&&this.detach():(this.popup.setTheme(e.getTheme()),this.popup.setFontSize(e.getFontSize()),this.$updatePopupPosition(),this.tooltipNode&&this.updateDocTooltip()),this.changeTimer.cancel(),this.observeLayoutChanges()},e.prototype.detach=function(){this.editor&&(this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.off("changeSelection",this.changeListener),this.editor.off("blur",this.blurListener),this.editor.off("mousedown",this.mousedownListener),this.editor.off("mousewheel",this.mousewheelListener)),this.$firstOpenTimer.cancel(),this.changeTimer.cancel(),this.hideDocTooltip(),this.completionProvider&&this.completionProvider.detach(),this.popup&&this.popup.isOpen&&this.popup.hide(),this.base&&this.base.detach(),this.activated=!1,this.completionProvider=this.completions=this.base=null,this.unObserveLayoutChanges()},e.prototype.changeListener=function(e){var t=this.editor.selection.lead;(t.row!=this.base.row||t.column<this.base.column)&&this.detach(),this.activated?this.changeTimer.schedule():this.detach()},e.prototype.blurListener=function(e){var t=document.activeElement,i=this.editor.textInput.getElement(),o=e.relatedTarget&&this.tooltipNode&&this.tooltipNode.contains(e.relatedTarget),n=this.popup&&this.popup.container;t!=i&&t.parentNode!=n&&!o&&t!=this.tooltipNode&&e.relatedTarget!=i&&this.detach()},e.prototype.mousedownListener=function(e){this.detach()},e.prototype.mousewheelListener=function(e){this.popup.isMouseOver||this.detach()},e.prototype.mouseOutListener=function(e){this.popup.isOpen&&this.$updatePopupPosition()},e.prototype.goTo=function(e){this.popup.goTo(e)},e.prototype.insertMatch=function(e,t){if(e||(e=this.popup.getData(this.popup.getRow())),!e)return!1;if(""===e.value)return this.detach();var i=this.completions,o=this.getCompletionProvider().insertMatch(this.editor,e,i.filterText,t);return this.completions==i&&this.detach(),o},e.prototype.showPopup=function(e,t){this.editor&&this.detach(),this.activated=!0,this.editor=e,e.completer!=this&&(e.completer&&e.completer.detach(),e.completer=this),e.on("changeSelection",this.changeListener),e.on("blur",this.blurListener),e.on("mousedown",this.mousedownListener),e.on("mousewheel",this.mousewheelListener),this.updateCompletions(!1,t)},e.prototype.getCompletionProvider=function(e){return this.completionProvider||(this.completionProvider=new f(e)),this.completionProvider},e.prototype.gatherCompletions=function(e,t){return this.getCompletionProvider().gatherCompletions(e,t)},e.prototype.updateCompletions=function(e,t){if(e&&this.base&&this.completions){var i=this.editor.getCursorPosition();if((n=this.editor.session.getTextRange({start:this.base,end:i}))==this.completions.filterText)return;return this.completions.setFilter(n),this.completions.filtered.length?1!=this.completions.filtered.length||this.completions.filtered[0].value!=n||this.completions.filtered[0].snippet?void this.openPopup(this.editor,n,e):this.detach():this.detach()}if(t&&t.matches){i=this.editor.getSelectionRange().start;return this.base=this.editor.session.doc.createAnchor(i.row,i.column),this.base.$insertRight=!0,this.completions=new g(t.matches),this.openPopup(this.editor,"",e)}var o=this.editor.getSession(),n=(i=this.editor.getCursorPosition(),a.getCompletionPrefix(this.editor));this.base=o.doc.createAnchor(i.row,i.column-n.length),this.base.$insertRight=!0;var s={exactMatch:this.exactMatch,ignoreCaption:this.ignoreCaption};this.getCompletionProvider({prefix:n,pos:i}).provideCompletions(this.editor,s,function(t,i,o){var n=i.filtered,s=a.getCompletionPrefix(this.editor);if(this.$firstOpenTimer.cancel(),o){if(!n.length){var r=!this.autoShown&&this.emptyMessage;if("function"==typeof r&&(r=this.emptyMessage(s)),r){var c=[{caption:r,value:""}];return this.completions=new g(c),void this.openPopup(this.editor,s,e)}return this.detach()}if(1==n.length&&n[0].value==s&&!n[0].snippet)return this.detach();if(this.autoInsert&&!this.autoShown&&1==n.length)return this.insertMatch(n[0])}this.completions=i,this.openPopup(this.editor,s,e),this.popup.renderer.setStyle("ace_loading",!o)}.bind(this)),!this.autoShown&&(!this.popup||!this.popup.isOpen)&&this.$firstOpenTimer.delay(this.stickySelectionDelay/2)},e.prototype.cancelContextMenu=function(){this.editor.$mouseHandler.cancelContextMenu()},e.prototype.updateDocTooltip=function(){var e=this.popup,t=this.completions.filtered,i=t&&(t[e.getHoveredRow()]||t[e.getRow()]),o=null;if(!i||!this.editor||!this.popup.isOpen)return this.hideDocTooltip();for(var n=this.editor.completers.length,s=0;s<n;s++){var r=this.editor.completers[s];if(r.getDocTooltip&&i.completerId===r.id){o=r.getDocTooltip(i);break}}if(!o&&"string"!=typeof i&&(o=i),"string"==typeof o&&(o={docText:o}),!o||!o.docHTML&&!o.docText)return this.hideDocTooltip();this.showDocTooltip(o)},e.prototype.showDocTooltip=function(e){this.tooltipNode||(this.tooltipNode=l.createElement("div"),this.tooltipNode.style.margin=0,this.tooltipNode.style.pointerEvents="auto",this.tooltipNode.tabIndex=-1,this.tooltipNode.onblur=this.blurListener.bind(this),this.tooltipNode.onclick=this.onTooltipClick.bind(this),this.tooltipNode.id="doc-tooltip",this.tooltipNode.setAttribute("role","tooltip"));var t=this.editor.renderer.theme;this.tooltipNode.className="ace_tooltip ace_doc-tooltip "+(t.isDark?"ace_dark ":"")+(t.cssClass||"");var i=this.tooltipNode;e.docHTML?i.innerHTML=e.docHTML:e.docText&&(i.textContent=e.docText),i.parentNode||this.popup.container.appendChild(this.tooltipNode);var o=this.popup,n=o.container.getBoundingClientRect();i.style.top=o.container.style.top,i.style.bottom=o.container.style.bottom,i.style.display="block",window.innerWidth-n.right<320?n.left<320?o.isTopdown?(i.style.top=n.bottom+"px",i.style.left=n.left+"px",i.style.right="",i.style.bottom=""):(i.style.top=o.container.offsetTop-i.offsetHeight+"px",i.style.left=n.left+"px",i.style.right="",i.style.bottom=""):(i.style.right=window.innerWidth-n.left+"px",i.style.left=""):(i.style.left=n.right+1+"px",i.style.right="")},e.prototype.hideDocTooltip=function(){if(this.tooltipTimer.cancel(),this.tooltipNode){var e=this.tooltipNode;!this.editor.isFocused()&&document.activeElement==e&&this.editor.focus(),this.tooltipNode=null,e.parentNode&&e.parentNode.removeChild(e)}},e.prototype.onTooltipClick=function(e){for(var t=e.target;t&&t!=this.tooltipNode;){if("A"==t.nodeName&&t.href){t.rel="noreferrer",t.target="_blank";break}t=t.parentNode}},e.prototype.destroy=function(){if(this.detach(),this.popup){this.popup.destroy();var e=this.popup.container;e&&e.parentNode&&e.parentNode.removeChild(e)}this.editor&&this.editor.completer==this&&(this.editor.off("destroy",u),this.editor.completer=null),this.inlineRenderer=this.popup=this.editor=null},e}();m.prototype.commands={Up:function(e){e.completer.goTo("up")},Down:function(e){e.completer.goTo("down")},"Ctrl-Up|Ctrl-Home":function(e){e.completer.goTo("start")},"Ctrl-Down|Ctrl-End":function(e){e.completer.goTo("end")},Esc:function(e){e.completer.detach()},Return:function(e){return e.completer.insertMatch()},"Shift-Return":function(e){e.completer.insertMatch(null,{deleteSuffix:!0})},Tab:function(e){var t=e.completer.insertMatch();if(t||e.tabstopManager)return t;e.completer.goTo("down")},PageUp:function(e){e.completer.popup.gotoPageUp()},PageDown:function(e){e.completer.popup.gotoPageDown()}},m.for=function(e){return e.completer instanceof m||(e.completer&&(e.completer.destroy(),e.completer=null),h.get("sharedPopups")?(m.$sharedInstance||(m.$sharedInstance=new m),e.completer=m.$sharedInstance):(e.completer=new m,e.once("destroy",u))),e.completer},m.startCommand={name:"startAutocomplete",exec:function(e,t){var i=m.for(e);i.autoInsert=!1,i.autoSelect=!0,i.autoShown=!1,i.showPopup(e,t),i.cancelContextMenu()},bindKey:"Ctrl-Space|Ctrl-Shift-Space|Alt-Space"};var f=function(){function e(e){this.initialPosition=e,this.active=!0}return e.prototype.insertByIndex=function(e,t,i){return!(!this.completions||!this.completions.filtered)&&this.insertMatch(e,this.completions.filtered[t],i)},e.prototype.insertMatch=function(e,t,i){if(!t)return!1;if(e.startOperation({command:{name:"insertMatch"}}),t.completer&&t.completer.insertMatch)t.completer.insertMatch(e,t);else{if(!this.completions)return!1;var o=this.completions.filterText.length,n=0;if(t.range&&t.range.start.row===t.range.end.row&&(o-=this.initialPosition.prefix.length,o+=this.initialPosition.pos.column-t.range.start.column,n+=t.range.end.column-this.initialPosition.pos.column),o||n){var s;s=e.selection.getAllRanges?e.selection.getAllRanges():[e.getSelectionRange()];for(var r,a=0;r=s[a];a++)r.start.column-=o,r.end.column+=n,e.session.remove(r)}t.snippet?p.insertSnippet(e,t.snippet):this.$insertString(e,t),t.command&&"startAutocomplete"===t.command&&e.execCommand(t.command)}return e.endOperation(),!0},e.prototype.$insertString=function(e,t){var i=t.value||t;e.execCommand("insertstring",i)},e.prototype.gatherCompletions=function(e,t){var i=e.getSession(),o=e.getCursorPosition(),n=a.getCompletionPrefix(e),s=[];this.completers=e.completers;var r=e.completers.length;return e.completers.forEach((function(c,l){c.getCompletions(e,i,o,n,(function(i,o){c.hideInlinePreview&&(o=o.map((function(e){return Object.assign(e,{hideInlinePreview:c.hideInlinePreview})}))),!i&&o&&(s=s.concat(o)),t(null,{prefix:a.getCompletionPrefix(e),matches:s,finished:0===--r})}))})),!0},e.prototype.provideCompletions=function(e,t,i){var o=function(e){var o=e.prefix,n=e.matches;this.completions=new g(n),t.exactMatch&&(this.completions.exactMatch=!0),t.ignoreCaption&&(this.completions.ignoreCaption=!0),this.completions.setFilter(o),(e.finished||this.completions.filtered.length)&&i(null,this.completions,e.finished)}.bind(this),n=!0,s=null;if(this.gatherCompletions(e,function(e,t){this.active&&(e&&(i(e,[],!0),this.detach()),0===t.prefix.indexOf(t.prefix)&&(n?s=t:o(t)))}.bind(this)),n=!1,s){var r=s;s=null,o(r)}},e.prototype.detach=function(){this.active=!1,this.completers&&this.completers.forEach((function(e){"function"==typeof e.cancel&&e.cancel()}))},e}(),g=function(){function e(e,t){this.all=e,this.filtered=e,this.filterText=t||"",this.exactMatch=!1,this.ignoreCaption=!1}return e.prototype.setFilter=function(e){if(e.length>this.filterText&&0===e.lastIndexOf(this.filterText,0))var t=this.filtered;else t=this.all;this.filterText=e,t=(t=this.filterCompletions(t,this.filterText)).sort((function(e,t){return t.exactMatch-e.exactMatch||t.$score-e.$score||(e.caption||e.value).localeCompare(t.caption||t.value)}));var i=null;t=t.filter((function(e){var t=e.snippet||e.caption||e.value;return t!==i&&(i=t,!0)})),this.filtered=t},e.prototype.filterCompletions=function(e,t){var i=[],o=t.toUpperCase(),n=t.toLowerCase();e:for(var s,r=0;s=e[r];r++){var a=!this.ignoreCaption&&s.caption||s.value||s.snippet;if(a){var c,l,p=-1,h=0,d=0;if(this.exactMatch){if(t!==a.substr(0,t.length))continue e}else{var u=a.toLowerCase().indexOf(n);if(u>-1)d=u;else for(var m=0;m<t.length;m++){var f=a.indexOf(n[m],p+1),g=a.indexOf(o[m],p+1);if((c=f>=0&&(g<0||f<g)?f:g)<0)continue e;(l=c-p-1)>0&&(-1===p&&(d+=10),d+=l,h|=1<<m),p=c}}s.matchMask=h,s.exactMatch=d?0:1,s.$score=(s.score||0)-d,i.push(s)}}return i},e}();t.Autocomplete=m,t.CompletionProvider=f,t.FilteredList=g})),ace.define("ace/ext/command_bar",["require","exports","module","ace/tooltip","ace/lib/event_emitter","ace/lib/lang","ace/lib/dom","ace/lib/oop","ace/lib/useragent"],(function(e,t,i){var o=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,i=t&&e[t],o=0;if(i)return i.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},n=e("../tooltip").Tooltip,s=e("../lib/event_emitter").EventEmitter,r=e("../lib/lang"),a=e("../lib/dom"),c=e("../lib/oop"),l=e("../lib/useragent"),p="command_bar_tooltip_button",h="command_bar_button_value",d="command_bar_button_caption",u="command_bar_keybinding",m="command_bar_tooltip",f="MoreOptionsButton",g=function(e,t){return t.row>e.row||t.row===e.row&&t.column>e.column?e:t},v={Ctrl:{mac:"^"},Option:{mac:"\u2325"},Command:{mac:"\u2318"},Cmd:{mac:"\u2318"},Shift:"\u21e7",Left:"\u2190",Right:"\u2192",Up:"\u2191",Down:"\u2193"},b=function(){function e(e,t){var i,s;t=t||{},this.parentNode=e,this.tooltip=new n(this.parentNode),this.moreOptions=new n(this.parentNode),this.maxElementsOnTooltip=t.maxElementsOnTooltip||4,this.$alwaysShow=t.alwaysShow||!1,this.eventListeners={},this.elements={},this.commands={},this.tooltipEl=a.buildDom(["div",{class:m}],this.tooltip.getElement()),this.moreOptionsEl=a.buildDom(["div",{class:m+" tooltip_more_options"}],this.moreOptions.getElement()),this.$showTooltipTimer=r.delayedCall(this.$showTooltip.bind(this),t.showDelay||100),this.$hideTooltipTimer=r.delayedCall(this.$hideTooltip.bind(this),t.hideDelay||100),this.$tooltipEnter=this.$tooltipEnter.bind(this),this.$onMouseMove=this.$onMouseMove.bind(this),this.$onChangeScroll=this.$onChangeScroll.bind(this),this.$onEditorChangeSession=this.$onEditorChangeSession.bind(this),this.$scheduleTooltipForHide=this.$scheduleTooltipForHide.bind(this),this.$preventMouseEvent=this.$preventMouseEvent.bind(this);try{for(var c=o(["mousedown","mouseup","click"]),l=c.next();!l.done;l=c.next()){var p=l.value;this.tooltip.getElement().addEventListener(p,this.$preventMouseEvent),this.moreOptions.getElement().addEventListener(p,this.$preventMouseEvent)}}catch(h){i={error:h}}finally{try{l&&!l.done&&(s=c.return)&&s.call(c)}finally{if(i)throw i.error}}}return e.prototype.registerCommand=function(e,t){var i=Object.keys(this.commands).length<this.maxElementsOnTooltip;!i&&!this.elements[f]&&this.$createCommand(f,{name:"\xb7\xb7\xb7",exec:function(){this.$shouldHideMoreOptions=!1,this.$setMoreOptionsVisibility(!this.isMoreOptionsShown())}.bind(this),type:"checkbox",getValue:function(){return this.isMoreOptionsShown()}.bind(this),enabled:!0},!0),this.$createCommand(e,t,i),this.isShown()&&this.updatePosition()},e.prototype.isShown=function(){return!!this.tooltip&&this.tooltip.isOpen},e.prototype.isMoreOptionsShown=function(){return!!this.moreOptions&&this.moreOptions.isOpen},e.prototype.getAlwaysShow=function(){return this.$alwaysShow},e.prototype.setAlwaysShow=function(e){this.$alwaysShow=e,this.$updateOnHoverHandlers(!this.$alwaysShow),this._signal("alwaysShow",this.$alwaysShow)},e.prototype.attach=function(e){!e||this.isShown()&&this.editor===e||(this.detach(),this.editor=e,this.editor.on("changeSession",this.$onEditorChangeSession),this.editor.session&&(this.editor.session.on("changeScrollLeft",this.$onChangeScroll),this.editor.session.on("changeScrollTop",this.$onChangeScroll)),this.getAlwaysShow()?this.$showTooltip():this.$updateOnHoverHandlers(!0))},e.prototype.updatePosition=function(){if(this.editor){var e,t=this.editor.renderer;if((e=this.editor.selection.getAllRanges?this.editor.selection.getAllRanges():[this.editor.getSelectionRange()]).length){for(var i,o=g(e[0].start,e[0].end),n=0;i=e[n];n++)o=g(o,g(i.start,i.end));var s=t.$cursorLayer.getPixelPosition(o,!0),r=this.tooltip.getElement(),a=window.innerWidth,c=window.innerHeight,l=this.editor.container.getBoundingClientRect();s.top+=l.top-t.layerConfig.offset,s.left+=l.left+t.gutterWidth-t.scrollLeft;var p=s.top>=l.top&&s.top<=l.bottom&&s.left>=l.left+t.gutterWidth&&s.left<=l.right;if(p||!this.isShown())if(p&&!this.isShown()&&this.getAlwaysShow())this.$showTooltip();else{var h=s.top-r.offsetHeight,d=Math.min(a-r.offsetWidth,s.left);if(h>=0&&h+r.offsetHeight<=c&&d>=0&&d+r.offsetWidth<=a){if(this.tooltip.setPosition(d,h),this.isMoreOptionsShown()){h+=r.offsetHeight,d=this.elements[f].getBoundingClientRect().left;var u=this.moreOptions.getElement();c=window.innerHeight;h+u.offsetHeight>c&&(h-=r.offsetHeight+u.offsetHeight),d+u.offsetWidth>a&&(d=a-u.offsetWidth),this.moreOptions.setPosition(d,h)}}else this.$hideTooltip()}else this.$hideTooltip()}}},e.prototype.update=function(){Object.keys(this.elements).forEach(this.$updateElement.bind(this))},e.prototype.detach=function(){this.tooltip.hide(),this.moreOptions.hide(),this.$updateOnHoverHandlers(!1),this.editor&&(this.editor.off("changeSession",this.$onEditorChangeSession),this.editor.session&&(this.editor.session.off("changeScrollLeft",this.$onChangeScroll),this.editor.session.off("changeScrollTop",this.$onChangeScroll))),this.$mouseInTooltip=!1,this.editor=null},e.prototype.destroy=function(){this.tooltip&&this.moreOptions&&(this.detach(),this.tooltip.destroy(),this.moreOptions.destroy()),this.eventListeners={},this.commands={},this.elements={},this.tooltip=this.moreOptions=this.parentNode=null},e.prototype.$createCommand=function(e,t,i){var o,n=i?this.tooltipEl:this.moreOptionsEl,s=[],r=t.bindKey;r&&("object"==typeof r&&(r=l.isMac?r.mac:r.win),s=(s=(r=r.split("|")[0]).split("-")).map((function(e){if(v[e]){if("string"==typeof v[e])return v[e];if(l.isMac&&v[e].mac)return v[e].mac}return e}))),i&&t.iconCssClass?o=["div",{class:["ace_icon_svg",t.iconCssClass].join(" "),"aria-label":t.name+" ("+t.bindKey+")"}]:(o=[["div",{class:h}],["div",{class:d},t.name]],s.length&&o.push(["div",{class:u},s.map((function(e){return["div",e]}))])),a.buildDom(["div",{class:[p,t.cssClass||""].join(" "),ref:e},o],n,this.elements),this.commands[e]=t;var c=function(i){this.editor&&this.editor.focus(),this.$shouldHideMoreOptions=this.isMoreOptionsShown(),!this.elements[e].disabled&&t.exec&&t.exec(this.editor),this.$shouldHideMoreOptions&&this.$setMoreOptionsVisibility(!1),this.update(),i.preventDefault()}.bind(this);this.eventListeners[e]=c,this.elements[e].addEventListener("click",c.bind(this)),this.$updateElement(e)},e.prototype.$setMoreOptionsVisibility=function(e){e?(this.moreOptions.setTheme(this.editor.renderer.theme),this.moreOptions.setClassName(m+"_wrapper"),this.moreOptions.show(),this.update(),this.updatePosition()):this.moreOptions.hide()},e.prototype.$onEditorChangeSession=function(e){e.oldSession&&(e.oldSession.off("changeScrollTop",this.$onChangeScroll),e.oldSession.off("changeScrollLeft",this.$onChangeScroll)),this.detach()},e.prototype.$onChangeScroll=function(){this.editor.renderer&&(this.isShown()||this.getAlwaysShow())&&this.editor.renderer.once("afterRender",this.updatePosition.bind(this))},e.prototype.$onMouseMove=function(e){if(!this.$mouseInTooltip){var t=this.editor.getCursorPosition(),i=this.editor.renderer.textToScreenCoordinates(t.row,t.column),o=this.editor.renderer.lineHeight;e.clientY>=i.pageY&&e.clientY<i.pageY+o?(!this.isShown()&&!this.$showTooltipTimer.isPending()&&this.$showTooltipTimer.delay(),this.$hideTooltipTimer.isPending()&&this.$hideTooltipTimer.cancel()):(this.isShown()&&!this.$hideTooltipTimer.isPending()&&this.$hideTooltipTimer.delay(),this.$showTooltipTimer.isPending()&&this.$showTooltipTimer.cancel())}},e.prototype.$preventMouseEvent=function(e){this.editor&&this.editor.focus(),e.preventDefault()},e.prototype.$scheduleTooltipForHide=function(){this.$mouseInTooltip=!1,this.$showTooltipTimer.cancel(),this.$hideTooltipTimer.delay()},e.prototype.$tooltipEnter=function(){this.$mouseInTooltip=!0,this.$showTooltipTimer.isPending()&&this.$showTooltipTimer.cancel(),this.$hideTooltipTimer.isPending()&&this.$hideTooltipTimer.cancel()},e.prototype.$updateOnHoverHandlers=function(e){var t=this.tooltip.getElement(),i=this.moreOptions.getElement();e?(this.editor&&(this.editor.on("mousemove",this.$onMouseMove),this.editor.renderer.getMouseEventTarget().addEventListener("mouseout",this.$scheduleTooltipForHide,!0)),t.addEventListener("mouseenter",this.$tooltipEnter),t.addEventListener("mouseleave",this.$scheduleTooltipForHide),i.addEventListener("mouseenter",this.$tooltipEnter),i.addEventListener("mouseleave",this.$scheduleTooltipForHide)):(this.editor&&(this.editor.off("mousemove",this.$onMouseMove),this.editor.renderer.getMouseEventTarget().removeEventListener("mouseout",this.$scheduleTooltipForHide,!0)),t.removeEventListener("mouseenter",this.$tooltipEnter),t.removeEventListener("mouseleave",this.$scheduleTooltipForHide),i.removeEventListener("mouseenter",this.$tooltipEnter),i.removeEventListener("mouseleave",this.$scheduleTooltipForHide))},e.prototype.$showTooltip=function(){this.isShown()||(this.tooltip.setTheme(this.editor.renderer.theme),this.tooltip.setClassName(m+"_wrapper"),this.tooltip.show(),this.update(),this.updatePosition(),this._signal("show"))},e.prototype.$hideTooltip=function(){this.$mouseInTooltip=!1,this.isShown()&&(this.moreOptions.hide(),this.tooltip.hide(),this._signal("hide"))},e.prototype.$updateElement=function(e){var t=this.commands[e];if(t){var i=this.elements[e],o=t.enabled;if("function"==typeof o&&(o=o(this.editor)),"function"==typeof t.getValue){var n=t.getValue(this.editor);if("text"===t.type)i.textContent=n;else if("checkbox"===t.type){var s=n?a.addCssClass:a.removeCssClass,r=i.parentElement===this.tooltipEl;i.ariaChecked=n,r?s(i,"ace_selected"):s(i=i.querySelector("."+h),"ace_checkmark")}}o&&i.disabled?(a.removeCssClass(i,"ace_disabled"),i.ariaDisabled=i.disabled=!1,i.removeAttribute("disabled")):!o&&!i.disabled&&(a.addCssClass(i,"ace_disabled"),i.ariaDisabled=i.disabled=!0,i.setAttribute("disabled",""))}},e}();c.implement(b.prototype,s),a.importCssString("\n.ace_tooltip.".concat(m,"_wrapper {\n padding: 0;\n}\n\n.ace_tooltip .").concat(m," {\n padding: 1px 5px;\n display: flex;\n pointer-events: auto;\n}\n\n.ace_tooltip .").concat(m,".tooltip_more_options {\n padding: 1px;\n flex-direction: column;\n}\n\ndiv.").concat(p," {\n display: inline-flex;\n cursor: pointer;\n margin: 1px;\n border-radius: 2px;\n padding: 2px 5px;\n align-items: center;\n}\n\ndiv.").concat(p,".ace_selected,\ndiv.").concat(p,":hover:not(.ace_disabled) {\n background-color: rgba(0, 0, 0, 0.1);\n}\n\ndiv.").concat(p,".ace_disabled {\n color: #777;\n pointer-events: none;\n}\n\ndiv.").concat(p," .ace_icon_svg {\n height: 12px;\n background-color: #000;\n}\n\ndiv.").concat(p,".ace_disabled .ace_icon_svg {\n background-color: #777;\n}\n\n.").concat(m,".tooltip_more_options .").concat(p," {\n display: flex;\n}\n\n.").concat(m,".").concat(h," {\n display: none;\n}\n\n.").concat(m,".tooltip_more_options .").concat(h," {\n display: inline-block;\n width: 12px;\n}\n\n.").concat(d," {\n display: inline-block;\n}\n\n.").concat(u," {\n margin: 0 2px;\n display: inline-block;\n font-size: 8px;\n}\n\n.").concat(m,".tooltip_more_options .").concat(u," {\n margin-left: auto;\n}\n\n.").concat(u," div {\n display: inline-block;\n min-width: 8px;\n padding: 2px;\n margin: 0 1px;\n border-radius: 2px;\n background-color: #ccc;\n text-align: center;\n}\n\n.ace_dark.ace_tooltip .").concat(m," {\n background-color: #373737;\n color: #eee;\n}\n\n.ace_dark div.").concat(p,".ace_disabled {\n color: #979797;\n}\n\n.ace_dark div.").concat(p,".ace_selected,\n.ace_dark div.").concat(p,":hover:not(.ace_disabled) {\n background-color: rgba(255, 255, 255, 0.1);\n}\n\n.ace_dark div.").concat(p," .ace_icon_svg {\n background-color: #eee;\n}\n\n.ace_dark div.").concat(p,".ace_disabled .ace_icon_svg {\n background-color: #979797;\n}\n\n.ace_dark .").concat(p,".ace_disabled {\n color: #979797;\n}\n\n.ace_dark .").concat(u," div {\n background-color: #575757;\n}\n\n.ace_checkmark::before {\n content: '\u2713';\n}\n"),"commandbar.css",!1),t.CommandBarTooltip=b,t.TOOLTIP_CLASS_NAME=m,t.BUTTON_CLASS_NAME=p})),ace.define("ace/autocomplete/text_completer",["require","exports","module","ace/range"],(function(e,t,i){function o(e,t){return e.getTextRange(s.fromPoints({row:0,column:0},t)).split(r).length-1}function n(e,t){var i=o(e,t),n=e.getValue().split(r),s=Object.create(null),a=n[i];return n.forEach((function(e,t){if(e&&e!==a){var o=Math.abs(i-t),r=n.length-o;s[e]?s[e]=Math.max(r,s[e]):s[e]=r}})),s}var s=e("../range").Range,r=/[^a-zA-Z_0-9\$\-\u00C0-\u1FFF\u2C00-\uD7FF\w]+/;t.getCompletions=function(e,t,i,o,s){var r=n(t,i);s(null,Object.keys(r).map((function(e){return{caption:e,value:e,score:r[e],meta:"local"}})))}})),ace.define("ace/ext/language_tools",["require","exports","module","ace/snippets","ace/autocomplete","ace/config","ace/lib/lang","ace/autocomplete/util","ace/autocomplete/text_completer","ace/editor","ace/config"],(function(e,t,i){"use strict";var o=e("../snippets").snippetManager,n=e("../autocomplete").Autocomplete,s=e("../config"),r=e("../lib/lang"),a=e("../autocomplete/util"),c=e("../autocomplete/text_completer"),l={getCompletions:function(e,t,i,o,n){if(t.$mode.completer)return t.$mode.completer.getCompletions(e,t,i,o,n);var s=e.session.getState(i.row),r=t.$mode.getCompletions(s,t,i,o);r=r.map((function(e){return e.completerId=l.id,e})),n(null,r)},id:"keywordCompleter"},p=function(e){var t={};return e.replace(/\${(\d+)(:(.*?))?}/g,(function(e,i,o,n){return t[i]=n||""})).replace(/\$(\d+?)/g,(function(e,i){return t[i]}))},h={getCompletions:function(e,t,i,n,s){var r=[],a=t.getTokenAt(i.row,i.column);a&&a.type.match(/(tag-name|tag-open|tag-whitespace|attribute-name|attribute-value)\.xml$/)?r.push("html-tag"):r=o.getActiveScopes(e);var c=o.snippetMap,l=[];r.forEach((function(e){for(var t=c[e]||[],i=t.length;i--;){var o=t[i],n=o.name||o.tabTrigger;n&&l.push({caption:n,snippet:o.content,meta:o.tabTrigger&&!o.name?o.tabTrigger+"\u21e5 ":"snippet",completerId:h.id})}}),this),s(null,l)},getDocTooltip:function(e){e.snippet&&!e.docHTML&&(e.docHTML=["<b>",r.escapeHTML(e.caption),"</b>","<hr></hr>",r.escapeHTML(p(e.snippet))].join(""))},id:"snippetCompleter"},d=[h,c,l];t.setCompleters=function(e){d.length=0,e&&d.push.apply(d,e)},t.addCompleter=function(e){d.push(e)},t.textCompleter=c,t.keyWordCompleter=l,t.snippetCompleter=h;var u,m={name:"expandSnippet",exec:function(e){return o.expandWithTab(e)},bindKey:"Tab"},f=function(e,t){g(t.session.$mode)},g=function(e){"string"==typeof e&&(e=s.$modes[e]),e&&(o.files||(o.files={}),v(e.$id,e.snippetFileId),e.modes&&e.modes.forEach(g))},v=function(e,t){t&&e&&!o.files[e]&&(o.files[e]={},s.loadModule(t,(function(t){t&&(o.files[e]=t,!t.snippets&&t.snippetText&&(t.snippets=o.parseSnippetFile(t.snippetText)),o.register(t.snippets||[],t.scope),t.includeScopes&&(o.snippetMap[t.scope].includeScopes=t.includeScopes,t.includeScopes.forEach((function(e){g("ace/mode/"+e)}))))})))},b=function(e){var t=e.editor,i=t.completer&&t.completer.activated;if("backspace"===e.command.name)i&&!a.getCompletionPrefix(t)&&t.completer.detach();else if("insertstring"===e.command.name&&!i){u=e;var o=e.editor.$liveAutocompletionDelay;o?y.delay(o):x(e)}},y=r.delayedCall((function(){x(u)}),0),x=function(e){var t=e.editor,i=a.getCompletionPrefix(t),o=a.triggerAutocomplete(t);if(i&&i.length>=t.$liveAutocompletionThreshold||o){var s=n.for(t);s.autoShown=!0,s.showPopup(t)}},w=e("../editor").Editor;e("../config").defineOptions(w.prototype,"editor",{enableBasicAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:d),this.commands.addCommand(n.startCommand)):this.commands.removeCommand(n.startCommand)},value:!1},enableLiveAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:d),this.commands.on("afterExec",b)):this.commands.off("afterExec",b)},value:!1},liveAutocompletionDelay:{initialValue:0},liveAutocompletionThreshold:{initialValue:0},enableSnippets:{set:function(e){e?(this.commands.addCommand(m),this.on("changeMode",f),f(0,this)):(this.commands.removeCommand(m),this.off("changeMode",f))},value:!1}})})),ace.define("ace/ext/inline_autocomplete",["require","exports","module","ace/keyboard/hash_handler","ace/autocomplete/inline","ace/autocomplete","ace/autocomplete","ace/editor","ace/autocomplete/util","ace/lib/dom","ace/lib/lang","ace/ext/command_bar","ace/ext/command_bar","ace/ext/language_tools","ace/ext/language_tools","ace/ext/language_tools","ace/config"],(function(e,t,i){"use strict";var o=e("../keyboard/hash_handler").HashHandler,n=e("../autocomplete/inline").AceInline,s=e("../autocomplete").FilteredList,r=e("../autocomplete").CompletionProvider,a=e("../editor").Editor,c=e("../autocomplete/util"),l=e("../lib/dom"),p=e("../lib/lang"),h=e("./command_bar").CommandBarTooltip,d=e("./command_bar").BUTTON_CLASS_NAME,u=e("./language_tools").snippetCompleter,m=e("./language_tools").textCompleter,f=e("./language_tools").keyWordCompleter,g=function(e,t){t.completer&&t.completer.destroy()},v=function(){function e(e){this.editor=e,this.keyboardHandler=new o(this.commands),this.$index=-1,this.blurListener=this.blurListener.bind(this),this.changeListener=this.changeListener.bind(this),this.changeTimer=p.delayedCall(function(){this.updateCompletions()}.bind(this))}return e.prototype.getInlineRenderer=function(){return this.inlineRenderer||(this.inlineRenderer=new n),this.inlineRenderer},e.prototype.getInlineTooltip=function(){return this.inlineTooltip||(this.inlineTooltip=e.createInlineTooltip(document.body||document.documentElement)),this.inlineTooltip},e.prototype.show=function(e){this.activated=!0,this.editor.completer!==this&&(this.editor.completer&&this.editor.completer.detach(),this.editor.completer=this),this.editor.on("changeSelection",this.changeListener),this.editor.on("blur",this.blurListener),this.updateCompletions(e)},e.prototype.$open=function(){this.editor.textInput.setAriaOptions&&this.editor.textInput.setAriaOptions({}),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler),this.getInlineTooltip().attach(this.editor),-1===this.$index?this.setIndex(0):this.$showCompletion(),this.changeTimer.cancel()},e.prototype.insertMatch=function(){var e=this.getCompletionProvider().insertByIndex(this.editor,this.$index);return this.detach(),e},e.prototype.changeListener=function(e){var t=this.editor.selection.lead;(t.row!=this.base.row||t.column<this.base.column)&&this.detach(),this.activated?this.changeTimer.schedule():this.detach()},e.prototype.blurListener=function(e){this.detach()},e.prototype.goTo=function(e){if(this.completions&&this.completions.filtered){var t=this.completions.filtered.length;switch(e.toLowerCase()){case"prev":this.setIndex((this.$index-1+t)%t);break;case"next":this.setIndex((this.$index+1+t)%t);break;case"first":this.setIndex(0);break;case"last":this.setIndex(this.completions.filtered.length-1)}}},e.prototype.getLength=function(){return this.completions&&this.completions.filtered?this.completions.filtered.length:0},e.prototype.getData=function(e){return void 0==e||null===e?this.completions.filtered[this.$index]:this.completions.filtered[e]},e.prototype.getIndex=function(){return this.$index},e.prototype.isOpen=function(){return this.$index>=0},e.prototype.setIndex=function(e){if(this.completions&&this.completions.filtered){var t=Math.max(-1,Math.min(this.completions.filtered.length-1,e));t!==this.$index&&(this.$index=t,this.$showCompletion())}},e.prototype.getCompletionProvider=function(e){return this.completionProvider||(this.completionProvider=new r(e)),this.completionProvider},e.prototype.$showCompletion=function(){this.getInlineRenderer().show(this.editor,this.completions.filtered[this.$index],this.completions.filterText)||this.getInlineRenderer().hide(),this.inlineTooltip&&this.inlineTooltip.isShown()&&this.inlineTooltip.update()},e.prototype.$updatePrefix=function(){var e=this.editor.getCursorPosition(),t=this.editor.session.getTextRange({start:this.base,end:e});return this.completions.setFilter(t),this.completions.filtered.length&&(1!=this.completions.filtered.length||this.completions.filtered[0].value!=t||this.completions.filtered[0].snippet)?(this.$open(this.editor,t),t):this.detach()},e.prototype.updateCompletions=function(e){var t="";if(e&&e.matches){var i=this.editor.getSelectionRange().start;return this.base=this.editor.session.doc.createAnchor(i.row,i.column),this.base.$insertRight=!0,this.completions=new s(e.matches),this.$open(this.editor,"")}this.base&&this.completions&&(t=this.$updatePrefix());var o=this.editor.getSession();i=this.editor.getCursorPosition(),t=c.getCompletionPrefix(this.editor);this.base=o.doc.createAnchor(i.row,i.column-t.length),this.base.$insertRight=!0;e={exactMatch:!0,ignoreCaption:!0};this.getCompletionProvider({prefix:t,base:this.base,pos:i}).provideCompletions(this.editor,e,function(e,t,i){var o=t.filtered,n=c.getCompletionPrefix(this.editor);if(i){if(!o.length)return this.detach();if(1==o.length&&o[0].value==n&&!o[0].snippet)return this.detach()}this.completions=t,this.$open(this.editor,n)}.bind(this))},e.prototype.detach=function(){this.editor&&(this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.off("changeSelection",this.changeListener),this.editor.off("blur",this.blurListener)),this.changeTimer.cancel(),this.inlineTooltip&&this.inlineTooltip.detach(),this.setIndex(-1),this.completionProvider&&this.completionProvider.detach(),this.inlineRenderer&&this.inlineRenderer.isOpen()&&this.inlineRenderer.hide(),this.base&&this.base.detach(),this.activated=!1,this.completionProvider=this.completions=this.base=null},e.prototype.destroy=function(){this.detach(),this.inlineRenderer&&this.inlineRenderer.destroy(),this.inlineTooltip&&this.inlineTooltip.destroy(),this.editor&&this.editor.completer==this&&(this.editor.off("destroy",g),this.editor.completer=null),this.inlineTooltip=this.editor=this.inlineRenderer=null},e}();v.prototype.commands={Previous:{bindKey:"Alt-[",name:"Previous",exec:function(e){e.completer.goTo("prev")}},Next:{bindKey:"Alt-]",name:"Next",exec:function(e){e.completer.goTo("next")}},Accept:{bindKey:{win:"Tab|Ctrl-Right",mac:"Tab|Cmd-Right"},name:"Accept",exec:function(e){return e.completer.insertMatch()}},Close:{bindKey:"Esc",name:"Close",exec:function(e){e.completer.detach()}}},v.for=function(e){return e.completer instanceof v||(e.completer&&(e.completer.destroy(),e.completer=null),e.completer=new v(e),e.once("destroy",g)),e.completer},v.startCommand={name:"startInlineAutocomplete",exec:function(e,t){v.for(e).show(t)},bindKey:{win:"Alt-C",mac:"Option-C"}};var b=[u,m,f];e("../config").defineOptions(a.prototype,"editor",{enableInlineAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:b),this.commands.addCommand(v.startCommand)):this.commands.removeCommand(v.startCommand)},value:!1}}),v.createInlineTooltip=function(e){var t=new h(e);return t.registerCommand("Previous",Object.assign({},v.prototype.commands.Previous,{enabled:!0,type:"button",iconCssClass:"ace_arrow_rotated"})),t.registerCommand("Position",{enabled:!1,getValue:function(e){return e?[e.completer.getIndex()+1,e.completer.getLength()].join("/"):""},type:"text",cssClass:"completion_position"}),t.registerCommand("Next",Object.assign({},v.prototype.commands.Next,{enabled:!0,type:"button",iconCssClass:"ace_arrow"})),t.registerCommand("Accept",Object.assign({},v.prototype.commands.Accept,{enabled:function(e){return!!e&&e.completer.getIndex()>=0},type:"button"})),t.registerCommand("ShowTooltip",{name:"Always Show Tooltip",exec:function(){t.setAlwaysShow(!t.getAlwaysShow())},enabled:!0,getValue:function(){return t.getAlwaysShow()},type:"checkbox"}),t},l.importCssString('\n\n.ace_icon_svg.ace_arrow,\n.ace_icon_svg.ace_arrow_rotated {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTUuODM3MDEgMTVMNC41ODc1MSAxMy43MTU1TDEwLjE0NjggOEw0LjU4NzUxIDIuMjg0NDZMNS44MzcwMSAxTDEyLjY0NjUgOEw1LjgzNzAxIDE1WiIgZmlsbD0iYmxhY2siLz48L3N2Zz4=");\n}\n\n.ace_icon_svg.ace_arrow_rotated {\n transform: rotate(180deg);\n}\n\ndiv.'.concat(d,".completion_position {\n padding: 0;\n}\n"),"inlineautocomplete.css",!1),t.InlineAutocomplete=v})),ace.require(["ace/ext/inline_autocomplete"],(function(e){"object"==typeof module&&"object"==typeof exports&&module&&(module.exports=e)}));