diff --git a/controllers/api_series.go b/controllers/api_series.go index dcc8301..f050c97 100644 --- a/controllers/api_series.go +++ b/controllers/api_series.go @@ -64,9 +64,10 @@ func (p *SeriesAPI) searchHandler(app core.App) HandleFunc { } seen[series.Id] = true response = append(response, map[string]string{ - "id": series.Id, - "name": series.Title(), - "detail": series.Pseudonyms(), + "id": series.Id, + "name": series.Title(), + "detail": series.Pseudonyms(), + "musenalm_id": strconv.Itoa(series.MusenalmID()), }) if limit > 0 && len(response) >= limit { break diff --git a/views/assets/scripts.js b/views/assets/scripts.js index 5c79532..740c25d 100644 --- a/views/assets/scripts.js +++ b/views/assets/scripts.js @@ -1,22 +1,22 @@ -var $o = Object.defineProperty; -var ms = (s) => { +var Xa = Object.defineProperty; +var ps = (s) => { throw TypeError(s); }; -var Uo = (s, t, e) => t in s ? $o(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e; -var Jt = (s, t, e) => Uo(s, typeof t != "symbol" ? t + "" : t, e), ki = (s, t, e) => t.has(s) || ms("Cannot " + e); -var Ii = (s, t, e) => (ki(s, t, "read from private field"), e ? e.call(s) : t.get(s)), he = (s, t, e) => t.has(s) ? ms("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(s) : t.set(s, e), Ve = (s, t, e, i) => (ki(s, t, "write to private field"), i ? i.call(s, e) : t.set(s, e), e), ze = (s, t, e) => (ki(s, t, "access private method"), e); -var jo = "2.1.16"; -const Mt = "[data-trix-attachment]", Rn = { preview: { presentation: "gallery", caption: { name: !0, size: !0 } }, file: { caption: { size: !0 } } }, Y = { default: { tagName: "div", parse: !1 }, quote: { tagName: "blockquote", nestable: !0 }, heading1: { tagName: "h1", terminal: !0, breakOnReturn: !0, group: !1 }, code: { tagName: "pre", terminal: !0, htmlAttributes: ["language"], text: { plaintext: !0 } }, bulletList: { tagName: "ul", parse: !1 }, bullet: { tagName: "li", listAttribute: "bulletList", group: !1, nestable: !0, test(s) { - return gs(s.parentNode) === Y[this.listAttribute].tagName; +var Qa = (s, t, e) => t in s ? Xa(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e; +var Jt = (s, t, e) => Qa(s, typeof t != "symbol" ? t + "" : t, e), Ii = (s, t, e) => t.has(s) || ps("Cannot " + e); +var Ri = (s, t, e) => (Ii(s, t, "read from private field"), e ? e.call(s) : t.get(s)), he = (s, t, e) => t.has(s) ? ps("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(s) : t.set(s, e), je = (s, t, e, i) => (Ii(s, t, "write to private field"), i ? i.call(s, e) : t.set(s, e), e), We = (s, t, e) => (Ii(s, t, "access private method"), e); +var Za = "2.1.16"; +const Mt = "[data-trix-attachment]", On = { preview: { presentation: "gallery", caption: { name: !0, size: !0 } }, file: { caption: { size: !0 } } }, Y = { default: { tagName: "div", parse: !1 }, quote: { tagName: "blockquote", nestable: !0 }, heading1: { tagName: "h1", terminal: !0, breakOnReturn: !0, group: !1 }, code: { tagName: "pre", terminal: !0, htmlAttributes: ["language"], text: { plaintext: !0 } }, bulletList: { tagName: "ul", parse: !1 }, bullet: { tagName: "li", listAttribute: "bulletList", group: !1, nestable: !0, test(s) { + return fs(s.parentNode) === Y[this.listAttribute].tagName; } }, numberList: { tagName: "ol", parse: !1 }, number: { tagName: "li", listAttribute: "numberList", group: !1, nestable: !0, test(s) { - return gs(s.parentNode) === Y[this.listAttribute].tagName; -} }, attachmentGallery: { tagName: "div", exclusive: !0, terminal: !0, parse: !1, group: !1 } }, gs = (s) => { + return fs(s.parentNode) === Y[this.listAttribute].tagName; +} }, attachmentGallery: { tagName: "div", exclusive: !0, terminal: !0, parse: !1, group: !1 } }, fs = (s) => { var t; return s == null || (t = s.tagName) === null || t === void 0 ? void 0 : t.toLowerCase(); -}, ps = navigator.userAgent.match(/android\s([0-9]+.*Chrome)/i), Ri = ps && parseInt(ps[1]); -var Oe = { composesExistingText: /Android.*Chrome/.test(navigator.userAgent), recentAndroid: Ri && Ri > 12, samsungAndroid: Ri && navigator.userAgent.match(/Android.*SM-/), forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent), supportsInputEvents: typeof InputEvent < "u" && ["data", "getTargetRanges", "inputType"].every((s) => s in InputEvent.prototype) }, Nr = { ADD_ATTR: ["language"], SAFE_FOR_XML: !1, RETURN_DOM: !0 }, v = { attachFiles: "Attach Files", bold: "Bold", bullets: "Bullets", byte: "Byte", bytes: "Bytes", captionPlaceholder: "Add a caption…", code: "Code", heading1: "Heading", indent: "Increase Level", italic: "Italic", link: "Link", numbers: "Numbers", outdent: "Decrease Level", quote: "Quote", redo: "Redo", remove: "Remove", strike: "Strikethrough", undo: "Undo", unlink: "Unlink", url: "URL", urlPlaceholder: "Enter a URL…", GB: "GB", KB: "KB", MB: "MB", PB: "PB", TB: "TB" }; -const Vo = [v.bytes, v.KB, v.MB, v.GB, v.TB, v.PB]; -var Pr = { prefix: "IEC", precision: 2, formatter(s) { +}, bs = navigator.userAgent.match(/android\s([0-9]+.*Chrome)/i), Di = bs && parseInt(bs[1]); +var Oe = { composesExistingText: /Android.*Chrome/.test(navigator.userAgent), recentAndroid: Di && Di > 12, samsungAndroid: Di && navigator.userAgent.match(/Android.*SM-/), forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent), supportsInputEvents: typeof InputEvent < "u" && ["data", "getTargetRanges", "inputType"].every((s) => s in InputEvent.prototype) }, Kr = { ADD_ATTR: ["language"], SAFE_FOR_XML: !1, RETURN_DOM: !0 }, v = { attachFiles: "Attach Files", bold: "Bold", bullets: "Bullets", byte: "Byte", bytes: "Bytes", captionPlaceholder: "Add a caption…", code: "Code", heading1: "Heading", indent: "Increase Level", italic: "Italic", link: "Link", numbers: "Numbers", outdent: "Decrease Level", quote: "Quote", redo: "Redo", remove: "Remove", strike: "Strikethrough", undo: "Undo", unlink: "Unlink", url: "URL", urlPlaceholder: "Enter a URL…", GB: "GB", KB: "KB", MB: "MB", PB: "PB", TB: "TB" }; +const to = [v.bytes, v.KB, v.MB, v.GB, v.TB, v.PB]; +var Gr = { prefix: "IEC", precision: 2, formatter(s) { switch (s) { case 0: return "0 ".concat(v.bytes); @@ -26,34 +26,34 @@ var Pr = { prefix: "IEC", precision: 2, formatter(s) { let t; this.prefix === "SI" ? t = 1e3 : this.prefix === "IEC" && (t = 1024); const e = Math.floor(Math.log(s) / Math.log(t)), i = (s / Math.pow(t, e)).toFixed(this.precision).replace(/0*$/, "").replace(/\.$/, ""); - return "".concat(i, " ").concat(Vo[e]); + return "".concat(i, " ").concat(to[e]); } } }; -const ui = "\uFEFF", Lt = " ", Fr = function(s) { +const mi = "\uFEFF", Lt = " ", Jr = function(s) { for (const t in s) { const e = s[t]; this[t] = e; } return this; -}, Dn = document.documentElement, zo = Dn.matches, O = function(s) { - let { onElement: t, matchingSelector: e, withCallback: i, inPhase: n, preventDefault: r, times: o } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - const a = t || Dn, l = e, d = n === "capturing", h = function(m) { - o != null && --o == 0 && h.destroy(); - const f = Ct(m.target, { matchingSelector: l }); - f != null && (i == null || i.call(f, m, f), r && m.preventDefault()); +}, Mn = document.documentElement, eo = Mn.matches, O = function(s) { + let { onElement: t, matchingSelector: e, withCallback: i, inPhase: n, preventDefault: r, times: a } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + const o = t || Mn, l = e, c = n === "capturing", h = function(m) { + a != null && --a == 0 && h.destroy(); + const p = Ct(m.target, { matchingSelector: l }); + p != null && (i == null || i.call(p, m, p), r && m.preventDefault()); }; - return h.destroy = () => a.removeEventListener(s, h, d), a.addEventListener(s, h, d), h; -}, qr = function(s) { + return h.destroy = () => o.removeEventListener(s, h, c), o.addEventListener(s, h, c), h; +}, Yr = function(s) { let { bubbles: t, cancelable: e, attributes: i } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; t = t !== !1, e = e !== !1; const n = document.createEvent("Events"); - return n.initEvent(s, t, e), i != null && Fr.call(n, i), n; + return n.initEvent(s, t, e), i != null && Jr.call(n, i), n; }, Ae = function(s) { let { onElement: t, bubbles: e, cancelable: i, attributes: n } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - const r = t ?? Dn, o = qr(s, { bubbles: e, cancelable: i, attributes: n }); - return r.dispatchEvent(o); -}, Hr = function(s, t) { - if ((s == null ? void 0 : s.nodeType) === 1) return zo.call(s, t); + const r = t ?? Mn, a = Yr(s, { bubbles: e, cancelable: i, attributes: n }); + return r.dispatchEvent(a); +}, Xr = function(s, t) { + if ((s == null ? void 0 : s.nodeType) === 1) return eo.call(s, t); }, Ct = function(s) { let { matchingSelector: t, untilNode: e } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; for (; s && s.nodeType !== Node.ELEMENT_NODE; ) s = s.parentNode; @@ -61,16 +61,16 @@ const ui = "\uFEFF", Lt = " ", Fr = function(s) { if (t == null) return s; if (s.closest && e == null) return s.closest(t); for (; s && s !== e; ) { - if (Hr(s, t)) return s; + if (Xr(s, t)) return s; s = s.parentNode; } } -}, On = (s) => document.activeElement !== s && Dt(s, document.activeElement), Dt = function(s, t) { +}, Bn = (s) => document.activeElement !== s && Dt(s, document.activeElement), Dt = function(s, t) { if (s && t) for (; t; ) { if (t === s) return !0; t = t.parentNode; } -}, Di = function(s) { +}, Oi = function(s) { var t; if ((t = s) === null || t === void 0 || !t.parentNode) return; let e = 0; @@ -79,7 +79,7 @@ const ui = "\uFEFF", Lt = " ", Fr = function(s) { }, wt = (s) => { var t; return s == null || (t = s.parentNode) === null || t === void 0 ? void 0 : t.removeChild(s); -}, ri = function(s) { +}, ai = function(s) { let { onlyNodesOfType: t, usingFilter: e, expandEntityReferences: i } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; const n = (() => { switch (t) { @@ -97,7 +97,7 @@ const ui = "\uFEFF", Lt = " ", Fr = function(s) { }, J = (s) => { var t; return s == null || (t = s.tagName) === null || t === void 0 ? void 0 : t.toLowerCase(); -}, A = function(s) { +}, x = function(s) { let t, e, i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; typeof s == "object" ? (i = s, s = i.tagName) : i = { attributes: i }; const n = document.createElement(s); @@ -119,30 +119,30 @@ const Ee = function() { t.tagName && ue.push(t.tagName); } return ue; -}, Oi = (s) => Zt(s == null ? void 0 : s.firstChild), fs = function(s) { +}, Mi = (s) => Zt(s == null ? void 0 : s.firstChild), _s = function(s) { let { strict: t } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : { strict: !0 }; return t ? Zt(s) : Zt(s) || !Zt(s.firstChild) && function(e) { return Ee().includes(J(e)) && !Ee().includes(J(e.firstChild)); }(s); -}, Zt = (s) => Wo(s) && (s == null ? void 0 : s.data) === "block", Wo = (s) => (s == null ? void 0 : s.nodeType) === Node.COMMENT_NODE, te = function(s) { +}, Zt = (s) => io(s) && (s == null ? void 0 : s.data) === "block", io = (s) => (s == null ? void 0 : s.nodeType) === Node.COMMENT_NODE, te = function(s) { let { name: t } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; - if (s) return xe(s) ? s.data === ui ? !t || s.parentNode.dataset.trixCursorTarget === t : void 0 : te(s.firstChild); -}, Bt = (s) => Hr(s, Mt), $r = (s) => xe(s) && (s == null ? void 0 : s.data) === "", xe = (s) => (s == null ? void 0 : s.nodeType) === Node.TEXT_NODE, Mn = { level2Enabled: !0, getLevel() { + if (s) return xe(s) ? s.data === mi ? !t || s.parentNode.dataset.trixCursorTarget === t : void 0 : te(s.firstChild); +}, Bt = (s) => Xr(s, Mt), Qr = (s) => xe(s) && (s == null ? void 0 : s.data) === "", xe = (s) => (s == null ? void 0 : s.nodeType) === Node.TEXT_NODE, Nn = { level2Enabled: !0, getLevel() { return this.level2Enabled && Oe.supportsInputEvents ? 2 : 0; }, pickFiles(s) { - const t = A("input", { type: "file", multiple: !0, hidden: !0, id: this.fileInputId }); + const t = x("input", { type: "file", multiple: !0, hidden: !0, id: this.fileInputId }); t.addEventListener("change", () => { s(t.files), wt(t); }), wt(document.getElementById(this.fileInputId)), document.body.appendChild(t), t.click(); } }; -var ii = { removeBlankTableCells: !1, tableCellSeparator: " | ", tableRowSeparator: ` +var ni = { removeBlankTableCells: !1, tableCellSeparator: " | ", tableRowSeparator: ` ` }, Pt = { bold: { tagName: "strong", inheritable: !0, parser(s) { const t = window.getComputedStyle(s); return t.fontWeight === "bold" || t.fontWeight >= 600; } }, italic: { tagName: "em", inheritable: !0, parser: (s) => window.getComputedStyle(s).fontStyle === "italic" }, href: { groupTagName: "a", parser(s) { const t = "a:not(".concat(Mt, ")"), e = s.closest(t); if (e) return e.getAttribute("href"); -} }, strike: { tagName: "del", inheritable: !0 }, frozen: { style: { backgroundColor: "highlight" } } }, Ur = { getDefaultHTML: () => `
`) }; -const fn = { interval: 5e3 }; -var Me = Object.freeze({ __proto__: null, attachments: Rn, blockAttributes: Y, browser: Oe, css: { attachment: "attachment", attachmentCaption: "attachment__caption", attachmentCaptionEditor: "attachment__caption-editor", attachmentMetadata: "attachment__metadata", attachmentMetadataContainer: "attachment__metadata-container", attachmentName: "attachment__name", attachmentProgress: "attachment__progress", attachmentSize: "attachment__size", attachmentToolbar: "attachment__toolbar", attachmentGallery: "attachment-gallery" }, dompurify: Nr, fileSize: Pr, input: Mn, keyNames: { 8: "backspace", 9: "tab", 13: "return", 27: "escape", 37: "left", 39: "right", 46: "delete", 68: "d", 72: "h", 79: "o" }, lang: v, parser: ii, textAttributes: Pt, toolbar: Ur, undo: fn }); -class F { +const _n = { interval: 5e3 }; +var Me = Object.freeze({ __proto__: null, attachments: On, blockAttributes: Y, browser: Oe, css: { attachment: "attachment", attachmentCaption: "attachment__caption", attachmentCaptionEditor: "attachment__caption-editor", attachmentMetadata: "attachment__metadata", attachmentMetadataContainer: "attachment__metadata-container", attachmentName: "attachment__name", attachmentProgress: "attachment__progress", attachmentSize: "attachment__size", attachmentToolbar: "attachment__toolbar", attachmentGallery: "attachment-gallery" }, dompurify: Kr, fileSize: Gr, input: Nn, keyNames: { 8: "backspace", 9: "tab", 13: "return", 27: "escape", 37: "left", 39: "right", 46: "delete", 68: "d", 72: "h", 79: "o" }, lang: v, parser: ni, textAttributes: Pt, toolbar: Zr, undo: _n }); +class P { static proxyMethod(t) { - const { name: e, toMethod: i, toProperty: n, optional: r } = Ko(t); + const { name: e, toMethod: i, toProperty: n, optional: r } = no(t); this.prototype[e] = function() { - let o, a; - var l, d; - return i ? a = r ? (l = this[i]) === null || l === void 0 ? void 0 : l.call(this) : this[i]() : n && (a = this[n]), r ? (o = (d = a) === null || d === void 0 ? void 0 : d[e], o ? bs.call(o, a, arguments) : void 0) : (o = a[e], bs.call(o, a, arguments)); + let a, o; + var l, c; + return i ? o = r ? (l = this[i]) === null || l === void 0 ? void 0 : l.call(this) : this[i]() : n && (o = this[n]), r ? (a = (c = o) === null || c === void 0 ? void 0 : c[e], a ? vs.call(a, o, arguments) : void 0) : (a = o[e], vs.call(a, o, arguments)); }; } } -const Ko = function(s) { - const t = s.match(Go); +const no = function(s) { + const t = s.match(so); if (!t) throw new Error("can't parse @proxyMethod expression: ".concat(s)); const e = { name: t[4] }; return t[2] != null ? e.toMethod = t[1] : e.toProperty = t[1], t[3] != null && (e.optional = !0), e; -}, { apply: bs } = Function.prototype, Go = new RegExp("^(.+?)(\\(\\))?(\\?)?\\.(.+?)$"); -var Mi, Bi, Ni; -class ke extends F { +}, { apply: vs } = Function.prototype, so = new RegExp("^(.+?)(\\(\\))?(\\?)?\\.(.+?)$"); +var Bi, Ni, Pi; +class ke extends P { static box() { let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : ""; return t instanceof this ? t : this.fromUCS2String(t == null ? void 0 : t.toString()); } static fromUCS2String(t) { - return new this(t, bn(t)); + return new this(t, vn(t)); } static fromCodepoints(t) { - return new this(vn(t), t); + return new this(yn(t), t); } constructor(t, e) { super(...arguments), this.ucs2String = t, this.codepoints = e, this.length = this.codepoints.length, this.ucs2Length = this.ucs2String.length; } offsetToUCS2Offset(t) { - return vn(this.codepoints.slice(0, Math.max(0, t))).length; + return yn(this.codepoints.slice(0, Math.max(0, t))).length; } offsetFromUCS2Offset(t) { - return bn(this.ucs2String.slice(0, Math.max(0, t))).length; + return vn(this.ucs2String.slice(0, Math.max(0, t))).length; } slice() { return this.constructor.fromCodepoints(this.codepoints.slice(...arguments)); @@ -241,9 +241,9 @@ class ke extends F { return this.ucs2String; } } -const Jo = ((Mi = Array.from) === null || Mi === void 0 ? void 0 : Mi.call(Array, "👼").length) === 1, Yo = ((Bi = " ".codePointAt) === null || Bi === void 0 ? void 0 : Bi.call(" ", 0)) != null, Xo = ((Ni = String.fromCodePoint) === null || Ni === void 0 ? void 0 : Ni.call(String, 32, 128124)) === " 👼"; -let bn, vn; -bn = Jo && Yo ? (s) => Array.from(s).map((t) => t.codePointAt(0)) : function(s) { +const ro = ((Bi = Array.from) === null || Bi === void 0 ? void 0 : Bi.call(Array, "👼").length) === 1, ao = ((Ni = " ".codePointAt) === null || Ni === void 0 ? void 0 : Ni.call(" ", 0)) != null, oo = ((Pi = String.fromCodePoint) === null || Pi === void 0 ? void 0 : Pi.call(String, 32, 128124)) === " 👼"; +let vn, yn; +vn = ro && ao ? (s) => Array.from(s).map((t) => t.codePointAt(0)) : function(s) { const t = []; let e = 0; const { length: i } = s; @@ -256,7 +256,7 @@ bn = Jo && Yo ? (s) => Array.from(s).map((t) => t.codePointAt(0)) : function(s) t.push(n); } return t; -}, vn = Xo ? (s) => String.fromCodePoint(...Array.from(s || [])) : function(s) { +}, yn = oo ? (s) => String.fromCodePoint(...Array.from(s || [])) : function(s) { return (() => { const t = []; return Array.from(s).forEach((e) => { @@ -265,13 +265,13 @@ bn = Jo && Yo ? (s) => Array.from(s).map((t) => t.codePointAt(0)) : function(s) }), t; })().join(""); }; -let Qo = 0; -class Ht extends F { +let lo = 0; +class qt extends P { static fromJSONString(t) { return this.fromJSON(JSON.parse(t)); } constructor() { - super(...arguments), this.id = ++Qo; + super(...arguments), this.id = ++lo; } hasSameConstructorAs(t) { return this.constructor === (t == null ? void 0 : t.constructor); @@ -305,12 +305,12 @@ const Ft = function() { for (let e = 0; e < s.length; e++) if (s[e] !== t[e]) return !1; return !0; -}, Bn = function(s) { +}, Pn = function(s) { const t = s.slice(0); for (var e = arguments.length, i = new Array(e > 1 ? e - 1 : 0), n = 1; n < e; n++) i[n - 1] = arguments[n]; return t.splice(...i), t; -}, Zo = /[\u05BE\u05C0\u05C3\u05D0-\u05EA\u05F0-\u05F4\u061B\u061F\u0621-\u063A\u0640-\u064A\u066D\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D5\u06E5\u06E6\u200F\u202B\u202E\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE72\uFE74\uFE76-\uFEFC]/, ta = function() { - const s = A("input", { dir: "auto", name: "x", dirName: "x.dir" }), t = A("textarea", { dir: "auto", name: "y", dirName: "y.dir" }), e = A("form"); +}, co = /[\u05BE\u05C0\u05C3\u05D0-\u05EA\u05F0-\u05F4\u061B\u061F\u0621-\u063A\u0640-\u064A\u066D\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D5\u06E5\u06E6\u200F\u202B\u202E\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE72\uFE74\uFE76-\uFEFC]/, ho = function() { + const s = x("input", { dir: "auto", name: "x", dirName: "x.dir" }), t = x("textarea", { dir: "auto", name: "y", dirName: "y.dir" }), e = x("form"); e.appendChild(s), e.appendChild(t); const i = function() { try { @@ -330,32 +330,32 @@ const Ft = function() { } : n ? function(r) { return s.value = r, s.matches(":dir(rtl)") ? "rtl" : "ltr"; } : function(r) { - const o = r.trim().charAt(0); - return Zo.test(o) ? "rtl" : "ltr"; + const a = r.trim().charAt(0); + return co.test(a) ? "rtl" : "ltr"; }; }(); -let Pi = null, Fi = null, qi = null, We = null; -const _n = () => (Pi || (Pi = ia().concat(ea())), Pi), N = (s) => Y[s], ea = () => (Fi || (Fi = Object.keys(Y)), Fi), yn = (s) => Pt[s], ia = () => (qi || (qi = Object.keys(Pt)), qi), jr = function(s, t) { - na(s).textContent = t.replace(/%t/g, s); -}, na = function(s) { +let Fi = null, Hi = null, qi = null, ze = null; +const An = () => (Fi || (Fi = mo().concat(uo())), Fi), N = (s) => Y[s], uo = () => (Hi || (Hi = Object.keys(Y)), Hi), En = (s) => Pt[s], mo = () => (qi || (qi = Object.keys(Pt)), qi), ta = function(s, t) { + go(s).textContent = t.replace(/%t/g, s); +}, go = function(s) { const t = document.createElement("style"); t.setAttribute("type", "text/css"), t.setAttribute("data-tag-name", s.toLowerCase()); - const e = sa(); + const e = po(); return e && t.setAttribute("nonce", e), document.head.insertBefore(t, document.head.firstChild), t; -}, sa = function() { - const s = vs("trix-csp-nonce") || vs("csp-nonce"); +}, po = function() { + const s = ys("trix-csp-nonce") || ys("csp-nonce"); if (s) { const { nonce: t, content: e } = s; return t == "" ? e : t; } -}, vs = (s) => document.head.querySelector("meta[name=".concat(s, "]")), _s = { "application/x-trix-feature-detection": "test" }, Vr = function(s) { +}, ys = (s) => document.head.querySelector("meta[name=".concat(s, "]")), As = { "application/x-trix-feature-detection": "test" }, ea = function(s) { const t = s.getData("text/plain"), e = s.getData("text/html"); if (!t || !e) return t == null ? void 0 : t.length; { const { body: i } = new DOMParser().parseFromString(e, "text/html"); if (i.textContent === t) return !i.querySelector("*"); } -}, zr = /Mac|^iP/.test(navigator.platform) ? (s) => s.metaKey : (s) => s.ctrlKey, Nn = (s) => setTimeout(s, 1), Wr = function() { +}, ia = /Mac|^iP/.test(navigator.platform) ? (s) => s.metaKey : (s) => s.ctrlKey, Fn = (s) => setTimeout(s, 1), na = function() { let s = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; const t = {}; for (const e in s) { @@ -369,22 +369,22 @@ const _n = () => (Pi || (Pi = ia().concat(ea())), Pi), N = (s) => Y[s], ea = () for (const e in s) if (s[e] !== t[e]) return !1; return !0; -}, T = function(s) { - if (s != null) return Array.isArray(s) || (s = [s, s]), [ys(s[0]), ys(s[1] != null ? s[1] : s[0])]; -}, _t = function(s) { +}, k = function(s) { + if (s != null) return Array.isArray(s) || (s = [s, s]), [Es(s[0]), Es(s[1] != null ? s[1] : s[0])]; +}, vt = function(s) { if (s == null) return; - const [t, e] = T(s); - return An(t, e); + const [t, e] = k(s); + return xn(t, e); }, oi = function(s, t) { if (s == null || t == null) return; - const [e, i] = T(s), [n, r] = T(t); - return An(e, n) && An(i, r); -}, ys = function(s) { - return typeof s == "number" ? s : Wr(s); -}, An = function(s, t) { + const [e, i] = k(s), [n, r] = k(t); + return xn(e, n) && xn(i, r); +}, Es = function(s) { + return typeof s == "number" ? s : na(s); +}, xn = function(s, t) { return typeof s == "number" ? s === t : ne(s, t); }; -class Kr extends F { +class sa extends P { constructor() { super(...arguments), this.update = this.update.bind(this), this.selectionManagers = []; } @@ -410,32 +410,32 @@ class Kr extends F { this.update(); } } -const qt = new Kr(), Gr = function() { +const Ht = new sa(), ra = function() { const s = window.getSelection(); if (s.rangeCount > 0) return s; }, Se = function() { var s; - const t = (s = Gr()) === null || s === void 0 ? void 0 : s.getRangeAt(0); - if (t && !ra(t)) return t; -}, Jr = function(s) { + const t = (s = ra()) === null || s === void 0 ? void 0 : s.getRangeAt(0); + if (t && !fo(t)) return t; +}, aa = function(s) { const t = window.getSelection(); - return t.removeAllRanges(), t.addRange(s), qt.update(); -}, ra = (s) => As(s.startContainer) || As(s.endContainer), As = (s) => !Object.getPrototypeOf(s), ye = (s) => s.replace(new RegExp("".concat(ui), "g"), "").replace(new RegExp("".concat(Lt), "g"), " "), Pn = new RegExp("[^\\S".concat(Lt, "]")), Fn = (s) => s.replace(new RegExp("".concat(Pn.source), "g"), " ").replace(/\ {2,}/g, " "), Es = function(s, t) { + return t.removeAllRanges(), t.addRange(s), Ht.update(); +}, fo = (s) => xs(s.startContainer) || xs(s.endContainer), xs = (s) => !Object.getPrototypeOf(s), ye = (s) => s.replace(new RegExp("".concat(mi), "g"), "").replace(new RegExp("".concat(Lt), "g"), " "), Hn = new RegExp("[^\\S".concat(Lt, "]")), qn = (s) => s.replace(new RegExp("".concat(Hn.source), "g"), " ").replace(/\ {2,}/g, " "), Ss = function(s, t) { if (s.isEqualTo(t)) return ["", ""]; - const e = Hi(s, t), { length: i } = e.utf16String; + const e = $i(s, t), { length: i } = e.utf16String; let n; if (i) { - const { offset: r } = e, o = s.codepoints.slice(0, r).concat(s.codepoints.slice(r + i)); - n = Hi(t, ke.fromCodepoints(o)); - } else n = Hi(t, s); + const { offset: r } = e, a = s.codepoints.slice(0, r).concat(s.codepoints.slice(r + i)); + n = $i(t, ke.fromCodepoints(a)); + } else n = $i(t, s); return [e.utf16String.toString(), n.utf16String.toString()]; -}, Hi = function(s, t) { +}, $i = function(s, t) { let e = 0, i = s.length, n = t.length; for (; e < i && s.charAt(e).isEqualTo(t.charAt(e)); ) e++; for (; i > e + 1 && s.charAt(i - 1).isEqualTo(t.charAt(n - 1)); ) i--, n--; return { utf16String: s.slice(e, i), offset: e }; }; -class tt extends Ht { +class tt extends qt { static fromCommonAttributesOfObjects() { let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : []; if (!t.length) return new this(); @@ -449,13 +449,13 @@ class tt extends Ht { } constructor() { let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; - super(...arguments), this.values = ni(t); + super(...arguments), this.values = si(t); } add(t, e) { - return this.merge(oa(t, e)); + return this.merge(bo(t, e)); } remove(t) { - return new tt(ni(this.values, t)); + return new tt(si(this.values, t)); } get(t) { return this.values[t]; @@ -464,7 +464,7 @@ class tt extends Ht { return t in this.values; } merge(t) { - return new tt(aa(this.values, la(t))); + return new tt(_o(this.values, vo(t))); } slice(t) { const e = {}; @@ -496,7 +496,7 @@ class tt extends Ht { return this.array; } toObject() { - return ni(this.values); + return si(this.values); } toJSON() { return this.toObject(); @@ -505,39 +505,39 @@ class tt extends Ht { return { values: JSON.stringify(this.values) }; } } -const oa = function(s, t) { +const bo = function(s, t) { const e = {}; return e[s] = t, e; -}, aa = function(s, t) { - const e = ni(s); +}, _o = function(s, t) { + const e = si(s); for (const i in t) { const n = t[i]; e[i] = n; } return e; -}, ni = function(s, t) { +}, si = function(s, t) { const e = {}; return Object.keys(s).sort().forEach((i) => { i !== t && (e[i] = s[i]); }), e; }, me = function(s) { return s instanceof tt ? s : new tt(s); -}, la = function(s) { +}, vo = function(s) { return s instanceof tt ? s.values : s; }; -class qn { +class $n { static groupObjects() { let t, e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], { depth: i, asTree: n } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; n && i == null && (i = 0); const r = []; - return Array.from(e).forEach((o) => { - var a; + return Array.from(e).forEach((a) => { + var o; if (t) { - var l, d, h; - if ((l = o.canBeGrouped) !== null && l !== void 0 && l.call(o, i) && (d = (h = t[t.length - 1]).canBeGroupedWith) !== null && d !== void 0 && d.call(h, o, i)) return void t.push(o); + var l, c, h; + if ((l = a.canBeGrouped) !== null && l !== void 0 && l.call(a, i) && (c = (h = t[t.length - 1]).canBeGroupedWith) !== null && c !== void 0 && c.call(h, a, i)) return void t.push(a); r.push(new this(t, { depth: i, asTree: n })), t = null; } - (a = o.canBeGrouped) !== null && a !== void 0 && a.call(o, i) ? t = [o] : r.push(o); + (o = a.canBeGrouped) !== null && o !== void 0 && o.call(a, i) ? t = [a] : r.push(a); }), t && r.push(new this(t, { depth: i, asTree: n })), r; } constructor() { @@ -557,7 +557,7 @@ class qn { }), t.join("/"); } } -class ca extends F { +class yo extends P { constructor() { let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : []; super(...arguments), this.objects = {}, Array.from(t).forEach((e) => { @@ -570,16 +570,16 @@ class ca extends F { return this.objects[e]; } } -class da { +class Ao { constructor(t) { this.reset(t); } add(t) { - const e = xs(t); + const e = Ls(t); this.elements[e] = t; } remove(t) { - const e = xs(t), i = this.elements[e]; + const e = Ls(t), i = this.elements[e]; if (i) return delete this.elements[e], i; } reset() { @@ -589,8 +589,8 @@ class da { }), t; } } -const xs = (s) => s.dataset.trixStoreKey; -class ai extends F { +const Ls = (s) => s.dataset.trixStoreKey; +class li extends P { isPerforming() { return this.performing === !0; } @@ -616,8 +616,8 @@ class ai extends F { (t = this.promise) === null || t === void 0 || (e = t.cancel) === null || e === void 0 || e.call(t), this.promise = null, this.performing = null, this.performed = null, this.succeeded = null; } } -ai.proxyMethod("getPromise().then"), ai.proxyMethod("getPromise().catch"); -class $t extends F { +li.proxyMethod("getPromise().then"), li.proxyMethod("getPromise().catch"); +class $t extends P { constructor(t) { let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; super(...arguments), this.object = t, this.options = e, this.childViews = [], this.rootView = this; @@ -639,7 +639,7 @@ class $t extends F { } createChildView(t, e) { let i = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; - e instanceof qn && (i.viewClass = t, t = ha); + e instanceof $n && (i.viewClass = t, t = Eo); const n = new t(e, i); return this.recordChildView(n); } @@ -690,7 +690,7 @@ class $t extends F { } } } -class ha extends $t { +class Eo extends $t { constructor() { super(...arguments), this.objectGroup = this.object, this.viewClass = this.options.viewClass, delete this.options.viewClass; } @@ -713,219 +713,219 @@ class ha extends $t { } } /*! @license DOMPurify 3.2.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.7/LICENSE */ -const { entries: Yr, setPrototypeOf: Ss, isFrozen: ua, getPrototypeOf: ma, getOwnPropertyDescriptor: ga } = Object; -let { freeze: X, seal: st, create: Xr } = Object, { apply: En, construct: xn } = typeof Reflect < "u" && Reflect; +const { entries: oa, setPrototypeOf: Cs, isFrozen: xo, getPrototypeOf: So, getOwnPropertyDescriptor: Lo } = Object; +let { freeze: X, seal: st, create: la } = Object, { apply: Sn, construct: Ln } = typeof Reflect < "u" && Reflect; X || (X = function(s) { return s; }), st || (st = function(s) { return s; -}), En || (En = function(s, t) { +}), Sn || (Sn = function(s, t) { for (var e = arguments.length, i = new Array(e > 2 ? e - 2 : 0), n = 2; n < e; n++) i[n - 2] = arguments[n]; return s.apply(t, i); -}), xn || (xn = function(s) { +}), Ln || (Ln = function(s) { for (var t = arguments.length, e = new Array(t > 1 ? t - 1 : 0), i = 1; i < t; i++) e[i - 1] = arguments[i]; return new s(...e); }); -const Ke = Q(Array.prototype.forEach), pa = Q(Array.prototype.lastIndexOf), Ls = Q(Array.prototype.pop), ge = Q(Array.prototype.push), fa = Q(Array.prototype.splice), si = Q(String.prototype.toLowerCase), $i = Q(String.prototype.toString), Ui = Q(String.prototype.match), pe = Q(String.prototype.replace), ba = Q(String.prototype.indexOf), va = Q(String.prototype.trim), lt = Q(Object.prototype.hasOwnProperty), G = Q(RegExp.prototype.test), fe = (Cs = TypeError, function() { +const Ke = Q(Array.prototype.forEach), Co = Q(Array.prototype.lastIndexOf), ws = Q(Array.prototype.pop), ge = Q(Array.prototype.push), wo = Q(Array.prototype.splice), ri = Q(String.prototype.toLowerCase), Ui = Q(String.prototype.toString), Vi = Q(String.prototype.match), pe = Q(String.prototype.replace), To = Q(String.prototype.indexOf), ko = Q(String.prototype.trim), lt = Q(Object.prototype.hasOwnProperty), G = Q(RegExp.prototype.test), fe = (Ts = TypeError, function() { for (var s = arguments.length, t = new Array(s), e = 0; e < s; e++) t[e] = arguments[e]; - return xn(Cs, t); + return Ln(Ts, t); }); -var Cs; +var Ts; function Q(s) { return function(t) { t instanceof RegExp && (t.lastIndex = 0); for (var e = arguments.length, i = new Array(e > 1 ? e - 1 : 0), n = 1; n < e; n++) i[n - 1] = arguments[n]; - return En(s, t, i); + return Sn(s, t, i); }; } -function x(s, t) { - let e = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : si; - Ss && Ss(s, null); +function L(s, t) { + let e = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : ri; + Cs && Cs(s, null); let i = t.length; for (; i--; ) { let n = t[i]; if (typeof n == "string") { const r = e(n); - r !== n && (ua(t) || (t[i] = r), n = r); + r !== n && (xo(t) || (t[i] = r), n = r); } s[n] = !0; } return s; } -function _a(s) { +function Io(s) { for (let t = 0; t < s.length; t++) lt(s, t) || (s[t] = null); return s; } function ft(s) { - const t = Xr(null); - for (const [e, i] of Yr(s)) - lt(s, e) && (Array.isArray(i) ? t[e] = _a(i) : i && typeof i == "object" && i.constructor === Object ? t[e] = ft(i) : t[e] = i); + const t = la(null); + for (const [e, i] of oa(s)) + lt(s, e) && (Array.isArray(i) ? t[e] = Io(i) : i && typeof i == "object" && i.constructor === Object ? t[e] = ft(i) : t[e] = i); return t; } function be(s, t) { for (; s !== null; ) { - const e = ga(s, t); + const e = Lo(s, t); if (e) { if (e.get) return Q(e.get); if (typeof e.value == "function") return Q(e.value); } - s = ma(s); + s = So(s); } return function() { return null; }; } -const ws = X(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "search", "section", "select", "shadow", "slot", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]), ji = X(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "enterkeyhint", "exportparts", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "inputmode", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "part", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "slot", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]), Vi = X(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]), ya = X(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]), zi = X(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]), Aa = X(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), Ts = X(["#text"]), ks = X(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "exportparts", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inert", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "part", "pattern", "placeholder", "playsinline", "popover", "popovertarget", "popovertargetaction", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "slot", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "wrap", "xmlns", "slot"]), Wi = X(["accent-height", "accumulate", "additive", "alignment-baseline", "amplitude", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "exponent", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "intercept", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "slope", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "tablevalues", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]), Is = X(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]), Ge = X(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), Ea = st(/\{\{[\w\W]*|[\w\W]*\}\}/gm), xa = st(/<%[\w\W]*|[\w\W]*%>/gm), Sa = st(/\$\{[\w\W]*/gm), La = st(/^data-[\-\w.\u00B7-\uFFFF]+$/), Ca = st(/^aria-[\-\w]+$/), Qr = st(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i), wa = st(/^(?:\w+script|data):/i), Ta = st(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g), Zr = st(/^html$/i), ka = st(/^[a-z][.\w]*(-[.\w]+)+$/i); -var Rs = Object.freeze({ __proto__: null, ARIA_ATTR: Ca, ATTR_WHITESPACE: Ta, CUSTOM_ELEMENT: ka, DATA_ATTR: La, DOCTYPE_NAME: Zr, ERB_EXPR: xa, IS_ALLOWED_URI: Qr, IS_SCRIPT_OR_DATA: wa, MUSTACHE_EXPR: Ea, TMPLIT_EXPR: Sa }); -const Ia = 1, Ra = 3, Da = 7, Oa = 8, Ma = 9, Ba = function() { +const ks = X(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "search", "section", "select", "shadow", "slot", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]), ji = X(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "enterkeyhint", "exportparts", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "inputmode", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "part", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "slot", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]), Wi = X(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]), Ro = X(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]), zi = X(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]), Do = X(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), Is = X(["#text"]), Rs = X(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "exportparts", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inert", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "part", "pattern", "placeholder", "playsinline", "popover", "popovertarget", "popovertargetaction", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "slot", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "wrap", "xmlns", "slot"]), Ki = X(["accent-height", "accumulate", "additive", "alignment-baseline", "amplitude", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "exponent", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "intercept", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "slope", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "tablevalues", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]), Ds = X(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]), Ge = X(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), Oo = st(/\{\{[\w\W]*|[\w\W]*\}\}/gm), Mo = st(/<%[\w\W]*|[\w\W]*%>/gm), Bo = st(/\$\{[\w\W]*/gm), No = st(/^data-[\-\w.\u00B7-\uFFFF]+$/), Po = st(/^aria-[\-\w]+$/), da = st(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i), Fo = st(/^(?:\w+script|data):/i), Ho = st(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g), ca = st(/^html$/i), qo = st(/^[a-z][.\w]*(-[.\w]+)+$/i); +var Os = Object.freeze({ __proto__: null, ARIA_ATTR: Po, ATTR_WHITESPACE: Ho, CUSTOM_ELEMENT: qo, DATA_ATTR: No, DOCTYPE_NAME: ca, ERB_EXPR: Mo, IS_ALLOWED_URI: da, IS_SCRIPT_OR_DATA: Fo, MUSTACHE_EXPR: Oo, TMPLIT_EXPR: Bo }); +const $o = 1, Uo = 3, Vo = 7, jo = 8, Wo = 9, zo = function() { return typeof window > "u" ? null : window; }; var Ie = function s() { - let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Ba(); - const e = (c) => s(c); - if (e.version = "3.2.7", e.removed = [], !t || !t.document || t.document.nodeType !== Ma || !t.Element) return e.isSupported = !1, e; + let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : zo(); + const e = (d) => s(d); + if (e.version = "3.2.7", e.removed = [], !t || !t.document || t.document.nodeType !== Wo || !t.Element) return e.isSupported = !1, e; let { document: i } = t; - const n = i, r = n.currentScript, { DocumentFragment: o, HTMLTemplateElement: a, Node: l, Element: d, NodeFilter: h, NamedNodeMap: m = t.NamedNodeMap || t.MozNamedAttrMap, HTMLFormElement: f, DOMParser: u, trustedTypes: b } = t, E = d.prototype, I = be(E, "cloneNode"), P = be(E, "remove"), R = be(E, "nextSibling"), k = be(E, "childNodes"), _ = be(E, "parentNode"); - if (typeof a == "function") { - const c = i.createElement("template"); - c.content && c.content.ownerDocument && (i = c.content.ownerDocument); + const n = i, r = n.currentScript, { DocumentFragment: a, HTMLTemplateElement: o, Node: l, Element: c, NodeFilter: h, NamedNodeMap: m = t.NamedNodeMap || t.MozNamedAttrMap, HTMLFormElement: p, DOMParser: u, trustedTypes: b } = t, A = c.prototype, I = be(A, "cloneNode"), F = be(A, "remove"), R = be(A, "nextSibling"), H = be(A, "childNodes"), _ = be(A, "parentNode"); + if (typeof o == "function") { + const d = i.createElement("template"); + d.content && d.content.ownerDocument && (i = d.content.ownerDocument); } - let S, q = ""; - const { implementation: K, createNodeIterator: dt, createDocumentFragment: yt, getElementsByTagName: Be } = i, { importNode: et } = n; + let S, E = ""; + const { implementation: V, createNodeIterator: ct, createDocumentFragment: yt, getElementsByTagName: Be } = i, { importNode: et } = n; let j = { afterSanitizeAttributes: [], afterSanitizeElements: [], afterSanitizeShadowDOM: [], beforeSanitizeAttributes: [], beforeSanitizeElements: [], beforeSanitizeShadowDOM: [], uponSanitizeAttribute: [], uponSanitizeElement: [], uponSanitizeShadowNode: [] }; - e.isSupported = typeof Yr == "function" && typeof _ == "function" && K && K.createHTMLDocument !== void 0; - const { MUSTACHE_EXPR: re, ERB_EXPR: oe, TMPLIT_EXPR: ae, DATA_ATTR: bi, ARIA_ATTR: Ne, IS_SCRIPT_OR_DATA: Z, ATTR_WHITESPACE: mt, CUSTOM_ELEMENT: Un } = Rs; - let { IS_ALLOWED_URI: jn } = Rs, $ = null; - const Vn = x({}, [...ws, ...ji, ...Vi, ...zi, ...Ts]); - let V = null; - const zn = x({}, [...ks, ...Wi, ...Is, ...Ge]); - let M = Object.seal(Xr(null, { tagNameCheck: { writable: !0, configurable: !1, enumerable: !0, value: null }, attributeNameCheck: { writable: !0, configurable: !1, enumerable: !0, value: null }, allowCustomizedBuiltInElements: { writable: !0, configurable: !1, enumerable: !0, value: !1 } })), le = null, vi = null, Wn = !0, _i = !0, Kn = !1, Gn = !0, jt = !1, Pe = !0, Tt = !1, yi = !1, Ai = !1, Vt = !1, Fe = !1, qe = !1, Jn = !0, Yn = !1, Ei = !0, ce = !1, zt = {}, Wt = null; - const Xn = x({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]); - let Qn = null; - const Zn = x({}, ["audio", "video", "img", "source", "image", "track"]); - let xi = null; - const ts = x({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), He = "http://www.w3.org/1998/Math/MathML", $e = "http://www.w3.org/2000/svg", gt = "http://www.w3.org/1999/xhtml"; - let Kt = gt, Si = !1, Li = null; - const No = x({}, [He, $e, gt], $i); - let Ue = x({}, ["mi", "mo", "mn", "ms", "mtext"]), je = x({}, ["annotation-xml"]); - const Po = x({}, ["title", "style", "font", "a", "script"]); - let de = null; - const Fo = ["application/xhtml+xml", "text/html"]; + e.isSupported = typeof oa == "function" && typeof _ == "function" && V && V.createHTMLDocument !== void 0; + const { MUSTACHE_EXPR: re, ERB_EXPR: ae, TMPLIT_EXPR: oe, DATA_ATTR: _i, ARIA_ATTR: Ne, IS_SCRIPT_OR_DATA: Z, ATTR_WHITESPACE: mt, CUSTOM_ELEMENT: jn } = Os; + let { IS_ALLOWED_URI: Wn } = Os, $ = null; + const zn = L({}, [...ks, ...ji, ...Wi, ...zi, ...Is]); + let W = null; + const Kn = L({}, [...Rs, ...Ki, ...Ds, ...Ge]); + let M = Object.seal(la(null, { tagNameCheck: { writable: !0, configurable: !1, enumerable: !0, value: null }, attributeNameCheck: { writable: !0, configurable: !1, enumerable: !0, value: null }, allowCustomizedBuiltInElements: { writable: !0, configurable: !1, enumerable: !0, value: !1 } })), le = null, vi = null, Gn = !0, yi = !0, Jn = !1, Yn = !0, Vt = !1, Pe = !0, Tt = !1, Ai = !1, Ei = !1, jt = !1, Fe = !1, He = !1, Xn = !0, Qn = !1, xi = !0, de = !1, Wt = {}, zt = null; + const Zn = L({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]); + let ts = null; + const es = L({}, ["audio", "video", "img", "source", "image", "track"]); + let Si = null; + const is = L({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), qe = "http://www.w3.org/1998/Math/MathML", $e = "http://www.w3.org/2000/svg", gt = "http://www.w3.org/1999/xhtml"; + let Kt = gt, Li = !1, Ci = null; + const za = L({}, [qe, $e, gt], Ui); + let Ue = L({}, ["mi", "mo", "mn", "ms", "mtext"]), Ve = L({}, ["annotation-xml"]); + const Ka = L({}, ["title", "style", "font", "a", "script"]); + let ce = null; + const Ga = ["application/xhtml+xml", "text/html"]; let U = null, Gt = null; - const qo = i.createElement("form"), es = function(c) { - return c instanceof RegExp || c instanceof Function; - }, Ci = function() { - let c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; - if (!Gt || Gt !== c) { - if (c && typeof c == "object" || (c = {}), c = ft(c), de = Fo.indexOf(c.PARSER_MEDIA_TYPE) === -1 ? "text/html" : c.PARSER_MEDIA_TYPE, U = de === "application/xhtml+xml" ? $i : si, $ = lt(c, "ALLOWED_TAGS") ? x({}, c.ALLOWED_TAGS, U) : Vn, V = lt(c, "ALLOWED_ATTR") ? x({}, c.ALLOWED_ATTR, U) : zn, Li = lt(c, "ALLOWED_NAMESPACES") ? x({}, c.ALLOWED_NAMESPACES, $i) : No, xi = lt(c, "ADD_URI_SAFE_ATTR") ? x(ft(ts), c.ADD_URI_SAFE_ATTR, U) : ts, Qn = lt(c, "ADD_DATA_URI_TAGS") ? x(ft(Zn), c.ADD_DATA_URI_TAGS, U) : Zn, Wt = lt(c, "FORBID_CONTENTS") ? x({}, c.FORBID_CONTENTS, U) : Xn, le = lt(c, "FORBID_TAGS") ? x({}, c.FORBID_TAGS, U) : ft({}), vi = lt(c, "FORBID_ATTR") ? x({}, c.FORBID_ATTR, U) : ft({}), zt = !!lt(c, "USE_PROFILES") && c.USE_PROFILES, Wn = c.ALLOW_ARIA_ATTR !== !1, _i = c.ALLOW_DATA_ATTR !== !1, Kn = c.ALLOW_UNKNOWN_PROTOCOLS || !1, Gn = c.ALLOW_SELF_CLOSE_IN_ATTR !== !1, jt = c.SAFE_FOR_TEMPLATES || !1, Pe = c.SAFE_FOR_XML !== !1, Tt = c.WHOLE_DOCUMENT || !1, Vt = c.RETURN_DOM || !1, Fe = c.RETURN_DOM_FRAGMENT || !1, qe = c.RETURN_TRUSTED_TYPE || !1, Ai = c.FORCE_BODY || !1, Jn = c.SANITIZE_DOM !== !1, Yn = c.SANITIZE_NAMED_PROPS || !1, Ei = c.KEEP_CONTENT !== !1, ce = c.IN_PLACE || !1, jn = c.ALLOWED_URI_REGEXP || Qr, Kt = c.NAMESPACE || gt, Ue = c.MATHML_TEXT_INTEGRATION_POINTS || Ue, je = c.HTML_INTEGRATION_POINTS || je, M = c.CUSTOM_ELEMENT_HANDLING || {}, c.CUSTOM_ELEMENT_HANDLING && es(c.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (M.tagNameCheck = c.CUSTOM_ELEMENT_HANDLING.tagNameCheck), c.CUSTOM_ELEMENT_HANDLING && es(c.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (M.attributeNameCheck = c.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), c.CUSTOM_ELEMENT_HANDLING && typeof c.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && (M.allowCustomizedBuiltInElements = c.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), jt && (_i = !1), Fe && (Vt = !0), zt && ($ = x({}, Ts), V = [], zt.html === !0 && (x($, ws), x(V, ks)), zt.svg === !0 && (x($, ji), x(V, Wi), x(V, Ge)), zt.svgFilters === !0 && (x($, Vi), x(V, Wi), x(V, Ge)), zt.mathMl === !0 && (x($, zi), x(V, Is), x(V, Ge))), c.ADD_TAGS && ($ === Vn && ($ = ft($)), x($, c.ADD_TAGS, U)), c.ADD_ATTR && (V === zn && (V = ft(V)), x(V, c.ADD_ATTR, U)), c.ADD_URI_SAFE_ATTR && x(xi, c.ADD_URI_SAFE_ATTR, U), c.FORBID_CONTENTS && (Wt === Xn && (Wt = ft(Wt)), x(Wt, c.FORBID_CONTENTS, U)), Ei && ($["#text"] = !0), Tt && x($, ["html", "head", "body"]), $.table && (x($, ["tbody"]), delete le.tbody), c.TRUSTED_TYPES_POLICY) { - if (typeof c.TRUSTED_TYPES_POLICY.createHTML != "function") throw fe('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.'); - if (typeof c.TRUSTED_TYPES_POLICY.createScriptURL != "function") throw fe('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.'); - S = c.TRUSTED_TYPES_POLICY, q = S.createHTML(""); - } else S === void 0 && (S = function(p, g) { - if (typeof p != "object" || typeof p.createPolicy != "function") return null; - let L = null; - const w = "data-tt-policy-suffix"; - g && g.hasAttribute(w) && (L = g.getAttribute(w)); - const y = "dompurify" + (L ? "#" + L : ""); + const Ja = i.createElement("form"), ns = function(d) { + return d instanceof RegExp || d instanceof Function; + }, wi = function() { + let d = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + if (!Gt || Gt !== d) { + if (d && typeof d == "object" || (d = {}), d = ft(d), ce = Ga.indexOf(d.PARSER_MEDIA_TYPE) === -1 ? "text/html" : d.PARSER_MEDIA_TYPE, U = ce === "application/xhtml+xml" ? Ui : ri, $ = lt(d, "ALLOWED_TAGS") ? L({}, d.ALLOWED_TAGS, U) : zn, W = lt(d, "ALLOWED_ATTR") ? L({}, d.ALLOWED_ATTR, U) : Kn, Ci = lt(d, "ALLOWED_NAMESPACES") ? L({}, d.ALLOWED_NAMESPACES, Ui) : za, Si = lt(d, "ADD_URI_SAFE_ATTR") ? L(ft(is), d.ADD_URI_SAFE_ATTR, U) : is, ts = lt(d, "ADD_DATA_URI_TAGS") ? L(ft(es), d.ADD_DATA_URI_TAGS, U) : es, zt = lt(d, "FORBID_CONTENTS") ? L({}, d.FORBID_CONTENTS, U) : Zn, le = lt(d, "FORBID_TAGS") ? L({}, d.FORBID_TAGS, U) : ft({}), vi = lt(d, "FORBID_ATTR") ? L({}, d.FORBID_ATTR, U) : ft({}), Wt = !!lt(d, "USE_PROFILES") && d.USE_PROFILES, Gn = d.ALLOW_ARIA_ATTR !== !1, yi = d.ALLOW_DATA_ATTR !== !1, Jn = d.ALLOW_UNKNOWN_PROTOCOLS || !1, Yn = d.ALLOW_SELF_CLOSE_IN_ATTR !== !1, Vt = d.SAFE_FOR_TEMPLATES || !1, Pe = d.SAFE_FOR_XML !== !1, Tt = d.WHOLE_DOCUMENT || !1, jt = d.RETURN_DOM || !1, Fe = d.RETURN_DOM_FRAGMENT || !1, He = d.RETURN_TRUSTED_TYPE || !1, Ei = d.FORCE_BODY || !1, Xn = d.SANITIZE_DOM !== !1, Qn = d.SANITIZE_NAMED_PROPS || !1, xi = d.KEEP_CONTENT !== !1, de = d.IN_PLACE || !1, Wn = d.ALLOWED_URI_REGEXP || da, Kt = d.NAMESPACE || gt, Ue = d.MATHML_TEXT_INTEGRATION_POINTS || Ue, Ve = d.HTML_INTEGRATION_POINTS || Ve, M = d.CUSTOM_ELEMENT_HANDLING || {}, d.CUSTOM_ELEMENT_HANDLING && ns(d.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (M.tagNameCheck = d.CUSTOM_ELEMENT_HANDLING.tagNameCheck), d.CUSTOM_ELEMENT_HANDLING && ns(d.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (M.attributeNameCheck = d.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), d.CUSTOM_ELEMENT_HANDLING && typeof d.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && (M.allowCustomizedBuiltInElements = d.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), Vt && (yi = !1), Fe && (jt = !0), Wt && ($ = L({}, Is), W = [], Wt.html === !0 && (L($, ks), L(W, Rs)), Wt.svg === !0 && (L($, ji), L(W, Ki), L(W, Ge)), Wt.svgFilters === !0 && (L($, Wi), L(W, Ki), L(W, Ge)), Wt.mathMl === !0 && (L($, zi), L(W, Ds), L(W, Ge))), d.ADD_TAGS && ($ === zn && ($ = ft($)), L($, d.ADD_TAGS, U)), d.ADD_ATTR && (W === Kn && (W = ft(W)), L(W, d.ADD_ATTR, U)), d.ADD_URI_SAFE_ATTR && L(Si, d.ADD_URI_SAFE_ATTR, U), d.FORBID_CONTENTS && (zt === Zn && (zt = ft(zt)), L(zt, d.FORBID_CONTENTS, U)), xi && ($["#text"] = !0), Tt && L($, ["html", "head", "body"]), $.table && (L($, ["tbody"]), delete le.tbody), d.TRUSTED_TYPES_POLICY) { + if (typeof d.TRUSTED_TYPES_POLICY.createHTML != "function") throw fe('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.'); + if (typeof d.TRUSTED_TYPES_POLICY.createScriptURL != "function") throw fe('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.'); + S = d.TRUSTED_TYPES_POLICY, E = S.createHTML(""); + } else S === void 0 && (S = function(f, g) { + if (typeof f != "object" || typeof f.createPolicy != "function") return null; + let C = null; + const T = "data-tt-policy-suffix"; + g && g.hasAttribute(T) && (C = g.getAttribute(T)); + const y = "dompurify" + (C ? "#" + C : ""); try { - return p.createPolicy(y, { createHTML: (H) => H, createScriptURL: (H) => H }); + return f.createPolicy(y, { createHTML: (q) => q, createScriptURL: (q) => q }); } catch { return console.warn("TrustedTypes policy " + y + " could not be created."), null; } - }(b, r)), S !== null && typeof q == "string" && (q = S.createHTML("")); - X && X(c), Gt = c; + }(b, r)), S !== null && typeof E == "string" && (E = S.createHTML("")); + X && X(d), Gt = d; } - }, is = x({}, [...ji, ...Vi, ...ya]), ns = x({}, [...zi, ...Aa]), ht = function(c) { - ge(e.removed, { element: c }); + }, ss = L({}, [...ji, ...Wi, ...Ro]), rs = L({}, [...zi, ...Do]), ht = function(d) { + ge(e.removed, { element: d }); try { - _(c).removeChild(c); + _(d).removeChild(d); } catch { - P(c); + F(d); } - }, kt = function(c, p) { + }, kt = function(d, f) { try { - ge(e.removed, { attribute: p.getAttributeNode(c), from: p }); + ge(e.removed, { attribute: f.getAttributeNode(d), from: f }); } catch { - ge(e.removed, { attribute: null, from: p }); + ge(e.removed, { attribute: null, from: f }); } - if (p.removeAttribute(c), c === "is") if (Vt || Fe) try { - ht(p); + if (f.removeAttribute(d), d === "is") if (jt || Fe) try { + ht(f); } catch { } else try { - p.setAttribute(c, ""); + f.setAttribute(d, ""); } catch { } - }, ss = function(c) { - let p = null, g = null; - if (Ai) c = "