!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(Ze){"use strict";Ze.defineMode("javascript",function(e,l){var t,r,n,a,f=e.indentUnit,d=l.statementIndent,i=l.jsonld,o=l.json||i,u=l.typescript,p=l.wordCharacters||/[\w$\xa1-\uffff]/,c=(t=s("keyword a"),r=s("keyword b"),n=s("keyword c"),a=s("keyword d"),e=s("operator"),{if:s("if"),while:t,with:t,else:r,do:r,try:r,finally:r,return:a,break:a,continue:a,new:s("new"),delete:n,void:n,throw:n,debugger:s("debugger"),var:s("var"),const:s("var"),let:s("var"),function:s("function"),catch:s("catch"),for:s("for"),switch:s("switch"),case:s("case"),default:s("default"),in:e,typeof:e,instanceof:e,true:e={type:"atom",style:"atom"},false:e,null:e,undefined:e,NaN:e,Infinity:e,this:s("this"),class:s("class"),super:s("atom"),yield:n,export:s("export"),import:s("import"),extends:n,await:n});function s(e){return{type:e,style:"keyword"}}var m,v,k=/[+\-*&%=<>!?|~^@]/,y=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function w(e,t,r){return m=e,v=r,t}function b(e,t){var a,r=e.next();if('"'==r||"'"==r)return t.tokenize=(a=r,function(e,t){var r,n=!1;if(i&&"@"==e.peek()&&e.match(y))return t.tokenize=b,w("jsonld-keyword","meta");for(;null!=(r=e.next())&&(r!=a||n);)n=!n&&"\\"==r;return n||(t.tokenize=b),w("string","string")}),t.tokenize(e,t);if("."==r&&e.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return w("number","number");if("."==r&&e.match(".."))return w("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(r))return w(r);if("="==r&&e.eat(">"))return w("=>","operator");if("0"==r&&e.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return w("number","number");if(/\d/.test(r))return e.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),w("number","number");if("/"==r)return e.eat("*")?(t.tokenize=x)(e,t):e.eat("/")?(e.skipToEnd(),w("comment","comment")):Ye(e,t,1)?(function(e){for(var t,r=!1,n=!1;null!=(t=e.next());){if(!r){if("/"==t&&!n)return;"["==t?n=!0:n&&"]"==t&&(n=!1)}r=!r&&"\\"==t}}(e),e.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),w("regexp","string-2")):(e.eat("="),w("operator","operator",e.current()));if("`"==r)return(t.tokenize=h)(e,t);if("#"==r&&"!"==e.peek())return e.skipToEnd(),w("meta","meta");if("#"==r&&e.eatWhile(p))return w("variable","property");if("<"==r&&e.match("!--")||"-"==r&&e.match("->")&&!/\S/.test(e.string.slice(0,e.start)))return e.skipToEnd(),w("comment","comment");if(k.test(r))return">"==r&&t.lexical&&">"==t.lexical.type||(e.eat("=")?"!"!=r&&"="!=r||e.eat("="):/[<>*+\-|&?]/.test(r)&&(e.eat(r),">"==r&&e.eat(r))),"?"==r&&e.eat(".")?w("."):w("operator","operator",e.current());if(p.test(r)){e.eatWhile(p);r=e.current();if("."!=t.lastType){if(c.propertyIsEnumerable(r)){t=c[r];return w(t.type,t.style,r)}if("async"==r&&e.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return w("async","keyword",r)}return w("variable","variable",r)}}function x(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=b;break}n="*"==r}return w("comment","comment")}function h(e,t){for(var r,n=!1;null!=(r=e.next());){if(!n&&("`"==r||"$"==r&&e.eat("{"))){t.tokenize=b;break}n=!n&&"\\"==r}return w("quasi","string-2",e.current())}var g="([{}])";function j(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var r,n=e.string.indexOf("=>",e.start);if(!(n<0)){!u||(r=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,n)))&&(n=r.index);for(var a=0,i=!1,o=n-1;0<=o;--o){var c=e.string.charAt(o),s=g.indexOf(c);if(0<=s&&s<3){if(!a){++o;break}if(0==--a){"("==c&&(i=!0);break}}else if(3<=s&&s<6)++a;else if(p.test(c))i=!0;else if(/["'\/`]/.test(c))for(;;--o){if(0==o)return;if(e.string.charAt(o-1)==c&&"\\"!=e.string.charAt(o-2)){o--;break}}else if(i&&!a){++o;break}}i&&!a&&(t.fatArrowAt=o)}}var M={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0};function A(e,t,r,n,a,i){this.indented=e,this.column=t,this.type=r,this.prev=a,this.info=i,null!=n&&(this.align=n)}function V(e,t,r,n,a){var i=e.cc;for(E.state=e,E.stream=a,E.marked=null,E.cc=i,E.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;)if((i.length?i.pop():o?D:F)(r,n)){for(;i.length&&i[i.length-1].lex;)i.pop()();return E.marked?E.marked:"variable"==r&&function(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return 1;for(var n=e.context;n;n=n.prev)for(r=n.vars;r;r=r.next)if(r.name==t)return 1}(e,n)?"variable-2":t}}var E={state:null,column:null,marked:null,cc:null};function z(){for(var e=arguments.length-1;0<=e;e--)E.cc.push(arguments[e])}function I(){return z.apply(null,arguments),!0}function T(e,t){for(var r=t;r;r=r.next)if(r.name==e)return 1}function $(e){var t=E.state;if(E.marked="def",t.context)if("var"==t.lexical.info&&t.context&&t.context.block){var r=function e(t,r){{if(r){if(r.block){var n=e(t,r.prev);return n?n==r.prev?r:new _(n,r.vars,!0):null}return T(t,r.vars)?r:new _(r.prev,new O(t,r.vars),!1)}return null}}(e,t.context);if(null!=r)return void(t.context=r)}else if(!T(e,t.localVars))return void(t.localVars=new O(e,t.localVars));l.globalVars&&!T(e,t.globalVars)&&(t.globalVars=new O(e,t.globalVars))}function C(e){return"public"==e||"private"==e||"protected"==e||"abstract"==e||"readonly"==e}function _(e,t,r){this.prev=e,this.vars=t,this.block=r}function O(e,t){this.name=e,this.next=t}var q=new O("this",new O("arguments",null));function S(){E.state.context=new _(E.state.context,E.state.localVars,!1),E.state.localVars=q}function P(){E.state.context=new _(E.state.context,E.state.localVars,!0),E.state.localVars=null}function N(){E.state.localVars=E.state.context.vars,E.state.context=E.state.context.prev}function U(n,a){function e(){var e=E.state,t=e.indented;if("stat"==e.lexical.type)t=e.lexical.indented;else for(var r=e.lexical;r&&")"==r.type&&r.align;r=r.prev)t=r.indented;e.lexical=new A(t,E.stream.column(),n,null,e.lexical,a)}return e.lex=!0,e}function W(){var e=E.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function B(r){return function e(t){return t==r?I():";"==r||"}"==t||")"==t||"]"==t?z():I(e)}}function F(e,t){return"var"==e?I(U("vardef",t),je,B(";"),W):"keyword a"==e?I(U("form"),J,F,W):"keyword b"==e?I(U("form"),F,W):"keyword d"==e?E.stream.match(/^\s*$/,!1)?I():I(U("stat"),L,B(";"),W):"debugger"==e?I(B(";")):"{"==e?I(U("}"),P,le,W,N):";"==e?I():"if"==e?("else"==E.state.lexical.info&&E.state.cc[E.state.cc.length-1]==W&&E.state.cc.pop()(),I(U("form"),J,F,W,Ie)):"function"==e?I(_e):"for"==e?I(U("form"),Te,F,W):"class"==e||u&&"interface"==t?(E.marked="keyword",I(U("form","class"==e?e:t),Ne,W)):"variable"==e?u&&"declare"==t?(E.marked="keyword",I(F)):u&&("module"==t||"enum"==t||"type"==t)&&E.stream.match(/^\s*\w/,!1)?(E.marked="keyword","enum"==t?I(Re):"type"==t?I(qe,B("operator"),ve,B(";")):I(U("form"),Me,B("{"),U("}"),le,W,W)):u&&"namespace"==t?(E.marked="keyword",I(U("form"),D,F,W)):u&&"abstract"==t?(E.marked="keyword",I(F)):I(U("stat"),ne):"switch"==e?I(U("form"),J,B("{"),U("}","switch"),P,le,W,W,N):"case"==e?I(D,B(":")):"default"==e?I(B(":")):"catch"==e?I(U("form"),S,H,F,W,N):"export"==e?I(U("stat"),Fe,W):"import"==e?I(U("stat"),De,W):"async"==e?I(F):"@"==t?I(D,F):z(U("stat"),D,B(";"),W)}function H(e){if("("==e)return I(Se,B(")"))}function D(e,t){return K(e,t,!1)}function G(e,t){return K(e,t,!0)}function J(e){return"("!=e?z():I(U(")"),L,B(")"),W)}function K(e,t,r){if(E.state.fatArrowAt==E.stream.start){var n=r?ee:Z;if("("==e)return I(S,U(")"),se(Se,")"),W,B("=>"),n,N);if("variable"==e)return z(S,Me,B("=>"),n,N)}var a,n=r?R:Q;return M.hasOwnProperty(e)?I(n):"function"==e?I(_e,n):"class"==e||u&&"interface"==t?(E.marked="keyword",I(U("form"),Pe,W)):"keyword c"==e||"async"==e?I(r?G:D):"("==e?I(U(")"),L,B(")"),W,n):"operator"==e||"spread"==e?I(r?G:D):"["==e?I(U("]"),Qe,W,n):"{"==e?ue(ie,"}",null,n):"quasi"==e?z(X,n):"new"==e?I((a=r,function(e){return"."==e?I(a?re:te):"variable"==e&&u?I(xe,a?R:Q):z(a?G:D)})):"import"==e?I(D):I()}function L(e){return e.match(/[;\}\)\],]/)?z():z(D)}function Q(e,t){return","==e?I(L):R(e,t,!1)}function R(e,t,r){var n=0==r?Q:R,a=0==r?D:G;return"=>"==e?I(S,r?ee:Z,N):"operator"==e?/\+\+|--/.test(t)||u&&"!"==t?I(n):u&&"<"==t&&E.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?I(U(">"),se(ve,">"),W,n):"?"==t?I(D,B(":"),a):I(a):"quasi"==e?z(X,n):";"!=e?"("==e?ue(G,")","call",n):"."==e?I(ae,n):"["==e?I(U("]"),L,B("]"),W,n):u&&"as"==t?(E.marked="keyword",I(ve,n)):"regexp"==e?(E.state.lastType=E.marked="operator",E.stream.backUp(E.stream.pos-E.stream.start-1),I(a)):void 0:void 0}function X(e,t){return"quasi"!=e?z():"${"!=t.slice(t.length-2)?I(X):I(D,Y)}function Y(e){if("}"==e)return E.marked="string-2",E.state.tokenize=h,I(X)}function Z(e){return j(E.stream,E.state),z("{"==e?F:D)}function ee(e){return j(E.stream,E.state),z("{"==e?F:G)}function te(e,t){if("target"==t)return E.marked="keyword",I(Q)}function re(e,t){if("target"==t)return E.marked="keyword",I(R)}function ne(e){return":"==e?I(W,F):z(Q,B(";"),W)}function ae(e){if("variable"==e)return E.marked="property",I()}function ie(e,t){return"async"==e?(E.marked="property",I(ie)):"variable"!=e&&"keyword"!=E.style?"number"==e||"string"==e?(E.marked=i?"property":E.style+" property",I(ce)):"jsonld-keyword"==e?I(ce):u&&C(t)?(E.marked="keyword",I(ie)):"["==e?I(D,fe,B("]"),ce):"spread"==e?I(G,ce):"*"==t?(E.marked="keyword",I(ie)):":"==e?z(ce):void 0:(E.marked="property","get"==t||"set"==t?I(oe):(u&&E.state.fatArrowAt==E.stream.start&&(r=E.stream.match(/^\s*:\s*/,!1))&&(E.state.fatArrowAt=E.stream.pos+r[0].length),I(ce)));var r}function oe(e){return"variable"!=e?z(ce):(E.marked="property",I(_e))}function ce(e){return":"==e?I(G):"("==e?z(_e):void 0}function se(n,a,i){function o(e,t){if(i?-1"),ve):void 0}function ke(e){if("=>"==e)return I(ve)}function ye(e,t){return"variable"==e||"keyword"==E.style?(E.marked="property",I(ye)):"?"==t||"number"==e||"string"==e?I(ye):":"==e?I(ve):"["==e?I(B("variable"),de,B("]"),ye):"("==e?z(Oe,ye):void 0}function we(e,t){return"variable"==e&&E.stream.match(/^\s*[?:]/,!1)||"?"==t?I(we):":"==e?I(ve):"spread"==e?I(we):z(ve)}function be(e,t){return"<"==t?I(U(">"),se(ve,">"),W,be):"|"==t||"."==e||"&"==t?I(ve):"["==e?I(ve,B("]"),be):"extends"==t||"implements"==t?(E.marked="keyword",I(ve)):"?"==t?I(ve,B(":"),ve):void 0}function xe(e,t){if("<"==t)return I(U(">"),se(ve,">"),W,be)}function he(){return z(ve,ge)}function ge(e,t){if("="==t)return I(ve)}function je(e,t){return"enum"==t?(E.marked="keyword",I(Re)):z(Me,fe,Ee,ze)}function Me(e,t){return u&&C(t)?(E.marked="keyword",I(Me)):"variable"==e?($(t),I()):"spread"==e?I(Me):"["==e?ue(Ve,"]"):"{"==e?ue(Ae,"}"):void 0}function Ae(e,t){return"variable"!=e||E.stream.match(/^\s*:/,!1)?("variable"==e&&(E.marked="property"),"spread"==e?I(Me):"}"==e?z():"["==e?I(D,B("]"),B(":"),Ae):I(B(":"),Me,Ee)):($(t),I(Ee))}function Ve(){return z(Me,Ee)}function Ee(e,t){if("="==t)return I(G)}function ze(e){if(","==e)return I(je)}function Ie(e,t){if("keyword b"==e&&"else"==t)return I(U("form","else"),F,W)}function Te(e,t){return"await"==t?I(Te):"("==e?I(U(")"),$e,W):void 0}function $e(e){return"var"==e?I(je,Ce):("variable"==e?I:z)(Ce)}function Ce(e,t){return")"==e?I():";"==e?I(Ce):"in"==t||"of"==t?(E.marked="keyword",I(D,Ce)):z(D,Ce)}function _e(e,t){return"*"==t?(E.marked="keyword",I(_e)):"variable"==e?($(t),I(_e)):"("==e?I(S,U(")"),se(Se,")"),W,pe,F,N):u&&"<"==t?I(U(">"),se(he,">"),W,_e):void 0}function Oe(e,t){return"*"==t?(E.marked="keyword",I(Oe)):"variable"==e?($(t),I(Oe)):"("==e?I(S,U(")"),se(Se,")"),W,pe,N):u&&"<"==t?I(U(">"),se(he,">"),W,Oe):void 0}function qe(e,t){return"keyword"==e||"variable"==e?(E.marked="type",I(qe)):"<"==t?I(U(">"),se(he,">"),W):void 0}function Se(e,t){return"@"==t&&I(D,Se),"spread"==e?I(Se):u&&C(t)?(E.marked="keyword",I(Se)):u&&"this"==e?I(fe,Ee):z(Me,fe,Ee)}function Pe(e,t){return("variable"==e?Ne:Ue)(e,t)}function Ne(e,t){if("variable"==e)return $(t),I(Ue)}function Ue(e,t){return"<"==t?I(U(">"),se(he,">"),W,Ue):"extends"==t||"implements"==t||u&&","==e?("implements"==t&&(E.marked="keyword"),I(u?ve:D,Ue)):"{"==e?I(U("}"),We,W):void 0}function We(e,t){return"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t||u&&C(t))&&E.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(E.marked="keyword",I(We)):"variable"==e||"keyword"==E.style?(E.marked="property",I(Be,We)):"number"==e||"string"==e?I(Be,We):"["==e?I(D,fe,B("]"),Be,We):"*"==t?(E.marked="keyword",I(We)):u&&"("==e?z(Oe,We):";"==e||","==e?I(We):"}"==e?I():"@"==t?I(D,We):void 0}function Be(e,t){if("?"==t)return I(Be);if(":"==e)return I(ve,Ee);if("="==t)return I(G);t=E.state.lexical.prev;return z(t&&"interface"==t.info?Oe:_e)}function Fe(e,t){return"*"==t?(E.marked="keyword",I(Le,B(";"))):"default"==t?(E.marked="keyword",I(D,B(";"))):"{"==e?I(se(He,"}"),Le,B(";")):z(F)}function He(e,t){return"as"==t?(E.marked="keyword",I(B("variable"))):"variable"==e?z(G,He):void 0}function De(e){return"string"==e?I():"("==e?z(D):z(Ge,Je,Le)}function Ge(e,t){return"{"==e?ue(Ge,"}"):("variable"==e&&$(t),"*"==t&&(E.marked="keyword"),I(Ke))}function Je(e){if(","==e)return I(Ge,Je)}function Ke(e,t){if("as"==t)return E.marked="keyword",I(Ge)}function Le(e,t){if("from"==t)return E.marked="keyword",I(D)}function Qe(e){return"]"==e?I():z(se(G,"]"))}function Re(){return z(U("form"),Me,B("{"),U("}"),se(Xe,"}"),W,W)}function Xe(){return z(Me,Ee)}function Ye(e,t,r){return t.tokenize==b&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(r||0)))}return W.lex=N.lex=!0,{startState:function(e){e={tokenize:b,lastType:"sof",cc:[],lexical:new A((e||0)-f,0,"block",!1),localVars:l.localVars,context:l.localVars&&new _(null,null,!1),indented:e||0};return l.globalVars&&"object"==typeof l.globalVars&&(e.globalVars=l.globalVars),e},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),j(e,t)),t.tokenize!=x&&e.eatSpace())return null;var r=t.tokenize(e,t);return"comment"==m?r:(t.lastType="operator"!=m||"++"!=v&&"--"!=v?m:"incdec",V(t,r,m,v,e))},indent:function(e,t){if(e.tokenize==x||e.tokenize==h)return Ze.Pass;if(e.tokenize!=b)return 0;var r,n=t&&t.charAt(0),a=e.lexical;if(!/^\s*else\b/.test(t))for(var i=e.cc.length-1;0<=i;--i){var o=e.cc[i];if(o==W)a=a.prev;else if(o!=Ie)break}for(;("stat"==a.type||"form"==a.type)&&("}"==n||(r=e.cc[e.cc.length-1])&&(r==Q||r==R)&&!/^[,\.=+\-*:?[\(]/.test(t));)a=a.prev;d&&")"==a.type&&"stat"==a.prev.type&&(a=a.prev);var c,s=a.type,u=n==s;return"vardef"==s?a.indented+("operator"==e.lastType||","==e.lastType?a.info.length+1:0):"form"==s&&"{"==n?a.indented:"form"==s?a.indented+f:"stat"==s?a.indented+(c=t,"operator"==(s=e).lastType||","==s.lastType||k.test(c.charAt(0))||/[,.]/.test(c.charAt(0))?d||f:0):"switch"!=a.info||u||0==l.doubleIndentSwitch?a.align?a.column+(u?0:1):a.indented+(u?0:f):a.indented+(/^(?:case|default)\b/.test(t)?f:2*f)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:o?null:"/*",blockCommentEnd:o?null:"*/",blockCommentContinue:o?null:" * ",lineComment:o?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:o?"json":"javascript",jsonldMode:i,jsonMode:o,expressionAllowed:Ye,skipExpression:function(e){var t=e.cc[e.cc.length-1];t!=D&&t!=G||e.cc.pop()}}}),Ze.registerHelper("wordChars","javascript",/[\w$]/),Ze.defineMIME("text/javascript","javascript"),Ze.defineMIME("text/ecmascript","javascript"),Ze.defineMIME("application/javascript","javascript"),Ze.defineMIME("application/x-javascript","javascript"),Ze.defineMIME("application/ecmascript","javascript"),Ze.defineMIME("application/json",{name:"javascript",json:!0}),Ze.defineMIME("application/x-json",{name:"javascript",json:!0}),Ze.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),Ze.defineMIME("text/typescript",{name:"javascript",typescript:!0}),Ze.defineMIME("application/typescript",{name:"javascript",typescript:!0})});