@opensystemslab/map 0.7.4 → 0.7.5

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.html CHANGED
@@ -1,19 +1,18 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <title>OS Web Components Sandbox</title>
7
- <script type="module" src="component-lib.es.js"></script>
8
- <!-- OS vector tile source specifies fonts in .pbf format, which OpenLayers can't load, so make them available directly -->
9
- <link rel="preconnect" href="https://fonts.googleapis.com" />
10
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
11
- <link
12
- href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300;400;600&display=swap"
13
- rel="stylesheet"
14
- />
15
- <!-- Examples of available style options for postcode-search & address-autocomplete -->
16
- <!-- <style>
3
+
4
+ <head>
5
+ <meta charset="UTF-8" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>OS Web Components Sandbox</title>
8
+ <script type="module" src="component-lib.es.js"></script>
9
+ <!-- OS vector tile source specifies fonts in .pbf format, which OpenLayers can't load, so make them available directly -->
10
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
11
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
12
+ <link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300;400;600&display=swap"
13
+ rel="stylesheet" />
14
+ <!-- Examples of available style options for postcode-search & address-autocomplete -->
15
+ <!-- <style>
17
16
  address-autocomplete {
18
17
  --autocomplete__label__font-size: 25px;
19
18
  --autocomplete__input__padding: 6px 40px 7px 12px;
@@ -38,18 +37,21 @@
38
37
  --postcode__input__height: 60px;
39
38
  }
40
39
  </style> -->
41
- </head>
42
- <body style="font-family:Inter,Helvetica,sans-serif;">
43
- <div style="display:flex;flex-direction:column;">
44
- <h1 style="color:red;font-size:16px;">*** This is a testing sandbox - these components are unaware of each other! ***</h1>
45
- <div style="margin-bottom:1em">
46
- <my-map zoom="20" maxZoom="23" id="example-map" useScaleBarStyle showScale showNorthArrow showPrint osProxyEndpoint="https://api.editor.planx.dev/proxy/ordnance-survey" />
47
- </div>
48
- <div style="margin-bottom:1em">
49
- <postcode-search hintText="Optional hint text shows up here" id="example-postcode" />
50
- </div>
51
- <div style="margin-bottom:1em; background-color: white;">
52
- <!--
40
+ </head>
41
+
42
+ <body style="font-family:Inter,Helvetica,sans-serif;">
43
+ <div style="display:flex;flex-direction:column;">
44
+ <h1 style="color:red;font-size:16px;">*** This is a testing sandbox - these components are unaware of each other!
45
+ ***</h1>
46
+ <div style="margin-bottom:1em">
47
+ <my-map zoom="20" maxZoom="23" id="example-map" drawMode useScaleBarStyle showScale showNorthArrow showPrint
48
+ osProxyEndpoint="https://api.editor.planx.dev/proxy/ordnance-survey" />
49
+ </div>
50
+ <div style="margin-bottom:1em">
51
+ <postcode-search hintText="Optional hint text shows up here" id="example-postcode" />
52
+ </div>
53
+ <div style="margin-bottom:1em; background-color: white;">
54
+ <!--
53
55
  Examples (as of March 2022):
54
56
  SE5 OHU (Southwark): default/"standard" postcode example, fetches 65 LPI addresses
55
57
  SE19 1NT (Lambeth): 56 DPA addresses -> 128 LPI addresses (87 "approved"), now requires paginated fetch
@@ -59,58 +61,89 @@
59
61
  Example with default value (used for planx "change" & "back" button behavior):
60
62
  <address-autocomplete postcode="SE5 0HU" id="example-autocomplete" initialAddress="75, COBOURG ROAD, LONDON" />
61
63
  -->
62
- <address-autocomplete postcode="SE5 0HU" id="example-autocomplete" arrowStyle="light" labelStyle="static"/>
63
- </div>
64
+ <address-autocomplete postcode="SE5 0HU" id="example-autocomplete" arrowStyle="light" labelStyle="static" />
64
65
  </div>
