diff options
author | Florian Dold <florian@dold.me> | 2021-08-20 13:31:03 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2021-08-20 13:31:03 +0200 |
commit | 859a8734c87d5e5081d7b0aa02cb538a7c801eac (patch) | |
tree | d2e9163479eb56ec382c842d62ce39fe30d450a4 /demo/components/code-box/prism.js | |
download | node-vendor-859a8734c87d5e5081d7b0aa02cb538a7c801eac.tar.gz node-vendor-859a8734c87d5e5081d7b0aa02cb538a7c801eac.tar.bz2 node-vendor-859a8734c87d5e5081d7b0aa02cb538a7c801eac.zip |
Squashed 'fflate/' content from commit b786929
git-subtree-dir: fflate
git-subtree-split: b786929a368521e9cfcdcf7490a8e77485d5a253
Diffstat (limited to 'demo/components/code-box/prism.js')
-rw-r--r-- | demo/components/code-box/prism.js | 505 |
1 files changed, 505 insertions, 0 deletions
diff --git a/demo/components/code-box/prism.js b/demo/components/code-box/prism.js new file mode 100644 index 0000000..e21620f --- /dev/null +++ b/demo/components/code-box/prism.js @@ -0,0 +1,505 @@ +/* PrismJS 1.22.0 +https://prismjs.com/download.html#themes=prism-tomorrow&languages=clike+javascript */ +var Prism = (function (u) { + var c = /\blang(?:uage)?-([\w-]+)\b/i, + n = 0, + M = { + manual: u.Prism && u.Prism.manual, + disableWorkerMessageHandler: + u.Prism && u.Prism.disableWorkerMessageHandler, + util: { + encode: function e(n) { + return n instanceof W + ? new W(n.type, e(n.content), n.alias) + : Array.isArray(n) + ? n.map(e) + : n + .replace(/&/g, "&") + .replace(/</g, "<") + .replace(/\u00a0/g, " "); + }, + type: function (e) { + return Object.prototype.toString.call(e).slice(8, -1); + }, + objId: function (e) { + return ( + e.__id || Object.defineProperty(e, "__id", { value: ++n }), e.__id + ); + }, + clone: function t(e, r) { + var a, n; + switch (((r = r || {}), M.util.type(e))) { + case "Object": + if (((n = M.util.objId(e)), r[n])) return r[n]; + for (var i in ((a = {}), (r[n] = a), e)) + e.hasOwnProperty(i) && (a[i] = t(e[i], r)); + return a; + case "Array": + return ( + (n = M.util.objId(e)), + r[n] + ? r[n] + : ((a = []), + (r[n] = a), + e.forEach(function (e, n) { + a[n] = t(e, r); + }), + a) + ); + default: + return e; + } + }, + getLanguage: function (e) { + for (; e && !c.test(e.className); ) e = e.parentElement; + return e + ? (e.className.match(c) || [, "none"])[1].toLowerCase() + : "none"; + }, + currentScript: function () { + if ("undefined" == typeof document) return null; + if ("currentScript" in document) return document.currentScript; + try { + throw new Error(); + } catch (e) { + var n = (/at [^(\r\n]*\((.*):.+:.+\)$/i.exec(e.stack) || [])[1]; + if (n) { + var t = document.getElementsByTagName("script"); + for (var r in t) if (t[r].src == n) return t[r]; + } + return null; + } + }, + isActive: function (e, n, t) { + for (var r = "no-" + n; e; ) { + var a = e.classList; + if (a.contains(n)) return !0; + if (a.contains(r)) return !1; + e = e.parentElement; + } + return !!t; + }, + }, + languages: { + extend: function (e, n) { + var t = M.util.clone(M.languages[e]); + for (var r in n) t[r] = n[r]; + return t; + }, + insertBefore: function (t, e, n, r) { + var a = (r = r || M.languages)[t], + i = {}; + for (var l in a) + if (a.hasOwnProperty(l)) { + if (l == e) for (var o in n) n.hasOwnProperty(o) && (i[o] = n[o]); + n.hasOwnProperty(l) || (i[l] = a[l]); + } + var s = r[t]; + return ( + (r[t] = i), + M.languages.DFS(M.languages, function (e, n) { + n === s && e != t && (this[e] = i); + }), + i + ); + }, + DFS: function e(n, t, r, a) { + a = a || {}; + var i = M.util.objId; + for (var l in n) + if (n.hasOwnProperty(l)) { + t.call(n, l, n[l], r || l); + var o = n[l], + s = M.util.type(o); + "Object" !== s || a[i(o)] + ? "Array" !== s || a[i(o)] || ((a[i(o)] = !0), e(o, t, l, a)) + : ((a[i(o)] = !0), e(o, t, null, a)); + } + }, + }, + plugins: {}, + highlightAll: function (e, n) { + M.highlightAllUnder(document, e, n); + }, + highlightAllUnder: function (e, n, t) { + var r = { + callback: t, + container: e, + selector: + 'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code', + }; + M.hooks.run("before-highlightall", r), + (r.elements = Array.prototype.slice.apply( + r.container.querySelectorAll(r.selector) + )), + M.hooks.run("before-all-elements-highlight", r); + for (var a, i = 0; (a = r.elements[i++]); ) + M.highlightElement(a, !0 === n, r.callback); + }, + highlightElement: function (e, n, t) { + var r = M.util.getLanguage(e), + a = M.languages[r]; + e.className = + e.className.replace(c, "").replace(/\s+/g, " ") + " language-" + r; + var i = e.parentElement; + i && + "pre" === i.nodeName.toLowerCase() && + (i.className = + i.className.replace(c, "").replace(/\s+/g, " ") + " language-" + r); + var l = { element: e, language: r, grammar: a, code: e.textContent }; + function o(e) { + (l.highlightedCode = e), + M.hooks.run("before-insert", l), + (l.element.innerHTML = l.highlightedCode), + M.hooks.run("after-highlight", l), + M.hooks.run("complete", l), + t && t.call(l.element); + } + if ((M.hooks.run("before-sanity-check", l), !l.code)) + return M.hooks.run("complete", l), void (t && t.call(l.element)); + if ((M.hooks.run("before-highlight", l), l.grammar)) + if (n && u.Worker) { + var s = new Worker(M.filename); + (s.onmessage = function (e) { + o(e.data); + }), + s.postMessage( + JSON.stringify({ + language: l.language, + code: l.code, + immediateClose: !0, + }) + ); + } else o(M.highlight(l.code, l.grammar, l.language)); + else o(M.util.encode(l.code)); + }, + highlight: function (e, n, t) { + var r = { code: e, grammar: n, language: t }; + return ( + M.hooks.run("before-tokenize", r), + (r.tokens = M.tokenize(r.code, r.grammar)), + M.hooks.run("after-tokenize", r), + W.stringify(M.util.encode(r.tokens), r.language) + ); + }, + tokenize: function (e, n) { + var t = n.rest; + if (t) { + for (var r in t) n[r] = t[r]; + delete n.rest; + } + var a = new i(); + return ( + I(a, a.head, e), + (function e(n, t, r, a, i, l) { + for (var o in r) + if (r.hasOwnProperty(o) && r[o]) { + var s = r[o]; + s = Array.isArray(s) ? s : [s]; + for (var u = 0; u < s.length; ++u) { + if (l && l.cause == o + "," + u) return; + var c = s[u], + g = c.inside, + f = !!c.lookbehind, + h = !!c.greedy, + d = 0, + v = c.alias; + if (h && !c.pattern.global) { + var p = c.pattern.toString().match(/[imsuy]*$/)[0]; + c.pattern = RegExp(c.pattern.source, p + "g"); + } + for ( + var m = c.pattern || c, y = a.next, k = i; + y !== t.tail && !(l && k >= l.reach); + k += y.value.length, y = y.next + ) { + var b = y.value; + if (t.length > n.length) return; + if (!(b instanceof W)) { + var x = 1; + if (h && y != t.tail.prev) { + m.lastIndex = k; + var w = m.exec(n); + if (!w) break; + var A = w.index + (f && w[1] ? w[1].length : 0), + P = w.index + w[0].length, + S = k; + for (S += y.value.length; S <= A; ) + (y = y.next), (S += y.value.length); + if ( + ((S -= y.value.length), (k = S), y.value instanceof W) + ) + continue; + for ( + var E = y; + E !== t.tail && (S < P || "string" == typeof E.value); + E = E.next + ) + x++, (S += E.value.length); + x--, (b = n.slice(k, S)), (w.index -= k); + } else { + m.lastIndex = 0; + var w = m.exec(b); + } + if (w) { + f && (d = w[1] ? w[1].length : 0); + var A = w.index + d, + O = w[0].slice(d), + P = A + O.length, + L = b.slice(0, A), + N = b.slice(P), + j = k + b.length; + l && j > l.reach && (l.reach = j); + var C = y.prev; + L && ((C = I(t, C, L)), (k += L.length)), z(t, C, x); + var _ = new W(o, g ? M.tokenize(O, g) : O, v, O); + (y = I(t, C, _)), + N && I(t, y, N), + 1 < x && + e(n, t, r, y.prev, k, { + cause: o + "," + u, + reach: j, + }); + } + } + } + } + } + })(e, a, n, a.head, 0), + (function (e) { + var n = [], + t = e.head.next; + for (; t !== e.tail; ) n.push(t.value), (t = t.next); + return n; + })(a) + ); + }, + hooks: { + all: {}, + add: function (e, n) { + var t = M.hooks.all; + (t[e] = t[e] || []), t[e].push(n); + }, + run: function (e, n) { + var t = M.hooks.all[e]; + if (t && t.length) for (var r, a = 0; (r = t[a++]); ) r(n); + }, + }, + Token: W, + }; + function W(e, n, t, r) { + (this.type = e), + (this.content = n), + (this.alias = t), + (this.length = 0 | (r || "").length); + } + function i() { + var e = { value: null, prev: null, next: null }, + n = { value: null, prev: e, next: null }; + (e.next = n), (this.head = e), (this.tail = n), (this.length = 0); + } + function I(e, n, t) { + var r = n.next, + a = { value: t, prev: n, next: r }; + return (n.next = a), (r.prev = a), e.length++, a; + } + function z(e, n, t) { + for (var r = n.next, a = 0; a < t && r !== e.tail; a++) r = r.next; + ((n.next = r).prev = n), (e.length -= a); + } + if ( + ((u.Prism = M), + (W.stringify = function n(e, t) { + if ("string" == typeof e) return e; + if (Array.isArray(e)) { + var r = ""; + return ( + e.forEach(function (e) { + r += n(e, t); + }), + r + ); + } + var a = { + type: e.type, + content: n(e.content, t), + tag: "span", + classes: ["token", e.type], + attributes: {}, + language: t, + }, + i = e.alias; + i && + (Array.isArray(i) + ? Array.prototype.push.apply(a.classes, i) + : a.classes.push(i)), + M.hooks.run("wrap", a); + var l = ""; + for (var o in a.attributes) + l += + " " + + o + + '="' + + (a.attributes[o] || "").replace(/"/g, """) + + '"'; + return ( + "<" + + a.tag + + ' class="' + + a.classes.join(" ") + + '"' + + l + + ">" + + a.content + + "</" + + a.tag + + ">" + ); + }), + !u.document) + ) + return ( + u.addEventListener && + (M.disableWorkerMessageHandler || + u.addEventListener( + "message", + function (e) { + var n = JSON.parse(e.data), + t = n.language, + r = n.code, + a = n.immediateClose; + u.postMessage(M.highlight(r, M.languages[t], t)), a && u.close(); + }, + !1 + )), + M + ); + var e = M.util.currentScript(); + function t() { + M.manual || M.highlightAll(); + } + if ( + (e && + ((M.filename = e.src), e.hasAttribute("data-manual") && (M.manual = !0)), + !M.manual) + ) { + var r = document.readyState; + "loading" === r || ("interactive" === r && e && e.defer) + ? document.addEventListener("DOMContentLoaded", t) + : window.requestAnimationFrame + ? window.requestAnimationFrame(t) + : window.setTimeout(t, 16); + } + return M; +})(module.exports); +Prism.languages.clike = { + comment: [ + { pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, lookbehind: !0 }, + { pattern: /(^|[^\\:])\/\/.*/, lookbehind: !0, greedy: !0 }, + ], + string: { + pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, + greedy: !0, + }, + "class-name": { + pattern: /(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i, + lookbehind: !0, + inside: { punctuation: /[.\\]/ }, + }, + keyword: /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, + boolean: /\b(?:true|false)\b/, + function: /\w+(?=\()/, + number: /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i, + operator: /[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/, + punctuation: /[{}[\];(),.:]/, +}; +(Prism.languages.javascript = Prism.languages.extend("clike", { + "class-name": [ + Prism.languages.clike["class-name"], + { + pattern: /(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/, + lookbehind: !0, + }, + ], + keyword: [ + { pattern: /((?:^|})\s*)(?:catch|finally)\b/, lookbehind: !0 }, + { + pattern: /(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|(?:get|set)(?=\s*[\[$\w\xA0-\uFFFF])|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/, + lookbehind: !0, + }, + ], + number: /\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/, + function: /#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/, + operator: /--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/, +})), + (Prism.languages.javascript[ + "class-name" + ][0].pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/), + Prism.languages.insertBefore("javascript", "keyword", { + regex: { + pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/, + lookbehind: !0, + greedy: !0, + inside: { + "regex-source": { + pattern: /^(\/)[\s\S]+(?=\/[a-z]*$)/, + lookbehind: !0, + alias: "language-regex", + inside: Prism.languages.regex, + }, + "regex-flags": /[a-z]+$/, + "regex-delimiter": /^\/|\/$/, + }, + }, + "function-variable": { + pattern: /#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/, + alias: "function", + }, + parameter: [ + { + pattern: /(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/, + lookbehind: !0, + inside: Prism.languages.javascript, + }, + { + pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i, + inside: Prism.languages.javascript, + }, + { + pattern: /(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/, + lookbehind: !0, + inside: Prism.languages.javascript, + }, + { + pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/, + lookbehind: !0, + inside: Prism.languages.javascript, + }, + ], + constant: /\b[A-Z](?:[A-Z_]|\dx?)*\b/, + }), + Prism.languages.insertBefore("javascript", "string", { + "template-string": { + pattern: /`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/, + greedy: !0, + inside: { + "template-punctuation": { pattern: /^`|`$/, alias: "string" }, + interpolation: { + pattern: /((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/, + lookbehind: !0, + inside: { + "interpolation-punctuation": { + pattern: /^\${|}$/, + alias: "punctuation", + }, + rest: Prism.languages.javascript, + }, + }, + string: /[\s\S]+/, + }, + }, + }), + Prism.languages.markup && + Prism.languages.markup.tag.addInlined("script", "javascript"), + (Prism.languages.js = Prism.languages.javascript); +module.exports.Prism = Prism;
\ No newline at end of file |