@opensystemslab/map 1.0.0-alpha.13 → 1.0.0-alpha.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,898 @@
1
+ /*! @license DOMPurify 3.4.14 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.14/LICENSE */
2
+ function We(r, i) {
3
+ (i == null || i > r.length) && (i = r.length);
4
+ for (var s = 0, c = Array(i); s < i; s++) c[s] = r[s];
5
+ return c;
6
+ }
7
+ function Fn(r) {
8
+ if (Array.isArray(r)) return r;
9
+ }
10
+ function zn(r, i) {
11
+ var s = r == null ? null : typeof Symbol < "u" && r[Symbol.iterator] || r["@@iterator"];
12
+ if (s != null) {
13
+ var c, f, d, y, st = [], N = !0, lt = !1;
14
+ try {
15
+ if (d = (s = s.call(r)).next, i !== 0) for (; !(N = (c = d.call(s)).done) && (st.push(c.value), st.length !== i); N = !0) ;
16
+ } catch (xt) {
17
+ lt = !0, f = xt;
18
+ } finally {
19
+ try {
20
+ if (!N && s.return != null && (y = s.return(), Object(y) !== y)) return;
21
+ } finally {
22
+ if (lt) throw f;
23
+ }
24
+ }
25
+ return st;
26
+ }
27
+ }
28
+ function Hn() {
29
+ throw new TypeError(`Invalid attempt to destructure non-iterable instance.
30
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
31
+ }
32
+ function Gn(r, i) {
33
+ return Fn(r) || zn(r, i) || Wn(r, i) || Hn();
34
+ }
35
+ function Wn(r, i) {
36
+ if (r) {
37
+ if (typeof r == "string") return We(r, i);
38
+ var s = {}.toString.call(r).slice(8, -1);
39
+ return s === "Object" && r.constructor && (s = r.constructor.name), s === "Map" || s === "Set" ? Array.from(r) : s === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s) ? We(r, i) : void 0;
40
+ }
41
+ }
42
+ const on = Object.entries, Be = Object.setPrototypeOf, Bn = Object.isFrozen, Yn = Object.getPrototypeOf, jn = Object.getOwnPropertyDescriptor;
43
+ let S = Object.freeze, b = Object.seal, it = Object.create, rn = typeof Reflect < "u" && Reflect, se = rn.apply, le = rn.construct;
44
+ S || (S = function(i) {
45
+ return i;
46
+ });
47
+ b || (b = function(i) {
48
+ return i;
49
+ });
50
+ se || (se = function(i, s) {
51
+ for (var c = arguments.length, f = new Array(c > 2 ? c - 2 : 0), d = 2; d < c; d++)
52
+ f[d - 2] = arguments[d];
53
+ return i.apply(s, f);
54
+ });
55
+ le || (le = function(i) {
56
+ for (var s = arguments.length, c = new Array(s > 1 ? s - 1 : 0), f = 1; f < s; f++)
57
+ c[f - 1] = arguments[f];
58
+ return new i(...c);
59
+ });
60
+ const V = A(Array.prototype.forEach), $n = A(Array.prototype.lastIndexOf), Ye = A(Array.prototype.pop), dt = A(Array.prototype.push), Xn = A(Array.prototype.splice), at = Array.isArray, _t = A(String.prototype.toLowerCase), ee = A(String.prototype.toString), je = A(String.prototype.match), Tt = A(String.prototype.replace), $e = A(String.prototype.indexOf), Vn = A(String.prototype.trim), qn = A(Number.prototype.toString), Kn = A(Boolean.prototype.toString), Xe = typeof BigInt > "u" ? null : A(BigInt.prototype.toString), Ve = typeof Symbol > "u" ? null : A(Symbol.prototype.toString), I = A(Object.prototype.hasOwnProperty), ht = A(Object.prototype.toString), O = A(RegExp.prototype.test), X = Zn(TypeError);
61
+ function A(r) {
62
+ return function(i) {
63
+ i instanceof RegExp && (i.lastIndex = 0);
64
+ for (var s = arguments.length, c = new Array(s > 1 ? s - 1 : 0), f = 1; f < s; f++)
65
+ c[f - 1] = arguments[f];
66
+ return se(r, i, c);
67
+ };
68
+ }
69
+ function Zn(r) {
70
+ return function() {
71
+ for (var i = arguments.length, s = new Array(i), c = 0; c < i; c++)
72
+ s[c] = arguments[c];
73
+ return le(r, s);
74
+ };
75
+ }
76
+ function p(r, i) {
77
+ let s = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : _t;
78
+ if (Be && Be(r, null), !at(i))
79
+ return r;
80
+ let c = i.length;
81
+ for (; c--; ) {
82
+ let f = i[c];
83
+ if (typeof f == "string") {
84
+ const d = s(f);
85
+ d !== f && (Bn(i) || (i[c] = d), f = d);
86
+ }
87
+ r[f] = !0;
88
+ }
89
+ return r;
90
+ }
91
+ function Jn(r) {
92
+ for (let i = 0; i < r.length; i++)
93
+ I(r, i) || (r[i] = null);
94
+ return r;
95
+ }
96
+ function C(r) {
97
+ const i = it(null);
98
+ for (const c of on(r)) {
99
+ var s = Gn(c, 2);
100
+ const f = s[0], d = s[1];
101
+ I(r, f) && (at(d) ? i[f] = Jn(d) : d && typeof d == "object" && d.constructor === Object ? i[f] = C(d) : i[f] = d);
102
+ }
103
+ return i;
104
+ }
105
+ function Qn(r) {
106
+ switch (typeof r) {
107
+ case "string":
108
+ return r;
109
+ case "number":
110
+ return qn(r);
111
+ case "boolean":
112
+ return Kn(r);
113
+ case "bigint":
114
+ return Xe ? Xe(r) : "0";
115
+ case "symbol":
116
+ return Ve ? Ve(r) : "Symbol()";
117
+ case "undefined":
118
+ return ht(r);
119
+ case "function":
120
+ case "object": {
121
+ if (r === null)
122
+ return ht(r);
123
+ const i = r, s = P(i, "toString");
124
+ if (typeof s == "function") {
125
+ const c = s(i);
126
+ return typeof c == "string" ? c : ht(c);
127
+ }
128
+ return ht(r);
129
+ }
130
+ default:
131
+ return ht(r);
132
+ }
133
+ }
134
+ function P(r, i) {
135
+ for (; r !== null; ) {
136
+ const c = jn(r, i);
137
+ if (c) {
138
+ if (c.get)
139
+ return A(c.get);
140
+ if (typeof c.value == "function")
141
+ return A(c.value);
142
+ }
143
+ r = Yn(r);
144
+ }
145
+ function s() {
146
+ return null;
147
+ }
148
+ return s;
149
+ }
150
+ function to(r) {
151
+ try {
152
+ return O(r, ""), !0;
153
+ } catch {
154
+ return !1;
155
+ }
156
+ }
157
+ const qe = S(["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"]), ne = S(["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", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]), oe = S(["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"]), eo = S(["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"]), re = S(["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"]), no = S(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), Ke = S(["#text"]), Ze = S(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "command", "commandfor", "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"]), ie = S(["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", "dominant-baseline", "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", "mask-type", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "pointer-events", "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-orientation", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "vector-effect", "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"]), Je = S(["accent", "accentunder", "align", "bevelled", "close", "columnalign", "columnlines", "columnspacing", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lquote", "lspace", "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"]), Pt = S(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), oo = b(/{{[\w\W]*|^[\w\W]*}}/g), ro = b(/<%[\w\W]*|^[\w\W]*%>/g), io = b(/\${[\w\W]*/g), ao = b(/^data-[\-\w.\u00B7-\uFFFF]+$/), so = b(/^aria-[\-\w]+$/), Qe = b(
158
+ /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
159
+ // eslint-disable-line no-useless-escape
160
+ ), lo = b(/^(?:\w+script|data):/i), co = b(
161
+ /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
162
+ // eslint-disable-line no-control-regex
163
+ ), uo = b(/^html$/i), fo = b(/^[a-z][.\w]*(-[.\w]+)+$/i), tn = b(/<[/\w!]/g), en = b(/<[/\w]/g), po = b(/<\/no(script|embed|frames)/i), mo = b(/\/>/i), M = {
164
+ element: 1,
165
+ attribute: 2,
166
+ text: 3,
167
+ cdataSection: 4,
168
+ entityReference: 5,
169
+ // Deprecated
170
+ entityNode: 6,
171
+ // Deprecated
172
+ processingInstruction: 7,
173
+ comment: 8,
174
+ document: 9,
175
+ documentType: 10,
176
+ documentFragment: 11,
177
+ notation: 12
178
+ // Deprecated
179
+ }, an = ["style", "script", "xmp", "iframe", "noembed", "noframes", "plaintext", "noscript"], To = S(p({}, an)), ho = (function() {
180
+ const r = {};
181
+ return V(an, (i) => {
182
+ r[i] = b(new RegExp("</" + i + "(?=[\\t\\n\\f\\r />])", "i"));
183
+ }), S(r);
184
+ })(), _o = function() {
185
+ return typeof window > "u" ? null : window;
186
+ }, go = function(i, s) {
187
+ if (typeof i != "object" || typeof i.createPolicy != "function")
188
+ return null;
189
+ let c = null;
190
+ const f = "data-tt-policy-suffix";
191
+ s && s.hasAttribute(f) && (c = s.getAttribute(f));
192
+ const d = "dompurify" + (c ? "#" + c : "");
193
+ try {
194
+ return i.createPolicy(d, {
195
+ createHTML(y) {
196
+ return y;
197
+ },
198
+ createScriptURL(y) {
199
+ return y;
200
+ }
201
+ });
202
+ } catch {
203
+ return console.warn("TrustedTypes policy " + d + " could not be created."), null;
204
+ }
205
+ }, nn = function() {
206
+ return {
207
+ afterSanitizeAttributes: [],
208
+ afterSanitizeElements: [],
209
+ afterSanitizeShadowDOM: [],
210
+ beforeSanitizeAttributes: [],
211
+ beforeSanitizeElements: [],
212
+ beforeSanitizeShadowDOM: [],
213
+ uponSanitizeAttribute: [],
214
+ uponSanitizeElement: [],
215
+ uponSanitizeShadowNode: []
216
+ };
217
+ }, H = function(i, s, c, f) {
218
+ return I(i, s) && at(i[s]) ? p(f.base ? C(f.base) : {}, i[s], f.transform) : c;
219
+ }, ae = function(i, s, c) {
220
+ const f = I(i, s) ? i[s] : void 0;
221
+ return f && typeof f == "object" ? C(f) : c();
222
+ };
223
+ function sn() {
224
+ let r = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : _o();
225
+ const i = (o) => sn(o);
226
+ if (i.version = "3.4.14", i.removed = [], !r || !r.document || r.document.nodeType !== M.document || !r.Element)
227
+ return i.isSupported = !1, i;
228
+ let s = r.document;
229
+ const c = s, f = c.currentScript;
230
+ r.DocumentFragment;
231
+ const d = r.HTMLTemplateElement, y = r.Node, st = r.Element, N = r.NodeFilter, lt = r.NamedNodeMap;
232
+ lt === void 0 && (r.NamedNodeMap || r.MozNamedAttrMap), r.HTMLFormElement;
233
+ const xt = r.DOMParser, gt = r.trustedTypes, G = st.prototype, ln = P(G, "cloneNode"), vt = P(G, "remove"), cn = P(G, "nextSibling"), q = P(G, "childNodes"), K = P(G, "parentNode"), ce = P(G, "shadowRoot"), kt = P(G, "attributes"), W = y && y.prototype ? P(y.prototype, "nodeType") : null, Z = y && y.prototype ? P(y.prototype, "nodeName") : null, Et = y && y.prototype ? P(y.prototype, "ownerDocument") : null, ct = function(t) {
234
+ return W ? W(t) : t.nodeType;
235
+ }, Ut = function(t) {
236
+ return Z ? Z(t) : t.nodeName;
237
+ };
238
+ if (typeof d == "function") {
239
+ const o = s.createElement("template");
240
+ o.content && o.content.ownerDocument && (s = o.content.ownerDocument);
241
+ }
242
+ let L, B = "", Ft, ue = !1, ut = 0;
243
+ const fe = function() {
244
+ if (ut > 0)
245
+ throw X('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.');
246
+ }, J = function(t) {
247
+ fe(), ut++;
248
+ try {
249
+ return L.createHTML(t);
250
+ } finally {
251
+ ut--;
252
+ }
253
+ }, un = function(t) {
254
+ fe(), ut++;
255
+ try {
256
+ return L.createScriptURL(t);
257
+ } finally {
258
+ ut--;
259
+ }
260
+ }, fn = function() {
261
+ return ue || (Ft = go(gt, f), ue = !0), Ft;
262
+ }, At = s, zt = At.implementation, pe = At.createNodeIterator, pn = At.createDocumentFragment, mn = At.getElementsByTagName, dn = c.importNode;
263
+ let T = nn();
264
+ i.isSupported = typeof on == "function" && typeof K == "function" && zt && zt.createHTMLDocument !== void 0;
265
+ const Tn = oo, hn = ro, _n = io, gn = ao, En = so, An = lo, me = co, yn = fo;
266
+ let de = Qe, h = null;
267
+ const Ht = p({}, [...qe, ...ne, ...oe, ...re, ...Ke]);
268
+ let _ = null;
269
+ const Gt = p({}, [...Ze, ...ie, ...Je, ...Pt]);
270
+ let x = Object.seal(it(null, {
271
+ tagNameCheck: {
272
+ writable: !0,
273
+ configurable: !1,
274
+ enumerable: !0,
275
+ value: null
276
+ },
277
+ attributeNameCheck: {
278
+ writable: !0,
279
+ configurable: !1,
280
+ enumerable: !0,
281
+ value: null
282
+ },
283
+ allowCustomizedBuiltInElements: {
284
+ writable: !0,
285
+ configurable: !1,
286
+ enumerable: !0,
287
+ value: !1
288
+ }
289
+ })), ft = null, Te = null;
290
+ const U = Object.seal(it(null, {
291
+ tagCheck: {
292
+ writable: !0,
293
+ configurable: !1,
294
+ enumerable: !0,
295
+ value: null
296
+ },
297
+ attributeCheck: {
298
+ writable: !0,
299
+ configurable: !1,
300
+ enumerable: !0,
301
+ value: null
302
+ }
303
+ }));
304
+ let he = !0, Wt = !0, _e = !1, ge = !0, F = !1, Y = !0, j = !1, Bt = !1, yt = null, St = null, Yt = !1, Q = !1, bt = !1, Ot = !1, Ee = !0, Ae = !1;
305
+ const ye = "user-content-";
306
+ let jt = !0, $t = !1, tt = {}, et = null;
307
+ const Se = p({}, [
308
+ "annotation-xml",
309
+ "audio",
310
+ "colgroup",
311
+ "desc",
312
+ "foreignobject",
313
+ "head",
314
+ "iframe",
315
+ "math",
316
+ "mi",
317
+ "mn",
318
+ "mo",
319
+ "ms",
320
+ "mtext",
321
+ "noembed",
322
+ "noframes",
323
+ "noscript",
324
+ "plaintext",
325
+ "script",
326
+ // <selectedcontent> mirrors the selected <option>'s subtree, cloned by
327
+ // the UA (customizable <select>) — including any on* handlers — and the
328
+ // engine re-mirrors synchronously whenever a removal changes which
329
+ // option/selectedcontent is current, even inside DOMPurify's inert
330
+ // DOMParser document. Hoisting its children on removal re-inserts a fresh
331
+ // mirror target ahead of the walk, which the engine refills, looping
332
+ // forever (DoS) and amplifying output. Dropping its content on removal
333
+ // (rather than hoisting) breaks that cascade; the content is a duplicate
334
+ // of the option, which is sanitized on its own. See campaign-3 F1/F6.
335
+ "selectedcontent",
336
+ "style",
337
+ "svg",
338
+ "template",
339
+ "thead",
340
+ "title",
341
+ "video",
342
+ "xmp"
343
+ ]);
344
+ let be = null;
345
+ const Oe = p({}, ["audio", "video", "img", "source", "image", "track"]);
346
+ let Re = null;
347
+ const Le = p({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), Rt = "http://www.w3.org/1998/Math/MathML", Lt = "http://www.w3.org/2000/svg", v = "http://www.w3.org/1999/xhtml";
348
+ let nt = v, Xt = !1, Vt = null;
349
+ const Sn = p({}, [Rt, Lt, v], ee), De = S(["mi", "mo", "mn", "ms", "mtext"]);
350
+ let qt = p({}, De);
351
+ const we = S(["annotation-xml"]);
352
+ let Kt = p({}, we);
353
+ const bn = p({}, ["title", "style", "font", "a", "script"]);
354
+ let pt = null;
355
+ const On = ["application/xhtml+xml", "text/html"], Rn = "text/html";
356
+ let E = null, ot = null;
357
+ const Ln = s.createElement("form"), Ie = function(t) {
358
+ return t instanceof RegExp || t instanceof Function;
359
+ }, Zt = function() {
360
+ let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
361
+ if (ot && ot === t)
362
+ return;
363
+ (!t || typeof t != "object") && (t = {}), t = C(t), pt = // eslint-disable-next-line unicorn/prefer-includes
364
+ On.indexOf(t.PARSER_MEDIA_TYPE) === -1 ? Rn : t.PARSER_MEDIA_TYPE, E = pt === "application/xhtml+xml" ? ee : _t, h = H(t, "ALLOWED_TAGS", Ht, {
365
+ transform: E
366
+ }), _ = H(t, "ALLOWED_ATTR", Gt, {
367
+ transform: E
368
+ }), Vt = H(t, "ALLOWED_NAMESPACES", Sn, {
369
+ transform: ee
370
+ }), Re = H(t, "ADD_URI_SAFE_ATTR", Le, {
371
+ transform: E,
372
+ base: Le
373
+ }), be = H(t, "ADD_DATA_URI_TAGS", Oe, {
374
+ transform: E,
375
+ base: Oe
376
+ }), et = H(t, "FORBID_CONTENTS", Se, {
377
+ transform: E
378
+ }), ft = H(t, "FORBID_TAGS", C({}), {
379
+ transform: E
380
+ }), Te = H(t, "FORBID_ATTR", C({}), {
381
+ transform: E
382
+ }), tt = I(t, "USE_PROFILES") ? t.USE_PROFILES && typeof t.USE_PROFILES == "object" ? C(t.USE_PROFILES) : t.USE_PROFILES : !1, he = t.ALLOW_ARIA_ATTR !== !1, Wt = t.ALLOW_DATA_ATTR !== !1, _e = t.ALLOW_UNKNOWN_PROTOCOLS || !1, ge = t.ALLOW_SELF_CLOSE_IN_ATTR !== !1, F = t.SAFE_FOR_TEMPLATES || !1, Y = t.SAFE_FOR_XML !== !1, j = t.WHOLE_DOCUMENT || !1, Q = t.RETURN_DOM || !1, bt = t.RETURN_DOM_FRAGMENT || !1, Ot = t.RETURN_TRUSTED_TYPE || !1, Yt = t.FORCE_BODY || !1, Ee = t.SANITIZE_DOM !== !1, Ae = t.SANITIZE_NAMED_PROPS || !1, jt = t.KEEP_CONTENT !== !1, $t = t.IN_PLACE || !1, de = to(t.ALLOWED_URI_REGEXP) ? t.ALLOWED_URI_REGEXP : Qe, nt = typeof t.NAMESPACE == "string" ? t.NAMESPACE : v, qt = ae(
383
+ t,
384
+ "MATHML_TEXT_INTEGRATION_POINTS",
385
+ () => p({}, De)
386
+ // Default built-in map
387
+ ), Kt = ae(
388
+ t,
389
+ "HTML_INTEGRATION_POINTS",
390
+ () => p({}, we)
391
+ // Default built-in map
392
+ );
393
+ const e = ae(t, "CUSTOM_ELEMENT_HANDLING", () => it(null));
394
+ if (x = it(null), I(e, "tagNameCheck") && Ie(e.tagNameCheck) && (x.tagNameCheck = e.tagNameCheck), I(e, "attributeNameCheck") && Ie(e.attributeNameCheck) && (x.attributeNameCheck = e.attributeNameCheck), I(e, "allowCustomizedBuiltInElements") && typeof e.allowCustomizedBuiltInElements == "boolean" && (x.allowCustomizedBuiltInElements = e.allowCustomizedBuiltInElements), b(x), F && (Wt = !1), bt && (Q = !0), tt && (h = p({}, Ke), _ = it(null), tt.html === !0 && (p(h, qe), p(_, Ze)), tt.svg === !0 && (p(h, ne), p(_, ie), p(_, Pt)), tt.svgFilters === !0 && (p(h, oe), p(_, ie), p(_, Pt)), tt.mathMl === !0 && (p(h, re), p(_, Je), p(_, Pt))), U.tagCheck = null, U.attributeCheck = null, I(t, "ADD_TAGS") && (typeof t.ADD_TAGS == "function" ? U.tagCheck = t.ADD_TAGS : at(t.ADD_TAGS) && (h === Ht && (h = C(h)), p(h, t.ADD_TAGS, E))), I(t, "ADD_ATTR") && (typeof t.ADD_ATTR == "function" ? U.attributeCheck = t.ADD_ATTR : at(t.ADD_ATTR) && (_ === Gt && (_ = C(_)), p(_, t.ADD_ATTR, E))), I(t, "ADD_FORBID_CONTENTS") && at(t.ADD_FORBID_CONTENTS) && (et === Se && (et = C(et)), p(et, t.ADD_FORBID_CONTENTS, E)), jt && (h["#text"] = !0), j && p(h, ["html", "head", "body"]), h.table && (p(h, ["tbody"]), delete ft.tbody), t.TRUSTED_TYPES_POLICY) {
395
+ if (typeof t.TRUSTED_TYPES_POLICY.createHTML != "function")
396
+ throw X('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
397
+ if (typeof t.TRUSTED_TYPES_POLICY.createScriptURL != "function")
398
+ throw X('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
399
+ const n = L;
400
+ L = t.TRUSTED_TYPES_POLICY;
401
+ try {
402
+ B = J("");
403
+ } catch (a) {
404
+ throw L = n, a;
405
+ }
406
+ } else t.TRUSTED_TYPES_POLICY === null ? (L = void 0, B = "") : (L === void 0 && (L = fn()), L && typeof B == "string" && (B = J("")));
407
+ S && S(t), ot = t;
408
+ }, Ne = p({}, [...ne, ...oe, ...eo]), Me = p({}, [...re, ...no]), Dn = function(t, e, n) {
409
+ return e.namespaceURI === v ? t === "svg" : e.namespaceURI === Rt ? t === "svg" && (n === "annotation-xml" || qt[n]) : !!Ne[t];
410
+ }, wn = function(t, e, n) {
411
+ return e.namespaceURI === v ? t === "math" : e.namespaceURI === Lt ? t === "math" && Kt[n] : !!Me[t];
412
+ }, In = function(t, e, n) {
413
+ return e.namespaceURI === Lt && !Kt[n] || e.namespaceURI === Rt && !qt[n] ? !1 : !Me[t] && (bn[t] || !Ne[t]);
414
+ }, Nn = function(t) {
415
+ let e = K(t);
416
+ (!e || !e.tagName) && (e = {
417
+ namespaceURI: nt,
418
+ tagName: "template"
419
+ });
420
+ const n = _t(t.tagName), a = _t(e.tagName);
421
+ return Vt[t.namespaceURI] ? t.namespaceURI === Lt ? Dn(n, e, a) : t.namespaceURI === Rt ? wn(n, e, a) : t.namespaceURI === v ? In(n, e, a) : !!(pt === "application/xhtml+xml" && Vt[t.namespaceURI]) : !1;
422
+ }, z = function(t) {
423
+ dt(i.removed, {
424
+ element: t
425
+ });
426
+ try {
427
+ K(t).removeChild(t);
428
+ } catch {
429
+ if (vt(t), !K(t))
430
+ throw X("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place");
431
+ }
432
+ }, Ce = function(t, e, n) {
433
+ try {
434
+ t.removeAttributeNode(e);
435
+ } catch {
436
+ try {
437
+ t.removeAttribute(n);
438
+ } catch {
439
+ }
440
+ }
441
+ }, Dt = function(t) {
442
+ wt(t);
443
+ const e = q(t);
444
+ if (e) {
445
+ const a = [];
446
+ V(e, (l) => {
447
+ dt(a, l);
448
+ }), V(a, (l) => {
449
+ try {
450
+ vt(l);
451
+ } catch {
452
+ }
453
+ });
454
+ }
455
+ const n = kt(t);
456
+ if (n)
457
+ for (let a = n.length - 1; a >= 0; --a) {
458
+ const l = n[a], u = l && l.name;
459
+ typeof u == "string" && Ce(t, l, u);
460
+ }
461
+ }, $ = function(t, e, n) {
462
+ if (!n)
463
+ try {
464
+ n = e.getAttributeNode(t);
465
+ } catch {
466
+ n = null;
467
+ }
468
+ dt(i.removed, {
469
+ attribute: n || null,
470
+ from: e
471
+ });
472
+ try {
473
+ n ? e.removeAttributeNode(n) : e.removeAttribute(t);
474
+ } catch {
475
+ try {
476
+ e.removeAttribute(t);
477
+ } catch {
478
+ }
479
+ }
480
+ if (t === "is")
481
+ if (Q || bt)
482
+ try {
483
+ z(e);
484
+ } catch {
485
+ }
486
+ else
487
+ try {
488
+ e.setAttribute(t, "");
489
+ } catch {
490
+ }
491
+ }, Mn = function(t) {
492
+ const e = kt(t);
493
+ if (e)
494
+ for (let n = e.length - 1; n >= 0; --n) {
495
+ const a = e[n], l = a && a.name;
496
+ typeof l != "string" || _[E(l)] || Ce(t, a, l);
497
+ }
498
+ }, wt = function(t) {
499
+ const e = [t];
500
+ for (; e.length > 0; ) {
501
+ const n = e.pop();
502
+ ct(n) === M.element && Mn(n);
503
+ const l = q(n);
504
+ if (l)
505
+ for (let u = l.length - 1; u >= 0; --u)
506
+ e.push(l[u]);
507
+ }
508
+ }, Pe = function(t, e) {
509
+ return Y ? t === "patchsrc" ? !0 : t === "for" && e !== "label" && e !== "output" : !1;
510
+ }, Cn = function(t) {
511
+ if (!Y)
512
+ return;
513
+ const e = [t];
514
+ for (; e.length > 0; ) {
515
+ const n = e.pop(), a = ct(n);
516
+ if (a === M.processingInstruction || a === M.comment && O(en, n.data)) {
517
+ try {
518
+ vt(n);
519
+ } catch {
520
+ }
521
+ continue;
522
+ }
523
+ if (a === M.element) {
524
+ const u = n, m = E(Ut(n));
525
+ try {
526
+ u.hasAttribute && u.hasAttribute("patchsrc") && u.removeAttribute("patchsrc"), u.hasAttribute && u.hasAttribute("for") && Pe("for", m) && u.removeAttribute("for");
527
+ } catch {
528
+ }
529
+ }
530
+ const l = q(n);
531
+ if (l)
532
+ for (let u = l.length - 1; u >= 0; --u)
533
+ e.push(l[u]);
534
+ }
535
+ }, xe = function(t) {
536
+ let e = null, n = null;
537
+ if (Yt)
538
+ t = "<remove></remove>" + t;
539
+ else {
540
+ const u = je(t, /^[\r\n\t ]+/);
541
+ n = u && u[0];
542
+ }
543
+ pt === "application/xhtml+xml" && nt === v && (t = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + t + "</body></html>");
544
+ const a = L ? J(t) : t;
545
+ if (nt === v)
546
+ try {
547
+ e = new xt().parseFromString(a, pt);
548
+ } catch {
549
+ }
550
+ if (!e || !e.documentElement) {
551
+ e = zt.createDocument(nt, "template", null);
552
+ try {
553
+ e.documentElement.innerHTML = Xt ? B : a;
554
+ } catch {
555
+ }
556
+ }
557
+ const l = e.body || e.documentElement;
558
+ return t && n && l.insertBefore(s.createTextNode(n), l.childNodes[0] || null), nt === v ? mn.call(e, j ? "html" : "body")[0] : j ? e.documentElement : l;
559
+ }, ve = function(t) {
560
+ const e = Et ? Et(t) : t.ownerDocument;
561
+ return pe.call(
562
+ e || t,
563
+ t,
564
+ // eslint-disable-next-line no-bitwise
565
+ N.SHOW_ELEMENT | N.SHOW_COMMENT | N.SHOW_TEXT | N.SHOW_PROCESSING_INSTRUCTION | N.SHOW_CDATA_SECTION,
566
+ null
567
+ );
568
+ }, It = function(t) {
569
+ return t = Tt(t, Tn, " "), t = Tt(t, hn, " "), t = Tt(t, _n, " "), t;
570
+ }, Jt = function(t) {
571
+ var e;
572
+ t.normalize();
573
+ const n = Et ? Et(t) : t.ownerDocument, a = pe.call(
574
+ n || t,
575
+ t,
576
+ // eslint-disable-next-line no-bitwise
577
+ N.SHOW_TEXT | N.SHOW_COMMENT | N.SHOW_CDATA_SECTION | N.SHOW_PROCESSING_INSTRUCTION,
578
+ null
579
+ );
580
+ let l = a.nextNode();
581
+ for (; l; )
582
+ l.data = It(l.data), l = a.nextNode();
583
+ const u = (e = t.querySelectorAll) === null || e === void 0 ? void 0 : e.call(t, "template");
584
+ u && V(u, (m) => {
585
+ rt(m.content) && Jt(m.content);
586
+ });
587
+ }, Nt = function(t) {
588
+ const e = Z ? Z(t) : null;
589
+ return typeof e != "string" || E(e) !== "form" ? !1 : typeof t.nodeName != "string" || typeof t.textContent != "string" || typeof t.removeChild != "function" || // Realm-safe NamedNodeMap detection: equality against the cached
590
+ // prototype getter. Clobbered .attributes (e.g. <input name="attributes">)
591
+ // makes the direct read diverge from the cached read; a clean form
592
+ // (same-realm OR foreign-realm) has both reads pointing at the same
593
+ // canonical NamedNodeMap.
594
+ t.attributes !== kt(t) || typeof t.removeAttribute != "function" || typeof t.setAttribute != "function" || typeof t.namespaceURI != "string" || typeof t.insertBefore != "function" || typeof t.hasChildNodes != "function" || // NodeType clobbering probe. Cached Node.prototype.nodeType getter
595
+ // returns the integer 1 for any Element regardless of realm; direct
596
+ // read on a clobbered form (e.g. <input name="nodeType">) returns
597
+ // the named child element. Cheap addition — nodeType is read from
598
+ // an internal slot, no serialization cost — and removes a residual
599
+ // clobbering surface used by several mXSS / PI / comment branches
600
+ // in _sanitizeElements that compare currentNode.nodeType directly.
601
+ t.nodeType !== W(t) || // HTMLFormElement has [LegacyOverrideBuiltIns]: a descendant named
602
+ // "childNodes" shadows the prototype getter. Direct reads of
603
+ // form.childNodes from a clobbered form return the named child
604
+ // instead of the real NodeList, so any walk that reads it directly
605
+ // skips the form's real children. Compare the direct read to the
606
+ // cached Node.prototype getter — when the form's named-property
607
+ // getter intercepts the read, the two values differ and we flag
608
+ // the form. This catches every clobbering child type (input,
609
+ // select, etc.) regardless of whether the named child happens to
610
+ // carry a numeric .length, which a typeof-based probe would miss
611
+ // (e.g. HTMLSelectElement.length is a defined unsigned-long).
612
+ t.childNodes !== q(t);
613
+ }, rt = function(t) {
614
+ if (!W || typeof t != "object" || t === null)
615
+ return !1;
616
+ try {
617
+ return W(t) === M.documentFragment;
618
+ } catch {
619
+ return !1;
620
+ }
621
+ }, mt = function(t) {
622
+ if (!W || typeof t != "object" || t === null)
623
+ return !1;
624
+ try {
625
+ return typeof W(t) == "number";
626
+ } catch {
627
+ return !1;
628
+ }
629
+ };
630
+ function k(o, t, e) {
631
+ o.length !== 0 && V(o, (n) => {
632
+ n.call(i, t, e, ot);
633
+ });
634
+ }
635
+ const Pn = function(t, e) {
636
+ return !!(Y && t.hasChildNodes() && !mt(t.firstElementChild) && O(tn, t.textContent) && O(tn, t.innerHTML) || Y && t.namespaceURI === v && To[e] && (mt(t.firstElementChild) || typeof t.textContent == "string" && O(ho[e], t.textContent)) || t.nodeType === M.processingInstruction || Y && t.nodeType === M.comment && O(en, t.data));
637
+ }, Mt = function(t, e) {
638
+ if (t instanceof RegExp)
639
+ return O(t, e);
640
+ if (t instanceof Function) {
641
+ for (var n = arguments.length, a = new Array(n > 2 ? n - 2 : 0), l = 2; l < n; l++)
642
+ a[l - 2] = arguments[l];
643
+ return !!t(e, ...a);
644
+ }
645
+ return !1;
646
+ }, xn = function(t, e, n) {
647
+ if (!ft[e] && He(e) && Mt(x.tagNameCheck, e))
648
+ return !1;
649
+ if (jt && !et[e]) {
650
+ const a = K(t), l = q(t);
651
+ if (l && a) {
652
+ const u = l.length;
653
+ for (let m = u - 1; m >= 0; --m) {
654
+ const g = t === n ? ln(l[m], !0) : l[m];
655
+ a.insertBefore(g, cn(t));
656
+ }
657
+ }
658
+ }
659
+ return z(t), !0;
660
+ }, ke = function(t, e, n, a) {
661
+ return t.length === 0 ? e : e === n || e === a ? C(e) : e;
662
+ }, Ue = function(t, e) {
663
+ return t === e || K(t) !== null ? !1 : ($t && wt(t), !0);
664
+ }, Fe = function(t, e) {
665
+ if (k(T.beforeSanitizeElements, t, null), Ue(t, e))
666
+ return !0;
667
+ if (Nt(t))
668
+ return z(t), !0;
669
+ const n = E(Ut(t));
670
+ if (h = ke(T.uponSanitizeElement, h, Ht, yt), k(T.uponSanitizeElement, t, {
671
+ tagName: n,
672
+ allowedTags: h
673
+ }), Ue(t, e))
674
+ return !0;
675
+ if (Pn(t, n))
676
+ return z(t), !0;
677
+ if (ft[n] || !(U.tagCheck instanceof Function && U.tagCheck(n)) && !h[n]) {
678
+ const l = xn(t, n, e);
679
+ return l === !1 && k(T.afterSanitizeElements, t, null), l;
680
+ }
681
+ if (ct(t) === M.element && !Nn(t) || (n === "noscript" || n === "noembed" || n === "noframes") && O(po, t.innerHTML))
682
+ return z(t), !0;
683
+ if (F && t.nodeType === M.text) {
684
+ const l = It(t.textContent);
685
+ t.textContent !== l && (dt(i.removed, {
686
+ element: t.cloneNode()
687
+ }), t.textContent = l);
688
+ }
689
+ return k(T.afterSanitizeElements, t, null), !1;
690
+ }, ze = function(t, e, n) {
691
+ if (Te[e] || Pe(e, t) || Ee && (e === "id" || e === "name") && (n in s || n in Ln))
692
+ return !1;
693
+ const a = _[e] || U.attributeCheck instanceof Function && U.attributeCheck(e, t);
694
+ return Wt && O(gn, e) || he && O(En, e) ? !0 : a ? Re[e] || O(de, Tt(n, me, "")) || (e === "src" || e === "xlink:href" || e === "href") && t !== "script" && $e(n, "data:") === 0 && be[t] || _e && !O(An, Tt(n, me, "")) ? !0 : !n : (
695
+ // Condition a) covers a basically valid custom element tag name whose
696
+ // tag passes the configured tagNameCheck and whose attribute name
697
+ // passes the configured attributeNameCheck ...
698
+ He(t) && Mt(x.tagNameCheck, t) && Mt(x.attributeNameCheck, e, t) || // Condition b) covers an `is` attribute whose value passes the
699
+ // configured tagNameCheck while customized built-in elements are
700
+ // allowed.
701
+ e === "is" && x.allowCustomizedBuiltInElements && Mt(x.tagNameCheck, n)
702
+ );
703
+ }, vn = p({}, ["annotation-xml", "color-profile", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "missing-glyph"]), He = function(t) {
704
+ return !vn[_t(t)] && O(yn, t);
705
+ }, kn = function(t, e, n, a) {
706
+ if (L && typeof gt == "object" && typeof gt.getAttributeType == "function" && !n)
707
+ switch (gt.getAttributeType(t, e)) {
708
+ case "TrustedHTML":
709
+ return J(a);
710
+ case "TrustedScriptURL":
711
+ return un(a);
712
+ }
713
+ return a;
714
+ }, Un = function(t, e, n, a) {
715
+ try {
716
+ n ? t.setAttributeNS(n, e, a) : t.setAttribute(e, a), Nt(t) ? z(t) : Ye(i.removed);
717
+ } catch {
718
+ $(e, t);
719
+ }
720
+ }, Ge = function(t) {
721
+ k(T.beforeSanitizeAttributes, t, null);
722
+ const e = t.attributes;
723
+ if (!e || Nt(t))
724
+ return;
725
+ _ = ke(T.uponSanitizeAttribute, _, Gt, St);
726
+ const n = {
727
+ attrName: "",
728
+ attrValue: "",
729
+ keepAttr: !0,
730
+ allowedAttributes: _,
731
+ forceKeepAttr: void 0
732
+ };
733
+ let a = e.length;
734
+ const l = E(t.nodeName);
735
+ for (; a--; ) {
736
+ const u = e[a], m = u.name, g = u.namespaceURI, D = u.value, w = E(m), te = D;
737
+ let R = m === "value" ? te : Vn(te);
738
+ if (n.attrName = w, n.attrValue = R, n.keepAttr = !0, n.forceKeepAttr = void 0, k(T.uponSanitizeAttribute, t, n), R = n.attrValue, Ae && (w === "id" || w === "name") && $e(R, ye) !== 0 && ($(m, t, u), R = ye + R), Y && O(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, R)) {
739
+ $(m, t, u);
740
+ continue;
741
+ }
742
+ if (w === "attributename" && je(R, "href")) {
743
+ $(m, t, u);
744
+ continue;
745
+ }
746
+ if (!n.forceKeepAttr) {
747
+ if (!n.keepAttr) {
748
+ $(m, t, u);
749
+ continue;
750
+ }
751
+ if (!ge && O(mo, R)) {
752
+ $(m, t, u);
753
+ continue;
754
+ }
755
+ if (F && (R = It(R)), !ze(l, w, R)) {
756
+ $(m, t, u);
757
+ continue;
758
+ }
759
+ R = kn(l, w, g, R), R !== te && Un(t, m, g, R);
760
+ }
761
+ }
762
+ k(T.afterSanitizeAttributes, t, null);
763
+ }, Ct = function(t) {
764
+ let e = null;
765
+ const n = ve(t);
766
+ for (k(T.beforeSanitizeShadowDOM, t, null); e = n.nextNode(); )
767
+ if (k(T.uponSanitizeShadowNode, e, null), Fe(e, t), Ge(e), rt(e.content) && Ct(e.content), ct(e) === M.element) {
768
+ const a = ce(e);
769
+ rt(a) && (Qt(a), Ct(a));
770
+ }
771
+ k(T.afterSanitizeShadowDOM, t, null);
772
+ }, Qt = function(t) {
773
+ const e = [{
774
+ node: t,
775
+ shadow: null
776
+ }];
777
+ for (; e.length > 0; ) {
778
+ const n = e.pop();
779
+ if (n.shadow) {
780
+ Ct(n.shadow);
781
+ continue;
782
+ }
783
+ const a = n.node, u = ct(a) === M.element, m = q(a);
784
+ if (m)
785
+ for (let g = m.length - 1; g >= 0; --g)
786
+ e.push({
787
+ node: m[g],
788
+ shadow: null
789
+ });
790
+ if (u) {
791
+ const g = Z ? Z(a) : null;
792
+ if (typeof g == "string" && E(g) === "template") {
793
+ const D = a.content;
794
+ rt(D) && e.push({
795
+ node: D,
796
+ shadow: null
797
+ });
798
+ }
799
+ }
800
+ if (u) {
801
+ const g = ce(a);
802
+ rt(g) && e.push({
803
+ node: null,
804
+ shadow: g
805
+ }, {
806
+ node: g,
807
+ shadow: null
808
+ });
809
+ }
810
+ }
811
+ };
812
+ return i.sanitize = function(o) {
813
+ let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, e = null, n = null, a = null, l = null;
814
+ if (Xt = !o, Xt && (o = "<!-->"), typeof o != "string" && !mt(o) && (o = Qn(o), typeof o != "string"))
815
+ throw X("dirty is not a string, aborting");
816
+ if (!i.isSupported)
817
+ return o;
818
+ Bt ? (h = yt, _ = St) : Zt(t), (T.uponSanitizeElement.length > 0 || T.uponSanitizeAttribute.length > 0) && (h = C(h)), T.uponSanitizeAttribute.length > 0 && (_ = C(_)), i.removed = [];
819
+ const u = $t && typeof o != "string" && mt(o);
820
+ if (u) {
821
+ Cn(o);
822
+ const D = Ut(o);
823
+ if (typeof D == "string") {
824
+ const w = E(D);
825
+ if (!h[w] || ft[w])
826
+ throw Dt(o), X("root node is forbidden and cannot be sanitized in-place");
827
+ }
828
+ if (Nt(o))
829
+ throw Dt(o), X("root node is clobbered and cannot be sanitized in-place");
830
+ try {
831
+ Qt(o);
832
+ } catch (w) {
833
+ throw Dt(o), w;
834
+ }
835
+ } else if (mt(o))
836
+ e = xe("<!---->"), n = e.ownerDocument.importNode(o, !0), n.nodeType === M.element && n.nodeName === "BODY" || n.nodeName === "HTML" ? e = n : e.appendChild(n), Qt(n);
837
+ else {
838
+ if (!Q && !F && !j && // eslint-disable-next-line unicorn/prefer-includes
839
+ o.indexOf("<") === -1)
840
+ return L && Ot ? J(o) : o;
841
+ if (e = xe(o), !e)
842
+ return Q ? null : Ot ? B : "";
843
+ }
844
+ e && Yt && z(e.firstChild);
845
+ const m = u ? o : e;
846
+ try {
847
+ const D = ve(m);
848
+ for (; a = D.nextNode(); )
849
+ Fe(a, m), Ge(a), rt(a.content) && Ct(a.content);
850
+ } catch (D) {
851
+ throw u && (Dt(o), V(i.removed, (w) => {
852
+ w.element && wt(w.element);
853
+ })), D;
854
+ }
855
+ if (u)
856
+ return V(i.removed, (D) => {
857
+ D.element && wt(D.element);
858
+ }), F && Jt(o), o;
859
+ if (Q) {
860
+ if (F && Jt(e), bt)
861
+ for (l = pn.call(e.ownerDocument); e.firstChild; )
862
+ l.appendChild(e.firstChild);
863
+ else
864
+ l = e;
865
+ return (_.shadowroot || _.shadowrootmode) && (l = dn.call(c, l, !0)), l;
866
+ }
867
+ let g = j ? e.outerHTML : e.innerHTML;
868
+ return j && h["!doctype"] && e.ownerDocument && e.ownerDocument.doctype && e.ownerDocument.doctype.name && O(uo, e.ownerDocument.doctype.name) && (g = "<!DOCTYPE " + e.ownerDocument.doctype.name + `>
869
+ ` + g), F && (g = It(g)), L && Ot ? J(g) : g;
870
+ }, i.setConfig = function() {
871
+ let o = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
872
+ Zt(o), Bt = !0, yt = h, St = _;
873
+ }, i.clearConfig = function() {
874
+ ot = null, Bt = !1, yt = null, St = null, L = Ft, B = "";
875
+ }, i.isValidAttribute = function(o, t, e) {
876
+ ot || Zt({});
877
+ const n = E(o), a = E(t);
878
+ return ze(n, a, e);
879
+ }, i.addHook = function(o, t) {
880
+ typeof t == "function" && I(T, o) && dt(T[o], t);
881
+ }, i.removeHook = function(o, t) {
882
+ if (I(T, o)) {
883
+ if (t !== void 0) {
884
+ const e = $n(T[o], t);
885
+ return e === -1 ? void 0 : Xn(T[o], e, 1)[0];
886
+ }
887
+ return Ye(T[o]);
888
+ }
889
+ }, i.removeHooks = function(o) {
890
+ I(T, o) && (T[o] = []);
891
+ }, i.removeAllHooks = function() {
892
+ T = nn();
893
+ }, i;
894
+ }
895
+ var Eo = sn();
896
+ export {
897
+ Eo as default
898
+ };