65
- <script>
66
- // --- MAP --- //
67
- const map = document.querySelector("my-map");
66
+ </div>
67
+ <script>
68
+ // --- MAP --- //
69
+ const map = document.querySelector("my-map");
70
+ map.clipGeojsonData = {
71
+ "type": "Feature",
72
+ "geometry": {
73
+ "type": "Polygon",
74
+ "coordinates": [
75
+ [
76
+ [
77
+ -0.128307852848053,
78
+ 51.50748361634746
79
+ ],
80
+ [
81
+ -0.1274388171272278,
82
+ 51.50773069282454
83
+ ],
84
+ [
85
+ -0.12710085879135133,
86
+ 51.507243216327
87
+ ],
88
+ [
89
+ -0.12802890311050416,
90
+ 51.50705957656797
91
+ ],
92
+ [
93
+ -0.128307852848053,
94
+ 51.50748361634746
95
+ ]
96
+ ]
97
+ ]
98
+ },
99
+ };
100
+
101
+ map.addEventListener("ready", (event) => {
102
+ console.log("map ready");
103
+ });
68
104
 
69
- map.addEventListener("ready", (event) => {
70
- console.log("map ready");
71
- });
105
+ // applicable when drawMode is enabled
106
+ map.addEventListener("areaChange", ({ detail: area }) => {
107
+ console.debug({ area });
108
+ });
109
+ map.addEventListener("geojsonChange", ({ detail: geojson }) => {
110
+ console.debug({ geojson });
111
+ });
72
112
 
73
- // applicable when drawMode is enabled
74
- map.addEventListener("areaChange", ({ detail: area }) => {
75
- console.debug({ area });
76
- });
77
- map.addEventListener("geojsonChange", ({ detail: geojson }) => {
78
- console.debug({ geojson });
79
- });
113
+ // applicable when showFeaturesAtPoint is enabled
114
+ map.addEventListener("featuresAreaChange", ({ detail: featuresArea }) => {
115
+ console.debug({ featuresArea });
116
+ });
117
+ map.addEventListener("featuresGeojsonChange", ({ detail: featuresGeojson }) => {
118
+ console.debug({ featuresGeojson });
119
+ });
80
120
 
81
- // applicable when showFeaturesAtPoint is enabled
82
- map.addEventListener("featuresAreaChange", ({ detail: featuresArea }) => {
83
- console.debug({ featuresArea });
84
- });
85
- map.addEventListener("featuresGeojsonChange", ({ detail: featuresGeojson }) => {
86
- console.debug({ featuresGeojson });
87
- });
121
+ // applicable when geojsonData is provided
122
+ map.addEventListener("geojsonDataArea", ({ detail: geojsonDataArea }) => {
123
+ console.debug({ geojsonDataArea });
124
+ });
88
125
 
89
- // applicable when geojsonData is provided
90
- map.addEventListener("geojsonDataArea", ({ detail: geojsonDataArea }) => {
91
- console.debug({ geojsonDataArea });
92
- });
126
+ // --- POSTCODE SEARCH --- //
127
+ const search = document.querySelector("postcode-search");
93
128
 
94
- // --- POSTCODE SEARCH --- //
95
- const search = document.querySelector("postcode-search");
129
+ search.addEventListener("postcodeChange", ({ detail }) => {
130
+ console.debug({ detail });
131
+ });
96
132
 
97
- search.addEventListener("postcodeChange", ({ detail }) => {
98
- console.debug({ detail });
99
- });
133
+ // --- ADDRESS AUTOCOMPLETE --- //
134
+ const autocomplete = document.querySelector("address-autocomplete");
100
135
 
101
- // --- ADDRESS AUTOCOMPLETE --- //
102
- const autocomplete = document.querySelector("address-autocomplete");
136
+ autocomplete.addEventListener("ready", ({ detail: data }) => {
137
+ console.log("autocomplete ready", { data });
138
+ });
103
139
 
104
- autocomplete.addEventListener("ready", ({ detail: data }) => {
105
- console.log("autocomplete ready", { data });
106
- });
140
+ autocomplete.addEventListener(
141
+ "addressSelection",
142
+ ({ detail: address }) => {
143
+ console.debug({ detail: address });
144
+ }
145
+ );
146
+ </script>
147
+ </body>
107
148
 
