Files
BetterSEQTA-Plus/public/purify.min.js
T
SethBurkart123 75026bdc51 fix code styling
2023-08-30 14:46:23 +10:00

1390 lines
34 KiB
JavaScript

/*! @license DOMPurify 3.0.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.3/LICENSE */
!(function (e, t) {
"object" == typeof exports && "undefined" != typeof module
? (module.exports = t())
: "function" == typeof define && define.amd
? define(t)
: ((e =
"undefined" != typeof globalThis ? globalThis : e || self).DOMPurify =
t());
})(this, function () {
"use strict";
const {
entries: e,
setPrototypeOf: t,
isFrozen: n,
getPrototypeOf: o,
getOwnPropertyDescriptor: r,
} = Object;
let { freeze: i, seal: a, create: l } = Object,
{ apply: c, construct: s } = "undefined" != typeof Reflect && Reflect;
c ||
(c = function (e, t, n) {
return e.apply(t, n);
}),
i ||
(i = function (e) {
return e;
}),
a ||
(a = function (e) {
return e;
}),
s ||
(s = function (e, t) {
return new e(...t);
});
const m = b(Array.prototype.forEach),
u = b(Array.prototype.pop),
f = b(Array.prototype.push),
p = b(String.prototype.toLowerCase),
d = b(String.prototype.toString),
h = b(String.prototype.match),
g = b(String.prototype.replace),
T = b(String.prototype.indexOf),
y = b(String.prototype.trim),
E = b(RegExp.prototype.test),
A =
((_ = TypeError),
function () {
for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++)
t[n] = arguments[n];
return s(_, t);
});
var _;
function b(e) {
return function (t) {
for (
var n = arguments.length, o = new Array(n > 1 ? n - 1 : 0), r = 1;
r < n;
r++
)
o[r - 1] = arguments[r];
return c(e, t, o);
};
}
function N(e, o, r) {
var i;
(r = null !== (i = r) && void 0 !== i ? i : p), t && t(e, null);
let a = o.length;
for (; a--; ) {
let t = o[a];
if ("string" == typeof t) {
const e = r(t);
e !== t && (n(o) || (o[a] = e), (t = e));
}
e[t] = !0;
}
return e;
}
function S(t) {
const n = l(null);
for (const [o, r] of e(t)) n[o] = r;
return n;
}
function R(e, t) {
for (; null !== e; ) {
const n = r(e, t);
if (n) {
if (n.get) return b(n.get);
if ("function" == typeof n.value) return b(n.value);
}
e = o(e);
}
return function (e) {
return console.warn("fallback value for", e), null;
};
}
const w = i([
"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",
"section",
"select",
"shadow",
"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",
]),
D = i([
"svg",
"a",
"altglyph",
"altglyphdef",
"altglyphitem",
"animatecolor",
"animatemotion",
"animatetransform",
"circle",
"clippath",
"defs",
"desc",
"ellipse",
"filter",
"font",
"g",
"glyph",
"glyphref",
"hkern",
"image",
"line",
"lineargradient",
"marker",
"mask",
"metadata",
"mpath",
"path",
"pattern",
"polygon",
"polyline",
"radialgradient",
"rect",
"stop",
"style",
"switch",
"symbol",
"text",
"textpath",
"title",
"tref",
"tspan",
"view",
"vkern",
]),
L = i([
"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",
]),
v = i([
"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",
]),
x = i([
"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",
]),
C = i([
"maction",
"maligngroup",
"malignmark",
"mlongdiv",
"mscarries",
"mscarry",
"msgroup",
"mstack",
"msline",
"msrow",
"semantics",
"annotation",
"annotation-xml",
"mprescripts",
"none",
]),
k = i(["#text"]),
O = i([
"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",
"face",
"for",
"headers",
"height",
"hidden",
"high",
"href",
"hreflang",
"id",
"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",
"pattern",
"placeholder",
"playsinline",
"poster",
"preload",
"pubdate",
"radiogroup",
"readonly",
"rel",
"required",
"rev",
"reversed",
"role",
"rows",
"rowspan",
"spellcheck",
"scope",
"selected",
"shape",
"size",
"sizes",
"span",
"srclang",
"start",
"src",
"srcset",
"step",
"style",
"summary",
"tabindex",
"title",
"translate",
"type",
"usemap",
"valign",
"value",
"width",
"xmlns",
"slot",
]),
I = i([
"accent-height",
"accumulate",
"additive",
"alignment-baseline",
"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",
"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",
"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",
"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",
"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",
]),
M = i([
"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",
]),
U = i(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]),
P = a(/\{\{[\w\W]*|[\w\W]*\}\}/gm),
F = a(/<%[\w\W]*|[\w\W]*%>/gm),
H = a(/\${[\w\W]*}/gm),
z = a(/^data-[\-\w.\u00B7-\uFFFF]/),
B = a(/^aria-[\-\w]+$/),
W = a(
/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,
),
G = a(/^(?:\w+script|data):/i),
Y = a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),
j = a(/^html$/i);
var q = Object.freeze({
__proto__: null,
MUSTACHE_EXPR: P,
ERB_EXPR: F,
TMPLIT_EXPR: H,
DATA_ATTR: z,
ARIA_ATTR: B,
IS_ALLOWED_URI: W,
IS_SCRIPT_OR_DATA: G,
ATTR_WHITESPACE: Y,
DOCTYPE_NAME: j,
});
const X = () => ("undefined" == typeof window ? null : window),
K = function (e, t) {
if ("object" != typeof e || "function" != typeof e.createPolicy)
return null;
let n = null;
const o = "data-tt-policy-suffix";
t && t.hasAttribute(o) && (n = t.getAttribute(o));
const r = "dompurify" + (n ? "#" + n : "");
try {
return e.createPolicy(r, {
createHTML: (e) => e,
createScriptURL: (e) => e,
});
} catch (e) {
return (
console.warn("TrustedTypes policy " + r + " could not be created."),
null
);
}
};
var V = (function t() {
let n =
arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : X();
const o = (e) => t(e);
if (
((o.version = "3.0.3"),
(o.removed = []),
!n || !n.document || 9 !== n.document.nodeType)
)
return (o.isSupported = !1), o;
const r = n.document,
a = r.currentScript;
let { document: l } = n;
const {
DocumentFragment: c,
HTMLTemplateElement: s,
Node: _,
Element: b,
NodeFilter: P,
NamedNodeMap: F = n.NamedNodeMap || n.MozNamedAttrMap,
HTMLFormElement: H,
DOMParser: z,
trustedTypes: B,
} = n,
G = b.prototype,
Y = R(G, "cloneNode"),
V = R(G, "nextSibling"),
$ = R(G, "childNodes"),
Z = R(G, "parentNode");
if ("function" == typeof s) {
const e = l.createElement("template");
e.content && e.content.ownerDocument && (l = e.content.ownerDocument);
}
let J,
Q = "";
const {
implementation: ee,
createNodeIterator: te,
createDocumentFragment: ne,
getElementsByTagName: oe,
} = l,
{ importNode: re } = r;
let ie = {};
o.isSupported =
"function" == typeof e &&
"function" == typeof Z &&
ee &&
void 0 !== ee.createHTMLDocument;
const {
MUSTACHE_EXPR: ae,
ERB_EXPR: le,
TMPLIT_EXPR: ce,
DATA_ATTR: se,
ARIA_ATTR: me,
IS_SCRIPT_OR_DATA: ue,
ATTR_WHITESPACE: fe,
} = q;
let { IS_ALLOWED_URI: pe } = q,
de = null;
const he = N({}, [...w, ...D, ...L, ...x, ...k]);
let ge = null;
const Te = N({}, [...O, ...I, ...M, ...U]);
let ye = Object.seal(
Object.create(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,
},
}),
),
Ee = null,
Ae = null,
_e = !0,
be = !0,
Ne = !1,
Se = !0,
Re = !1,
we = !1,
De = !1,
Le = !1,
ve = !1,
xe = !1,
Ce = !1,
ke = !0,
Oe = !1;
const Ie = "user-content-";
let Me = !0,
Ue = !1,
Pe = {},
Fe = null;
const He = N({}, [
"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 ze = null;
const Be = N({}, ["audio", "video", "img", "source", "image", "track"]);
let We = null;
const Ge = N({}, [
"alt",
"class",
"for",
"id",
"label",
"name",
"pattern",
"placeholder",
"role",
"summary",
"title",
"value",
"style",
"xmlns",
]),
Ye = "http://www.w3.org/1998/Math/MathML",
je = "http://www.w3.org/2000/svg",
qe = "http://www.w3.org/1999/xhtml";
let Xe = qe,
Ke = !1,
Ve = null;
const $e = N({}, [Ye, je, qe], d);
let Ze;
const Je = ["application/xhtml+xml", "text/html"],
Qe = "text/html";
let et,
tt = null;
const nt = l.createElement("form"),
ot = function (e) {
return e instanceof RegExp || e instanceof Function;
},
rt = function (e) {
if (!tt || tt !== e) {
if (
((e && "object" == typeof e) || (e = {}),
(e = S(e)),
(Ze = Ze =
-1 === Je.indexOf(e.PARSER_MEDIA_TYPE)
? Qe
: e.PARSER_MEDIA_TYPE),
(et = "application/xhtml+xml" === Ze ? d : p),
(de = "ALLOWED_TAGS" in e ? N({}, e.ALLOWED_TAGS, et) : he),
(ge = "ALLOWED_ATTR" in e ? N({}, e.ALLOWED_ATTR, et) : Te),
(Ve =
"ALLOWED_NAMESPACES" in e ? N({}, e.ALLOWED_NAMESPACES, d) : $e),
(We =
"ADD_URI_SAFE_ATTR" in e
? N(S(Ge), e.ADD_URI_SAFE_ATTR, et)
: Ge),
(ze =
"ADD_DATA_URI_TAGS" in e
? N(S(Be), e.ADD_DATA_URI_TAGS, et)
: Be),
(Fe = "FORBID_CONTENTS" in e ? N({}, e.FORBID_CONTENTS, et) : He),
(Ee = "FORBID_TAGS" in e ? N({}, e.FORBID_TAGS, et) : {}),
(Ae = "FORBID_ATTR" in e ? N({}, e.FORBID_ATTR, et) : {}),
(Pe = "USE_PROFILES" in e && e.USE_PROFILES),
(_e = !1 !== e.ALLOW_ARIA_ATTR),
(be = !1 !== e.ALLOW_DATA_ATTR),
(Ne = e.ALLOW_UNKNOWN_PROTOCOLS || !1),
(Se = !1 !== e.ALLOW_SELF_CLOSE_IN_ATTR),
(Re = e.SAFE_FOR_TEMPLATES || !1),
(we = e.WHOLE_DOCUMENT || !1),
(ve = e.RETURN_DOM || !1),
(xe = e.RETURN_DOM_FRAGMENT || !1),
(Ce = e.RETURN_TRUSTED_TYPE || !1),
(Le = e.FORCE_BODY || !1),
(ke = !1 !== e.SANITIZE_DOM),
(Oe = e.SANITIZE_NAMED_PROPS || !1),
(Me = !1 !== e.KEEP_CONTENT),
(Ue = e.IN_PLACE || !1),
(pe = e.ALLOWED_URI_REGEXP || W),
(Xe = e.NAMESPACE || qe),
(ye = e.CUSTOM_ELEMENT_HANDLING || {}),
e.CUSTOM_ELEMENT_HANDLING &&
ot(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck) &&
(ye.tagNameCheck = e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),
e.CUSTOM_ELEMENT_HANDLING &&
ot(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) &&
(ye.attributeNameCheck =
e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),
e.CUSTOM_ELEMENT_HANDLING &&
"boolean" ==
typeof e.CUSTOM_ELEMENT_HANDLING
.allowCustomizedBuiltInElements &&
(ye.allowCustomizedBuiltInElements =
e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),
Re && (be = !1),
xe && (ve = !0),
Pe &&
((de = N({}, [...k])),
(ge = []),
!0 === Pe.html && (N(de, w), N(ge, O)),
!0 === Pe.svg && (N(de, D), N(ge, I), N(ge, U)),
!0 === Pe.svgFilters && (N(de, L), N(ge, I), N(ge, U)),
!0 === Pe.mathMl && (N(de, x), N(ge, M), N(ge, U))),
e.ADD_TAGS && (de === he && (de = S(de)), N(de, e.ADD_TAGS, et)),
e.ADD_ATTR && (ge === Te && (ge = S(ge)), N(ge, e.ADD_ATTR, et)),
e.ADD_URI_SAFE_ATTR && N(We, e.ADD_URI_SAFE_ATTR, et),
e.FORBID_CONTENTS &&
(Fe === He && (Fe = S(Fe)), N(Fe, e.FORBID_CONTENTS, et)),
Me && (de["#text"] = !0),
we && N(de, ["html", "head", "body"]),
de.table && (N(de, ["tbody"]), delete Ee.tbody),
e.TRUSTED_TYPES_POLICY)
) {
if ("function" != typeof e.TRUSTED_TYPES_POLICY.createHTML)
throw A(
'TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.',
);
if ("function" != typeof e.TRUSTED_TYPES_POLICY.createScriptURL)
throw A(
'TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.',
);
(J = e.TRUSTED_TYPES_POLICY), (Q = J.createHTML(""));
} else
void 0 === J && (J = K(B, a)),
null !== J && "string" == typeof Q && (Q = J.createHTML(""));
i && i(e), (tt = e);
}
},
it = N({}, ["mi", "mo", "mn", "ms", "mtext"]),
at = N({}, ["foreignobject", "desc", "title", "annotation-xml"]),
lt = N({}, ["title", "style", "font", "a", "script"]),
ct = N({}, D);
N(ct, L), N(ct, v);
const st = N({}, x);
N(st, C);
const mt = function (e) {
let t = Z(e);
(t && t.tagName) || (t = { namespaceURI: Xe, tagName: "template" });
const n = p(e.tagName),
o = p(t.tagName);
return (
!!Ve[e.namespaceURI] &&
(e.namespaceURI === je
? t.namespaceURI === qe
? "svg" === n
: t.namespaceURI === Ye
? "svg" === n && ("annotation-xml" === o || it[o])
: Boolean(ct[n])
: e.namespaceURI === Ye
? t.namespaceURI === qe
? "math" === n
: t.namespaceURI === je
? "math" === n && at[o]
: Boolean(st[n])
: e.namespaceURI === qe
? !(t.namespaceURI === je && !at[o]) &&
!(t.namespaceURI === Ye && !it[o]) &&
!st[n] &&
(lt[n] || !ct[n])
: !("application/xhtml+xml" !== Ze || !Ve[e.namespaceURI]))
);
},
ut = function (e) {
f(o.removed, { element: e });
try {
e.parentNode.removeChild(e);
} catch (t) {
e.remove();
}
},
ft = function (e, t) {
try {
f(o.removed, { attribute: t.getAttributeNode(e), from: t });
} catch (e) {
f(o.removed, { attribute: null, from: t });
}
if ((t.removeAttribute(e), "is" === e && !ge[e]))
if (ve || xe)
try {
ut(t);
} catch (e) {}
else
try {
t.setAttribute(e, "");
} catch (e) {}
},
pt = function (e) {
let t, n;
if (Le) e = "<remove></remove>" + e;
else {
const t = h(e, /^[\r\n\t ]+/);
n = t && t[0];
}
"application/xhtml+xml" === Ze &&
Xe === qe &&
(e =
'<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' +
e +
"</body></html>");
const o = J ? J.createHTML(e) : e;
if (Xe === qe)
try {
t = new z().parseFromString(o, Ze);
} catch (e) {}
if (!t || !t.documentElement) {
t = ee.createDocument(Xe, "template", null);
try {
t.documentElement.innerHTML = Ke ? Q : o;
} catch (e) {}
}
const r = t.body || t.documentElement;
return (
e &&
n &&
r.insertBefore(l.createTextNode(n), r.childNodes[0] || null),
Xe === qe
? oe.call(t, we ? "html" : "body")[0]
: we
? t.documentElement
: r
);
},
dt = function (e) {
return te.call(
e.ownerDocument || e,
e,
P.SHOW_ELEMENT | P.SHOW_COMMENT | P.SHOW_TEXT,
null,
!1,
);
},
ht = function (e) {
return (
e instanceof H &&
("string" != typeof e.nodeName ||
"string" != typeof e.textContent ||
"function" != typeof e.removeChild ||
!(e.attributes instanceof F) ||
"function" != typeof e.removeAttribute ||
"function" != typeof e.setAttribute ||
"string" != typeof e.namespaceURI ||
"function" != typeof e.insertBefore ||
"function" != typeof e.hasChildNodes)
);
},
gt = function (e) {
return "object" == typeof _
? e instanceof _
: e &&
"object" == typeof e &&
"number" == typeof e.nodeType &&
"string" == typeof e.nodeName;
},
Tt = function (e, t, n) {
ie[e] &&
m(ie[e], (e) => {
e.call(o, t, n, tt);
});
},
yt = function (e) {
let t;
if ((Tt("beforeSanitizeElements", e, null), ht(e))) return ut(e), !0;
const n = et(e.nodeName);
if (
(Tt("uponSanitizeElement", e, { tagName: n, allowedTags: de }),
e.hasChildNodes() &&
!gt(e.firstElementChild) &&
(!gt(e.content) || !gt(e.content.firstElementChild)) &&
E(/<[/\w]/g, e.innerHTML) &&
E(/<[/\w]/g, e.textContent))
)
return ut(e), !0;
if (!de[n] || Ee[n]) {
if (!Ee[n] && At(n)) {
if (ye.tagNameCheck instanceof RegExp && E(ye.tagNameCheck, n))
return !1;
if (ye.tagNameCheck instanceof Function && ye.tagNameCheck(n))
return !1;
}
if (Me && !Fe[n]) {
const t = Z(e) || e.parentNode,
n = $(e) || e.childNodes;
if (n && t) {
for (let o = n.length - 1; o >= 0; --o)
t.insertBefore(Y(n[o], !0), V(e));
}
}
return ut(e), !0;
}
return e instanceof b && !mt(e)
? (ut(e), !0)
: ("noscript" !== n && "noembed" !== n) ||
!E(/<\/no(script|embed)/i, e.innerHTML)
? (Re &&
3 === e.nodeType &&
((t = e.textContent),
(t = g(t, ae, " ")),
(t = g(t, le, " ")),
(t = g(t, ce, " ")),
e.textContent !== t &&
(f(o.removed, { element: e.cloneNode() }),
(e.textContent = t))),
Tt("afterSanitizeElements", e, null),
!1)
: (ut(e), !0);
},
Et = function (e, t, n) {
if (ke && ("id" === t || "name" === t) && (n in l || n in nt))
return !1;
if (be && !Ae[t] && E(se, t));
else if (_e && E(me, t));
else if (!ge[t] || Ae[t]) {
if (
!(
(At(e) &&
((ye.tagNameCheck instanceof RegExp && E(ye.tagNameCheck, e)) ||
(ye.tagNameCheck instanceof Function &&
ye.tagNameCheck(e))) &&
((ye.attributeNameCheck instanceof RegExp &&
E(ye.attributeNameCheck, t)) ||
(ye.attributeNameCheck instanceof Function &&
ye.attributeNameCheck(t)))) ||
("is" === t &&
ye.allowCustomizedBuiltInElements &&
((ye.tagNameCheck instanceof RegExp && E(ye.tagNameCheck, n)) ||
(ye.tagNameCheck instanceof Function && ye.tagNameCheck(n))))
)
)
return !1;
} else if (We[t]);
else if (E(pe, g(n, fe, "")));
else if (
("src" !== t && "xlink:href" !== t && "href" !== t) ||
"script" === e ||
0 !== T(n, "data:") ||
!ze[e]
) {
if (Ne && !E(ue, g(n, fe, "")));
else if (n) return !1;
} else;
return !0;
},
At = function (e) {
return e.indexOf("-") > 0;
},
_t = function (e) {
let t, n, r, i;
Tt("beforeSanitizeAttributes", e, null);
const { attributes: a } = e;
if (!a) return;
const l = {
attrName: "",
attrValue: "",
keepAttr: !0,
allowedAttributes: ge,
};
for (i = a.length; i--; ) {
t = a[i];
const { name: c, namespaceURI: s } = t;
if (
((n = "value" === c ? t.value : y(t.value)),
(r = et(c)),
(l.attrName = r),
(l.attrValue = n),
(l.keepAttr = !0),
(l.forceKeepAttr = void 0),
Tt("uponSanitizeAttribute", e, l),
(n = l.attrValue),
l.forceKeepAttr)
)
continue;
if ((ft(c, e), !l.keepAttr)) continue;
if (!Se && E(/\/>/i, n)) {
ft(c, e);
continue;
}
Re && ((n = g(n, ae, " ")), (n = g(n, le, " ")), (n = g(n, ce, " ")));
const m = et(e.nodeName);
if (Et(m, r, n)) {
if (
(!Oe || ("id" !== r && "name" !== r) || (ft(c, e), (n = Ie + n)),
J &&
"object" == typeof B &&
"function" == typeof B.getAttributeType)
)
if (s);
else
switch (B.getAttributeType(m, r)) {
case "TrustedHTML":
n = J.createHTML(n);
break;
case "TrustedScriptURL":
n = J.createScriptURL(n);
}
try {
s ? e.setAttributeNS(s, c, n) : e.setAttribute(c, n),
u(o.removed);
} catch (e) {}
}
}
Tt("afterSanitizeAttributes", e, null);
},
bt = function e(t) {
let n;
const o = dt(t);
for (Tt("beforeSanitizeShadowDOM", t, null); (n = o.nextNode()); )
Tt("uponSanitizeShadowNode", n, null),
yt(n) || (n.content instanceof c && e(n.content), _t(n));
Tt("afterSanitizeShadowDOM", t, null);
};
return (
(o.sanitize = function (e) {
let t,
n,
i,
a,
l =
arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
if (
((Ke = !e), Ke && (e = "\x3c!--\x3e"), "string" != typeof e && !gt(e))
) {
if ("function" != typeof e.toString)
throw A("toString is not a function");
if ("string" != typeof (e = e.toString()))
throw A("dirty is not a string, aborting");
}
if (!o.isSupported) return e;
if (
(De || rt(l), (o.removed = []), "string" == typeof e && (Ue = !1), Ue)
) {
if (e.nodeName) {
const t = et(e.nodeName);
if (!de[t] || Ee[t])
throw A(
"root node is forbidden and cannot be sanitized in-place",
);
}
} else if (e instanceof _)
(t = pt("\x3c!----\x3e")),
(n = t.ownerDocument.importNode(e, !0)),
(1 === n.nodeType && "BODY" === n.nodeName) || "HTML" === n.nodeName
? (t = n)
: t.appendChild(n);
else {
if (!ve && !Re && !we && -1 === e.indexOf("<"))
return J && Ce ? J.createHTML(e) : e;
if (((t = pt(e)), !t)) return ve ? null : Ce ? Q : "";
}
t && Le && ut(t.firstChild);
const s = dt(Ue ? e : t);
for (; (i = s.nextNode()); )
yt(i) || (i.content instanceof c && bt(i.content), _t(i));
if (Ue) return e;
if (ve) {
if (xe)
for (a = ne.call(t.ownerDocument); t.firstChild; )
a.appendChild(t.firstChild);
else a = t;
return (
(ge.shadowroot || ge.shadowrootmod) && (a = re.call(r, a, !0)), a
);
}
let m = we ? t.outerHTML : t.innerHTML;
return (
we &&
de["!doctype"] &&
t.ownerDocument &&
t.ownerDocument.doctype &&
t.ownerDocument.doctype.name &&
E(j, t.ownerDocument.doctype.name) &&
(m = "<!DOCTYPE " + t.ownerDocument.doctype.name + ">\n" + m),
Re && ((m = g(m, ae, " ")), (m = g(m, le, " ")), (m = g(m, ce, " "))),
J && Ce ? J.createHTML(m) : m
);
}),
(o.setConfig = function (e) {
rt(e), (De = !0);
}),
(o.clearConfig = function () {
(tt = null), (De = !1);
}),
(o.isValidAttribute = function (e, t, n) {
tt || rt({});
const o = et(e),
r = et(t);
return Et(o, r, n);
}),
(o.addHook = function (e, t) {
"function" == typeof t && ((ie[e] = ie[e] || []), f(ie[e], t));
}),
(o.removeHook = function (e) {
if (ie[e]) return u(ie[e]);
}),
(o.removeHooks = function (e) {
ie[e] && (ie[e] = []);
}),
(o.removeAllHooks = function () {
ie = {};
}),
o
);
})();
return V;
});
//# sourceMappingURL=purify.min.js.map