css-has-pseudo 4.0.2 → 5.0.1

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.
package/CHANGELOG.md CHANGED
@@ -1,8 +1,18 @@
1
1
  # Changes to CSS Has Pseudo
2
2
 
3
+ ### 5.0.1 (January 28, 2023)
4
+
5
+ - Improve `types` declaration in `package.json`
6
+
7
+ ### 5.0.0 (January 24, 2023)
8
+
9
+ - Updated: Support for Node v14+ (major).
10
+ - Fix: Do not throw when a selector is invalid, show a warning instead.
11
+ - Fix: make `:has()` unforgiving. `:has(.foo, :some-invalid-selector)` will no longer match elements that have children with `.foo`.
12
+
3
13
  ### 4.0.2 (December 12, 2022)
4
14
 
5
- - Fix: correctly cleanup style rules when a browser has native support.
15
+ - Fix: correctly cleanup style rules when a browser has native support. [backported](https://github.com/csstools/postcss-plugins/pull/752)
6
16
 
7
17
  ### 4.0.1 (August 23, 2022)
8
18
 
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # PostCSS Has Pseudo [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][postcss]
1
+ # PostCSS Has Pseudo [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][PostCSS]
2
2
 
3
3
  [<img alt="npm version" src="https://img.shields.io/npm/v/css-has-pseudo.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/has-pseudo-class.svg" height="20">][css-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
4
4
 
@@ -41,8 +41,13 @@ postcss([
41
41
  [PostCSS Has Pseudo] runs in all Node environments, with special
42
42
  instructions for:
43
43
 
44
- | [Node](INSTALL.md#node) | [PostCSS CLI](INSTALL.md#postcss-cli) | [Webpack](INSTALL.md#webpack) | [Create React App](INSTALL.md#create-react-app) | [Gulp](INSTALL.md#gulp) | [Grunt](INSTALL.md#grunt) |
45
- | --- | --- | --- | --- | --- | --- |
44
+ - [Node](INSTALL.md#node)
45
+ - [PostCSS CLI](INSTALL.md#postcss-cli)
46
+ - [PostCSS Load Config](INSTALL.md#postcss-load-config)
47
+ - [Webpack](INSTALL.md#webpack)
48
+ - [Next.js](INSTALL.md#nextjs)
49
+ - [Gulp](INSTALL.md#gulp)
50
+ - [Grunt](INSTALL.md#grunt)
46
51
 
47
52
  ## Options
48
53
 
@@ -69,7 +74,7 @@ postcssHasPseudo({ preserve: false })
69
74
 
70
75
  ### specificityMatchingName
71
76
 
72
- The `specificityMatchingName` option allows you to change to selector that is used to adjust specificity.
77
+ The `specificityMatchingName` option allows you to change the selector that is used to adjust specificity.
73
78
  The default value is `does-not-exist`.
74
79
  If this is an actual class, id or tag name in your code, you will need to set a different option here.
75
80
 
@@ -143,11 +148,11 @@ or
143
148
 
144
149
  ```html
145
150
  <!-- When using a CDN url you will have to manually update the version number -->
146
- <script src="https://unpkg.com/css-has-pseudo@4.0.1/dist/browser-global.js"></script>
151
+ <script src="https://unpkg.com/css-has-pseudo@5.0.1/dist/browser-global.js"></script>
147
152
  <script>cssHasPseudo(document)</script>
148
153
  ```
149
154
 
150
- ⚠️ Please use a versioned url, like this : `https://unpkg.com/css-has-pseudo@4.0.1/dist/browser-global.js`
155
+ ⚠️ Please use a versioned url, like this : `https://unpkg.com/css-has-pseudo@5.0.1/dist/browser-global.js`
151
156
  Without the version, you might unexpectedly get a new major version of the library with breaking changes.
152
157
 
153
158
  [PostCSS Has Pseudo] works in all major browsers, including
@@ -192,7 +197,6 @@ By default the polyfill will not emit errors or warnings.
192
197
  cssHasPseudo(document, { debug: true });
193
198
  ```
194
199
 
195
-
196
200
  ### Browser Dependencies
197
201
 
198
202
  Web API's:
@@ -265,6 +269,21 @@ HTML might look like this :
265
269
  ```
266
270
 
267
271
 
272
+ ### Using with Next.js
273
+
274
+ Given that Next.js imports packages both on the browser and on the server, you need to make sure that the package is only imported on the browser.
275
+
276
+ As outlined in the [Next.js documentation](https://nextjs.org/docs/advanced-features/dynamic-import#with-external-libraries), you need to load the package with a dynamic import:
277
+
278
+ ```jsx
279
+ useEffect(async () => {
280
+ const cssHasPseudo = (await import('css-has-pseudo/browser')).default;
281
+ cssHasPseudo(document);
282
+ }, []);
283
+ ```
284
+
285
+ We recommend you load the polyfill as high up on your Next application as possible, such as your `pages/_app.ts` file.
286
+
268
287
  ## How it works
269
288
 
270
289
  The [PostCSS Has Pseudo] clones rules containing `:has()`,
@@ -300,9 +319,6 @@ elements otherwise matching `:has` natively.
300
319
  [discord]: https://discord.gg/bUadyRwkJS
301
320
  [npm-url]: https://www.npmjs.com/package/css-has-pseudo
302
321
 
303
- [Gulp PostCSS]: https://github.com/postcss/gulp-postcss
304
- [Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss
305
322
  [PostCSS]: https://github.com/postcss/postcss
306
- [PostCSS Loader]: https://github.com/postcss/postcss-loader
307
323
  [PostCSS Has Pseudo]: https://github.com/csstools/postcss-plugins/tree/main/plugins/css-has-pseudo
308
324
  [Selectors Level 4]: https://www.w3.org/TR/selectors-4/#has-pseudo
@@ -1,2 +1,2 @@
1
- !function(){function e(e){if("csstools-has-"!==e.slice(0,13))return"";for(var t=(e=e.slice(13)).split("-"),r="",n=0;n<t.length;n++)r+=String.fromCharCode(parseInt(t[n],36));return r}function t(e){if(""===e)return"";for(var t,r="",n=0;n<e.length;n++)t=e.charCodeAt(n).toString(36),r+=0===n?t:"-"+t;return"csstools-has-"+r}function r(r,n){n||(n={}),(n={hover:!!n.hover||!1,debug:!!n.debug||!1,observedAttributes:n.observedAttributes||[],forcePolyfill:!!n.forcePolyfill||!1}).mustPolyfill=n.forcePolyfill||!function(){try{if(!("CSS"in self)||!("supports"in self.CSS)||!self.CSS.supports("selector(:has(div))"))return!1}catch(e){return!1}return!0}(),Array.isArray(n.observedAttributes)||(n.observedAttributes=[]),n.observedAttributes=n.observedAttributes.filter((function(e){return"string"==typeof e})),n.observedAttributes=n.observedAttributes.concat(["accept","accept-charset","accesskey","action","align","allow","alt","async","autocapitalize","autocomplete","autofocus","autoplay","buffered","capture","challenge","charset","checked","cite","class","code","codebase","cols","colspan","content","contenteditable","contextmenu","controls","coords","crossorigin","csp","data","datetime","decoding","default","defer","dir","dirname","disabled","download","draggable","enctype","enterkeyhint","for","form","formaction","formenctype","formmethod","formnovalidate","formtarget","headers","hidden","high","href","hreflang","http-equiv","icon","id","importance","integrity","intrinsicsize","inputmode","ismap","itemprop","keytype","kind","label","lang","language","list","loop","low","manifest","max","maxlength","minlength","media","method","min","multiple","muted","name","novalidate","open","optimum","pattern","ping","placeholder","poster","preload","radiogroup","readonly","referrerpolicy","rel","required","reversed","rows","rowspan","sandbox","scope","scoped","selected","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","summary","tabindex","target","title","translate","type","usemap","value","width","wrap"]);var o=[],i=r.createElement("x");if([].forEach.call(r.styleSheets,u),n.mustPolyfill){if(a(),"MutationObserver"in self)new MutationObserver((function(e){e.forEach((function(e){[].forEach.call(e.addedNodes||[],(function(e){1===e.nodeType&&e.sheet&&u(e.sheet)})),[].push.apply(o,o.splice(0).filter((function(e){return e.rule.parentStyleSheet&&e.rule.parentStyleSheet.ownerNode&&r.documentElement.contains(e.rule.parentStyleSheet.ownerNode)}))),a()}))})).observe(r,{childList:!0,subtree:!0,attributes:!0,attributeFilter:n.observedAttributes});if(r.addEventListener("focus",a,!0),r.addEventListener("blur",a,!0),r.addEventListener("input",a),r.addEventListener("change",a,!0),n.hover&&("onpointerenter"in r?(r.addEventListener("pointerenter",a,!0),r.addEventListener("pointerleave",a,!0)):(r.addEventListener("mouseover",a,!0),r.addEventListener("mouseout",a,!0))),"defineProperty"in Object&&"getOwnPropertyDescriptor"in Object&&"hasOwnProperty"in Object)try{var s=function(e,t){if(e.hasOwnProperty(t)){var r=Object.getOwnPropertyDescriptor(e,t);r&&r.configurable&&"set"in r&&Object.defineProperty(e,t,{configurable:r.configurable,enumerable:r.enumerable,get:function(){return r.get.apply(this,arguments)},set:function(){r.set.apply(this,arguments);try{a()}catch(e){}}})}};"HTMLElement"in self&&HTMLElement.prototype&&s(HTMLElement.prototype,"disabled"),["checked","selected","readOnly","required"].forEach((function(e){["HTMLButtonElement","HTMLFieldSetElement","HTMLInputElement","HTMLMeterElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOutputElement","HTMLProgressElement","HTMLSelectElement","HTMLTextAreaElement"].forEach((function(t){t in self&&self[t].prototype&&s(self[t].prototype,e)}))}))}catch(e){n.debug&&console.error(e)}var c=!1}function a(){c&&cancelAnimationFrame(c),c=requestAnimationFrame((function(){o.forEach((function(e){var t=[],o=[];try{o=r.querySelectorAll(e.selector)}catch(e){return void(n.debug&&console.error(e))}[].forEach.call(o,(function(n){t.push(n),i.innerHTML="<x "+e.attributeName+">",n.setAttributeNode(i.children[0].attributes[0].cloneNode()),r.documentElement.style.zoom=1,r.documentElement.style.zoom=null})),e.nodes.forEach((function(n){-1===t.indexOf(n)&&(n.removeAttribute(e.attributeName),r.documentElement.style.zoom=1,r.documentElement.style.zoom=null)})),e.nodes=t}))}))}function u(r){try{[].forEach.call(r.cssRules||[],(function(i,s){if(i.selectorText){i.selectorText=i.selectorText.replace(/\.js-has-pseudo\s/g,"");try{var c=function(t){for(var r,n,o=[],i=0,s=!1,c=!1,a=0;a<t.length;a++){var u=t[a];switch(u){case"[":if(s){r+=u;continue}0===i?r="":r+=u,i++;continue;case"]":if(s){r+=u;continue}if(0==--i){var l=e(r);c&&o.push(l)}else r+=u;continue;case"\\":r+=t[a],r+=t[a+1],a++;continue;case'"':case"'":if(s&&u===n){s=!1;continue}if(s){r+=u;continue}s=!0,n=u;continue;default:""===r&&1===i&&"csstools-has-"===t.slice(a,a+13)&&(c=!0),r+=u;continue}}for(var f=[],p=0;p<o.length;p++)-1===f.indexOf(o[p])&&f.push(o[p]);return f}(i.selectorText.toString());if(0===c.length)return;if(!n.mustPolyfill)return void r.deleteRule(s);for(var a=0;a<c.length;a++){var l=c[a];o.push({rule:i,selector:l,attributeName:t(l),nodes:[]})}}catch(e){n.debug&&console.error(e)}}else u(i)}))}catch(e){n.debug&&console.error(e)}}}!function(e){try{if(e.document.querySelector(":has(*, :does-not-exist, > *)"),e.document.querySelector(":has(:has(any))"),!e.document.querySelector(":has(:scope *)"))return}catch(e){}var t=d(e.Element.prototype.querySelector);e.Element.prototype.querySelector=function(e){return t.apply(this,arguments)};var r=d(e.Element.prototype.querySelectorAll);if(e.Element.prototype.querySelectorAll=function(e){return r.apply(this,arguments)},e.Element.prototype.matches){var n=d(e.Element.prototype.matches);e.Element.prototype.matches=function(e){return n.apply(this,arguments)}}if(e.Element.prototype.closest){var o=d(e.Element.prototype.closest);e.Element.prototype.closest=function(e){return o.apply(this,arguments)}}if("Document"in e&&"prototype"in e.Document){var i=d(e.Document.prototype.querySelector);e.Document.prototype.querySelector=function(e){return i.apply(this,arguments)};var s=d(e.Document.prototype.querySelectorAll);if(e.Document.prototype.querySelectorAll=function(e){return s.apply(this,arguments)},e.Document.prototype.matches){var c=d(e.Document.prototype.matches);e.Document.prototype.matches=function(e){return c.apply(this,arguments)}}if(e.Document.prototype.closest){var a=d(e.Document.prototype.closest);e.Document.prototype.closest=function(e){return a.apply(this,arguments)}}}function u(e){for(var t="",r=0,n=0,o=!1,i=!1,s=!1,c=!1,a=0;a<e.length;a++){var u=e[a];if(o)t+=u,o=!1;else if(i)u===s&&(i=!1),t+=u;else switch(":has("!==t.toLowerCase()||c||(c=!0,r=a,t=""),u){case":":c||(t=""),t+=u;continue;case"(":c&&n++,t+=u;continue;case")":if(c){if(0===n)return{innerQuery:t,start:r,end:a-1};n--}t+=u;continue;case"\\":t+=u,o=!0;continue;case'"':case"'":t+=u,i=!0,s=u;continue;default:t+=u;continue}}return!1}function l(e,t){for(var r=[],n="",o=!1,i=!1,s=!1,c=0,a=0;a<e.length;a++){var u=e[a];if(o)n+=u,o=!1;else if(i)u===s&&(i=!1),n+=u;else switch(":scope"===n.toLowerCase()&&!c&&/^[\[\.\:\\"\s|+>~#&,)]/.test(u||"")&&(r.push(n.slice(0,n.length-6)),r.push("["+t+"]"),n=""),u){case":":r.push(n),n="",n+=u;continue;case"\\":n+=u,o=!0;continue;case'"':case"'":n+=u,i=!0,s=u;continue;case"[":n+=u,c++;continue;case"]":n+=u,c>0&&c--;continue;default:n+=u;continue}}return":scope"===n.toLowerCase()&&(r.push(n.slice(0,n.length-6)),r.push("["+t+"]"),n=""),0===r.length?e:r.join("")+n}function f(e){for(var t,r,n=[],o="",i=!1,s=!1,c=!1,a=!1,u=0,l=0;l<e.length;l++){var f=e[l];if(i)o+=f,i=!1;else switch(f){case",":if(s){o+=f;continue}if(u>0){o+=f;continue}n.push(o),o="";continue;case"\\":o+=f,i=!0;continue;case'"':case"'":if(s&&f===c){o+=f,s=!1;continue}o+=f,s=!0,c=f;continue;case"(":case")":case"[":case"]":if(s){o+=f;continue}if(t=f,"("===(r=a)&&")"===t||"["===r&&"]"===t){o+=f,0===--u&&(a=!1);continue}if(f===a){o+=f,u++;continue}o+=f,u++,a=f;continue;default:o+=f;continue}}return n.push(o),n}function p(e,t,r){var n=u(e);if(!n)return e;if(t)return!1;var o=n.innerQuery,i="q-has"+(Math.floor(9e6*Math.random())+1e6),s="["+i+"]",c=e;if(n.innerQuery.toLowerCase().indexOf(":has(")>-1){for(var a=f(n.innerQuery),l=[],h=0;h<a.length;h++){var d=a[h];p(d,!0,(function(){}))?l.push(d):l.push(":not(*)")}var m=c.substring(0,n.start-5),y=c.substring(n.end+2);return m+l.join(", ")+y}m=c.substring(0,n.start-5),y=c.substring(n.end+2);if(c=m+s+y,r(o,i),c.toLowerCase().indexOf(":has(")>-1){var v=p(c,!1,r);if(v)return v}return c}function h(e,t){if("setAttribute"in e&&"querySelector"in e&&t(e),e.hasChildNodes())for(var r=e.childNodes,n=0;n<r.length;++n)h(r[n],t)}function d(t){return function(r){if(-1===r.toLowerCase().indexOf(":has(")||!u(r))return t.apply(this,arguments);var n;if("getRootNode"in this)n=this.getRootNode();else for(var o=this;o;)n=o,o=o.parentNode;var i=this;i===e.document&&(i=e.document.documentElement);var s="q-has-scope"+(Math.floor(9e6*Math.random())+1e6);i.setAttribute(s,"");try{r=l(r,s);var c=[s],a=p(r,!1,(function(e,t){c.push(t);for(var r=f(e),o=0;o<r.length;o++){var i=r[o].trim(),s=i;s=">"===i[0]||"+"===i[0]||"~"===i[0]?i.slice(1).trim():":scope "+i;try{h(n,(function(e){if(e.querySelector(s))switch(i[0]){case"~":case"+":for(var r=e.childNodes,n=0;n<r.length;n++){var o=r[n];if("setAttribute"in o){var c="q-has-id"+(Math.floor(9e6*Math.random())+1e6);o.setAttribute(c,""),e.querySelector(":scope ["+c+"] "+i)&&o.setAttribute(t,""),o.removeAttribute(c)}}break;case">":c="q-has-id"+(Math.floor(9e6*Math.random())+1e6);e.setAttribute(c,""),e.querySelector(":scope["+c+"] "+i)&&e.setAttribute(t,""),e.removeAttribute(c);break;default:e.setAttribute(t,"")}}))}catch(e){}}}));arguments[0]=a;var d=t.apply(this,arguments);if(i.removeAttribute(s),c.length>0){for(var m=[],y=0;y<c.length;y++)m.push("["+c[y]+"]");for(var v=e.document.querySelectorAll(m.join(",")),b=0;b<v.length;b++)for(var g=v[b],E=0;E<c.length;E++)g.removeAttribute(c[E])}return d}catch(t){if(i.removeAttribute(s),c.length>0){for(m=[],y=0;y<c.length;y++)m.push("["+c[y]+"]");for(v=e.document.querySelectorAll(m.join(",")),b=0;b<v.length;b++)for(g=v[b],E=0;E<c.length;E++)g.removeAttribute(c[E])}throw t}}}}(self),("object"==typeof window&&window||"object"==typeof self&&self||{}).cssHasPseudo=r}();
1
+ !function(){function decodeCSS(e){if("csstools-has-"!==e.slice(0,13))return"";for(var t=(e=e.slice(13)).split("-"),r="",o=0;o<t.length;o++)r+=String.fromCharCode(parseInt(t[o],36));return r}function extractEncodedSelectors(e){for(var t,r,o=[],n=0,s=!1,l=!1,i=0;i<e.length;i++){var c=e[i];switch(c){case"[":if(s){t+=c;continue}0===n?t="":t+=c,n++;continue;case"]":if(s){t+=c;continue}if(0===--n){var a=decodeCSS(t);l&&o.push(a)}else t+=c;continue;case"\\":t+=e[i],t+=e[i+1],i++;continue;case'"':case"'":if(s&&c===r){s=!1;continue}if(s){t+=c;continue}s=!0,r=c;continue;default:""===t&&1===n&&"csstools-has-"===e.slice(i,i+13)&&(l=!0),t+=c;continue}}for(var u=[],p=0;p<o.length;p++)-1===u.indexOf(o[p])&&u.push(o[p]);return u}function encodeCSS(e){if(""===e)return"";for(var t,r="",o=0;o<e.length;o++)t=e.charCodeAt(o).toString(36),r+=0===o?t:"-"+t;return"csstools-has-"+r}function hasNativeSupport(){try{if(!("CSS"in self)||!("supports"in self.CSS)||!self.CSS.supports("selector(:has(div))"))return!1}catch(e){return!1}return!0}function cssHasPseudo(e,t){t||(t={}),(t={hover:!!t.hover||!1,debug:!!t.debug||!1,observedAttributes:t.observedAttributes||[],forcePolyfill:!!t.forcePolyfill||!1}).mustPolyfill=t.forcePolyfill||!hasNativeSupport(),Array.isArray(t.observedAttributes)||(t.observedAttributes=[]),t.observedAttributes=t.observedAttributes.filter((function(e){return"string"==typeof e})),t.observedAttributes=t.observedAttributes.concat(["accept","accept-charset","accesskey","action","align","allow","alt","async","autocapitalize","autocomplete","autofocus","autoplay","buffered","capture","challenge","charset","checked","cite","class","code","codebase","cols","colspan","content","contenteditable","contextmenu","controls","coords","crossorigin","csp","data","datetime","decoding","default","defer","dir","dirname","disabled","download","draggable","enctype","enterkeyhint","for","form","formaction","formenctype","formmethod","formnovalidate","formtarget","headers","hidden","high","href","hreflang","http-equiv","icon","id","importance","integrity","intrinsicsize","inputmode","ismap","itemprop","keytype","kind","label","lang","language","list","loop","low","manifest","max","maxlength","minlength","media","method","min","multiple","muted","name","novalidate","open","optimum","pattern","ping","placeholder","poster","preload","radiogroup","readonly","referrerpolicy","rel","required","reversed","rows","rowspan","sandbox","scope","scoped","selected","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","summary","tabindex","target","title","translate","type","usemap","value","width","wrap"]);var r=[],o=e.createElement("x");if([].forEach.call(e.styleSheets,walkStyleSheet),t.mustPolyfill){if(transformObservedItemsThrottled(),"MutationObserver"in self)new MutationObserver((function(t){t.forEach((function(t){[].forEach.call(t.addedNodes||[],(function(e){1===e.nodeType&&e.sheet&&walkStyleSheet(e.sheet)})),[].push.apply(r,r.splice(0).filter((function(t){return t.rule.parentStyleSheet&&t.rule.parentStyleSheet.ownerNode&&e.documentElement.contains(t.rule.parentStyleSheet.ownerNode)}))),transformObservedItemsThrottled()}))})).observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:t.observedAttributes});if(e.addEventListener("focus",transformObservedItemsThrottled,!0),e.addEventListener("blur",transformObservedItemsThrottled,!0),e.addEventListener("input",transformObservedItemsThrottled),e.addEventListener("change",transformObservedItemsThrottled,!0),t.hover&&("onpointerenter"in e?(e.addEventListener("pointerenter",transformObservedItemsThrottled,!0),e.addEventListener("pointerleave",transformObservedItemsThrottled,!0)):(e.addEventListener("mouseover",transformObservedItemsThrottled,!0),e.addEventListener("mouseout",transformObservedItemsThrottled,!0))),"defineProperty"in Object&&"getOwnPropertyDescriptor"in Object&&"hasOwnProperty"in Object)try{var n=function observeProperty(e,t){if(e.hasOwnProperty(t)){var r=Object.getOwnPropertyDescriptor(e,t);r&&r.configurable&&"set"in r&&Object.defineProperty(e,t,{configurable:r.configurable,enumerable:r.enumerable,get:function get(){return r.get.apply(this,arguments)},set:function set(){r.set.apply(this,arguments);try{transformObservedItemsThrottled()}catch(e){}}})}};"HTMLElement"in self&&HTMLElement.prototype&&n(HTMLElement.prototype,"disabled"),["checked","selected","readOnly","required"].forEach((function(e){["HTMLButtonElement","HTMLFieldSetElement","HTMLInputElement","HTMLMeterElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOutputElement","HTMLProgressElement","HTMLSelectElement","HTMLTextAreaElement"].forEach((function(t){t in self&&self[t].prototype&&n(self[t].prototype,e)}))}))}catch(l){t.debug&&console.error(l)}var s=!1}function transformObservedItemsThrottled(){s&&cancelAnimationFrame(s),s=requestAnimationFrame((function(){r.forEach((function(r){var n=[],s=[];try{s=e.querySelectorAll(r.selector)}catch(l){return void(t.debug&&console.error(l))}[].forEach.call(s,(function(t){n.push(t),o.innerHTML="<x "+r.attributeName+">",t.setAttributeNode(o.children[0].attributes[0].cloneNode()),e.documentElement.style.zoom=1,e.documentElement.style.zoom=null})),r.nodes.forEach((function(t){-1===n.indexOf(t)&&(t.removeAttribute(r.attributeName),e.documentElement.style.zoom=1,e.documentElement.style.zoom=null)})),r.nodes=n}))}))}function walkStyleSheet(e){try{[].forEach.call(e.cssRules||[],(function(o,n){if(o.selectorText){o.selectorText=o.selectorText.replace(/\.js-has-pseudo\s/g,"");try{var s=extractEncodedSelectors(o.selectorText.toString());if(0===s.length)return;if(!t.mustPolyfill)return void e.deleteRule(n);for(var i=0;i<s.length;i++){var c=s[i];r.push({rule:o,selector:c,attributeName:encodeCSS(c),nodes:[]})}}catch(l){t.debug&&console.error(l)}}else walkStyleSheet(o)}))}catch(l){t.debug&&console.error(l)}}}!function(e){try{if(e.document.querySelector(":has(*, :does-not-exist, > *)"),!e.document.querySelector(":has(:scope *)")&&CSS.supports("selector(:has(div))"))return}catch(a){}var t=polyfill(e.Element.prototype.querySelector);e.Element.prototype.querySelector=function querySelector(e){return t.apply(this,arguments)};var r=polyfill(e.Element.prototype.querySelectorAll);if(e.Element.prototype.querySelectorAll=function querySelectorAll(e){return r.apply(this,arguments)},e.Element.prototype.matches){var o=polyfill(e.Element.prototype.matches);e.Element.prototype.matches=function matches(e){return o.apply(this,arguments)}}if(e.Element.prototype.closest){var n=polyfill(e.Element.prototype.closest);e.Element.prototype.closest=function closest(e){return n.apply(this,arguments)}}if("Document"in e&&"prototype"in e.Document){var s=polyfill(e.Document.prototype.querySelector);e.Document.prototype.querySelector=function querySelector(e){return s.apply(this,arguments)};var l=polyfill(e.Document.prototype.querySelectorAll);if(e.Document.prototype.querySelectorAll=function querySelectorAll(e){return l.apply(this,arguments)},e.Document.prototype.matches){var i=polyfill(e.Document.prototype.matches);e.Document.prototype.matches=function matches(e){return i.apply(this,arguments)}}if(e.Document.prototype.closest){var c=polyfill(e.Document.prototype.closest);e.Document.prototype.closest=function closest(e){return c.apply(this,arguments)}}}function pseudoClassHasInnerQuery(e){for(var t="",r=0,o=0,n=!1,s=!1,l=!1,i=!1,c=0;c<e.length;c++){var a=e[c];if(n)t+=a,n=!1;else if(s)a===l&&(s=!1),t+=a;else switch(":has("!==t.toLowerCase()||i||(i=!0,r=c,t=""),a){case":":i||(t=""),t+=a;continue;case"(":i&&o++,t+=a;continue;case")":if(i){if(0===o)return{innerQuery:t,start:r,end:c-1};o--}t+=a;continue;case"\\":t+=a,n=!0;continue;case'"':case"'":t+=a,s=!0,l=a;continue;default:t+=a;continue}}return!1}function replaceScopeWithAttr(e,t){for(var r=[],o="",n=!1,s=!1,l=!1,i=0,c=0;c<e.length;c++){var a=e[c];if(n)o+=a,n=!1;else if(s)a===l&&(s=!1),o+=a;else switch(":scope"===o.toLowerCase()&&!i&&/^[\[\.\:\\"\s|+>~#&,)]/.test(a||"")&&(r.push(o.slice(0,o.length-6)),r.push("["+t+"]"),o=""),a){case":":r.push(o),o="",o+=a;continue;case"\\":o+=a,n=!0;continue;case'"':case"'":o+=a,s=!0,l=a;continue;case"[":o+=a,i++;continue;case"]":o+=a,i>0&&i--;continue;default:o+=a;continue}}return":scope"===o.toLowerCase()&&(r.push(o.slice(0,o.length-6)),r.push("["+t+"]"),o=""),0===r.length?e:r.join("")+o}function splitSelector(e){for(var t,r,o=[],n="",s=!1,l=!1,i=!1,c=!1,a=0,u=0;u<e.length;u++){var p=e[u];if(s)n+=p,s=!1;else switch(p){case",":if(l){n+=p;continue}if(a>0){n+=p;continue}o.push(n),n="";continue;case"\\":n+=p,s=!0;continue;case'"':case"'":if(l&&p===i){n+=p,l=!1;continue}n+=p,l=!0,i=p;continue;case"(":case")":case"[":case"]":if(l){n+=p;continue}if(t=p,"("===(r=c)&&")"===t||"["===r&&"]"===t){n+=p,0===--a&&(c=!1);continue}if(p===c){n+=p,a++;continue}n+=p,a++,c=p;continue;default:n+=p;continue}}return o.push(n),o}function replaceAllWithTempAttr(e,t,r){var o=pseudoClassHasInnerQuery(e);if(!o)return e;if(t)return!1;var n=o.innerQuery,s="q-has"+(Math.floor(9e6*Math.random())+1e6),l="["+s+"]",i=e;if(o.innerQuery.toLowerCase().indexOf(":has(")>-1){for(var c=splitSelector(o.innerQuery),a=[],u=0;u<c.length;u++){var p=c[u];if(!replaceAllWithTempAttr(p,!0,(function(){})))throw new Error("Nested :has() is not supported");a.push(p)}var f=i.substring(0,o.start-5),d=i.substring(o.end+2);return f+a.join(", ")+d}f=i.substring(0,o.start-5),d=i.substring(o.end+2);if(i=f+l+d,r(n,s),i.toLowerCase().indexOf(":has(")>-1){var h=replaceAllWithTempAttr(i,!1,r);if(h)return h}return i}function walkNode(e,t){if("setAttribute"in e&&"querySelector"in e&&t(e),e.hasChildNodes())for(var r=e.childNodes,o=0;o<r.length;++o)walkNode(r[o],t)}function polyfill(t){return function(r){if(-1===r.toLowerCase().indexOf(":has(")||!pseudoClassHasInnerQuery(r))return t.apply(this,arguments);var o;if("getRootNode"in this)o=this.getRootNode();else for(var n=this;n;)o=n,n=n.parentNode;var s=this;s===e.document&&(s=e.document.documentElement);var l="q-has-scope"+(Math.floor(9e6*Math.random())+1e6);s.setAttribute(l,"");try{r=replaceScopeWithAttr(r,l);var i=[l],c=replaceAllWithTempAttr(r,!1,(function(e,t){i.push(t);for(var r=splitSelector(e),n=0;n<r.length;n++){var s=r[n].trim(),l=s;l=">"===s[0]||"+"===s[0]||"~"===s[0]?s.slice(1).trim():":scope "+s,walkNode(o,(function(e){if(e.querySelector(l))switch(s[0]){case"~":case"+":for(var r=e.childNodes,o=0;o<r.length;o++){var n=r[o];if("setAttribute"in n){var i="q-has-id"+(Math.floor(9e6*Math.random())+1e6);n.setAttribute(i,""),e.querySelector(":scope ["+i+"] "+s)&&n.setAttribute(t,""),n.removeAttribute(i)}}break;case">":i="q-has-id"+(Math.floor(9e6*Math.random())+1e6);e.setAttribute(i,""),e.querySelector(":scope["+i+"] "+s)&&e.setAttribute(t,""),e.removeAttribute(i);break;default:e.setAttribute(t,"")}}))}}));arguments[0]=c;var u=t.apply(this,arguments);if(s.removeAttribute(l),i.length>0){for(var p=[],f=0;f<i.length;f++)p.push("["+i[f]+"]");for(var d=e.document.querySelectorAll(p.join(",")),h=0;h<d.length;h++)for(var m=d[h],y=0;y<i.length;y++)m.removeAttribute(i[y])}return u}catch(b){if(s.removeAttribute(l),i.length>0){for(p=[],f=0;f<i.length;f++)p.push("["+i[f]+"]");for(d=e.document.querySelectorAll(p.join(",")),h=0;h<d.length;h++)for(m=d[h],y=0;y<i.length;y++)m.removeAttribute(i[y])}var v="";try{t.apply(this,[":core-web-does-not-exist"])}catch(g){v=g.message,v&&(v=v.replace(":core-web-does-not-exist",r))}v||(v="Failed to execute 'querySelector' on 'Document': '"+r+"' is not a valid selector.");try{throw new DOMException(v)}catch(a){throw new Error(v)}}}}}(self),("object"==typeof window&&window||"object"==typeof self&&self||{}).cssHasPseudo=cssHasPseudo}();
2
2
  //# sourceMappingURL=browser-global.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-global.js","sources":["../src/encode/decode.mjs","../src/encode/encode.mjs","../src/browser.js","../src/encode/extract.mjs","../../../node_modules/@mrhenry/core-web/modules/~element-qsa-has.js","../src/browser-global.js"],"sourcesContent":["\n/** Decodes an identifier back into a CSS selector */\nexport default function decodeCSS(value) {\n\tif (value.slice(0, 13) !== 'csstools-has-') {\n\t\treturn '';\n\t}\n\n\tvalue = value.slice(13);\n\tlet values = value.split('-');\n\n\tlet result = '';\n\tfor (let i = 0; i < values.length; i++) {\n\t\tresult += String.fromCharCode(parseInt(values[i], 36));\n\t}\n\n\treturn result;\n}\n","\n/** Returns the string as an encoded CSS identifier. */\nexport default function encodeCSS(value) {\n\tif (value === '') {\n\t\treturn '';\n\t}\n\n\tlet hex;\n\tlet result = '';\n\tfor (let i = 0; i < value.length; i++) {\n\t\thex = value.charCodeAt(i).toString(36);\n\t\tif (i === 0) {\n\t\t\tresult += hex;\n\t\t} else {\n\t\t\tresult += '-' + hex;\n\t\t}\n\t}\n\n\treturn 'csstools-has-' + result;\n}\n","/* global MutationObserver,requestAnimationFrame,cancelAnimationFrame,self,HTMLElement */\n\nimport '@mrhenry/core-web/modules/~element-qsa-has.js';\nimport extractEncodedSelectors from './encode/extract.mjs';\nimport encodeCSS from './encode/encode.mjs';\n\nfunction hasNativeSupport() {\n\ttry {\n\t\tif (!('CSS' in self) || !('supports' in self.CSS) || !self.CSS.supports('selector(:has(div))')) {\n\t\t\treturn false;\n\t\t}\n\n\t} catch (_) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\nexport default function cssHasPseudo(document, options) {\n\t// OPTIONS\n\t{\n\t\tif (!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\toptions = {\n\t\t\thover: (!!options.hover) || false,\n\t\t\tdebug: (!!options.debug) || false,\n\t\t\tobservedAttributes: options.observedAttributes || [],\n\t\t\tforcePolyfill: (!!options.forcePolyfill) || false,\n\t\t};\n\n\t\toptions.mustPolyfill = options.forcePolyfill || !hasNativeSupport();\n\n\t\tif (!Array.isArray(options.observedAttributes)) {\n\t\t\toptions.observedAttributes = [];\n\t\t}\n\n\t\toptions.observedAttributes = options.observedAttributes.filter((x) => {\n\t\t\treturn (typeof x === 'string');\n\t\t});\n\n\t\t// https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n\t\t// `data-*` and `style` were omitted\n\t\toptions.observedAttributes = options.observedAttributes.concat(['accept', 'accept-charset', 'accesskey', 'action', 'align', 'allow', 'alt', 'async', 'autocapitalize', 'autocomplete', 'autofocus', 'autoplay', 'buffered', 'capture', 'challenge', 'charset', 'checked', 'cite', 'class', 'code', 'codebase', 'cols', 'colspan', 'content', 'contenteditable', 'contextmenu', 'controls', 'coords', 'crossorigin', 'csp', 'data', 'datetime', 'decoding', 'default', 'defer', 'dir', 'dirname', 'disabled', 'download', 'draggable', 'enctype', 'enterkeyhint', 'for', 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'headers', 'hidden', 'high', 'href', 'hreflang', 'http-equiv', 'icon', 'id', 'importance', 'integrity', 'intrinsicsize', 'inputmode', 'ismap', 'itemprop', 'keytype', 'kind', 'label', 'lang', 'language', 'list', 'loop', 'low', 'manifest', 'max', 'maxlength', 'minlength', 'media', 'method', 'min', 'multiple', 'muted', 'name', 'novalidate', 'open', 'optimum', 'pattern', 'ping', 'placeholder', 'poster', 'preload', 'radiogroup', 'readonly', 'referrerpolicy', 'rel', 'required', 'reversed', 'rows', 'rowspan', 'sandbox', 'scope', 'scoped', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src', 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'summary', 'tabindex', 'target', 'title', 'translate', 'type', 'usemap', 'value', 'width', 'wrap']);\n\t}\n\n\tconst observedItems = [];\n\n\t// document.createAttribute() doesn't support `:` in the name. innerHTML does\n\tconst attributeElement = document.createElement('x');\n\n\t// walk all stylesheets to collect observed css rules\n\t[].forEach.call(document.styleSheets, walkStyleSheet);\n\tif (!options.mustPolyfill) {\n\t\t// Cleanup of rules will have happened in `walkStyleSheet`\n\t\t// Native support will take over from here\n\t\treturn;\n\t}\n\n\ttransformObservedItemsThrottled();\n\n\t// observe DOM modifications that affect selectors\n\tif ('MutationObserver' in self) {\n\t\tconst mutationObserver = new MutationObserver((mutationsList) => {\n\t\t\tmutationsList.forEach(mutation => {\n\t\t\t\t[].forEach.call(mutation.addedNodes || [], node => {\n\t\t\t\t\t// walk stylesheets to collect observed css rules\n\t\t\t\t\tif (node.nodeType === 1 && node.sheet) {\n\t\t\t\t\t\twalkStyleSheet(node.sheet);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// transform observed css rules\n\t\t\t\tcleanupObservedCssRules();\n\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t});\n\t\t});\n\n\t\tmutationObserver.observe(document, { childList: true, subtree: true, attributes: true, attributeFilter: options.observedAttributes });\n\t}\n\n\t// observe DOM events that affect pseudo-selectors\n\tdocument.addEventListener('focus', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('blur', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('input', transformObservedItemsThrottled);\n\tdocument.addEventListener('change', transformObservedItemsThrottled, true);\n\n\tif (options.hover) {\n\t\tif ('onpointerenter' in document) {\n\t\t\tdocument.addEventListener('pointerenter', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('pointerleave', transformObservedItemsThrottled, true);\n\t\t} else {\n\t\t\tdocument.addEventListener('mouseover', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('mouseout', transformObservedItemsThrottled, true);\n\t\t}\n\t}\n\n\t// observe Javascript setters that effect pseudo-selectors\n\tif ('defineProperty' in Object && 'getOwnPropertyDescriptor' in Object && 'hasOwnProperty' in Object) {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-inner-declarations\n\t\t\tfunction observeProperty(proto, property) {\n\t\t\t\t// eslint-disable-next-line no-prototype-builtins\n\t\t\t\tif (proto.hasOwnProperty(property)) {\n\t\t\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(proto, property);\n\t\t\t\t\tif (descriptor && descriptor.configurable && 'set' in descriptor) {\n\t\t\t\t\t\tObject.defineProperty(proto, property, {\n\t\t\t\t\t\t\tconfigurable: descriptor.configurable,\n\t\t\t\t\t\t\tenumerable: descriptor.enumerable,\n\t\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\t\treturn descriptor.get.apply(this, arguments);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tset: function () {\n\t\t\t\t\t\t\t\tdescriptor.set.apply(this, arguments);\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\t\t// should never happen as there is an inner try/catch\n\t\t\t\t\t\t\t\t\t// but just in case\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ('HTMLElement' in self && HTMLElement.prototype) {\n\t\t\t\tobserveProperty(HTMLElement.prototype, 'disabled');\n\t\t\t}\n\n\t\t\t// Not all of these elements have all of these properties.\n\t\t\t// But the code above checks if they exist first.\n\t\t\t['checked', 'selected', 'readOnly', 'required'].forEach((property) => {\n\t\t\t\t[\n\t\t\t\t\t'HTMLButtonElement',\n\t\t\t\t\t'HTMLFieldSetElement',\n\t\t\t\t\t'HTMLInputElement',\n\t\t\t\t\t'HTMLMeterElement',\n\t\t\t\t\t'HTMLOptGroupElement',\n\t\t\t\t\t'HTMLOptionElement',\n\t\t\t\t\t'HTMLOutputElement',\n\t\t\t\t\t'HTMLProgressElement',\n\t\t\t\t\t'HTMLSelectElement',\n\t\t\t\t\t'HTMLTextAreaElement',\n\t\t\t\t].forEach((elementName) => {\n\t\t\t\t\tif (elementName in self && self[elementName].prototype) {\n\t\t\t\t\t\tobserveProperty(self[elementName].prototype, property);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tlet transformObservedItemsThrottledBusy = false;\n\tfunction transformObservedItemsThrottled() {\n\t\tif (transformObservedItemsThrottledBusy) {\n\t\t\tcancelAnimationFrame(transformObservedItemsThrottledBusy);\n\t\t}\n\n\t\ttransformObservedItemsThrottledBusy = requestAnimationFrame(() => {\n\t\t\ttransformObservedItems();\n\t\t});\n\t}\n\n\t// transform observed css rules\n\tfunction transformObservedItems() {\n\t\tobservedItems.forEach((item) => {\n\t\t\tconst nodes = [];\n\n\t\t\tlet matches = [];\n\t\t\ttry {\n\t\t\t\tmatches = document.querySelectorAll(item.selector);\n\t\t\t} catch (e) {\n\t\t\t\tif (options.debug) {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t[].forEach.call(matches, (element) => {\n\t\t\t\t// memorize the node\n\t\t\t\tnodes.push(element);\n\n\t\t\t\t// set an attribute with an irregular attribute name\n\t\t\t\t// document.createAttribute() doesn't support special characters\n\t\t\t\tattributeElement.innerHTML = '<x ' + item.attributeName + '>';\n\n\t\t\t\telement.setAttributeNode(attributeElement.children[0].attributes[0].cloneNode());\n\n\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t});\n\n\t\t\t// remove the encoded attribute from all nodes that no longer match them\n\t\t\titem.nodes.forEach(node => {\n\t\t\t\tif (nodes.indexOf(node) === -1) {\n\t\t\t\t\tnode.removeAttribute(item.attributeName);\n\n\t\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// update the\n\t\t\titem.nodes = nodes;\n\t\t});\n\t}\n\n\t// remove any observed cssrules that no longer apply\n\tfunction cleanupObservedCssRules() {\n\t\t[].push.apply(\n\t\t\tobservedItems,\n\t\t\tobservedItems.splice(0).filter((item) => {\n\t\t\t\treturn item.rule.parentStyleSheet &&\n\t\t\t\t\titem.rule.parentStyleSheet.ownerNode &&\n\t\t\t\t\tdocument.documentElement.contains(item.rule.parentStyleSheet.ownerNode);\n\t\t\t}),\n\t\t);\n\t}\n\n\t// walk a stylesheet to collect observed css rules\n\tfunction walkStyleSheet(styleSheet) {\n\t\ttry {\n\t\t\t// walk a css rule to collect observed css rules\n\t\t\t[].forEach.call(styleSheet.cssRules || [], (rule, index) => {\n\t\t\t\tif (rule.selectorText) {\n\t\t\t\t\trule.selectorText = rule.selectorText.replace(/\\.js-has-pseudo\\s/g, '');\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// decode the selector text in all browsers to:\n\t\t\t\t\t\tconst hasSelectors = extractEncodedSelectors(rule.selectorText.toString());\n\t\t\t\t\t\tif (hasSelectors.length === 0) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!options.mustPolyfill) {\n\t\t\t\t\t\t\tstyleSheet.deleteRule(index);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (let i = 0; i < hasSelectors.length; i++) {\n\t\t\t\t\t\t\tconst hasSelector = hasSelectors[i];\n\t\t\t\t\t\t\tobservedItems.push({\n\t\t\t\t\t\t\t\trule: rule,\n\t\t\t\t\t\t\t\tselector: hasSelector,\n\t\t\t\t\t\t\t\tattributeName: encodeCSS(hasSelector),\n\t\t\t\t\t\t\t\tnodes: [],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tif (options.debug) {\n\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\twalkStyleSheet(rule);\n\t\t\t\t}\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n}\n","import decodeCSS from './decode.mjs';\n\n/** Extract encoded selectors out of attribute selectors */\nexport default function extractEncodedSelectors(value) {\n\tlet out = [];\n\n\tlet depth = 0;\n\tlet candidate;\n\n\tlet quoted = false;\n\tlet quotedMark;\n\n\tlet containsUnescapedUnquotedHasAtDepth1 = false;\n\n\t// Stryker disable next-line EqualityOperator\n\tfor (let i = 0; i < value.length; i++) {\n\t\tconst char = value[i];\n\n\t\tswitch (char) {\n\t\t\tcase '[':\n\t\t\t\tif (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (depth === 0) {\n\t\t\t\t\tcandidate = '';\n\t\t\t\t} else {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t}\n\n\t\t\t\tdepth++;\n\t\t\t\tcontinue;\n\t\t\tcase ']':\n\t\t\t\tif (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t{\n\t\t\t\t\tdepth--;\n\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\tconst decoded = decodeCSS(candidate);\n\t\t\t\t\t\tif (containsUnescapedUnquotedHasAtDepth1) {\n\t\t\t\t\t\t\tout.push(decoded);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcandidate += char;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\tcase '\\\\':\n\t\t\t\tcandidate += value[i];\n\t\t\t\tcandidate += value[i+1];\n\t\t\t\ti++;\n\t\t\t\tcontinue;\n\n\t\t\tcase '\"':\n\t\t\tcase '\\'':\n\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tquoted = true;\n\t\t\t\tquotedMark = char;\n\t\t\t\tcontinue;\n\n\t\t\tdefault:\n\t\t\t\tif (candidate === '' && depth === 1 && (value.slice(i, i + 13) === 'csstools-has-')) {\n\t\t\t\t\tcontainsUnescapedUnquotedHasAtDepth1 = true;\n\t\t\t\t}\n\n\t\t\t\tcandidate += char;\n\t\t\t\tcontinue;\n\t\t}\n\t}\n\n\tconst unique = [];\n\tfor (let i = 0; i < out.length; i++) {\n\t\tif (unique.indexOf(out[i]) === -1) {\n\t\t\tunique.push(out[i]);\n\t\t}\n\t}\n\n\treturn unique;\n}\n","/* eslint-disable */\n(function (global) {\n\ttry {\n\t\t// test for has support\n\t\tglobal.document.querySelector(':has(*, :does-not-exist, > *)');\n\t\tglobal.document.querySelector(':has(:has(any))');\n\n\t\tif (!global.document.querySelector(':has(:scope *)')) {\n\t\t\treturn;\n\t\t}\n\t} catch (_) { }\n\n\t// ELEMENT\n\t// polyfill Element#querySelector\n\tvar querySelectorWithHasElement = polyfill(global.Element.prototype.querySelector);\n\n\tglobal.Element.prototype.querySelector = function querySelector(selectors) {\n\t\treturn querySelectorWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#querySelectorAll\n\tvar querySelectorAllWithHasElement = polyfill(global.Element.prototype.querySelectorAll);\n\n\tglobal.Element.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\treturn querySelectorAllWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#matches\n\tif (global.Element.prototype.matches) {\n\t\tvar matchesWithHasElement = polyfill(global.Element.prototype.matches);\n\n\t\tglobal.Element.prototype.matches = function matches(selectors) {\n\t\t\treturn matchesWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// polyfill Element#closest\n\tif (global.Element.prototype.closest) {\n\t\tvar closestWithHasElement = polyfill(global.Element.prototype.closest);\n\n\t\tglobal.Element.prototype.closest = function closest(selectors) {\n\t\t\treturn closestWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// DOCUMENT\n\tif ('Document' in global && 'prototype' in global.Document) {\n\t\t// polyfill Document#querySelector\n\t\tvar querySelectorWithHasDocument = polyfill(global.Document.prototype.querySelector);\n\n\t\tglobal.Document.prototype.querySelector = function querySelector(selectors) {\n\t\t\treturn querySelectorWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#querySelectorAll\n\t\tvar querySelectorAllWithHasDocument = polyfill(global.Document.prototype.querySelectorAll);\n\n\t\tglobal.Document.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\t\treturn querySelectorAllWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#matches\n\t\tif (global.Document.prototype.matches) {\n\t\t\tvar matchesWithHasDocument = polyfill(global.Document.prototype.matches);\n\n\t\t\tglobal.Document.prototype.matches = function matches(selectors) {\n\t\t\t\treturn matchesWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\n\t\t// polyfill Document#closest\n\t\tif (global.Document.prototype.closest) {\n\t\t\tvar closestWithHasDocument = polyfill(global.Document.prototype.closest);\n\n\t\t\tglobal.Document.prototype.closest = function closest(selectors) {\n\t\t\t\treturn closestWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction pseudoClassHasInnerQuery(query) {\n\t\tvar current = '';\n\t\tvar start = 0;\n\t\tvar depth = 0;\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar inHas = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':has(' && !inHas) {\n\t\t\t\tinHas = true;\n\t\t\t\tstart = i;\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tif (!inHas) {\n\t\t\t\t\t\tcurrent = '';\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tdepth++;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase ')':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tinnerQuery: current,\n\t\t\t\t\t\t\t\tstart: start,\n\t\t\t\t\t\t\t\tend: i-1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdepth--;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction replaceScopeWithAttr(query, attr) {\n\t\tvar parts = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':scope' && !bracketed && (/^[\\[\\.\\:\\\\\"\\s|+>~#&,)]/.test(char || ''))) {\n\t\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\t\tparts.push('[' + attr + ']');\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tparts.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (current.toLowerCase() === ':scope') {\n\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\tparts.push('[' + attr + ']');\n\t\t\tcurrent = '';\n\t\t}\n\n\t\tif (parts.length === 0) {\n\t\t\treturn query;\n\t\t}\n\n\t\treturn parts.join('') + current;\n\t}\n\n\tfunction charIsNestedMarkMirror(char, mark) {\n\t\tif (mark === '(' && char === ')') {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (mark === '[' && char === ']') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction splitSelector(query) {\n\t\tvar selectors = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar nestedMark = false;\n\t\tvar nestedDepth = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ',':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (nestedDepth > 0) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tselectors.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tquoted = false;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\tcase ')':\n\t\t\t\tcase '[':\n\t\t\t\tcase ']':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (charIsNestedMarkMirror(char, nestedMark)) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth--;\n\n\t\t\t\t\t\tif (nestedDepth === 0) {\n\t\t\t\t\t\t\tnestedMark = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (char === nestedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth++;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tnestedDepth++;\n\t\t\t\t\tnestedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t}\n\t\t}\n\n\t\tselectors.push(current);\n\n\t\treturn selectors;\n\t}\n\n\tfunction replaceAllWithTempAttr(query, nested, callback) {\n\t\tvar inner = pseudoClassHasInnerQuery(query);\n\t\tif (!inner) {\n\t\t\treturn query;\n\t\t}\n\n\t\tif (nested) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar innerQuery = inner.innerQuery;\n\t\tvar attr = 'q-has' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\tvar innerReplacement = '[' + attr + ']';\n\n\t\tvar x = query;\n\n\t\tif (inner.innerQuery.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar innerParts = splitSelector(inner.innerQuery);\n\t\t\tvar newInnerParts = [];\n\t\t\tfor (var i = 0; i < innerParts.length; i++) {\n\t\t\t\tvar innerPart = innerParts[i];\n\n\t\t\t\t// Nested has is not supported.\n\t\t\t\t// If a recursive/nested call returns \"false\" we replace with \":not(*)\"\n\t\t\t\tvar innerPartReplaced = replaceAllWithTempAttr(innerPart, true, function () { });\n\t\t\t\tif (!innerPartReplaced) {\n\t\t\t\t\tnewInnerParts.push(':not(*)');\n\t\t\t\t} else {\n\t\t\t\t\tnewInnerParts.push(innerPart);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\t\treturn _prefix + newInnerParts.join(', ') + _suffix;\n\t\t}\n\n\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\tx = _prefix + innerReplacement + _suffix;\n\n\t\tcallback(innerQuery, attr);\n\t\tif (x.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar y = replaceAllWithTempAttr(x, false, callback);\n\t\t\tif (y) {\n\t\t\t\treturn y;\n\t\t\t}\n\t\t}\n\n\t\treturn x;\n\t}\n\n\tfunction walkNode(rootNode, callback) {\n\t\tif (('setAttribute' in (rootNode)) && ('querySelector' in (rootNode))) {\n\t\t\tcallback(rootNode);\n\t\t}\n\n\t\tif (rootNode.hasChildNodes()) {\n\t\t\tvar nodes = rootNode.childNodes;\n\t\t\tfor (var i = 0; i < nodes.length; ++i) {\n\t\t\t\twalkNode(nodes[i], callback);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction polyfill(qsa) {\n\t\treturn function (selectors) {\n\t\t\tif ((selectors.toLowerCase().indexOf(':has(') === -1) || !pseudoClassHasInnerQuery(selectors)) {\n\t\t\t\treturn qsa.apply(this, arguments);\n\t\t\t}\n\n\t\t\tvar rootNode;\n\t\t\tif ('getRootNode' in this) {\n\t\t\t\trootNode = this.getRootNode();\n\t\t\t} else {\n\t\t\t\tvar r = this;\n\t\t\t\twhile (r) {\n\t\t\t\t\trootNode = r;\n\t\t\t\t\tr = r.parentNode;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _focus = this;\n\t\t\tif (_focus === global.document) {\n\t\t\t\t_focus = global.document.documentElement;\n\t\t\t}\n\n\t\t\tvar scopeAttr = 'q-has-scope' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t_focus.setAttribute(scopeAttr, '');\n\n\t\t\ttry {\n\t\t\t\tselectors = replaceScopeWithAttr(selectors, scopeAttr);\n\n\t\t\t\tvar attrs = [scopeAttr];\n\t\t\t\tvar newQuery = replaceAllWithTempAttr(selectors, false, function (inner, attr) {\n\t\t\t\t\tattrs.push(attr);\n\n\t\t\t\t\tvar selectorParts = splitSelector(inner);\n\t\t\t\t\tfor (var x = 0; x < selectorParts.length; x++) {\n\t\t\t\t\t\tvar selectorPart = selectorParts[x].trim();\n\t\t\t\t\t\tvar absoluteSelectorPart = selectorPart;\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tselectorPart[0] === '>' ||\n\t\t\t\t\t\t\tselectorPart[0] === '+' ||\n\t\t\t\t\t\t\tselectorPart[0] === '~'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tabsoluteSelectorPart = selectorPart.slice(1).trim();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tabsoluteSelectorPart = ':scope ' + selectorPart;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\twalkNode(rootNode, function (node) {\n\t\t\t\t\t\t\t\tif (!(node.querySelector(absoluteSelectorPart))) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tswitch (selectorPart[0]) {\n\t\t\t\t\t\t\t\t\tcase '~':\n\t\t\t\t\t\t\t\t\tcase '+':\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tvar siblings = node.childNodes;\n\t\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < siblings.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar sibling = siblings[i];\n\t\t\t\t\t\t\t\t\t\t\t\tif (!('setAttribute' in sibling)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope [' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tsibling.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase '>':\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\t\tnode.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope[' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tnode.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t// `:has` takes a forgiving selector list.\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\targuments[0] = newQuery;\n\n\t\t\t\t// results of the qsa\n\t\t\t\tvar elementOrNodeList = qsa.apply(this, arguments);\n\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// return the results of the qsa\n\t\t\t\treturn elementOrNodeList;\n\t\t\t} catch (err) {\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t};\n\t}\n})(self);\n","/* global self,window */\nimport { default as cssHasPseudo } from './browser';\n\n(function (global) {\n\tglobal.cssHasPseudo = cssHasPseudo;\n}('object' === typeof window && window || 'object' === typeof self && self || {}));\n"],"names":["decodeCSS","value","slice","values","split","result","i","length","String","fromCharCode","parseInt","encodeCSS","hex","charCodeAt","toString","cssHasPseudo","document","options","hover","debug","observedAttributes","forcePolyfill","mustPolyfill","self","CSS","supports","_","hasNativeSupport","Array","isArray","filter","x","concat","observedItems","attributeElement","createElement","forEach","call","styleSheets","walkStyleSheet","transformObservedItemsThrottled","MutationObserver","mutationsList","mutation","addedNodes","node","nodeType","sheet","push","apply","splice","item","rule","parentStyleSheet","ownerNode","documentElement","contains","observe","childList","subtree","attributes","attributeFilter","addEventListener","Object","observeProperty","proto","property","hasOwnProperty","descriptor","getOwnPropertyDescriptor","configurable","defineProperty","enumerable","get","this","arguments","set","HTMLElement","prototype","elementName","e","console","error","transformObservedItemsThrottledBusy","cancelAnimationFrame","requestAnimationFrame","nodes","matches","querySelectorAll","selector","element","innerHTML","attributeName","setAttributeNode","children","cloneNode","style","zoom","indexOf","removeAttribute","styleSheet","cssRules","index","selectorText","replace","hasSelectors","candidate","quotedMark","out","depth","quoted","containsUnescapedUnquotedHasAtDepth1","char","decoded","unique","extractEncodedSelectors","deleteRule","hasSelector","global","querySelector","querySelectorWithHasElement","polyfill","Element","selectors","querySelectorAllWithHasElement","matchesWithHasElement","closest","closestWithHasElement","Document","querySelectorWithHasDocument","querySelectorAllWithHasDocument","matchesWithHasDocument","closestWithHasDocument","pseudoClassHasInnerQuery","query","current","start","escaped","inHas","toLowerCase","innerQuery","end","replaceScopeWithAttr","attr","parts","bracketed","test","join","splitSelector","mark","nestedMark","nestedDepth","replaceAllWithTempAttr","nested","callback","inner","Math","floor","random","innerReplacement","innerParts","newInnerParts","innerPart","_prefix","substring","_suffix","y","walkNode","rootNode","hasChildNodes","childNodes","qsa","getRootNode","r","parentNode","_focus","scopeAttr","setAttribute","attrs","newQuery","selectorParts","selectorPart","trim","absoluteSelectorPart","siblings","sibling","idAttr","elementOrNodeList","attrsForQuery","j","elements","k","l","err","window"],"mappings":"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"}
1
+ {"version":3,"file":"browser-global.js","sources":["../src/encode/decode.mjs","../src/encode/extract.mjs","../src/encode/encode.mjs","../src/browser.js","../../../node_modules/@mrhenry/core-web/modules/~element-qsa-has.js","../src/browser-global.js"],"sourcesContent":["\n/** Decodes an identifier back into a CSS selector */\nexport default function decodeCSS(value) {\n\tif (value.slice(0, 13) !== 'csstools-has-') {\n\t\treturn '';\n\t}\n\n\tvalue = value.slice(13);\n\tlet values = value.split('-');\n\n\tlet result = '';\n\tfor (let i = 0; i < values.length; i++) {\n\t\tresult += String.fromCharCode(parseInt(values[i], 36));\n\t}\n\n\treturn result;\n}\n","import decodeCSS from './decode.mjs';\n\n/** Extract encoded selectors out of attribute selectors */\nexport default function extractEncodedSelectors(value) {\n\tlet out = [];\n\n\tlet depth = 0;\n\tlet candidate;\n\n\tlet quoted = false;\n\tlet quotedMark;\n\n\tlet containsUnescapedUnquotedHasAtDepth1 = false;\n\n\t// Stryker disable next-line EqualityOperator\n\tfor (let i = 0; i < value.length; i++) {\n\t\tconst char = value[i];\n\n\t\tswitch (char) {\n\t\t\tcase '[':\n\t\t\t\tif (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (depth === 0) {\n\t\t\t\t\tcandidate = '';\n\t\t\t\t} else {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t}\n\n\t\t\t\tdepth++;\n\t\t\t\tcontinue;\n\t\t\tcase ']':\n\t\t\t\tif (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t{\n\t\t\t\t\tdepth--;\n\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\tconst decoded = decodeCSS(candidate);\n\t\t\t\t\t\tif (containsUnescapedUnquotedHasAtDepth1) {\n\t\t\t\t\t\t\tout.push(decoded);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcandidate += char;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\tcase '\\\\':\n\t\t\t\tcandidate += value[i];\n\t\t\t\tcandidate += value[i+1];\n\t\t\t\ti++;\n\t\t\t\tcontinue;\n\n\t\t\tcase '\"':\n\t\t\tcase '\\'':\n\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tquoted = true;\n\t\t\t\tquotedMark = char;\n\t\t\t\tcontinue;\n\n\t\t\tdefault:\n\t\t\t\tif (candidate === '' && depth === 1 && (value.slice(i, i + 13) === 'csstools-has-')) {\n\t\t\t\t\tcontainsUnescapedUnquotedHasAtDepth1 = true;\n\t\t\t\t}\n\n\t\t\t\tcandidate += char;\n\t\t\t\tcontinue;\n\t\t}\n\t}\n\n\tconst unique = [];\n\tfor (let i = 0; i < out.length; i++) {\n\t\tif (unique.indexOf(out[i]) === -1) {\n\t\t\tunique.push(out[i]);\n\t\t}\n\t}\n\n\treturn unique;\n}\n","\n/** Returns the string as an encoded CSS identifier. */\nexport default function encodeCSS(value) {\n\tif (value === '') {\n\t\treturn '';\n\t}\n\n\tlet hex;\n\tlet result = '';\n\tfor (let i = 0; i < value.length; i++) {\n\t\thex = value.charCodeAt(i).toString(36);\n\t\tif (i === 0) {\n\t\t\tresult += hex;\n\t\t} else {\n\t\t\tresult += '-' + hex;\n\t\t}\n\t}\n\n\treturn 'csstools-has-' + result;\n}\n","/* global MutationObserver,requestAnimationFrame,cancelAnimationFrame,self,HTMLElement */\n\nimport '@mrhenry/core-web/modules/~element-qsa-has.js';\nimport extractEncodedSelectors from './encode/extract.mjs';\nimport encodeCSS from './encode/encode.mjs';\n\nfunction hasNativeSupport() {\n\ttry {\n\t\tif (!('CSS' in self) || !('supports' in self.CSS) || !self.CSS.supports('selector(:has(div))')) {\n\t\t\treturn false;\n\t\t}\n\n\t} catch (_) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\nexport default function cssHasPseudo(document, options) {\n\t// OPTIONS\n\t{\n\t\tif (!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\toptions = {\n\t\t\thover: (!!options.hover) || false,\n\t\t\tdebug: (!!options.debug) || false,\n\t\t\tobservedAttributes: options.observedAttributes || [],\n\t\t\tforcePolyfill: (!!options.forcePolyfill) || false,\n\t\t};\n\n\t\toptions.mustPolyfill = options.forcePolyfill || !hasNativeSupport();\n\n\t\tif (!Array.isArray(options.observedAttributes)) {\n\t\t\toptions.observedAttributes = [];\n\t\t}\n\n\t\toptions.observedAttributes = options.observedAttributes.filter((x) => {\n\t\t\treturn (typeof x === 'string');\n\t\t});\n\n\t\t// https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n\t\t// `data-*` and `style` were omitted\n\t\toptions.observedAttributes = options.observedAttributes.concat(['accept', 'accept-charset', 'accesskey', 'action', 'align', 'allow', 'alt', 'async', 'autocapitalize', 'autocomplete', 'autofocus', 'autoplay', 'buffered', 'capture', 'challenge', 'charset', 'checked', 'cite', 'class', 'code', 'codebase', 'cols', 'colspan', 'content', 'contenteditable', 'contextmenu', 'controls', 'coords', 'crossorigin', 'csp', 'data', 'datetime', 'decoding', 'default', 'defer', 'dir', 'dirname', 'disabled', 'download', 'draggable', 'enctype', 'enterkeyhint', 'for', 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'headers', 'hidden', 'high', 'href', 'hreflang', 'http-equiv', 'icon', 'id', 'importance', 'integrity', 'intrinsicsize', 'inputmode', 'ismap', 'itemprop', 'keytype', 'kind', 'label', 'lang', 'language', 'list', 'loop', 'low', 'manifest', 'max', 'maxlength', 'minlength', 'media', 'method', 'min', 'multiple', 'muted', 'name', 'novalidate', 'open', 'optimum', 'pattern', 'ping', 'placeholder', 'poster', 'preload', 'radiogroup', 'readonly', 'referrerpolicy', 'rel', 'required', 'reversed', 'rows', 'rowspan', 'sandbox', 'scope', 'scoped', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src', 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'summary', 'tabindex', 'target', 'title', 'translate', 'type', 'usemap', 'value', 'width', 'wrap']);\n\t}\n\n\tconst observedItems = [];\n\n\t// document.createAttribute() doesn't support `:` in the name. innerHTML does\n\tconst attributeElement = document.createElement('x');\n\n\t// walk all stylesheets to collect observed css rules\n\t[].forEach.call(document.styleSheets, walkStyleSheet);\n\tif (!options.mustPolyfill) {\n\t\t// Cleanup of rules will have happened in `walkStyleSheet`\n\t\t// Native support will take over from here\n\t\treturn;\n\t}\n\n\ttransformObservedItemsThrottled();\n\n\t// observe DOM modifications that affect selectors\n\tif ('MutationObserver' in self) {\n\t\tconst mutationObserver = new MutationObserver((mutationsList) => {\n\t\t\tmutationsList.forEach(mutation => {\n\t\t\t\t[].forEach.call(mutation.addedNodes || [], node => {\n\t\t\t\t\t// walk stylesheets to collect observed css rules\n\t\t\t\t\tif (node.nodeType === 1 && node.sheet) {\n\t\t\t\t\t\twalkStyleSheet(node.sheet);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// transform observed css rules\n\t\t\t\tcleanupObservedCssRules();\n\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t});\n\t\t});\n\n\t\tmutationObserver.observe(document, { childList: true, subtree: true, attributes: true, attributeFilter: options.observedAttributes });\n\t}\n\n\t// observe DOM events that affect pseudo-selectors\n\tdocument.addEventListener('focus', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('blur', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('input', transformObservedItemsThrottled);\n\tdocument.addEventListener('change', transformObservedItemsThrottled, true);\n\n\tif (options.hover) {\n\t\tif ('onpointerenter' in document) {\n\t\t\tdocument.addEventListener('pointerenter', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('pointerleave', transformObservedItemsThrottled, true);\n\t\t} else {\n\t\t\tdocument.addEventListener('mouseover', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('mouseout', transformObservedItemsThrottled, true);\n\t\t}\n\t}\n\n\t// observe Javascript setters that effect pseudo-selectors\n\tif ('defineProperty' in Object && 'getOwnPropertyDescriptor' in Object && 'hasOwnProperty' in Object) {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-inner-declarations\n\t\t\tfunction observeProperty(proto, property) {\n\t\t\t\t// eslint-disable-next-line no-prototype-builtins\n\t\t\t\tif (proto.hasOwnProperty(property)) {\n\t\t\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(proto, property);\n\t\t\t\t\tif (descriptor && descriptor.configurable && 'set' in descriptor) {\n\t\t\t\t\t\tObject.defineProperty(proto, property, {\n\t\t\t\t\t\t\tconfigurable: descriptor.configurable,\n\t\t\t\t\t\t\tenumerable: descriptor.enumerable,\n\t\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\t\treturn descriptor.get.apply(this, arguments);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tset: function () {\n\t\t\t\t\t\t\t\tdescriptor.set.apply(this, arguments);\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\t\t// should never happen as there is an inner try/catch\n\t\t\t\t\t\t\t\t\t// but just in case\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ('HTMLElement' in self && HTMLElement.prototype) {\n\t\t\t\tobserveProperty(HTMLElement.prototype, 'disabled');\n\t\t\t}\n\n\t\t\t// Not all of these elements have all of these properties.\n\t\t\t// But the code above checks if they exist first.\n\t\t\t['checked', 'selected', 'readOnly', 'required'].forEach((property) => {\n\t\t\t\t[\n\t\t\t\t\t'HTMLButtonElement',\n\t\t\t\t\t'HTMLFieldSetElement',\n\t\t\t\t\t'HTMLInputElement',\n\t\t\t\t\t'HTMLMeterElement',\n\t\t\t\t\t'HTMLOptGroupElement',\n\t\t\t\t\t'HTMLOptionElement',\n\t\t\t\t\t'HTMLOutputElement',\n\t\t\t\t\t'HTMLProgressElement',\n\t\t\t\t\t'HTMLSelectElement',\n\t\t\t\t\t'HTMLTextAreaElement',\n\t\t\t\t].forEach((elementName) => {\n\t\t\t\t\tif (elementName in self && self[elementName].prototype) {\n\t\t\t\t\t\tobserveProperty(self[elementName].prototype, property);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tlet transformObservedItemsThrottledBusy = false;\n\tfunction transformObservedItemsThrottled() {\n\t\tif (transformObservedItemsThrottledBusy) {\n\t\t\tcancelAnimationFrame(transformObservedItemsThrottledBusy);\n\t\t}\n\n\t\ttransformObservedItemsThrottledBusy = requestAnimationFrame(() => {\n\t\t\ttransformObservedItems();\n\t\t});\n\t}\n\n\t// transform observed css rules\n\tfunction transformObservedItems() {\n\t\tobservedItems.forEach((item) => {\n\t\t\tconst nodes = [];\n\n\t\t\tlet matches = [];\n\t\t\ttry {\n\t\t\t\tmatches = document.querySelectorAll(item.selector);\n\t\t\t} catch (e) {\n\t\t\t\tif (options.debug) {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t[].forEach.call(matches, (element) => {\n\t\t\t\t// memorize the node\n\t\t\t\tnodes.push(element);\n\n\t\t\t\t// set an attribute with an irregular attribute name\n\t\t\t\t// document.createAttribute() doesn't support special characters\n\t\t\t\tattributeElement.innerHTML = '<x ' + item.attributeName + '>';\n\n\t\t\t\telement.setAttributeNode(attributeElement.children[0].attributes[0].cloneNode());\n\n\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t});\n\n\t\t\t// remove the encoded attribute from all nodes that no longer match them\n\t\t\titem.nodes.forEach(node => {\n\t\t\t\tif (nodes.indexOf(node) === -1) {\n\t\t\t\t\tnode.removeAttribute(item.attributeName);\n\n\t\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// update the\n\t\t\titem.nodes = nodes;\n\t\t});\n\t}\n\n\t// remove any observed cssrules that no longer apply\n\tfunction cleanupObservedCssRules() {\n\t\t[].push.apply(\n\t\t\tobservedItems,\n\t\t\tobservedItems.splice(0).filter((item) => {\n\t\t\t\treturn item.rule.parentStyleSheet &&\n\t\t\t\t\titem.rule.parentStyleSheet.ownerNode &&\n\t\t\t\t\tdocument.documentElement.contains(item.rule.parentStyleSheet.ownerNode);\n\t\t\t}),\n\t\t);\n\t}\n\n\t// walk a stylesheet to collect observed css rules\n\tfunction walkStyleSheet(styleSheet) {\n\t\ttry {\n\t\t\t// walk a css rule to collect observed css rules\n\t\t\t[].forEach.call(styleSheet.cssRules || [], (rule, index) => {\n\t\t\t\tif (rule.selectorText) {\n\t\t\t\t\trule.selectorText = rule.selectorText.replace(/\\.js-has-pseudo\\s/g, '');\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// decode the selector text in all browsers to:\n\t\t\t\t\t\tconst hasSelectors = extractEncodedSelectors(rule.selectorText.toString());\n\t\t\t\t\t\tif (hasSelectors.length === 0) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!options.mustPolyfill) {\n\t\t\t\t\t\t\tstyleSheet.deleteRule(index);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (let i = 0; i < hasSelectors.length; i++) {\n\t\t\t\t\t\t\tconst hasSelector = hasSelectors[i];\n\t\t\t\t\t\t\tobservedItems.push({\n\t\t\t\t\t\t\t\trule: rule,\n\t\t\t\t\t\t\t\tselector: hasSelector,\n\t\t\t\t\t\t\t\tattributeName: encodeCSS(hasSelector),\n\t\t\t\t\t\t\t\tnodes: [],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tif (options.debug) {\n\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\twalkStyleSheet(rule);\n\t\t\t\t}\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n}\n","/* eslint-disable */\n(function (global) {\n\ttry {\n\t\t// test for has support\n\t\tglobal.document.querySelector(':has(*, :does-not-exist, > *)');\n\n\t\tif (\n\t\t\t!global.document.querySelector(':has(:scope *)') &&\n\t\t\tCSS.supports('selector(:has(div))')\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t} catch (_) { }\n\n\t// ELEMENT\n\t// polyfill Element#querySelector\n\tvar querySelectorWithHasElement = polyfill(global.Element.prototype.querySelector);\n\n\tglobal.Element.prototype.querySelector = function querySelector(selectors) {\n\t\treturn querySelectorWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#querySelectorAll\n\tvar querySelectorAllWithHasElement = polyfill(global.Element.prototype.querySelectorAll);\n\n\tglobal.Element.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\treturn querySelectorAllWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#matches\n\tif (global.Element.prototype.matches) {\n\t\tvar matchesWithHasElement = polyfill(global.Element.prototype.matches);\n\n\t\tglobal.Element.prototype.matches = function matches(selectors) {\n\t\t\treturn matchesWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// polyfill Element#closest\n\tif (global.Element.prototype.closest) {\n\t\tvar closestWithHasElement = polyfill(global.Element.prototype.closest);\n\n\t\tglobal.Element.prototype.closest = function closest(selectors) {\n\t\t\treturn closestWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// DOCUMENT\n\tif ('Document' in global && 'prototype' in global.Document) {\n\t\t// polyfill Document#querySelector\n\t\tvar querySelectorWithHasDocument = polyfill(global.Document.prototype.querySelector);\n\n\t\tglobal.Document.prototype.querySelector = function querySelector(selectors) {\n\t\t\treturn querySelectorWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#querySelectorAll\n\t\tvar querySelectorAllWithHasDocument = polyfill(global.Document.prototype.querySelectorAll);\n\n\t\tglobal.Document.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\t\treturn querySelectorAllWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#matches\n\t\tif (global.Document.prototype.matches) {\n\t\t\tvar matchesWithHasDocument = polyfill(global.Document.prototype.matches);\n\n\t\t\tglobal.Document.prototype.matches = function matches(selectors) {\n\t\t\t\treturn matchesWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\n\t\t// polyfill Document#closest\n\t\tif (global.Document.prototype.closest) {\n\t\t\tvar closestWithHasDocument = polyfill(global.Document.prototype.closest);\n\n\t\t\tglobal.Document.prototype.closest = function closest(selectors) {\n\t\t\t\treturn closestWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction pseudoClassHasInnerQuery(query) {\n\t\tvar current = '';\n\t\tvar start = 0;\n\t\tvar depth = 0;\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar inHas = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':has(' && !inHas) {\n\t\t\t\tinHas = true;\n\t\t\t\tstart = i;\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tif (!inHas) {\n\t\t\t\t\t\tcurrent = '';\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tdepth++;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase ')':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tinnerQuery: current,\n\t\t\t\t\t\t\t\tstart: start,\n\t\t\t\t\t\t\t\tend: i-1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdepth--;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction replaceScopeWithAttr(query, attr) {\n\t\tvar parts = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':scope' && !bracketed && (/^[\\[\\.\\:\\\\\"\\s|+>~#&,)]/.test(char || ''))) {\n\t\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\t\tparts.push('[' + attr + ']');\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tparts.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (current.toLowerCase() === ':scope') {\n\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\tparts.push('[' + attr + ']');\n\t\t\tcurrent = '';\n\t\t}\n\n\t\tif (parts.length === 0) {\n\t\t\treturn query;\n\t\t}\n\n\t\treturn parts.join('') + current;\n\t}\n\n\tfunction charIsNestedMarkMirror(char, mark) {\n\t\tif (mark === '(' && char === ')') {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (mark === '[' && char === ']') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction splitSelector(query) {\n\t\tvar selectors = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar nestedMark = false;\n\t\tvar nestedDepth = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ',':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (nestedDepth > 0) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tselectors.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tquoted = false;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\tcase ')':\n\t\t\t\tcase '[':\n\t\t\t\tcase ']':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (charIsNestedMarkMirror(char, nestedMark)) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth--;\n\n\t\t\t\t\t\tif (nestedDepth === 0) {\n\t\t\t\t\t\t\tnestedMark = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (char === nestedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth++;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tnestedDepth++;\n\t\t\t\t\tnestedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t}\n\t\t}\n\n\t\tselectors.push(current);\n\n\t\treturn selectors;\n\t}\n\n\tfunction replaceAllWithTempAttr(query, nested, callback) {\n\t\tvar inner = pseudoClassHasInnerQuery(query);\n\t\tif (!inner) {\n\t\t\treturn query;\n\t\t}\n\n\t\tif (nested) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar innerQuery = inner.innerQuery;\n\t\tvar attr = 'q-has' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\tvar innerReplacement = '[' + attr + ']';\n\n\t\tvar x = query;\n\n\t\tif (inner.innerQuery.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar innerParts = splitSelector(inner.innerQuery);\n\t\t\tvar newInnerParts = [];\n\t\t\tfor (var i = 0; i < innerParts.length; i++) {\n\t\t\t\tvar innerPart = innerParts[i];\n\n\t\t\t\t// Nested has is not supported.\n\t\t\t\t// If a recursive/nested call returns \"false\" we throw\n\t\t\t\tvar innerPartReplaced = replaceAllWithTempAttr(innerPart, true, function () { });\n\t\t\t\tif (!innerPartReplaced) {\n\t\t\t\t\tthrow new Error(\"Nested :has() is not supported\")\n\t\t\t\t} else {\n\t\t\t\t\tnewInnerParts.push(innerPart);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\t\treturn _prefix + newInnerParts.join(', ') + _suffix;\n\t\t}\n\n\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\tx = _prefix + innerReplacement + _suffix;\n\n\t\tcallback(innerQuery, attr);\n\t\tif (x.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar y = replaceAllWithTempAttr(x, false, callback);\n\t\t\tif (y) {\n\t\t\t\treturn y;\n\t\t\t}\n\t\t}\n\n\t\treturn x;\n\t}\n\n\tfunction walkNode(rootNode, callback) {\n\t\tif (('setAttribute' in (rootNode)) && ('querySelector' in (rootNode))) {\n\t\t\tcallback(rootNode);\n\t\t}\n\n\t\tif (rootNode.hasChildNodes()) {\n\t\t\tvar nodes = rootNode.childNodes;\n\t\t\tfor (var i = 0; i < nodes.length; ++i) {\n\t\t\t\twalkNode(nodes[i], callback);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction polyfill(qsa) {\n\t\treturn function (selectors) {\n\t\t\tif ((selectors.toLowerCase().indexOf(':has(') === -1) || !pseudoClassHasInnerQuery(selectors)) {\n\t\t\t\treturn qsa.apply(this, arguments);\n\t\t\t}\n\n\t\t\tvar rootNode;\n\t\t\tif ('getRootNode' in this) {\n\t\t\t\trootNode = this.getRootNode();\n\t\t\t} else {\n\t\t\t\tvar r = this;\n\t\t\t\twhile (r) {\n\t\t\t\t\trootNode = r;\n\t\t\t\t\tr = r.parentNode;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _focus = this;\n\t\t\tif (_focus === global.document) {\n\t\t\t\t_focus = global.document.documentElement;\n\t\t\t}\n\n\t\t\tvar scopeAttr = 'q-has-scope' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t_focus.setAttribute(scopeAttr, '');\n\n\t\t\ttry {\n\t\t\t\tselectors = replaceScopeWithAttr(selectors, scopeAttr);\n\n\t\t\t\tvar attrs = [scopeAttr];\n\t\t\t\tvar newQuery = replaceAllWithTempAttr(selectors, false, function (inner, attr) {\n\t\t\t\t\tattrs.push(attr);\n\n\t\t\t\t\tvar selectorParts = splitSelector(inner);\n\t\t\t\t\tfor (var x = 0; x < selectorParts.length; x++) {\n\t\t\t\t\t\tvar selectorPart = selectorParts[x].trim();\n\t\t\t\t\t\tvar absoluteSelectorPart = selectorPart;\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tselectorPart[0] === '>' ||\n\t\t\t\t\t\t\tselectorPart[0] === '+' ||\n\t\t\t\t\t\t\tselectorPart[0] === '~'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tabsoluteSelectorPart = selectorPart.slice(1).trim();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tabsoluteSelectorPart = ':scope ' + selectorPart;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twalkNode(rootNode, function (node) {\n\t\t\t\t\t\t\tif (!(node.querySelector(absoluteSelectorPart))) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tswitch (selectorPart[0]) {\n\t\t\t\t\t\t\t\tcase '~':\n\t\t\t\t\t\t\t\tcase '+':\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tvar siblings = node.childNodes;\n\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < siblings.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\tvar sibling = siblings[i];\n\t\t\t\t\t\t\t\t\t\t\tif (!('setAttribute' in sibling)) {\n\t\t\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope [' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tsibling.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\tcase '>':\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\tnode.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope[' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tnode.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\targuments[0] = newQuery;\n\n\t\t\t\t// results of the qsa\n\t\t\t\tvar elementOrNodeList = qsa.apply(this, arguments);\n\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// return the results of the qsa\n\t\t\t\treturn elementOrNodeList;\n\t\t\t} catch (err) {\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar errorMessage = '';\n\t\t\t\ttry {\n\t\t\t\t\tqsa.apply(this, [':core-web-does-not-exist']);\n\t\t\t\t} catch (dummyError) {\n\t\t\t\t\terrorMessage = dummyError.message;\n\t\t\t\t\tif (errorMessage) {\n\t\t\t\t\t\terrorMessage = errorMessage.replace(':core-web-does-not-exist', selectors);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!errorMessage) {\n\t\t\t\t\terrorMessage = \"Failed to execute 'querySelector' on 'Document': '\" + selectors + \"' is not a valid selector.\";\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new DOMException(errorMessage);\n\t\t\t\t} catch (_) {\n\t\t\t\t\tthrow new Error(errorMessage);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n})(self);\n","/* global self,window */\nimport { default as cssHasPseudo } from './browser';\n\n(function (global) {\n\tglobal.cssHasPseudo = cssHasPseudo;\n}('object' === typeof window && window || 'object' === typeof self && self || {}));\n"],"names":["decodeCSS","value","slice","values","split","result","i","length","String","fromCharCode","parseInt","extractEncodedSelectors","candidate","quotedMark","out","depth","quoted","containsUnescapedUnquotedHasAtDepth1","char","decoded","push","unique","indexOf","encodeCSS","hex","charCodeAt","toString","hasNativeSupport","self","CSS","supports","_","cssHasPseudo","document","options","hover","debug","observedAttributes","forcePolyfill","mustPolyfill","Array","isArray","filter","x","concat","observedItems","attributeElement","createElement","forEach","call","styleSheets","walkStyleSheet","transformObservedItemsThrottled","MutationObserver","mutationsList","mutation","addedNodes","node","nodeType","sheet","apply","splice","item","rule","parentStyleSheet","ownerNode","documentElement","contains","observe","childList","subtree","attributes","attributeFilter","addEventListener","Object","observeProperty","proto","property","hasOwnProperty","descriptor","getOwnPropertyDescriptor","configurable","defineProperty","enumerable","get","this","arguments","set","HTMLElement","prototype","elementName","e","console","error","transformObservedItemsThrottledBusy","cancelAnimationFrame","requestAnimationFrame","nodes","matches","querySelectorAll","selector","element","innerHTML","attributeName","setAttributeNode","children","cloneNode","style","zoom","removeAttribute","styleSheet","cssRules","index","selectorText","replace","hasSelectors","deleteRule","hasSelector","global","querySelector","querySelectorWithHasElement","polyfill","Element","selectors","querySelectorAllWithHasElement","matchesWithHasElement","closest","closestWithHasElement","Document","querySelectorWithHasDocument","querySelectorAllWithHasDocument","matchesWithHasDocument","closestWithHasDocument","pseudoClassHasInnerQuery","query","current","start","escaped","inHas","toLowerCase","innerQuery","end","replaceScopeWithAttr","attr","parts","bracketed","test","join","splitSelector","mark","nestedMark","nestedDepth","replaceAllWithTempAttr","nested","callback","inner","Math","floor","random","innerReplacement","innerParts","newInnerParts","innerPart","Error","_prefix","substring","_suffix","y","walkNode","rootNode","hasChildNodes","childNodes","qsa","getRootNode","r","parentNode","_focus","scopeAttr","setAttribute","attrs","newQuery","selectorParts","selectorPart","trim","absoluteSelectorPart","siblings","sibling","idAttr","elementOrNodeList","attrsForQuery","j","elements","k","l","err","errorMessage","dummyError","message","DOMException","window"],"mappings":"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"}
package/dist/browser.cjs CHANGED
@@ -1,2 +1,2 @@
1
- function e(e){if("csstools-has-"!==e.slice(0,13))return"";for(var t=(e=e.slice(13)).split("-"),r="",n=0;n<t.length;n++)r+=String.fromCharCode(parseInt(t[n],36));return r}function t(e){if(""===e)return"";for(var t,r="",n=0;n<e.length;n++)t=e.charCodeAt(n).toString(36),r+=0===n?t:"-"+t;return"csstools-has-"+r}!function(e){try{if(e.document.querySelector(":has(*, :does-not-exist, > *)"),e.document.querySelector(":has(:has(any))"),!e.document.querySelector(":has(:scope *)"))return}catch(e){}var t=d(e.Element.prototype.querySelector);e.Element.prototype.querySelector=function(e){return t.apply(this,arguments)};var r=d(e.Element.prototype.querySelectorAll);if(e.Element.prototype.querySelectorAll=function(e){return r.apply(this,arguments)},e.Element.prototype.matches){var n=d(e.Element.prototype.matches);e.Element.prototype.matches=function(e){return n.apply(this,arguments)}}if(e.Element.prototype.closest){var o=d(e.Element.prototype.closest);e.Element.prototype.closest=function(e){return o.apply(this,arguments)}}if("Document"in e&&"prototype"in e.Document){var i=d(e.Document.prototype.querySelector);e.Document.prototype.querySelector=function(e){return i.apply(this,arguments)};var s=d(e.Document.prototype.querySelectorAll);if(e.Document.prototype.querySelectorAll=function(e){return s.apply(this,arguments)},e.Document.prototype.matches){var c=d(e.Document.prototype.matches);e.Document.prototype.matches=function(e){return c.apply(this,arguments)}}if(e.Document.prototype.closest){var a=d(e.Document.prototype.closest);e.Document.prototype.closest=function(e){return a.apply(this,arguments)}}}function u(e){for(var t="",r=0,n=0,o=!1,i=!1,s=!1,c=!1,a=0;a<e.length;a++){var u=e[a];if(o)t+=u,o=!1;else if(i)u===s&&(i=!1),t+=u;else switch(":has("!==t.toLowerCase()||c||(c=!0,r=a,t=""),u){case":":c||(t=""),t+=u;continue;case"(":c&&n++,t+=u;continue;case")":if(c){if(0===n)return{innerQuery:t,start:r,end:a-1};n--}t+=u;continue;case"\\":t+=u,o=!0;continue;case'"':case"'":t+=u,i=!0,s=u;continue;default:t+=u;continue}}return!1}function l(e,t){for(var r=[],n="",o=!1,i=!1,s=!1,c=0,a=0;a<e.length;a++){var u=e[a];if(o)n+=u,o=!1;else if(i)u===s&&(i=!1),n+=u;else switch(":scope"===n.toLowerCase()&&!c&&/^[\[\.\:\\"\s|+>~#&,)]/.test(u||"")&&(r.push(n.slice(0,n.length-6)),r.push("["+t+"]"),n=""),u){case":":r.push(n),n="",n+=u;continue;case"\\":n+=u,o=!0;continue;case'"':case"'":n+=u,i=!0,s=u;continue;case"[":n+=u,c++;continue;case"]":n+=u,c>0&&c--;continue;default:n+=u;continue}}return":scope"===n.toLowerCase()&&(r.push(n.slice(0,n.length-6)),r.push("["+t+"]"),n=""),0===r.length?e:r.join("")+n}function f(e){for(var t,r,n=[],o="",i=!1,s=!1,c=!1,a=!1,u=0,l=0;l<e.length;l++){var f=e[l];if(i)o+=f,i=!1;else switch(f){case",":if(s){o+=f;continue}if(u>0){o+=f;continue}n.push(o),o="";continue;case"\\":o+=f,i=!0;continue;case'"':case"'":if(s&&f===c){o+=f,s=!1;continue}o+=f,s=!0,c=f;continue;case"(":case")":case"[":case"]":if(s){o+=f;continue}if(t=f,"("===(r=a)&&")"===t||"["===r&&"]"===t){o+=f,0===--u&&(a=!1);continue}if(f===a){o+=f,u++;continue}o+=f,u++,a=f;continue;default:o+=f;continue}}return n.push(o),n}function p(e,t,r){var n=u(e);if(!n)return e;if(t)return!1;var o=n.innerQuery,i="q-has"+(Math.floor(9e6*Math.random())+1e6),s="["+i+"]",c=e;if(n.innerQuery.toLowerCase().indexOf(":has(")>-1){for(var a=f(n.innerQuery),l=[],h=0;h<a.length;h++){var d=a[h];p(d,!0,(function(){}))?l.push(d):l.push(":not(*)")}var m=c.substring(0,n.start-5),y=c.substring(n.end+2);return m+l.join(", ")+y}m=c.substring(0,n.start-5),y=c.substring(n.end+2);if(c=m+s+y,r(o,i),c.toLowerCase().indexOf(":has(")>-1){var v=p(c,!1,r);if(v)return v}return c}function h(e,t){if("setAttribute"in e&&"querySelector"in e&&t(e),e.hasChildNodes())for(var r=e.childNodes,n=0;n<r.length;++n)h(r[n],t)}function d(t){return function(r){if(-1===r.toLowerCase().indexOf(":has(")||!u(r))return t.apply(this,arguments);var n;if("getRootNode"in this)n=this.getRootNode();else for(var o=this;o;)n=o,o=o.parentNode;var i=this;i===e.document&&(i=e.document.documentElement);var s="q-has-scope"+(Math.floor(9e6*Math.random())+1e6);i.setAttribute(s,"");try{r=l(r,s);var c=[s],a=p(r,!1,(function(e,t){c.push(t);for(var r=f(e),o=0;o<r.length;o++){var i=r[o].trim(),s=i;s=">"===i[0]||"+"===i[0]||"~"===i[0]?i.slice(1).trim():":scope "+i;try{h(n,(function(e){if(e.querySelector(s))switch(i[0]){case"~":case"+":for(var r=e.childNodes,n=0;n<r.length;n++){var o=r[n];if("setAttribute"in o){var c="q-has-id"+(Math.floor(9e6*Math.random())+1e6);o.setAttribute(c,""),e.querySelector(":scope ["+c+"] "+i)&&o.setAttribute(t,""),o.removeAttribute(c)}}break;case">":c="q-has-id"+(Math.floor(9e6*Math.random())+1e6);e.setAttribute(c,""),e.querySelector(":scope["+c+"] "+i)&&e.setAttribute(t,""),e.removeAttribute(c);break;default:e.setAttribute(t,"")}}))}catch(e){}}}));arguments[0]=a;var d=t.apply(this,arguments);if(i.removeAttribute(s),c.length>0){for(var m=[],y=0;y<c.length;y++)m.push("["+c[y]+"]");for(var v=e.document.querySelectorAll(m.join(",")),b=0;b<v.length;b++)for(var g=v[b],E=0;E<c.length;E++)g.removeAttribute(c[E])}return d}catch(t){if(i.removeAttribute(s),c.length>0){for(m=[],y=0;y<c.length;y++)m.push("["+c[y]+"]");for(v=e.document.querySelectorAll(m.join(",")),b=0;b<v.length;b++)for(g=v[b],E=0;E<c.length;E++)g.removeAttribute(c[E])}throw t}}}}(self),module.exports=function(r,n){n||(n={}),(n={hover:!!n.hover||!1,debug:!!n.debug||!1,observedAttributes:n.observedAttributes||[],forcePolyfill:!!n.forcePolyfill||!1}).mustPolyfill=n.forcePolyfill||!function(){try{if(!("CSS"in self)||!("supports"in self.CSS)||!self.CSS.supports("selector(:has(div))"))return!1}catch(e){return!1}return!0}(),Array.isArray(n.observedAttributes)||(n.observedAttributes=[]),n.observedAttributes=n.observedAttributes.filter((function(e){return"string"==typeof e})),n.observedAttributes=n.observedAttributes.concat(["accept","accept-charset","accesskey","action","align","allow","alt","async","autocapitalize","autocomplete","autofocus","autoplay","buffered","capture","challenge","charset","checked","cite","class","code","codebase","cols","colspan","content","contenteditable","contextmenu","controls","coords","crossorigin","csp","data","datetime","decoding","default","defer","dir","dirname","disabled","download","draggable","enctype","enterkeyhint","for","form","formaction","formenctype","formmethod","formnovalidate","formtarget","headers","hidden","high","href","hreflang","http-equiv","icon","id","importance","integrity","intrinsicsize","inputmode","ismap","itemprop","keytype","kind","label","lang","language","list","loop","low","manifest","max","maxlength","minlength","media","method","min","multiple","muted","name","novalidate","open","optimum","pattern","ping","placeholder","poster","preload","radiogroup","readonly","referrerpolicy","rel","required","reversed","rows","rowspan","sandbox","scope","scoped","selected","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","summary","tabindex","target","title","translate","type","usemap","value","width","wrap"]);var o=[],i=r.createElement("x");if([].forEach.call(r.styleSheets,u),n.mustPolyfill){if(a(),"MutationObserver"in self)new MutationObserver((function(e){e.forEach((function(e){[].forEach.call(e.addedNodes||[],(function(e){1===e.nodeType&&e.sheet&&u(e.sheet)})),[].push.apply(o,o.splice(0).filter((function(e){return e.rule.parentStyleSheet&&e.rule.parentStyleSheet.ownerNode&&r.documentElement.contains(e.rule.parentStyleSheet.ownerNode)}))),a()}))})).observe(r,{childList:!0,subtree:!0,attributes:!0,attributeFilter:n.observedAttributes});if(r.addEventListener("focus",a,!0),r.addEventListener("blur",a,!0),r.addEventListener("input",a),r.addEventListener("change",a,!0),n.hover&&("onpointerenter"in r?(r.addEventListener("pointerenter",a,!0),r.addEventListener("pointerleave",a,!0)):(r.addEventListener("mouseover",a,!0),r.addEventListener("mouseout",a,!0))),"defineProperty"in Object&&"getOwnPropertyDescriptor"in Object&&"hasOwnProperty"in Object)try{var s=function(e,t){if(e.hasOwnProperty(t)){var r=Object.getOwnPropertyDescriptor(e,t);r&&r.configurable&&"set"in r&&Object.defineProperty(e,t,{configurable:r.configurable,enumerable:r.enumerable,get:function(){return r.get.apply(this,arguments)},set:function(){r.set.apply(this,arguments);try{a()}catch(e){}}})}};"HTMLElement"in self&&HTMLElement.prototype&&s(HTMLElement.prototype,"disabled"),["checked","selected","readOnly","required"].forEach((function(e){["HTMLButtonElement","HTMLFieldSetElement","HTMLInputElement","HTMLMeterElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOutputElement","HTMLProgressElement","HTMLSelectElement","HTMLTextAreaElement"].forEach((function(t){t in self&&self[t].prototype&&s(self[t].prototype,e)}))}))}catch(e){n.debug&&console.error(e)}var c=!1}function a(){c&&cancelAnimationFrame(c),c=requestAnimationFrame((function(){o.forEach((function(e){var t=[],o=[];try{o=r.querySelectorAll(e.selector)}catch(e){return void(n.debug&&console.error(e))}[].forEach.call(o,(function(n){t.push(n),i.innerHTML="<x "+e.attributeName+">",n.setAttributeNode(i.children[0].attributes[0].cloneNode()),r.documentElement.style.zoom=1,r.documentElement.style.zoom=null})),e.nodes.forEach((function(n){-1===t.indexOf(n)&&(n.removeAttribute(e.attributeName),r.documentElement.style.zoom=1,r.documentElement.style.zoom=null)})),e.nodes=t}))}))}function u(r){try{[].forEach.call(r.cssRules||[],(function(i,s){if(i.selectorText){i.selectorText=i.selectorText.replace(/\.js-has-pseudo\s/g,"");try{var c=function(t){for(var r,n,o=[],i=0,s=!1,c=!1,a=0;a<t.length;a++){var u=t[a];switch(u){case"[":if(s){r+=u;continue}0===i?r="":r+=u,i++;continue;case"]":if(s){r+=u;continue}if(0==--i){var l=e(r);c&&o.push(l)}else r+=u;continue;case"\\":r+=t[a],r+=t[a+1],a++;continue;case'"':case"'":if(s&&u===n){s=!1;continue}if(s){r+=u;continue}s=!0,n=u;continue;default:""===r&&1===i&&"csstools-has-"===t.slice(a,a+13)&&(c=!0),r+=u;continue}}for(var f=[],p=0;p<o.length;p++)-1===f.indexOf(o[p])&&f.push(o[p]);return f}(i.selectorText.toString());if(0===c.length)return;if(!n.mustPolyfill)return void r.deleteRule(s);for(var a=0;a<c.length;a++){var l=c[a];o.push({rule:i,selector:l,attributeName:t(l),nodes:[]})}}catch(e){n.debug&&console.error(e)}}else u(i)}))}catch(e){n.debug&&console.error(e)}}};
1
+ function decodeCSS(e){if("csstools-has-"!==e.slice(0,13))return"";for(var t=(e=e.slice(13)).split("-"),r="",o=0;o<t.length;o++)r+=String.fromCharCode(parseInt(t[o],36));return r}function extractEncodedSelectors(e){for(var t,r,o=[],n=0,s=!1,l=!1,i=0;i<e.length;i++){var c=e[i];switch(c){case"[":if(s){t+=c;continue}0===n?t="":t+=c,n++;continue;case"]":if(s){t+=c;continue}if(0===--n){var a=decodeCSS(t);l&&o.push(a)}else t+=c;continue;case"\\":t+=e[i],t+=e[i+1],i++;continue;case'"':case"'":if(s&&c===r){s=!1;continue}if(s){t+=c;continue}s=!0,r=c;continue;default:""===t&&1===n&&"csstools-has-"===e.slice(i,i+13)&&(l=!0),t+=c;continue}}for(var u=[],p=0;p<o.length;p++)-1===u.indexOf(o[p])&&u.push(o[p]);return u}function encodeCSS(e){if(""===e)return"";for(var t,r="",o=0;o<e.length;o++)t=e.charCodeAt(o).toString(36),r+=0===o?t:"-"+t;return"csstools-has-"+r}function hasNativeSupport(){try{if(!("CSS"in self)||!("supports"in self.CSS)||!self.CSS.supports("selector(:has(div))"))return!1}catch(e){return!1}return!0}!function(e){try{if(e.document.querySelector(":has(*, :does-not-exist, > *)"),!e.document.querySelector(":has(:scope *)")&&CSS.supports("selector(:has(div))"))return}catch(a){}var t=polyfill(e.Element.prototype.querySelector);e.Element.prototype.querySelector=function querySelector(e){return t.apply(this,arguments)};var r=polyfill(e.Element.prototype.querySelectorAll);if(e.Element.prototype.querySelectorAll=function querySelectorAll(e){return r.apply(this,arguments)},e.Element.prototype.matches){var o=polyfill(e.Element.prototype.matches);e.Element.prototype.matches=function matches(e){return o.apply(this,arguments)}}if(e.Element.prototype.closest){var n=polyfill(e.Element.prototype.closest);e.Element.prototype.closest=function closest(e){return n.apply(this,arguments)}}if("Document"in e&&"prototype"in e.Document){var s=polyfill(e.Document.prototype.querySelector);e.Document.prototype.querySelector=function querySelector(e){return s.apply(this,arguments)};var l=polyfill(e.Document.prototype.querySelectorAll);if(e.Document.prototype.querySelectorAll=function querySelectorAll(e){return l.apply(this,arguments)},e.Document.prototype.matches){var i=polyfill(e.Document.prototype.matches);e.Document.prototype.matches=function matches(e){return i.apply(this,arguments)}}if(e.Document.prototype.closest){var c=polyfill(e.Document.prototype.closest);e.Document.prototype.closest=function closest(e){return c.apply(this,arguments)}}}function pseudoClassHasInnerQuery(e){for(var t="",r=0,o=0,n=!1,s=!1,l=!1,i=!1,c=0;c<e.length;c++){var a=e[c];if(n)t+=a,n=!1;else if(s)a===l&&(s=!1),t+=a;else switch(":has("!==t.toLowerCase()||i||(i=!0,r=c,t=""),a){case":":i||(t=""),t+=a;continue;case"(":i&&o++,t+=a;continue;case")":if(i){if(0===o)return{innerQuery:t,start:r,end:c-1};o--}t+=a;continue;case"\\":t+=a,n=!0;continue;case'"':case"'":t+=a,s=!0,l=a;continue;default:t+=a;continue}}return!1}function replaceScopeWithAttr(e,t){for(var r=[],o="",n=!1,s=!1,l=!1,i=0,c=0;c<e.length;c++){var a=e[c];if(n)o+=a,n=!1;else if(s)a===l&&(s=!1),o+=a;else switch(":scope"===o.toLowerCase()&&!i&&/^[\[\.\:\\"\s|+>~#&,)]/.test(a||"")&&(r.push(o.slice(0,o.length-6)),r.push("["+t+"]"),o=""),a){case":":r.push(o),o="",o+=a;continue;case"\\":o+=a,n=!0;continue;case'"':case"'":o+=a,s=!0,l=a;continue;case"[":o+=a,i++;continue;case"]":o+=a,i>0&&i--;continue;default:o+=a;continue}}return":scope"===o.toLowerCase()&&(r.push(o.slice(0,o.length-6)),r.push("["+t+"]"),o=""),0===r.length?e:r.join("")+o}function splitSelector(e){for(var t,r,o=[],n="",s=!1,l=!1,i=!1,c=!1,a=0,u=0;u<e.length;u++){var p=e[u];if(s)n+=p,s=!1;else switch(p){case",":if(l){n+=p;continue}if(a>0){n+=p;continue}o.push(n),n="";continue;case"\\":n+=p,s=!0;continue;case'"':case"'":if(l&&p===i){n+=p,l=!1;continue}n+=p,l=!0,i=p;continue;case"(":case")":case"[":case"]":if(l){n+=p;continue}if(t=p,"("===(r=c)&&")"===t||"["===r&&"]"===t){n+=p,0===--a&&(c=!1);continue}if(p===c){n+=p,a++;continue}n+=p,a++,c=p;continue;default:n+=p;continue}}return o.push(n),o}function replaceAllWithTempAttr(e,t,r){var o=pseudoClassHasInnerQuery(e);if(!o)return e;if(t)return!1;var n=o.innerQuery,s="q-has"+(Math.floor(9e6*Math.random())+1e6),l="["+s+"]",i=e;if(o.innerQuery.toLowerCase().indexOf(":has(")>-1){for(var c=splitSelector(o.innerQuery),a=[],u=0;u<c.length;u++){var p=c[u];if(!replaceAllWithTempAttr(p,!0,(function(){})))throw new Error("Nested :has() is not supported");a.push(p)}var f=i.substring(0,o.start-5),d=i.substring(o.end+2);return f+a.join(", ")+d}f=i.substring(0,o.start-5),d=i.substring(o.end+2);if(i=f+l+d,r(n,s),i.toLowerCase().indexOf(":has(")>-1){var h=replaceAllWithTempAttr(i,!1,r);if(h)return h}return i}function walkNode(e,t){if("setAttribute"in e&&"querySelector"in e&&t(e),e.hasChildNodes())for(var r=e.childNodes,o=0;o<r.length;++o)walkNode(r[o],t)}function polyfill(t){return function(r){if(-1===r.toLowerCase().indexOf(":has(")||!pseudoClassHasInnerQuery(r))return t.apply(this,arguments);var o;if("getRootNode"in this)o=this.getRootNode();else for(var n=this;n;)o=n,n=n.parentNode;var s=this;s===e.document&&(s=e.document.documentElement);var l="q-has-scope"+(Math.floor(9e6*Math.random())+1e6);s.setAttribute(l,"");try{r=replaceScopeWithAttr(r,l);var i=[l],c=replaceAllWithTempAttr(r,!1,(function(e,t){i.push(t);for(var r=splitSelector(e),n=0;n<r.length;n++){var s=r[n].trim(),l=s;l=">"===s[0]||"+"===s[0]||"~"===s[0]?s.slice(1).trim():":scope "+s,walkNode(o,(function(e){if(e.querySelector(l))switch(s[0]){case"~":case"+":for(var r=e.childNodes,o=0;o<r.length;o++){var n=r[o];if("setAttribute"in n){var i="q-has-id"+(Math.floor(9e6*Math.random())+1e6);n.setAttribute(i,""),e.querySelector(":scope ["+i+"] "+s)&&n.setAttribute(t,""),n.removeAttribute(i)}}break;case">":i="q-has-id"+(Math.floor(9e6*Math.random())+1e6);e.setAttribute(i,""),e.querySelector(":scope["+i+"] "+s)&&e.setAttribute(t,""),e.removeAttribute(i);break;default:e.setAttribute(t,"")}}))}}));arguments[0]=c;var u=t.apply(this,arguments);if(s.removeAttribute(l),i.length>0){for(var p=[],f=0;f<i.length;f++)p.push("["+i[f]+"]");for(var d=e.document.querySelectorAll(p.join(",")),h=0;h<d.length;h++)for(var m=d[h],y=0;y<i.length;y++)m.removeAttribute(i[y])}return u}catch(b){if(s.removeAttribute(l),i.length>0){for(p=[],f=0;f<i.length;f++)p.push("["+i[f]+"]");for(d=e.document.querySelectorAll(p.join(",")),h=0;h<d.length;h++)for(m=d[h],y=0;y<i.length;y++)m.removeAttribute(i[y])}var v="";try{t.apply(this,[":core-web-does-not-exist"])}catch(g){v=g.message,v&&(v=v.replace(":core-web-does-not-exist",r))}v||(v="Failed to execute 'querySelector' on 'Document': '"+r+"' is not a valid selector.");try{throw new DOMException(v)}catch(a){throw new Error(v)}}}}}(self),module.exports=function cssHasPseudo(e,t){t||(t={}),(t={hover:!!t.hover||!1,debug:!!t.debug||!1,observedAttributes:t.observedAttributes||[],forcePolyfill:!!t.forcePolyfill||!1}).mustPolyfill=t.forcePolyfill||!hasNativeSupport(),Array.isArray(t.observedAttributes)||(t.observedAttributes=[]),t.observedAttributes=t.observedAttributes.filter((function(e){return"string"==typeof e})),t.observedAttributes=t.observedAttributes.concat(["accept","accept-charset","accesskey","action","align","allow","alt","async","autocapitalize","autocomplete","autofocus","autoplay","buffered","capture","challenge","charset","checked","cite","class","code","codebase","cols","colspan","content","contenteditable","contextmenu","controls","coords","crossorigin","csp","data","datetime","decoding","default","defer","dir","dirname","disabled","download","draggable","enctype","enterkeyhint","for","form","formaction","formenctype","formmethod","formnovalidate","formtarget","headers","hidden","high","href","hreflang","http-equiv","icon","id","importance","integrity","intrinsicsize","inputmode","ismap","itemprop","keytype","kind","label","lang","language","list","loop","low","manifest","max","maxlength","minlength","media","method","min","multiple","muted","name","novalidate","open","optimum","pattern","ping","placeholder","poster","preload","radiogroup","readonly","referrerpolicy","rel","required","reversed","rows","rowspan","sandbox","scope","scoped","selected","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","summary","tabindex","target","title","translate","type","usemap","value","width","wrap"]);var r=[],o=e.createElement("x");if([].forEach.call(e.styleSheets,walkStyleSheet),t.mustPolyfill){if(transformObservedItemsThrottled(),"MutationObserver"in self)new MutationObserver((function(t){t.forEach((function(t){[].forEach.call(t.addedNodes||[],(function(e){1===e.nodeType&&e.sheet&&walkStyleSheet(e.sheet)})),[].push.apply(r,r.splice(0).filter((function(t){return t.rule.parentStyleSheet&&t.rule.parentStyleSheet.ownerNode&&e.documentElement.contains(t.rule.parentStyleSheet.ownerNode)}))),transformObservedItemsThrottled()}))})).observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:t.observedAttributes});if(e.addEventListener("focus",transformObservedItemsThrottled,!0),e.addEventListener("blur",transformObservedItemsThrottled,!0),e.addEventListener("input",transformObservedItemsThrottled),e.addEventListener("change",transformObservedItemsThrottled,!0),t.hover&&("onpointerenter"in e?(e.addEventListener("pointerenter",transformObservedItemsThrottled,!0),e.addEventListener("pointerleave",transformObservedItemsThrottled,!0)):(e.addEventListener("mouseover",transformObservedItemsThrottled,!0),e.addEventListener("mouseout",transformObservedItemsThrottled,!0))),"defineProperty"in Object&&"getOwnPropertyDescriptor"in Object&&"hasOwnProperty"in Object)try{var n=function observeProperty(e,t){if(e.hasOwnProperty(t)){var r=Object.getOwnPropertyDescriptor(e,t);r&&r.configurable&&"set"in r&&Object.defineProperty(e,t,{configurable:r.configurable,enumerable:r.enumerable,get:function get(){return r.get.apply(this,arguments)},set:function set(){r.set.apply(this,arguments);try{transformObservedItemsThrottled()}catch(e){}}})}};"HTMLElement"in self&&HTMLElement.prototype&&n(HTMLElement.prototype,"disabled"),["checked","selected","readOnly","required"].forEach((function(e){["HTMLButtonElement","HTMLFieldSetElement","HTMLInputElement","HTMLMeterElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOutputElement","HTMLProgressElement","HTMLSelectElement","HTMLTextAreaElement"].forEach((function(t){t in self&&self[t].prototype&&n(self[t].prototype,e)}))}))}catch(l){t.debug&&console.error(l)}var s=!1}function transformObservedItemsThrottled(){s&&cancelAnimationFrame(s),s=requestAnimationFrame((function(){r.forEach((function(r){var n=[],s=[];try{s=e.querySelectorAll(r.selector)}catch(l){return void(t.debug&&console.error(l))}[].forEach.call(s,(function(t){n.push(t),o.innerHTML="<x "+r.attributeName+">",t.setAttributeNode(o.children[0].attributes[0].cloneNode()),e.documentElement.style.zoom=1,e.documentElement.style.zoom=null})),r.nodes.forEach((function(t){-1===n.indexOf(t)&&(t.removeAttribute(r.attributeName),e.documentElement.style.zoom=1,e.documentElement.style.zoom=null)})),r.nodes=n}))}))}function walkStyleSheet(e){try{[].forEach.call(e.cssRules||[],(function(o,n){if(o.selectorText){o.selectorText=o.selectorText.replace(/\.js-has-pseudo\s/g,"");try{var s=extractEncodedSelectors(o.selectorText.toString());if(0===s.length)return;if(!t.mustPolyfill)return void e.deleteRule(n);for(var i=0;i<s.length;i++){var c=s[i];r.push({rule:o,selector:c,attributeName:encodeCSS(c),nodes:[]})}}catch(l){t.debug&&console.error(l)}}else walkStyleSheet(o)}))}catch(l){t.debug&&console.error(l)}}};
2
2
  //# sourceMappingURL=browser.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.cjs","sources":["../src/encode/decode.mjs","../src/encode/encode.mjs","../../../node_modules/@mrhenry/core-web/modules/~element-qsa-has.js","../src/browser.js","../src/encode/extract.mjs"],"sourcesContent":["\n/** Decodes an identifier back into a CSS selector */\nexport default function decodeCSS(value) {\n\tif (value.slice(0, 13) !== 'csstools-has-') {\n\t\treturn '';\n\t}\n\n\tvalue = value.slice(13);\n\tlet values = value.split('-');\n\n\tlet result = '';\n\tfor (let i = 0; i < values.length; i++) {\n\t\tresult += String.fromCharCode(parseInt(values[i], 36));\n\t}\n\n\treturn result;\n}\n","\n/** Returns the string as an encoded CSS identifier. */\nexport default function encodeCSS(value) {\n\tif (value === '') {\n\t\treturn '';\n\t}\n\n\tlet hex;\n\tlet result = '';\n\tfor (let i = 0; i < value.length; i++) {\n\t\thex = value.charCodeAt(i).toString(36);\n\t\tif (i === 0) {\n\t\t\tresult += hex;\n\t\t} else {\n\t\t\tresult += '-' + hex;\n\t\t}\n\t}\n\n\treturn 'csstools-has-' + result;\n}\n","/* eslint-disable */\n(function (global) {\n\ttry {\n\t\t// test for has support\n\t\tglobal.document.querySelector(':has(*, :does-not-exist, > *)');\n\t\tglobal.document.querySelector(':has(:has(any))');\n\n\t\tif (!global.document.querySelector(':has(:scope *)')) {\n\t\t\treturn;\n\t\t}\n\t} catch (_) { }\n\n\t// ELEMENT\n\t// polyfill Element#querySelector\n\tvar querySelectorWithHasElement = polyfill(global.Element.prototype.querySelector);\n\n\tglobal.Element.prototype.querySelector = function querySelector(selectors) {\n\t\treturn querySelectorWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#querySelectorAll\n\tvar querySelectorAllWithHasElement = polyfill(global.Element.prototype.querySelectorAll);\n\n\tglobal.Element.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\treturn querySelectorAllWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#matches\n\tif (global.Element.prototype.matches) {\n\t\tvar matchesWithHasElement = polyfill(global.Element.prototype.matches);\n\n\t\tglobal.Element.prototype.matches = function matches(selectors) {\n\t\t\treturn matchesWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// polyfill Element#closest\n\tif (global.Element.prototype.closest) {\n\t\tvar closestWithHasElement = polyfill(global.Element.prototype.closest);\n\n\t\tglobal.Element.prototype.closest = function closest(selectors) {\n\t\t\treturn closestWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// DOCUMENT\n\tif ('Document' in global && 'prototype' in global.Document) {\n\t\t// polyfill Document#querySelector\n\t\tvar querySelectorWithHasDocument = polyfill(global.Document.prototype.querySelector);\n\n\t\tglobal.Document.prototype.querySelector = function querySelector(selectors) {\n\t\t\treturn querySelectorWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#querySelectorAll\n\t\tvar querySelectorAllWithHasDocument = polyfill(global.Document.prototype.querySelectorAll);\n\n\t\tglobal.Document.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\t\treturn querySelectorAllWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#matches\n\t\tif (global.Document.prototype.matches) {\n\t\t\tvar matchesWithHasDocument = polyfill(global.Document.prototype.matches);\n\n\t\t\tglobal.Document.prototype.matches = function matches(selectors) {\n\t\t\t\treturn matchesWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\n\t\t// polyfill Document#closest\n\t\tif (global.Document.prototype.closest) {\n\t\t\tvar closestWithHasDocument = polyfill(global.Document.prototype.closest);\n\n\t\t\tglobal.Document.prototype.closest = function closest(selectors) {\n\t\t\t\treturn closestWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction pseudoClassHasInnerQuery(query) {\n\t\tvar current = '';\n\t\tvar start = 0;\n\t\tvar depth = 0;\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar inHas = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':has(' && !inHas) {\n\t\t\t\tinHas = true;\n\t\t\t\tstart = i;\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tif (!inHas) {\n\t\t\t\t\t\tcurrent = '';\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tdepth++;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase ')':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tinnerQuery: current,\n\t\t\t\t\t\t\t\tstart: start,\n\t\t\t\t\t\t\t\tend: i-1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdepth--;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction replaceScopeWithAttr(query, attr) {\n\t\tvar parts = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':scope' && !bracketed && (/^[\\[\\.\\:\\\\\"\\s|+>~#&,)]/.test(char || ''))) {\n\t\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\t\tparts.push('[' + attr + ']');\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tparts.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (current.toLowerCase() === ':scope') {\n\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\tparts.push('[' + attr + ']');\n\t\t\tcurrent = '';\n\t\t}\n\n\t\tif (parts.length === 0) {\n\t\t\treturn query;\n\t\t}\n\n\t\treturn parts.join('') + current;\n\t}\n\n\tfunction charIsNestedMarkMirror(char, mark) {\n\t\tif (mark === '(' && char === ')') {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (mark === '[' && char === ']') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction splitSelector(query) {\n\t\tvar selectors = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar nestedMark = false;\n\t\tvar nestedDepth = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ',':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (nestedDepth > 0) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tselectors.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tquoted = false;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\tcase ')':\n\t\t\t\tcase '[':\n\t\t\t\tcase ']':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (charIsNestedMarkMirror(char, nestedMark)) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth--;\n\n\t\t\t\t\t\tif (nestedDepth === 0) {\n\t\t\t\t\t\t\tnestedMark = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (char === nestedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth++;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tnestedDepth++;\n\t\t\t\t\tnestedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t}\n\t\t}\n\n\t\tselectors.push(current);\n\n\t\treturn selectors;\n\t}\n\n\tfunction replaceAllWithTempAttr(query, nested, callback) {\n\t\tvar inner = pseudoClassHasInnerQuery(query);\n\t\tif (!inner) {\n\t\t\treturn query;\n\t\t}\n\n\t\tif (nested) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar innerQuery = inner.innerQuery;\n\t\tvar attr = 'q-has' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\tvar innerReplacement = '[' + attr + ']';\n\n\t\tvar x = query;\n\n\t\tif (inner.innerQuery.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar innerParts = splitSelector(inner.innerQuery);\n\t\t\tvar newInnerParts = [];\n\t\t\tfor (var i = 0; i < innerParts.length; i++) {\n\t\t\t\tvar innerPart = innerParts[i];\n\n\t\t\t\t// Nested has is not supported.\n\t\t\t\t// If a recursive/nested call returns \"false\" we replace with \":not(*)\"\n\t\t\t\tvar innerPartReplaced = replaceAllWithTempAttr(innerPart, true, function () { });\n\t\t\t\tif (!innerPartReplaced) {\n\t\t\t\t\tnewInnerParts.push(':not(*)');\n\t\t\t\t} else {\n\t\t\t\t\tnewInnerParts.push(innerPart);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\t\treturn _prefix + newInnerParts.join(', ') + _suffix;\n\t\t}\n\n\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\tx = _prefix + innerReplacement + _suffix;\n\n\t\tcallback(innerQuery, attr);\n\t\tif (x.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar y = replaceAllWithTempAttr(x, false, callback);\n\t\t\tif (y) {\n\t\t\t\treturn y;\n\t\t\t}\n\t\t}\n\n\t\treturn x;\n\t}\n\n\tfunction walkNode(rootNode, callback) {\n\t\tif (('setAttribute' in (rootNode)) && ('querySelector' in (rootNode))) {\n\t\t\tcallback(rootNode);\n\t\t}\n\n\t\tif (rootNode.hasChildNodes()) {\n\t\t\tvar nodes = rootNode.childNodes;\n\t\t\tfor (var i = 0; i < nodes.length; ++i) {\n\t\t\t\twalkNode(nodes[i], callback);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction polyfill(qsa) {\n\t\treturn function (selectors) {\n\t\t\tif ((selectors.toLowerCase().indexOf(':has(') === -1) || !pseudoClassHasInnerQuery(selectors)) {\n\t\t\t\treturn qsa.apply(this, arguments);\n\t\t\t}\n\n\t\t\tvar rootNode;\n\t\t\tif ('getRootNode' in this) {\n\t\t\t\trootNode = this.getRootNode();\n\t\t\t} else {\n\t\t\t\tvar r = this;\n\t\t\t\twhile (r) {\n\t\t\t\t\trootNode = r;\n\t\t\t\t\tr = r.parentNode;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _focus = this;\n\t\t\tif (_focus === global.document) {\n\t\t\t\t_focus = global.document.documentElement;\n\t\t\t}\n\n\t\t\tvar scopeAttr = 'q-has-scope' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t_focus.setAttribute(scopeAttr, '');\n\n\t\t\ttry {\n\t\t\t\tselectors = replaceScopeWithAttr(selectors, scopeAttr);\n\n\t\t\t\tvar attrs = [scopeAttr];\n\t\t\t\tvar newQuery = replaceAllWithTempAttr(selectors, false, function (inner, attr) {\n\t\t\t\t\tattrs.push(attr);\n\n\t\t\t\t\tvar selectorParts = splitSelector(inner);\n\t\t\t\t\tfor (var x = 0; x < selectorParts.length; x++) {\n\t\t\t\t\t\tvar selectorPart = selectorParts[x].trim();\n\t\t\t\t\t\tvar absoluteSelectorPart = selectorPart;\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tselectorPart[0] === '>' ||\n\t\t\t\t\t\t\tselectorPart[0] === '+' ||\n\t\t\t\t\t\t\tselectorPart[0] === '~'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tabsoluteSelectorPart = selectorPart.slice(1).trim();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tabsoluteSelectorPart = ':scope ' + selectorPart;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\twalkNode(rootNode, function (node) {\n\t\t\t\t\t\t\t\tif (!(node.querySelector(absoluteSelectorPart))) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tswitch (selectorPart[0]) {\n\t\t\t\t\t\t\t\t\tcase '~':\n\t\t\t\t\t\t\t\t\tcase '+':\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tvar siblings = node.childNodes;\n\t\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < siblings.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar sibling = siblings[i];\n\t\t\t\t\t\t\t\t\t\t\t\tif (!('setAttribute' in sibling)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope [' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tsibling.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase '>':\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\t\tnode.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope[' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tnode.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t// `:has` takes a forgiving selector list.\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\targuments[0] = newQuery;\n\n\t\t\t\t// results of the qsa\n\t\t\t\tvar elementOrNodeList = qsa.apply(this, arguments);\n\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// return the results of the qsa\n\t\t\t\treturn elementOrNodeList;\n\t\t\t} catch (err) {\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t};\n\t}\n})(self);\n","/* global MutationObserver,requestAnimationFrame,cancelAnimationFrame,self,HTMLElement */\n\nimport '@mrhenry/core-web/modules/~element-qsa-has.js';\nimport extractEncodedSelectors from './encode/extract.mjs';\nimport encodeCSS from './encode/encode.mjs';\n\nfunction hasNativeSupport() {\n\ttry {\n\t\tif (!('CSS' in self) || !('supports' in self.CSS) || !self.CSS.supports('selector(:has(div))')) {\n\t\t\treturn false;\n\t\t}\n\n\t} catch (_) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\nexport default function cssHasPseudo(document, options) {\n\t// OPTIONS\n\t{\n\t\tif (!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\toptions = {\n\t\t\thover: (!!options.hover) || false,\n\t\t\tdebug: (!!options.debug) || false,\n\t\t\tobservedAttributes: options.observedAttributes || [],\n\t\t\tforcePolyfill: (!!options.forcePolyfill) || false,\n\t\t};\n\n\t\toptions.mustPolyfill = options.forcePolyfill || !hasNativeSupport();\n\n\t\tif (!Array.isArray(options.observedAttributes)) {\n\t\t\toptions.observedAttributes = [];\n\t\t}\n\n\t\toptions.observedAttributes = options.observedAttributes.filter((x) => {\n\t\t\treturn (typeof x === 'string');\n\t\t});\n\n\t\t// https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n\t\t// `data-*` and `style` were omitted\n\t\toptions.observedAttributes = options.observedAttributes.concat(['accept', 'accept-charset', 'accesskey', 'action', 'align', 'allow', 'alt', 'async', 'autocapitalize', 'autocomplete', 'autofocus', 'autoplay', 'buffered', 'capture', 'challenge', 'charset', 'checked', 'cite', 'class', 'code', 'codebase', 'cols', 'colspan', 'content', 'contenteditable', 'contextmenu', 'controls', 'coords', 'crossorigin', 'csp', 'data', 'datetime', 'decoding', 'default', 'defer', 'dir', 'dirname', 'disabled', 'download', 'draggable', 'enctype', 'enterkeyhint', 'for', 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'headers', 'hidden', 'high', 'href', 'hreflang', 'http-equiv', 'icon', 'id', 'importance', 'integrity', 'intrinsicsize', 'inputmode', 'ismap', 'itemprop', 'keytype', 'kind', 'label', 'lang', 'language', 'list', 'loop', 'low', 'manifest', 'max', 'maxlength', 'minlength', 'media', 'method', 'min', 'multiple', 'muted', 'name', 'novalidate', 'open', 'optimum', 'pattern', 'ping', 'placeholder', 'poster', 'preload', 'radiogroup', 'readonly', 'referrerpolicy', 'rel', 'required', 'reversed', 'rows', 'rowspan', 'sandbox', 'scope', 'scoped', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src', 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'summary', 'tabindex', 'target', 'title', 'translate', 'type', 'usemap', 'value', 'width', 'wrap']);\n\t}\n\n\tconst observedItems = [];\n\n\t// document.createAttribute() doesn't support `:` in the name. innerHTML does\n\tconst attributeElement = document.createElement('x');\n\n\t// walk all stylesheets to collect observed css rules\n\t[].forEach.call(document.styleSheets, walkStyleSheet);\n\tif (!options.mustPolyfill) {\n\t\t// Cleanup of rules will have happened in `walkStyleSheet`\n\t\t// Native support will take over from here\n\t\treturn;\n\t}\n\n\ttransformObservedItemsThrottled();\n\n\t// observe DOM modifications that affect selectors\n\tif ('MutationObserver' in self) {\n\t\tconst mutationObserver = new MutationObserver((mutationsList) => {\n\t\t\tmutationsList.forEach(mutation => {\n\t\t\t\t[].forEach.call(mutation.addedNodes || [], node => {\n\t\t\t\t\t// walk stylesheets to collect observed css rules\n\t\t\t\t\tif (node.nodeType === 1 && node.sheet) {\n\t\t\t\t\t\twalkStyleSheet(node.sheet);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// transform observed css rules\n\t\t\t\tcleanupObservedCssRules();\n\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t});\n\t\t});\n\n\t\tmutationObserver.observe(document, { childList: true, subtree: true, attributes: true, attributeFilter: options.observedAttributes });\n\t}\n\n\t// observe DOM events that affect pseudo-selectors\n\tdocument.addEventListener('focus', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('blur', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('input', transformObservedItemsThrottled);\n\tdocument.addEventListener('change', transformObservedItemsThrottled, true);\n\n\tif (options.hover) {\n\t\tif ('onpointerenter' in document) {\n\t\t\tdocument.addEventListener('pointerenter', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('pointerleave', transformObservedItemsThrottled, true);\n\t\t} else {\n\t\t\tdocument.addEventListener('mouseover', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('mouseout', transformObservedItemsThrottled, true);\n\t\t}\n\t}\n\n\t// observe Javascript setters that effect pseudo-selectors\n\tif ('defineProperty' in Object && 'getOwnPropertyDescriptor' in Object && 'hasOwnProperty' in Object) {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-inner-declarations\n\t\t\tfunction observeProperty(proto, property) {\n\t\t\t\t// eslint-disable-next-line no-prototype-builtins\n\t\t\t\tif (proto.hasOwnProperty(property)) {\n\t\t\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(proto, property);\n\t\t\t\t\tif (descriptor && descriptor.configurable && 'set' in descriptor) {\n\t\t\t\t\t\tObject.defineProperty(proto, property, {\n\t\t\t\t\t\t\tconfigurable: descriptor.configurable,\n\t\t\t\t\t\t\tenumerable: descriptor.enumerable,\n\t\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\t\treturn descriptor.get.apply(this, arguments);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tset: function () {\n\t\t\t\t\t\t\t\tdescriptor.set.apply(this, arguments);\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\t\t// should never happen as there is an inner try/catch\n\t\t\t\t\t\t\t\t\t// but just in case\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ('HTMLElement' in self && HTMLElement.prototype) {\n\t\t\t\tobserveProperty(HTMLElement.prototype, 'disabled');\n\t\t\t}\n\n\t\t\t// Not all of these elements have all of these properties.\n\t\t\t// But the code above checks if they exist first.\n\t\t\t['checked', 'selected', 'readOnly', 'required'].forEach((property) => {\n\t\t\t\t[\n\t\t\t\t\t'HTMLButtonElement',\n\t\t\t\t\t'HTMLFieldSetElement',\n\t\t\t\t\t'HTMLInputElement',\n\t\t\t\t\t'HTMLMeterElement',\n\t\t\t\t\t'HTMLOptGroupElement',\n\t\t\t\t\t'HTMLOptionElement',\n\t\t\t\t\t'HTMLOutputElement',\n\t\t\t\t\t'HTMLProgressElement',\n\t\t\t\t\t'HTMLSelectElement',\n\t\t\t\t\t'HTMLTextAreaElement',\n\t\t\t\t].forEach((elementName) => {\n\t\t\t\t\tif (elementName in self && self[elementName].prototype) {\n\t\t\t\t\t\tobserveProperty(self[elementName].prototype, property);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tlet transformObservedItemsThrottledBusy = false;\n\tfunction transformObservedItemsThrottled() {\n\t\tif (transformObservedItemsThrottledBusy) {\n\t\t\tcancelAnimationFrame(transformObservedItemsThrottledBusy);\n\t\t}\n\n\t\ttransformObservedItemsThrottledBusy = requestAnimationFrame(() => {\n\t\t\ttransformObservedItems();\n\t\t});\n\t}\n\n\t// transform observed css rules\n\tfunction transformObservedItems() {\n\t\tobservedItems.forEach((item) => {\n\t\t\tconst nodes = [];\n\n\t\t\tlet matches = [];\n\t\t\ttry {\n\t\t\t\tmatches = document.querySelectorAll(item.selector);\n\t\t\t} catch (e) {\n\t\t\t\tif (options.debug) {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t[].forEach.call(matches, (element) => {\n\t\t\t\t// memorize the node\n\t\t\t\tnodes.push(element);\n\n\t\t\t\t// set an attribute with an irregular attribute name\n\t\t\t\t// document.createAttribute() doesn't support special characters\n\t\t\t\tattributeElement.innerHTML = '<x ' + item.attributeName + '>';\n\n\t\t\t\telement.setAttributeNode(attributeElement.children[0].attributes[0].cloneNode());\n\n\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t});\n\n\t\t\t// remove the encoded attribute from all nodes that no longer match them\n\t\t\titem.nodes.forEach(node => {\n\t\t\t\tif (nodes.indexOf(node) === -1) {\n\t\t\t\t\tnode.removeAttribute(item.attributeName);\n\n\t\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// update the\n\t\t\titem.nodes = nodes;\n\t\t});\n\t}\n\n\t// remove any observed cssrules that no longer apply\n\tfunction cleanupObservedCssRules() {\n\t\t[].push.apply(\n\t\t\tobservedItems,\n\t\t\tobservedItems.splice(0).filter((item) => {\n\t\t\t\treturn item.rule.parentStyleSheet &&\n\t\t\t\t\titem.rule.parentStyleSheet.ownerNode &&\n\t\t\t\t\tdocument.documentElement.contains(item.rule.parentStyleSheet.ownerNode);\n\t\t\t}),\n\t\t);\n\t}\n\n\t// walk a stylesheet to collect observed css rules\n\tfunction walkStyleSheet(styleSheet) {\n\t\ttry {\n\t\t\t// walk a css rule to collect observed css rules\n\t\t\t[].forEach.call(styleSheet.cssRules || [], (rule, index) => {\n\t\t\t\tif (rule.selectorText) {\n\t\t\t\t\trule.selectorText = rule.selectorText.replace(/\\.js-has-pseudo\\s/g, '');\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// decode the selector text in all browsers to:\n\t\t\t\t\t\tconst hasSelectors = extractEncodedSelectors(rule.selectorText.toString());\n\t\t\t\t\t\tif (hasSelectors.length === 0) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!options.mustPolyfill) {\n\t\t\t\t\t\t\tstyleSheet.deleteRule(index);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (let i = 0; i < hasSelectors.length; i++) {\n\t\t\t\t\t\t\tconst hasSelector = hasSelectors[i];\n\t\t\t\t\t\t\tobservedItems.push({\n\t\t\t\t\t\t\t\trule: rule,\n\t\t\t\t\t\t\t\tselector: hasSelector,\n\t\t\t\t\t\t\t\tattributeName: encodeCSS(hasSelector),\n\t\t\t\t\t\t\t\tnodes: [],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tif (options.debug) {\n\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\twalkStyleSheet(rule);\n\t\t\t\t}\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n}\n","import decodeCSS from './decode.mjs';\n\n/** Extract encoded selectors out of attribute selectors */\nexport default function extractEncodedSelectors(value) {\n\tlet out = [];\n\n\tlet depth = 0;\n\tlet candidate;\n\n\tlet quoted = false;\n\tlet quotedMark;\n\n\tlet containsUnescapedUnquotedHasAtDepth1 = false;\n\n\t// Stryker disable next-line EqualityOperator\n\tfor (let i = 0; i < value.length; i++) {\n\t\tconst char = value[i];\n\n\t\tswitch (char) {\n\t\t\tcase '[':\n\t\t\t\tif (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (depth === 0) {\n\t\t\t\t\tcandidate = '';\n\t\t\t\t} else {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t}\n\n\t\t\t\tdepth++;\n\t\t\t\tcontinue;\n\t\t\tcase ']':\n\t\t\t\tif (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t{\n\t\t\t\t\tdepth--;\n\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\tconst decoded = decodeCSS(candidate);\n\t\t\t\t\t\tif (containsUnescapedUnquotedHasAtDepth1) {\n\t\t\t\t\t\t\tout.push(decoded);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcandidate += char;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\tcase '\\\\':\n\t\t\t\tcandidate += value[i];\n\t\t\t\tcandidate += value[i+1];\n\t\t\t\ti++;\n\t\t\t\tcontinue;\n\n\t\t\tcase '\"':\n\t\t\tcase '\\'':\n\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tquoted = true;\n\t\t\t\tquotedMark = char;\n\t\t\t\tcontinue;\n\n\t\t\tdefault:\n\t\t\t\tif (candidate === '' && depth === 1 && (value.slice(i, i + 13) === 'csstools-has-')) {\n\t\t\t\t\tcontainsUnescapedUnquotedHasAtDepth1 = true;\n\t\t\t\t}\n\n\t\t\t\tcandidate += char;\n\t\t\t\tcontinue;\n\t\t}\n\t}\n\n\tconst unique = [];\n\tfor (let i = 0; i < out.length; i++) {\n\t\tif (unique.indexOf(out[i]) === -1) {\n\t\t\tunique.push(out[i]);\n\t\t}\n\t}\n\n\treturn unique;\n}\n"],"names":["decodeCSS","value","slice","values","split","result","i","length","String","fromCharCode","parseInt","encodeCSS","hex","charCodeAt","toString","global","document","querySelector","_","querySelectorWithHasElement","polyfill","Element","prototype","selectors","apply","this","arguments","querySelectorAllWithHasElement","querySelectorAll","matches","matchesWithHasElement","closest","closestWithHasElement","Document","querySelectorWithHasDocument","querySelectorAllWithHasDocument","matchesWithHasDocument","closestWithHasDocument","pseudoClassHasInnerQuery","query","current","start","depth","escaped","quoted","quotedMark","inHas","char","toLowerCase","innerQuery","end","replaceScopeWithAttr","attr","parts","bracketed","test","push","join","splitSelector","mark","nestedMark","nestedDepth","replaceAllWithTempAttr","nested","callback","inner","Math","floor","random","innerReplacement","x","indexOf","innerParts","newInnerParts","innerPart","_prefix","substring","_suffix","y","walkNode","rootNode","hasChildNodes","nodes","childNodes","qsa","getRootNode","r","parentNode","_focus","documentElement","scopeAttr","setAttribute","attrs","newQuery","selectorParts","selectorPart","trim","absoluteSelectorPart","node","siblings","sibling","idAttr","removeAttribute","elementOrNodeList","attrsForQuery","j","elements","k","element","l","err","self","options","hover","debug","observedAttributes","forcePolyfill","mustPolyfill","CSS","supports","hasNativeSupport","Array","isArray","filter","concat","observedItems","attributeElement","createElement","forEach","call","styleSheets","walkStyleSheet","transformObservedItemsThrottled","MutationObserver","mutationsList","mutation","addedNodes","nodeType","sheet","splice","item","rule","parentStyleSheet","ownerNode","contains","observe","childList","subtree","attributes","attributeFilter","addEventListener","Object","observeProperty","proto","property","hasOwnProperty","descriptor","getOwnPropertyDescriptor","configurable","defineProperty","enumerable","get","set","HTMLElement","elementName","e","console","error","transformObservedItemsThrottledBusy","cancelAnimationFrame","requestAnimationFrame","selector","innerHTML","attributeName","setAttributeNode","children","cloneNode","style","zoom","styleSheet","cssRules","index","selectorText","replace","hasSelectors","candidate","out","containsUnescapedUnquotedHasAtDepth1","decoded","unique","extractEncodedSelectors","deleteRule","hasSelector"],"mappings":"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"}
1
+ {"version":3,"file":"browser.cjs","sources":["../src/encode/decode.mjs","../src/encode/extract.mjs","../src/encode/encode.mjs","../src/browser.js","../../../node_modules/@mrhenry/core-web/modules/~element-qsa-has.js"],"sourcesContent":["\n/** Decodes an identifier back into a CSS selector */\nexport default function decodeCSS(value) {\n\tif (value.slice(0, 13) !== 'csstools-has-') {\n\t\treturn '';\n\t}\n\n\tvalue = value.slice(13);\n\tlet values = value.split('-');\n\n\tlet result = '';\n\tfor (let i = 0; i < values.length; i++) {\n\t\tresult += String.fromCharCode(parseInt(values[i], 36));\n\t}\n\n\treturn result;\n}\n","import decodeCSS from './decode.mjs';\n\n/** Extract encoded selectors out of attribute selectors */\nexport default function extractEncodedSelectors(value) {\n\tlet out = [];\n\n\tlet depth = 0;\n\tlet candidate;\n\n\tlet quoted = false;\n\tlet quotedMark;\n\n\tlet containsUnescapedUnquotedHasAtDepth1 = false;\n\n\t// Stryker disable next-line EqualityOperator\n\tfor (let i = 0; i < value.length; i++) {\n\t\tconst char = value[i];\n\n\t\tswitch (char) {\n\t\t\tcase '[':\n\t\t\t\tif (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (depth === 0) {\n\t\t\t\t\tcandidate = '';\n\t\t\t\t} else {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t}\n\n\t\t\t\tdepth++;\n\t\t\t\tcontinue;\n\t\t\tcase ']':\n\t\t\t\tif (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t{\n\t\t\t\t\tdepth--;\n\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\tconst decoded = decodeCSS(candidate);\n\t\t\t\t\t\tif (containsUnescapedUnquotedHasAtDepth1) {\n\t\t\t\t\t\t\tout.push(decoded);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcandidate += char;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\tcase '\\\\':\n\t\t\t\tcandidate += value[i];\n\t\t\t\tcandidate += value[i+1];\n\t\t\t\ti++;\n\t\t\t\tcontinue;\n\n\t\t\tcase '\"':\n\t\t\tcase '\\'':\n\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tquoted = true;\n\t\t\t\tquotedMark = char;\n\t\t\t\tcontinue;\n\n\t\t\tdefault:\n\t\t\t\tif (candidate === '' && depth === 1 && (value.slice(i, i + 13) === 'csstools-has-')) {\n\t\t\t\t\tcontainsUnescapedUnquotedHasAtDepth1 = true;\n\t\t\t\t}\n\n\t\t\t\tcandidate += char;\n\t\t\t\tcontinue;\n\t\t}\n\t}\n\n\tconst unique = [];\n\tfor (let i = 0; i < out.length; i++) {\n\t\tif (unique.indexOf(out[i]) === -1) {\n\t\t\tunique.push(out[i]);\n\t\t}\n\t}\n\n\treturn unique;\n}\n","\n/** Returns the string as an encoded CSS identifier. */\nexport default function encodeCSS(value) {\n\tif (value === '') {\n\t\treturn '';\n\t}\n\n\tlet hex;\n\tlet result = '';\n\tfor (let i = 0; i < value.length; i++) {\n\t\thex = value.charCodeAt(i).toString(36);\n\t\tif (i === 0) {\n\t\t\tresult += hex;\n\t\t} else {\n\t\t\tresult += '-' + hex;\n\t\t}\n\t}\n\n\treturn 'csstools-has-' + result;\n}\n","/* global MutationObserver,requestAnimationFrame,cancelAnimationFrame,self,HTMLElement */\n\nimport '@mrhenry/core-web/modules/~element-qsa-has.js';\nimport extractEncodedSelectors from './encode/extract.mjs';\nimport encodeCSS from './encode/encode.mjs';\n\nfunction hasNativeSupport() {\n\ttry {\n\t\tif (!('CSS' in self) || !('supports' in self.CSS) || !self.CSS.supports('selector(:has(div))')) {\n\t\t\treturn false;\n\t\t}\n\n\t} catch (_) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\nexport default function cssHasPseudo(document, options) {\n\t// OPTIONS\n\t{\n\t\tif (!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\toptions = {\n\t\t\thover: (!!options.hover) || false,\n\t\t\tdebug: (!!options.debug) || false,\n\t\t\tobservedAttributes: options.observedAttributes || [],\n\t\t\tforcePolyfill: (!!options.forcePolyfill) || false,\n\t\t};\n\n\t\toptions.mustPolyfill = options.forcePolyfill || !hasNativeSupport();\n\n\t\tif (!Array.isArray(options.observedAttributes)) {\n\t\t\toptions.observedAttributes = [];\n\t\t}\n\n\t\toptions.observedAttributes = options.observedAttributes.filter((x) => {\n\t\t\treturn (typeof x === 'string');\n\t\t});\n\n\t\t// https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n\t\t// `data-*` and `style` were omitted\n\t\toptions.observedAttributes = options.observedAttributes.concat(['accept', 'accept-charset', 'accesskey', 'action', 'align', 'allow', 'alt', 'async', 'autocapitalize', 'autocomplete', 'autofocus', 'autoplay', 'buffered', 'capture', 'challenge', 'charset', 'checked', 'cite', 'class', 'code', 'codebase', 'cols', 'colspan', 'content', 'contenteditable', 'contextmenu', 'controls', 'coords', 'crossorigin', 'csp', 'data', 'datetime', 'decoding', 'default', 'defer', 'dir', 'dirname', 'disabled', 'download', 'draggable', 'enctype', 'enterkeyhint', 'for', 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'headers', 'hidden', 'high', 'href', 'hreflang', 'http-equiv', 'icon', 'id', 'importance', 'integrity', 'intrinsicsize', 'inputmode', 'ismap', 'itemprop', 'keytype', 'kind', 'label', 'lang', 'language', 'list', 'loop', 'low', 'manifest', 'max', 'maxlength', 'minlength', 'media', 'method', 'min', 'multiple', 'muted', 'name', 'novalidate', 'open', 'optimum', 'pattern', 'ping', 'placeholder', 'poster', 'preload', 'radiogroup', 'readonly', 'referrerpolicy', 'rel', 'required', 'reversed', 'rows', 'rowspan', 'sandbox', 'scope', 'scoped', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src', 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'summary', 'tabindex', 'target', 'title', 'translate', 'type', 'usemap', 'value', 'width', 'wrap']);\n\t}\n\n\tconst observedItems = [];\n\n\t// document.createAttribute() doesn't support `:` in the name. innerHTML does\n\tconst attributeElement = document.createElement('x');\n\n\t// walk all stylesheets to collect observed css rules\n\t[].forEach.call(document.styleSheets, walkStyleSheet);\n\tif (!options.mustPolyfill) {\n\t\t// Cleanup of rules will have happened in `walkStyleSheet`\n\t\t// Native support will take over from here\n\t\treturn;\n\t}\n\n\ttransformObservedItemsThrottled();\n\n\t// observe DOM modifications that affect selectors\n\tif ('MutationObserver' in self) {\n\t\tconst mutationObserver = new MutationObserver((mutationsList) => {\n\t\t\tmutationsList.forEach(mutation => {\n\t\t\t\t[].forEach.call(mutation.addedNodes || [], node => {\n\t\t\t\t\t// walk stylesheets to collect observed css rules\n\t\t\t\t\tif (node.nodeType === 1 && node.sheet) {\n\t\t\t\t\t\twalkStyleSheet(node.sheet);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// transform observed css rules\n\t\t\t\tcleanupObservedCssRules();\n\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t});\n\t\t});\n\n\t\tmutationObserver.observe(document, { childList: true, subtree: true, attributes: true, attributeFilter: options.observedAttributes });\n\t}\n\n\t// observe DOM events that affect pseudo-selectors\n\tdocument.addEventListener('focus', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('blur', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('input', transformObservedItemsThrottled);\n\tdocument.addEventListener('change', transformObservedItemsThrottled, true);\n\n\tif (options.hover) {\n\t\tif ('onpointerenter' in document) {\n\t\t\tdocument.addEventListener('pointerenter', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('pointerleave', transformObservedItemsThrottled, true);\n\t\t} else {\n\t\t\tdocument.addEventListener('mouseover', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('mouseout', transformObservedItemsThrottled, true);\n\t\t}\n\t}\n\n\t// observe Javascript setters that effect pseudo-selectors\n\tif ('defineProperty' in Object && 'getOwnPropertyDescriptor' in Object && 'hasOwnProperty' in Object) {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-inner-declarations\n\t\t\tfunction observeProperty(proto, property) {\n\t\t\t\t// eslint-disable-next-line no-prototype-builtins\n\t\t\t\tif (proto.hasOwnProperty(property)) {\n\t\t\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(proto, property);\n\t\t\t\t\tif (descriptor && descriptor.configurable && 'set' in descriptor) {\n\t\t\t\t\t\tObject.defineProperty(proto, property, {\n\t\t\t\t\t\t\tconfigurable: descriptor.configurable,\n\t\t\t\t\t\t\tenumerable: descriptor.enumerable,\n\t\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\t\treturn descriptor.get.apply(this, arguments);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tset: function () {\n\t\t\t\t\t\t\t\tdescriptor.set.apply(this, arguments);\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\t\t// should never happen as there is an inner try/catch\n\t\t\t\t\t\t\t\t\t// but just in case\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ('HTMLElement' in self && HTMLElement.prototype) {\n\t\t\t\tobserveProperty(HTMLElement.prototype, 'disabled');\n\t\t\t}\n\n\t\t\t// Not all of these elements have all of these properties.\n\t\t\t// But the code above checks if they exist first.\n\t\t\t['checked', 'selected', 'readOnly', 'required'].forEach((property) => {\n\t\t\t\t[\n\t\t\t\t\t'HTMLButtonElement',\n\t\t\t\t\t'HTMLFieldSetElement',\n\t\t\t\t\t'HTMLInputElement',\n\t\t\t\t\t'HTMLMeterElement',\n\t\t\t\t\t'HTMLOptGroupElement',\n\t\t\t\t\t'HTMLOptionElement',\n\t\t\t\t\t'HTMLOutputElement',\n\t\t\t\t\t'HTMLProgressElement',\n\t\t\t\t\t'HTMLSelectElement',\n\t\t\t\t\t'HTMLTextAreaElement',\n\t\t\t\t].forEach((elementName) => {\n\t\t\t\t\tif (elementName in self && self[elementName].prototype) {\n\t\t\t\t\t\tobserveProperty(self[elementName].prototype, property);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tlet transformObservedItemsThrottledBusy = false;\n\tfunction transformObservedItemsThrottled() {\n\t\tif (transformObservedItemsThrottledBusy) {\n\t\t\tcancelAnimationFrame(transformObservedItemsThrottledBusy);\n\t\t}\n\n\t\ttransformObservedItemsThrottledBusy = requestAnimationFrame(() => {\n\t\t\ttransformObservedItems();\n\t\t});\n\t}\n\n\t// transform observed css rules\n\tfunction transformObservedItems() {\n\t\tobservedItems.forEach((item) => {\n\t\t\tconst nodes = [];\n\n\t\t\tlet matches = [];\n\t\t\ttry {\n\t\t\t\tmatches = document.querySelectorAll(item.selector);\n\t\t\t} catch (e) {\n\t\t\t\tif (options.debug) {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t[].forEach.call(matches, (element) => {\n\t\t\t\t// memorize the node\n\t\t\t\tnodes.push(element);\n\n\t\t\t\t// set an attribute with an irregular attribute name\n\t\t\t\t// document.createAttribute() doesn't support special characters\n\t\t\t\tattributeElement.innerHTML = '<x ' + item.attributeName + '>';\n\n\t\t\t\telement.setAttributeNode(attributeElement.children[0].attributes[0].cloneNode());\n\n\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t});\n\n\t\t\t// remove the encoded attribute from all nodes that no longer match them\n\t\t\titem.nodes.forEach(node => {\n\t\t\t\tif (nodes.indexOf(node) === -1) {\n\t\t\t\t\tnode.removeAttribute(item.attributeName);\n\n\t\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// update the\n\t\t\titem.nodes = nodes;\n\t\t});\n\t}\n\n\t// remove any observed cssrules that no longer apply\n\tfunction cleanupObservedCssRules() {\n\t\t[].push.apply(\n\t\t\tobservedItems,\n\t\t\tobservedItems.splice(0).filter((item) => {\n\t\t\t\treturn item.rule.parentStyleSheet &&\n\t\t\t\t\titem.rule.parentStyleSheet.ownerNode &&\n\t\t\t\t\tdocument.documentElement.contains(item.rule.parentStyleSheet.ownerNode);\n\t\t\t}),\n\t\t);\n\t}\n\n\t// walk a stylesheet to collect observed css rules\n\tfunction walkStyleSheet(styleSheet) {\n\t\ttry {\n\t\t\t// walk a css rule to collect observed css rules\n\t\t\t[].forEach.call(styleSheet.cssRules || [], (rule, index) => {\n\t\t\t\tif (rule.selectorText) {\n\t\t\t\t\trule.selectorText = rule.selectorText.replace(/\\.js-has-pseudo\\s/g, '');\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// decode the selector text in all browsers to:\n\t\t\t\t\t\tconst hasSelectors = extractEncodedSelectors(rule.selectorText.toString());\n\t\t\t\t\t\tif (hasSelectors.length === 0) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!options.mustPolyfill) {\n\t\t\t\t\t\t\tstyleSheet.deleteRule(index);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (let i = 0; i < hasSelectors.length; i++) {\n\t\t\t\t\t\t\tconst hasSelector = hasSelectors[i];\n\t\t\t\t\t\t\tobservedItems.push({\n\t\t\t\t\t\t\t\trule: rule,\n\t\t\t\t\t\t\t\tselector: hasSelector,\n\t\t\t\t\t\t\t\tattributeName: encodeCSS(hasSelector),\n\t\t\t\t\t\t\t\tnodes: [],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tif (options.debug) {\n\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\twalkStyleSheet(rule);\n\t\t\t\t}\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n}\n","/* eslint-disable */\n(function (global) {\n\ttry {\n\t\t// test for has support\n\t\tglobal.document.querySelector(':has(*, :does-not-exist, > *)');\n\n\t\tif (\n\t\t\t!global.document.querySelector(':has(:scope *)') &&\n\t\t\tCSS.supports('selector(:has(div))')\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t} catch (_) { }\n\n\t// ELEMENT\n\t// polyfill Element#querySelector\n\tvar querySelectorWithHasElement = polyfill(global.Element.prototype.querySelector);\n\n\tglobal.Element.prototype.querySelector = function querySelector(selectors) {\n\t\treturn querySelectorWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#querySelectorAll\n\tvar querySelectorAllWithHasElement = polyfill(global.Element.prototype.querySelectorAll);\n\n\tglobal.Element.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\treturn querySelectorAllWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#matches\n\tif (global.Element.prototype.matches) {\n\t\tvar matchesWithHasElement = polyfill(global.Element.prototype.matches);\n\n\t\tglobal.Element.prototype.matches = function matches(selectors) {\n\t\t\treturn matchesWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// polyfill Element#closest\n\tif (global.Element.prototype.closest) {\n\t\tvar closestWithHasElement = polyfill(global.Element.prototype.closest);\n\n\t\tglobal.Element.prototype.closest = function closest(selectors) {\n\t\t\treturn closestWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// DOCUMENT\n\tif ('Document' in global && 'prototype' in global.Document) {\n\t\t// polyfill Document#querySelector\n\t\tvar querySelectorWithHasDocument = polyfill(global.Document.prototype.querySelector);\n\n\t\tglobal.Document.prototype.querySelector = function querySelector(selectors) {\n\t\t\treturn querySelectorWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#querySelectorAll\n\t\tvar querySelectorAllWithHasDocument = polyfill(global.Document.prototype.querySelectorAll);\n\n\t\tglobal.Document.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\t\treturn querySelectorAllWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#matches\n\t\tif (global.Document.prototype.matches) {\n\t\t\tvar matchesWithHasDocument = polyfill(global.Document.prototype.matches);\n\n\t\t\tglobal.Document.prototype.matches = function matches(selectors) {\n\t\t\t\treturn matchesWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\n\t\t// polyfill Document#closest\n\t\tif (global.Document.prototype.closest) {\n\t\t\tvar closestWithHasDocument = polyfill(global.Document.prototype.closest);\n\n\t\t\tglobal.Document.prototype.closest = function closest(selectors) {\n\t\t\t\treturn closestWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction pseudoClassHasInnerQuery(query) {\n\t\tvar current = '';\n\t\tvar start = 0;\n\t\tvar depth = 0;\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar inHas = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':has(' && !inHas) {\n\t\t\t\tinHas = true;\n\t\t\t\tstart = i;\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tif (!inHas) {\n\t\t\t\t\t\tcurrent = '';\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tdepth++;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase ')':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tinnerQuery: current,\n\t\t\t\t\t\t\t\tstart: start,\n\t\t\t\t\t\t\t\tend: i-1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdepth--;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction replaceScopeWithAttr(query, attr) {\n\t\tvar parts = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':scope' && !bracketed && (/^[\\[\\.\\:\\\\\"\\s|+>~#&,)]/.test(char || ''))) {\n\t\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\t\tparts.push('[' + attr + ']');\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tparts.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (current.toLowerCase() === ':scope') {\n\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\tparts.push('[' + attr + ']');\n\t\t\tcurrent = '';\n\t\t}\n\n\t\tif (parts.length === 0) {\n\t\t\treturn query;\n\t\t}\n\n\t\treturn parts.join('') + current;\n\t}\n\n\tfunction charIsNestedMarkMirror(char, mark) {\n\t\tif (mark === '(' && char === ')') {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (mark === '[' && char === ']') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction splitSelector(query) {\n\t\tvar selectors = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar nestedMark = false;\n\t\tvar nestedDepth = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ',':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (nestedDepth > 0) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tselectors.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tquoted = false;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\tcase ')':\n\t\t\t\tcase '[':\n\t\t\t\tcase ']':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (charIsNestedMarkMirror(char, nestedMark)) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth--;\n\n\t\t\t\t\t\tif (nestedDepth === 0) {\n\t\t\t\t\t\t\tnestedMark = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (char === nestedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth++;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tnestedDepth++;\n\t\t\t\t\tnestedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t}\n\t\t}\n\n\t\tselectors.push(current);\n\n\t\treturn selectors;\n\t}\n\n\tfunction replaceAllWithTempAttr(query, nested, callback) {\n\t\tvar inner = pseudoClassHasInnerQuery(query);\n\t\tif (!inner) {\n\t\t\treturn query;\n\t\t}\n\n\t\tif (nested) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar innerQuery = inner.innerQuery;\n\t\tvar attr = 'q-has' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\tvar innerReplacement = '[' + attr + ']';\n\n\t\tvar x = query;\n\n\t\tif (inner.innerQuery.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar innerParts = splitSelector(inner.innerQuery);\n\t\t\tvar newInnerParts = [];\n\t\t\tfor (var i = 0; i < innerParts.length; i++) {\n\t\t\t\tvar innerPart = innerParts[i];\n\n\t\t\t\t// Nested has is not supported.\n\t\t\t\t// If a recursive/nested call returns \"false\" we throw\n\t\t\t\tvar innerPartReplaced = replaceAllWithTempAttr(innerPart, true, function () { });\n\t\t\t\tif (!innerPartReplaced) {\n\t\t\t\t\tthrow new Error(\"Nested :has() is not supported\")\n\t\t\t\t} else {\n\t\t\t\t\tnewInnerParts.push(innerPart);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\t\treturn _prefix + newInnerParts.join(', ') + _suffix;\n\t\t}\n\n\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\tx = _prefix + innerReplacement + _suffix;\n\n\t\tcallback(innerQuery, attr);\n\t\tif (x.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar y = replaceAllWithTempAttr(x, false, callback);\n\t\t\tif (y) {\n\t\t\t\treturn y;\n\t\t\t}\n\t\t}\n\n\t\treturn x;\n\t}\n\n\tfunction walkNode(rootNode, callback) {\n\t\tif (('setAttribute' in (rootNode)) && ('querySelector' in (rootNode))) {\n\t\t\tcallback(rootNode);\n\t\t}\n\n\t\tif (rootNode.hasChildNodes()) {\n\t\t\tvar nodes = rootNode.childNodes;\n\t\t\tfor (var i = 0; i < nodes.length; ++i) {\n\t\t\t\twalkNode(nodes[i], callback);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction polyfill(qsa) {\n\t\treturn function (selectors) {\n\t\t\tif ((selectors.toLowerCase().indexOf(':has(') === -1) || !pseudoClassHasInnerQuery(selectors)) {\n\t\t\t\treturn qsa.apply(this, arguments);\n\t\t\t}\n\n\t\t\tvar rootNode;\n\t\t\tif ('getRootNode' in this) {\n\t\t\t\trootNode = this.getRootNode();\n\t\t\t} else {\n\t\t\t\tvar r = this;\n\t\t\t\twhile (r) {\n\t\t\t\t\trootNode = r;\n\t\t\t\t\tr = r.parentNode;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _focus = this;\n\t\t\tif (_focus === global.document) {\n\t\t\t\t_focus = global.document.documentElement;\n\t\t\t}\n\n\t\t\tvar scopeAttr = 'q-has-scope' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t_focus.setAttribute(scopeAttr, '');\n\n\t\t\ttry {\n\t\t\t\tselectors = replaceScopeWithAttr(selectors, scopeAttr);\n\n\t\t\t\tvar attrs = [scopeAttr];\n\t\t\t\tvar newQuery = replaceAllWithTempAttr(selectors, false, function (inner, attr) {\n\t\t\t\t\tattrs.push(attr);\n\n\t\t\t\t\tvar selectorParts = splitSelector(inner);\n\t\t\t\t\tfor (var x = 0; x < selectorParts.length; x++) {\n\t\t\t\t\t\tvar selectorPart = selectorParts[x].trim();\n\t\t\t\t\t\tvar absoluteSelectorPart = selectorPart;\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tselectorPart[0] === '>' ||\n\t\t\t\t\t\t\tselectorPart[0] === '+' ||\n\t\t\t\t\t\t\tselectorPart[0] === '~'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tabsoluteSelectorPart = selectorPart.slice(1).trim();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tabsoluteSelectorPart = ':scope ' + selectorPart;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twalkNode(rootNode, function (node) {\n\t\t\t\t\t\t\tif (!(node.querySelector(absoluteSelectorPart))) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tswitch (selectorPart[0]) {\n\t\t\t\t\t\t\t\tcase '~':\n\t\t\t\t\t\t\t\tcase '+':\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tvar siblings = node.childNodes;\n\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < siblings.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\tvar sibling = siblings[i];\n\t\t\t\t\t\t\t\t\t\t\tif (!('setAttribute' in sibling)) {\n\t\t\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope [' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tsibling.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\tcase '>':\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\tnode.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope[' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tnode.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\targuments[0] = newQuery;\n\n\t\t\t\t// results of the qsa\n\t\t\t\tvar elementOrNodeList = qsa.apply(this, arguments);\n\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// return the results of the qsa\n\t\t\t\treturn elementOrNodeList;\n\t\t\t} catch (err) {\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar errorMessage = '';\n\t\t\t\ttry {\n\t\t\t\t\tqsa.apply(this, [':core-web-does-not-exist']);\n\t\t\t\t} catch (dummyError) {\n\t\t\t\t\terrorMessage = dummyError.message;\n\t\t\t\t\tif (errorMessage) {\n\t\t\t\t\t\terrorMessage = errorMessage.replace(':core-web-does-not-exist', selectors);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!errorMessage) {\n\t\t\t\t\terrorMessage = \"Failed to execute 'querySelector' on 'Document': '\" + selectors + \"' is not a valid selector.\";\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new DOMException(errorMessage);\n\t\t\t\t} catch (_) {\n\t\t\t\t\tthrow new Error(errorMessage);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n})(self);\n"],"names":["decodeCSS","value","slice","values","split","result","i","length","String","fromCharCode","parseInt","extractEncodedSelectors","candidate","quotedMark","out","depth","quoted","containsUnescapedUnquotedHasAtDepth1","char","decoded","push","unique","indexOf","encodeCSS","hex","charCodeAt","toString","hasNativeSupport","self","CSS","supports","_","global","document","querySelector","querySelectorWithHasElement","polyfill","Element","prototype","selectors","apply","this","arguments","querySelectorAllWithHasElement","querySelectorAll","matches","matchesWithHasElement","closest","closestWithHasElement","Document","querySelectorWithHasDocument","querySelectorAllWithHasDocument","matchesWithHasDocument","closestWithHasDocument","pseudoClassHasInnerQuery","query","current","start","escaped","inHas","toLowerCase","innerQuery","end","replaceScopeWithAttr","attr","parts","bracketed","test","join","splitSelector","mark","nestedMark","nestedDepth","replaceAllWithTempAttr","nested","callback","inner","Math","floor","random","innerReplacement","x","innerParts","newInnerParts","innerPart","Error","_prefix","substring","_suffix","y","walkNode","rootNode","hasChildNodes","nodes","childNodes","qsa","getRootNode","r","parentNode","_focus","documentElement","scopeAttr","setAttribute","attrs","newQuery","selectorParts","selectorPart","trim","absoluteSelectorPart","node","siblings","sibling","idAttr","removeAttribute","elementOrNodeList","attrsForQuery","j","elements","k","element","l","err","errorMessage","dummyError","message","replace","DOMException","cssHasPseudo","options","hover","debug","observedAttributes","forcePolyfill","mustPolyfill","Array","isArray","filter","concat","observedItems","attributeElement","createElement","forEach","call","styleSheets","walkStyleSheet","transformObservedItemsThrottled","MutationObserver","mutationsList","mutation","addedNodes","nodeType","sheet","splice","item","rule","parentStyleSheet","ownerNode","contains","observe","childList","subtree","attributes","attributeFilter","addEventListener","Object","observeProperty","proto","property","hasOwnProperty","descriptor","getOwnPropertyDescriptor","configurable","defineProperty","enumerable","get","set","HTMLElement","elementName","e","console","error","transformObservedItemsThrottledBusy","cancelAnimationFrame","requestAnimationFrame","selector","innerHTML","attributeName","setAttributeNode","children","cloneNode","style","zoom","styleSheet","cssRules","index","selectorText","hasSelectors","deleteRule","hasSelector"],"mappings":"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"}
package/dist/browser.mjs CHANGED
@@ -1,2 +1,2 @@
1
- function e(e){if("csstools-has-"!==e.slice(0,13))return"";for(var t=(e=e.slice(13)).split("-"),r="",n=0;n<t.length;n++)r+=String.fromCharCode(parseInt(t[n],36));return r}function t(e){if(""===e)return"";for(var t,r="",n=0;n<e.length;n++)t=e.charCodeAt(n).toString(36),r+=0===n?t:"-"+t;return"csstools-has-"+r}function r(r,n){n||(n={}),(n={hover:!!n.hover||!1,debug:!!n.debug||!1,observedAttributes:n.observedAttributes||[],forcePolyfill:!!n.forcePolyfill||!1}).mustPolyfill=n.forcePolyfill||!function(){try{if(!("CSS"in self)||!("supports"in self.CSS)||!self.CSS.supports("selector(:has(div))"))return!1}catch(e){return!1}return!0}(),Array.isArray(n.observedAttributes)||(n.observedAttributes=[]),n.observedAttributes=n.observedAttributes.filter((function(e){return"string"==typeof e})),n.observedAttributes=n.observedAttributes.concat(["accept","accept-charset","accesskey","action","align","allow","alt","async","autocapitalize","autocomplete","autofocus","autoplay","buffered","capture","challenge","charset","checked","cite","class","code","codebase","cols","colspan","content","contenteditable","contextmenu","controls","coords","crossorigin","csp","data","datetime","decoding","default","defer","dir","dirname","disabled","download","draggable","enctype","enterkeyhint","for","form","formaction","formenctype","formmethod","formnovalidate","formtarget","headers","hidden","high","href","hreflang","http-equiv","icon","id","importance","integrity","intrinsicsize","inputmode","ismap","itemprop","keytype","kind","label","lang","language","list","loop","low","manifest","max","maxlength","minlength","media","method","min","multiple","muted","name","novalidate","open","optimum","pattern","ping","placeholder","poster","preload","radiogroup","readonly","referrerpolicy","rel","required","reversed","rows","rowspan","sandbox","scope","scoped","selected","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","summary","tabindex","target","title","translate","type","usemap","value","width","wrap"]);var o=[],i=r.createElement("x");if([].forEach.call(r.styleSheets,u),n.mustPolyfill){if(a(),"MutationObserver"in self)new MutationObserver((function(e){e.forEach((function(e){[].forEach.call(e.addedNodes||[],(function(e){1===e.nodeType&&e.sheet&&u(e.sheet)})),[].push.apply(o,o.splice(0).filter((function(e){return e.rule.parentStyleSheet&&e.rule.parentStyleSheet.ownerNode&&r.documentElement.contains(e.rule.parentStyleSheet.ownerNode)}))),a()}))})).observe(r,{childList:!0,subtree:!0,attributes:!0,attributeFilter:n.observedAttributes});if(r.addEventListener("focus",a,!0),r.addEventListener("blur",a,!0),r.addEventListener("input",a),r.addEventListener("change",a,!0),n.hover&&("onpointerenter"in r?(r.addEventListener("pointerenter",a,!0),r.addEventListener("pointerleave",a,!0)):(r.addEventListener("mouseover",a,!0),r.addEventListener("mouseout",a,!0))),"defineProperty"in Object&&"getOwnPropertyDescriptor"in Object&&"hasOwnProperty"in Object)try{var s=function(e,t){if(e.hasOwnProperty(t)){var r=Object.getOwnPropertyDescriptor(e,t);r&&r.configurable&&"set"in r&&Object.defineProperty(e,t,{configurable:r.configurable,enumerable:r.enumerable,get:function(){return r.get.apply(this,arguments)},set:function(){r.set.apply(this,arguments);try{a()}catch(e){}}})}};"HTMLElement"in self&&HTMLElement.prototype&&s(HTMLElement.prototype,"disabled"),["checked","selected","readOnly","required"].forEach((function(e){["HTMLButtonElement","HTMLFieldSetElement","HTMLInputElement","HTMLMeterElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOutputElement","HTMLProgressElement","HTMLSelectElement","HTMLTextAreaElement"].forEach((function(t){t in self&&self[t].prototype&&s(self[t].prototype,e)}))}))}catch(e){n.debug&&console.error(e)}var c=!1}function a(){c&&cancelAnimationFrame(c),c=requestAnimationFrame((function(){o.forEach((function(e){var t=[],o=[];try{o=r.querySelectorAll(e.selector)}catch(e){return void(n.debug&&console.error(e))}[].forEach.call(o,(function(n){t.push(n),i.innerHTML="<x "+e.attributeName+">",n.setAttributeNode(i.children[0].attributes[0].cloneNode()),r.documentElement.style.zoom=1,r.documentElement.style.zoom=null})),e.nodes.forEach((function(n){-1===t.indexOf(n)&&(n.removeAttribute(e.attributeName),r.documentElement.style.zoom=1,r.documentElement.style.zoom=null)})),e.nodes=t}))}))}function u(r){try{[].forEach.call(r.cssRules||[],(function(i,s){if(i.selectorText){i.selectorText=i.selectorText.replace(/\.js-has-pseudo\s/g,"");try{var c=function(t){for(var r,n,o=[],i=0,s=!1,c=!1,a=0;a<t.length;a++){var u=t[a];switch(u){case"[":if(s){r+=u;continue}0===i?r="":r+=u,i++;continue;case"]":if(s){r+=u;continue}if(0==--i){var l=e(r);c&&o.push(l)}else r+=u;continue;case"\\":r+=t[a],r+=t[a+1],a++;continue;case'"':case"'":if(s&&u===n){s=!1;continue}if(s){r+=u;continue}s=!0,n=u;continue;default:""===r&&1===i&&"csstools-has-"===t.slice(a,a+13)&&(c=!0),r+=u;continue}}for(var f=[],p=0;p<o.length;p++)-1===f.indexOf(o[p])&&f.push(o[p]);return f}(i.selectorText.toString());if(0===c.length)return;if(!n.mustPolyfill)return void r.deleteRule(s);for(var a=0;a<c.length;a++){var l=c[a];o.push({rule:i,selector:l,attributeName:t(l),nodes:[]})}}catch(e){n.debug&&console.error(e)}}else u(i)}))}catch(e){n.debug&&console.error(e)}}}!function(e){try{if(e.document.querySelector(":has(*, :does-not-exist, > *)"),e.document.querySelector(":has(:has(any))"),!e.document.querySelector(":has(:scope *)"))return}catch(e){}var t=d(e.Element.prototype.querySelector);e.Element.prototype.querySelector=function(e){return t.apply(this,arguments)};var r=d(e.Element.prototype.querySelectorAll);if(e.Element.prototype.querySelectorAll=function(e){return r.apply(this,arguments)},e.Element.prototype.matches){var n=d(e.Element.prototype.matches);e.Element.prototype.matches=function(e){return n.apply(this,arguments)}}if(e.Element.prototype.closest){var o=d(e.Element.prototype.closest);e.Element.prototype.closest=function(e){return o.apply(this,arguments)}}if("Document"in e&&"prototype"in e.Document){var i=d(e.Document.prototype.querySelector);e.Document.prototype.querySelector=function(e){return i.apply(this,arguments)};var s=d(e.Document.prototype.querySelectorAll);if(e.Document.prototype.querySelectorAll=function(e){return s.apply(this,arguments)},e.Document.prototype.matches){var c=d(e.Document.prototype.matches);e.Document.prototype.matches=function(e){return c.apply(this,arguments)}}if(e.Document.prototype.closest){var a=d(e.Document.prototype.closest);e.Document.prototype.closest=function(e){return a.apply(this,arguments)}}}function u(e){for(var t="",r=0,n=0,o=!1,i=!1,s=!1,c=!1,a=0;a<e.length;a++){var u=e[a];if(o)t+=u,o=!1;else if(i)u===s&&(i=!1),t+=u;else switch(":has("!==t.toLowerCase()||c||(c=!0,r=a,t=""),u){case":":c||(t=""),t+=u;continue;case"(":c&&n++,t+=u;continue;case")":if(c){if(0===n)return{innerQuery:t,start:r,end:a-1};n--}t+=u;continue;case"\\":t+=u,o=!0;continue;case'"':case"'":t+=u,i=!0,s=u;continue;default:t+=u;continue}}return!1}function l(e,t){for(var r=[],n="",o=!1,i=!1,s=!1,c=0,a=0;a<e.length;a++){var u=e[a];if(o)n+=u,o=!1;else if(i)u===s&&(i=!1),n+=u;else switch(":scope"===n.toLowerCase()&&!c&&/^[\[\.\:\\"\s|+>~#&,)]/.test(u||"")&&(r.push(n.slice(0,n.length-6)),r.push("["+t+"]"),n=""),u){case":":r.push(n),n="",n+=u;continue;case"\\":n+=u,o=!0;continue;case'"':case"'":n+=u,i=!0,s=u;continue;case"[":n+=u,c++;continue;case"]":n+=u,c>0&&c--;continue;default:n+=u;continue}}return":scope"===n.toLowerCase()&&(r.push(n.slice(0,n.length-6)),r.push("["+t+"]"),n=""),0===r.length?e:r.join("")+n}function f(e){for(var t,r,n=[],o="",i=!1,s=!1,c=!1,a=!1,u=0,l=0;l<e.length;l++){var f=e[l];if(i)o+=f,i=!1;else switch(f){case",":if(s){o+=f;continue}if(u>0){o+=f;continue}n.push(o),o="";continue;case"\\":o+=f,i=!0;continue;case'"':case"'":if(s&&f===c){o+=f,s=!1;continue}o+=f,s=!0,c=f;continue;case"(":case")":case"[":case"]":if(s){o+=f;continue}if(t=f,"("===(r=a)&&")"===t||"["===r&&"]"===t){o+=f,0===--u&&(a=!1);continue}if(f===a){o+=f,u++;continue}o+=f,u++,a=f;continue;default:o+=f;continue}}return n.push(o),n}function p(e,t,r){var n=u(e);if(!n)return e;if(t)return!1;var o=n.innerQuery,i="q-has"+(Math.floor(9e6*Math.random())+1e6),s="["+i+"]",c=e;if(n.innerQuery.toLowerCase().indexOf(":has(")>-1){for(var a=f(n.innerQuery),l=[],h=0;h<a.length;h++){var d=a[h];p(d,!0,(function(){}))?l.push(d):l.push(":not(*)")}var m=c.substring(0,n.start-5),y=c.substring(n.end+2);return m+l.join(", ")+y}m=c.substring(0,n.start-5),y=c.substring(n.end+2);if(c=m+s+y,r(o,i),c.toLowerCase().indexOf(":has(")>-1){var v=p(c,!1,r);if(v)return v}return c}function h(e,t){if("setAttribute"in e&&"querySelector"in e&&t(e),e.hasChildNodes())for(var r=e.childNodes,n=0;n<r.length;++n)h(r[n],t)}function d(t){return function(r){if(-1===r.toLowerCase().indexOf(":has(")||!u(r))return t.apply(this,arguments);var n;if("getRootNode"in this)n=this.getRootNode();else for(var o=this;o;)n=o,o=o.parentNode;var i=this;i===e.document&&(i=e.document.documentElement);var s="q-has-scope"+(Math.floor(9e6*Math.random())+1e6);i.setAttribute(s,"");try{r=l(r,s);var c=[s],a=p(r,!1,(function(e,t){c.push(t);for(var r=f(e),o=0;o<r.length;o++){var i=r[o].trim(),s=i;s=">"===i[0]||"+"===i[0]||"~"===i[0]?i.slice(1).trim():":scope "+i;try{h(n,(function(e){if(e.querySelector(s))switch(i[0]){case"~":case"+":for(var r=e.childNodes,n=0;n<r.length;n++){var o=r[n];if("setAttribute"in o){var c="q-has-id"+(Math.floor(9e6*Math.random())+1e6);o.setAttribute(c,""),e.querySelector(":scope ["+c+"] "+i)&&o.setAttribute(t,""),o.removeAttribute(c)}}break;case">":c="q-has-id"+(Math.floor(9e6*Math.random())+1e6);e.setAttribute(c,""),e.querySelector(":scope["+c+"] "+i)&&e.setAttribute(t,""),e.removeAttribute(c);break;default:e.setAttribute(t,"")}}))}catch(e){}}}));arguments[0]=a;var d=t.apply(this,arguments);if(i.removeAttribute(s),c.length>0){for(var m=[],y=0;y<c.length;y++)m.push("["+c[y]+"]");for(var v=e.document.querySelectorAll(m.join(",")),b=0;b<v.length;b++)for(var g=v[b],E=0;E<c.length;E++)g.removeAttribute(c[E])}return d}catch(t){if(i.removeAttribute(s),c.length>0){for(m=[],y=0;y<c.length;y++)m.push("["+c[y]+"]");for(v=e.document.querySelectorAll(m.join(",")),b=0;b<v.length;b++)for(g=v[b],E=0;E<c.length;E++)g.removeAttribute(c[E])}throw t}}}}(self);export{r as default};
1
+ function decodeCSS(e){if("csstools-has-"!==e.slice(0,13))return"";for(var t=(e=e.slice(13)).split("-"),r="",o=0;o<t.length;o++)r+=String.fromCharCode(parseInt(t[o],36));return r}function extractEncodedSelectors(e){for(var t,r,o=[],n=0,s=!1,l=!1,i=0;i<e.length;i++){var c=e[i];switch(c){case"[":if(s){t+=c;continue}0===n?t="":t+=c,n++;continue;case"]":if(s){t+=c;continue}if(0===--n){var a=decodeCSS(t);l&&o.push(a)}else t+=c;continue;case"\\":t+=e[i],t+=e[i+1],i++;continue;case'"':case"'":if(s&&c===r){s=!1;continue}if(s){t+=c;continue}s=!0,r=c;continue;default:""===t&&1===n&&"csstools-has-"===e.slice(i,i+13)&&(l=!0),t+=c;continue}}for(var u=[],p=0;p<o.length;p++)-1===u.indexOf(o[p])&&u.push(o[p]);return u}function encodeCSS(e){if(""===e)return"";for(var t,r="",o=0;o<e.length;o++)t=e.charCodeAt(o).toString(36),r+=0===o?t:"-"+t;return"csstools-has-"+r}function hasNativeSupport(){try{if(!("CSS"in self)||!("supports"in self.CSS)||!self.CSS.supports("selector(:has(div))"))return!1}catch(e){return!1}return!0}function cssHasPseudo(e,t){t||(t={}),(t={hover:!!t.hover||!1,debug:!!t.debug||!1,observedAttributes:t.observedAttributes||[],forcePolyfill:!!t.forcePolyfill||!1}).mustPolyfill=t.forcePolyfill||!hasNativeSupport(),Array.isArray(t.observedAttributes)||(t.observedAttributes=[]),t.observedAttributes=t.observedAttributes.filter((function(e){return"string"==typeof e})),t.observedAttributes=t.observedAttributes.concat(["accept","accept-charset","accesskey","action","align","allow","alt","async","autocapitalize","autocomplete","autofocus","autoplay","buffered","capture","challenge","charset","checked","cite","class","code","codebase","cols","colspan","content","contenteditable","contextmenu","controls","coords","crossorigin","csp","data","datetime","decoding","default","defer","dir","dirname","disabled","download","draggable","enctype","enterkeyhint","for","form","formaction","formenctype","formmethod","formnovalidate","formtarget","headers","hidden","high","href","hreflang","http-equiv","icon","id","importance","integrity","intrinsicsize","inputmode","ismap","itemprop","keytype","kind","label","lang","language","list","loop","low","manifest","max","maxlength","minlength","media","method","min","multiple","muted","name","novalidate","open","optimum","pattern","ping","placeholder","poster","preload","radiogroup","readonly","referrerpolicy","rel","required","reversed","rows","rowspan","sandbox","scope","scoped","selected","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","summary","tabindex","target","title","translate","type","usemap","value","width","wrap"]);var r=[],o=e.createElement("x");if([].forEach.call(e.styleSheets,walkStyleSheet),t.mustPolyfill){if(transformObservedItemsThrottled(),"MutationObserver"in self)new MutationObserver((function(t){t.forEach((function(t){[].forEach.call(t.addedNodes||[],(function(e){1===e.nodeType&&e.sheet&&walkStyleSheet(e.sheet)})),[].push.apply(r,r.splice(0).filter((function(t){return t.rule.parentStyleSheet&&t.rule.parentStyleSheet.ownerNode&&e.documentElement.contains(t.rule.parentStyleSheet.ownerNode)}))),transformObservedItemsThrottled()}))})).observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:t.observedAttributes});if(e.addEventListener("focus",transformObservedItemsThrottled,!0),e.addEventListener("blur",transformObservedItemsThrottled,!0),e.addEventListener("input",transformObservedItemsThrottled),e.addEventListener("change",transformObservedItemsThrottled,!0),t.hover&&("onpointerenter"in e?(e.addEventListener("pointerenter",transformObservedItemsThrottled,!0),e.addEventListener("pointerleave",transformObservedItemsThrottled,!0)):(e.addEventListener("mouseover",transformObservedItemsThrottled,!0),e.addEventListener("mouseout",transformObservedItemsThrottled,!0))),"defineProperty"in Object&&"getOwnPropertyDescriptor"in Object&&"hasOwnProperty"in Object)try{var n=function observeProperty(e,t){if(e.hasOwnProperty(t)){var r=Object.getOwnPropertyDescriptor(e,t);r&&r.configurable&&"set"in r&&Object.defineProperty(e,t,{configurable:r.configurable,enumerable:r.enumerable,get:function get(){return r.get.apply(this,arguments)},set:function set(){r.set.apply(this,arguments);try{transformObservedItemsThrottled()}catch(e){}}})}};"HTMLElement"in self&&HTMLElement.prototype&&n(HTMLElement.prototype,"disabled"),["checked","selected","readOnly","required"].forEach((function(e){["HTMLButtonElement","HTMLFieldSetElement","HTMLInputElement","HTMLMeterElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOutputElement","HTMLProgressElement","HTMLSelectElement","HTMLTextAreaElement"].forEach((function(t){t in self&&self[t].prototype&&n(self[t].prototype,e)}))}))}catch(l){t.debug&&console.error(l)}var s=!1}function transformObservedItemsThrottled(){s&&cancelAnimationFrame(s),s=requestAnimationFrame((function(){r.forEach((function(r){var n=[],s=[];try{s=e.querySelectorAll(r.selector)}catch(l){return void(t.debug&&console.error(l))}[].forEach.call(s,(function(t){n.push(t),o.innerHTML="<x "+r.attributeName+">",t.setAttributeNode(o.children[0].attributes[0].cloneNode()),e.documentElement.style.zoom=1,e.documentElement.style.zoom=null})),r.nodes.forEach((function(t){-1===n.indexOf(t)&&(t.removeAttribute(r.attributeName),e.documentElement.style.zoom=1,e.documentElement.style.zoom=null)})),r.nodes=n}))}))}function walkStyleSheet(e){try{[].forEach.call(e.cssRules||[],(function(o,n){if(o.selectorText){o.selectorText=o.selectorText.replace(/\.js-has-pseudo\s/g,"");try{var s=extractEncodedSelectors(o.selectorText.toString());if(0===s.length)return;if(!t.mustPolyfill)return void e.deleteRule(n);for(var i=0;i<s.length;i++){var c=s[i];r.push({rule:o,selector:c,attributeName:encodeCSS(c),nodes:[]})}}catch(l){t.debug&&console.error(l)}}else walkStyleSheet(o)}))}catch(l){t.debug&&console.error(l)}}}!function(e){try{if(e.document.querySelector(":has(*, :does-not-exist, > *)"),!e.document.querySelector(":has(:scope *)")&&CSS.supports("selector(:has(div))"))return}catch(a){}var t=polyfill(e.Element.prototype.querySelector);e.Element.prototype.querySelector=function querySelector(e){return t.apply(this,arguments)};var r=polyfill(e.Element.prototype.querySelectorAll);if(e.Element.prototype.querySelectorAll=function querySelectorAll(e){return r.apply(this,arguments)},e.Element.prototype.matches){var o=polyfill(e.Element.prototype.matches);e.Element.prototype.matches=function matches(e){return o.apply(this,arguments)}}if(e.Element.prototype.closest){var n=polyfill(e.Element.prototype.closest);e.Element.prototype.closest=function closest(e){return n.apply(this,arguments)}}if("Document"in e&&"prototype"in e.Document){var s=polyfill(e.Document.prototype.querySelector);e.Document.prototype.querySelector=function querySelector(e){return s.apply(this,arguments)};var l=polyfill(e.Document.prototype.querySelectorAll);if(e.Document.prototype.querySelectorAll=function querySelectorAll(e){return l.apply(this,arguments)},e.Document.prototype.matches){var i=polyfill(e.Document.prototype.matches);e.Document.prototype.matches=function matches(e){return i.apply(this,arguments)}}if(e.Document.prototype.closest){var c=polyfill(e.Document.prototype.closest);e.Document.prototype.closest=function closest(e){return c.apply(this,arguments)}}}function pseudoClassHasInnerQuery(e){for(var t="",r=0,o=0,n=!1,s=!1,l=!1,i=!1,c=0;c<e.length;c++){var a=e[c];if(n)t+=a,n=!1;else if(s)a===l&&(s=!1),t+=a;else switch(":has("!==t.toLowerCase()||i||(i=!0,r=c,t=""),a){case":":i||(t=""),t+=a;continue;case"(":i&&o++,t+=a;continue;case")":if(i){if(0===o)return{innerQuery:t,start:r,end:c-1};o--}t+=a;continue;case"\\":t+=a,n=!0;continue;case'"':case"'":t+=a,s=!0,l=a;continue;default:t+=a;continue}}return!1}function replaceScopeWithAttr(e,t){for(var r=[],o="",n=!1,s=!1,l=!1,i=0,c=0;c<e.length;c++){var a=e[c];if(n)o+=a,n=!1;else if(s)a===l&&(s=!1),o+=a;else switch(":scope"===o.toLowerCase()&&!i&&/^[\[\.\:\\"\s|+>~#&,)]/.test(a||"")&&(r.push(o.slice(0,o.length-6)),r.push("["+t+"]"),o=""),a){case":":r.push(o),o="",o+=a;continue;case"\\":o+=a,n=!0;continue;case'"':case"'":o+=a,s=!0,l=a;continue;case"[":o+=a,i++;continue;case"]":o+=a,i>0&&i--;continue;default:o+=a;continue}}return":scope"===o.toLowerCase()&&(r.push(o.slice(0,o.length-6)),r.push("["+t+"]"),o=""),0===r.length?e:r.join("")+o}function splitSelector(e){for(var t,r,o=[],n="",s=!1,l=!1,i=!1,c=!1,a=0,u=0;u<e.length;u++){var p=e[u];if(s)n+=p,s=!1;else switch(p){case",":if(l){n+=p;continue}if(a>0){n+=p;continue}o.push(n),n="";continue;case"\\":n+=p,s=!0;continue;case'"':case"'":if(l&&p===i){n+=p,l=!1;continue}n+=p,l=!0,i=p;continue;case"(":case")":case"[":case"]":if(l){n+=p;continue}if(t=p,"("===(r=c)&&")"===t||"["===r&&"]"===t){n+=p,0===--a&&(c=!1);continue}if(p===c){n+=p,a++;continue}n+=p,a++,c=p;continue;default:n+=p;continue}}return o.push(n),o}function replaceAllWithTempAttr(e,t,r){var o=pseudoClassHasInnerQuery(e);if(!o)return e;if(t)return!1;var n=o.innerQuery,s="q-has"+(Math.floor(9e6*Math.random())+1e6),l="["+s+"]",i=e;if(o.innerQuery.toLowerCase().indexOf(":has(")>-1){for(var c=splitSelector(o.innerQuery),a=[],u=0;u<c.length;u++){var p=c[u];if(!replaceAllWithTempAttr(p,!0,(function(){})))throw new Error("Nested :has() is not supported");a.push(p)}var f=i.substring(0,o.start-5),d=i.substring(o.end+2);return f+a.join(", ")+d}f=i.substring(0,o.start-5),d=i.substring(o.end+2);if(i=f+l+d,r(n,s),i.toLowerCase().indexOf(":has(")>-1){var h=replaceAllWithTempAttr(i,!1,r);if(h)return h}return i}function walkNode(e,t){if("setAttribute"in e&&"querySelector"in e&&t(e),e.hasChildNodes())for(var r=e.childNodes,o=0;o<r.length;++o)walkNode(r[o],t)}function polyfill(t){return function(r){if(-1===r.toLowerCase().indexOf(":has(")||!pseudoClassHasInnerQuery(r))return t.apply(this,arguments);var o;if("getRootNode"in this)o=this.getRootNode();else for(var n=this;n;)o=n,n=n.parentNode;var s=this;s===e.document&&(s=e.document.documentElement);var l="q-has-scope"+(Math.floor(9e6*Math.random())+1e6);s.setAttribute(l,"");try{r=replaceScopeWithAttr(r,l);var i=[l],c=replaceAllWithTempAttr(r,!1,(function(e,t){i.push(t);for(var r=splitSelector(e),n=0;n<r.length;n++){var s=r[n].trim(),l=s;l=">"===s[0]||"+"===s[0]||"~"===s[0]?s.slice(1).trim():":scope "+s,walkNode(o,(function(e){if(e.querySelector(l))switch(s[0]){case"~":case"+":for(var r=e.childNodes,o=0;o<r.length;o++){var n=r[o];if("setAttribute"in n){var i="q-has-id"+(Math.floor(9e6*Math.random())+1e6);n.setAttribute(i,""),e.querySelector(":scope ["+i+"] "+s)&&n.setAttribute(t,""),n.removeAttribute(i)}}break;case">":i="q-has-id"+(Math.floor(9e6*Math.random())+1e6);e.setAttribute(i,""),e.querySelector(":scope["+i+"] "+s)&&e.setAttribute(t,""),e.removeAttribute(i);break;default:e.setAttribute(t,"")}}))}}));arguments[0]=c;var u=t.apply(this,arguments);if(s.removeAttribute(l),i.length>0){for(var p=[],f=0;f<i.length;f++)p.push("["+i[f]+"]");for(var d=e.document.querySelectorAll(p.join(",")),h=0;h<d.length;h++)for(var m=d[h],y=0;y<i.length;y++)m.removeAttribute(i[y])}return u}catch(b){if(s.removeAttribute(l),i.length>0){for(p=[],f=0;f<i.length;f++)p.push("["+i[f]+"]");for(d=e.document.querySelectorAll(p.join(",")),h=0;h<d.length;h++)for(m=d[h],y=0;y<i.length;y++)m.removeAttribute(i[y])}var v="";try{t.apply(this,[":core-web-does-not-exist"])}catch(g){v=g.message,v&&(v=v.replace(":core-web-does-not-exist",r))}v||(v="Failed to execute 'querySelector' on 'Document': '"+r+"' is not a valid selector.");try{throw new DOMException(v)}catch(a){throw new Error(v)}}}}}(self);export{cssHasPseudo as default};
2
2
  //# sourceMappingURL=browser.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.mjs","sources":["../src/encode/decode.mjs","../src/encode/encode.mjs","../src/browser.js","../src/encode/extract.mjs","../../../node_modules/@mrhenry/core-web/modules/~element-qsa-has.js"],"sourcesContent":["\n/** Decodes an identifier back into a CSS selector */\nexport default function decodeCSS(value) {\n\tif (value.slice(0, 13) !== 'csstools-has-') {\n\t\treturn '';\n\t}\n\n\tvalue = value.slice(13);\n\tlet values = value.split('-');\n\n\tlet result = '';\n\tfor (let i = 0; i < values.length; i++) {\n\t\tresult += String.fromCharCode(parseInt(values[i], 36));\n\t}\n\n\treturn result;\n}\n","\n/** Returns the string as an encoded CSS identifier. */\nexport default function encodeCSS(value) {\n\tif (value === '') {\n\t\treturn '';\n\t}\n\n\tlet hex;\n\tlet result = '';\n\tfor (let i = 0; i < value.length; i++) {\n\t\thex = value.charCodeAt(i).toString(36);\n\t\tif (i === 0) {\n\t\t\tresult += hex;\n\t\t} else {\n\t\t\tresult += '-' + hex;\n\t\t}\n\t}\n\n\treturn 'csstools-has-' + result;\n}\n","/* global MutationObserver,requestAnimationFrame,cancelAnimationFrame,self,HTMLElement */\n\nimport '@mrhenry/core-web/modules/~element-qsa-has.js';\nimport extractEncodedSelectors from './encode/extract.mjs';\nimport encodeCSS from './encode/encode.mjs';\n\nfunction hasNativeSupport() {\n\ttry {\n\t\tif (!('CSS' in self) || !('supports' in self.CSS) || !self.CSS.supports('selector(:has(div))')) {\n\t\t\treturn false;\n\t\t}\n\n\t} catch (_) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\nexport default function cssHasPseudo(document, options) {\n\t// OPTIONS\n\t{\n\t\tif (!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\toptions = {\n\t\t\thover: (!!options.hover) || false,\n\t\t\tdebug: (!!options.debug) || false,\n\t\t\tobservedAttributes: options.observedAttributes || [],\n\t\t\tforcePolyfill: (!!options.forcePolyfill) || false,\n\t\t};\n\n\t\toptions.mustPolyfill = options.forcePolyfill || !hasNativeSupport();\n\n\t\tif (!Array.isArray(options.observedAttributes)) {\n\t\t\toptions.observedAttributes = [];\n\t\t}\n\n\t\toptions.observedAttributes = options.observedAttributes.filter((x) => {\n\t\t\treturn (typeof x === 'string');\n\t\t});\n\n\t\t// https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n\t\t// `data-*` and `style` were omitted\n\t\toptions.observedAttributes = options.observedAttributes.concat(['accept', 'accept-charset', 'accesskey', 'action', 'align', 'allow', 'alt', 'async', 'autocapitalize', 'autocomplete', 'autofocus', 'autoplay', 'buffered', 'capture', 'challenge', 'charset', 'checked', 'cite', 'class', 'code', 'codebase', 'cols', 'colspan', 'content', 'contenteditable', 'contextmenu', 'controls', 'coords', 'crossorigin', 'csp', 'data', 'datetime', 'decoding', 'default', 'defer', 'dir', 'dirname', 'disabled', 'download', 'draggable', 'enctype', 'enterkeyhint', 'for', 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'headers', 'hidden', 'high', 'href', 'hreflang', 'http-equiv', 'icon', 'id', 'importance', 'integrity', 'intrinsicsize', 'inputmode', 'ismap', 'itemprop', 'keytype', 'kind', 'label', 'lang', 'language', 'list', 'loop', 'low', 'manifest', 'max', 'maxlength', 'minlength', 'media', 'method', 'min', 'multiple', 'muted', 'name', 'novalidate', 'open', 'optimum', 'pattern', 'ping', 'placeholder', 'poster', 'preload', 'radiogroup', 'readonly', 'referrerpolicy', 'rel', 'required', 'reversed', 'rows', 'rowspan', 'sandbox', 'scope', 'scoped', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src', 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'summary', 'tabindex', 'target', 'title', 'translate', 'type', 'usemap', 'value', 'width', 'wrap']);\n\t}\n\n\tconst observedItems = [];\n\n\t// document.createAttribute() doesn't support `:` in the name. innerHTML does\n\tconst attributeElement = document.createElement('x');\n\n\t// walk all stylesheets to collect observed css rules\n\t[].forEach.call(document.styleSheets, walkStyleSheet);\n\tif (!options.mustPolyfill) {\n\t\t// Cleanup of rules will have happened in `walkStyleSheet`\n\t\t// Native support will take over from here\n\t\treturn;\n\t}\n\n\ttransformObservedItemsThrottled();\n\n\t// observe DOM modifications that affect selectors\n\tif ('MutationObserver' in self) {\n\t\tconst mutationObserver = new MutationObserver((mutationsList) => {\n\t\t\tmutationsList.forEach(mutation => {\n\t\t\t\t[].forEach.call(mutation.addedNodes || [], node => {\n\t\t\t\t\t// walk stylesheets to collect observed css rules\n\t\t\t\t\tif (node.nodeType === 1 && node.sheet) {\n\t\t\t\t\t\twalkStyleSheet(node.sheet);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// transform observed css rules\n\t\t\t\tcleanupObservedCssRules();\n\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t});\n\t\t});\n\n\t\tmutationObserver.observe(document, { childList: true, subtree: true, attributes: true, attributeFilter: options.observedAttributes });\n\t}\n\n\t// observe DOM events that affect pseudo-selectors\n\tdocument.addEventListener('focus', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('blur', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('input', transformObservedItemsThrottled);\n\tdocument.addEventListener('change', transformObservedItemsThrottled, true);\n\n\tif (options.hover) {\n\t\tif ('onpointerenter' in document) {\n\t\t\tdocument.addEventListener('pointerenter', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('pointerleave', transformObservedItemsThrottled, true);\n\t\t} else {\n\t\t\tdocument.addEventListener('mouseover', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('mouseout', transformObservedItemsThrottled, true);\n\t\t}\n\t}\n\n\t// observe Javascript setters that effect pseudo-selectors\n\tif ('defineProperty' in Object && 'getOwnPropertyDescriptor' in Object && 'hasOwnProperty' in Object) {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-inner-declarations\n\t\t\tfunction observeProperty(proto, property) {\n\t\t\t\t// eslint-disable-next-line no-prototype-builtins\n\t\t\t\tif (proto.hasOwnProperty(property)) {\n\t\t\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(proto, property);\n\t\t\t\t\tif (descriptor && descriptor.configurable && 'set' in descriptor) {\n\t\t\t\t\t\tObject.defineProperty(proto, property, {\n\t\t\t\t\t\t\tconfigurable: descriptor.configurable,\n\t\t\t\t\t\t\tenumerable: descriptor.enumerable,\n\t\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\t\treturn descriptor.get.apply(this, arguments);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tset: function () {\n\t\t\t\t\t\t\t\tdescriptor.set.apply(this, arguments);\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\t\t// should never happen as there is an inner try/catch\n\t\t\t\t\t\t\t\t\t// but just in case\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ('HTMLElement' in self && HTMLElement.prototype) {\n\t\t\t\tobserveProperty(HTMLElement.prototype, 'disabled');\n\t\t\t}\n\n\t\t\t// Not all of these elements have all of these properties.\n\t\t\t// But the code above checks if they exist first.\n\t\t\t['checked', 'selected', 'readOnly', 'required'].forEach((property) => {\n\t\t\t\t[\n\t\t\t\t\t'HTMLButtonElement',\n\t\t\t\t\t'HTMLFieldSetElement',\n\t\t\t\t\t'HTMLInputElement',\n\t\t\t\t\t'HTMLMeterElement',\n\t\t\t\t\t'HTMLOptGroupElement',\n\t\t\t\t\t'HTMLOptionElement',\n\t\t\t\t\t'HTMLOutputElement',\n\t\t\t\t\t'HTMLProgressElement',\n\t\t\t\t\t'HTMLSelectElement',\n\t\t\t\t\t'HTMLTextAreaElement',\n\t\t\t\t].forEach((elementName) => {\n\t\t\t\t\tif (elementName in self && self[elementName].prototype) {\n\t\t\t\t\t\tobserveProperty(self[elementName].prototype, property);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tlet transformObservedItemsThrottledBusy = false;\n\tfunction transformObservedItemsThrottled() {\n\t\tif (transformObservedItemsThrottledBusy) {\n\t\t\tcancelAnimationFrame(transformObservedItemsThrottledBusy);\n\t\t}\n\n\t\ttransformObservedItemsThrottledBusy = requestAnimationFrame(() => {\n\t\t\ttransformObservedItems();\n\t\t});\n\t}\n\n\t// transform observed css rules\n\tfunction transformObservedItems() {\n\t\tobservedItems.forEach((item) => {\n\t\t\tconst nodes = [];\n\n\t\t\tlet matches = [];\n\t\t\ttry {\n\t\t\t\tmatches = document.querySelectorAll(item.selector);\n\t\t\t} catch (e) {\n\t\t\t\tif (options.debug) {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t[].forEach.call(matches, (element) => {\n\t\t\t\t// memorize the node\n\t\t\t\tnodes.push(element);\n\n\t\t\t\t// set an attribute with an irregular attribute name\n\t\t\t\t// document.createAttribute() doesn't support special characters\n\t\t\t\tattributeElement.innerHTML = '<x ' + item.attributeName + '>';\n\n\t\t\t\telement.setAttributeNode(attributeElement.children[0].attributes[0].cloneNode());\n\n\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t});\n\n\t\t\t// remove the encoded attribute from all nodes that no longer match them\n\t\t\titem.nodes.forEach(node => {\n\t\t\t\tif (nodes.indexOf(node) === -1) {\n\t\t\t\t\tnode.removeAttribute(item.attributeName);\n\n\t\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// update the\n\t\t\titem.nodes = nodes;\n\t\t});\n\t}\n\n\t// remove any observed cssrules that no longer apply\n\tfunction cleanupObservedCssRules() {\n\t\t[].push.apply(\n\t\t\tobservedItems,\n\t\t\tobservedItems.splice(0).filter((item) => {\n\t\t\t\treturn item.rule.parentStyleSheet &&\n\t\t\t\t\titem.rule.parentStyleSheet.ownerNode &&\n\t\t\t\t\tdocument.documentElement.contains(item.rule.parentStyleSheet.ownerNode);\n\t\t\t}),\n\t\t);\n\t}\n\n\t// walk a stylesheet to collect observed css rules\n\tfunction walkStyleSheet(styleSheet) {\n\t\ttry {\n\t\t\t// walk a css rule to collect observed css rules\n\t\t\t[].forEach.call(styleSheet.cssRules || [], (rule, index) => {\n\t\t\t\tif (rule.selectorText) {\n\t\t\t\t\trule.selectorText = rule.selectorText.replace(/\\.js-has-pseudo\\s/g, '');\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// decode the selector text in all browsers to:\n\t\t\t\t\t\tconst hasSelectors = extractEncodedSelectors(rule.selectorText.toString());\n\t\t\t\t\t\tif (hasSelectors.length === 0) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!options.mustPolyfill) {\n\t\t\t\t\t\t\tstyleSheet.deleteRule(index);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (let i = 0; i < hasSelectors.length; i++) {\n\t\t\t\t\t\t\tconst hasSelector = hasSelectors[i];\n\t\t\t\t\t\t\tobservedItems.push({\n\t\t\t\t\t\t\t\trule: rule,\n\t\t\t\t\t\t\t\tselector: hasSelector,\n\t\t\t\t\t\t\t\tattributeName: encodeCSS(hasSelector),\n\t\t\t\t\t\t\t\tnodes: [],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tif (options.debug) {\n\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\twalkStyleSheet(rule);\n\t\t\t\t}\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n}\n","import decodeCSS from './decode.mjs';\n\n/** Extract encoded selectors out of attribute selectors */\nexport default function extractEncodedSelectors(value) {\n\tlet out = [];\n\n\tlet depth = 0;\n\tlet candidate;\n\n\tlet quoted = false;\n\tlet quotedMark;\n\n\tlet containsUnescapedUnquotedHasAtDepth1 = false;\n\n\t// Stryker disable next-line EqualityOperator\n\tfor (let i = 0; i < value.length; i++) {\n\t\tconst char = value[i];\n\n\t\tswitch (char) {\n\t\t\tcase '[':\n\t\t\t\tif (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (depth === 0) {\n\t\t\t\t\tcandidate = '';\n\t\t\t\t} else {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t}\n\n\t\t\t\tdepth++;\n\t\t\t\tcontinue;\n\t\t\tcase ']':\n\t\t\t\tif (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t{\n\t\t\t\t\tdepth--;\n\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\tconst decoded = decodeCSS(candidate);\n\t\t\t\t\t\tif (containsUnescapedUnquotedHasAtDepth1) {\n\t\t\t\t\t\t\tout.push(decoded);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcandidate += char;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\tcase '\\\\':\n\t\t\t\tcandidate += value[i];\n\t\t\t\tcandidate += value[i+1];\n\t\t\t\ti++;\n\t\t\t\tcontinue;\n\n\t\t\tcase '\"':\n\t\t\tcase '\\'':\n\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tquoted = true;\n\t\t\t\tquotedMark = char;\n\t\t\t\tcontinue;\n\n\t\t\tdefault:\n\t\t\t\tif (candidate === '' && depth === 1 && (value.slice(i, i + 13) === 'csstools-has-')) {\n\t\t\t\t\tcontainsUnescapedUnquotedHasAtDepth1 = true;\n\t\t\t\t}\n\n\t\t\t\tcandidate += char;\n\t\t\t\tcontinue;\n\t\t}\n\t}\n\n\tconst unique = [];\n\tfor (let i = 0; i < out.length; i++) {\n\t\tif (unique.indexOf(out[i]) === -1) {\n\t\t\tunique.push(out[i]);\n\t\t}\n\t}\n\n\treturn unique;\n}\n","/* eslint-disable */\n(function (global) {\n\ttry {\n\t\t// test for has support\n\t\tglobal.document.querySelector(':has(*, :does-not-exist, > *)');\n\t\tglobal.document.querySelector(':has(:has(any))');\n\n\t\tif (!global.document.querySelector(':has(:scope *)')) {\n\t\t\treturn;\n\t\t}\n\t} catch (_) { }\n\n\t// ELEMENT\n\t// polyfill Element#querySelector\n\tvar querySelectorWithHasElement = polyfill(global.Element.prototype.querySelector);\n\n\tglobal.Element.prototype.querySelector = function querySelector(selectors) {\n\t\treturn querySelectorWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#querySelectorAll\n\tvar querySelectorAllWithHasElement = polyfill(global.Element.prototype.querySelectorAll);\n\n\tglobal.Element.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\treturn querySelectorAllWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#matches\n\tif (global.Element.prototype.matches) {\n\t\tvar matchesWithHasElement = polyfill(global.Element.prototype.matches);\n\n\t\tglobal.Element.prototype.matches = function matches(selectors) {\n\t\t\treturn matchesWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// polyfill Element#closest\n\tif (global.Element.prototype.closest) {\n\t\tvar closestWithHasElement = polyfill(global.Element.prototype.closest);\n\n\t\tglobal.Element.prototype.closest = function closest(selectors) {\n\t\t\treturn closestWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// DOCUMENT\n\tif ('Document' in global && 'prototype' in global.Document) {\n\t\t// polyfill Document#querySelector\n\t\tvar querySelectorWithHasDocument = polyfill(global.Document.prototype.querySelector);\n\n\t\tglobal.Document.prototype.querySelector = function querySelector(selectors) {\n\t\t\treturn querySelectorWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#querySelectorAll\n\t\tvar querySelectorAllWithHasDocument = polyfill(global.Document.prototype.querySelectorAll);\n\n\t\tglobal.Document.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\t\treturn querySelectorAllWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#matches\n\t\tif (global.Document.prototype.matches) {\n\t\t\tvar matchesWithHasDocument = polyfill(global.Document.prototype.matches);\n\n\t\t\tglobal.Document.prototype.matches = function matches(selectors) {\n\t\t\t\treturn matchesWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\n\t\t// polyfill Document#closest\n\t\tif (global.Document.prototype.closest) {\n\t\t\tvar closestWithHasDocument = polyfill(global.Document.prototype.closest);\n\n\t\t\tglobal.Document.prototype.closest = function closest(selectors) {\n\t\t\t\treturn closestWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction pseudoClassHasInnerQuery(query) {\n\t\tvar current = '';\n\t\tvar start = 0;\n\t\tvar depth = 0;\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar inHas = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':has(' && !inHas) {\n\t\t\t\tinHas = true;\n\t\t\t\tstart = i;\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tif (!inHas) {\n\t\t\t\t\t\tcurrent = '';\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tdepth++;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase ')':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tinnerQuery: current,\n\t\t\t\t\t\t\t\tstart: start,\n\t\t\t\t\t\t\t\tend: i-1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdepth--;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction replaceScopeWithAttr(query, attr) {\n\t\tvar parts = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':scope' && !bracketed && (/^[\\[\\.\\:\\\\\"\\s|+>~#&,)]/.test(char || ''))) {\n\t\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\t\tparts.push('[' + attr + ']');\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tparts.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (current.toLowerCase() === ':scope') {\n\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\tparts.push('[' + attr + ']');\n\t\t\tcurrent = '';\n\t\t}\n\n\t\tif (parts.length === 0) {\n\t\t\treturn query;\n\t\t}\n\n\t\treturn parts.join('') + current;\n\t}\n\n\tfunction charIsNestedMarkMirror(char, mark) {\n\t\tif (mark === '(' && char === ')') {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (mark === '[' && char === ']') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction splitSelector(query) {\n\t\tvar selectors = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar nestedMark = false;\n\t\tvar nestedDepth = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ',':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (nestedDepth > 0) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tselectors.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tquoted = false;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\tcase ')':\n\t\t\t\tcase '[':\n\t\t\t\tcase ']':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (charIsNestedMarkMirror(char, nestedMark)) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth--;\n\n\t\t\t\t\t\tif (nestedDepth === 0) {\n\t\t\t\t\t\t\tnestedMark = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (char === nestedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth++;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tnestedDepth++;\n\t\t\t\t\tnestedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t}\n\t\t}\n\n\t\tselectors.push(current);\n\n\t\treturn selectors;\n\t}\n\n\tfunction replaceAllWithTempAttr(query, nested, callback) {\n\t\tvar inner = pseudoClassHasInnerQuery(query);\n\t\tif (!inner) {\n\t\t\treturn query;\n\t\t}\n\n\t\tif (nested) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar innerQuery = inner.innerQuery;\n\t\tvar attr = 'q-has' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\tvar innerReplacement = '[' + attr + ']';\n\n\t\tvar x = query;\n\n\t\tif (inner.innerQuery.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar innerParts = splitSelector(inner.innerQuery);\n\t\t\tvar newInnerParts = [];\n\t\t\tfor (var i = 0; i < innerParts.length; i++) {\n\t\t\t\tvar innerPart = innerParts[i];\n\n\t\t\t\t// Nested has is not supported.\n\t\t\t\t// If a recursive/nested call returns \"false\" we replace with \":not(*)\"\n\t\t\t\tvar innerPartReplaced = replaceAllWithTempAttr(innerPart, true, function () { });\n\t\t\t\tif (!innerPartReplaced) {\n\t\t\t\t\tnewInnerParts.push(':not(*)');\n\t\t\t\t} else {\n\t\t\t\t\tnewInnerParts.push(innerPart);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\t\treturn _prefix + newInnerParts.join(', ') + _suffix;\n\t\t}\n\n\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\tx = _prefix + innerReplacement + _suffix;\n\n\t\tcallback(innerQuery, attr);\n\t\tif (x.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar y = replaceAllWithTempAttr(x, false, callback);\n\t\t\tif (y) {\n\t\t\t\treturn y;\n\t\t\t}\n\t\t}\n\n\t\treturn x;\n\t}\n\n\tfunction walkNode(rootNode, callback) {\n\t\tif (('setAttribute' in (rootNode)) && ('querySelector' in (rootNode))) {\n\t\t\tcallback(rootNode);\n\t\t}\n\n\t\tif (rootNode.hasChildNodes()) {\n\t\t\tvar nodes = rootNode.childNodes;\n\t\t\tfor (var i = 0; i < nodes.length; ++i) {\n\t\t\t\twalkNode(nodes[i], callback);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction polyfill(qsa) {\n\t\treturn function (selectors) {\n\t\t\tif ((selectors.toLowerCase().indexOf(':has(') === -1) || !pseudoClassHasInnerQuery(selectors)) {\n\t\t\t\treturn qsa.apply(this, arguments);\n\t\t\t}\n\n\t\t\tvar rootNode;\n\t\t\tif ('getRootNode' in this) {\n\t\t\t\trootNode = this.getRootNode();\n\t\t\t} else {\n\t\t\t\tvar r = this;\n\t\t\t\twhile (r) {\n\t\t\t\t\trootNode = r;\n\t\t\t\t\tr = r.parentNode;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _focus = this;\n\t\t\tif (_focus === global.document) {\n\t\t\t\t_focus = global.document.documentElement;\n\t\t\t}\n\n\t\t\tvar scopeAttr = 'q-has-scope' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t_focus.setAttribute(scopeAttr, '');\n\n\t\t\ttry {\n\t\t\t\tselectors = replaceScopeWithAttr(selectors, scopeAttr);\n\n\t\t\t\tvar attrs = [scopeAttr];\n\t\t\t\tvar newQuery = replaceAllWithTempAttr(selectors, false, function (inner, attr) {\n\t\t\t\t\tattrs.push(attr);\n\n\t\t\t\t\tvar selectorParts = splitSelector(inner);\n\t\t\t\t\tfor (var x = 0; x < selectorParts.length; x++) {\n\t\t\t\t\t\tvar selectorPart = selectorParts[x].trim();\n\t\t\t\t\t\tvar absoluteSelectorPart = selectorPart;\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tselectorPart[0] === '>' ||\n\t\t\t\t\t\t\tselectorPart[0] === '+' ||\n\t\t\t\t\t\t\tselectorPart[0] === '~'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tabsoluteSelectorPart = selectorPart.slice(1).trim();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tabsoluteSelectorPart = ':scope ' + selectorPart;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\twalkNode(rootNode, function (node) {\n\t\t\t\t\t\t\t\tif (!(node.querySelector(absoluteSelectorPart))) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tswitch (selectorPart[0]) {\n\t\t\t\t\t\t\t\t\tcase '~':\n\t\t\t\t\t\t\t\t\tcase '+':\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tvar siblings = node.childNodes;\n\t\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < siblings.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar sibling = siblings[i];\n\t\t\t\t\t\t\t\t\t\t\t\tif (!('setAttribute' in sibling)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope [' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tsibling.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase '>':\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\t\tnode.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope[' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tnode.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t// `:has` takes a forgiving selector list.\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\targuments[0] = newQuery;\n\n\t\t\t\t// results of the qsa\n\t\t\t\tvar elementOrNodeList = qsa.apply(this, arguments);\n\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// return the results of the qsa\n\t\t\t\treturn elementOrNodeList;\n\t\t\t} catch (err) {\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t};\n\t}\n})(self);\n"],"names":["decodeCSS","value","slice","values","split","result","i","length","String","fromCharCode","parseInt","encodeCSS","hex","charCodeAt","toString","cssHasPseudo","document","options","hover","debug","observedAttributes","forcePolyfill","mustPolyfill","self","CSS","supports","_","hasNativeSupport","Array","isArray","filter","x","concat","observedItems","attributeElement","createElement","forEach","call","styleSheets","walkStyleSheet","transformObservedItemsThrottled","MutationObserver","mutationsList","mutation","addedNodes","node","nodeType","sheet","push","apply","splice","item","rule","parentStyleSheet","ownerNode","documentElement","contains","observe","childList","subtree","attributes","attributeFilter","addEventListener","Object","observeProperty","proto","property","hasOwnProperty","descriptor","getOwnPropertyDescriptor","configurable","defineProperty","enumerable","get","this","arguments","set","HTMLElement","prototype","elementName","e","console","error","transformObservedItemsThrottledBusy","cancelAnimationFrame","requestAnimationFrame","nodes","matches","querySelectorAll","selector","element","innerHTML","attributeName","setAttributeNode","children","cloneNode","style","zoom","indexOf","removeAttribute","styleSheet","cssRules","index","selectorText","replace","hasSelectors","candidate","quotedMark","out","depth","quoted","containsUnescapedUnquotedHasAtDepth1","char","decoded","unique","extractEncodedSelectors","deleteRule","hasSelector","global","querySelector","querySelectorWithHasElement","polyfill","Element","selectors","querySelectorAllWithHasElement","matchesWithHasElement","closest","closestWithHasElement","Document","querySelectorWithHasDocument","querySelectorAllWithHasDocument","matchesWithHasDocument","closestWithHasDocument","pseudoClassHasInnerQuery","query","current","start","escaped","inHas","toLowerCase","innerQuery","end","replaceScopeWithAttr","attr","parts","bracketed","test","join","splitSelector","mark","nestedMark","nestedDepth","replaceAllWithTempAttr","nested","callback","inner","Math","floor","random","innerReplacement","innerParts","newInnerParts","innerPart","_prefix","substring","_suffix","y","walkNode","rootNode","hasChildNodes","childNodes","qsa","getRootNode","r","parentNode","_focus","scopeAttr","setAttribute","attrs","newQuery","selectorParts","selectorPart","trim","absoluteSelectorPart","siblings","sibling","idAttr","elementOrNodeList","attrsForQuery","j","elements","k","l","err"],"mappings":"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"}
1
+ {"version":3,"file":"browser.mjs","sources":["../src/encode/decode.mjs","../src/encode/extract.mjs","../src/encode/encode.mjs","../src/browser.js","../../../node_modules/@mrhenry/core-web/modules/~element-qsa-has.js"],"sourcesContent":["\n/** Decodes an identifier back into a CSS selector */\nexport default function decodeCSS(value) {\n\tif (value.slice(0, 13) !== 'csstools-has-') {\n\t\treturn '';\n\t}\n\n\tvalue = value.slice(13);\n\tlet values = value.split('-');\n\n\tlet result = '';\n\tfor (let i = 0; i < values.length; i++) {\n\t\tresult += String.fromCharCode(parseInt(values[i], 36));\n\t}\n\n\treturn result;\n}\n","import decodeCSS from './decode.mjs';\n\n/** Extract encoded selectors out of attribute selectors */\nexport default function extractEncodedSelectors(value) {\n\tlet out = [];\n\n\tlet depth = 0;\n\tlet candidate;\n\n\tlet quoted = false;\n\tlet quotedMark;\n\n\tlet containsUnescapedUnquotedHasAtDepth1 = false;\n\n\t// Stryker disable next-line EqualityOperator\n\tfor (let i = 0; i < value.length; i++) {\n\t\tconst char = value[i];\n\n\t\tswitch (char) {\n\t\t\tcase '[':\n\t\t\t\tif (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (depth === 0) {\n\t\t\t\t\tcandidate = '';\n\t\t\t\t} else {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t}\n\n\t\t\t\tdepth++;\n\t\t\t\tcontinue;\n\t\t\tcase ']':\n\t\t\t\tif (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t{\n\t\t\t\t\tdepth--;\n\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\tconst decoded = decodeCSS(candidate);\n\t\t\t\t\t\tif (containsUnescapedUnquotedHasAtDepth1) {\n\t\t\t\t\t\t\tout.push(decoded);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcandidate += char;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\tcase '\\\\':\n\t\t\t\tcandidate += value[i];\n\t\t\t\tcandidate += value[i+1];\n\t\t\t\ti++;\n\t\t\t\tcontinue;\n\n\t\t\tcase '\"':\n\t\t\tcase '\\'':\n\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tquoted = true;\n\t\t\t\tquotedMark = char;\n\t\t\t\tcontinue;\n\n\t\t\tdefault:\n\t\t\t\tif (candidate === '' && depth === 1 && (value.slice(i, i + 13) === 'csstools-has-')) {\n\t\t\t\t\tcontainsUnescapedUnquotedHasAtDepth1 = true;\n\t\t\t\t}\n\n\t\t\t\tcandidate += char;\n\t\t\t\tcontinue;\n\t\t}\n\t}\n\n\tconst unique = [];\n\tfor (let i = 0; i < out.length; i++) {\n\t\tif (unique.indexOf(out[i]) === -1) {\n\t\t\tunique.push(out[i]);\n\t\t}\n\t}\n\n\treturn unique;\n}\n","\n/** Returns the string as an encoded CSS identifier. */\nexport default function encodeCSS(value) {\n\tif (value === '') {\n\t\treturn '';\n\t}\n\n\tlet hex;\n\tlet result = '';\n\tfor (let i = 0; i < value.length; i++) {\n\t\thex = value.charCodeAt(i).toString(36);\n\t\tif (i === 0) {\n\t\t\tresult += hex;\n\t\t} else {\n\t\t\tresult += '-' + hex;\n\t\t}\n\t}\n\n\treturn 'csstools-has-' + result;\n}\n","/* global MutationObserver,requestAnimationFrame,cancelAnimationFrame,self,HTMLElement */\n\nimport '@mrhenry/core-web/modules/~element-qsa-has.js';\nimport extractEncodedSelectors from './encode/extract.mjs';\nimport encodeCSS from './encode/encode.mjs';\n\nfunction hasNativeSupport() {\n\ttry {\n\t\tif (!('CSS' in self) || !('supports' in self.CSS) || !self.CSS.supports('selector(:has(div))')) {\n\t\t\treturn false;\n\t\t}\n\n\t} catch (_) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\nexport default function cssHasPseudo(document, options) {\n\t// OPTIONS\n\t{\n\t\tif (!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\toptions = {\n\t\t\thover: (!!options.hover) || false,\n\t\t\tdebug: (!!options.debug) || false,\n\t\t\tobservedAttributes: options.observedAttributes || [],\n\t\t\tforcePolyfill: (!!options.forcePolyfill) || false,\n\t\t};\n\n\t\toptions.mustPolyfill = options.forcePolyfill || !hasNativeSupport();\n\n\t\tif (!Array.isArray(options.observedAttributes)) {\n\t\t\toptions.observedAttributes = [];\n\t\t}\n\n\t\toptions.observedAttributes = options.observedAttributes.filter((x) => {\n\t\t\treturn (typeof x === 'string');\n\t\t});\n\n\t\t// https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n\t\t// `data-*` and `style` were omitted\n\t\toptions.observedAttributes = options.observedAttributes.concat(['accept', 'accept-charset', 'accesskey', 'action', 'align', 'allow', 'alt', 'async', 'autocapitalize', 'autocomplete', 'autofocus', 'autoplay', 'buffered', 'capture', 'challenge', 'charset', 'checked', 'cite', 'class', 'code', 'codebase', 'cols', 'colspan', 'content', 'contenteditable', 'contextmenu', 'controls', 'coords', 'crossorigin', 'csp', 'data', 'datetime', 'decoding', 'default', 'defer', 'dir', 'dirname', 'disabled', 'download', 'draggable', 'enctype', 'enterkeyhint', 'for', 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'headers', 'hidden', 'high', 'href', 'hreflang', 'http-equiv', 'icon', 'id', 'importance', 'integrity', 'intrinsicsize', 'inputmode', 'ismap', 'itemprop', 'keytype', 'kind', 'label', 'lang', 'language', 'list', 'loop', 'low', 'manifest', 'max', 'maxlength', 'minlength', 'media', 'method', 'min', 'multiple', 'muted', 'name', 'novalidate', 'open', 'optimum', 'pattern', 'ping', 'placeholder', 'poster', 'preload', 'radiogroup', 'readonly', 'referrerpolicy', 'rel', 'required', 'reversed', 'rows', 'rowspan', 'sandbox', 'scope', 'scoped', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src', 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'summary', 'tabindex', 'target', 'title', 'translate', 'type', 'usemap', 'value', 'width', 'wrap']);\n\t}\n\n\tconst observedItems = [];\n\n\t// document.createAttribute() doesn't support `:` in the name. innerHTML does\n\tconst attributeElement = document.createElement('x');\n\n\t// walk all stylesheets to collect observed css rules\n\t[].forEach.call(document.styleSheets, walkStyleSheet);\n\tif (!options.mustPolyfill) {\n\t\t// Cleanup of rules will have happened in `walkStyleSheet`\n\t\t// Native support will take over from here\n\t\treturn;\n\t}\n\n\ttransformObservedItemsThrottled();\n\n\t// observe DOM modifications that affect selectors\n\tif ('MutationObserver' in self) {\n\t\tconst mutationObserver = new MutationObserver((mutationsList) => {\n\t\t\tmutationsList.forEach(mutation => {\n\t\t\t\t[].forEach.call(mutation.addedNodes || [], node => {\n\t\t\t\t\t// walk stylesheets to collect observed css rules\n\t\t\t\t\tif (node.nodeType === 1 && node.sheet) {\n\t\t\t\t\t\twalkStyleSheet(node.sheet);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// transform observed css rules\n\t\t\t\tcleanupObservedCssRules();\n\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t});\n\t\t});\n\n\t\tmutationObserver.observe(document, { childList: true, subtree: true, attributes: true, attributeFilter: options.observedAttributes });\n\t}\n\n\t// observe DOM events that affect pseudo-selectors\n\tdocument.addEventListener('focus', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('blur', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('input', transformObservedItemsThrottled);\n\tdocument.addEventListener('change', transformObservedItemsThrottled, true);\n\n\tif (options.hover) {\n\t\tif ('onpointerenter' in document) {\n\t\t\tdocument.addEventListener('pointerenter', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('pointerleave', transformObservedItemsThrottled, true);\n\t\t} else {\n\t\t\tdocument.addEventListener('mouseover', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('mouseout', transformObservedItemsThrottled, true);\n\t\t}\n\t}\n\n\t// observe Javascript setters that effect pseudo-selectors\n\tif ('defineProperty' in Object && 'getOwnPropertyDescriptor' in Object && 'hasOwnProperty' in Object) {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-inner-declarations\n\t\t\tfunction observeProperty(proto, property) {\n\t\t\t\t// eslint-disable-next-line no-prototype-builtins\n\t\t\t\tif (proto.hasOwnProperty(property)) {\n\t\t\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(proto, property);\n\t\t\t\t\tif (descriptor && descriptor.configurable && 'set' in descriptor) {\n\t\t\t\t\t\tObject.defineProperty(proto, property, {\n\t\t\t\t\t\t\tconfigurable: descriptor.configurable,\n\t\t\t\t\t\t\tenumerable: descriptor.enumerable,\n\t\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\t\treturn descriptor.get.apply(this, arguments);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tset: function () {\n\t\t\t\t\t\t\t\tdescriptor.set.apply(this, arguments);\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\t\t// should never happen as there is an inner try/catch\n\t\t\t\t\t\t\t\t\t// but just in case\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ('HTMLElement' in self && HTMLElement.prototype) {\n\t\t\t\tobserveProperty(HTMLElement.prototype, 'disabled');\n\t\t\t}\n\n\t\t\t// Not all of these elements have all of these properties.\n\t\t\t// But the code above checks if they exist first.\n\t\t\t['checked', 'selected', 'readOnly', 'required'].forEach((property) => {\n\t\t\t\t[\n\t\t\t\t\t'HTMLButtonElement',\n\t\t\t\t\t'HTMLFieldSetElement',\n\t\t\t\t\t'HTMLInputElement',\n\t\t\t\t\t'HTMLMeterElement',\n\t\t\t\t\t'HTMLOptGroupElement',\n\t\t\t\t\t'HTMLOptionElement',\n\t\t\t\t\t'HTMLOutputElement',\n\t\t\t\t\t'HTMLProgressElement',\n\t\t\t\t\t'HTMLSelectElement',\n\t\t\t\t\t'HTMLTextAreaElement',\n\t\t\t\t].forEach((elementName) => {\n\t\t\t\t\tif (elementName in self && self[elementName].prototype) {\n\t\t\t\t\t\tobserveProperty(self[elementName].prototype, property);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tlet transformObservedItemsThrottledBusy = false;\n\tfunction transformObservedItemsThrottled() {\n\t\tif (transformObservedItemsThrottledBusy) {\n\t\t\tcancelAnimationFrame(transformObservedItemsThrottledBusy);\n\t\t}\n\n\t\ttransformObservedItemsThrottledBusy = requestAnimationFrame(() => {\n\t\t\ttransformObservedItems();\n\t\t});\n\t}\n\n\t// transform observed css rules\n\tfunction transformObservedItems() {\n\t\tobservedItems.forEach((item) => {\n\t\t\tconst nodes = [];\n\n\t\t\tlet matches = [];\n\t\t\ttry {\n\t\t\t\tmatches = document.querySelectorAll(item.selector);\n\t\t\t} catch (e) {\n\t\t\t\tif (options.debug) {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t[].forEach.call(matches, (element) => {\n\t\t\t\t// memorize the node\n\t\t\t\tnodes.push(element);\n\n\t\t\t\t// set an attribute with an irregular attribute name\n\t\t\t\t// document.createAttribute() doesn't support special characters\n\t\t\t\tattributeElement.innerHTML = '<x ' + item.attributeName + '>';\n\n\t\t\t\telement.setAttributeNode(attributeElement.children[0].attributes[0].cloneNode());\n\n\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t});\n\n\t\t\t// remove the encoded attribute from all nodes that no longer match them\n\t\t\titem.nodes.forEach(node => {\n\t\t\t\tif (nodes.indexOf(node) === -1) {\n\t\t\t\t\tnode.removeAttribute(item.attributeName);\n\n\t\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// update the\n\t\t\titem.nodes = nodes;\n\t\t});\n\t}\n\n\t// remove any observed cssrules that no longer apply\n\tfunction cleanupObservedCssRules() {\n\t\t[].push.apply(\n\t\t\tobservedItems,\n\t\t\tobservedItems.splice(0).filter((item) => {\n\t\t\t\treturn item.rule.parentStyleSheet &&\n\t\t\t\t\titem.rule.parentStyleSheet.ownerNode &&\n\t\t\t\t\tdocument.documentElement.contains(item.rule.parentStyleSheet.ownerNode);\n\t\t\t}),\n\t\t);\n\t}\n\n\t// walk a stylesheet to collect observed css rules\n\tfunction walkStyleSheet(styleSheet) {\n\t\ttry {\n\t\t\t// walk a css rule to collect observed css rules\n\t\t\t[].forEach.call(styleSheet.cssRules || [], (rule, index) => {\n\t\t\t\tif (rule.selectorText) {\n\t\t\t\t\trule.selectorText = rule.selectorText.replace(/\\.js-has-pseudo\\s/g, '');\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// decode the selector text in all browsers to:\n\t\t\t\t\t\tconst hasSelectors = extractEncodedSelectors(rule.selectorText.toString());\n\t\t\t\t\t\tif (hasSelectors.length === 0) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!options.mustPolyfill) {\n\t\t\t\t\t\t\tstyleSheet.deleteRule(index);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (let i = 0; i < hasSelectors.length; i++) {\n\t\t\t\t\t\t\tconst hasSelector = hasSelectors[i];\n\t\t\t\t\t\t\tobservedItems.push({\n\t\t\t\t\t\t\t\trule: rule,\n\t\t\t\t\t\t\t\tselector: hasSelector,\n\t\t\t\t\t\t\t\tattributeName: encodeCSS(hasSelector),\n\t\t\t\t\t\t\t\tnodes: [],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tif (options.debug) {\n\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\twalkStyleSheet(rule);\n\t\t\t\t}\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n}\n","/* eslint-disable */\n(function (global) {\n\ttry {\n\t\t// test for has support\n\t\tglobal.document.querySelector(':has(*, :does-not-exist, > *)');\n\n\t\tif (\n\t\t\t!global.document.querySelector(':has(:scope *)') &&\n\t\t\tCSS.supports('selector(:has(div))')\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t} catch (_) { }\n\n\t// ELEMENT\n\t// polyfill Element#querySelector\n\tvar querySelectorWithHasElement = polyfill(global.Element.prototype.querySelector);\n\n\tglobal.Element.prototype.querySelector = function querySelector(selectors) {\n\t\treturn querySelectorWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#querySelectorAll\n\tvar querySelectorAllWithHasElement = polyfill(global.Element.prototype.querySelectorAll);\n\n\tglobal.Element.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\treturn querySelectorAllWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#matches\n\tif (global.Element.prototype.matches) {\n\t\tvar matchesWithHasElement = polyfill(global.Element.prototype.matches);\n\n\t\tglobal.Element.prototype.matches = function matches(selectors) {\n\t\t\treturn matchesWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// polyfill Element#closest\n\tif (global.Element.prototype.closest) {\n\t\tvar closestWithHasElement = polyfill(global.Element.prototype.closest);\n\n\t\tglobal.Element.prototype.closest = function closest(selectors) {\n\t\t\treturn closestWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// DOCUMENT\n\tif ('Document' in global && 'prototype' in global.Document) {\n\t\t// polyfill Document#querySelector\n\t\tvar querySelectorWithHasDocument = polyfill(global.Document.prototype.querySelector);\n\n\t\tglobal.Document.prototype.querySelector = function querySelector(selectors) {\n\t\t\treturn querySelectorWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#querySelectorAll\n\t\tvar querySelectorAllWithHasDocument = polyfill(global.Document.prototype.querySelectorAll);\n\n\t\tglobal.Document.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\t\treturn querySelectorAllWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#matches\n\t\tif (global.Document.prototype.matches) {\n\t\t\tvar matchesWithHasDocument = polyfill(global.Document.prototype.matches);\n\n\t\t\tglobal.Document.prototype.matches = function matches(selectors) {\n\t\t\t\treturn matchesWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\n\t\t// polyfill Document#closest\n\t\tif (global.Document.prototype.closest) {\n\t\t\tvar closestWithHasDocument = polyfill(global.Document.prototype.closest);\n\n\t\t\tglobal.Document.prototype.closest = function closest(selectors) {\n\t\t\t\treturn closestWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction pseudoClassHasInnerQuery(query) {\n\t\tvar current = '';\n\t\tvar start = 0;\n\t\tvar depth = 0;\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar inHas = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':has(' && !inHas) {\n\t\t\t\tinHas = true;\n\t\t\t\tstart = i;\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tif (!inHas) {\n\t\t\t\t\t\tcurrent = '';\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tdepth++;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase ')':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tinnerQuery: current,\n\t\t\t\t\t\t\t\tstart: start,\n\t\t\t\t\t\t\t\tend: i-1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdepth--;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction replaceScopeWithAttr(query, attr) {\n\t\tvar parts = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':scope' && !bracketed && (/^[\\[\\.\\:\\\\\"\\s|+>~#&,)]/.test(char || ''))) {\n\t\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\t\tparts.push('[' + attr + ']');\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tparts.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (current.toLowerCase() === ':scope') {\n\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\tparts.push('[' + attr + ']');\n\t\t\tcurrent = '';\n\t\t}\n\n\t\tif (parts.length === 0) {\n\t\t\treturn query;\n\t\t}\n\n\t\treturn parts.join('') + current;\n\t}\n\n\tfunction charIsNestedMarkMirror(char, mark) {\n\t\tif (mark === '(' && char === ')') {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (mark === '[' && char === ']') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction splitSelector(query) {\n\t\tvar selectors = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar nestedMark = false;\n\t\tvar nestedDepth = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ',':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (nestedDepth > 0) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tselectors.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tquoted = false;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\tcase ')':\n\t\t\t\tcase '[':\n\t\t\t\tcase ']':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (charIsNestedMarkMirror(char, nestedMark)) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth--;\n\n\t\t\t\t\t\tif (nestedDepth === 0) {\n\t\t\t\t\t\t\tnestedMark = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (char === nestedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth++;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tnestedDepth++;\n\t\t\t\t\tnestedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t}\n\t\t}\n\n\t\tselectors.push(current);\n\n\t\treturn selectors;\n\t}\n\n\tfunction replaceAllWithTempAttr(query, nested, callback) {\n\t\tvar inner = pseudoClassHasInnerQuery(query);\n\t\tif (!inner) {\n\t\t\treturn query;\n\t\t}\n\n\t\tif (nested) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar innerQuery = inner.innerQuery;\n\t\tvar attr = 'q-has' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\tvar innerReplacement = '[' + attr + ']';\n\n\t\tvar x = query;\n\n\t\tif (inner.innerQuery.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar innerParts = splitSelector(inner.innerQuery);\n\t\t\tvar newInnerParts = [];\n\t\t\tfor (var i = 0; i < innerParts.length; i++) {\n\t\t\t\tvar innerPart = innerParts[i];\n\n\t\t\t\t// Nested has is not supported.\n\t\t\t\t// If a recursive/nested call returns \"false\" we throw\n\t\t\t\tvar innerPartReplaced = replaceAllWithTempAttr(innerPart, true, function () { });\n\t\t\t\tif (!innerPartReplaced) {\n\t\t\t\t\tthrow new Error(\"Nested :has() is not supported\")\n\t\t\t\t} else {\n\t\t\t\t\tnewInnerParts.push(innerPart);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\t\treturn _prefix + newInnerParts.join(', ') + _suffix;\n\t\t}\n\n\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\tx = _prefix + innerReplacement + _suffix;\n\n\t\tcallback(innerQuery, attr);\n\t\tif (x.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar y = replaceAllWithTempAttr(x, false, callback);\n\t\t\tif (y) {\n\t\t\t\treturn y;\n\t\t\t}\n\t\t}\n\n\t\treturn x;\n\t}\n\n\tfunction walkNode(rootNode, callback) {\n\t\tif (('setAttribute' in (rootNode)) && ('querySelector' in (rootNode))) {\n\t\t\tcallback(rootNode);\n\t\t}\n\n\t\tif (rootNode.hasChildNodes()) {\n\t\t\tvar nodes = rootNode.childNodes;\n\t\t\tfor (var i = 0; i < nodes.length; ++i) {\n\t\t\t\twalkNode(nodes[i], callback);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction polyfill(qsa) {\n\t\treturn function (selectors) {\n\t\t\tif ((selectors.toLowerCase().indexOf(':has(') === -1) || !pseudoClassHasInnerQuery(selectors)) {\n\t\t\t\treturn qsa.apply(this, arguments);\n\t\t\t}\n\n\t\t\tvar rootNode;\n\t\t\tif ('getRootNode' in this) {\n\t\t\t\trootNode = this.getRootNode();\n\t\t\t} else {\n\t\t\t\tvar r = this;\n\t\t\t\twhile (r) {\n\t\t\t\t\trootNode = r;\n\t\t\t\t\tr = r.parentNode;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _focus = this;\n\t\t\tif (_focus === global.document) {\n\t\t\t\t_focus = global.document.documentElement;\n\t\t\t}\n\n\t\t\tvar scopeAttr = 'q-has-scope' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t_focus.setAttribute(scopeAttr, '');\n\n\t\t\ttry {\n\t\t\t\tselectors = replaceScopeWithAttr(selectors, scopeAttr);\n\n\t\t\t\tvar attrs = [scopeAttr];\n\t\t\t\tvar newQuery = replaceAllWithTempAttr(selectors, false, function (inner, attr) {\n\t\t\t\t\tattrs.push(attr);\n\n\t\t\t\t\tvar selectorParts = splitSelector(inner);\n\t\t\t\t\tfor (var x = 0; x < selectorParts.length; x++) {\n\t\t\t\t\t\tvar selectorPart = selectorParts[x].trim();\n\t\t\t\t\t\tvar absoluteSelectorPart = selectorPart;\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tselectorPart[0] === '>' ||\n\t\t\t\t\t\t\tselectorPart[0] === '+' ||\n\t\t\t\t\t\t\tselectorPart[0] === '~'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tabsoluteSelectorPart = selectorPart.slice(1).trim();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tabsoluteSelectorPart = ':scope ' + selectorPart;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twalkNode(rootNode, function (node) {\n\t\t\t\t\t\t\tif (!(node.querySelector(absoluteSelectorPart))) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tswitch (selectorPart[0]) {\n\t\t\t\t\t\t\t\tcase '~':\n\t\t\t\t\t\t\t\tcase '+':\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tvar siblings = node.childNodes;\n\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < siblings.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\tvar sibling = siblings[i];\n\t\t\t\t\t\t\t\t\t\t\tif (!('setAttribute' in sibling)) {\n\t\t\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope [' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tsibling.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\tcase '>':\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\tnode.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope[' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tnode.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\targuments[0] = newQuery;\n\n\t\t\t\t// results of the qsa\n\t\t\t\tvar elementOrNodeList = qsa.apply(this, arguments);\n\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// return the results of the qsa\n\t\t\t\treturn elementOrNodeList;\n\t\t\t} catch (err) {\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar errorMessage = '';\n\t\t\t\ttry {\n\t\t\t\t\tqsa.apply(this, [':core-web-does-not-exist']);\n\t\t\t\t} catch (dummyError) {\n\t\t\t\t\terrorMessage = dummyError.message;\n\t\t\t\t\tif (errorMessage) {\n\t\t\t\t\t\terrorMessage = errorMessage.replace(':core-web-does-not-exist', selectors);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!errorMessage) {\n\t\t\t\t\terrorMessage = \"Failed to execute 'querySelector' on 'Document': '\" + selectors + \"' is not a valid selector.\";\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new DOMException(errorMessage);\n\t\t\t\t} catch (_) {\n\t\t\t\t\tthrow new Error(errorMessage);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n})(self);\n"],"names":["decodeCSS","value","slice","values","split","result","i","length","String","fromCharCode","parseInt","extractEncodedSelectors","candidate","quotedMark","out","depth","quoted","containsUnescapedUnquotedHasAtDepth1","char","decoded","push","unique","indexOf","encodeCSS","hex","charCodeAt","toString","hasNativeSupport","self","CSS","supports","_","cssHasPseudo","document","options","hover","debug","observedAttributes","forcePolyfill","mustPolyfill","Array","isArray","filter","x","concat","observedItems","attributeElement","createElement","forEach","call","styleSheets","walkStyleSheet","transformObservedItemsThrottled","MutationObserver","mutationsList","mutation","addedNodes","node","nodeType","sheet","apply","splice","item","rule","parentStyleSheet","ownerNode","documentElement","contains","observe","childList","subtree","attributes","attributeFilter","addEventListener","Object","observeProperty","proto","property","hasOwnProperty","descriptor","getOwnPropertyDescriptor","configurable","defineProperty","enumerable","get","this","arguments","set","HTMLElement","prototype","elementName","e","console","error","transformObservedItemsThrottledBusy","cancelAnimationFrame","requestAnimationFrame","nodes","matches","querySelectorAll","selector","element","innerHTML","attributeName","setAttributeNode","children","cloneNode","style","zoom","removeAttribute","styleSheet","cssRules","index","selectorText","replace","hasSelectors","deleteRule","hasSelector","global","querySelector","querySelectorWithHasElement","polyfill","Element","selectors","querySelectorAllWithHasElement","matchesWithHasElement","closest","closestWithHasElement","Document","querySelectorWithHasDocument","querySelectorAllWithHasDocument","matchesWithHasDocument","closestWithHasDocument","pseudoClassHasInnerQuery","query","current","start","escaped","inHas","toLowerCase","innerQuery","end","replaceScopeWithAttr","attr","parts","bracketed","test","join","splitSelector","mark","nestedMark","nestedDepth","replaceAllWithTempAttr","nested","callback","inner","Math","floor","random","innerReplacement","innerParts","newInnerParts","innerPart","Error","_prefix","substring","_suffix","y","walkNode","rootNode","hasChildNodes","childNodes","qsa","getRootNode","r","parentNode","_focus","scopeAttr","setAttribute","attrs","newQuery","selectorParts","selectorPart","trim","absoluteSelectorPart","siblings","sibling","idAttr","elementOrNodeList","attrsForQuery","j","elements","k","l","err","errorMessage","dummyError","message","DOMException"],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("postcss-selector-parser"),t=require("@csstools/selector-specificity"),s=require("postcss-value-parser");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=r(e),n=r(s);function a(e){if(!e.toLowerCase().includes(":has("))return!1;let t=!1;try{const s=new Set;n.default(e).walk((e=>{if("function"===e.type&&"selector"===e.value.toLowerCase())return s.add(n.default.stringify(e.nodes)),!1})),s.forEach((e=>{(function(e){if(!e.toLowerCase().includes(":has("))return!1;let t=!1;try{o.default().astSync(e).walk((e=>{if("pseudo"===e.type&&":has"===e.value.toLowerCase()&&e.nodes&&e.nodes.length>0)return t=!0,!1}))}catch(e){}return t})(e)&&(t=!0)}))}catch(e){}return t}const l=e=>{const s={preserve:!0,specificityMatchingName:"does-not-exist",...e||{}},r=":not(#"+s.specificityMatchingName+")",n=":not(."+s.specificityMatchingName+")",l=":not("+s.specificityMatchingName+")";return{postcssPlugin:"css-has-pseudo-experimental",RuleExit:(e,{result:c})=>{if(!e.selector.toLowerCase().includes(":has(")||function(e){let t=e.parent;for(;t;){if("atrule"===t.type&&a(t.params))return!0;t=t.parent}return!1}(e))return;const i=e.selectors.map((a=>{if(!a.toLowerCase().includes(":has("))return a;let i;try{i=o.default().astSync(a)}catch(t){return e.warn(c,`Failed to parse selector : ${a}`),a}if(void 0===i)return a;i.walkPseudos((e=>{let t=e.parent,r=!1;for(;t;)o.default.isPseudoClass(t)&&":has"===t.value.toLowerCase()&&(r=!0),t=t.parent;r&&(":visited"===e.value.toLowerCase()&&e.replaceWith(o.default.className({value:s.specificityMatchingName})),":any-link"===e.value.toLowerCase()&&(e.value=":link"))})),i.walkPseudos((e=>{var s;if(":has"!==e.value.toLowerCase()||!e.nodes)return;let a=null!=(s=e.parent)?s:e;if(a!==e){let e=a.nodes.length;e:for(let t=0;t<a.nodes.length;t++){const s=a.nodes[t];if(o.default.isPseudoElement(s))for(let s=t-1;s>=0;s--)if("combinator"!==a.nodes[t].type&&"comment"!==a.nodes[t].type){e=s+1;break e}}if(e<a.nodes.length){const t=o.default.selector({value:"",nodes:[]});a.nodes.slice(0,e).forEach((e=>{delete e.parent,t.append(e)}));const s=o.default.selector({value:"",nodes:[]});a.nodes.slice(e).forEach((e=>{delete e.parent,s.append(e)}));const r=o.default.selector({value:"",nodes:[]});r.append(t),r.append(s),a.replaceWith(r),a=t}}const c="["+function(e){if(""===e)return"";let t,s="";for(let r=0;r<e.length;r++)t=e.charCodeAt(r).toString(36),s+=0===r?t:"-"+t;return"csstools-has-"+s}(a.toString())+"]",i=t.selectorSpecificity(a);let u=c;for(let e=0;e<i.a;e++)u+=r;const d=Math.max(1,i.b)-1;for(let e=0;e<d;e++)u+=n;for(let e=0;e<i.c;e++)u+=l;const f=o.default().astSync(u);a.replaceWith(f.nodes[0])}));const u=i.toString();return u!==a?".js-has-pseudo "+u:a}));i.join(",")!==e.selectors.join(",")&&(e.cloneBefore({selectors:i}),s.preserve||e.remove())}}};l.postcss=!0,module.exports=l;
1
+ "use strict";var e=require("postcss-selector-parser"),t=require("@csstools/selector-specificity"),s=require("postcss-value-parser");function encodeCSS(e){if(""===e)return"";let t,s="";for(let o=0;o<e.length;o++)t=e.charCodeAt(o).toString(36),s+=0===o?t:"-"+t;return"csstools-has-"+s}function isGuardedByAtSupportsFromAtRuleParams(e){if(!e.toLowerCase().includes(":has("))return!1;let t=!1;try{const o=new Set;s(e).walk((e=>{if("function"===e.type&&"selector"===e.value.toLowerCase())return o.add(s.stringify(e.nodes)),!1})),o.forEach((e=>{selectorContainsHasPseudo(e)&&(t=!0)}))}catch(e){}return t}function selectorContainsHasPseudo(t){if(!t.toLowerCase().includes(":has("))return!1;let s=!1;try{e().astSync(t).walk((e=>{if("pseudo"===e.type&&":has"===e.value.toLowerCase()&&e.nodes&&e.nodes.length>0)return s=!0,!1}))}catch(e){}return s}const creator=s=>{const o={preserve:!0,specificityMatchingName:"does-not-exist",...s||{}},r=":not(#"+o.specificityMatchingName+")",n=":not(."+o.specificityMatchingName+")",a=":not("+o.specificityMatchingName+")";return{postcssPlugin:"css-has-pseudo",RuleExit:(s,{result:c})=>{if(!s.selector.toLowerCase().includes(":has(")||isWithinSupportCheck(s))return;const i=s.selectors.map((i=>{if(!i.toLowerCase().includes(":has("))return i;let l;try{l=e().astSync(i)}catch(e){return s.warn(c,`Failed to parse selector : "${i}" with message: "${e.message}"`),i}if(void 0===l)return i;l.walkPseudos((t=>{let s=t.parent,r=!1;for(;s;)e.isPseudoClass(s)&&":has"===s.value.toLowerCase()&&(r=!0),s=s.parent;r&&(":visited"===t.value.toLowerCase()&&t.replaceWith(e.className({value:o.specificityMatchingName})),":any-link"===t.value.toLowerCase()&&(t.value=":link"))})),l.walkPseudos((s=>{if(":has"!==s.value.toLowerCase()||!s.nodes)return;let o=s.parent??s;if(o!==s){let t=o.nodes.length;e:for(let s=0;s<o.nodes.length;s++){const r=o.nodes[s];if(e.isPseudoElement(r))for(let e=s-1;e>=0;e--)if("combinator"!==o.nodes[s].type&&"comment"!==o.nodes[s].type){t=e+1;break e}}if(t<o.nodes.length){const s=e.selector({value:"",nodes:[]});o.nodes.slice(0,t).forEach((e=>{delete e.parent,s.append(e)}));const r=e.selector({value:"",nodes:[]});o.nodes.slice(t).forEach((e=>{delete e.parent,r.append(e)}));const n=e.selector({value:"",nodes:[]});n.append(s),n.append(r),o.replaceWith(n),o=s}}const c="["+encodeCSS(o.toString())+"]",i=t.selectorSpecificity(o);let l=c;for(let e=0;e<i.a;e++)l+=r;const u=Math.max(1,i.b)-1;for(let e=0;e<u;e++)l+=n;for(let e=0;e<i.c;e++)l+=a;const p=e().astSync(l);o.replaceWith(p.nodes[0])}));const u=l.toString();return u!==i?".js-has-pseudo "+u:i}));i.join(",")!==s.selectors.join(",")&&(s.cloneBefore({selectors:i}),o.preserve||s.remove())}}};function isWithinSupportCheck(e){let t=e.parent;for(;t;){if("atrule"===t.type&&isGuardedByAtSupportsFromAtRuleParams(t.params))return!0;t=t.parent}return!1}creator.postcss=!0,module.exports=creator;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,10 @@
1
1
  import type { PluginCreator } from 'postcss';
2
- declare const creator: PluginCreator<{
2
+ /** css-has-pseudo plugin options */
3
+ export type pluginOptions = {
4
+ /** Preserve the original notation. default: true */
3
5
  preserve?: boolean;
6
+ /** Change the selector that is used to adjust specificity. default: "does-not-exist" */
4
7
  specificityMatchingName?: string;
5
- }>;
8
+ };
9
+ declare const creator: PluginCreator<pluginOptions>;
6
10
  export default creator;
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import e from"postcss-selector-parser";import{selectorSpecificity as t}from"@csstools/selector-specificity";import s from"postcss-value-parser";function o(t){if(!t.toLowerCase().includes(":has("))return!1;let o=!1;try{const r=new Set;s(t).walk((e=>{if("function"===e.type&&"selector"===e.value.toLowerCase())return r.add(s.stringify(e.nodes)),!1})),r.forEach((t=>{(function(t){if(!t.toLowerCase().includes(":has("))return!1;let s=!1;try{e().astSync(t).walk((e=>{if("pseudo"===e.type&&":has"===e.value.toLowerCase()&&e.nodes&&e.nodes.length>0)return s=!0,!1}))}catch(e){}return s})(t)&&(o=!0)}))}catch(e){}return o}const r=s=>{const r={preserve:!0,specificityMatchingName:"does-not-exist",...s||{}},n=":not(#"+r.specificityMatchingName+")",a=":not(."+r.specificityMatchingName+")",c=":not("+r.specificityMatchingName+")";return{postcssPlugin:"css-has-pseudo-experimental",RuleExit:(s,{result:l})=>{if(!s.selector.toLowerCase().includes(":has(")||function(e){let t=e.parent;for(;t;){if("atrule"===t.type&&o(t.params))return!0;t=t.parent}return!1}(s))return;const i=s.selectors.map((o=>{if(!o.toLowerCase().includes(":has("))return o;let i;try{i=e().astSync(o)}catch(e){return s.warn(l,`Failed to parse selector : ${o}`),o}if(void 0===i)return o;i.walkPseudos((t=>{let s=t.parent,o=!1;for(;s;)e.isPseudoClass(s)&&":has"===s.value.toLowerCase()&&(o=!0),s=s.parent;o&&(":visited"===t.value.toLowerCase()&&t.replaceWith(e.className({value:r.specificityMatchingName})),":any-link"===t.value.toLowerCase()&&(t.value=":link"))})),i.walkPseudos((s=>{var o;if(":has"!==s.value.toLowerCase()||!s.nodes)return;let r=null!=(o=s.parent)?o:s;if(r!==s){let t=r.nodes.length;e:for(let s=0;s<r.nodes.length;s++){const o=r.nodes[s];if(e.isPseudoElement(o))for(let e=s-1;e>=0;e--)if("combinator"!==r.nodes[s].type&&"comment"!==r.nodes[s].type){t=e+1;break e}}if(t<r.nodes.length){const s=e.selector({value:"",nodes:[]});r.nodes.slice(0,t).forEach((e=>{delete e.parent,s.append(e)}));const o=e.selector({value:"",nodes:[]});r.nodes.slice(t).forEach((e=>{delete e.parent,o.append(e)}));const n=e.selector({value:"",nodes:[]});n.append(s),n.append(o),r.replaceWith(n),r=s}}const l="["+function(e){if(""===e)return"";let t,s="";for(let o=0;o<e.length;o++)t=e.charCodeAt(o).toString(36),s+=0===o?t:"-"+t;return"csstools-has-"+s}(r.toString())+"]",i=t(r);let u=l;for(let e=0;e<i.a;e++)u+=n;const p=Math.max(1,i.b)-1;for(let e=0;e<p;e++)u+=a;for(let e=0;e<i.c;e++)u+=c;const f=e().astSync(u);r.replaceWith(f.nodes[0])}));const u=i.toString();return u!==o?".js-has-pseudo "+u:o}));i.join(",")!==s.selectors.join(",")&&(s.cloneBefore({selectors:i}),r.preserve||s.remove())}}};r.postcss=!0;export{r as default};
1
+ import e from"postcss-selector-parser";import{selectorSpecificity as t}from"@csstools/selector-specificity";import s from"postcss-value-parser";function encodeCSS(e){if(""===e)return"";let t,s="";for(let o=0;o<e.length;o++)t=e.charCodeAt(o).toString(36),s+=0===o?t:"-"+t;return"csstools-has-"+s}function isGuardedByAtSupportsFromAtRuleParams(e){if(!e.toLowerCase().includes(":has("))return!1;let t=!1;try{const o=new Set;s(e).walk((e=>{if("function"===e.type&&"selector"===e.value.toLowerCase())return o.add(s.stringify(e.nodes)),!1})),o.forEach((e=>{selectorContainsHasPseudo(e)&&(t=!0)}))}catch(e){}return t}function selectorContainsHasPseudo(t){if(!t.toLowerCase().includes(":has("))return!1;let s=!1;try{e().astSync(t).walk((e=>{if("pseudo"===e.type&&":has"===e.value.toLowerCase()&&e.nodes&&e.nodes.length>0)return s=!0,!1}))}catch(e){}return s}const creator=s=>{const o={preserve:!0,specificityMatchingName:"does-not-exist",...s||{}},r=":not(#"+o.specificityMatchingName+")",n=":not(."+o.specificityMatchingName+")",a=":not("+o.specificityMatchingName+")";return{postcssPlugin:"css-has-pseudo",RuleExit:(s,{result:c})=>{if(!s.selector.toLowerCase().includes(":has(")||isWithinSupportCheck(s))return;const i=s.selectors.map((i=>{if(!i.toLowerCase().includes(":has("))return i;let l;try{l=e().astSync(i)}catch(e){return s.warn(c,`Failed to parse selector : "${i}" with message: "${e.message}"`),i}if(void 0===l)return i;l.walkPseudos((t=>{let s=t.parent,r=!1;for(;s;)e.isPseudoClass(s)&&":has"===s.value.toLowerCase()&&(r=!0),s=s.parent;r&&(":visited"===t.value.toLowerCase()&&t.replaceWith(e.className({value:o.specificityMatchingName})),":any-link"===t.value.toLowerCase()&&(t.value=":link"))})),l.walkPseudos((s=>{if(":has"!==s.value.toLowerCase()||!s.nodes)return;let o=s.parent??s;if(o!==s){let t=o.nodes.length;e:for(let s=0;s<o.nodes.length;s++){const r=o.nodes[s];if(e.isPseudoElement(r))for(let e=s-1;e>=0;e--)if("combinator"!==o.nodes[s].type&&"comment"!==o.nodes[s].type){t=e+1;break e}}if(t<o.nodes.length){const s=e.selector({value:"",nodes:[]});o.nodes.slice(0,t).forEach((e=>{delete e.parent,s.append(e)}));const r=e.selector({value:"",nodes:[]});o.nodes.slice(t).forEach((e=>{delete e.parent,r.append(e)}));const n=e.selector({value:"",nodes:[]});n.append(s),n.append(r),o.replaceWith(n),o=s}}const c="["+encodeCSS(o.toString())+"]",i=t(o);let l=c;for(let e=0;e<i.a;e++)l+=r;const u=Math.max(1,i.b)-1;for(let e=0;e<u;e++)l+=n;for(let e=0;e<i.c;e++)l+=a;const p=e().astSync(l);o.replaceWith(p.nodes[0])}));const u=l.toString();return u!==i?".js-has-pseudo "+u:i}));i.join(",")!==s.selectors.join(",")&&(s.cloneBefore({selectors:i}),o.preserve||s.remove())}}};function isWithinSupportCheck(e){let t=e.parent;for(;t;){if("atrule"===t.type&&isGuardedByAtSupportsFromAtRuleParams(t.params))return!0;t=t.parent}return!1}creator.postcss=!0;export{creator as default};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "css-has-pseudo",
3
3
  "description": "Style elements relative to other elements in CSS",
4
- "version": "4.0.2",
4
+ "version": "5.0.1",
5
5
  "contributors": [
6
6
  {
7
7
  "name": "Antonio Laguna",
@@ -23,13 +23,14 @@
23
23
  "url": "https://opencollective.com/csstools"
24
24
  },
25
25
  "engines": {
26
- "node": "^12 || ^14 || >=16"
26
+ "node": "^14 || ^16 || >=18"
27
27
  },
28
28
  "main": "dist/index.cjs",
29
29
  "module": "dist/index.mjs",
30
30
  "types": "dist/index.d.ts",
31
31
  "exports": {
32
32
  ".": {
33
+ "types": "./dist/index.d.ts",
33
34
  "import": "./dist/index.mjs",
34
35
  "require": "./dist/index.cjs",
35
36
  "default": "./dist/index.mjs"
@@ -55,15 +56,16 @@
55
56
  "postcss-value-parser": "^4.2.0"
56
57
  },
57
58
  "peerDependencies": {
58
- "postcss": "^8.2"
59
+ "postcss": "^8.4"
59
60
  },
60
61
  "devDependencies": {
61
- "@mrhenry/core-web": "^0.7.7",
62
- "puppeteer": "^16.0.0"
62
+ "@mrhenry/core-web": "^1.0.4",
63
+ "puppeteer": "^19.5.2"
63
64
  },
64
65
  "scripts": {
65
- "build": "rollup -c ../../rollup/default.js",
66
- "clean": "node -e \"fs.rmSync('./dist', { recursive: true, force: true });\"",
66
+ "prebuild": "npm run clean",
67
+ "build": "rollup -c ../../rollup/default.mjs",
68
+ "clean": "node -e \"fs.rmSync('./dist', { recursive: true, force: true }); fs.mkdirSync('./dist');\"",
67
69
  "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs",
68
70
  "lint": "npm run lint:eslint && npm run lint:package-json",
69
71
  "lint:eslint": "eslint ./src --ext .js --ext .ts --ext .mjs --no-error-on-unmatched-pattern",