# darkify/1.3.0/src/Admin/Framework/assets/js/javascript.js

Darkify – Dark Mode &amp; Night Mode for Website &amp; Admin (Dark Theme Included), version 1.3.0. 724 lines.

- Page: https://pluginprobe.com/plugins/darkify/1.3.0/code/src/Admin/Framework/assets/js/javascript.js
- Raw: https://pluginprobe.com/plugins/darkify/1.3.0/raw/src/Admin/Framework/assets/js/javascript.js
- Modified: 2025-03-21T01:44:12+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/darkify/1.3.0/code/src/Admin/Framework/assets/js/javascript.js#L10-L20`.

```javascript
!(function (e) {
    "object" == typeof exports && "object" == typeof module ? e(require("../../lib/codemirror")) : "function" == typeof define && define.amd ? define(["../../lib/codemirror"], e) : e(CodeMirror);
})(function (e) {
    "use strict";
    e.defineMode("javascript", function (r, t) {
        var n,
            a,
            i = r.indentUnit,
            o = t.statementIndent,
            u = t.jsonld,
            s = t.json || u,
            f = !1 !== t.trackScope,
            c = t.typescript,
            l = t.wordCharacters || /[\w$\xa1-\uffff]/,
            d = (function () {
                function e(e) {
                    return { type: e, style: "keyword" };
                }
                var r = e("keyword a"),
                    t = e("keyword b"),
                    n = e("keyword c"),
                    a = e("keyword d"),
                    i = e("operator"),
                    o = { type: "atom", style: "atom" };
                return {
                    if: e("if"),
                    while: r,
                    with: r,
                    else: t,
                    do: t,
                    try: t,
                    finally: t,
                    return: a,
                    break: a,
                    continue: a,
                    new: e("new"),
                    delete: n,
                    void: n,
                    throw: n,
                    debugger: e("debugger"),
                    var: e("var"),
                    const: e("var"),
                    let: e("var"),
                    function: e("function"),
                    catch: e("catch"),
                    for: e("for"),
                    switch: e("switch"),
                    case: e("case"),
                    default: e("default"),
                    in: i,
                    typeof: i,
                    instanceof: i,
                    true: o,
                    false: o,
                    null: o,
                    undefined: o,
                    NaN: o,
                    Infinity: o,
                    this: e("this"),
                    class: e("class"),
                    super: e("atom"),
                    yield: n,
                    export: e("export"),
                    import: e("import"),
                    extends: n,
                    await: n,
                };
            })(),
            p = /[+\-*&%=<>!?|~^@]/,
            m = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;
        function k(e, r, t) {
            return (n = e), (a = t), r;
        }
        function v(e, r) {
            var t,
                n = e.next();
            if ('"' == n || "'" == n) {
                return (
                    (r.tokenize =
                        ((t = n),
                        function (e, r) {
                            var n,
                                a = !1;
                            if (u && "@" == e.peek() && e.match(m)) return (r.tokenize = v), k("jsonld-keyword", "meta");
                            for (; null != (n = e.next()) && (n != t || a); ) a = !a && "\\" == n;
                            return a || (r.tokenize = v), k("string", "string");
                        })),
                    r.tokenize(e, r)
                );
            }
            if ("." == n && e.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/)) return k("number", "number");
            if ("." == n && e.match("..")) return k("spread", "meta");
            if (/[\[\]{}\(\),;\:\.]/.test(n)) return k(n);
            if ("=" == n && e.eat(">")) return k("=>", "operator");
            else if ("0" == n && e.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)) return k("number", "number");
            else if (/\d/.test(n)) return e.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/), k("number", "number");
            else if ("/" == n)
                return e.eat("*")
                    ? ((r.tokenize = y), y(e, r))
                    : e.eat("/")
                    ? (e.skipToEnd(), k("comment", "comment"))
                    : eJ(e, r, 1)
                    ? ((function e(r) {
                          for (var t, n = !1, a = !1; null != (t = r.next()); ) {
                              if (!n) {
                                  if ("/" == t && !a) return;
                                  "[" == t ? (a = !0) : a && "]" == t && (a = !1);
                              }
                              n = !n && "\\" == t;
                          }
                      })(e),
                      e.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),
                      k("regexp", "string-2"))
                    : (e.eat("="), k("operator", "operator", e.current()));
            else if ("`" == n) return (r.tokenize = w), w(e, r);
            else if ("#" == n && "!" == e.peek()) return e.skipToEnd(), k("meta", "meta");
            else if ("#" == n && e.eatWhile(l)) return k("variable", "property");
            else if (("<" == n && e.match("!--")) || ("-" == n && e.match("->") && !/\S/.test(e.string.slice(0, e.start)))) return e.skipToEnd(), k("comment", "comment");
            else if (p.test(n))
                return ((">" != n || !r.lexical || ">" != r.lexical.type) && (e.eat("=") ? ("!" == n || "=" == n) && e.eat("=") : /[<>*+\-|&?]/.test(n) && (e.eat(n), ">" == n && e.eat(n))), "?" == n && e.eat("."))
                    ? k(".")
                    : k("operator", "operator", e.current());
            else if (l.test(n)) {
                e.eatWhile(l);
                var a = e.current();
                if ("." != r.lastType) {
                    if (d.propertyIsEnumerable(a)) {
                        var i = d[a];
                        return k(i.type, i.style, a);
                    }
                    if ("async" == a && e.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/, !1)) return k("async", "keyword", a);
                }
                return k("variable", "variable", a);
            }
        }
        function y(e, r) {
            for (var t, n = !1; (t = e.next()); ) {
                if ("/" == t && n) {
                    r.tokenize = v;
                    break;
                }
                n = "*" == t;
            }
            return k("comment", "comment");
        }
        function w(e, r) {
            for (var t, n = !1; null != (t = e.next()); ) {
                if (!n && ("`" == t || ("$" == t && e.eat("{")))) {
                    r.tokenize = v;
                    break;
                }
                n = !n && "\\" == t;
            }
            return k("quasi", "string-2", e.current());
        }
        function b(e, r) {
            r.fatArrowAt && (r.fatArrowAt = null);
            var t = e.string.indexOf("=>", e.start);
            if (!(t < 0)) {
                if (c) {
                    var n = /:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start, t));
                    n && (t = n.index);
                }
                for (var a = 0, i = !1, o = t - 1; o >= 0; --o) {
                    var u = e.string.charAt(o),
                        s = "([{}])".indexOf(u);
                    if (s >= 0 && s < 3) {
                        if (!a) {
                            ++o;
                            break;
                        }
                        if (0 == --a) {
                            "(" == u && (i = !0);
                            break;
                        }
                    } else if (s >= 3 && s < 6) ++a;
                    else if (l.test(u)) i = !0;
                    else if (/["'\/`]/.test(u))
                        for (; ; --o) {
                            if (0 == o) return;
                            if (e.string.charAt(o - 1) == u && "\\" != e.string.charAt(o - 2)) {
                                o--;
                                break;
                            }
                        }
                    else if (i && !a) {
                        ++o;
                        break;
                    }
                }
                i && !a && (r.fatArrowAt = o);
            }
        }
        var x = { atom: !0, number: !0, variable: !0, string: !0, regexp: !0, this: !0, import: !0, "jsonld-keyword": !0 };
        function h(e, r, t, n, a, i) {
            (this.indented = e), (this.column = r), (this.type = t), (this.prev = a), (this.info = i), null != n && (this.align = n);
        }
        function g(e, r) {
            if (!f) return !1;
            for (var t = e.localVars; t; t = t.next) if (t.name == r) return !0;
            for (var n = e.context; n; n = n.prev) for (var t = n.vars; t; t = t.next) if (t.name == r) return !0;
        }
        function $(e, r, t, n, a) {
            var i = e.cc;
            for (_.state = e, _.stream = a, _.marked = null, _.cc = i, _.style = r, e.lexical.hasOwnProperty("align") || (e.lexical.align = !0); ; )
                if ((i.length ? i.pop() : s ? B : U)(t, n)) {
                    for (; i.length && i[i.length - 1].lex; ) i.pop()();
                    if (_.marked) return _.marked;
                    if ("variable" == t && g(e, n)) return "variable-2";
                    return r;
                }
        }
        var _ = { state: null, column: null, marked: null, cc: null };
        function j() {
            for (var e = arguments.length - 1; e >= 0; e--) _.cc.push(arguments[e]);
        }
        function M() {
            return j.apply(null, arguments), !0;
        }
        function A(e, r) {
            for (var t = r; t; t = t.next) if (t.name == e) return !0;
            return !1;
        }
        function V(e) {
            var r = _.state;
            if (((_.marked = "def"), f)) {
                if (r.context) {
                    if ("var" == r.lexical.info && r.context && r.context.block) {
                        var n = (function e(r, t) {
                            if (!t) return null;
                            if (t.block) {
                                var n = e(r, t.prev);
                                return n ? (n == t.prev ? t : new z(n, t.vars, !0)) : null;
                            }
                            return A(r, t.vars) ? t : new z(t.prev, new I(r, t.vars), !1);
                        })(e, r.context);
                        if (null != n) {
                            r.context = n;
                            return;
                        }
                    } else if (!A(e, r.localVars)) {
                        r.localVars = new I(e, r.localVars);
                        return;
                    }
                }
                t.globalVars && !A(e, r.globalVars) && (r.globalVars = new I(e, r.globalVars));
            }
        }
        function E(e) {
            return "public" == e || "private" == e || "protected" == e || "abstract" == e || "readonly" == e;
        }
        function z(e, r, t) {
            (this.prev = e), (this.vars = r), (this.block = t);
        }
        function I(e, r) {
            (this.name = e), (this.next = r);
        }
        var T = new I("this", new I("arguments", null));
        function S() {
            (_.state.context = new z(_.state.context, _.state.localVars, !1)), (_.state.localVars = T);
        }
        function q() {
            (_.state.context = new z(_.state.context, _.state.localVars, !0)), (_.state.localVars = null);
        }
        function C() {
            (_.state.localVars = _.state.context.vars), (_.state.context = _.state.context.prev);
        }
        function O(e, r) {
            var t = function () {
                var t = _.state,
                    n = t.indented;
                if ("stat" == t.lexical.type) n = t.lexical.indented;
                else for (var a = t.lexical; a && ")" == a.type && a.align; a = a.prev) n = a.indented;
                t.lexical = new h(n, _.stream.column(), e, null, t.lexical, r);
            };
            return (t.lex = !0), t;
        }
        function P() {
            var e = _.state;
            e.lexical.prev && (")" == e.lexical.type && (e.indented = e.lexical.indented), (e.lexical = e.lexical.prev));
        }
        function N(e) {
            function r(t) {
                return t == e ? M() : ";" == e || "}" == t || ")" == t || "]" == t ? j() : M(r);
            }
            return r;
        }
        function U(e, r) {
            if ("var" == e) return M(O("vardef", r), e$, N(";"), P);
            if ("keyword a" == e) return M(O("form"), H, U, P);
            if ("keyword b" == e) return M(O("form"), U, P);
            if ("keyword d" == e) return _.stream.match(/^\s*$/, !1) ? M() : M(O("stat"), G, N(";"), P);
            if ("debugger" == e) return M(N(";"));
            if ("{" == e) return M(O("}"), q, eu, P, C);
            if (";" == e) return M();
            if ("if" == e) return "else" == _.state.lexical.info && _.state.cc[_.state.cc.length - 1] == P && _.state.cc.pop()(), M(O("form"), H, U, P, eE);
            if ("function" == e) return M(e0);
            if ("for" == e) return M(O("form"), q, ez, U, C, P);
            if ("class" == e || (c && "interface" == r)) return (_.marked = "keyword"), M(O("form", "class" == e ? e : r), eC, P);
            if ("variable" == e) {
                if (c && "declare" == r) return (_.marked = "keyword"), M(U);
                if (c && ("module" == r || "enum" == r || "type" == r) && _.stream.match(/^\s*\w/, !1))
                    return ((_.marked = "keyword"), "enum" == r) ? M(eD) : "type" == r ? M(eS, N("operator"), ed, N(";")) : M(O("form"), e_, N("{"), O("}"), eu, P, P);
                if (c && "namespace" == r) return (_.marked = "keyword"), M(O("form"), B, U, P);
                else if (c && "abstract" == r) return (_.marked = "keyword"), M(U);
                else return M(O("stat"), ee);
            }
            return "switch" == e
                ? M(O("form"), H, N("{"), O("}", "switch"), q, eu, P, P, C)
                : "case" == e
                ? M(B, N(":"))
                : "default" == e
                ? M(N(":"))
                : "catch" == e
                ? M(O("form"), S, W, U, P, C)
                : "export" == e
                ? M(O("stat"), eN, P)
                : "import" == e
                ? M(O("stat"), eW, P)
                : "async" == e
                ? M(U)
                : "@" == r
                ? M(B, U)
                : j(O("stat"), B, N(";"), P);
        }
        function W(e) {
            if ("(" == e) return M(e8, N(")"));
        }
        function B(e, r) {
            return D(e, r, !1);
        }
        function F(e, r) {
            return D(e, r, !0);
        }
        function H(e) {
            return "(" != e ? j() : M(O(")"), G, N(")"), P);
        }
        function D(e, r, t) {
            if (_.state.fatArrowAt == _.stream.start) {
                var n = t ? X : R;
                if ("(" == e) return M(S, O(")"), ei(e8, ")"), P, N("=>"), n, C);
                if ("variable" == e) return j(S, e_, N("=>"), n, C);
            }
            var a,
                i = t ? K : J;
            return x.hasOwnProperty(e)
                ? M(i)
                : "function" == e
                ? M(e0, i)
                : "class" == e || (c && "interface" == r)
                ? ((_.marked = "keyword"), M(O("form"), eq, P))
                : "keyword c" == e || "async" == e
                ? M(t ? F : B)
                : "(" == e
                ? M(O(")"), G, N(")"), P, i)
                : "operator" == e || "spread" == e
                ? M(t ? F : B)
                : "[" == e
                ? M(O("]"), e5, P, i)
                : "{" == e
                ? eo(et, "}", null, i)
                : "quasi" == e
                ? j(L, i)
                : "new" == e
                ? M(
                      ((a = t),
                      function (e) {
                          return "." == e ? M(a ? Z : Y) : "variable" == e && c ? M(ex, a ? K : J) : j(a ? F : B);
                      })
                  )
                : M();
        }
        function G(e) {
            return e.match(/[;\}\)\],]/) ? j() : j(B);
        }
        function J(e, r) {
            return "," == e ? M(G) : K(e, r, !1);
        }
        function K(e, r, t) {
            var n = !1 == t ? J : K,
                a = !1 == t ? B : F;
            if ("=>" == e) return M(S, t ? X : R, C);
            if ("operator" == e) return /\+\+|--/.test(r) || (c && "!" == r) ? M(n) : c && "<" == r && _.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/, !1) ? M(O(">"), ei(ed, ">"), P, n) : "?" == r ? M(B, N(":"), a) : M(a);
            if ("quasi" == e) return j(L, n);
            if (";" != e) {
                if ("(" == e) return eo(F, ")", "call", n);
                if ("." == e) return M(er, n);
                if ("[" == e) return M(O("]"), G, N("]"), P, n);
                if (c && "as" == r) return (_.marked = "keyword"), M(ed, n);
                if ("regexp" == e) return (_.state.lastType = _.marked = "operator"), _.stream.backUp(_.stream.pos - _.stream.start - 1), M(a);
            }
        }
        function L(e, r) {
            return "quasi" != e ? j() : "${" != r.slice(r.length - 2) ? M(L) : M(G, Q);
        }
        function Q(e) {
            if ("}" == e) return (_.marked = "string-2"), (_.state.tokenize = w), M(L);
        }
        function R(e) {
            return b(_.stream, _.state), j("{" == e ? U : B);
        }
        function X(e) {
            return b(_.stream, _.state), j("{" == e ? U : F);
        }
        function Y(e, r) {
            if ("target" == r) return (_.marked = "keyword"), M(J);
        }
        function Z(e, r) {
            if ("target" == r) return (_.marked = "keyword"), M(K);
        }
        function ee(e) {
            return ":" == e ? M(P, U) : j(J, N(";"), P);
        }
        function er(e) {
            if ("variable" == e) return (_.marked = "property"), M();
        }
        function et(e, r) {
            if ("async" == e) return (_.marked = "property"), M(et);
            if ("variable" == e || "keyword" == _.style) {
                var t;
                return ((_.marked = "property"), "get" == r || "set" == r) ? M(en) : (c && _.state.fatArrowAt == _.stream.start && (t = _.stream.match(/^\s*:\s*/, !1)) && (_.state.fatArrowAt = _.stream.pos + t[0].length), M(ea));
            }
            if ("number" == e || "string" == e) return (_.marked = u ? "property" : _.style + " property"), M(ea);
            if ("jsonld-keyword" == e) return M(ea);
            if (c && E(r)) return (_.marked = "keyword"), M(et);
            else if ("[" == e) return M(B, es, N("]"), ea);
            else if ("spread" == e) return M(F, ea);
            else if ("*" == r) return (_.marked = "keyword"), M(et);
            else if (":" == e) return j(ea);
        }
        function en(e) {
            return "variable" != e ? j(ea) : ((_.marked = "property"), M(e0));
        }
        function ea(e) {
            return ":" == e ? M(F) : "(" == e ? j(e0) : void 0;
        }
        function ei(e, r, t) {
            function n(a, i) {
                if (t ? t.indexOf(a) > -1 : "," == a) {
                    var o = _.state.lexical;
                    return (
                        "call" == o.info && (o.pos = (o.pos || 0) + 1),
                        M(function (t, n) {
                            return t == r || n == r ? j() : j(e);
                        }, n)
                    );
                }
                return a == r || i == r ? M() : t && t.indexOf(";") > -1 ? j(e) : M(N(r));
            }
            return function (t, a) {
                return t == r || a == r ? M() : j(e, n);
            };
        }
        function eo(e, r, t) {
            for (var n = 3; n < arguments.length; n++) _.cc.push(arguments[n]);
            return M(O(r, t), ei(e, r), P);
        }
        function eu(e) {
            return "}" == e ? M() : j(U, eu);
        }
        function es(e, r) {
            if (c) {
                if (":" == e) return M(ed);
                if ("?" == r) return M(es);
            }
        }
        function ef(e, r) {
            if (c && (":" == e || "in" == r)) return M(ed);
        }
        function ec(e) {
            if (c && ":" == e) return _.stream.match(/^\s*\w+\s+is\b/, !1) ? M(B, el, ed) : M(ed);
        }
        function el(e, r) {
            if ("is" == r) return (_.marked = "keyword"), M();
        }
        function ed(e, r) {
            return "keyof" == r || "typeof" == r || "infer" == r || "readonly" == r
                ? ((_.marked = "keyword"), M("typeof" == r ? F : ed))
                : "variable" == e || "void" == r
                ? ((_.marked = "type"), M(eb))
                : "|" == r || "&" == r
                ? M(ed)
                : "string" == e || "number" == e || "atom" == e
                ? M(eb)
                : "[" == e
                ? M(O("]"), ei(ed, "]", ","), P, eb)
                : "{" == e
                ? M(O("}"), em, P, eb)
                : "(" == e
                ? M(ei(ew, ")"), ep, eb)
                : "<" == e
                ? M(ei(ed, ">"), ed)
                : "quasi" == e
                ? j(ev, eb)
                : void 0;
        }
        function ep(e) {
            if ("=>" == e) return M(ed);
        }
        function em(e) {
            return e.match(/[\}\)\]]/) ? M() : "," == e || ";" == e ? M(em) : j(ek, em);
        }
        function ek(e, r) {
            if ("variable" == e || "keyword" == _.style) return (_.marked = "property"), M(ek);
            if ("?" == r || "number" == e || "string" == e) return M(ek);
            if (":" == e) return M(ed);
            if ("[" == e) return M(N("variable"), ef, N("]"), ek);
            if ("(" == e) return j(e9, ek);
            else if (!e.match(/[;\}\)\],]/)) return M();
        }
        function ev(e, r) {
            return "quasi" != e ? j() : "${" != r.slice(r.length - 2) ? M(ev) : M(ed, ey);
        }
        function ey(e) {
            if ("}" == e) return (_.marked = "string-2"), (_.state.tokenize = w), M(ev);
        }
        function ew(e, r) {
            return ("variable" == e && _.stream.match(/^\s*[?:]/, !1)) || "?" == r ? M(ew) : ":" == e ? M(ed) : "spread" == e ? M(ew) : j(ed);
        }
        function eb(e, r) {
            return "<" == r
                ? M(O(">"), ei(ed, ">"), P, eb)
                : "|" == r || "." == e || "&" == r
                ? M(ed)
                : "[" == e
                ? M(ed, N("]"), eb)
                : "extends" == r || "implements" == r
                ? ((_.marked = "keyword"), M(ed))
                : "?" == r
                ? M(ed, N(":"), ed)
                : void 0;
        }
        function ex(e, r) {
            if ("<" == r) return M(O(">"), ei(ed, ">"), P, eb);
        }
        function eh() {
            return j(ed, eg);
        }
        function eg(e, r) {
            if ("=" == r) return M(ed);
        }
        function e$(e, r) {
            return "enum" == r ? ((_.marked = "keyword"), M(eD)) : j(e_, es, eA, eV);
        }
        function e_(e, r) {
            return c && E(r) ? ((_.marked = "keyword"), M(e_)) : "variable" == e ? (V(r), M()) : "spread" == e ? M(e_) : "[" == e ? eo(eM, "]") : "{" == e ? eo(ej, "}") : void 0;
        }
        function ej(e, r) {
            return "variable" != e || _.stream.match(/^\s*:/, !1) ? (("variable" == e && (_.marked = "property"), "spread" == e) ? M(e_) : "}" == e ? j() : "[" == e ? M(B, N("]"), N(":"), ej) : M(N(":"), e_, eA)) : (V(r), M(eA));
        }
        function eM() {
            return j(e_, eA);
        }
        function eA(e, r) {
            if ("=" == r) return M(F);
        }
        function eV(e) {
            if ("," == e) return M(e$);
        }
        function eE(e, r) {
            if ("keyword b" == e && "else" == r) return M(O("form", "else"), U, P);
        }
        function ez(e, r) {
            return "await" == r ? M(ez) : "(" == e ? M(O(")"), eI, P) : void 0;
        }
        function eI(e) {
            return "var" == e ? M(e$, eT) : "variable" == e ? M(eT) : j(eT);
        }
        function eT(e, r) {
            return ")" == e ? M() : ";" == e ? M(eT) : "in" == r || "of" == r ? ((_.marked = "keyword"), M(B, eT)) : j(B, eT);
        }
        function e0(e, r) {
            return "*" == r ? ((_.marked = "keyword"), M(e0)) : "variable" == e ? (V(r), M(e0)) : "(" == e ? M(S, O(")"), ei(e8, ")"), P, ec, U, C) : c && "<" == r ? M(O(">"), ei(eh, ">"), P, e0) : void 0;
        }
        function e9(e, r) {
            return "*" == r ? ((_.marked = "keyword"), M(e9)) : "variable" == e ? (V(r), M(e9)) : "(" == e ? M(S, O(")"), ei(e8, ")"), P, ec, C) : c && "<" == r ? M(O(">"), ei(eh, ">"), P, e9) : void 0;
        }
        function eS(e, r) {
            return "keyword" == e || "variable" == e ? ((_.marked = "type"), M(eS)) : "<" == r ? M(O(">"), ei(eh, ">"), P) : void 0;
        }
        function e8(e, r) {
            return ("@" == r && M(B, e8), "spread" == e) ? M(e8) : c && E(r) ? ((_.marked = "keyword"), M(e8)) : c && "this" == e ? M(es, eA) : j(e_, es, eA);
        }
        function eq(e, r) {
            return "variable" == e ? eC(e, r) : eO(e, r);
        }
        function eC(e, r) {
            if ("variable" == e) return V(r), M(eO);
        }
        function eO(e, r) {
            return "<" == r ? M(O(">"), ei(eh, ">"), P, eO) : "extends" == r || "implements" == r || (c && "," == e) ? ("implements" == r && (_.marked = "keyword"), M(c ? ed : B, eO)) : "{" == e ? M(O("}"), eP, P) : void 0;
        }
        function eP(e, r) {
            return "async" == e || ("variable" == e && ("static" == r || "get" == r || "set" == r || (c && E(r))) && _.stream.match(/^\s+[\w$\xa1-\uffff]/, !1))
                ? ((_.marked = "keyword"), M(eP))
                : "variable" == e || "keyword" == _.style
                ? ((_.marked = "property"), M(e1, eP))
                : "number" == e || "string" == e
                ? M(e1, eP)
                : "[" == e
                ? M(B, es, N("]"), e1, eP)
                : "*" == r
                ? ((_.marked = "keyword"), M(eP))
                : c && "(" == e
                ? j(e9, eP)
                : ";" == e || "," == e
                ? M(eP)
                : "}" == e
                ? M()
                : "@" == r
                ? M(B, eP)
                : void 0;
        }
        function e1(e, r) {
            if ("!" == r || "?" == r) return M(e1);
            if (":" == e) return M(ed, eA);
            if ("=" == r) return M(F);
            var t = _.state.lexical.prev;
            return j(t && "interface" == t.info ? e9 : e0);
        }
        function eN(e, r) {
            return "*" == r ? ((_.marked = "keyword"), M(e4, N(";"))) : "default" == r ? ((_.marked = "keyword"), M(B, N(";"))) : "{" == e ? M(ei(eU, "}"), e4, N(";")) : j(U);
        }
        function eU(e, r) {
            return "as" == r ? ((_.marked = "keyword"), M(N("variable"))) : "variable" == e ? j(F, eU) : void 0;
        }
        function eW(e) {
            return "string" == e ? M() : "(" == e ? j(B) : "." == e ? j(J) : j(eB, eF, e4);
        }
        function eB(e, r) {
            return "{" == e ? eo(eB, "}") : ("variable" == e && V(r), "*" == r && (_.marked = "keyword"), M(eH));
        }
        function eF(e) {
            if ("," == e) return M(eB, eF);
        }
        function eH(e, r) {
            if ("as" == r) return (_.marked = "keyword"), M(eB);
        }
        function e4(e, r) {
            if ("from" == r) return (_.marked = "keyword"), M(B);
        }
        function e5(e) {
            return "]" == e ? M() : j(ei(F, "]"));
        }
        function eD() {
            return j(O("form"), e_, N("{"), O("}"), ei(eG, "}"), P, P);
        }
        function eG() {
            return j(e_, eA);
        }
        function eJ(e, r, t) {
            return (r.tokenize == v && /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(r.lastType)) || ("quasi" == r.lastType && /\{\s*$/.test(e.string.slice(0, e.pos - (t || 0))));
        }
        return (
            (S.lex = q.lex = !0),
            (C.lex = !0),
            (P.lex = !0),
            {
                startState: function (e) {
                    var r = { tokenize: v, lastType: "sof", cc: [], lexical: new h((e || 0) - i, 0, "block", !1), localVars: t.localVars, context: t.localVars && new z(null, null, !1), indented: e || 0 };
                    return t.globalVars && "object" == typeof t.globalVars && (r.globalVars = t.globalVars), r;
                },
                token: function (e, r) {
                    if ((e.sol() && (r.lexical.hasOwnProperty("align") || (r.lexical.align = !1), (r.indented = e.indentation()), b(e, r)), r.tokenize != y && e.eatSpace())) return null;
                    var t = r.tokenize(e, r);
                    return "comment" == n ? t : ((r.lastType = "operator" == n && ("++" == a || "--" == a) ? "incdec" : n), $(r, t, n, a, e));
                },
                indent: function (r, n) {
                    if (r.tokenize == y || r.tokenize == w) return e.Pass;
                    if (r.tokenize != v) return 0;
                    var a,
                        u,
                        s,
                        f = n && n.charAt(0),
                        c = r.lexical;
                    if (!/^\s*else\b/.test(n))
                        for (var l = r.cc.length - 1; l >= 0; --l) {
                            var d = r.cc[l];
                            if (d == P) c = c.prev;
                            else if (d != eE && d != C) break;
                        }
                    for (; ("stat" == c.type || "form" == c.type) && ("}" == f || ((s = r.cc[r.cc.length - 1]) && (s == J || s == K) && !/^[,\.=+\-*:?[\(]/.test(n))); ) c = c.prev;
                    o && ")" == c.type && "stat" == c.prev.type && (c = c.prev);
                    var m = c.type,
                        k = f == m;
                    if ("vardef" == m) return c.indented + ("operator" == r.lastType || "," == r.lastType ? c.info.length + 1 : 0);
                    if ("form" == m && "{" == f) return c.indented;
                    if ("form" == m) return c.indented + i;
                    if ("stat" == m) return c.indented + (((a = r), (u = n), "operator" == a.lastType || "," == a.lastType || p.test(u.charAt(0)) || /[,.]/.test(u.charAt(0))) ? o || i : 0);
                    if ("switch" == c.info && !k && !1 != t.doubleIndentSwitch) return c.indented + (/^(?:case|default)\b/.test(n) ? i : 2 * i);
                    else if (c.align) return c.column + (k ? 0 : 1);
                    else return c.indented + (k ? 0 : i);
                },
                electricInput: /^\s*(?:case .*?:|default:|\{|\})$/,
                blockCommentStart: s ? null : "/*",
                blockCommentEnd: s ? null : "*/",
                blockCommentContinue: s ? null : " * ",
                lineComment: s ? null : "//",
                fold: "brace",
                closeBrackets: "()[]{}''\"\"``",
                helperType: s ? "json" : "javascript",
                jsonldMode: u,
                jsonMode: s,
                expressionAllowed: eJ,
                skipExpression: function (r) {
                    $(r, "atom", "atom", "true", new e.StringStream("", 2, null));
                },
            }
        );
    }),
        e.registerHelper("wordChars", "javascript", /[\w$]/),
        e.defineMIME("text/javascript", "javascript"),
        e.defineMIME("text/ecmascript", "javascript"),
        e.defineMIME("application/javascript", "javascript"),
        e.defineMIME("application/x-javascript", "javascript"),
        e.defineMIME("application/ecmascript", "javascript"),
        e.defineMIME("application/json", { name: "javascript", json: !0 }),
        e.defineMIME("application/x-json", { name: "javascript", json: !0 }),
        e.defineMIME("application/manifest+json", { name: "javascript", json: !0 }),
        e.defineMIME("application/ld+json", { name: "javascript", jsonld: !0 }),
        e.defineMIME("text/typescript", { name: "javascript", typescript: !0 }),
        e.defineMIME("application/typescript", { name: "javascript", typescript: !0 });
});

```
