etiquetas.js 1.0.0-alpha.1 → 1.0.0-alpha.2

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.
Files changed (40) hide show
  1. package/README.git.md +121 -486
  2. package/README.md +134 -1
  3. package/README.npm.md +0 -0
  4. package/dist/etiquetas.es.js +66 -0
  5. package/dist/etiquetas.es.js.map +1 -0
  6. package/dist/etiquetas.umd.js +358 -0
  7. package/dist/etiquetas.umd.js.map +1 -0
  8. package/dist/index-BmMBOPX1.js +59122 -0
  9. package/dist/index-BmMBOPX1.js.map +1 -0
  10. package/dist/index.es-DzWoeylQ.js +9229 -0
  11. package/dist/index.es-DzWoeylQ.js.map +1 -0
  12. package/dist/purify.es-DzZgBtzL.js +965 -0
  13. package/dist/purify.es-DzZgBtzL.js.map +1 -0
  14. package/package.json +48 -15
  15. package/api/api-labels.json +0 -114
  16. package/api/api.js +0 -316
  17. package/api/mock/data-volume-id_680.json +0 -64
  18. package/api/mock/labels-input.json +0 -96
  19. package/api/mock/labels-part.json +0 -216
  20. package/api/mock/labels-scrap.json +0 -76
  21. package/api/mock/labels-thickened.json +0 -96
  22. package/api/mock/labels-volume.json +0 -56
  23. package/api/token.txt +0 -1
  24. package/services/index.js +0 -28
  25. package/src/constants.js +0 -247
  26. package/src/createLabel.js +0 -342
  27. package/src/etiquetas.js +0 -654
  28. package/src/formatData.js +0 -96
  29. package/src/formatDataIntegrated.js +0 -498
  30. package/src/index.js +0 -86
  31. package/src/label/services/index.js +0 -1201
  32. package/src/label/services/sortFunctions.js +0 -158
  33. package/src/label/services/utils.js +0 -280
  34. package/src/labelWorker.js +0 -123
  35. package/src/reducer.js +0 -40
  36. package/src/store.js +0 -55
  37. package/src/templates.js +0 -139
  38. package/src/useLabelData.js +0 -99
  39. package/src/usePrinterStore.js +0 -115
  40. package/src/variableManager.js +0 -224