108
- autocomplete.addEventListener(
109
- "addressSelection",
110
- ({ detail: address }) => {
111
- console.debug({ detail: address });
112
- }
113
- );
114
- </script>
115
- </body>
116
- </html>
149
+ </html>
@@ -1,4 +1,6 @@
1
+ /*! @license DOMPurify 2.4.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.3/LICENSE */
1
2
  function C(r) {
3
+ "@babel/helpers - typeof";
2
4
  return C = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(n) {
3
5
  return typeof n;
4
6
  } : function(n) {
@@ -42,7 +44,7 @@ function Ut(r) {
42
44
  return Array.from(r);
43
45
  }
44
46
  function Ht(r, n) {
45
- if (!!r) {
47
+ if (r) {
46
48
  if (typeof r == "string")
47
49
  return Pe(r, n);
48
50
  var o = Object.prototype.toString.call(r).slice(8, -1);
@@ -126,8 +128,10 @@ function ne(r, n) {
126
128
  }
127
129
  var st = A(["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"]), we = A(["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"]), Ie = A(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]), Zt = A(["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"]), Ce = A(["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"]), Jt = A(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), ut = A(["#text"]), ft = A(["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"]), xe = A(["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"]), ct = A(["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"]), ie = A(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), Qt = R(/\{\{[\w\W]*|[\w\W]*\}\}/gm), er = R(/<%[\w\W]*|[\w\W]*%>/gm), tr = R(/\${[\w\W]*}/gm), rr = R(/^data-[\-\w.\u00B7-\uFFFF]/), ar = R(/^aria-[\-\w]+$/), nr = R(
128
130
  /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
131
+ // eslint-disable-line no-useless-escape
129
132
  ), ir = R(/^(?:\w+script|data):/i), or = R(
130
133
  /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
134
+ // eslint-disable-line no-control-regex
131
135
  ), lr = R(/^html$/i), sr = function() {
132
136
  return typeof window > "u" ? null : window;
133
137
  }, ur = function(n, o) {
@@ -189,14 +193,21 @@ function pt() {
189
193
  })), j = null, he = null, Be = !0, _e = !0, We = !1, F = !1, x = !1, Ae = !1, Ee = !1, U = !1, J = !1, Q = !1, $e = !0, je = !1, Nt = "user-content-", ye = !0, Y = !1, H = {}, z = null, Ye = l({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]), Ve = null, Xe = l({}, ["audio", "video", "img", "source", "image", "track"]), ge = null, qe = l({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), ee = "http://www.w3.org/1998/Math/MathML", te = "http://www.w3.org/2000/svg", M = "http://www.w3.org/1999/xhtml", G = M, be = !1, Se = null, Dt = l({}, [ee, te, M], Le), k, Lt = ["application/xhtml+xml", "text/html"], Mt = "text/html", p, B = null, wt = s.createElement("form"), Ke = function(e) {
190
194
  return e instanceof RegExp || e instanceof Function;
191
195
  }, Re = function(e) {
192
- B && B === e || ((!e || C(e) !== "object") && (e = {}), e = P(e), k = Lt.indexOf(e.PARSER_MEDIA_TYPE) === -1 ? k = Mt : k = e.PARSER_MEDIA_TYPE, p = k === "application/xhtml+xml" ? Le : le, m = "ALLOWED_TAGS" in e ? l({}, e.ALLOWED_TAGS, p) : ze, v = "ALLOWED_ATTR" in e ? l({}, e.ALLOWED_ATTR, p) : Ge, Se = "ALLOWED_NAMESPACES" in e ? l({}, e.ALLOWED_NAMESPACES, Le) : Dt, ge = "ADD_URI_SAFE_ATTR" in e ? l(
196
+ B && B === e || ((!e || C(e) !== "object") && (e = {}), e = P(e), k = // eslint-disable-next-line unicorn/prefer-includes
197
+ Lt.indexOf(e.PARSER_MEDIA_TYPE) === -1 ? k = Mt : k = e.PARSER_MEDIA_TYPE, p = k === "application/xhtml+xml" ? Le : le, m = "ALLOWED_TAGS" in e ? l({}, e.ALLOWED_TAGS, p) : ze, v = "ALLOWED_ATTR" in e ? l({}, e.ALLOWED_ATTR, p) : Ge, Se = "ALLOWED_NAMESPACES" in e ? l({}, e.ALLOWED_NAMESPACES, Le) : Dt, ge = "ADD_URI_SAFE_ATTR" in e ? l(
193
198
  P(qe),
199
+ // eslint-disable-line indent
194
200
  e.ADD_URI_SAFE_ATTR,
201
+ // eslint-disable-line indent
195
202
  p
203
+ // eslint-disable-line indent
196
204
  ) : qe, Ve = "ADD_DATA_URI_TAGS" in e ? l(
197
205
  P(Xe),
206
+ // eslint-disable-line indent
198
207
  e.ADD_DATA_URI_TAGS,
208
+ // eslint-disable-line indent
199
209
  p
210
+ // eslint-disable-line indent
200
211
  ) : Xe, z = "FORBID_CONTENTS" in e ? l({}, e.FORBID_CONTENTS, p) : Ye, j = "FORBID_TAGS" in e ? l({}, e.FORBID_TAGS, p) : {}, he = "FORBID_ATTR" in e ? l({}, e.FORBID_ATTR, p) : {}, H = "USE_PROFILES" in e ? e.USE_PROFILES : !1, Be = e.ALLOW_ARIA_ATTR !== !1, _e = e.ALLOW_DATA_ATTR !== !1, We = e.ALLOW_UNKNOWN_PROTOCOLS || !1, F = e.SAFE_FOR_TEMPLATES || !1, x = e.WHOLE_DOCUMENT || !1, U = e.RETURN_DOM || !1, J = e.RETURN_DOM_FRAGMENT || !1, Q = e.RETURN_TRUSTED_TYPE || !1, Ee = e.FORCE_BODY || !1, $e = e.SANITIZE_DOM !== !1, je = e.SANITIZE_NAMED_PROPS || !1, ye = e.KEEP_CONTENT !== !1, Y = e.IN_PLACE || !1, Te = e.ALLOWED_URI_REGEXP || Te, G = e.NAMESPACE || M, e.CUSTOM_ELEMENT_HANDLING && Ke(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (c.tagNameCheck = e.CUSTOM_ELEMENT_HANDLING.tagNameCheck), e.CUSTOM_ELEMENT_HANDLING && Ke(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (c.attributeNameCheck = e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), e.CUSTOM_ELEMENT_HANDLING && typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && (c.allowCustomizedBuiltInElements = e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), F && (_e = !1), J && (U = !0), H && (m = l({}, S(ut)), v = [], H.html === !0 && (l(m, st), l(v, ft)), H.svg === !0 && (l(m, we), l(v, xe), l(v, ie)), H.svgFilters === !0 && (l(m, Ie), l(v, xe), l(v, ie)), H.mathMl === !0 && (l(m, Ce), l(v, ct), l(v, ie))), e.ADD_TAGS && (m === ze && (m = P(m)), l(m, e.ADD_TAGS, p)), e.ADD_ATTR && (v === Ge && (v = P(v)), l(v, e.ADD_ATTR, p)), e.ADD_URI_SAFE_ATTR && l(ge, e.ADD_URI_SAFE_ATTR, p), e.FORBID_CONTENTS && (z === Ye && (z = P(z)), l(z, e.FORBID_CONTENTS, p)), ye && (m["#text"] = !0), x && l(m, ["html", "head", "body"]), m.table && (l(m, ["tbody"]), delete j.tbody), A && A(e), B = e);
201
212
  }, Ze = l({}, ["mi", "mo", "mn", "ms", "mtext"]), Je = l({}, ["foreignobject", "desc", "title", "annotation-xml"]), It = l({}, ["title", "style", "font", "a", "script"]), re = l({}, we);
202
213
  l(re, Ie), l(re, Zt);
@@ -209,7 +220,7 @@ function pt() {
209
220
  tagName: "template"
210
221
  });
211
222
  var a = le(e.tagName), u = le(t.tagName);
212
- return Se[e.namespaceURI] ? e.namespaceURI === te ? t.namespaceURI === M ? a === "svg" : t.namespaceURI === ee ? a === "svg" && (u === "annotation-xml" || Ze[u]) : Boolean(re[a]) : e.namespaceURI === ee ? t.namespaceURI === M ? a === "math" : t.namespaceURI === te ? a === "math" && Je[u] : Boolean(Oe[a]) : e.namespaceURI === M ? t.namespaceURI === te && !Je[u] || t.namespaceURI === ee && !Ze[u] ? !1 : !Oe[a] && (It[a] || !re[a]) : !!(k === "application/xhtml+xml" && Se[e.namespaceURI]) : !1;
223
+ return Se[e.namespaceURI] ? e.namespaceURI === te ? t.namespaceURI === M ? a === "svg" : t.namespaceURI === ee ? a === "svg" && (u === "annotation-xml" || Ze[u]) : !!re[a] : e.namespaceURI === ee ? t.namespaceURI === M ? a === "math" : t.namespaceURI === te ? a === "math" && Je[u] : !!Oe[a] : e.namespaceURI === M ? t.namespaceURI === te && !Je[u] || t.namespaceURI === ee && !Ze[u] ? !1 : !Oe[a] && (It[a] || !re[a]) : !!(k === "application/xhtml+xml" && Se[e.namespaceURI]) : !1;
213
224
  }, w = function(e) {
214
225
  X(n.removed, {
215
226
  element: e
@@ -274,6 +285,7 @@ function pt() {
274
285
  return Et.call(
275
286
  e.ownerDocument || e,
276
287
  e,
288
+ // eslint-disable-next-line no-bitwise
277
289
  W.SHOW_ELEMENT | W.SHOW_COMMENT | W.SHOW_TEXT,
278
290
  null,
279
291
  !1
@@ -283,7 +295,7 @@ function pt() {
283
295
  }, V = function(e) {
284
296
  return C(L) === "object" ? e instanceof L : e && C(e) === "object" && typeof e.nodeType == "number" && typeof e.nodeName == "string";
285
297
  }, I = function(e, t, a) {
286
- !D[e] || Yt(D[e], function(u) {
298
+ D[e] && Yt(D[e], function(u) {
287
299
  u.call(n, t, a, B);
288
300
  });
289
301
  }, tt = function(e) {
@@ -316,7 +328,14 @@ function pt() {
316
328
  if (!(_e && !he[t] && _(St, t))) {
317
329
  if (!(Be && _(Rt, t))) {
318
330
  if (!v[t] || he[t]) {
319
- if (!(at(e) && (c.tagNameCheck instanceof RegExp && _(c.tagNameCheck, e) || c.tagNameCheck instanceof Function && c.tagNameCheck(e)) && (c.attributeNameCheck instanceof RegExp && _(c.attributeNameCheck, t) || c.attributeNameCheck instanceof Function && c.attributeNameCheck(t)) || t === "is" && c.allowCustomizedBuiltInElements && (c.tagNameCheck instanceof RegExp && _(c.tagNameCheck, a) || c.tagNameCheck instanceof Function && c.tagNameCheck(a))))
331
+ if (
332
+ // First condition does a very basic check if a) it's basically a valid custom element tagname AND
333
+ // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
334
+ // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
335
+ !(at(e) && (c.tagNameCheck instanceof RegExp && _(c.tagNameCheck, e) || c.tagNameCheck instanceof Function && c.tagNameCheck(e)) && (c.attributeNameCheck instanceof RegExp && _(c.attributeNameCheck, t) || c.attributeNameCheck instanceof Function && c.attributeNameCheck(t)) || // Alternative, second condition checks if it's an `is`-attribute, AND
336
+ // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
337
+ t === "is" && c.allowCustomizedBuiltInElements && (c.tagNameCheck instanceof RegExp && _(c.tagNameCheck, a) || c.tagNameCheck instanceof Function && c.tagNameCheck(a)))
338
+ )
320
339
  return !1;
321
340
  } else if (!ge[t]) {
322
341
  if (!_(Te, b(a, He, ""))) {
@@ -337,7 +356,7 @@ function pt() {
337
356
  var t, a, u, E;
338
357
  I("beforeSanitizeAttributes", e, null);
339
358
  var h = e.attributes;
340
- if (!!h) {
359
+ if (h) {
341
360
  var T = {
342
361
  attrName: "",
343
362
  attrValue: "",
@@ -354,7 +373,7 @@ function pt() {
354
373
  }
355
374
  F && (a = b(a, pe, " "), a = b(a, de, " "), a = b(a, ve, " "));
356
375
  var it = p(e.nodeName);
357
- if (!!rt(it, u, a)) {
376
+ if (rt(it, u, a)) {
358
377
  if (je && (u === "id" || u === "name") && (Ne(d, e), a = Nt + a), g && C(q) === "object" && typeof q.getAttributeType == "function" && !De)
359
378
  switch (q.getAttributeType(it, u)) {
360
379
  case "TrustedHTML":
@@ -405,7 +424,8 @@ function pt() {
405
424
  } else if (i instanceof L)
406
425
  t = Qe("<!---->"), a = t.ownerDocument.importNode(i, !0), a.nodeType === 1 && a.nodeName === "BODY" || a.nodeName === "HTML" ? t = a : t.appendChild(a);
407
426
  else {
408
- if (!U && !F && !x && i.indexOf("<") === -1)
427
+ if (!U && !F && !x && // eslint-disable-next-line unicorn/prefer-includes
428
+ i.indexOf("<") === -1)
409
429
  return g && Q ? g.createHTML(i) : i;
410
430
  if (t = Qe(i), !t)
411
431
  return U ? null : Q ? ce : "";