UNPKG

prism-code-editor

Version:

Lightweight, extensible code editor component for the web using Prism

57 lines (56 loc) 1.96 kB
import { r as C } from "./utils-d80f188d.js"; import { a as I } from "./index-fa58cb3b.js"; const N = I( "", "color:#0000;display:none;contain:strict;padding:0 var(--_pse) 0 var(--padding-left);" ), F = (f) => { const g = document.createElement("span"), r = [new Text()], l = [], o = N.cloneNode(), i = [], m = () => { i[0] && (i.length = 0, o.style.display = "none"); }; let d; return g.append(""), f.overlays.append(o), { search(s, w, A, P, p, h) { if (!s) return m(); P || (s = C(s)); const c = f.value, R = p ? c.slice(...p) : c, S = p ? p[0] : 0, u = `gum${w ? "" : "i"}`, x = typeof h == "number" ? (e, a) => e > h || a <= h : h; try { let e, a, n, t = 0; for (i.length = 0, d = RegExp(s, u), A && (d = RegExp( $ ? `(?<=^|\\b|\\W)${s}(?=\\b|\\W|$)` : `\\b${s}\\b`, u )); e = d.exec(R); ) a = e[0].length, n = e.index + S, a || (d.lastIndex += c.codePointAt(n) > 65535 ? 2 : 1), (!x || x(n, n + a)) && (i[t++] = [n, n + a]); } catch (e) { return e.message; } finally { const e = Math.min(i.length * 2, 2e4), a = o.childNodes.length, n = c.slice(e ? i[e / 2 - 1][1] : 0); for (let t = r.length; t <= e; ) r[t++] = g.cloneNode(!0), r[t++] = new Text(); for (let t = o.childNodes.length - 1; t > e; ) r[t--].remove(); a <= e && o.append(...r.slice(a, e + 1)); for (let t = 0, y = 0; t < e; ++t) { const [b, T] = i[t / 2], v = c.slice(y, b), E = c.slice(b, y = T); v != l[t] && (r[t].data = l[t] = v), E != l[++t] && (r[t].firstChild.data = l[t] = E); } n != l[e] && (r[e].data = l[e] = n), o.style.display = ""; } }, container: o, get regex() { return d; }, matches: i, stopSearch: m }; }; N.setAttribute("aria-hidden", !0); let $; try { RegExp("(?<=)"), $ = !0; } catch { } export { F as c };