@@ -0,0 +1,965 @@
1
+ /*! @license DOMPurify 2.5.8 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.5.8/LICENSE */
2
+ function _typeof(obj) {
3
+ "@babel/helpers - typeof";
4
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) {
5
+ return typeof obj2;
6
+ } : function(obj2) {
7
+ return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
8
+ }, _typeof(obj);
9
+ }
10
+ function _setPrototypeOf(o, p) {
11
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf2(o2, p2) {
12
+ o2.__proto__ = p2;
13
+ return o2;
14
+ };
15
+ return _setPrototypeOf(o, p);
16
+ }
17
+ function _isNativeReflectConstruct() {
18
+ if (typeof Reflect === "undefined" || !Reflect.construct) return false;
19
+ if (Reflect.construct.sham) return false;
20
+ if (typeof Proxy === "function") return true;
21
+ try {
22
+ Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
23
+ }));
24
+ return true;
25
+ } catch (e) {
26
+ return false;
27
+ }
28
+ }
29
+ function _construct(Parent, args, Class) {
30
+ if (_isNativeReflectConstruct()) {
31
+ _construct = Reflect.construct;
32
+ } else {
33
+ _construct = function _construct2(Parent2, args2, Class2) {
34
+ var a = [null];
35
+ a.push.apply(a, args2);
36
+ var Constructor = Function.bind.apply(Parent2, a);
37
+ var instance = new Constructor();
38
+ if (Class2) _setPrototypeOf(instance, Class2.prototype);
39
+ return instance;
40
+ };
41
+ }
42
+ return _construct.apply(null, arguments);
43
+ }
44
+ function _toConsumableArray(arr) {
45
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
46
+ }
47
+ function _arrayWithoutHoles(arr) {
48
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
49
+ }
50
+ function _iterableToArray(iter) {
51
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
52
+ }
53
+ function _unsupportedIterableToArray(o, minLen) {
54
+ if (!o) return;
55
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
56
+ var n = Object.prototype.toString.call(o).slice(8, -1);
57
+ if (n === "Object" && o.constructor) n = o.constructor.name;
58
+ if (n === "Map" || n === "Set") return Array.from(o);
59
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
60
+ }
61
+ function _arrayLikeToArray(arr, len) {
62
+ if (len == null || len > arr.length) len = arr.length;
63
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
64
+ return arr2;
65
+ }
66
+ function _nonIterableSpread() {
67
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
68
+ }
69
+ var hasOwnProperty = Object.hasOwnProperty, setPrototypeOf = Object.setPrototypeOf, isFrozen = Object.isFrozen, getPrototypeOf = Object.getPrototypeOf, getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
70
+ var freeze = Object.freeze, seal = Object.seal, create = Object.create;
71
+ var _ref = typeof Reflect !== "undefined" && Reflect, apply = _ref.apply, construct = _ref.construct;
72
+ if (!apply) {
73
+ apply = function apply2(fun, thisValue, args) {
74
+ return fun.apply(thisValue, args);
75
+ };
76
+ }
77
+ if (!freeze) {
78
+ freeze = function freeze2(x) {
79
+ return x;
80
+ };
81
+ }
82
+ if (!seal) {
83
+ seal = function seal2(x) {
84
+ return x;
85
+ };
86
+ }
87
+ if (!construct) {
88
+ construct = function construct2(Func, args) {
89
+ return _construct(Func, _toConsumableArray(args));
90
+ };
91
+ }
92
+ var arrayForEach = unapply(Array.prototype.forEach);
93
+ var arrayPop = unapply(Array.prototype.pop);
94
+ var arrayPush = unapply(Array.prototype.push);
95
+ var stringToLowerCase = unapply(String.prototype.toLowerCase);
96
+ var stringToString = unapply(String.prototype.toString);
97
+ var stringMatch = unapply(String.prototype.match);
98
+ var stringReplace = unapply(String.prototype.replace);
99
+ var stringIndexOf = unapply(String.prototype.indexOf);
100
+ var stringTrim = unapply(String.prototype.trim);
101
+ var regExpTest = unapply(RegExp.prototype.test);
102
+ var typeErrorCreate = unconstruct(TypeError);
103
+ function unapply(func) {
104
+ return function(thisArg) {
105
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
106
+ args[_key - 1] = arguments[_key];
107
+ }
108
+ return apply(func, thisArg, args);
109
+ };
110
+ }
111
+ function unconstruct(func) {
112
+ return function() {
113
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
114
+ args[_key2] = arguments[_key2];
115
+ }
116
+ return construct(func, args);
117
+ };
118
+ }
119
+ function addToSet(set, array, transformCaseFunc) {
120
+ var _transformCaseFunc;
121
+ transformCaseFunc = (_transformCaseFunc = transformCaseFunc) !== null && _transformCaseFunc !== void 0 ? _transformCaseFunc : stringToLowerCase;
122
+ if (setPrototypeOf) {
123
+ setPrototypeOf(set, null);
124
+ }
125
+ var l = array.length;
126
+ while (l--) {
127
+ var element = array[l];
128
+ if (typeof element === "string") {
129
+ var lcElement = transformCaseFunc(element);
130
+ if (lcElement !== element) {
131
+ if (!isFrozen(array)) {
132
+ array[l] = lcElement;
133
+ }
134
+ element = lcElement;
135
+ }
136
+ }
137
+ set[element] = true;
138
+ }
139
+ return set;
140
+ }
141
+ function clone(object) {
142
+ var newObject = create(null);
143
+ var property;
144
+ for (property in object) {
145
+ if (apply(hasOwnProperty, object, [property]) === true) {
146
+ newObject[property] = object[property];
147
+ }
148
+ }
149
+ return newObject;
150
+ }
151
+ function lookupGetter(object, prop) {
152
+ while (object !== null) {
153
+ var desc = getOwnPropertyDescriptor(object, prop);
154
+ if (desc) {
155
+ if (desc.get) {
156
+ return unapply(desc.get);
157
+ }
158
+ if (typeof desc.value === "function") {
159
+ return unapply(desc.value);
160
+ }
161
+ }
162
+ object = getPrototypeOf(object);
163
+ }
164
+ function fallbackValue(element) {
165
+ console.warn("fallback value for", element);
166
+ return null;
167
+ }
168
+ return fallbackValue;
169
+ }
170
+ var html$1 = freeze(["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"]);
171
+ var svg$1 = freeze(["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"]);
172
+ var svgFilters = freeze(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]);
173
+ var svgDisallowed = freeze(["animate", "color-profile", "cursor", "discard", "fedropshadow", "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"]);
174
+ var mathMl$1 = freeze(["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"]);
175
+ var mathMlDisallowed = freeze(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]);
176
+ var text = freeze(["#text"]);
177
+ var html = freeze(["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"]);
178
+ var svg = freeze(["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"]);
179
+ var mathMl = freeze(["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"]);
180
+ var xml = freeze(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]);
181
+ var MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm);
182
+ var ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
183
+ var TMPLIT_EXPR = seal(/\${[\w\W]*}/gm);
184
+ var DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]+$/);
185
+ var ARIA_ATTR = seal(/^aria-[\-\w]+$/);
186
+ var IS_ALLOWED_URI = seal(
187
+ /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
188
+ // eslint-disable-line no-useless-escape
189
+ );
190
+ var IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
191
+ var ATTR_WHITESPACE = seal(
192
+ /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
193
+ // eslint-disable-line no-control-regex
194
+ );
195
+ var DOCTYPE_NAME = seal(/^html$/i);
196
+ var CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i);
197
+ var getGlobal = function getGlobal2() {
198
+ return typeof window === "undefined" ? null : window;
199
+ };
200
+ var _createTrustedTypesPolicy = function _createTrustedTypesPolicy2(trustedTypes, document) {
201
+ if (_typeof(trustedTypes) !== "object" || typeof trustedTypes.createPolicy !== "function") {
202
+ return null;
203
+ }
204
+ var suffix = null;
205
+ var ATTR_NAME = "data-tt-policy-suffix";
206
+ if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {
207
+ suffix = document.currentScript.getAttribute(ATTR_NAME);
208
+ }
209
+ var policyName = "dompurify" + (suffix ? "#" + suffix : "");
210
+ try {
211
+ return trustedTypes.createPolicy(policyName, {
212
+ createHTML: function createHTML(html2) {
213
+ return html2;
214
+ },
215
+ createScriptURL: function createScriptURL(scriptUrl) {
216
+ return scriptUrl;
217
+ }
218
+ });
219
+ } catch (_) {
220
+ console.warn("TrustedTypes policy " + policyName + " could not be created.");
221
+ return null;
222
+ }
223
+ };
224
+ function createDOMPurify() {
225
+ var window2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal();
226
+ var DOMPurify = function DOMPurify2(root) {
227
+ return createDOMPurify(root);
228
+ };
229
+ DOMPurify.version = "2.5.8";
230
+ DOMPurify.removed = [];
231
+ if (!window2 || !window2.document || window2.document.nodeType !== 9) {
232
+ DOMPurify.isSupported = false;
233
+ return DOMPurify;
234
+ }
235
+ var originalDocument = window2.document;
236
+ var document = window2.document;
237
+ var DocumentFragment = window2.DocumentFragment, HTMLTemplateElement = window2.HTMLTemplateElement, Node = window2.Node, Element = window2.Element, NodeFilter = window2.NodeFilter, _window$NamedNodeMap = window2.NamedNodeMap, NamedNodeMap = _window$NamedNodeMap === void 0 ? window2.NamedNodeMap || window2.MozNamedAttrMap : _window$NamedNodeMap, HTMLFormElement = window2.HTMLFormElement, DOMParser = window2.DOMParser, trustedTypes = window2.trustedTypes;
238
+ var ElementPrototype = Element.prototype;
239
+ var cloneNode = lookupGetter(ElementPrototype, "cloneNode");
240
+ var getNextSibling = lookupGetter(ElementPrototype, "nextSibling");
241
+ var getChildNodes = lookupGetter(ElementPrototype, "childNodes");
242
+ var getParentNode = lookupGetter(ElementPrototype, "parentNode");
243
+ if (typeof HTMLTemplateElement === "function") {
244
+ var template = document.createElement("template");
245
+ if (template.content && template.content.ownerDocument) {
246
+ document = template.content.ownerDocument;
247
+ }
248
+ }
249
+ var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);
250
+ var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML("") : "";
251
+ var _document = document, implementation = _document.implementation, createNodeIterator = _document.createNodeIterator, createDocumentFragment = _document.createDocumentFragment, getElementsByTagName = _document.getElementsByTagName;
252
+ var importNode = originalDocument.importNode;
253
+ var documentMode = {};
254
+ try {
255
+ documentMode = clone(document).documentMode ? document.documentMode : {};
256
+ } catch (_) {
257
+ }
258
+ var hooks = {};
259
+ DOMPurify.isSupported = typeof getParentNode === "function" && implementation && implementation.createHTMLDocument !== void 0 && documentMode !== 9;
260
+ var MUSTACHE_EXPR$1 = MUSTACHE_EXPR, ERB_EXPR$1 = ERB_EXPR, TMPLIT_EXPR$1 = TMPLIT_EXPR, DATA_ATTR$1 = DATA_ATTR, ARIA_ATTR$1 = ARIA_ATTR, IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA, ATTR_WHITESPACE$1 = ATTR_WHITESPACE, CUSTOM_ELEMENT$1 = CUSTOM_ELEMENT;
261
+ var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;
262
+ var ALLOWED_TAGS = null;
263
+ var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));
264
+ var ALLOWED_ATTR = null;
265
+ var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));
266
+ var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {
267
+ tagNameCheck: {
268
+ writable: true,
269
+ configurable: false,
270
+ enumerable: true,
271
+ value: null
272
+ },
273
+ attributeNameCheck: {
274
+ writable: true,
275
+ configurable: false,
276
+ enumerable: true,
277
+ value: null
278
+ },
279
+ allowCustomizedBuiltInElements: {
280
+ writable: true,
281
+ configurable: false,
282
+ enumerable: true,
283
+ value: false
284
+ }
285
+ }));
286
+ var FORBID_TAGS = null;
287
+ var FORBID_ATTR = null;
288
+ var ALLOW_ARIA_ATTR = true;
289
+ var ALLOW_DATA_ATTR = true;
290
+ var ALLOW_UNKNOWN_PROTOCOLS = false;
291
+ var ALLOW_SELF_CLOSE_IN_ATTR = true;
292
+ var SAFE_FOR_TEMPLATES = false;
293
+ var SAFE_FOR_XML = true;
294
+ var WHOLE_DOCUMENT = false;
295
+ var SET_CONFIG = false;
296
+ var FORCE_BODY = false;
297
+ var RETURN_DOM = false;
298
+ var RETURN_DOM_FRAGMENT = false;
299
+ var RETURN_TRUSTED_TYPE = false;
300
+ var SANITIZE_DOM = true;
301
+ var SANITIZE_NAMED_PROPS = false;
302
+ var SANITIZE_NAMED_PROPS_PREFIX = "user-content-";
303
+ var KEEP_CONTENT = true;
304
+ var IN_PLACE = false;
305
+ var USE_PROFILES = {};
306
+ var FORBID_CONTENTS = null;
307
+ var DEFAULT_FORBID_CONTENTS = addToSet({}, ["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"]);
308
+ var DATA_URI_TAGS = null;
309
+ var DEFAULT_DATA_URI_TAGS = addToSet({}, ["audio", "video", "img", "source", "image", "track"]);
310
+ var URI_SAFE_ATTRIBUTES = null;
311
+ var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]);
312
+ var MATHML_NAMESPACE = "http://www.w3.org/1998/Math/MathML";
313
+ var SVG_NAMESPACE = "http://www.w3.org/2000/svg";
314
+ var HTML_NAMESPACE = "http://www.w3.org/1999/xhtml";
315
+ var NAMESPACE = HTML_NAMESPACE;
316
+ var IS_EMPTY_INPUT = false;
317
+ var ALLOWED_NAMESPACES = null;
318
+ var DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);
319
+ var PARSER_MEDIA_TYPE;
320
+ var SUPPORTED_PARSER_MEDIA_TYPES = ["application/xhtml+xml", "text/html"];
321
+ var DEFAULT_PARSER_MEDIA_TYPE = "text/html";
322
+ var transformCaseFunc;
323
+ var CONFIG = null;
324
+ var formElement = document.createElement("form");
325
+ var isRegexOrFunction = function isRegexOrFunction2(testValue) {
326
+ return testValue instanceof RegExp || testValue instanceof Function;
327
+ };
328
+ var _parseConfig = function _parseConfig2(cfg) {
329
+ if (CONFIG && CONFIG === cfg) {
330
+ return;
331
+ }
332
+ if (!cfg || _typeof(cfg) !== "object") {
333
+ cfg = {};
334
+ }
335
+ cfg = clone(cfg);
336
+ PARSER_MEDIA_TYPE = // eslint-disable-next-line unicorn/prefer-includes
337
+ SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;
338
+ transformCaseFunc = PARSER_MEDIA_TYPE === "application/xhtml+xml" ? stringToString : stringToLowerCase;
339
+ ALLOWED_TAGS = "ALLOWED_TAGS" in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;
340
+ ALLOWED_ATTR = "ALLOWED_ATTR" in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;
341
+ ALLOWED_NAMESPACES = "ALLOWED_NAMESPACES" in cfg ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;
342
+ URI_SAFE_ATTRIBUTES = "ADD_URI_SAFE_ATTR" in cfg ? addToSet(
343
+ clone(DEFAULT_URI_SAFE_ATTRIBUTES),
344
+ // eslint-disable-line indent
345
+ cfg.ADD_URI_SAFE_ATTR,
346
+ // eslint-disable-line indent
347
+ transformCaseFunc
348
+ // eslint-disable-line indent
349
+ ) : DEFAULT_URI_SAFE_ATTRIBUTES;
350
+ DATA_URI_TAGS = "ADD_DATA_URI_TAGS" in cfg ? addToSet(
351
+ clone(DEFAULT_DATA_URI_TAGS),
352
+ // eslint-disable-line indent
353
+ cfg.ADD_DATA_URI_TAGS,
354
+ // eslint-disable-line indent
355
+ transformCaseFunc
356
+ // eslint-disable-line indent
357
+ ) : DEFAULT_DATA_URI_TAGS;
358
+ FORBID_CONTENTS = "FORBID_CONTENTS" in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
359
+ FORBID_TAGS = "FORBID_TAGS" in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};
360
+ FORBID_ATTR = "FORBID_ATTR" in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};
361
+ USE_PROFILES = "USE_PROFILES" in cfg ? cfg.USE_PROFILES : false;
362
+ ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false;
363
+ ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false;
364
+ ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false;
365
+ ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false;
366
+ SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false;
367
+ SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false;
368
+ WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false;
369
+ RETURN_DOM = cfg.RETURN_DOM || false;
370
+ RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false;
371
+ RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false;
372
+ FORCE_BODY = cfg.FORCE_BODY || false;
373
+ SANITIZE_DOM = cfg.SANITIZE_DOM !== false;
374
+ SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false;
375
+ KEEP_CONTENT = cfg.KEEP_CONTENT !== false;
376
+ IN_PLACE = cfg.IN_PLACE || false;
377
+ IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;
378
+ NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
379
+ CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};
380
+ if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {
381
+ CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
382
+ }
383
+ if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {
384
+ CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;
385
+ }
386
+ if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === "boolean") {
387
+ CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;
388
+ }
389
+ if (SAFE_FOR_TEMPLATES) {
390
+ ALLOW_DATA_ATTR = false;
391
+ }
392
+ if (RETURN_DOM_FRAGMENT) {
393
+ RETURN_DOM = true;
394
+ }
395
+ if (USE_PROFILES) {
396
+ ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));
397
+ ALLOWED_ATTR = [];
398
+ if (USE_PROFILES.html === true) {
399
+ addToSet(ALLOWED_TAGS, html$1);
400
+ addToSet(ALLOWED_ATTR, html);
401
+ }
402
+ if (USE_PROFILES.svg === true) {
403
+ addToSet(ALLOWED_TAGS, svg$1);
404
+ addToSet(ALLOWED_ATTR, svg);
405
+ addToSet(ALLOWED_ATTR, xml);
406
+ }
407
+ if (USE_PROFILES.svgFilters === true) {
408
+ addToSet(ALLOWED_TAGS, svgFilters);
409
+ addToSet(ALLOWED_ATTR, svg);
410
+ addToSet(ALLOWED_ATTR, xml);
411
+ }
412
+ if (USE_PROFILES.mathMl === true) {
413
+ addToSet(ALLOWED_TAGS, mathMl$1);
414
+ addToSet(ALLOWED_ATTR, mathMl);
415
+ addToSet(ALLOWED_ATTR, xml);
416
+ }
417
+ }
418
+ if (cfg.ADD_TAGS) {
419
+ if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
420
+ ALLOWED_TAGS = clone(ALLOWED_TAGS);
421
+ }
422
+ addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
423
+ }
424
+ if (cfg.ADD_ATTR) {
425
+ if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
426
+ ALLOWED_ATTR = clone(ALLOWED_ATTR);
427
+ }
428
+ addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
429
+ }
430
+ if (cfg.ADD_URI_SAFE_ATTR) {
431
+ addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
432
+ }
433
+ if (cfg.FORBID_CONTENTS) {
434
+ if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
435
+ FORBID_CONTENTS = clone(FORBID_CONTENTS);
436
+ }
437
+ addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
438
+ }
439
+ if (KEEP_CONTENT) {
440
+ ALLOWED_TAGS["#text"] = true;
441
+ }
442
+ if (WHOLE_DOCUMENT) {
443
+ addToSet(ALLOWED_TAGS, ["html", "head", "body"]);
444
+ }
445
+ if (ALLOWED_TAGS.table) {
446
+ addToSet(ALLOWED_TAGS, ["tbody"]);
447
+ delete FORBID_TAGS.tbody;
448
+ }
449
+ if (freeze) {
450
+ freeze(cfg);
451
+ }
452
+ CONFIG = cfg;
453
+ };
454
+ var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ["mi", "mo", "mn", "ms", "mtext"]);
455
+ var HTML_INTEGRATION_POINTS = addToSet({}, ["annotation-xml"]);
456
+ var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ["title", "style", "font", "a", "script"]);
457
+ var ALL_SVG_TAGS = addToSet({}, svg$1);
458
+ addToSet(ALL_SVG_TAGS, svgFilters);
459
+ addToSet(ALL_SVG_TAGS, svgDisallowed);
460
+ var ALL_MATHML_TAGS = addToSet({}, mathMl$1);
461
+ addToSet(ALL_MATHML_TAGS, mathMlDisallowed);
462
+ var _checkValidNamespace = function _checkValidNamespace2(element) {
463
+ var parent = getParentNode(element);
464
+ if (!parent || !parent.tagName) {
465
+ parent = {
466
+ namespaceURI: NAMESPACE,
467
+ tagName: "template"
468
+ };
469
+ }
470
+ var tagName = stringToLowerCase(element.tagName);
471
+ var parentTagName = stringToLowerCase(parent.tagName);
472
+ if (!ALLOWED_NAMESPACES[element.namespaceURI]) {
473
+ return false;
474
+ }
475
+ if (element.namespaceURI === SVG_NAMESPACE) {
476
+ if (parent.namespaceURI === HTML_NAMESPACE) {
477
+ return tagName === "svg";
478
+ }
479
+ if (parent.namespaceURI === MATHML_NAMESPACE) {
480
+ return tagName === "svg" && (parentTagName === "annotation-xml" || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
481
+ }
482
+ return Boolean(ALL_SVG_TAGS[tagName]);
483
+ }
484
+ if (element.namespaceURI === MATHML_NAMESPACE) {
485
+ if (parent.namespaceURI === HTML_NAMESPACE) {
486
+ return tagName === "math";
487
+ }
488
+ if (parent.namespaceURI === SVG_NAMESPACE) {
489
+ return tagName === "math" && HTML_INTEGRATION_POINTS[parentTagName];
490
+ }
491
+ return Boolean(ALL_MATHML_TAGS[tagName]);
492
+ }
493
+ if (element.namespaceURI === HTML_NAMESPACE) {
494
+ if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
495
+ return false;
496
+ }
497
+ if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
498
+ return false;
499
+ }
500
+ return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
501
+ }
502
+ if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && ALLOWED_NAMESPACES[element.namespaceURI]) {
503
+ return true;
504
+ }
505
+ return false;
506
+ };
507
+ var _forceRemove = function _forceRemove2(node) {
508
+ arrayPush(DOMPurify.removed, {
509
+ element: node
510
+ });
511
+ try {
512
+ node.parentNode.removeChild(node);
513
+ } catch (_) {
514
+ try {
515
+ node.outerHTML = emptyHTML;
516
+ } catch (_2) {
517
+ node.remove();
518
+ }
519
+ }
520
+ };
521
+ var _removeAttribute = function _removeAttribute2(name, node) {
522
+ try {
523
+ arrayPush(DOMPurify.removed, {
524
+ attribute: node.getAttributeNode(name),
525
+ from: node
526
+ });
527
+ } catch (_) {
528
+ arrayPush(DOMPurify.removed, {
529
+ attribute: null,
530
+ from: node
531
+ });
532
+ }
533
+ node.removeAttribute(name);
534
+ if (name === "is" && !ALLOWED_ATTR[name]) {
535
+ if (RETURN_DOM || RETURN_DOM_FRAGMENT) {
536
+ try {
537
+ _forceRemove(node);
538
+ } catch (_) {
539
+ }
540
+ } else {
541
+ try {
542
+ node.setAttribute(name, "");
543
+ } catch (_) {
544
+ }
545
+ }
546
+ }
547
+ };
548
+ var _initDocument = function _initDocument2(dirty) {
549
+ var doc;
550
+ var leadingWhitespace;
551
+ if (FORCE_BODY) {
552
+ dirty = "<remove></remove>" + dirty;
553
+ } else {
554
+ var matches = stringMatch(dirty, /^[\r\n\t ]+/);
555
+ leadingWhitespace = matches && matches[0];
556
+ }
557
+ if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && NAMESPACE === HTML_NAMESPACE) {
558
+ dirty = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + dirty + "</body></html>";
559
+ }
560
+ var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
561
+ if (NAMESPACE === HTML_NAMESPACE) {
562
+ try {
563
+ doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
564
+ } catch (_) {
565
+ }
566
+ }
567
+ if (!doc || !doc.documentElement) {
568
+ doc = implementation.createDocument(NAMESPACE, "template", null);
569
+ try {
570
+ doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;
571
+ } catch (_) {
572
+ }
573
+ }
574
+ var body = doc.body || doc.documentElement;
575
+ if (dirty && leadingWhitespace) {
576
+ body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);
577
+ }
578
+ if (NAMESPACE === HTML_NAMESPACE) {
579
+ return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? "html" : "body")[0];
580
+ }
581
+ return WHOLE_DOCUMENT ? doc.documentElement : body;
582
+ };
583
+ var _createIterator = function _createIterator2(root) {
584
+ return createNodeIterator.call(
585
+ root.ownerDocument || root,
586
+ root,
587
+ // eslint-disable-next-line no-bitwise
588
+ NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION,
589
+ null,
590
+ false
591
+ );
592
+ };
593
+ var _isClobbered = function _isClobbered2(elm) {
594
+ return elm instanceof HTMLFormElement && (typeof elm.nodeName !== "string" || typeof elm.textContent !== "string" || typeof elm.removeChild !== "function" || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== "function" || typeof elm.setAttribute !== "function" || typeof elm.namespaceURI !== "string" || typeof elm.insertBefore !== "function" || typeof elm.hasChildNodes !== "function");
595
+ };
596
+ var _isNode = function _isNode2(object) {
597
+ return _typeof(Node) === "object" ? object instanceof Node : object && _typeof(object) === "object" && typeof object.nodeType === "number" && typeof object.nodeName === "string";
598
+ };
599
+ var _executeHook = function _executeHook2(entryPoint, currentNode, data) {
600
+ if (!hooks[entryPoint]) {
601
+ return;
602
+ }
603
+ arrayForEach(hooks[entryPoint], function(hook) {
604
+ hook.call(DOMPurify, currentNode, data, CONFIG);
605
+ });
606
+ };
607
+ var _sanitizeElements = function _sanitizeElements2(currentNode) {
608
+ var content;
609
+ _executeHook("beforeSanitizeElements", currentNode, null);
610
+ if (_isClobbered(currentNode)) {
611
+ _forceRemove(currentNode);
612
+ return true;
613
+ }
614
+ if (regExpTest(/[\u0080-\uFFFF]/, currentNode.nodeName)) {
615
+ _forceRemove(currentNode);
616
+ return true;
617
+ }
618
+ var tagName = transformCaseFunc(currentNode.nodeName);
619
+ _executeHook("uponSanitizeElement", currentNode, {
620
+ tagName,
621
+ allowedTags: ALLOWED_TAGS
622
+ });
623
+ if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) {
624
+ _forceRemove(currentNode);
625
+ return true;
626
+ }
627
+ if (tagName === "select" && regExpTest(/<template/i, currentNode.innerHTML)) {
628
+ _forceRemove(currentNode);
629
+ return true;
630
+ }
631
+ if (currentNode.nodeType === 7) {
632
+ _forceRemove(currentNode);
633
+ return true;
634
+ }
635
+ if (SAFE_FOR_XML && currentNode.nodeType === 8 && regExpTest(/<[/\w]/g, currentNode.data)) {
636
+ _forceRemove(currentNode);
637
+ return true;
638
+ }
639
+ if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
640
+ if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {
641
+ if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;
642
+ if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;
643
+ }
644
+ if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
645
+ var parentNode = getParentNode(currentNode) || currentNode.parentNode;
646
+ var childNodes = getChildNodes(currentNode) || currentNode.childNodes;
647
+ if (childNodes && parentNode) {
648
+ var childCount = childNodes.length;
649
+ for (var i = childCount - 1; i >= 0; --i) {
650
+ var childClone = cloneNode(childNodes[i], true);
651
+ childClone.__removalCount = (currentNode.__removalCount || 0) + 1;
652
+ parentNode.insertBefore(childClone, getNextSibling(currentNode));
653
+ }
654
+ }
655
+ }
656
+ _forceRemove(currentNode);
657
+ return true;
658
+ }
659
+ if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {
660
+ _forceRemove(currentNode);
661
+ return true;
662
+ }
663
+ if ((tagName === "noscript" || tagName === "noembed" || tagName === "noframes") && regExpTest(/<\/no(script|embed|frames)/i, currentNode.innerHTML)) {
664
+ _forceRemove(currentNode);
665
+ return true;
666
+ }
667
+ if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {
668
+ content = currentNode.textContent;
669
+ content = stringReplace(content, MUSTACHE_EXPR$1, " ");
670
+ content = stringReplace(content, ERB_EXPR$1, " ");
671
+ content = stringReplace(content, TMPLIT_EXPR$1, " ");
672
+ if (currentNode.textContent !== content) {
673
+ arrayPush(DOMPurify.removed, {
674
+ element: currentNode.cloneNode()
675
+ });
676
+ currentNode.textContent = content;
677
+ }
678
+ }
679
+ _executeHook("afterSanitizeElements", currentNode, null);
680
+ return false;
681
+ };
682
+ var _isValidAttribute = function _isValidAttribute2(lcTag, lcName, value) {
683
+ if (SANITIZE_DOM && (lcName === "id" || lcName === "name") && (value in document || value in formElement)) {
684
+ return false;
685
+ }
686
+ if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName)) ;
687
+ else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ;
688
+ else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
689
+ if (
690
+ // First condition does a very basic check if a) it's basically a valid custom element tagname AND
691
+ // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
692
+ // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
693
+ _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND
694
+ // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
695
+ lcName === "is" && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))
696
+ ) ;
697
+ else {
698
+ return false;
699
+ }
700
+ } else if (URI_SAFE_ATTRIBUTES[lcName]) ;
701
+ else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, ""))) ;
702
+ else if ((lcName === "src" || lcName === "xlink:href" || lcName === "href") && lcTag !== "script" && stringIndexOf(value, "data:") === 0 && DATA_URI_TAGS[lcTag]) ;
703
+ else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, ""))) ;
704
+ else if (value) {
705
+ return false;
706
+ } else ;
707
+ return true;
708
+ };
709
+ var _basicCustomElementTest = function _basicCustomElementTest2(tagName) {
710
+ return tagName !== "annotation-xml" && stringMatch(tagName, CUSTOM_ELEMENT$1);
711
+ };
712
+ var _sanitizeAttributes = function _sanitizeAttributes2(currentNode) {
713
+ var attr;
714
+ var value;
715
+ var lcName;
716
+ var l;
717
+ _executeHook("beforeSanitizeAttributes", currentNode, null);
718
+ var attributes = currentNode.attributes;
719
+ if (!attributes || _isClobbered(currentNode)) {
720
+ return;
721
+ }
722
+ var hookEvent = {
723
+ attrName: "",
724
+ attrValue: "",
725
+ keepAttr: true,
726
+ allowedAttributes: ALLOWED_ATTR
727
+ };
728
+ l = attributes.length;
729
+ while (l--) {
730
+ attr = attributes[l];
731
+ var _attr = attr, name = _attr.name, namespaceURI = _attr.namespaceURI;
732
+ value = name === "value" ? attr.value : stringTrim(attr.value);
733
+ lcName = transformCaseFunc(name);
734
+ hookEvent.attrName = lcName;
735
+ hookEvent.attrValue = value;
736
+ hookEvent.keepAttr = true;
737
+ hookEvent.forceKeepAttr = void 0;
738
+ _executeHook("uponSanitizeAttribute", currentNode, hookEvent);
739
+ value = hookEvent.attrValue;
740
+ if (hookEvent.forceKeepAttr) {
741
+ continue;
742
+ }
743
+ _removeAttribute(name, currentNode);
744
+ if (!hookEvent.keepAttr) {
745
+ continue;
746
+ }
747
+ if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\/>/i, value)) {
748
+ _removeAttribute(name, currentNode);
749
+ continue;
750
+ }
751
+ if (SAFE_FOR_TEMPLATES) {
752
+ value = stringReplace(value, MUSTACHE_EXPR$1, " ");
753
+ value = stringReplace(value, ERB_EXPR$1, " ");
754
+ value = stringReplace(value, TMPLIT_EXPR$1, " ");
755
+ }
756
+ var lcTag = transformCaseFunc(currentNode.nodeName);
757
+ if (!_isValidAttribute(lcTag, lcName, value)) {
758
+ continue;
759
+ }
760
+ if (SANITIZE_NAMED_PROPS && (lcName === "id" || lcName === "name")) {
761
+ _removeAttribute(name, currentNode);
762
+ value = SANITIZE_NAMED_PROPS_PREFIX + value;
763
+ }
764
+ if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title)/i, value)) {
765
+ _removeAttribute(name, currentNode);
766
+ continue;
767
+ }
768
+ if (trustedTypesPolicy && _typeof(trustedTypes) === "object" && typeof trustedTypes.getAttributeType === "function") {
769
+ if (namespaceURI) ;
770
+ else {
771
+ switch (trustedTypes.getAttributeType(lcTag, lcName)) {
772
+ case "TrustedHTML": {
773
+ value = trustedTypesPolicy.createHTML(value);
774
+ break;
775
+ }
776
+ case "TrustedScriptURL": {
777
+ value = trustedTypesPolicy.createScriptURL(value);
778
+ break;
779
+ }
780
+ }
781
+ }
782
+ }
783
+ try {
784
+ if (namespaceURI) {
785
+ currentNode.setAttributeNS(namespaceURI, name, value);
786
+ } else {
787
+ currentNode.setAttribute(name, value);
788
+ }
789
+ if (_isClobbered(currentNode)) {
790
+ _forceRemove(currentNode);
791
+ } else {
792
+ arrayPop(DOMPurify.removed);
793
+ }
794
+ } catch (_) {
795
+ }
796
+ }
797
+ _executeHook("afterSanitizeAttributes", currentNode, null);
798
+ };
799
+ var _sanitizeShadowDOM = function _sanitizeShadowDOM2(fragment) {
800
+ var shadowNode;
801
+ var shadowIterator = _createIterator(fragment);
802
+ _executeHook("beforeSanitizeShadowDOM", fragment, null);
803
+ while (shadowNode = shadowIterator.nextNode()) {
804
+ _executeHook("uponSanitizeShadowNode", shadowNode, null);
805
+ _sanitizeElements(shadowNode);
806
+ _sanitizeAttributes(shadowNode);
807
+ if (shadowNode.content instanceof DocumentFragment) {
808
+ _sanitizeShadowDOM2(shadowNode.content);
809
+ }
810
+ }
811
+ _executeHook("afterSanitizeShadowDOM", fragment, null);
812
+ };
813
+ DOMPurify.sanitize = function(dirty) {
814
+ var cfg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
815
+ var body;
816
+ var importedNode;
817
+ var currentNode;
818
+ var oldNode;
819
+ var returnNode;
820
+ IS_EMPTY_INPUT = !dirty;
821
+ if (IS_EMPTY_INPUT) {
822
+ dirty = "<!-->";
823
+ }
824
+ if (typeof dirty !== "string" && !_isNode(dirty)) {
825
+ if (typeof dirty.toString === "function") {
826
+ dirty = dirty.toString();
827
+ if (typeof dirty !== "string") {
828
+ throw typeErrorCreate("dirty is not a string, aborting");
829
+ }
830
+ } else {
831
+ throw typeErrorCreate("toString is not a function");
832
+ }
833
+ }
834
+ if (!DOMPurify.isSupported) {
835
+ if (_typeof(window2.toStaticHTML) === "object" || typeof window2.toStaticHTML === "function") {
836
+ if (typeof dirty === "string") {
837
+ return window2.toStaticHTML(dirty);
838
+ }
839
+ if (_isNode(dirty)) {
840
+ return window2.toStaticHTML(dirty.outerHTML);
841
+ }
842
+ }
843
+ return dirty;
844
+ }
845
+ if (!SET_CONFIG) {
846
+ _parseConfig(cfg);
847
+ }
848
+ DOMPurify.removed = [];
849
+ if (typeof dirty === "string") {
850
+ IN_PLACE = false;
851
+ }
852
+ if (IN_PLACE) {
853
+ if (dirty.nodeName) {
854
+ var tagName = transformCaseFunc(dirty.nodeName);
855
+ if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
856
+ throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place");
857
+ }
858
+ }
859
+ } else if (dirty instanceof Node) {
860
+ body = _initDocument("<!---->");
861
+ importedNode = body.ownerDocument.importNode(dirty, true);
862
+ if (importedNode.nodeType === 1 && importedNode.nodeName === "BODY") {
863
+ body = importedNode;
864
+ } else if (importedNode.nodeName === "HTML") {
865
+ body = importedNode;
866
+ } else {
867
+ body.appendChild(importedNode);
868
+ }
869
+ } else {
870
+ if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && // eslint-disable-next-line unicorn/prefer-includes
871
+ dirty.indexOf("<") === -1) {
872
+ return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
873
+ }
874
+ body = _initDocument(dirty);
875
+ if (!body) {
876
+ return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : "";
877
+ }
878
+ }
879
+ if (body && FORCE_BODY) {
880
+ _forceRemove(body.firstChild);
881
+ }
882
+ var nodeIterator = _createIterator(IN_PLACE ? dirty : body);
883
+ while (currentNode = nodeIterator.nextNode()) {
884
+ if (currentNode.nodeType === 3 && currentNode === oldNode) {
885
+ continue;
886
+ }
887
+ _sanitizeElements(currentNode);
888
+ _sanitizeAttributes(currentNode);
889
+ if (currentNode.content instanceof DocumentFragment) {
890
+ _sanitizeShadowDOM(currentNode.content);
891
+ }
892
+ oldNode = currentNode;
893
+ }
894
+ oldNode = null;
895
+ if (IN_PLACE) {
896
+ return dirty;
897
+ }
898
+ if (RETURN_DOM) {
899
+ if (RETURN_DOM_FRAGMENT) {
900
+ returnNode = createDocumentFragment.call(body.ownerDocument);
901
+ while (body.firstChild) {
902
+ returnNode.appendChild(body.firstChild);
903
+ }
904
+ } else {
905
+ returnNode = body;
906
+ }
907
+ if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmod) {
908
+ returnNode = importNode.call(originalDocument, returnNode, true);
909
+ }
910
+ return returnNode;
911
+ }
912
+ var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
913
+ if (WHOLE_DOCUMENT && ALLOWED_TAGS["!doctype"] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {
914
+ serializedHTML = "<!DOCTYPE " + body.ownerDocument.doctype.name + ">\n" + serializedHTML;
915
+ }
916
+ if (SAFE_FOR_TEMPLATES) {
917
+ serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$1, " ");
918
+ serializedHTML = stringReplace(serializedHTML, ERB_EXPR$1, " ");
919
+ serializedHTML = stringReplace(serializedHTML, TMPLIT_EXPR$1, " ");
920
+ }
921
+ return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
922
+ };
923
+ DOMPurify.setConfig = function(cfg) {
924
+ _parseConfig(cfg);
925
+ SET_CONFIG = true;
926
+ };
927
+ DOMPurify.clearConfig = function() {
928
+ CONFIG = null;
929
+ SET_CONFIG = false;
930
+ };
931
+ DOMPurify.isValidAttribute = function(tag, attr, value) {
932
+ if (!CONFIG) {
933
+ _parseConfig({});
934
+ }
935
+ var lcTag = transformCaseFunc(tag);
936
+ var lcName = transformCaseFunc(attr);
937
+ return _isValidAttribute(lcTag, lcName, value);
938
+ };
939
+ DOMPurify.addHook = function(entryPoint, hookFunction) {
940
+ if (typeof hookFunction !== "function") {
941
+ return;
942
+ }
943
+ hooks[entryPoint] = hooks[entryPoint] || [];
944
+ arrayPush(hooks[entryPoint], hookFunction);
945
+ };
946
+ DOMPurify.removeHook = function(entryPoint) {
947
+ if (hooks[entryPoint]) {
948
+ return arrayPop(hooks[entryPoint]);
949
+ }
950
+ };
951
+ DOMPurify.removeHooks = function(entryPoint) {
952
+ if (hooks[entryPoint]) {
953
+ hooks[entryPoint] = [];
954
+ }
955
+ };
956
+ DOMPurify.removeAllHooks = function() {
957
+ hooks = {};
958
+ };
959
+ return DOMPurify;
960
+ }
961
+ var purify = createDOMPurify();
962
+ export {
963
+ purify as default
964
+ };
965
+ //# sourceMappingURL=purify.es-DzZgBtzL.js.map