New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@adguard/extended-css

Package Overview
Dependencies
Maintainers
3
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@adguard/extended-css - npm Package Compare versions

Comparing version 2.0.9 to 2.0.10

2

dist/build.txt

@@ -1,1 +0,1 @@

version=2.0.9
version=2.0.10

@@ -1,5 +0,5 @@

/*! @adguard/extended-css - v2.0.9 - Tue Nov 15 2022
/*! @adguard/extended-css - v2.0.10 - Tue Nov 15 2022
* https://github.com/AdguardTeam/ExtendedCss#homepage
* Copyright (c) 2022 AdGuard. Licensed GPL-3.0
*/
var ExtendedCss=function(e){"use strict";const t={LEFT:"[",RIGHT:"]"},r={LEFT:"(",RIGHT:")"},o={LEFT:"{",RIGHT:"}"},s="/",n=" ",a=",",c=":",l="'",i='"',u=[n,"\t","\r","\n","\f"],d="*",p=n,h=">",f="+",m="~",w=[p,h,f,m],v=["[","]","(",")","{","}",s,"\\",";",c,a,l,i,"^","$",d,"#",".",p,h,f,m,"\t","\r","\n","\f"],g="contains",E="has-text",b="-abp-contains",y="matches-css",S="matches-css-before",x="matches-css-after",k="matches-attr",T="matches-property",N="xpath",P="nth-ancestor",R=[g,E,b],O="upward",C="remove",A="-abp-has",I=["has","if",A],L="if-not",M="is",B="not",D=[g,E,b,y,S,x,k,T,N,P,O],F=[...I,L,M,B],W=[...D,...F],_=":scope",$={AFTER:"after",BACKDROP:"backdrop",BEFORE:"before",CUE:"cue",CUE_REGION:"cue-region",FIRST_LETTER:"first-letter",FIRST_LINE:"first-line",FILE_SELECTION_BUTTON:"file-selector-button",GRAMMAR_ERROR:"grammar-error",MARKER:"marker",PART:"part",PLACEHOLDER:"placeholder",SELECTION:"selection",SLOTTED:"slotted",SPELLING_ERROR:"spelling-error",TARGET_TEXT:"target-text"},j="true",V="global",U="No style declaration at stylesheet part",q="Selector should be defined before style declaration in stylesheet",G="Invalid style declaration at stylesheet part",H="Unclosed style declaration at stylesheet part",K="Missing style property in declaration at stylesheet part",X="Missing style value in declaration at stylesheet part",z="Invalid stylesheet - no style declared or :remove() pseudo-class used",Y="Comments in stylesheet are not supported",J="Invalid :remove() pseudo-class in selector",Q="Selector should be specified before :remove() pseudo-class",Z="Pseudo-class :remove() appears more than once in selector",ee="Pseudo-class :remove() should be at the end of selector",te=(e,t,r)=>e?e.split(t).join(r):e,re=e=>{if(e.startsWith(s)&&e.endsWith(s))return new RegExp(e.slice(1,-1));const t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(t)},oe=e=>{let t;switch(e){case void 0:t="undefined";break;case null:t="null";break;default:t=e.toString()}return t},se=e=>{const t=Number(e);let r;if(Number.isNaN(t))switch(e){case"undefined":r=void 0;break;case"null":r=null;break;case"true":r=!0;break;case"false":r=!1;break;default:r=e}else r=t;return r},ne={error:"undefined"!=typeof console&&console.error&&console.error.bind?console.error.bind(window.console):console.error,info:"undefined"!=typeof console&&console.info&&console.info.bind?console.info.bind(window.console):console.info};var ae;!function(e){e.Chrome="Chrome",e.Firefox="Firefox",e.Edge="Edg",e.Opera="Opera",e.Safari="Safari"}(ae||(ae={}));const ce="Chromium",le="Google Chrome",ie="Apple Computer, Inc."===navigator.vendor,ue={[ae.Chrome]:{MASK:/\s(Chrome)\/(\d+)\..+\s(?!.*Edg\/)/,MIN_VERSION:55},[ae.Firefox]:{MASK:/\s(Firefox)\/(\d+)\./,MIN_VERSION:52},[ae.Edge]:{MASK:/\s(Edg)\/(\d+)\./,MIN_VERSION:80},[ae.Opera]:{MASK:/\s(OPR)\/(\d+)\./,MIN_VERSION:80},[ae.Safari]:{MASK:/\sVersion\/(\d{2}\.\d)(.+\s|\s)(Safari)\//,MIN_VERSION:11.1}},de=()=>{const e=(()=>{var e;const t=null===(e=navigator.userAgentData)||void 0===e?void 0:e.brands;return t&&t.find((e=>e.brand===ce||e.brand===le))||null})();if(!e){const e=(()=>{let e,t;const r=Object.values(ae);for(let o=0;o<r.length;o+=1){const s=ue[r[o]].MASK.exec(navigator.userAgent);if(s)return s[3]===r[o]?(e=s[3],t=Number(s[1])):(e=s[1],t=Number(s[2])),{browserName:e,currentVersion:t}}return null})();if(!e)return null;return{browserName:e.browserName,currentVersion:e.currentVersion}}const t=e.brand,r=e.version;return{browserName:t===ce||t===le?ae.Chrome:t,currentVersion:Number(r)}},pe={MutationObserver:window.MutationObserver||window.WebKitMutationObserver},he=(()=>{var e;const t=window.Node||Node;return null===(e=Object.getOwnPropertyDescriptor(t.prototype,"textContent"))||void 0===e?void 0:e.get})(),fe=e=>{let t=e.tagName.toLowerCase();return t+=Array.from(e.attributes).map((t=>"[".concat(t.name,'="').concat(e.getAttribute(t.name),'"]'))).join(""),t},me=e=>e instanceof HTMLElement;var we;!function(e){e.Background="background",e.BackgroundImage="background-image",e.Content="content",e.Opacity="opacity"}(we||(we={}));const ve=".*",ge=/^\s*\/.*\/[gmisuy]*\s*$/,Ee=e=>{if(!e.includes('url("')){const t=/url\((.*?)\)/g;return e.replace(t,'url("$1")')}return e},be=e=>e.replace(/(\^)?url(\\)?\\\((\w|\[\w)/g,'$1url$2\\(\\"?$3'),ye=Ee,Se=e=>{let t;return e.startsWith(s)&&e.endsWith(s)?(t=be(e),t=t.slice(1,-1)):(t=ye(e),t=t.replace(/\\([\\()[\]"])/g,"$1"),t=(e=>{const t=new RegExp("[".concat([".","+","?","$","{","}","(",")","[","]","\\","/"].join("\\"),"]"),"g");return e.replace(t,"\\$&")})(t),t=te(t,d,ve)),new RegExp(t,"i")},xe=(e,t,r)=>((e,t)=>{let r="";switch(e){case we.Background:case we.BackgroundImage:r=Ee(t);break;case we.Content:r=t.replace(/^(["'])([\s\S]*)\1$/,"$2");break;case we.Opacity:r=ie?(Math.round(100*parseFloat(t))/100).toString():t;break;default:r=t}return r})(t,window.getComputedStyle(e,r).getPropertyValue(t)),ke=(e,t)=>{const r=e.indexOf(t);let o,s;return r>-1?(o=e.substring(0,r).trim(),s=e.substring(r+1).trim()):o=e,{name:o,value:s}},Te=e=>{const t=e.pseudoName,r=e.pseudoArg,o=e.domElement,s=((e,t)=>{const r=ke(t,a),o=r.name;let s=o,n=r.value;if(Object.values($).includes(o)||(s=null,n=t),!n)throw new Error("Required style property argument part is missing in :".concat(e,"() arg: '").concat(t,"'"));return{regularPseudoElement:s,styleMatchArg:n}})(t,r),n=s.regularPseudoElement,l=s.styleMatchArg,i=ke(l,c),u=i.name,d=i.value;if(!u||!d)throw new Error("Required property name or value is missing in :".concat(t,"() arg: '").concat(l,"'"));let p;try{p=Se(d)}catch(e){throw ne.error(e),new Error("Invalid argument of :".concat(t,"() pseudo-class: '").concat(l,"'"))}const h=xe(o,u,n);return p&&p.test(h)},Ne=e=>!e.includes(s)&&!!/^[\w-]+$/.test(e),Pe=function(e){let t,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e.length>1&&e.startsWith(i)&&e.endsWith(i)&&(e=e.slice(1,-1)),""===e)throw new Error("Argument should be specified. Empty arg is invalid.");if(e.startsWith(s)&&e.endsWith(s)){if(!(e.length>2))throw new Error("Invalid regexp: '".concat(e,"'"));t=re(e)}else if(e.includes(d)){if(e===d&&!r)throw new Error("Argument should be more specific than ".concat(e));t=te(e,d,ve),t=new RegExp(t)}else{if(!Ne(e))throw new Error("Invalid argument: '".concat(e,"'"));t=e}return t},Re=(e,t)=>{const r=ke(t,"="),o=r.name,s=r.value;if(!o)throw new Error("Required attribute name is missing in :".concat(e," arg: ").concat(t));return{rawName:o,rawValue:s}},Oe=e=>{const t=e.pseudoName,r=e.pseudoArg,o=e.domElement.attributes;if(0===o.length)return!1;const s=Re(t,r),n=s.rawName,a=s.rawValue;let c;try{c=Pe(n)}catch(e){throw ne.error(e),new SyntaxError(e.message)}let l=!1,i=0;for(;i<o.length&&!l;){const e=o[i],t=c instanceof RegExp?c.test(e.name):c===e.name;if(a){let r;try{r=Pe(a)}catch(e){throw ne.error(e),new SyntaxError(e.message)}const o=r instanceof RegExp?r.test(e.value):r===e.value;l=t&&o}else l=t;i+=1}return l},Ce=function e(t,r){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const s=r[0];if(1===r.length){let e;for(e in t)s instanceof RegExp?s.test(e)&&o.push({base:t,prop:e,value:t[e]}):s===e&&o.push({base:t,prop:s,value:t[e]});return o}if(s instanceof RegExp){const n=r.slice(1),a=[];for(const e in t)s.test(e)&&a.push(e);a.forEach((r=>{var s;const a=null===(s=Object.getOwnPropertyDescriptor(t,r))||void 0===s?void 0:s.value;e(a,n,o)}))}if(t&&"string"==typeof s){var n;const a=null===(n=Object.getOwnPropertyDescriptor(t,s))||void 0===n?void 0:n.value;r=r.slice(1),void 0!==a&&e(a,r,o)}return o},Ae=e=>{const t=e.pseudoName,r=e.pseudoArg,o=e.domElement,n=Re(t,r),a=n.rawName,c=n.rawValue;if(a.includes("\\/")||a.includes("\\."))throw new Error("Invalid :".concat(t," name pattern: ").concat(a));let l;try{l=(e=>{e.length>1&&e.startsWith(i)&&e.endsWith(i)&&(e=e.slice(1,-1));const t=e.split("."),r=[];let o="",n=!1,a=0;for(;a<t.length;){const e=t[a];e.startsWith(s)&&e.endsWith(s)&&e.length>2?r.push(e):e.startsWith(s)?(n=!0,o+=e):e.endsWith(s)?(n=!1,o+=".".concat(e),r.push(o),o=""):n?o+=e:r.push(e),a+=1}if(o.length>0)throw new Error("Invalid regexp property pattern '".concat(e,"'"));return r.map((t=>{if(0===t.length)throw new Error("Empty pattern '".concat(t,"' is invalid in chain '").concat(e,"'"));let r;try{r=Pe(t,!0)}catch(r){throw ne.error(r),new Error("Invalid property pattern '".concat(t,"' in property chain '").concat(e,"'"))}return r}))})(a)}catch(e){throw ne.error(e),new SyntaxError(e.message)}const u=Ce(o,l);if(0===u.length)return!1;let d=!0;if(c){let e;try{e=Pe(c)}catch(e){throw ne.error(e),new SyntaxError(e.message)}if(e)for(let t=0;t<u.length;t+=1){const r=u[t].value;if(e instanceof RegExp)d=e.test(oe(r));else{if("null"===r||"undefined"===r){d=e===r;break}d=se(e)===r}if(d)break}}return d},Ie=e=>{const t=e.pseudoName,r=e.pseudoArg,o=(e=>(null==he?void 0:he.apply(e))||"")(e.domElement);let n,a=r;if(a.startsWith(s)&&ge.test(a)){const e=a.lastIndexOf("/"),s=a.substring(e+1);let c;a=a.substring(0,e+1).slice(1,-1).replace(/\\([\\"])/g,"$1");try{c=new RegExp(a,s)}catch(e){throw new Error("Invalid argument of :".concat(t,"() pseudo-class: ").concat(r))}n=c.test(o)}else a=a.replace(/\\([\\()[\]"])/g,"$1"),n=o.includes(a);return n};function Le(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}let Me;!function(e){e.SelectorList="SelectorList",e.Selector="Selector",e.RegularSelector="RegularSelector",e.ExtendedSelector="ExtendedSelector",e.AbsolutePseudoClass="AbsolutePseudoClass",e.RelativePseudoClass="RelativePseudoClass"}(Me||(Me={}));class Be{constructor(e){Le(this,"children",[]),this.type=e}addChild(e){this.children.push(e)}}class De extends Be{constructor(e){super(Me.RegularSelector),this.value=e}}class Fe extends Be{constructor(e){super(Me.RelativePseudoClass),this.name=e}}class We extends Be{constructor(e){super(Me.AbsolutePseudoClass),Le(this,"value",""),this.name=e}}const _e=/\[-(?:ext)-([a-z-_]+)=(["'])((?:(?=(\\?))\4.)*?)\2\]/g,$e=(e,t,r,o)=>{const s=new RegExp("([^\\\\]|^)\\\\".concat(r),"g"),n=o.replace(s,"$1".concat(r));return":".concat(t,"(").concat(n,")")},je=/\(:scope >/g,Ve=/(:matches-css)-(before|after)\(/g,Ue=(e,t,o)=>"".concat(t).concat(r.LEFT).concat(o).concat(a),qe=e=>(e=>{const t=e.replace(_e,$e).replace(je,"(>").replace(Ve,Ue);if(t.includes("[-ext-"))throw new Error("Invalid extended-css old syntax selector: '".concat(e,"'"));return t})(e.trim());let Ge;!function(e){e.Mark="mark",e.Word="word"}(Ge||(Ge={}));const He=e=>{const t=[];e.forEach((e=>t.push(e)));const r=[];for(;t.length;){const e=t.pop();if(!e)throw new Error("Unable to make array flat");Array.isArray(e)?e.forEach((e=>t.push(e))):r.push(e)}return r.reverse()},Ke=e=>e[e.length-1],Xe="html ".concat(d),ze=e=>W.includes(e),Ye=(e,r)=>w.includes(r)||e===Ge.Word||r===d||"#"===r||"."===r||r===c||r===l||r===i||r===t.LEFT,Je={COMMON:[r.LEFT,l,i,"=",".",c,n],CONTAINS:[r.LEFT,l,i]},Qe=(e,t,r)=>{const o=Ke(e.extendedPseudoNamesStack);if(R.includes(o))return Je.CONTAINS.includes(t);if(t===s&&o!==N){const e=r?"in arg part: '".concat(r,"'"):"arg";throw new Error("Invalid regexp pattern for :".concat(o,"() pseudo-class ").concat(e))}return Je.COMMON.includes(t)},Ze=e=>0===e.pathToBufferNode.length?null:Ke(e.pathToBufferNode),et=e=>{const t=Ze(e);if(!t)throw new Error("No bufferNode found");if(t.type!==Me.Selector)throw new Error("Unsupported bufferNode type");const r=t.children.filter((e=>e.type===Me.RegularSelector));if(0===r.length)throw new Error("No RegularSelector node found");const o=Ke(r);return e.pathToBufferNode.push(o),o},tt=(e,t)=>{const r=Ze(e);if(null===r)throw new Error("No bufferNode to update");const o=r.type;if(o!==Me.RegularSelector&&o!==Me.AbsolutePseudoClass)throw new Error("".concat(r.type," node can not be updated. Only RegularSelector and AbsolutePseudoClass are supported"));r.value+=t},rt=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";const o=Ze(e);if(null===o)throw new Error("No buffer node");let s;s=t===Me.RegularSelector?new De(r):t===Me.AbsolutePseudoClass?new We(r):t===Me.RelativePseudoClass?new Fe(r):new Be(t),o.addChild(s),e.pathToBufferNode.push(s)},ot=(e,t)=>{(e=>{const t=new Be(Me.SelectorList);e.ast=t,e.pathToBufferNode.push(t)})(e),rt(e,Me.Selector),rt(e,Me.RegularSelector,t)},st=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";rt(e,Me.SelectorList),rt(e,Me.Selector),rt(e,Me.RegularSelector,t)},nt=(e,t)=>{for(let r=e.pathToBufferNode.length-1;r>=0;r-=1)if(e.pathToBufferNode[r].type===t){e.pathToBufferNode=e.pathToBufferNode.slice(0,r+1);break}},at=e=>{nt(e,Me.Selector);const t=Ze(e);if(!t)throw new Error("No SelectorNode, impossible to continue selector parsing by ExtendedCss");const r=Ke(t.children),o=r.type===Me.ExtendedSelector&&0===e.standardPseudoBracketsStack.length,s=o&&r.children[0].name,n=s&&F.includes(s),a=s&&D.includes(s),c=n&&e.extendedPseudoBracketsStack.length>0&&e.extendedPseudoBracketsStack.length===e.extendedPseudoNamesStack.length,l=a&&s===Ke(e.extendedPseudoNamesStack);let i=t;return c||l?(e.pathToBufferNode.push(r),i=r.children[0]):i=o?t:et(e),e.pathToBufferNode.push(i),i},ct=(e,t,o,s,n)=>{if(ze(s.toLowerCase())){if(I.includes(s)&&e.standardPseudoNamesStack.length>0)throw new Error("Usage of :".concat(s,"() pseudo-class is not allowed inside regular pseudo: '").concat(Ke(e.standardPseudoNamesStack),"'"));nt(e,Me.Selector),rt(e,Me.ExtendedSelector)}else{if(s.toLowerCase()===C)throw new Error("Selector parser error: invalid :remove() pseudo-class in selector: '".concat(t,"'"));tt(e,o),n!==r.LEFT||e.isAttributeBracketsOpen||e.standardPseudoNamesStack.push(s)}},lt=e=>{var g,E,b,y,S,x,k,T,R,A,L,F,_,j,V,U,q,G,H,K;const X=(e=>{const t=qe(e);let r,o="";const s=[];for(let e=0;e<t.length;e+=1){if(r=t[e],v.includes(r)){s.push({type:Ge.Mark,value:r});continue}o+=r;const n=t[e+1];n&&!v.includes(n)||(s.push({type:Ge.Word,value:o}),o="")}return s})(e),z={ast:null,pathToBufferNode:[],extendedPseudoNamesStack:[],extendedPseudoBracketsStack:[],standardPseudoNamesStack:[],standardPseudoBracketsStack:[],isAttributeBracketsOpen:!1,isRegexpOpen:!1};let Y=0;for(;Y<X.length;){const v=X[Y],J=v.type,Q=v.value,Z=X[Y+1]||[],ee=Z.type,te=Z.value,re=X[Y+2]||[],oe=re.value,se=X[Y-1]||[],ne=se.type,ae=se.value;let ce=Ze(z);switch(J){case Ge.Word:if(null===ce)ot(z,Q);else if(ce.type===Me.SelectorList)rt(z,Me.Selector),rt(z,Me.RegularSelector,Q);else if(ce.type===Me.RegularSelector)tt(z,Q);else if(ce.type===Me.ExtendedSelector){if(u.includes(te)&&oe===r.LEFT)throw new Error("No white space is allowed before or after extended pseudo-class name in selector: '".concat(e,"'"));z.extendedPseudoNamesStack.push(Q.toLowerCase()),D.includes(Q.toLowerCase())?rt(z,Me.AbsolutePseudoClass,Q.toLowerCase()):rt(z,Me.RelativePseudoClass,Q.toLowerCase())}else ce.type===Me.AbsolutePseudoClass?tt(z,Q):ce.type===Me.RelativePseudoClass&&st(z,Q);break;case Ge.Mark:switch(Q){case a:if(!ce||void 0!==ce&&!te)throw new Error("'".concat(e,"' is not a valid selector"));ce.type===Me.RegularSelector?z.isAttributeBracketsOpen?tt(z,Q):nt(z,Me.SelectorList):ce.type===Me.AbsolutePseudoClass?tt(z,Q):(null===(g=ce)||void 0===g?void 0:g.type)===Me.Selector&&nt(z,Me.SelectorList);break;case n:if((null===(E=ce)||void 0===E?void 0:E.type)!==Me.RegularSelector||z.isAttributeBracketsOpen||(ce=at(z)),(null===(b=ce)||void 0===b?void 0:b.type)===Me.RegularSelector){if(!z.isAttributeBracketsOpen&&(ae===c&&ee===Ge.Word||ne===Ge.Word&&te===r.LEFT))throw new Error("'".concat(e,"' is not a valid selector"));(!te||Ye(ee,te)||z.isAttributeBracketsOpen)&&tt(z,Q)}(null===(y=ce)||void 0===y?void 0:y.type)===Me.AbsolutePseudoClass&&tt(z,Q),(null===(S=ce)||void 0===S?void 0:S.type)===Me.RelativePseudoClass&&st(z),(null===(x=ce)||void 0===x?void 0:x.type)===Me.Selector&&te&&Ye(ee,te)&&rt(z,Me.RegularSelector);break;case p:case h:case f:case m:case";":case s:case"\\":case l:case i:case"^":case"$":case o.LEFT:case o.RIGHT:case d:case"#":case".":case t.LEFT:if(w.includes(Q)){if(null===ce)throw new Error("'".concat(e,"' is not a valid selector"));ce=at(z)}if(null===ce)Q!==d||te!==c||oe!==M&&oe!==B?(ot(z,Q),Q===t.LEFT&&(z.isAttributeBracketsOpen=!0)):ot(z,Xe);else if(ce.type===Me.RegularSelector)tt(z,Q),Q===t.LEFT&&(z.isAttributeBracketsOpen=!0);else if(ce.type===Me.AbsolutePseudoClass){if(tt(z,Q),!ce.value)throw new Error("bufferNode should have value by now");Q===s&&"\\"!==ae&&z.extendedPseudoNamesStack.length>0&&(Qe(z,ae,ce.value)?z.isRegexpOpen=!z.isRegexpOpen:z.isRegexpOpen=!1)}else ce.type===Me.RelativePseudoClass?(st(z,Q),Q===t.LEFT&&(z.isAttributeBracketsOpen=!0)):ce.type===Me.Selector?w.includes(Q)?rt(z,Me.RegularSelector,Q):z.isRegexpOpen||(ce=et(z),tt(z,Q),Q===t.LEFT&&(z.isAttributeBracketsOpen=!0)):ce.type===Me.SelectorList&&(rt(z,Me.Selector),rt(z,Me.RegularSelector,Q),Q===t.LEFT&&(z.isAttributeBracketsOpen=!0));break;case t.RIGHT:(null===(k=ce)||void 0===k?void 0:k.type)===Me.RegularSelector&&(z.isAttributeBracketsOpen=!1,tt(z,Q)),(null===(T=ce)||void 0===T?void 0:T.type)===Me.AbsolutePseudoClass&&tt(z,Q);break;case c:if(u.includes(te)&&W.includes(oe))throw new Error("No white space is allowed before or after extended pseudo-class name in selector: '".concat(e,"'"));if(null===ce){if(te===N)ot(z,"body");else if(te===M||te===B)ot(z,Xe);else{if(te===O||te===P)throw new Error("Selector should be specified before :".concat(te,"() pseudo-class"));ot(z,d)}ce=Ze(z)}if(!ce)throw new Error("bufferNode has to be specified by now");if(ce.type===Me.SelectorList&&(rt(z,Me.Selector),rt(z,Me.RegularSelector),ce=Ze(z)),(null===(R=ce)||void 0===R?void 0:R.type)===Me.RegularSelector&&((w.includes(ae)||ae===a)&&tt(z,d),ct(z,e,Q,te,oe)),(null===(A=ce)||void 0===A?void 0:A.type)===Me.Selector)if(ze(te.toLowerCase()))rt(z,Me.ExtendedSelector);else{if(te.toLowerCase()===C)throw new Error("Selector parser error: invalid :remove() pseudo-class in selector: '".concat(e,"'"));ce=et(z),ct(z,e,Q,ee,oe)}if((null===(L=ce)||void 0===L?void 0:L.type)===Me.AbsolutePseudoClass){if(ce.name===N&&W.includes(Z.value)&&re.value===r.LEFT)throw new Error(":xpath() pseudo-class should be at the end of selector: '".concat(e,"'"));tt(z,Q)}(null===(F=ce)||void 0===F?void 0:F.type)===Me.RelativePseudoClass&&(st(z,d),ze(te.toLowerCase())?(nt(z,Me.Selector),rt(z,Me.ExtendedSelector)):(tt(z,Q),oe===r.LEFT&&z.standardPseudoNamesStack.push(te)));break;case r.LEFT:(null===(_=ce)||void 0===_?void 0:_.type)===Me.AbsolutePseudoClass&&(ce.name!==N&&z.isRegexpOpen?tt(z,Q):(z.extendedPseudoBracketsStack.push(Q),z.extendedPseudoBracketsStack.length>z.extendedPseudoNamesStack.length&&tt(z,Q))),(null===(j=ce)||void 0===j?void 0:j.type)===Me.RegularSelector&&(z.standardPseudoNamesStack.length>0&&(tt(z,Q),z.standardPseudoBracketsStack.push(Q)),z.isAttributeBracketsOpen&&tt(z,Q)),(null===(V=ce)||void 0===V?void 0:V.type)===Me.RelativePseudoClass&&z.extendedPseudoBracketsStack.push(Q);break;case r.RIGHT:if((null===(U=ce)||void 0===U?void 0:U.type)===Me.AbsolutePseudoClass&&(ce.name!==N&&z.isRegexpOpen?tt(z,Q):(z.extendedPseudoBracketsStack.pop(),ce.name!==N?(z.extendedPseudoNamesStack.pop(),z.extendedPseudoBracketsStack.length>z.extendedPseudoNamesStack.length?tt(z,Q):z.extendedPseudoBracketsStack.length>=0&&z.extendedPseudoNamesStack.length>=0&&nt(z,Me.Selector)):z.extendedPseudoBracketsStack.length<z.extendedPseudoNamesStack.length?z.extendedPseudoNamesStack.pop():tt(z,Q))),(null===(q=ce)||void 0===q?void 0:q.type)===Me.RegularSelector)if(z.isAttributeBracketsOpen)tt(z,Q);else if(z.standardPseudoNamesStack.length>0&&z.standardPseudoBracketsStack.length>0){tt(z,Q),z.standardPseudoBracketsStack.pop();const t=z.standardPseudoNamesStack.pop();if(!t)throw new Error("Parsing error. Invalid selector: ".concat(e));if(Object.values($).includes(t)&&te===c&&oe&&I.includes(oe))throw new Error("Usage of :".concat(oe,"() pseudo-class is not allowed after any regular pseudo-element: '").concat(t,"'"))}else z.extendedPseudoBracketsStack.pop(),z.extendedPseudoNamesStack.pop(),nt(z,Me.ExtendedSelector),nt(z,Me.Selector);(null===(G=ce)||void 0===G?void 0:G.type)===Me.Selector&&(z.extendedPseudoBracketsStack.pop(),z.extendedPseudoNamesStack.pop(),nt(z,Me.ExtendedSelector),nt(z,Me.Selector)),(null===(H=ce)||void 0===H?void 0:H.type)===Me.RelativePseudoClass&&z.extendedPseudoNamesStack.length>0&&z.extendedPseudoBracketsStack.length>0&&(z.extendedPseudoBracketsStack.pop(),z.extendedPseudoNamesStack.pop());break;case"\n":case"\f":case"\r":throw new Error("'".concat(e,"' is not a valid selector"));case"\t":if((null===(K=ce)||void 0===K?void 0:K.type)!==Me.RegularSelector||!z.isAttributeBracketsOpen)throw new Error("'".concat(e,"' is not a valid selector"));tt(z,Q)}break;default:throw new Error("Unknown type of token: '".concat(Q,"'"))}Y+=1}if(null===z.ast)throw new Error("'".concat(e,"' is not a valid selector"));if(z.extendedPseudoNamesStack.length>0||z.extendedPseudoBracketsStack.length>0)throw new Error("Unbalanced brackets for extended pseudo-class: '".concat(Ke(z.extendedPseudoNamesStack),"'"));if(z.isAttributeBracketsOpen)throw new Error("Unbalanced attribute brackets is selector: '".concat(e,"'"));return z.ast};function it(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r<t;r++)o[r]=e[r];return o}function ut(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var o,s,n=[],a=!0,c=!1;try{for(r=r.call(e);!(a=(o=r.next()).done)&&(n.push(o.value),!t||n.length!==t);a=!0);}catch(e){c=!0,s=e}finally{try{a||null==r.return||r.return()}finally{if(c)throw s}}return n}}(e,t)||function(e,t){if(e){if("string"==typeof e)return it(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?it(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}const dt=(e,t,r)=>"".concat("Error while matching element"," ").concat(e,", may be invalid :").concat(t,"() pseudo-class arg: '").concat(r,"'"),pt=(e,t,r)=>{let o,s,n;switch(t){case g:case E:case b:n=Ie,o={pseudoName:t,pseudoArg:r,domElement:e},s=dt("text content",t,r);break;case y:case x:case S:n=Te,o={pseudoName:t,pseudoArg:r,domElement:e},s=dt("style",t,r);break;case k:n=Oe,o={domElement:e,pseudoName:t,pseudoArg:r},s=dt("attributes",t,r);break;case T:n=Ae,o={domElement:e,pseudoName:t,pseudoArg:r},s=dt("properties",t,r);break;default:throw new Error("Unknown absolute pseudo-class :".concat(t,"()"))}return((e,t,r)=>{let o;try{o=e(t)}catch(e){throw ne.error(e),new Error(r)}return o})(n,o,s)},ht=(e,t,r)=>{const o=((e,t)=>{const r=Number(e);if(Number.isNaN(r)||r<1||r>=256)throw new Error("Invalid argument of :".concat(t," pseudo-class: '").concat(e,"'"));return r})(t,r),s=e.map((e=>{let t=null;try{t=((e,t,r)=>{let o=null,s=0;for(;s<t;){if(o=e.parentElement,!o)throw new Error("Argument of :".concat(r,"() pseudo-class is too big — '").concat(t,"', out of DOM elements root."));e=o,s+=1}return o})(e,o,r)}catch(e){ne.error(e)}return t})).filter(me);return s},ft=(e,t)=>{const r=e.map((e=>{const r=[];let o;try{o=document.evaluate(t,e,null,window.XPathResult.UNORDERED_NODE_ITERATOR_TYPE,null)}catch(e){throw ne.error(e),new Error("Invalid argument of :xpath pseudo-class: '".concat(t,"'"))}let s=o.iterateNext();for(;s;)me(s)&&r.push(s),s=o.iterateNext();return r}));return He(r)},mt=(e,t)=>{if(!(e=>{let t;try{document.querySelectorAll(e),t=!0}catch(e){t=!1}return t})(t))throw new Error("Invalid argument of :upward pseudo-class: '".concat(t,"'"));return e.map((e=>{const r=e.parentElement;return r?r.closest(t):null})).filter(me)},wt=e=>{const t=e.element,r=e.relativeSelectorList,o=e.pseudoName;return r.children.every((e=>{var r,s;const n=ut(e.children,1)[0];if(!n)throw new Error("RegularSelector is missing for :".concat(o,"() pseudo-class"));let a,c="",l=null;if(null!==(r=n.value)&&void 0!==r&&r.startsWith(f)||null!==(s=n.value)&&void 0!==s&&s.startsWith(m)){l=t.parentElement;const e=fe(t);c="".concat(_).concat(h).concat(e).concat(n.value)}else n.value===d?(l=t,c="".concat(_).concat(p).concat(d)):(c="".concat(_).concat(p).concat(n.value),l=t);if(!l)throw new Error("Selection by :".concat(o,"() pseudo-class is not possible"));try{a=bt(e,l,c)}catch(e){throw ne.error(e),new Error("Invalid selector for :".concat(o,"() pseudo-class: '").concat(n.value,"'"))}return a.length>0}))},vt=(e,t,r)=>{if(!e.value)throw new Error("RegularSelector value should be specified");const o=r||e.value;let s=[];try{s=Array.from(t.querySelectorAll(o))}catch(e){throw new Error("Error: unable to select by '".concat(o,"' — ").concat(e.message))}return s},gt=(e,t)=>{let r=[];const o=t.children[0].name;if(!o)throw new Error("Extended pseudo-class should have a name");if(D.includes(o)){const s=t.children[0].value;if(!s)throw new Error("Missing arg for :".concat(o,"() pseudo-class"));if(o===P)r=ht(e,s,o);else if(o===N){try{document.createExpression(s,null)}catch(e){throw new Error("Invalid argument of :".concat(o,"() pseudo-class: '").concat(s,"'"))}r=ft(e,s)}else r=o===O?Number.isNaN(Number(s))?mt(e,s):ht(e,s,o):e.filter((e=>pt(e,o,s)))}else{if(!F.includes(o))throw new Error("Unknown extended pseudo-class: '".concat(o,"'"));{const s=t.children[0].children;if(0===s.length)throw new Error("Missing arg for :".concat(o,"() pseudo-class"));const n=ut(s,1)[0];let a;switch(o){case"has":case"if":case A:a=e=>wt({element:e,relativeSelectorList:n,pseudoName:o});break;case L:a=e=>!wt({element:e,relativeSelectorList:n,pseudoName:o});break;case M:a=e=>(e=>{const t=e.element,r=e.relativeSelectorList,o=e.pseudoName;return r.children.some((e=>{const r=ut(e.children,1)[0];if(!r)throw new Error("RegularSelector is missing for :".concat(o,"() pseudo-class"));const s=t.parentElement;if(!s)throw new Error("Selection by :".concat(o,"() pseudo-class is not possible"));const n="".concat(_).concat(h).concat(r.value);let a;try{a=bt(e,s,n)}catch(e){return!1}return a.includes(t)}))})({element:e,relativeSelectorList:n,pseudoName:o});break;case B:a=e=>(e=>{const t=e.element,r=e.relativeSelectorList,o=e.pseudoName;return r.children.every((e=>{const r=ut(e.children,1)[0];if(!r)throw new Error("RegularSelector is missing for :".concat(o,"() pseudo-class"));const s=t.parentElement;if(!s)throw new Error("Selection by :".concat(o,"() pseudo-class is not possible"));const n="".concat(_).concat(h).concat(r.value);let a;try{a=bt(e,s,n)}catch(e){throw ne.error(e),new Error("Invalid selector for :".concat(o,"() pseudo-class: '").concat(r.value,"'"))}return!a.includes(t)}))})({element:e,relativeSelectorList:n,pseudoName:o});break;default:throw new Error("Unknown relative pseudo-class: '".concat(o,"'"))}r=e.filter(a)}}return r},Et=(e,t)=>{let r=[];const o=t.value;if(!o)throw new Error("RegularSelector should have a value.");return r=o.startsWith(h)?e.map((e=>{const r="".concat(_).concat(o);return vt(t,e,r)})):o.startsWith(f)||o.startsWith(m)?e.map((e=>{const r=e.parentElement;if(!r)return[];const s=fe(e),n="".concat(_).concat(h).concat(s).concat(o);return vt(t,r,n)})):e.map((e=>{const r="".concat(_).concat(p).concat(t.value);return vt(t,e,r)})),He(r)},bt=(e,t,r)=>{let o=[],s=0;for(;s<e.children.length;){const n=e.children[s];0===s?o=vt(n,t,r):n.type===Me.ExtendedSelector?o=gt(o,n):n.type===Me.RegularSelector&&(o=Et(o,n)),s+=1}return o},yt=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;const r=[];e.children.forEach((e=>{r.push(...bt(e,t))}));const o=[...new Set(He(r))];return o};const St=new class{constructor(){this.astCache=new Map}saveAstToCache(e,t){this.astCache.set(e,t)}getAstFromCache(e){return this.astCache.get(e)||null}getSelectorAst(e){let t=this.getAstFromCache(e);return t||(t=lt(e)),this.saveAstToCache(e,t),t}querySelectorAll(e){const t=this.getSelectorAst(e);return yt(t)}},xt=e=>{const t="".concat(c).concat(C).concat(r.LEFT).concat(r.RIGHT),o="".concat(c).concat(C).concat(r.LEFT);let s,n=!1;const a=e.indexOf(t);if(0===a)throw new Error("".concat(Q,": '").concat(e,"'"));if(a>0){if(a!==e.lastIndexOf(t))throw new Error("".concat(Z,": '").concat(e,"'"));if(a+t.length<e.length)throw new Error("".concat(ee,": '").concat(e,"'"));s=e.substring(0,a),n=!0}else{if(e.includes(o))throw new Error("".concat(J,": '").concat(e,"'"));s=e}return{selector:s,stylesOfSelector:n?[{property:C,value:String(n)}]:[]}},kt="debug",Tt=/[;}]/g,Nt=/[;:}]/g,Pt=/\S/g,Rt={selector:""},Ot=e=>{e.rawRuleData=Rt},Ct=(e,t)=>{let r,o=e.selectorBuffer.trim();if(o.startsWith("@"))throw new Error("At-rules are not supported: '".concat(o,"'."));try{r=xt(o)}catch(e){throw ne.error(e.message),new Error("".concat(J,": '").concat(o,"'"))}if(-1===e.nextIndex){if(o===r.selector)throw new Error("".concat(z,": '").concat(e.cssToParse,"'"));e.cssToParse=""}let s,n=[],a=!1;try{o=r.selector,n=r.stylesOfSelector,s=t.getSelectorAst(o),a=!0}catch(e){a=!1}return e.nextIndex>0&&(e.cssToParse=e.cssToParse.slice(e.nextIndex)),{success:a,selector:o,ast:s,stylesOfSelector:n}},At=(e,t)=>{Nt.lastIndex=e.nextIndex;let r=Nt.exec(e.cssToParse);if(null===r)throw new Error("".concat(G,": '").concat(e.cssToParse,"'"));let s=r.index,n=r[0];if(n===o.RIGHT){if(0!==e.cssToParse.slice(e.nextIndex,s).trim().length)throw new Error("".concat(G,": '").concat(e.cssToParse,"'"));if(0===t.length)throw new Error("".concat(U,": '").concat(e.cssToParse,"'"));return s}if(n===c){const a=s;if(Tt.lastIndex=a,r=Tt.exec(e.cssToParse),null===r)throw new Error("".concat(H,": '").concat(e.cssToParse,"'"));s=r.index,n=r[0];const c=e.cssToParse.slice(e.nextIndex,a).trim();if(0===c.length)throw new Error("".concat(K,": '").concat(e.cssToParse,"'"));const l=e.cssToParse.slice(a+1,s).trim();if(0===l.length)throw new Error("".concat(X,": '").concat(e.cssToParse,"'"));if(t.push({property:c,value:l}),n===o.RIGHT)return s}return e.cssToParse=e.cssToParse.slice(s+1),e.nextIndex=0,At(e,t)},It=e=>{const t=[],r=At(e,t);Pt.lastIndex=r+1;const o=Pt.exec(e.cssToParse);if(null===o)return e.cssToParse="",t;const s=o.index;return e.cssToParse=e.cssToParse.slice(s),t},Lt=(e,t,r)=>{const o={selector:e,ast:t},s=(e=>{const t=e.find((e=>e.property===kt));return null==t?void 0:t.value})(r),n=(e=>e.some((e=>e.property===C&&e.value===j)))(r);let a=r;if(s&&(a=r.filter((e=>e.property!==kt)),s!==j&&s!==V||(o.debug=s)),n)o.style={[C]:j};else if(a.length>0){const e=a.map((e=>[e.property,e.value])),t=e.reduce(((e,t)=>{const r=t[0],o=t[1];return e[r]=o,e}),{});o.style=t}return o},Mt=(e,t)=>{const r=t.selector,o=t.ast,s=t.styles;if(!s)throw new Error("No style declaration for selector: '".concat(r,"'"));if(!o)throw new Error("No ast parsed for selector: '".concat(r,"'"));const n=e.get(r);n?n.styles.push(...s):e.set(r,{ast:o,styles:s})},Bt=(e,t)=>{const r=e.trim();if(r.includes("".concat(s).concat(d))&&r.includes("".concat(d).concat(s)))throw new Error("".concat(Y,": '").concat(r,"'"));const n={isSelector:!0,nextIndex:0,cssToParse:r,selectorBuffer:"",rawRuleData:Rt},a=new Map;let c;for(;n.cssToParse;)if(n.isSelector){if(n.nextIndex=n.cssToParse.indexOf(o.LEFT),0===n.selectorBuffer.length&&0===n.nextIndex)throw new Error("".concat(q,": '").concat(n.cssToParse,"'"));-1===n.nextIndex?n.selectorBuffer=n.cssToParse:n.selectorBuffer+=n.cssToParse.slice(0,n.nextIndex),c=Ct(n,t),c.success?(n.rawRuleData.selector=c.selector.trim(),n.rawRuleData.ast=c.ast,n.rawRuleData.styles=c.stylesOfSelector,n.isSelector=!1,-1===n.nextIndex?(Mt(a,n.rawRuleData),Ot(n)):(n.nextIndex=1,n.selectorBuffer="")):(n.selectorBuffer+=o.LEFT,n.cssToParse=n.cssToParse.slice(1))}else{var l;const e=It(n);null===(l=n.rawRuleData.styles)||void 0===l||l.push(...e),Mt(a,n.rawRuleData),n.nextIndex=0,Ot(n),n.isSelector=!0}const i=[];return a.forEach(((e,t)=>{const r=t,o=e.ast,s=e.styles;i.push(Lt(r,o,s))})),i},Dt=e=>"number"==typeof e&&!Number.isNaN(e),Ft=void 0!==window.requestAnimationFrame,Wt=Ft?requestAnimationFrame:window.setTimeout,_t=Ft?cancelAnimationFrame:clearTimeout,$t=Ft?performance:Date;class jt{constructor(e,t,r){this.context=e,this.callback=t,this.throttleDelayMs=r||150,this.wrappedCb=this.wrappedCallback.bind(this)}wrappedCallback(e){this.lastRunTime=Dt(e)?e:$t.now(),this.timeoutId&&(_t(this.timeoutId),delete this.timeoutId),clearTimeout(this.timerId),delete this.timerId,this.callback&&this.callback(this.context)}hasPendingCallback(){return Dt(this.timeoutId)||Dt(this.timerId)}run(){if(!this.hasPendingCallback()){if(void 0!==this.lastRunTime){const e=$t.now()-this.lastRunTime;if(e<this.throttleDelayMs)return void(this.timerId=window.setTimeout(this.wrappedCb,this.throttleDelayMs-e))}this.timeoutId=Wt(this.wrappedCb)}}static now(){return $t.now()}}const Vt=["mouseover","mouseleave","mouseenter","mouseout"],Ut=["keydown","keypress","keyup","auxclick","click","contextmenu","dblclick","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseout","mouseup","pointerlockchange","pointerlockerror","select","wheel"],qt=["wheel"];class Gt{constructor(){Le(this,"getLastEventType",(()=>this.lastEventType)),Le(this,"getTimeSinceLastEvent",(()=>this.lastEventTime?Date.now()-this.lastEventTime:null)),this.trackedEvents=ie?Ut.filter((e=>!qt.includes(e))):Ut,this.trackedEvents.forEach((e=>{document.documentElement.addEventListener(e,this.trackEvent,!0)}))}trackEvent(e){this.lastEventType=e.type,this.lastEventTime=Date.now()}isIgnoredEventType(){const e=this.getLastEventType(),t=this.getTimeSinceLastEvent();return!!e&&Vt.includes(e)&&!!t&&t<10}stopTracking(){this.trackedEvents.forEach((e=>{document.documentElement.removeEventListener(e,this.trackEvent,!0)}))}}const Ht=void 0!==window.addEventListener,Kt=(e,t)=>{e.isDomObserved||(e.isDomObserved=!0,((e,t)=>{pe.MutationObserver?(e.domMutationObserver=new pe.MutationObserver((r=>{if(!r||0===r.length)return;const o=new Gt;o.isIgnoredEventType()&&(e=>e.every((e=>"attributes"===e.type)))(r)||(e.eventTracker=o,t())})),e.domMutationObserver.observe(document,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["id","class"]})):Ht&&(document.addEventListener("DOMNodeInserted",t,!1),document.addEventListener("DOMNodeRemoved",t,!1),document.addEventListener("DOMAttrModified",t,!1))})(e,t))},Xt=(e,t)=>{e.isDomObserved&&(e.isDomObserved=!1,((e,t)=>{var r;e.domMutationObserver?e.domMutationObserver.disconnect():Ht&&(document.removeEventListener("DOMNodeInserted",t,!1),document.removeEventListener("DOMNodeRemoved",t,!1),document.removeEventListener("DOMAttrModified",t,!1)),null===(r=e.eventTracker)||void 0===r||r.stopTracking()})(e,t))},zt=(e,t)=>{const r=t.node;t.removed=!0;const o=(e=>{if(!(e instanceof Element))throw new Error("Function received argument with wrong type");let t;t=e;const r=[];for(;t&&t.nodeType===Node.ELEMENT_NODE;){let e=t.nodeName.toLowerCase();if(t.id&&"string"==typeof t.id){e+="#".concat(t.id),r.unshift(e);break}let o=t,s=1;for(;o.previousElementSibling;)o=o.previousElementSibling,o.nodeType===Node.ELEMENT_NODE&&o.nodeName.toLowerCase()===e&&(s+=1);1!==s&&(e+=":nth-of-type(".concat(s,")")),r.unshift(e),t=t.parentElement}return r.join(" > ")})(r),s=e.removalsStatistic[o]||0;s>50?ne.error("ExtendedCss: infinite loop protection for selector: '".concat(o,"'")):r.parentElement&&(r.parentElement.removeChild(r),e.removalsStatistic[o]=s+1)},Yt=(e,t)=>{e instanceof HTMLElement&&Object.keys(t).forEach((r=>{if(void 0!==e.style.getPropertyValue(r)){let o=t[r];o=((e,t)=>{const r=e.indexOf(t,e.length-t.length);return r>=0?e.substring(0,r):e})(o.trim(),"!important").trim(),e.style.setProperty(r,o,"important")}}))},Jt=(e,t)=>{if(t.protectionObserver)return;if(e.beforeStyleApplied&&!(t=e.beforeStyleApplied(t)))return;const r=t,o=r.node,s=r.rules;for(let r=0;r<s.length;r+=1){const n=s[r],a=n.selector,c=n.style,l=n.debug;if(c){if(c.remove===j)return void zt(e,t);Yt(o,c)}else if(!l)throw new Error("No style declaration in rule for selector: '".concat(a,"'"))}},Qt=e=>{e.protectionObserver&&e.protectionObserver.disconnect(),e.node.style.cssText=e.originalStyle};class Zt{constructor(e){this.styleProtectionCount=0,this.observer=new pe.MutationObserver((t=>{t.length&&(this.styleProtectionCount+=1,e(t,this))}))}observe(e,t){this.styleProtectionCount<50?this.observer.observe(e,t):ne.error("ExtendedCss: infinite loop protection for style")}disconnect(){this.observer.disconnect()}}const er={attributes:!0,attributeOldValue:!0,attributeFilter:["style"]},tr=(e,t)=>{if(!pe.MutationObserver)return null;const r=[];t.forEach((e=>{const t=e.style;t&&r.push(t)}));const o=new Zt((e=>(t,r)=>{const o=t[0].target;r.disconnect(),e.forEach((e=>{Yt(o,e)})),r.observe(o,er)})(r));return o.observe(e,er),o};class rr{constructor(){this.appliesTimings=[],this.appliesCount=0,this.timingsSum=0,this.meanTiming=0,this.squaredSum=0,this.standardDeviation=0}push(e){this.appliesTimings.push(e),this.appliesCount+=1,this.timingsSum+=e,this.meanTiming=this.timingsSum/this.appliesCount,this.squaredSum+=e*e,this.standardDeviation=Math.sqrt(this.squaredSum/this.appliesCount-Math.pow(this.meanTiming,2))}}const or=e=>Number(e.toFixed(4)),sr=e=>{const t=[];Xt(e,e.mainCallback),e.parsedRules.forEach((r=>{const o=((e,t)=>{const r=!!t.debug||e.debug;let o;r&&(o=jt.now());const s=t.ast,n=yt(s);if(n.forEach((r=>{let o=(s=e.affectedElements,n=r,s.find((e=>e.node===n)));var s,n;if(o)o.rules.push(t),Jt(e,o);else{const s=r.style.cssText;o={node:r,rules:[t],originalStyle:s,protectionObserver:null},Jt(e,o),e.affectedElements.push(o)}})),r&&o){const e=jt.now()-o;t.timingStats||(t.timingStats=new rr),t.timingStats.push(e)}return n})(e,r);Array.prototype.push.apply(t,o),r.debug&&(r.matchedElements=o)}));let r=e.affectedElements.length;for(;r;){const o=e.affectedElements[r-1];t.includes(o.node)?o.removed||o.protectionObserver||(o.protectionObserver=tr(o.node,o.rules)):(Qt(o),e.affectedElements.splice(r-1,1)),r-=1}Kt(e,e.mainCallback),(e=>{if(e.areTimingsPrinted)return;e.areTimingsPrinted=!0;const t={};e.parsedRules.forEach((e=>{if(e.timingStats){const o=e.selector,s=e.style,n=e.debug,a=e.matchedElements;if(!s&&!n)throw new Error("Rule should have style declaration for selector: '".concat(o,"'"));const c={selectorParsed:o,timings:(r=e.timingStats,{appliesTimings:r.appliesTimings.map((e=>or(e))),appliesCount:or(r.appliesCount),timingsSum:or(r.timingsSum),meanTiming:or(r.meanTiming),standardDeviation:or(r.standardDeviation)})};s&&s.remove===j?c.removed=!0:(c.styleApplied=s||null,c.matchedElements=a),t[o]=c}var r})),0!==Object.keys(t).length&&ne.info("[ExtendedCss] Timings in milliseconds for %o:\n%o",window.location.href,t)})(e)};class nr{constructor(e){if(!(()=>{const e=navigator.userAgent;if(e.includes("MSIE")||e.includes("Trident/"))return!1;if(e.includes("jsdom"))return!0;const t=de();if(!t)return!1;const r=t.browserName;return t.currentVersion>=ue[r].MIN_VERSION})())throw new Error("Browser is not supported by ExtendedCss.");if(!e)throw new Error("ExtendedCss configuration should be provided.");if(this.context={beforeStyleApplied:e.beforeStyleApplied,debug:!1,affectedElements:[],isDomObserved:!1,removalsStatistic:{},parsedRules:Bt(e.styleSheet,St),mainCallback:()=>{}},this.context.debug=e.debug||this.context.parsedRules.some((e=>e.debug===V)),this.applyRulesScheduler=new jt(this.context,sr,150),this.context.mainCallback=this.applyRulesScheduler.run.bind(this.applyRulesScheduler),this.context.beforeStyleApplied&&"function"!=typeof this.context.beforeStyleApplied)throw new Error("Invalid configuration. Type of 'beforeStyleApplied' should be a function, received: '".concat(typeof this.context.beforeStyleApplied,"'"));this.applyRulesCallbackListener=()=>{sr(this.context)}}apply(){sr(this.context),"complete"!==document.readyState&&document.addEventListener("DOMContentLoaded",this.applyRulesCallbackListener,!1)}dispose(){Xt(this.context,this.context.mainCallback),this.context.affectedElements.forEach((e=>{Qt(e)})),document.removeEventListener("DOMContentLoaded",this.applyRulesCallbackListener,!1)}getAffectedElements(){return this.context.affectedElements}static query(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("string"!=typeof e)throw new Error("Selector should be defined as a string.");const r=jt.now();try{return St.querySelectorAll(e)}finally{const e=jt.now();t||ne.info("[ExtendedCss] Elapsed: ".concat(Math.round(1e3*(e-r))," μs."))}}static validate(e){try{const t=xt(e).selector;return nr.query(t),{ok:!0,error:null}}catch(t){return{ok:!1,error:"Selector is not valid: '".concat(e,"' -- ").concat(t.message)}}}}return e.ExtendedCss=nr,Object.defineProperty(e,"__esModule",{value:!0}),e}({});
var ExtendedCss=function(e){"use strict";const t={LEFT:"[",RIGHT:"]"},r={LEFT:"(",RIGHT:")"},o={LEFT:"{",RIGHT:"}"},s="/",n="\\",a=" ",c=",",l=":",i="'",u='"',d=[a,"\t","\r","\n","\f"],p="*",h=a,f=">",m="+",w="~",v=[h,f,m,w],g=["[","]","(",")","{","}",s,n,";",l,c,i,u,"^","$",p,"#",".",h,f,m,w,"\t","\r","\n","\f"],E="contains",b="has-text",y="-abp-contains",S="matches-css",x="matches-css-before",k="matches-css-after",T="matches-attr",N="matches-property",R="xpath",P="nth-ancestor",O=[E,b,y],C="upward",A="remove",I="-abp-has",L=["has","if",I],M="if-not",B="is",D="not",F=[E,b,y,S,x,k,T,N,R,P,C],W=[...L,M,B,D],_=[...F,...W],$=":scope",j={AFTER:"after",BACKDROP:"backdrop",BEFORE:"before",CUE:"cue",CUE_REGION:"cue-region",FIRST_LETTER:"first-letter",FIRST_LINE:"first-line",FILE_SELECTION_BUTTON:"file-selector-button",GRAMMAR_ERROR:"grammar-error",MARKER:"marker",PART:"part",PLACEHOLDER:"placeholder",SELECTION:"selection",SLOTTED:"slotted",SPELLING_ERROR:"spelling-error",TARGET_TEXT:"target-text"},V="true",U="global",q="No style declaration at stylesheet part",G="Selector should be defined before style declaration in stylesheet",H="Invalid style declaration at stylesheet part",K="Unclosed style declaration at stylesheet part",X="Missing style property in declaration at stylesheet part",z="Missing style value in declaration at stylesheet part",Y="Invalid stylesheet - no style declared or :remove() pseudo-class used",J="Comments in stylesheet are not supported",Q="Invalid :remove() pseudo-class in selector",Z="Selector should be specified before :remove() pseudo-class",ee="Pseudo-class :remove() appears more than once in selector",te="Pseudo-class :remove() should be at the end of selector",re=(e,t,r)=>e?e.split(t).join(r):e,oe=e=>{if(e.startsWith(s)&&e.endsWith(s))return new RegExp(e.slice(1,-1));const t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(t)},se=e=>{let t;switch(e){case void 0:t="undefined";break;case null:t="null";break;default:t=e.toString()}return t},ne=e=>{const t=Number(e);let r;if(Number.isNaN(t))switch(e){case"undefined":r=void 0;break;case"null":r=null;break;case"true":r=!0;break;case"false":r=!1;break;default:r=e}else r=t;return r},ae={error:"undefined"!=typeof console&&console.error&&console.error.bind?console.error.bind(window.console):console.error,info:"undefined"!=typeof console&&console.info&&console.info.bind?console.info.bind(window.console):console.info};var ce;!function(e){e.Chrome="Chrome",e.Firefox="Firefox",e.Edge="Edg",e.Opera="Opera",e.Safari="Safari"}(ce||(ce={}));const le="Chromium",ie="Google Chrome",ue="Apple Computer, Inc."===navigator.vendor,de={[ce.Chrome]:{MASK:/\s(Chrome)\/(\d+)\..+\s(?!.*Edg\/)/,MIN_VERSION:55},[ce.Firefox]:{MASK:/\s(Firefox)\/(\d+)\./,MIN_VERSION:52},[ce.Edge]:{MASK:/\s(Edg)\/(\d+)\./,MIN_VERSION:80},[ce.Opera]:{MASK:/\s(OPR)\/(\d+)\./,MIN_VERSION:80},[ce.Safari]:{MASK:/\sVersion\/(\d{2}\.\d)(.+\s|\s)(Safari)\//,MIN_VERSION:11.1}},pe=()=>{const e=(()=>{var e;const t=null===(e=navigator.userAgentData)||void 0===e?void 0:e.brands;return t&&t.find((e=>e.brand===le||e.brand===ie))||null})();if(!e){const e=(()=>{let e,t;const r=Object.values(ce);for(let o=0;o<r.length;o+=1){const s=de[r[o]].MASK.exec(navigator.userAgent);if(s)return s[3]===r[o]?(e=s[3],t=Number(s[1])):(e=s[1],t=Number(s[2])),{browserName:e,currentVersion:t}}return null})();if(!e)return null;return{browserName:e.browserName,currentVersion:e.currentVersion}}const t=e.brand,r=e.version;return{browserName:t===le||t===ie?ce.Chrome:t,currentVersion:Number(r)}},he={MutationObserver:window.MutationObserver||window.WebKitMutationObserver},fe=(()=>{var e;const t=window.Node||Node;return null===(e=Object.getOwnPropertyDescriptor(t.prototype,"textContent"))||void 0===e?void 0:e.get})(),me=e=>{let t=e.tagName.toLowerCase();return t+=Array.from(e.attributes).map((t=>"[".concat(t.name,'="').concat(e.getAttribute(t.name),'"]'))).join(""),t},we=e=>e instanceof HTMLElement;var ve;!function(e){e.Background="background",e.BackgroundImage="background-image",e.Content="content",e.Opacity="opacity"}(ve||(ve={}));const ge=".*",Ee=/^\s*\/.*\/[gmisuy]*\s*$/,be=e=>{if(!e.includes('url("')){const t=/url\((.*?)\)/g;return e.replace(t,'url("$1")')}return e},ye=e=>e.replace(/(\^)?url(\\)?\\\((\w|\[\w)/g,'$1url$2\\(\\"?$3'),Se=be,xe=e=>{let t;return e.startsWith(s)&&e.endsWith(s)?(t=ye(e),t=t.slice(1,-1)):(t=Se(e),t=t.replace(/\\([\\()[\]"])/g,"$1"),t=(e=>{const t=new RegExp("[".concat([".","+","?","$","{","}","(",")","[","]","\\","/"].join("\\"),"]"),"g");return e.replace(t,"\\$&")})(t),t=re(t,p,ge)),new RegExp(t,"i")},ke=(e,t,r)=>((e,t)=>{let r="";switch(e){case ve.Background:case ve.BackgroundImage:r=be(t);break;case ve.Content:r=t.replace(/^(["'])([\s\S]*)\1$/,"$2");break;case ve.Opacity:r=ue?(Math.round(100*parseFloat(t))/100).toString():t;break;default:r=t}return r})(t,window.getComputedStyle(e,r).getPropertyValue(t)),Te=(e,t)=>{const r=e.indexOf(t);let o,s;return r>-1?(o=e.substring(0,r).trim(),s=e.substring(r+1).trim()):o=e,{name:o,value:s}},Ne=e=>{const t=e.pseudoName,r=e.pseudoArg,o=e.domElement,s=((e,t)=>{const r=Te(t,c),o=r.name;let s=o,n=r.value;if(Object.values(j).includes(o)||(s=null,n=t),!n)throw new Error("Required style property argument part is missing in :".concat(e,"() arg: '").concat(t,"'"));return{regularPseudoElement:s,styleMatchArg:n}})(t,r),n=s.regularPseudoElement,a=s.styleMatchArg,i=Te(a,l),u=i.name,d=i.value;if(!u||!d)throw new Error("Required property name or value is missing in :".concat(t,"() arg: '").concat(a,"'"));let p;try{p=xe(d)}catch(e){throw ae.error(e),new Error("Invalid argument of :".concat(t,"() pseudo-class: '").concat(a,"'"))}const h=ke(o,u,n);return p&&p.test(h)},Re=e=>!e.includes(s)&&!!/^[\w-]+$/.test(e),Pe=function(e){let t,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e.length>1&&e.startsWith(u)&&e.endsWith(u)&&(e=e.slice(1,-1)),""===e)throw new Error("Argument should be specified. Empty arg is invalid.");if(e.startsWith(s)&&e.endsWith(s)){if(!(e.length>2))throw new Error("Invalid regexp: '".concat(e,"'"));t=oe(e)}else if(e.includes(p)){if(e===p&&!r)throw new Error("Argument should be more specific than ".concat(e));t=re(e,p,ge),t=new RegExp(t)}else{if(!Re(e))throw new Error("Invalid argument: '".concat(e,"'"));t=e}return t},Oe=(e,t)=>{const r=Te(t,"="),o=r.name,s=r.value;if(!o)throw new Error("Required attribute name is missing in :".concat(e," arg: ").concat(t));return{rawName:o,rawValue:s}},Ce=e=>{const t=e.pseudoName,r=e.pseudoArg,o=e.domElement.attributes;if(0===o.length)return!1;const s=Oe(t,r),n=s.rawName,a=s.rawValue;let c;try{c=Pe(n)}catch(e){throw ae.error(e),new SyntaxError(e.message)}let l=!1,i=0;for(;i<o.length&&!l;){const e=o[i],t=c instanceof RegExp?c.test(e.name):c===e.name;if(a){let r;try{r=Pe(a)}catch(e){throw ae.error(e),new SyntaxError(e.message)}const o=r instanceof RegExp?r.test(e.value):r===e.value;l=t&&o}else l=t;i+=1}return l},Ae=function e(t,r){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const s=r[0];if(1===r.length){let e;for(e in t)s instanceof RegExp?s.test(e)&&o.push({base:t,prop:e,value:t[e]}):s===e&&o.push({base:t,prop:s,value:t[e]});return o}if(s instanceof RegExp){const n=r.slice(1),a=[];for(const e in t)s.test(e)&&a.push(e);a.forEach((r=>{var s;const a=null===(s=Object.getOwnPropertyDescriptor(t,r))||void 0===s?void 0:s.value;e(a,n,o)}))}if(t&&"string"==typeof s){var n;const a=null===(n=Object.getOwnPropertyDescriptor(t,s))||void 0===n?void 0:n.value;r=r.slice(1),void 0!==a&&e(a,r,o)}return o},Ie=e=>{const t=e.pseudoName,r=e.pseudoArg,o=e.domElement,n=Oe(t,r),a=n.rawName,c=n.rawValue;if(a.includes("\\/")||a.includes("\\."))throw new Error("Invalid :".concat(t," name pattern: ").concat(a));let l;try{l=(e=>{e.length>1&&e.startsWith(u)&&e.endsWith(u)&&(e=e.slice(1,-1));const t=e.split("."),r=[];let o="",n=!1,a=0;for(;a<t.length;){const e=t[a];e.startsWith(s)&&e.endsWith(s)&&e.length>2?r.push(e):e.startsWith(s)?(n=!0,o+=e):e.endsWith(s)?(n=!1,o+=".".concat(e),r.push(o),o=""):n?o+=e:r.push(e),a+=1}if(o.length>0)throw new Error("Invalid regexp property pattern '".concat(e,"'"));return r.map((t=>{if(0===t.length)throw new Error("Empty pattern '".concat(t,"' is invalid in chain '").concat(e,"'"));let r;try{r=Pe(t,!0)}catch(r){throw ae.error(r),new Error("Invalid property pattern '".concat(t,"' in property chain '").concat(e,"'"))}return r}))})(a)}catch(e){throw ae.error(e),new SyntaxError(e.message)}const i=Ae(o,l);if(0===i.length)return!1;let d=!0;if(c){let e;try{e=Pe(c)}catch(e){throw ae.error(e),new SyntaxError(e.message)}if(e)for(let t=0;t<i.length;t+=1){const r=i[t].value;if(e instanceof RegExp)d=e.test(se(r));else{if("null"===r||"undefined"===r){d=e===r;break}d=ne(e)===r}if(d)break}}return d},Le=e=>{const t=e.pseudoName,r=e.pseudoArg,o=(e=>(null==fe?void 0:fe.apply(e))||"")(e.domElement);let n,a=r;if(a.startsWith(s)&&Ee.test(a)){const e=a.lastIndexOf("/"),s=a.substring(e+1);let c;a=a.substring(0,e+1).slice(1,-1).replace(/\\([\\"])/g,"$1");try{c=new RegExp(a,s)}catch(e){throw new Error("Invalid argument of :".concat(t,"() pseudo-class: ").concat(r))}n=c.test(o)}else a=a.replace(/\\([\\()[\]"])/g,"$1"),n=o.includes(a);return n};function Me(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}let Be;!function(e){e.SelectorList="SelectorList",e.Selector="Selector",e.RegularSelector="RegularSelector",e.ExtendedSelector="ExtendedSelector",e.AbsolutePseudoClass="AbsolutePseudoClass",e.RelativePseudoClass="RelativePseudoClass"}(Be||(Be={}));class De{constructor(e){Me(this,"children",[]),this.type=e}addChild(e){this.children.push(e)}}class Fe extends De{constructor(e){super(Be.RegularSelector),this.value=e}}class We extends De{constructor(e){super(Be.RelativePseudoClass),this.name=e}}class _e extends De{constructor(e){super(Be.AbsolutePseudoClass),Me(this,"value",""),this.name=e}}const $e=/\[-(?:ext)-([a-z-_]+)=(["'])((?:(?=(\\?))\4.)*?)\2\]/g,je=(e,t,r,o)=>{const s=new RegExp("([^\\\\]|^)\\\\".concat(r),"g"),n=o.replace(s,"$1".concat(r));return":".concat(t,"(").concat(n,")")},Ve=/\(:scope >/g,Ue=/(:matches-css)-(before|after)\(/g,qe=(e,t,o)=>"".concat(t).concat(r.LEFT).concat(o).concat(c),Ge=e=>(e=>{const t=e.replace($e,je).replace(Ve,"(>").replace(Ue,qe);if(t.includes("[-ext-"))throw new Error("Invalid extended-css old syntax selector: '".concat(e,"'"));return t})(e.trim());let He;!function(e){e.Mark="mark",e.Word="word"}(He||(He={}));const Ke=e=>{const t=[];e.forEach((e=>t.push(e)));const r=[];for(;t.length;){const e=t.pop();if(!e)throw new Error("Unable to make array flat");Array.isArray(e)?e.forEach((e=>t.push(e))):r.push(e)}return r.reverse()},Xe=e=>e[e.length-1],ze="html ".concat(p),Ye=e=>_.includes(e),Je=(e,r)=>v.includes(r)||e===He.Word||r===p||"#"===r||"."===r||r===l||r===i||r===u||r===t.LEFT,Qe={COMMON:[r.LEFT,i,u,"=",".",l,a],CONTAINS:[r.LEFT,i,u]},Ze=(e,t,r)=>{const o=Xe(e.extendedPseudoNamesStack);if(O.includes(o))return Qe.CONTAINS.includes(t);if(t===s&&o!==R){const e=r?"in arg part: '".concat(r,"'"):"arg";throw new Error("Invalid regexp pattern for :".concat(o,"() pseudo-class ").concat(e))}return Qe.COMMON.includes(t)},et=e=>0===e.pathToBufferNode.length?null:Xe(e.pathToBufferNode),tt=e=>{const t=et(e);if(!t)throw new Error("No bufferNode found");if(t.type!==Be.Selector)throw new Error("Unsupported bufferNode type");const r=t.children.filter((e=>e.type===Be.RegularSelector));if(0===r.length)throw new Error("No RegularSelector node found");const o=Xe(r);return e.pathToBufferNode.push(o),o},rt=(e,t)=>{const r=et(e);if(null===r)throw new Error("No bufferNode to update");const o=r.type;if(o!==Be.RegularSelector&&o!==Be.AbsolutePseudoClass)throw new Error("".concat(r.type," node can not be updated. Only RegularSelector and AbsolutePseudoClass are supported"));r.value+=t},ot=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";const o=et(e);if(null===o)throw new Error("No buffer node");let s;s=t===Be.RegularSelector?new Fe(r):t===Be.AbsolutePseudoClass?new _e(r):t===Be.RelativePseudoClass?new We(r):new De(t),o.addChild(s),e.pathToBufferNode.push(s)},st=(e,t)=>{(e=>{const t=new De(Be.SelectorList);e.ast=t,e.pathToBufferNode.push(t)})(e),ot(e,Be.Selector),ot(e,Be.RegularSelector,t)},nt=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";ot(e,Be.SelectorList),ot(e,Be.Selector),ot(e,Be.RegularSelector,t)},at=(e,t)=>{for(let r=e.pathToBufferNode.length-1;r>=0;r-=1)if(e.pathToBufferNode[r].type===t){e.pathToBufferNode=e.pathToBufferNode.slice(0,r+1);break}},ct=e=>{at(e,Be.Selector);const t=et(e);if(!t)throw new Error("No SelectorNode, impossible to continue selector parsing by ExtendedCss");const r=Xe(t.children),o=r.type===Be.ExtendedSelector&&0===e.standardPseudoBracketsStack.length,s=o&&r.children[0].name,n=s&&W.includes(s),a=s&&F.includes(s),c=n&&e.extendedPseudoBracketsStack.length>0&&e.extendedPseudoBracketsStack.length===e.extendedPseudoNamesStack.length,l=a&&s===Xe(e.extendedPseudoNamesStack);let i=t;return c||l?(e.pathToBufferNode.push(r),i=r.children[0]):i=o?t:tt(e),e.pathToBufferNode.push(i),i},lt=(e,t,o,s,n)=>{if(Ye(s.toLowerCase())){if(L.includes(s)&&e.standardPseudoNamesStack.length>0)throw new Error("Usage of :".concat(s,"() pseudo-class is not allowed inside regular pseudo: '").concat(Xe(e.standardPseudoNamesStack),"'"));at(e,Be.Selector),ot(e,Be.ExtendedSelector)}else{if(s.toLowerCase()===A)throw new Error("Selector parser error: invalid :remove() pseudo-class in selector: '".concat(t,"'"));rt(e,o),n!==r.LEFT||e.isAttributeBracketsOpen||e.standardPseudoNamesStack.push(s)}},it=e=>{var E,b,y,S,x,k,T,N,O,I,M,W,$,V,U,q,G,H,K,X;const z=(e=>{const t=Ge(e);let r,o="";const s=[];for(let e=0;e<t.length;e+=1){if(r=t[e],g.includes(r)){s.push({type:He.Mark,value:r});continue}o+=r;const n=t[e+1];n&&!g.includes(n)||(s.push({type:He.Word,value:o}),o="")}return s})(e),Y={ast:null,pathToBufferNode:[],extendedPseudoNamesStack:[],extendedPseudoBracketsStack:[],standardPseudoNamesStack:[],standardPseudoBracketsStack:[],isAttributeBracketsOpen:!1,isRegexpOpen:!1};let J=0;for(;J<z.length;){const g=z[J],Q=g.type,Z=g.value,ee=z[J+1]||[],te=ee.type,re=ee.value,oe=z[J+2]||[],se=oe.value,ne=z[J-1]||[],ae=ne.type,ce=ne.value,le=(z[J-2]||[]).value;let ie=et(Y);switch(Q){case He.Word:if(null===ie)st(Y,Z);else if(ie.type===Be.SelectorList)ot(Y,Be.Selector),ot(Y,Be.RegularSelector,Z);else if(ie.type===Be.RegularSelector)rt(Y,Z);else if(ie.type===Be.ExtendedSelector){if(d.includes(re)&&se===r.LEFT)throw new Error("No white space is allowed before or after extended pseudo-class name in selector: '".concat(e,"'"));Y.extendedPseudoNamesStack.push(Z.toLowerCase()),F.includes(Z.toLowerCase())?ot(Y,Be.AbsolutePseudoClass,Z.toLowerCase()):ot(Y,Be.RelativePseudoClass,Z.toLowerCase())}else ie.type===Be.AbsolutePseudoClass?rt(Y,Z):ie.type===Be.RelativePseudoClass&&nt(Y,Z);break;case He.Mark:switch(Z){case c:if(!ie||void 0!==ie&&!re)throw new Error("'".concat(e,"' is not a valid selector"));ie.type===Be.RegularSelector?Y.isAttributeBracketsOpen?rt(Y,Z):at(Y,Be.SelectorList):ie.type===Be.AbsolutePseudoClass?rt(Y,Z):(null===(E=ie)||void 0===E?void 0:E.type)===Be.Selector&&at(Y,Be.SelectorList);break;case a:if((null===(b=ie)||void 0===b?void 0:b.type)!==Be.RegularSelector||Y.isAttributeBracketsOpen||(ie=ct(Y)),(null===(y=ie)||void 0===y?void 0:y.type)===Be.RegularSelector){if(!Y.isAttributeBracketsOpen&&(ce===l&&te===He.Word||ae===He.Word&&re===r.LEFT))throw new Error("'".concat(e,"' is not a valid selector"));(!re||Je(te,re)||Y.isAttributeBracketsOpen)&&rt(Y,Z)}(null===(S=ie)||void 0===S?void 0:S.type)===Be.AbsolutePseudoClass&&rt(Y,Z),(null===(x=ie)||void 0===x?void 0:x.type)===Be.RelativePseudoClass&&nt(Y),(null===(k=ie)||void 0===k?void 0:k.type)===Be.Selector&&re&&Je(te,re)&&ot(Y,Be.RegularSelector);break;case h:case f:case m:case w:case";":case s:case n:case i:case u:case"^":case"$":case o.LEFT:case o.RIGHT:case p:case"#":case".":case t.LEFT:if(v.includes(Z)){if(null===ie)throw new Error("'".concat(e,"' is not a valid selector"));ie=ct(Y)}if(null===ie)Z!==p||re!==l||se!==B&&se!==D?(st(Y,Z),Z===t.LEFT&&(Y.isAttributeBracketsOpen=!0)):st(Y,ze);else if(ie.type===Be.RegularSelector)rt(Y,Z),Z===t.LEFT&&(Y.isAttributeBracketsOpen=!0);else if(ie.type===Be.AbsolutePseudoClass){if(rt(Y,Z),!ie.value)throw new Error("bufferNode should have value by now");Z===s&&Y.extendedPseudoNamesStack.length>0&&(ce===s&&le===n?Y.isRegexpOpen=!1:ce!==n&&(Ze(Y,ce,ie.value)?Y.isRegexpOpen=!Y.isRegexpOpen:Y.isRegexpOpen=!1))}else ie.type===Be.RelativePseudoClass?(nt(Y,Z),Z===t.LEFT&&(Y.isAttributeBracketsOpen=!0)):ie.type===Be.Selector?v.includes(Z)?ot(Y,Be.RegularSelector,Z):Y.isRegexpOpen||(ie=tt(Y),rt(Y,Z),Z===t.LEFT&&(Y.isAttributeBracketsOpen=!0)):ie.type===Be.SelectorList&&(ot(Y,Be.Selector),ot(Y,Be.RegularSelector,Z),Z===t.LEFT&&(Y.isAttributeBracketsOpen=!0));break;case t.RIGHT:(null===(T=ie)||void 0===T?void 0:T.type)===Be.RegularSelector&&(Y.isAttributeBracketsOpen=!1,rt(Y,Z)),(null===(N=ie)||void 0===N?void 0:N.type)===Be.AbsolutePseudoClass&&rt(Y,Z);break;case l:if(d.includes(re)&&_.includes(se))throw new Error("No white space is allowed before or after extended pseudo-class name in selector: '".concat(e,"'"));if(null===ie){if(re===R)st(Y,"body");else if(re===B||re===D)st(Y,ze);else{if(re===C||re===P)throw new Error("Selector should be specified before :".concat(re,"() pseudo-class"));st(Y,p)}ie=et(Y)}if(!ie)throw new Error("bufferNode has to be specified by now");if(ie.type===Be.SelectorList&&(ot(Y,Be.Selector),ot(Y,Be.RegularSelector),ie=et(Y)),(null===(O=ie)||void 0===O?void 0:O.type)===Be.RegularSelector&&((v.includes(ce)||ce===c)&&rt(Y,p),lt(Y,e,Z,re,se)),(null===(I=ie)||void 0===I?void 0:I.type)===Be.Selector)if(Ye(re.toLowerCase()))ot(Y,Be.ExtendedSelector);else{if(re.toLowerCase()===A)throw new Error("Selector parser error: invalid :remove() pseudo-class in selector: '".concat(e,"'"));ie=tt(Y),lt(Y,e,Z,te,se)}if((null===(M=ie)||void 0===M?void 0:M.type)===Be.AbsolutePseudoClass){if(ie.name===R&&_.includes(ee.value)&&oe.value===r.LEFT)throw new Error(":xpath() pseudo-class should be at the end of selector: '".concat(e,"'"));rt(Y,Z)}(null===(W=ie)||void 0===W?void 0:W.type)===Be.RelativePseudoClass&&(nt(Y,p),Ye(re.toLowerCase())?(at(Y,Be.Selector),ot(Y,Be.ExtendedSelector)):(rt(Y,Z),se===r.LEFT&&Y.standardPseudoNamesStack.push(re)));break;case r.LEFT:(null===($=ie)||void 0===$?void 0:$.type)===Be.AbsolutePseudoClass&&(ie.name!==R&&Y.isRegexpOpen?rt(Y,Z):(Y.extendedPseudoBracketsStack.push(Z),Y.extendedPseudoBracketsStack.length>Y.extendedPseudoNamesStack.length&&rt(Y,Z))),(null===(V=ie)||void 0===V?void 0:V.type)===Be.RegularSelector&&(Y.standardPseudoNamesStack.length>0&&(rt(Y,Z),Y.standardPseudoBracketsStack.push(Z)),Y.isAttributeBracketsOpen&&rt(Y,Z)),(null===(U=ie)||void 0===U?void 0:U.type)===Be.RelativePseudoClass&&Y.extendedPseudoBracketsStack.push(Z);break;case r.RIGHT:if((null===(q=ie)||void 0===q?void 0:q.type)===Be.AbsolutePseudoClass&&(ie.name!==R&&Y.isRegexpOpen?rt(Y,Z):(Y.extendedPseudoBracketsStack.pop(),ie.name!==R?(Y.extendedPseudoNamesStack.pop(),Y.extendedPseudoBracketsStack.length>Y.extendedPseudoNamesStack.length?rt(Y,Z):Y.extendedPseudoBracketsStack.length>=0&&Y.extendedPseudoNamesStack.length>=0&&at(Y,Be.Selector)):Y.extendedPseudoBracketsStack.length<Y.extendedPseudoNamesStack.length?Y.extendedPseudoNamesStack.pop():rt(Y,Z))),(null===(G=ie)||void 0===G?void 0:G.type)===Be.RegularSelector)if(Y.isAttributeBracketsOpen)rt(Y,Z);else if(Y.standardPseudoNamesStack.length>0&&Y.standardPseudoBracketsStack.length>0){rt(Y,Z),Y.standardPseudoBracketsStack.pop();const t=Y.standardPseudoNamesStack.pop();if(!t)throw new Error("Parsing error. Invalid selector: ".concat(e));if(Object.values(j).includes(t)&&re===l&&se&&L.includes(se))throw new Error("Usage of :".concat(se,"() pseudo-class is not allowed after any regular pseudo-element: '").concat(t,"'"))}else Y.extendedPseudoBracketsStack.pop(),Y.extendedPseudoNamesStack.pop(),at(Y,Be.ExtendedSelector),at(Y,Be.Selector);(null===(H=ie)||void 0===H?void 0:H.type)===Be.Selector&&(Y.extendedPseudoBracketsStack.pop(),Y.extendedPseudoNamesStack.pop(),at(Y,Be.ExtendedSelector),at(Y,Be.Selector)),(null===(K=ie)||void 0===K?void 0:K.type)===Be.RelativePseudoClass&&Y.extendedPseudoNamesStack.length>0&&Y.extendedPseudoBracketsStack.length>0&&(Y.extendedPseudoBracketsStack.pop(),Y.extendedPseudoNamesStack.pop());break;case"\n":case"\f":case"\r":throw new Error("'".concat(e,"' is not a valid selector"));case"\t":if((null===(X=ie)||void 0===X?void 0:X.type)!==Be.RegularSelector||!Y.isAttributeBracketsOpen)throw new Error("'".concat(e,"' is not a valid selector"));rt(Y,Z)}break;default:throw new Error("Unknown type of token: '".concat(Z,"'"))}J+=1}if(null===Y.ast)throw new Error("'".concat(e,"' is not a valid selector"));if(Y.extendedPseudoNamesStack.length>0||Y.extendedPseudoBracketsStack.length>0)throw new Error("Unbalanced brackets for extended pseudo-class: '".concat(Xe(Y.extendedPseudoNamesStack),"'"));if(Y.isAttributeBracketsOpen)throw new Error("Unbalanced attribute brackets is selector: '".concat(e,"'"));return Y.ast};function ut(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r<t;r++)o[r]=e[r];return o}function dt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var o,s,n=[],a=!0,c=!1;try{for(r=r.call(e);!(a=(o=r.next()).done)&&(n.push(o.value),!t||n.length!==t);a=!0);}catch(e){c=!0,s=e}finally{try{a||null==r.return||r.return()}finally{if(c)throw s}}return n}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ut(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ut(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}const pt=(e,t,r)=>"".concat("Error while matching element"," ").concat(e,", may be invalid :").concat(t,"() pseudo-class arg: '").concat(r,"'"),ht=(e,t,r)=>{let o,s,n;switch(t){case E:case b:case y:n=Le,o={pseudoName:t,pseudoArg:r,domElement:e},s=pt("text content",t,r);break;case S:case k:case x:n=Ne,o={pseudoName:t,pseudoArg:r,domElement:e},s=pt("style",t,r);break;case T:n=Ce,o={domElement:e,pseudoName:t,pseudoArg:r},s=pt("attributes",t,r);break;case N:n=Ie,o={domElement:e,pseudoName:t,pseudoArg:r},s=pt("properties",t,r);break;default:throw new Error("Unknown absolute pseudo-class :".concat(t,"()"))}return((e,t,r)=>{let o;try{o=e(t)}catch(e){throw ae.error(e),new Error(r)}return o})(n,o,s)},ft=(e,t,r)=>{const o=((e,t)=>{const r=Number(e);if(Number.isNaN(r)||r<1||r>=256)throw new Error("Invalid argument of :".concat(t," pseudo-class: '").concat(e,"'"));return r})(t,r),s=e.map((e=>{let t=null;try{t=((e,t,r)=>{let o=null,s=0;for(;s<t;){if(o=e.parentElement,!o)throw new Error("Argument of :".concat(r,"() pseudo-class is too big — '").concat(t,"', out of DOM elements root."));e=o,s+=1}return o})(e,o,r)}catch(e){ae.error(e)}return t})).filter(we);return s},mt=(e,t)=>{const r=e.map((e=>{const r=[];let o;try{o=document.evaluate(t,e,null,window.XPathResult.UNORDERED_NODE_ITERATOR_TYPE,null)}catch(e){throw ae.error(e),new Error("Invalid argument of :xpath pseudo-class: '".concat(t,"'"))}let s=o.iterateNext();for(;s;)we(s)&&r.push(s),s=o.iterateNext();return r}));return Ke(r)},wt=(e,t)=>{if(!(e=>{let t;try{document.querySelectorAll(e),t=!0}catch(e){t=!1}return t})(t))throw new Error("Invalid argument of :upward pseudo-class: '".concat(t,"'"));return e.map((e=>{const r=e.parentElement;return r?r.closest(t):null})).filter(we)},vt=e=>{const t=e.element,r=e.relativeSelectorList,o=e.pseudoName;return r.children.every((e=>{var r,s;const n=dt(e.children,1)[0];if(!n)throw new Error("RegularSelector is missing for :".concat(o,"() pseudo-class"));let a,c="",l=null;if(null!==(r=n.value)&&void 0!==r&&r.startsWith(m)||null!==(s=n.value)&&void 0!==s&&s.startsWith(w)){l=t.parentElement;const e=me(t);c="".concat($).concat(f).concat(e).concat(n.value)}else n.value===p?(l=t,c="".concat($).concat(h).concat(p)):(c="".concat($).concat(h).concat(n.value),l=t);if(!l)throw new Error("Selection by :".concat(o,"() pseudo-class is not possible"));try{a=yt(e,l,c)}catch(e){throw ae.error(e),new Error("Invalid selector for :".concat(o,"() pseudo-class: '").concat(n.value,"'"))}return a.length>0}))},gt=(e,t,r)=>{if(!e.value)throw new Error("RegularSelector value should be specified");const o=r||e.value;let s=[];try{s=Array.from(t.querySelectorAll(o))}catch(e){throw new Error("Error: unable to select by '".concat(o,"' — ").concat(e.message))}return s},Et=(e,t)=>{let r=[];const o=t.children[0].name;if(!o)throw new Error("Extended pseudo-class should have a name");if(F.includes(o)){const s=t.children[0].value;if(!s)throw new Error("Missing arg for :".concat(o,"() pseudo-class"));if(o===P)r=ft(e,s,o);else if(o===R){try{document.createExpression(s,null)}catch(e){throw new Error("Invalid argument of :".concat(o,"() pseudo-class: '").concat(s,"'"))}r=mt(e,s)}else r=o===C?Number.isNaN(Number(s))?wt(e,s):ft(e,s,o):e.filter((e=>ht(e,o,s)))}else{if(!W.includes(o))throw new Error("Unknown extended pseudo-class: '".concat(o,"'"));{const s=t.children[0].children;if(0===s.length)throw new Error("Missing arg for :".concat(o,"() pseudo-class"));const n=dt(s,1)[0];let a;switch(o){case"has":case"if":case I:a=e=>vt({element:e,relativeSelectorList:n,pseudoName:o});break;case M:a=e=>!vt({element:e,relativeSelectorList:n,pseudoName:o});break;case B:a=e=>(e=>{const t=e.element,r=e.relativeSelectorList,o=e.pseudoName;return r.children.some((e=>{const r=dt(e.children,1)[0];if(!r)throw new Error("RegularSelector is missing for :".concat(o,"() pseudo-class"));const s=t.parentElement;if(!s)throw new Error("Selection by :".concat(o,"() pseudo-class is not possible"));const n="".concat($).concat(f).concat(r.value);let a;try{a=yt(e,s,n)}catch(e){return!1}return a.includes(t)}))})({element:e,relativeSelectorList:n,pseudoName:o});break;case D:a=e=>(e=>{const t=e.element,r=e.relativeSelectorList,o=e.pseudoName;return r.children.every((e=>{const r=dt(e.children,1)[0];if(!r)throw new Error("RegularSelector is missing for :".concat(o,"() pseudo-class"));const s=t.parentElement;if(!s)throw new Error("Selection by :".concat(o,"() pseudo-class is not possible"));const n="".concat($).concat(f).concat(r.value);let a;try{a=yt(e,s,n)}catch(e){throw ae.error(e),new Error("Invalid selector for :".concat(o,"() pseudo-class: '").concat(r.value,"'"))}return!a.includes(t)}))})({element:e,relativeSelectorList:n,pseudoName:o});break;default:throw new Error("Unknown relative pseudo-class: '".concat(o,"'"))}r=e.filter(a)}}return r},bt=(e,t)=>{let r=[];const o=t.value;if(!o)throw new Error("RegularSelector should have a value.");return r=o.startsWith(f)?e.map((e=>{const r="".concat($).concat(o);return gt(t,e,r)})):o.startsWith(m)||o.startsWith(w)?e.map((e=>{const r=e.parentElement;if(!r)return[];const s=me(e),n="".concat($).concat(f).concat(s).concat(o);return gt(t,r,n)})):e.map((e=>{const r="".concat($).concat(h).concat(t.value);return gt(t,e,r)})),Ke(r)},yt=(e,t,r)=>{let o=[],s=0;for(;s<e.children.length;){const n=e.children[s];0===s?o=gt(n,t,r):n.type===Be.ExtendedSelector?o=Et(o,n):n.type===Be.RegularSelector&&(o=bt(o,n)),s+=1}return o},St=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;const r=[];e.children.forEach((e=>{r.push(...yt(e,t))}));const o=[...new Set(Ke(r))];return o};const xt=new class{constructor(){this.astCache=new Map}saveAstToCache(e,t){this.astCache.set(e,t)}getAstFromCache(e){return this.astCache.get(e)||null}getSelectorAst(e){let t=this.getAstFromCache(e);return t||(t=it(e)),this.saveAstToCache(e,t),t}querySelectorAll(e){const t=this.getSelectorAst(e);return St(t)}},kt=e=>{const t="".concat(l).concat(A).concat(r.LEFT).concat(r.RIGHT),o="".concat(l).concat(A).concat(r.LEFT);let s,n=!1;const a=e.indexOf(t);if(0===a)throw new Error("".concat(Z,": '").concat(e,"'"));if(a>0){if(a!==e.lastIndexOf(t))throw new Error("".concat(ee,": '").concat(e,"'"));if(a+t.length<e.length)throw new Error("".concat(te,": '").concat(e,"'"));s=e.substring(0,a),n=!0}else{if(e.includes(o))throw new Error("".concat(Q,": '").concat(e,"'"));s=e}return{selector:s,stylesOfSelector:n?[{property:A,value:String(n)}]:[]}},Tt="debug",Nt=/[;}]/g,Rt=/[;:}]/g,Pt=/\S/g,Ot={selector:""},Ct=e=>{e.rawRuleData=Ot},At=(e,t)=>{let r,o=e.selectorBuffer.trim();if(o.startsWith("@"))throw new Error("At-rules are not supported: '".concat(o,"'."));try{r=kt(o)}catch(e){throw ae.error(e.message),new Error("".concat(Q,": '").concat(o,"'"))}if(-1===e.nextIndex){if(o===r.selector)throw new Error("".concat(Y,": '").concat(e.cssToParse,"'"));e.cssToParse=""}let s,n=[],a=!1;try{o=r.selector,n=r.stylesOfSelector,s=t.getSelectorAst(o),a=!0}catch(e){a=!1}return e.nextIndex>0&&(e.cssToParse=e.cssToParse.slice(e.nextIndex)),{success:a,selector:o,ast:s,stylesOfSelector:n}},It=(e,t)=>{Rt.lastIndex=e.nextIndex;let r=Rt.exec(e.cssToParse);if(null===r)throw new Error("".concat(H,": '").concat(e.cssToParse,"'"));let s=r.index,n=r[0];if(n===o.RIGHT){if(0!==e.cssToParse.slice(e.nextIndex,s).trim().length)throw new Error("".concat(H,": '").concat(e.cssToParse,"'"));if(0===t.length)throw new Error("".concat(q,": '").concat(e.cssToParse,"'"));return s}if(n===l){const a=s;if(Nt.lastIndex=a,r=Nt.exec(e.cssToParse),null===r)throw new Error("".concat(K,": '").concat(e.cssToParse,"'"));s=r.index,n=r[0];const c=e.cssToParse.slice(e.nextIndex,a).trim();if(0===c.length)throw new Error("".concat(X,": '").concat(e.cssToParse,"'"));const l=e.cssToParse.slice(a+1,s).trim();if(0===l.length)throw new Error("".concat(z,": '").concat(e.cssToParse,"'"));if(t.push({property:c,value:l}),n===o.RIGHT)return s}return e.cssToParse=e.cssToParse.slice(s+1),e.nextIndex=0,It(e,t)},Lt=e=>{const t=[],r=It(e,t);Pt.lastIndex=r+1;const o=Pt.exec(e.cssToParse);if(null===o)return e.cssToParse="",t;const s=o.index;return e.cssToParse=e.cssToParse.slice(s),t},Mt=(e,t,r)=>{const o={selector:e,ast:t},s=(e=>{const t=e.find((e=>e.property===Tt));return null==t?void 0:t.value})(r),n=(e=>e.some((e=>e.property===A&&e.value===V)))(r);let a=r;if(s&&(a=r.filter((e=>e.property!==Tt)),s!==V&&s!==U||(o.debug=s)),n)o.style={[A]:V};else if(a.length>0){const e=a.map((e=>[e.property,e.value])),t=e.reduce(((e,t)=>{const r=t[0],o=t[1];return e[r]=o,e}),{});o.style=t}return o},Bt=(e,t)=>{const r=t.selector,o=t.ast,s=t.styles;if(!s)throw new Error("No style declaration for selector: '".concat(r,"'"));if(!o)throw new Error("No ast parsed for selector: '".concat(r,"'"));const n=e.get(r);n?n.styles.push(...s):e.set(r,{ast:o,styles:s})},Dt=(e,t)=>{const r=e.trim();if(r.includes("".concat(s).concat(p))&&r.includes("".concat(p).concat(s)))throw new Error("".concat(J,": '").concat(r,"'"));const n={isSelector:!0,nextIndex:0,cssToParse:r,selectorBuffer:"",rawRuleData:Ot},a=new Map;let c;for(;n.cssToParse;)if(n.isSelector){if(n.nextIndex=n.cssToParse.indexOf(o.LEFT),0===n.selectorBuffer.length&&0===n.nextIndex)throw new Error("".concat(G,": '").concat(n.cssToParse,"'"));-1===n.nextIndex?n.selectorBuffer=n.cssToParse:n.selectorBuffer+=n.cssToParse.slice(0,n.nextIndex),c=At(n,t),c.success?(n.rawRuleData.selector=c.selector.trim(),n.rawRuleData.ast=c.ast,n.rawRuleData.styles=c.stylesOfSelector,n.isSelector=!1,-1===n.nextIndex?(Bt(a,n.rawRuleData),Ct(n)):(n.nextIndex=1,n.selectorBuffer="")):(n.selectorBuffer+=o.LEFT,n.cssToParse=n.cssToParse.slice(1))}else{var l;const e=Lt(n);null===(l=n.rawRuleData.styles)||void 0===l||l.push(...e),Bt(a,n.rawRuleData),n.nextIndex=0,Ct(n),n.isSelector=!0}const i=[];return a.forEach(((e,t)=>{const r=t,o=e.ast,s=e.styles;i.push(Mt(r,o,s))})),i},Ft=e=>"number"==typeof e&&!Number.isNaN(e),Wt=void 0!==window.requestAnimationFrame,_t=Wt?requestAnimationFrame:window.setTimeout,$t=Wt?cancelAnimationFrame:clearTimeout,jt=Wt?performance:Date;class Vt{constructor(e,t,r){this.context=e,this.callback=t,this.throttleDelayMs=r||150,this.wrappedCb=this.wrappedCallback.bind(this)}wrappedCallback(e){this.lastRunTime=Ft(e)?e:jt.now(),this.timeoutId&&($t(this.timeoutId),delete this.timeoutId),clearTimeout(this.timerId),delete this.timerId,this.callback&&this.callback(this.context)}hasPendingCallback(){return Ft(this.timeoutId)||Ft(this.timerId)}run(){if(!this.hasPendingCallback()){if(void 0!==this.lastRunTime){const e=jt.now()-this.lastRunTime;if(e<this.throttleDelayMs)return void(this.timerId=window.setTimeout(this.wrappedCb,this.throttleDelayMs-e))}this.timeoutId=_t(this.wrappedCb)}}static now(){return jt.now()}}const Ut=["mouseover","mouseleave","mouseenter","mouseout"],qt=["keydown","keypress","keyup","auxclick","click","contextmenu","dblclick","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseout","mouseup","pointerlockchange","pointerlockerror","select","wheel"],Gt=["wheel"];class Ht{constructor(){Me(this,"getLastEventType",(()=>this.lastEventType)),Me(this,"getTimeSinceLastEvent",(()=>this.lastEventTime?Date.now()-this.lastEventTime:null)),this.trackedEvents=ue?qt.filter((e=>!Gt.includes(e))):qt,this.trackedEvents.forEach((e=>{document.documentElement.addEventListener(e,this.trackEvent,!0)}))}trackEvent(e){this.lastEventType=e.type,this.lastEventTime=Date.now()}isIgnoredEventType(){const e=this.getLastEventType(),t=this.getTimeSinceLastEvent();return!!e&&Ut.includes(e)&&!!t&&t<10}stopTracking(){this.trackedEvents.forEach((e=>{document.documentElement.removeEventListener(e,this.trackEvent,!0)}))}}const Kt=void 0!==window.addEventListener,Xt=(e,t)=>{e.isDomObserved||(e.isDomObserved=!0,((e,t)=>{he.MutationObserver?(e.domMutationObserver=new he.MutationObserver((r=>{if(!r||0===r.length)return;const o=new Ht;o.isIgnoredEventType()&&(e=>e.every((e=>"attributes"===e.type)))(r)||(e.eventTracker=o,t())})),e.domMutationObserver.observe(document,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["id","class"]})):Kt&&(document.addEventListener("DOMNodeInserted",t,!1),document.addEventListener("DOMNodeRemoved",t,!1),document.addEventListener("DOMAttrModified",t,!1))})(e,t))},zt=(e,t)=>{e.isDomObserved&&(e.isDomObserved=!1,((e,t)=>{var r;e.domMutationObserver?e.domMutationObserver.disconnect():Kt&&(document.removeEventListener("DOMNodeInserted",t,!1),document.removeEventListener("DOMNodeRemoved",t,!1),document.removeEventListener("DOMAttrModified",t,!1)),null===(r=e.eventTracker)||void 0===r||r.stopTracking()})(e,t))},Yt=(e,t)=>{const r=t.node;t.removed=!0;const o=(e=>{if(!(e instanceof Element))throw new Error("Function received argument with wrong type");let t;t=e;const r=[];for(;t&&t.nodeType===Node.ELEMENT_NODE;){let e=t.nodeName.toLowerCase();if(t.id&&"string"==typeof t.id){e+="#".concat(t.id),r.unshift(e);break}let o=t,s=1;for(;o.previousElementSibling;)o=o.previousElementSibling,o.nodeType===Node.ELEMENT_NODE&&o.nodeName.toLowerCase()===e&&(s+=1);1!==s&&(e+=":nth-of-type(".concat(s,")")),r.unshift(e),t=t.parentElement}return r.join(" > ")})(r),s=e.removalsStatistic[o]||0;s>50?ae.error("ExtendedCss: infinite loop protection for selector: '".concat(o,"'")):r.parentElement&&(r.parentElement.removeChild(r),e.removalsStatistic[o]=s+1)},Jt=(e,t)=>{e instanceof HTMLElement&&Object.keys(t).forEach((r=>{if(void 0!==e.style.getPropertyValue(r)){let o=t[r];o=((e,t)=>{const r=e.indexOf(t,e.length-t.length);return r>=0?e.substring(0,r):e})(o.trim(),"!important").trim(),e.style.setProperty(r,o,"important")}}))},Qt=(e,t)=>{if(t.protectionObserver)return;if(e.beforeStyleApplied&&!(t=e.beforeStyleApplied(t)))return;const r=t,o=r.node,s=r.rules;for(let r=0;r<s.length;r+=1){const n=s[r],a=n.selector,c=n.style,l=n.debug;if(c){if(c.remove===V)return void Yt(e,t);Jt(o,c)}else if(!l)throw new Error("No style declaration in rule for selector: '".concat(a,"'"))}},Zt=e=>{e.protectionObserver&&e.protectionObserver.disconnect(),e.node.style.cssText=e.originalStyle};class er{constructor(e){this.styleProtectionCount=0,this.observer=new he.MutationObserver((t=>{t.length&&(this.styleProtectionCount+=1,e(t,this))}))}observe(e,t){this.styleProtectionCount<50?this.observer.observe(e,t):ae.error("ExtendedCss: infinite loop protection for style")}disconnect(){this.observer.disconnect()}}const tr={attributes:!0,attributeOldValue:!0,attributeFilter:["style"]},rr=(e,t)=>{if(!he.MutationObserver)return null;const r=[];t.forEach((e=>{const t=e.style;t&&r.push(t)}));const o=new er((e=>(t,r)=>{const o=t[0].target;r.disconnect(),e.forEach((e=>{Jt(o,e)})),r.observe(o,tr)})(r));return o.observe(e,tr),o};class or{constructor(){this.appliesTimings=[],this.appliesCount=0,this.timingsSum=0,this.meanTiming=0,this.squaredSum=0,this.standardDeviation=0}push(e){this.appliesTimings.push(e),this.appliesCount+=1,this.timingsSum+=e,this.meanTiming=this.timingsSum/this.appliesCount,this.squaredSum+=e*e,this.standardDeviation=Math.sqrt(this.squaredSum/this.appliesCount-Math.pow(this.meanTiming,2))}}const sr=e=>Number(e.toFixed(4)),nr=e=>{const t=[];zt(e,e.mainCallback),e.parsedRules.forEach((r=>{const o=((e,t)=>{const r=!!t.debug||e.debug;let o;r&&(o=Vt.now());const s=t.ast,n=St(s);if(n.forEach((r=>{let o=(s=e.affectedElements,n=r,s.find((e=>e.node===n)));var s,n;if(o)o.rules.push(t),Qt(e,o);else{const s=r.style.cssText;o={node:r,rules:[t],originalStyle:s,protectionObserver:null},Qt(e,o),e.affectedElements.push(o)}})),r&&o){const e=Vt.now()-o;t.timingStats||(t.timingStats=new or),t.timingStats.push(e)}return n})(e,r);Array.prototype.push.apply(t,o),r.debug&&(r.matchedElements=o)}));let r=e.affectedElements.length;for(;r;){const o=e.affectedElements[r-1];t.includes(o.node)?o.removed||o.protectionObserver||(o.protectionObserver=rr(o.node,o.rules)):(Zt(o),e.affectedElements.splice(r-1,1)),r-=1}Xt(e,e.mainCallback),(e=>{if(e.areTimingsPrinted)return;e.areTimingsPrinted=!0;const t={};e.parsedRules.forEach((e=>{if(e.timingStats){const o=e.selector,s=e.style,n=e.debug,a=e.matchedElements;if(!s&&!n)throw new Error("Rule should have style declaration for selector: '".concat(o,"'"));const c={selectorParsed:o,timings:(r=e.timingStats,{appliesTimings:r.appliesTimings.map((e=>sr(e))),appliesCount:sr(r.appliesCount),timingsSum:sr(r.timingsSum),meanTiming:sr(r.meanTiming),standardDeviation:sr(r.standardDeviation)})};s&&s.remove===V?c.removed=!0:(c.styleApplied=s||null,c.matchedElements=a),t[o]=c}var r})),0!==Object.keys(t).length&&ae.info("[ExtendedCss] Timings in milliseconds for %o:\n%o",window.location.href,t)})(e)};class ar{constructor(e){if(!(()=>{const e=navigator.userAgent;if(e.includes("MSIE")||e.includes("Trident/"))return!1;if(e.includes("jsdom"))return!0;const t=pe();if(!t)return!1;const r=t.browserName;return t.currentVersion>=de[r].MIN_VERSION})())throw new Error("Browser is not supported by ExtendedCss.");if(!e)throw new Error("ExtendedCss configuration should be provided.");if(this.context={beforeStyleApplied:e.beforeStyleApplied,debug:!1,affectedElements:[],isDomObserved:!1,removalsStatistic:{},parsedRules:Dt(e.styleSheet,xt),mainCallback:()=>{}},this.context.debug=e.debug||this.context.parsedRules.some((e=>e.debug===U)),this.applyRulesScheduler=new Vt(this.context,nr,150),this.context.mainCallback=this.applyRulesScheduler.run.bind(this.applyRulesScheduler),this.context.beforeStyleApplied&&"function"!=typeof this.context.beforeStyleApplied)throw new Error("Invalid configuration. Type of 'beforeStyleApplied' should be a function, received: '".concat(typeof this.context.beforeStyleApplied,"'"));this.applyRulesCallbackListener=()=>{nr(this.context)}}apply(){nr(this.context),"complete"!==document.readyState&&document.addEventListener("DOMContentLoaded",this.applyRulesCallbackListener,!1)}dispose(){zt(this.context,this.context.mainCallback),this.context.affectedElements.forEach((e=>{Zt(e)})),document.removeEventListener("DOMContentLoaded",this.applyRulesCallbackListener,!1)}getAffectedElements(){return this.context.affectedElements}static query(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("string"!=typeof e)throw new Error("Selector should be defined as a string.");const r=Vt.now();try{return xt.querySelectorAll(e)}finally{const e=Vt.now();t||ae.info("[ExtendedCss] Elapsed: ".concat(Math.round(1e3*(e-r))," μs."))}}static validate(e){try{const t=kt(e).selector;return ar.query(t),{ok:!0,error:null}}catch(t){return{ok:!1,error:"Selector is not valid: '".concat(e,"' -- ").concat(t.message)}}}}return e.ExtendedCss=ar,Object.defineProperty(e,"__esModule",{value:!0}),e}({});
{
"name": "@adguard/extended-css",
"version": "2.0.9",
"version": "2.0.10",
"description": "AdGuard's TypeScript library for non-standard element selecting and applying CSS styles with extended properties.",

@@ -5,0 +5,0 @@ "main": "dist/extended-css.umd.js",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc