UNPKG

laif-ds

Version:

Design System di Laif con componenti React basati su principi di Atomic Design

72 lines (71 loc) 1.99 kB
"use client"; import b from "../node_modules/escape-string-regexp/index.js"; import { convert as E } from "../../unist-util-is/lib/index.js"; import { visitParents as I } from "../../unist-util-visit-parents/lib/index.js"; function q(e, f, a) { const p = E((a || {}).ignore || []), x = R(f); let d = -1; for (; ++d < x.length; ) I(e, "text", m); function m(n, s) { let c = -1, t; for (; ++c < s.length; ) { const u = s[c], r = t ? t.children : void 0; if (p( u, r ? r.indexOf(u) : void 0, t )) return; t = u; } if (t) return w(n, s); } function w(n, s) { const c = s[s.length - 1], t = x[d][0], u = x[d][1]; let r = 0; const y = c.children.indexOf(n); let v = !1, l = []; t.lastIndex = 0; let o = t.exec(n.value); for (; o; ) { const h = o.index, A = { index: o.index, input: o.input, stack: [...s, n] }; let i = u(...o, A); if (typeof i == "string" && (i = i.length > 0 ? { type: "text", value: i } : void 0), i === !1 ? t.lastIndex = h + 1 : (r !== h && l.push({ type: "text", value: n.value.slice(r, h) }), Array.isArray(i) ? l.push(...i) : i && l.push(i), r = h + o[0].length, v = !0), !t.global) break; o = t.exec(n.value); } return v ? (r < n.value.length && l.push({ type: "text", value: n.value.slice(r) }), c.children.splice(y, 1, ...l)) : l = [n], y + l.length; } } function R(e) { const f = []; if (!Array.isArray(e)) throw new TypeError("Expected find and replace tuple or list of tuples"); const a = !e[0] || Array.isArray(e[0]) ? e : [e]; let g = -1; for (; ++g < a.length; ) { const p = a[g]; f.push([k(p[0]), P(p[1])]); } return f; } function k(e) { return typeof e == "string" ? new RegExp(b(e), "g") : e; } function P(e) { return typeof e == "function" ? e : function() { return e; }; } export { q as findAndReplace };