UNPKG

@ubuilder/tinyeditor

Version:

UBuilder Editor component based on TinyMCE 6

1,429 lines (1,428 loc) 1.82 MB
import { watch as f5, defineComponent as JZ, toRefs as oG, ref as QZ, nextTick as ZZ, onMounted as sG, onBeforeUnmount as rG, onActivated as aG, onDeactivated as cG, h as jZ, computed as GZ, openBlock as iG, createBlock as lG, unref as uG } from "vue"; function dG(Ft) { return Ft && Ft.__esModule && Object.prototype.hasOwnProperty.call(Ft, "default") ? Ft.default : Ft; } var ej = { exports: {} }; (function(Ft) { (function() { var jn = function(e) { if (e === null) return "null"; if (e === void 0) return "undefined"; var n = typeof e; return n === "object" && (Array.prototype.isPrototypeOf(e) || e.constructor && e.constructor.name === "Array") ? "array" : n === "object" && (String.prototype.isPrototypeOf(e) || e.constructor && e.constructor.name === "String") ? "string" : n; }, Hn = function(e) { return [ "undefined", "boolean", "number", "string", "function", "xml", "null" ].indexOf(e) !== -1; }, gn = function(e, n) { var o = Array.prototype.slice.call(e); return o.sort(n); }, qn = function(e, n) { return Un(function(o, r) { return e.eq(n(o), n(r)); }); }, Un = function(e) { return { eq: e }; }, so = Un(function(e, n) { return e === n; }), nn = so, on = function(e) { return Un(function(n, o) { if (n.length !== o.length) return !1; for (var r = n.length, c = 0; c < r; c++) if (!e.eq(n[c], o[c])) return !1; return !0; }); }, no = function(e, n) { return qn(on(e), function(o) { return gn(o, n); }); }, Dn = function(e) { return Un(function(n, o) { var r = Object.keys(n), c = Object.keys(o); if (!no(nn).eq(r, c)) return !1; for (var u = r.length, f = 0; f < u; f++) { var b = r[f]; if (!e.eq(n[b], o[b])) return !1; } return !0; }); }, fo = Un(function(e, n) { if (e === n) return !0; var o = jn(e), r = jn(n); return o !== r ? !1 : Hn(o) ? e === n : o === "array" ? on(fo).eq(e, n) : o === "object" ? Dn(fo).eq(e, n) : !1; }); const Ut = Object.getPrototypeOf, Wt = (e, n, o) => { var r; return o(e, n.prototype) ? !0 : ((r = e.constructor) === null || r === void 0 ? void 0 : r.name) === n.name; }, _n = (e) => { const n = typeof e; return e === null ? "null" : n === "object" && Array.isArray(e) ? "array" : n === "object" && Wt(e, String, (o, r) => r.isPrototypeOf(o)) ? "string" : n; }, Pn = (e) => (n) => _n(n) === e, ot = (e) => (n) => typeof n === e, Mn = (e) => (n) => e === n, ut = (e, n) => at(e) && Wt(e, n, (o, r) => Ut(o) === r), q = Pn("string"), at = Pn("object"), Vt = (e) => ut(e, Object), pt = Pn("array"), j = Mn(null), vt = ot("boolean"), hn = Mn(void 0), Lt = (e) => e == null, Ge = (e) => !Lt(e), de = ot("function"), yo = ot("number"), dt = (e, n) => { if (pt(e)) { for (let o = 0, r = e.length; o < r; ++o) if (!n(e[o])) return !1; return !0; } return !1; }, We = () => { }, A = (e, n) => (...o) => e(n.apply(null, o)), vn = (e, n) => (o) => e(n(o)), be = (e) => () => e, kt = (e) => e, Et = (e, n) => e === n; function $e(e, ...n) { return (...o) => { const r = n.concat(o); return e.apply(null, r); }; } const Qn = (e) => (n) => !e(n), Ro = (e) => () => { throw new Error(e); }, xt = (e) => e(), fn = (e) => { e(); }, Ee = be(!1), ct = be(!0); class H { constructor(n, o) { this.tag = n, this.value = o; } static some(n) { return new H(!0, n); } static none() { return H.singletonNone; } fold(n, o) { return this.tag ? o(this.value) : n(); } isSome() { return this.tag; } isNone() { return !this.tag; } map(n) { return this.tag ? H.some(n(this.value)) : H.none(); } bind(n) { return this.tag ? n(this.value) : H.none(); } exists(n) { return this.tag && n(this.value); } forall(n) { return !this.tag || n(this.value); } filter(n) { return !this.tag || n(this.value) ? this : H.none(); } getOr(n) { return this.tag ? this.value : n; } or(n) { return this.tag ? this : n; } getOrThunk(n) { return this.tag ? this.value : n(); } orThunk(n) { return this.tag ? this : n(); } getOrDie(n) { if (this.tag) return this.value; throw new Error(n ?? "Called getOrDie on None"); } static from(n) { return Ge(n) ? H.some(n) : H.none(); } getOrNull() { return this.tag ? this.value : null; } getOrUndefined() { return this.value; } each(n) { this.tag && n(this.value); } toArray() { return this.tag ? [this.value] : []; } toString() { return this.tag ? `some(${this.value})` : "none()"; } } H.singletonNone = new H(!1); const Ct = Array.prototype.slice, pe = Array.prototype.indexOf, ze = Array.prototype.push, Ne = (e, n) => pe.call(e, n), Pe = (e, n) => { const o = Ne(e, n); return o === -1 ? H.none() : H.some(o); }, ye = (e, n) => Ne(e, n) > -1, Tt = (e, n) => { for (let o = 0, r = e.length; o < r; o++) { const c = e[o]; if (n(c, o)) return !0; } return !1; }, Ke = (e, n) => { const o = e.length, r = new Array(o); for (let c = 0; c < o; c++) { const u = e[c]; r[c] = n(u, c); } return r; }, Se = (e, n) => { for (let o = 0, r = e.length; o < r; o++) { const c = e[o]; n(c, o); } }, ko = (e, n) => { for (let o = e.length - 1; o >= 0; o--) { const r = e[o]; n(r, o); } }, go = (e, n) => { const o = [], r = []; for (let c = 0, u = e.length; c < u; c++) { const f = e[c]; (n(f, c) ? o : r).push(f); } return { pass: o, fail: r }; }, tn = (e, n) => { const o = []; for (let r = 0, c = e.length; r < c; r++) { const u = e[r]; n(u, r) && o.push(u); } return o; }, Or = (e, n, o) => (ko(e, (r, c) => { o = n(o, r, c); }), o), eo = (e, n, o) => (Se(e, (r, c) => { o = n(o, r, c); }), o), Tr = (e, n, o) => { for (let r = 0, c = e.length; r < c; r++) { const u = e[r]; if (n(u, r)) return H.some(u); if (o(u, r)) break; } return H.none(); }, Uo = (e, n) => Tr(e, n, Ee), $s = (e, n) => { for (let o = 0, r = e.length; o < r; o++) { const c = e[o]; if (n(c, o)) return H.some(o); } return H.none(); }, ua = (e) => { const n = []; for (let o = 0, r = e.length; o < r; ++o) { if (!pt(e[o])) throw new Error("Arr.flatten item " + o + " was not an array, input: " + e); ze.apply(n, e[o]); } return n; }, ps = (e, n) => ua(Ke(e, n)), No = (e, n) => { for (let o = 0, r = e.length; o < r; ++o) { const c = e[o]; if (n(c, o) !== !0) return !1; } return !0; }, Wo = (e) => { const n = Ct.call(e, 0); return n.reverse(), n; }, qa = (e, n) => tn(e, (o) => !ye(n, o)), Ho = (e, n) => { const o = {}; for (let r = 0, c = e.length; r < c; r++) { const u = e[r]; o[String(u)] = n(u, r); } return o; }, gs = (e, n) => { const o = Ct.call(e, 0); return o.sort(n), o; }, ls = (e, n) => n >= 0 && n < e.length ? H.some(e[n]) : H.none(), Jo = (e) => ls(e, 0), Ds = (e) => ls(e, e.length - 1), or = de(Array.from) ? Array.from : (e) => Ct.call(e), Xr = (e, n) => { for (let o = 0; o < e.length; o++) { const r = n(e[o], o); if (r.isSome()) return r; } return H.none(); }, Qs = (e, n) => { const o = [], r = de(n) ? (c) => Tt(o, (u) => n(u, c)) : (c) => ye(o, c); for (let c = 0, u = e.length; c < u; c++) { const f = e[c]; r(f) || o.push(f); } return o; }, Rs = Object.keys, mr = Object.hasOwnProperty, At = (e, n) => { const o = Rs(e); for (let r = 0, c = o.length; r < c; r++) { const u = o[r], f = e[u]; n(f, u); } }, bo = (e, n) => Jr(e, (o, r) => ({ k: r, v: n(o, r) })), Jr = (e, n) => { const o = {}; return At(e, (r, c) => { const u = n(r, c); o[u.k] = u.v; }), o; }, er = (e) => (n, o) => { e[o] = n; }, Ia = (e, n, o, r) => { At(e, (c, u) => { (n(c, u) ? o : r)(c, u); }); }, da = (e, n) => { const o = {}, r = {}; return Ia(e, n, er(o), er(r)), { t: o, f: r }; }, us = (e, n) => { const o = {}; return Ia(e, n, er(o), We), o; }, ba = (e, n) => { const o = []; return At(e, (r, c) => { o.push(n(r, c)); }), o; }, kr = (e) => ba(e, kt), Zo = (e, n) => Nn(e, n) ? H.from(e[n]) : H.none(), Nn = (e, n) => mr.call(e, n), fr = (e, n) => Nn(e, n) && e[n] !== void 0 && e[n] !== null, ke = (e, n, o = fo) => Dn(o).eq(e, n), Le = (e) => { const n = {}; return Se(e, (o) => { n[o] = {}; }), Rs(n); }, Rt = (e) => e.length !== void 0, an = Array.isArray, oo = (e) => { if (an(e)) return e; { const n = []; for (let o = 0, r = e.length; o < r; o++) n[o] = e[o]; return n; } }, Eo = (e, n, o) => { if (!e) return !1; if (o = o || e, Rt(e)) { for (let r = 0, c = e.length; r < c; r++) if (n.call(o, e[r], r, e) === !1) return !1; } else for (const r in e) if (Nn(e, r) && n.call(o, e[r], r, e) === !1) return !1; return !0; }, Vs = (e, n) => { const o = []; return Eo(e, (r, c) => { o.push(n(r, c, e)); }), o; }, ae = (e, n) => { const o = []; return Eo(e, (r, c) => { (!n || n(r, c, e)) && o.push(r); }), o; }, oe = (e, n) => { if (e) { for (let o = 0, r = e.length; o < r; o++) if (e[o] === n) return o; } return -1; }, Ze = (e, n, o, r) => { let c = hn(o) ? e[0] : o; for (let u = 0; u < e.length; u++) c = n.call(r, c, e[u], u); return c; }, He = (e, n, o) => { for (let r = 0, c = e.length; r < c; r++) if (n.call(o, e[r], r, e)) return r; return -1; }, dn = (e) => e[e.length - 1], Rn = (e) => { let n = !1, o; return (...r) => (n || (n = !0, o = e.apply(null, r)), o); }, Co = (e, n, o, r) => { const c = e.isiOS() && /ipad/i.test(o) === !0, u = e.isiOS() && !c, f = e.isiOS() || e.isAndroid(), b = f || r("(pointer:coarse)"), C = c || !u && f && r("(min-device-width:768px)"), k = u || f && !C, N = n.isSafari() && e.isiOS() && /safari/i.test(o) === !1, R = !k && !C && !N; return { isiPad: be(c), isiPhone: be(u), isTablet: be(C), isPhone: be(k), isTouch: be(b), isAndroid: e.isAndroid, isiOS: e.isiOS, isWebView: be(N), isDesktop: be(R) }; }, ds = (e, n) => { for (let o = 0; o < e.length; o++) { const r = e[o]; if (r.test(n)) return r; } }, uo = (e, n) => { const o = ds(e, n); if (!o) return { major: 0, minor: 0 }; const r = (c) => Number(n.replace(o, "$" + c)); return rs(r(1), r(2)); }, Ao = (e, n) => { const o = String(n).toLowerCase(); return e.length === 0 ? we() : uo(e, o); }, we = () => rs(0, 0), rs = (e, n) => ({ major: e, minor: n }), re = { nu: rs, detect: Ao, unknown: we }, ie = (e, n) => Xr(n.brands, (o) => { const r = o.brand.toLowerCase(); return Uo(e, (c) => { var u; return r === ((u = c.brand) === null || u === void 0 ? void 0 : u.toLowerCase()); }).map((c) => ({ current: c.name, version: re.nu(parseInt(o.version, 10), 0) })); }), gt = (e, n) => { const o = String(n).toLowerCase(); return Uo(e, (r) => r.search(o)); }, ht = (e, n) => gt(e, n).map((o) => { const r = re.detect(o.versionRegexes, n); return { current: o.name, version: r }; }), Zt = (e, n) => gt(e, n).map((o) => { const r = re.detect(o.versionRegexes, n); return { current: o.name, version: r }; }), mn = (e, n) => e.substring(n), ln = (e, n, o) => n === "" || e.length >= n.length && e.substr(o, o + n.length) === n, pn = (e, n) => zn(e, n) ? mn(e, n.length) : e, Vn = (e, n, o = 0, r) => { const c = e.indexOf(n, o); return c !== -1 ? hn(r) ? !0 : c + n.length <= r : !1; }, zn = (e, n) => ln(e, n, 0), ws = (e, n) => ln(e, n, e.length - n.length), zs = (e) => (n) => n.replace(e, ""), Aa = zs(/^\s+|\s+$/g), Fa = zs(/^\s+/g), rc = zs(/\s+$/g), Yn = (e) => e.length > 0, as = (e) => !Yn(e), Ss = (e, n) => n <= 0 ? "" : new Array(n + 1).join(e), Wr = (e, n = 10) => { const o = parseInt(e, n); return isNaN(o) ? H.none() : H.some(o); }, Qr = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, Pr = (e) => (n) => Vn(n, e), qs = [ { name: "Edge", versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/], search: (e) => Vn(e, "edge/") && Vn(e, "chrome") && Vn(e, "safari") && Vn(e, "applewebkit") }, { name: "Chromium", brand: "Chromium", versionRegexes: [ /.*?chrome\/([0-9]+)\.([0-9]+).*/, Qr ], search: (e) => Vn(e, "chrome") && !Vn(e, "chromeframe") }, { name: "IE", versionRegexes: [ /.*?msie\ ?([0-9]+)\.([0-9]+).*/, /.*?rv:([0-9]+)\.([0-9]+).*/ ], search: (e) => Vn(e, "msie") || Vn(e, "trident") }, { name: "Opera", versionRegexes: [ Qr, /.*?opera\/([0-9]+)\.([0-9]+).*/ ], search: Pr("opera") }, { name: "Firefox", versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/], search: Pr("firefox") }, { name: "Safari", versionRegexes: [ Qr, /.*?cpu os ([0-9]+)_([0-9]+).*/ ], search: (e) => (Vn(e, "safari") || Vn(e, "mobile/")) && Vn(e, "applewebkit") } ], Jl = [ { name: "Windows", search: Pr("win"), versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/] }, { name: "iOS", search: (e) => Vn(e, "iphone") || Vn(e, "ipad"), versionRegexes: [ /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, /.*cpu os ([0-9]+)_([0-9]+).*/, /.*cpu iphone os ([0-9]+)_([0-9]+).*/ ] }, { name: "Android", search: Pr("android"), versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/] }, { name: "macOS", search: Pr("mac os x"), versionRegexes: [/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/] }, { name: "Linux", search: Pr("linux"), versionRegexes: [] }, { name: "Solaris", search: Pr("sunos"), versionRegexes: [] }, { name: "FreeBSD", search: Pr("freebsd"), versionRegexes: [] }, { name: "ChromeOS", search: Pr("cros"), versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/] } ], Ui = { browsers: be(qs), oses: be(Jl) }, xs = "Edge", va = "Chromium", Oa = "IE", gr = "Opera", Wi = "Firefox", ac = "Safari", ya = () => wc({ current: void 0, version: re.unknown() }), wc = (e) => { const n = e.current, o = e.version, r = (c) => () => n === c; return { current: n, version: o, isEdge: r(xs), isChromium: r(va), isIE: r(Oa), isOpera: r(gr), isFirefox: r(Wi), isSafari: r(ac) }; }, dl = { unknown: ya, nu: wc, edge: be(xs), chromium: be(va), ie: be(Oa), opera: be(gr), firefox: be(Wi), safari: be(ac) }, bi = "Windows", ml = "iOS", Da = "Android", Nc = "Linux", Zi = "macOS", jc = "Solaris", ji = "FreeBSD", Z = "ChromeOS", me = () => xe({ current: void 0, version: re.unknown() }), xe = (e) => { const n = e.current, o = e.version, r = (c) => () => n === c; return { current: n, version: o, isWindows: r(bi), isiOS: r(ml), isAndroid: r(Da), isMacOS: r(Zi), isLinux: r(Nc), isSolaris: r(jc), isFreeBSD: r(ji), isChromeOS: r(Z) }; }, qe = { unknown: me, nu: xe, windows: be(bi), ios: be(ml), android: be(Da), linux: be(Nc), macos: be(Zi), solaris: be(jc), freebsd: be(ji), chromeos: be(Z) }, $n = { detect: (e, n, o) => { const r = Ui.browsers(), c = Ui.oses(), u = n.bind((C) => ie(r, C)).orThunk(() => ht(r, e)).fold(dl.unknown, dl.nu), f = Zt(c, e).fold(qe.unknown, qe.nu), b = Co(f, u, e, o); return { browser: u, os: f, deviceType: b }; } }, Es = (e) => window.matchMedia(e).matches; let $r = Rn(() => $n.detect(navigator.userAgent, H.from(navigator.userAgentData), Es)); const jo = () => $r(), Ir = navigator.userAgent, cs = jo(), ur = cs.browser, Bc = cs.os, Sc = cs.deviceType, ao = Ir.indexOf("Windows Phone") !== -1, ms = { transparentSrc: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", documentMode: ur.isIE() ? document.documentMode || 7 : 10, cacheSuffix: null, container: null, canHaveCSP: !ur.isIE(), windowsPhone: ao, browser: { current: ur.current, version: ur.version, isChromium: ur.isChromium, isEdge: ur.isEdge, isFirefox: ur.isFirefox, isIE: ur.isIE, isOpera: ur.isOpera, isSafari: ur.isSafari }, os: { current: Bc.current, version: Bc.version, isAndroid: Bc.isAndroid, isChromeOS: Bc.isChromeOS, isFreeBSD: Bc.isFreeBSD, isiOS: Bc.isiOS, isLinux: Bc.isLinux, isMacOS: Bc.isMacOS, isSolaris: Bc.isSolaris, isWindows: Bc.isWindows }, deviceType: { isDesktop: Sc.isDesktop, isiPad: Sc.isiPad, isiPhone: Sc.isiPhone, isPhone: Sc.isPhone, isTablet: Sc.isTablet, isTouch: Sc.isTouch, isWebView: Sc.isWebView } }, oa = /^\s*|\s*$/g, P = (e) => Lt(e) ? "" : ("" + e).replace(oa, ""), K = (e, n) => n ? n === "array" && an(e) ? !0 : typeof e === n : e !== void 0, ne = (e, n, o = {}) => { const r = q(e) ? e.split(n || ",") : e || []; let c = r.length; for (; c--; ) o[r[c]] = {}; return o; }, Ve = Nn, Yt = (e, ...n) => { for (let o = 0; o < n.length; o++) { const r = n[o]; for (const c in r) if (Nn(r, c)) { const u = r[c]; u !== void 0 && (e[c] = u); } } return e; }, vo = function(e, n, o, r) { r = r || this, e && (o && (e = e[o]), Eo(e, (c, u) => n.call(r, c, u, o) === !1 ? !1 : (vo(c, n, o, r), !0))); }, ft = { trim: P, isArray: an, is: K, toArray: oo, makeMap: ne, each: Eo, map: Vs, grep: ae, inArray: oe, hasOwn: Ve, extend: Yt, walk: vo, resolve: (e, n = window) => { const o = e.split("."); for (let r = 0, c = o.length; r < c && (n = n[o[r]], !!n); r++) ; return n; }, explode: (e, n) => pt(e) ? e : e === "" ? [] : Vs(e.split(n || ","), P), _addCacheSuffix: (e) => { const n = ms.cacheSuffix; return n && (e += (e.indexOf("?") === -1 ? "?" : "&") + n), e; } }, jr = (e, n, o = Et) => e.exists((r) => o(r, n)), hr = (e) => { const n = [], o = (r) => { n.push(r); }; for (let r = 0; r < e.length; r++) e[r].each(o); return n; }, ra = (e, n, o) => e.isSome() && n.isSome() ? H.some(o(e.getOrDie(), n.getOrDie())) : H.none(), fd = (e, n, o, r) => e.isSome() && n.isSome() && o.isSome() ? H.some(r(e.getOrDie(), n.getOrDie(), o.getOrDie())) : H.none(), $o = (e, n) => e ? H.some(n) : H.none(), Y = typeof window < "u" ? window : Function("return this;")(), se = (e, n) => { let o = n ?? Y; for (let r = 0; r < e.length && o !== void 0 && o !== null; ++r) o = o[e[r]]; return o; }, De = (e, n) => { const o = e.split("."); return se(o, n); }, Je = (e, n) => De(e, n), bn = (e, n) => { const o = Je(e, n); if (o == null) throw new Error(e + " not available on this browser"); return o; }, Qo = Object.getPrototypeOf, sr = (e) => bn("HTMLElement", e), Vo = (e) => { const n = De("ownerDocument.defaultView", e); return at(e) && (sr(n).prototype.isPrototypeOf(e) || /^HTML\w*Element$/.test(Qo(e).constructor.name)); }, tr = 8, Ca = 9, Us = 11, xc = 1, Gc = 3, Is = (e) => e.dom.nodeName.toLowerCase(), wa = (e) => e.dom.nodeType, pr = (e) => (n) => wa(n) === e, Ri = (e) => wa(e) === tr || Is(e) === "#comment", Ol = (e) => Ks(e) && Vo(e.dom), Ks = pr(xc), Tc = pr(Gc), Mi = pr(Ca), gd = pr(Us), fl = (e) => (n) => Ks(n) && Is(n) === e, ti = (e, n, o) => { if (q(o) || vt(o) || yo(o)) e.setAttribute(n, o + ""); else throw console.error("Invalid call to Attribute.set. Key ", n, ":: Value ", o, ":: Element ", e), new Error("Attribute value was not simple"); }, ea = (e, n, o) => { ti(e.dom, n, o); }, cc = (e, n) => { const o = e.dom; At(n, (r, c) => { ti(o, c, r); }); }, Pc = (e, n) => { const o = e.dom.getAttribute(n); return o === null ? void 0 : o; }, ni = (e, n) => H.from(Pc(e, n)), Ka = (e, n) => { const o = e.dom; return o && o.hasAttribute ? o.hasAttribute(n) : !1; }, Fr = (e, n) => { e.dom.removeAttribute(n); }, qc = (e) => { const n = e.dom.attributes; return n == null || n.length === 0; }, nm = (e) => eo(e.dom.attributes, (n, o) => (n[o.name] = o.value, n), {}), Ql = (e, n) => { const o = Pc(e, n); return o === void 0 || o === "" ? [] : o.split(" "); }, eu = (e, n, o) => { const c = Ql(e, n).concat([o]); return ea(e, n, c.join(" ")), !0; }, Zm = (e, n, o) => { const r = tn(Ql(e, n), (c) => c !== o); return r.length > 0 ? ea(e, n, r.join(" ")) : Fr(e, n), !1; }, vi = (e) => e.dom.classList !== void 0, tu = (e) => Ql(e, "class"), hd = (e, n) => eu(e, "class", n), Gr = (e, n) => Zm(e, "class", n), om = (e, n) => ye(tu(e), n) ? Gr(e, n) : hd(e, n), Au = (e, n) => { vi(e) ? e.dom.classList.add(n) : hd(e, n); }, Ou = (e) => { (vi(e) ? e.dom.classList : tu(e)).length === 0 && Fr(e, "class"); }, pd = (e, n) => { vi(e) ? e.dom.classList.remove(n) : Gr(e, n), Ou(e); }, bd = (e, n) => { const o = vi(e) ? e.dom.classList.toggle(n) : om(e, n); return Ou(e), o; }, vd = (e, n) => vi(e) && e.dom.classList.contains(n), Du = (e, n) => { const r = (n || document).createElement("div"); if (r.innerHTML = e, !r.hasChildNodes() || r.childNodes.length > 1) { const c = "HTML does not have a single root node"; throw console.error(c, e), new Error(c); } return nu(r.childNodes[0]); }, jm = (e, n) => { const r = (n || document).createElement(e); return nu(r); }, Gm = (e, n) => { const r = (n || document).createTextNode(e); return nu(r); }, nu = (e) => { if (e == null) throw new Error("Node cannot be null or undefined"); return { dom: e }; }, ce = { fromHtml: Du, fromTag: jm, fromText: Gm, fromDom: nu, fromPoint: (e, n, o) => H.from(e.dom.elementFromPoint(n, o)).map(nu) }, yd = (e, n) => { const o = [], r = (u) => (o.push(u), n(u)); let c = n(e); do c = c.bind(r); while (c.isSome()); return o; }, $c = (e, n) => { const o = e.dom; if (o.nodeType !== xc) return !1; { const r = o; if (r.matches !== void 0) return r.matches(n); if (r.msMatchesSelector !== void 0) return r.msMatchesSelector(n); if (r.webkitMatchesSelector !== void 0) return r.webkitMatchesSelector(n); if (r.mozMatchesSelector !== void 0) return r.mozMatchesSelector(n); throw new Error("Browser lacks native selectors"); } }, Ff = (e) => e.nodeType !== xc && e.nodeType !== Ca && e.nodeType !== Us || e.childElementCount === 0, bp = (e, n) => { const o = n === void 0 ? document : n.dom; return Ff(o) ? [] : Ke(o.querySelectorAll(e), ce.fromDom); }, vp = (e, n) => { const o = n === void 0 ? document : n.dom; return Ff(o) ? H.none() : H.from(o.querySelector(e)).map(ce.fromDom); }, _s = (e, n) => e.dom === n.dom, Ni = (e, n) => { const o = e.dom, r = n.dom; return o === r ? !1 : o.contains(r); }, kc = (e) => ce.fromDom(e.dom.ownerDocument), oi = (e) => Mi(e) ? e : kc(e), Wg = (e) => ce.fromDom(oi(e).dom.documentElement), Dl = (e) => ce.fromDom(oi(e).dom.defaultView), yi = (e) => H.from(e.dom.parentNode).map(ce.fromDom), sm = (e) => H.from(e.dom.parentElement).map(ce.fromDom), Lf = (e, n) => { const o = de(n) ? n : Ee; let r = e.dom; const c = []; for (; r.parentNode !== null && r.parentNode !== void 0; ) { const u = r.parentNode, f = ce.fromDom(u); if (c.push(f), o(f) === !0) break; r = u; } return c; }, Zg = (e) => { const n = (o) => tn(o, (r) => !_s(e, r)); return yi(e).map(La).map(n).getOr([]); }, Kc = (e) => H.from(e.dom.previousSibling).map(ce.fromDom), Cd = (e) => H.from(e.dom.nextSibling).map(ce.fromDom), jg = (e) => Wo(yd(e, Kc)), si = (e) => yd(e, Cd), La = (e) => Ke(e.dom.childNodes, ce.fromDom), wd = (e, n) => { const o = e.dom.childNodes; return H.from(o[n]).map(ce.fromDom); }, Sd = (e) => wd(e, 0), Bi = (e) => wd(e, e.dom.childNodes.length - 1), Ic = (e) => e.dom.childNodes.length, qm = (e) => { const n = e.dom.head; if (n == null) throw new Error("Head is not available yet"); return ce.fromDom(n); }, Km = (e) => gd(e) && Ge(e.dom.host), Ym = de(Element.prototype.attachShadow) && de(Node.prototype.getRootNode), Xm = be(Ym), Gi = Ym ? (e) => ce.fromDom(e.dom.getRootNode()) : oi, rm = (e) => Km(e) ? e : qm(oi(e)), Gg = (e) => Km(e) ? e : ce.fromDom(oi(e).dom.body), L0 = (e) => { const n = Gi(e); return Km(n) ? H.some(n) : H.none(); }, qg = (e) => ce.fromDom(e.dom.host), am = (e) => { if (Xm() && Ge(e.target)) { const n = ce.fromDom(e.target); if (Ks(n) && Hf(n) && e.composed && e.composedPath) { const o = e.composedPath(); if (o) return Jo(o); } } return H.from(e.target); }, Hf = (e) => Ge(e.dom.shadowRoot), Rl = (e) => { const n = Tc(e) ? e.dom.parentNode : e.dom; if (n == null || n.ownerDocument === null) return !1; const o = n.ownerDocument; return L0(ce.fromDom(n)).fold(() => o.body.contains(n), vn(Rl, qg)); }; var Vf = (e, n, o, r, c) => e(o, r) ? H.some(o) : de(c) && c(o) ? H.none() : n(o, r, c); const dr = (e, n, o) => { let r = e.dom; const c = de(o) ? o : Ee; for (; r.parentNode; ) { r = r.parentNode; const u = ce.fromDom(r); if (n(u)) return H.some(u); if (c(u)) break; } return H.none(); }, E = (e, n, o) => Vf((c, u) => u(c), dr, e, n, o), M = (e, n) => { const o = e.dom; return o.parentNode ? z(ce.fromDom(o.parentNode), (r) => !_s(e, r) && n(r)) : H.none(); }, z = (e, n) => { const o = (c) => n(ce.fromDom(c)); return Uo(e.dom.childNodes, o).map(ce.fromDom); }, fe = (e, n) => { const o = (r) => { for (let c = 0; c < r.childNodes.length; c++) { const u = ce.fromDom(r.childNodes[c]); if (n(u)) return H.some(u); const f = o(r.childNodes[c]); if (f.isSome()) return f; } return H.none(); }; return o(e.dom); }, ge = (e, n, o) => dr(e, (r) => $c(r, n), o), It = (e, n) => vp(n, e), Wn = (e, n, o) => Vf((c, u) => $c(c, u), ge, e, n, o), lo = (e) => Wn(e, "[contenteditable]"), Io = (e, n = !1) => Rl(e) ? e.dom.isContentEditable : lo(e).fold(be(n), (o) => $t(o) === "true"), $t = (e) => e.dom.contentEditable, Ps = (e) => e.style !== void 0 && de(e.style.getPropertyValue), Ra = (e, n, o) => { if (!q(o)) throw console.error("Invalid call to CSS.set. Property ", n, ":: Value ", o, ":: Element ", e), new Error("CSS value must be a string: " + o); Ps(e) && e.style.setProperty(n, o); }, Ci = (e, n) => { Ps(e) && e.style.removeProperty(n); }, cm = (e, n, o) => { const r = e.dom; Ra(r, n, o); }, zf = (e, n) => { const o = e.dom; At(n, (r, c) => { Ra(o, c, r); }); }, gl = (e, n) => { const o = e.dom, c = window.getComputedStyle(o).getPropertyValue(n); return c === "" && !Rl(e) ? wi(o, n) : c; }, wi = (e, n) => Ps(e) ? e.style.getPropertyValue(n) : "", Fc = (e, n) => { const o = e.dom, r = wi(o, n); return H.from(r).filter((c) => c.length > 0); }, Pi = (e) => { const n = {}, o = e.dom; if (Ps(o)) for (let r = 0; r < o.style.length; r++) { const c = o.style.item(r); n[c] = o.style[c]; } return n; }, Ya = (e, n) => { const o = e.dom; Ci(o, n), jr(ni(e, "style").map(Aa), "") && Fr(e, "style"); }, pb = (e) => e.dom.offsetWidth, Ms = (e, n) => { yi(e).each((r) => { r.dom.insertBefore(n.dom, e.dom); }); }, Ru = (e, n) => { Cd(e).fold(() => { yi(e).each((c) => { qr(c, n); }); }, (r) => { Ms(r, n); }); }, xd = (e, n) => { Sd(e).fold(() => { qr(e, n); }, (r) => { e.dom.insertBefore(n.dom, r.dom); }); }, qr = (e, n) => { e.dom.appendChild(n.dom); }, bb = (e, n) => { Ms(e, n), qr(n, e); }, H0 = (e, n) => { Se(n, (o, r) => { const c = r === 0 ? e : n[r - 1]; Ru(c, o); }); }, Mu = (e, n) => { Se(n, (o) => { qr(e, o); }); }, nr = (e) => { e.dom.textContent = "", Se(La(e), (n) => { rr(n); }); }, rr = (e) => { const n = e.dom; n.parentNode !== null && n.parentNode.removeChild(n); }, Sa = (e) => { const n = La(e); n.length > 0 && H0(e, n), rr(e); }, Td = (e, n) => { const r = (n || document).createElement("div"); return r.innerHTML = e, La(ce.fromDom(r)); }, kd = (e) => Ke(e, ce.fromDom), im = (e) => e.dom.innerHTML, Ed = (e, n) => { const r = kc(e).dom, c = ce.fromDom(r.createDocumentFragment()), u = Td(n, r); Mu(c, u), nr(e), qr(e, c); }, Go = (e) => { const n = ce.fromTag("div"), o = ce.fromDom(e.dom.cloneNode(!0)); return qr(n, o), im(n); }, Kg = (e, n, o, r, c, u, f) => ({ target: e, x: n, y: o, stop: r, prevent: c, kill: u, raw: f }), yp = (e) => { const n = ce.fromDom(am(e).getOr(e.target)), o = () => e.stopPropagation(), r = () => e.preventDefault(), c = A(r, o); return Kg(n, e.clientX, e.clientY, o, r, c, e); }, V0 = (e, n) => (o) => { e(o) && n(yp(o)); }, z0 = (e, n, o, r, c) => { const u = V0(o, r); return e.dom.addEventListener(n, u, c), { unbind: $e(vb, e, n, u, c) }; }, Uf = (e, n, o, r) => z0(e, n, o, r, !1), vb = (e, n, o, r) => { e.dom.removeEventListener(n, o, r); }, Wf = (e, n) => ({ left: e, top: n, translate: (r, c) => Wf(e + r, n + c) }), hl = Wf, yb = (e) => { const n = e.getBoundingClientRect(); return hl(n.left, n.top); }, Yg = (e, n) => e !== void 0 ? e : n !== void 0 ? n : 0, Cb = (e) => { const n = e.dom.ownerDocument, o = n.body, r = n.defaultView, c = n.documentElement; if (o === e.dom) return hl(o.offsetLeft, o.offsetTop); const u = Yg(r == null ? void 0 : r.pageYOffset, c.scrollTop), f = Yg(r == null ? void 0 : r.pageXOffset, c.scrollLeft), b = Yg(c.clientTop, o.clientTop), C = Yg(c.clientLeft, o.clientLeft); return Ml(e).translate(f - C, u - b); }, Ml = (e) => { const n = e.dom, r = n.ownerDocument.body; return r === n ? hl(r.offsetLeft, r.offsetTop) : Rl(e) ? yb(n) : hl(0, 0); }, Cp = (e) => { const n = e !== void 0 ? e.dom : document, o = n.body.scrollLeft || n.documentElement.scrollLeft, r = n.body.scrollTop || n.documentElement.scrollTop; return hl(o, r); }, Nl = (e, n) => { jo().browser.isSafari() && de(e.dom.scrollIntoViewIfNeeded) ? e.dom.scrollIntoViewIfNeeded(!1) : e.dom.scrollIntoView(n); }, Jm = (e) => { const n = e === void 0 ? window : e; return jo().browser.isFirefox() ? H.none() : H.from(n.visualViewport); }, wb = (e, n, o, r) => ({ x: e, y: n, width: o, height: r, right: e + o, bottom: n + r }), Xg = (e) => { const n = e === void 0 ? window : e, o = n.document, r = Cp(ce.fromDom(o)); return Jm(n).fold(() => { const c = n.document.documentElement, u = c.clientWidth, f = c.clientHeight; return wb(r.left, r.top, u, f); }, (c) => wb(Math.max(c.pageLeft, r.left), Math.max(c.pageTop, r.top), c.width, c.height)); }, wp = (e, n) => tn(La(e), n), Sp = (e, n) => { let o = []; return Se(La(e), (r) => { n(r) && (o = o.concat([r])), o = o.concat(Sp(r, n)); }), o; }, ic = (e, n) => bp(n, e), xp = (e, n, o) => ge(e, n, o).isSome(); class xa { constructor(n, o) { this.node = n, this.rootNode = o, this.current = this.current.bind(this), this.next = this.next.bind(this), this.prev = this.prev.bind(this), this.prev2 = this.prev2.bind(this); } current() { return this.node; } next(n) { return this.node = this.findSibling(this.node, "firstChild", "nextSibling", n), this.node; } prev(n) { return this.node = this.findSibling(this.node, "lastChild", "previousSibling", n), this.node; } prev2(n) { return this.node = this.findPreviousNode(this.node, n), this.node; } findSibling(n, o, r, c) { if (n) { if (!c && n[o]) return n[o]; if (n !== this.rootNode) { let u = n[r]; if (u) return u; for (let f = n.parentNode; f && f !== this.rootNode; f = f.parentNode) if (u = f[r], u) return u; } } } findPreviousNode(n, o) { if (n) { const r = n.previousSibling; if (this.rootNode && r === this.rootNode) return; if (r) { if (!o) { for (let u = r.lastChild; u; u = u.lastChild) if (!u.lastChild) return u; } return r; } const c = n.parentNode; if (c && c !== this.rootNode) return c; } } } const _d = (e) => (n) => !!n && n.nodeType === e, ri = (e) => !!e && !Object.getPrototypeOf(e), tt = _d(1), Bl = (e) => { const n = e.toLowerCase(); return (o) => Ge(o) && o.nodeName.toLowerCase() === n; }, qi = (e) => { const n = e.map((o) => o.toLowerCase()); return (o) => { if (o && o.nodeName) { const r = o.nodeName.toLowerCase(); return ye(n, r); } return !1; }; }, Nu = (e, n) => { const o = n.toLowerCase().split(" "); return (r) => { if (tt(r)) { const c = r.ownerDocument.defaultView; if (c) for (let u = 0; u < o.length; u++) { const f = c.getComputedStyle(r, null); if ((f ? f.getPropertyValue(e) : null) === o[u]) return !0; } } return !1; }; }, Tp = (e) => (n) => tt(n) && n.hasAttribute(e), kp = (e, n) => (o) => tt(o) && o.getAttribute(e) === n, lc = (e) => tt(e) && e.hasAttribute("data-mce-bogus"), Bu = (e) => tt(e) && e.getAttribute("data-mce-bogus") === "all", pl = (e) => tt(e) && e.tagName === "TABLE", Xa = (e) => (n) => !!(tt(n) && (n.contentEditable === e || n.getAttribute("data-mce-contenteditable") === e)), lm = qi([ "textarea", "input" ]), Ot = _d(3), Ep = _d(4), U0 = _d(7), Pu = _d(8), Pl = _d(9), Jg = _d(11), Dr = Bl("br"), Qm = Bl("img"), $l = Xa("true"), _o = Xa("false"), $i = qi([ "td", "th" ]), ai = qi([ "td", "th", "caption" ]), Si = qi([ "video", "audio", "object", "embed" ]), ci = Bl("li"), Ki = "\uFEFF", Fs = " ", Lc = (e) => e === Ki, Qg = (e) => e.replace(/\uFEFF/g, ""), ii = ((e, n) => { const o = (u) => { if (!e(u)) throw new Error("Can only get " + n + " value of a " + n + " node"); return r(u).getOr(""); }, r = (u) => e(u) ? H.from(u.dom.nodeValue) : H.none(); return { get: o, getOption: r, set: (u, f) => { if (!e(u)) throw new Error("Can only set raw " + n + " value of a " + n + " node"); u.dom.nodeValue = f; } }; })(Tc, "text"), Zf = (e) => ii.get(e), ma = (e) => ii.getOption(e), ou = (e, n) => ii.set(e, n), _p = [ "article", "aside", "details", "div", "dt", "figcaption", "footer", "form", "fieldset", "header", "hgroup", "html", "main", "nav", "section", "summary", "body", "p", "dl", "multicol", "dd", "figure", "address", "center", "blockquote", "h1", "h2", "h3", "h4", "h5", "h6", "listing", "xmp", "pre", "plaintext", "menu", "dir", "ul", "ol", "li", "hr", "table", "tbody", "thead", "tfoot", "th", "tr", "td", "caption" ], bl = [ "td", "th" ], W0 = [ "thead", "tbody", "tfoot" ], $u = [ "h1", "h2", "h3", "h4", "h5", "h6", "p", "div", "address", "pre", "form", "blockquote", "center", "dir", "fieldset", "header", "footer", "article", "section", "hgroup", "aside", "nav", "figure" ], Sb = [ "h1", "h2", "h3", "h4", "h5", "h6" ], xi = [ "li", "dd", "dt" ], As = [ "ul", "ol", "dl" ], su = [ "pre", "script", "textarea", "style" ], jf = ["pre"].concat(Sb), fa = (e) => { let n; return (o) => (n = n || Ho(e, ct), Nn(n, Is(o))); }, li = fa(_p), um = (e) => Is(e) === "table", Gf = (e) => Ks(e) && !li(e), Ja = (e) => Ks(e) && Is(e) === "br", eh = fa($u), Re = fa(As), Hc = fa(xi), ef = fa(W0), Ec = fa(bl), Yi = fa(su), Vc = fa(jf), Ma = (e) => Vc(e) || Gf(e), Z0 = (e) => { const n = []; let o = e.dom; for (; o; ) n.push(ce.fromDom(o)), o = o.lastChild; return n; }, th = (e) => { const n = ic(e, "br"), o = tn(Z0(e).slice(-1), Ja); n.length === o.length && Se(o, rr); }, w = () => { const e = ce.fromTag("br"); return ea(e, "data-mce-bogus", "1"), e; }, S = (e) => { nr(e), qr(e, w()); }, F = (e) => { Bi(e).each((n) => { Kc(n).each((o) => { li(e) && Ja(n) && li(o) && rr(n); }); }); }, W = Ki, he = Lc, Ye = Qg, Dt = tt, cn = Ot, ho = (e) => (cn(e) && (e = e.parentNode), Dt(e) && e.hasAttribute("data-mce-caret")), po = (e) => cn(e) && he(e.data), Ts = (e) => ho(e) || po(e), js = (e) => e.firstChild !== e.lastChild || !Dr(e.firstChild), Er = (e, n) => { var o; const c = ((o = e.ownerDocument) !== null && o !== void 0 ? o : document).createTextNode(W), u = e.parentNode; if (n) { const f = e.previousSibling; if (cn(f)) { if (Ts(f)) return f; if (dm(f)) return f.splitText(f.data.length - 1); } u == null || u.insertBefore(c, e); } else { const f = e.nextSibling; if (cn(f)) { if (Ts(f)) return f; if (Xi(f)) return f.splitText(1), f; } e.nextSibling ? u == null || u.insertBefore(c, e.nextSibling) : u == null || u.appendChild(c); } return c; }, ui = (e) => { const n = e.container(); return Ot(n) ? n.data.charAt(e.offset()) === W || e.isAtStart() && po(n.previousSibling) : !1; }, uc = (e) => { const n = e.container(); return Ot(n) ? n.data.charAt(e.offset() - 1) === W || e.isAtEnd() && po(n.nextSibling) : !1; }, Iu = (e, n, o) => { var r; const u = ((r = n.ownerDocument) !== null && r !== void 0 ? r : document).createElement(e); u.setAttribute("data-mce-caret", o ? "before" : "after"), u.setAttribute("data-mce-bogus", "all"), u.appendChild(w().dom); const f = n.parentNode; return o ? f == null || f.insertBefore(u, n) : n.nextSibling ? f == null || f.insertBefore(u, n.nextSibling) : f == null || f.appendChild(u), u; }, Xi = (e) => cn(e) && e.data[0] === W, dm = (e) => cn(e) && e.data[e.data.length - 1] === W, qf = (e) => { var n; const o = e.getElementsByTagName("br"), r = o[o.length - 1]; lc(r) && ((n = r.parentNode) === null || n === void 0 || n.removeChild(r)); }, Ji = (e) => e && e.hasAttribute("data-mce-caret") ? (qf(e), e.removeAttribute("data-mce-caret"), e.removeAttribute("data-mce-bogus"), e.removeAttribute("style"), e.removeAttribute("data-mce-style"), e.removeAttribute("_moz_abspos"), e) : null, mm = (e) => ho(e.startContainer), nh = $l, oh = _o, tf = Dr, Ha = Ot, ru = qi([ "script", "style", "textarea" ]), es = qi([ "img", "input", "textarea", "hr", "iframe", "video", "audio", "object", "embed" ]), ar = qi(["table"]), Yc = Ts, Ys = (e) => Yc(e) ? !1 : Ha(e) ? !ru(e.parentNode) : es(e) || tf(e) || ar(e) || fm(e), sh = (e) => tt(e) && e.getAttribute("unselectable") === "true", fm = (e) => !sh(e) && oh(e), gm = (e, n) => { for (let o = e.parentNode; o && o !== n; o = o.parentNode) { if (fm(o)) return !1; if (nh(o)) return !0; } return !0; }, vl = (e) => fm(e) ? !eo(or(e.getElementsByTagName("*")), (n, o) => n || nh(o), !1) : !1, nf = (e) => es(e) || vl(e), xb = (e, n) => Ys(e) && gm(e, n), Qi = /^[ \t\r\n]*$/, of = (e) => Qi.test(e), Ad = (e) => " \f \v".indexOf(e) !== -1, au = (e) => e === ` ` || e === "\r", Il = (e, n) => n < e.length && n >= 0 ? au(e[n]) : !1, Ap = (e, n = 4, o = !0, r = !0) => { const c = Ss(" ", n), u = e.replace(/\t/g, c); return eo(u, (b, C) => Ad(C) || C === Fs ? b.pcIsSpace || b.str === "" && o || b.str.length === u.length - 1 && r || Il(u, b.str.length + 1) ? { pcIsSpace: !1, str: b.str + Fs } : { pcIsSpace: !0, str: b.str + " " } : { pcIsSpace: au(C), str: b.str + C }, { pcIsSpace: !1, str: "" }).str; }, rh = (e, n) => { const o = ce.fromDom(n), r = ce.fromDom(e); return xp(r, "pre,code", $e(_s, o)); }, Zw = (e, n) => Ot(e) && of(e.data) && !rh(e, n), Ik = (e) => tt(e) && e.nodeName === "A" && !e.hasAttribute("href") && (e.hasAttribute("name") || e.hasAttribute("id")), ta = (e, n) => Ys(e) && !Zw(e, n) || Ik(e) || Fk(e), Fk = Tp("data-mce-bookmark"), Od = Tp("data-mce-bogus"), j0 = kp("data-mce-bogus", "all"), G0 = (e, n) => { let o = 0; if (ta(e, e)) return !1; { let r = e.firstChild; if (!r) return !0; const c = new xa(r, e); do { if (n) { if (j0(r)) { r = c.next(!0); continue; } if (Od(r)) { r = c.next(); continue; } } if (Dr(r)) { o++, r = c.next(); continue; } if (ta(r, e)) return !1; r = c.next(); } while (r); return o <= 1; } }, Kr = (e, n = !0) => G0(e.dom, n), di = "data-mce-block", ah = (e) => tn(Rs(e), (n) => !/[A-Z]/.test(n)), Kf = (e) => ah(e).join(","), jw = (e, n) => Ge(n.querySelector(e)) ? (n.setAttribute(di, "true"), n.getAttribute("data-mce-selected") === "inline-boundary" && n.removeAttribute("data-mce-selected"), !0) : (n.removeAttribute(di), !1), ch = (e, n) => { const o = Kf(e.getTransparentElements()), r = Kf(e.getBlockElements()); return tn(n.querySelectorAll(o), (c) => jw(r, c)); }, Op = (e, n) => { var o; const r = n ? "lastChild" : "firstChild"; for (let c = e[r]; c; c = c[r]) if (Kr(ce.fromDom(c))) { (o = c.parentNode) === null || o === void 0 || o.removeChild(c); return; } }, Tb = (e, n) => { const o = document.createRange(), r = e.parentNode; if (r) { o.setStartBefore(e), o.setEndBefore(n); const c = o.extractContents(); Op(c, !0), o.setStartAfter(n), o.setEndAfter(e); const u = o.extractContents(); Op(u, !1), Kr(ce.fromDom(c)) || r.insertBefore(c, e), Kr(ce.fromDom(n)) || r.insertBefore(n, e), Kr(ce.fromDom(u)) || r.insertBefore(u, e), r.removeChild(e); } }, Lk = (e, n, o) => { const r = e.getBlockElements(), c = ce.fromDom(n), u = (b) => Is(b) in r, f = (b) => _s(b, c); Se(kd(o), (b) => { dr(b, u, f).each((C) => { const k = wp(b, (N) => u(N) && !e.isValidChild(Is(C), Is(N))); if (k.length > 0) { const N = sm(C); Se(k, (R) => { dr(R, u, f).each((L) => { Tb(L.dom, R.dom); }); }), N.each((R) => ch(e, R.dom)); } }); }); }, q0 = (e, n, o) => { Se([ ...o, ...sf(e, n) ? [n] : [] ], (r) => Se(ic(ce.fromDom(r), r.nodeName.toLowerCase()), (c) => { K0(e, c.dom) && Sa(c); })); }, Dp = (e, n) => { const o = ch(e, n); Lk(e, n, o), q0(e, n, o); }, Yf = (e, n) => { if (kb(e, n)) { const o = Kf(e.getBlockElements()); jw(o, n); } }, Dd = (e, n, o) => { const r = (u) => _s(u, ce.fromDom(n)), c = Lf(ce.fromDom(o), r); ls(c, c.length - 2).filter(Ks).fold(() => Dp(e, n), (u) => Dp(e, u.dom)); }, Fu = (e) => e.hasAttribute(di), hm = (e, n) => Nn(e.getTransparentElements(), n), kb = (e, n) => tt(n) && hm(e, n.nodeName), sf = (e, n) => kb(e, n) && Fu(n), K0 = (e, n) => kb(e, n) && !Fu(n), Gw = (e, n) => n.type === 1 && hm(e, n.name) && q(n.attr(di)), Y0 = (e, n) => n.type === 1 && hm(e, n.name) && hn(n.attr(di)), qw = jo().browser, X0 = (e) => Uo(e, Ks), Eb = (e) => qw.isFirefox() && Is(e) === "table" ? X0(La(e)).filter((n) => Is(n) === "caption").bind((n) => X0(si(n)).map((o) => { const r = o.dom.offsetTop, c = n.dom.offsetTop, u = n.dom.offsetHeight; return r <= c ? -u : 0; })).getOr(0) : 0, bs = (e, n) => e.children && ye(e.children, n), Fn = (e, n, o) => { let r = 0, c = 0; const u = e.ownerDocument; if (o = o || e, n) { if (o === e && n.getBoundingClientRect && gl(ce.fromDom(e), "position") === "static") { const b = n.getBoundingClientRect(); return r = b.left + (u.documentElement.scrollLeft || e.scrollLeft) - u.documentElement.clientLeft, c = b.top + (u.documentElement.scrollTop || e.scrollTop) - u.documentElement.clientTop, { x: r, y: c }; } let f = n; for (; f && f !== o && f.nodeType && !bs(f, o); ) { const b = f; r += b.offsetLeft || 0, c += b.offsetTop || 0, f = b.offsetParent; } for (f = n.parentNode; f && f !== o && f.nodeType && !bs(f, o); ) r -= f.scrollLeft || 0, c -= f.scrollTop || 0, f = f.parentNode; c += Eb(ce.fromDom(n)); } return { x: r, y: c }; }, Rd = (e, n = {}) => { let o = 0; const r = {}, c = ce.fromDom(e), u = oi(c), f = (G) => { n.referrerPolicy = G; }, b = (G) => { n.contentCssCors = G; }, C = (G) => { qr(rm(c), G); }, k = (G) => { const ee = rm(c); It(ee, "#" + G).each(rr); }, N = (G) => Zo(r, G).getOrThunk(() => ({