@temple-wallet/extension-ads 8.1.0-dev.3 → 8.1.0-dev.4
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/dist/index.d.ts +1 -0
- package/dist/index.js +12 -12
- package/package.json +1 -1
- package/src/ads-actions/helpers.ts +19 -0
- package/src/ads-actions/process-permanent-rule.ts +5 -3
- package/src/ads-actions/process-providers-ads.ts +28 -2
- package/src/execute-ads-actions/process-insert-ad-action.ts +24 -4
- package/src/render-ads-stack.ts +1 -1
- package/src/types/ads-actions.ts +1 -0
- package/dist/ads-actions/helpers.d.ts +0 -17
- package/dist/ads-actions/helpers.js +0 -96
- package/dist/ads-actions/helpers.js.map +0 -1
- package/dist/ads-actions/index.d.ts +0 -3
- package/dist/ads-actions/index.js +0 -63
- package/dist/ads-actions/index.js.map +0 -1
- package/dist/ads-actions/process-elements-to-hide-or-remove-rule.d.ts +0 -3
- package/dist/ads-actions/process-elements-to-hide-or-remove-rule.js +0 -19
- package/dist/ads-actions/process-elements-to-hide-or-remove-rule.js.map +0 -1
- package/dist/ads-actions/process-permanent-rule.d.ts +0 -3
- package/dist/ads-actions/process-permanent-rule.js +0 -143
- package/dist/ads-actions/process-permanent-rule.js.map +0 -1
- package/dist/ads-actions/process-providers-ads.d.ts +0 -3
- package/dist/ads-actions/process-providers-ads.js +0 -137
- package/dist/ads-actions/process-providers-ads.js.map +0 -1
- package/dist/ads-actions/process-rule.d.ts +0 -3
- package/dist/ads-actions/process-rule.js +0 -98
- package/dist/ads-actions/process-rule.js.map +0 -1
- package/dist/ads-configuration.d.ts +0 -31
- package/dist/ads-configuration.js +0 -30
- package/dist/ads-configuration.js.map +0 -1
- package/dist/constants.d.ts +0 -11
- package/dist/constants.js +0 -12
- package/dist/constants.js.map +0 -1
- package/dist/execute-ads-actions/ads-views/index.d.ts +0 -3
- package/dist/execute-ads-actions/ads-views/index.js +0 -4
- package/dist/execute-ads-actions/ads-views/index.js.map +0 -1
- package/dist/execute-ads-actions/ads-views/make-ads-tw-view.d.ts +0 -3
- package/dist/execute-ads-actions/ads-views/make-ads-tw-view.js +0 -40
- package/dist/execute-ads-actions/ads-views/make-ads-tw-view.js.map +0 -1
- package/dist/execute-ads-actions/ads-views/make-extension-iframe-view.d.ts +0 -3
- package/dist/execute-ads-actions/ads-views/make-extension-iframe-view.js +0 -22
- package/dist/execute-ads-actions/ads-views/make-extension-iframe-view.js.map +0 -1
- package/dist/execute-ads-actions/ads-views/make-tkey-ad.d.ts +0 -3
- package/dist/execute-ads-actions/ads-views/make-tkey-ad.js +0 -38
- package/dist/execute-ads-actions/ads-views/make-tkey-ad.js.map +0 -1
- package/dist/execute-ads-actions/index.d.ts +0 -2
- package/dist/execute-ads-actions/index.js +0 -23
- package/dist/execute-ads-actions/index.js.map +0 -1
- package/dist/execute-ads-actions/observing.d.ts +0 -1
- package/dist/execute-ads-actions/observing.js +0 -129
- package/dist/execute-ads-actions/observing.js.map +0 -1
- package/dist/execute-ads-actions/override-element-styles.d.ts +0 -2
- package/dist/execute-ads-actions/override-element-styles.js +0 -6
- package/dist/execute-ads-actions/override-element-styles.js.map +0 -1
- package/dist/execute-ads-actions/process-insert-ad-action.d.ts +0 -2
- package/dist/execute-ads-actions/process-insert-ad-action.js +0 -153
- package/dist/execute-ads-actions/process-insert-ad-action.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/render-ads-stack.d.ts +0 -7
- package/dist/render-ads-stack.js +0 -156
- package/dist/render-ads-stack.js.map +0 -1
- package/dist/temple-wallet-api.d.ts +0 -23
- package/dist/temple-wallet-api.js +0 -67
- package/dist/temple-wallet-api.js.map +0 -1
- package/dist/transform-raw-rules.d.ts +0 -3
- package/dist/transform-raw-rules.js +0 -137
- package/dist/transform-raw-rules.js.map +0 -1
- package/dist/types/ad-view.d.ts +0 -7
- package/dist/types/ad-view.js +0 -2
- package/dist/types/ad-view.js.map +0 -1
- package/dist/types/ads-actions.d.ts +0 -56
- package/dist/types/ads-actions.js +0 -15
- package/dist/types/ads-actions.js.map +0 -1
- package/dist/types/ads-meta.d.ts +0 -19
- package/dist/types/ads-meta.js +0 -2
- package/dist/types/ads-meta.js.map +0 -1
- package/dist/types/ads-provider.d.ts +0 -8
- package/dist/types/ads-provider.js +0 -9
- package/dist/types/ads-provider.js.map +0 -1
- package/dist/types/ads-rules.d.ts +0 -26
- package/dist/types/ads-rules.js +0 -2
- package/dist/types/ads-rules.js.map +0 -1
- package/dist/types/temple-wallet-api.d.ts +0 -78
- package/dist/types/temple-wallet-api.js +0 -2
- package/dist/types/temple-wallet-api.js.map +0 -1
- package/dist/utils.d.ts +0 -6
- package/dist/utils.js +0 -4
- package/dist/utils.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -118,6 +118,7 @@ interface InsertAdActionProps extends Pick<RawPermanentAdPlacesRule, 'wrapperSty
|
|
|
118
118
|
stylesOverrides?: AdStylesOverrides[];
|
|
119
119
|
originalWidth: number;
|
|
120
120
|
originalHeight: number;
|
|
121
|
+
shouldUseBlurredBackground?: boolean;
|
|
121
122
|
}
|
|
122
123
|
interface ReplaceAllChildrenWithAdAction extends AdActionBase, InsertAdActionProps {
|
|
123
124
|
type: AdActionType.ReplaceAllChildren;
|
package/dist/index.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var semver = require('semver');
|
|
4
|
+
var lodash = require('lodash');
|
|
4
5
|
var nanoid = require('nanoid');
|
|
5
|
-
var
|
|
6
|
+
var ct = require('webextension-polyfill');
|
|
6
7
|
var cryptoJs = require('crypto-js');
|
|
7
|
-
var
|
|
8
|
-
var yt = require('axios');
|
|
8
|
+
var Pt = require('axios');
|
|
9
9
|
|
|
10
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
11
|
|
|
12
|
-
var
|
|
13
|
-
var
|
|
12
|
+
var ct__default = /*#__PURE__*/_interopDefault(ct);
|
|
13
|
+
var Pt__default = /*#__PURE__*/_interopDefault(Pt);
|
|
14
14
|
|
|
15
|
-
var Xe=Object.defineProperty,Qe=Object.defineProperties;var je=Object.getOwnPropertyDescriptors;var ie=Object.getOwnPropertySymbols;var Ie=Object.prototype.hasOwnProperty,xe=Object.prototype.propertyIsEnumerable;var Pe=(e,t,r)=>t in e?Xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))Ie.call(t,r)&&Pe(e,r,t[r]);if(ie)for(var r of ie(t))xe.call(t,r)&&Pe(e,r,t[r]);return e},b=(e,t)=>Qe(e,je(t));var M=(e,t)=>{var r={};for(var s in e)Ie.call(e,s)&&t.indexOf(s)<0&&(r[s]=e[s]);if(e!=null&&ie)for(var s of ie(e))t.indexOf(s)<0&&xe.call(e,s)&&(r[s]=e[s]);return r};var w=(e,t,r)=>new Promise((s,a)=>{var d=i=>{try{o(r.next(i));}catch(l){a(l);}},n=i=>{try{o(r.throw(i));}catch(l){a(l);}},o=i=>i.done?s(i.value):Promise.resolve(i.value).then(d,n);o((r=r.apply(e,t)).next());});var Me=e=>!!e;var H=(e=300)=>new Promise(t=>setTimeout(t,e));var R=class{};R.IS_MISES_BROWSER=!1,R.ADS_TW_WINDOW_URL="",R.TKEY_INPAGE_AD_URL="",R.SMALL_TKEY_INPAGE_AD_URL="",R.SWAP_TKEY_URL="",R.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE="",R.personaIframePath="",R.getAdsStackIframeURL=()=>"",R.buildNativeAdsMeta=()=>[],R.bannerAdsMeta=[];var Je=e=>{let{adsTwWindowUrl:t,tkeyInpageAdUrl:r,smallTkeyInpageAdUrl:s,swapTkeyUrl:a,externalAdsActivityMessageType:d,personaIframePath:n,getAdsStackIframeURL:o,buildNativeAdsMeta:i,bannerAdsMeta:l,extVersion:p,templePassphrase:A,isMisesBrowser:c}=e;s&&(R.SMALL_TKEY_INPAGE_AD_URL=s),R.ADS_TW_WINDOW_URL=t,R.TKEY_INPAGE_AD_URL=r,R.SWAP_TKEY_URL=a,R.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE=d,R.personaIframePath=n,R.getAdsStackIframeURL=o,R.buildNativeAdsMeta=i,R.bannerAdsMeta=l,R.EXTENSION_VERSION=p,R.TEMPLE_PASSPHRASE=A,R.IS_MISES_BROWSER=c;};var V="twa",G="twa-native",Y="twa-sibling-replacement";var oe="adRenderStart",le="resize",$="ready",te="error",ae="accelerometer; gyroscope",B="crypto",ce="background";var K=/[\d.]+(px)?$/,z=`[${V}]`,_e=`[${V}]:not([${G}])`,be=`[${G}]`,pe=(e,t)=>{let r=parseInt(e,10);return isNaN(r)||!K.test(e)?t:r},k=(e,t,r)=>{e.style[t]=`${Math.max(pe(e.style[t],0),r)}px`;},q=e=>e.reduce((t,r)=>t+pe(r,0),0),X=e=>!!e.closest(z),de=e=>{var t;return !!((t=e.previousElementSibling)!=null&&t.getAttribute(Y))},re=e=>{let t=getComputedStyle(e),{x:r,right:s,width:a,height:d}=e.getBoundingClientRect(),n={width:a,height:d},o=["width","height"];for(let i of o){let l=t[i],p=e.getAttribute(i),A=Math.max(...[l,p].map(c=>pe(c!=null?c:"",-1)));A!==-1&&(n[i]=A),i==="width"&&r<0?n.width+=r:i==="width"&&s>window.innerWidth&&(n.width=window.innerWidth-r);}return n},L=(e,t,r=document)=>e?t?[...r.querySelectorAll(e)]:[r.querySelector(e)].filter(s=>!!s):[],N=(e,t)=>{let r=e;for(let s=0;s<t;s++){let a=r.parentElement;if(!a)return null;r=a;}return r},Le=(e,t,r,s,a)=>{if(e<2&&t<2)return [];if(s)return R.buildNativeAdsMeta(e,t);let d=r==="permanent"||r==="slot-replacement"?R.bannerAdsMeta.filter(({source:i})=>i.shouldNotUseStrictContainerLimits):[],n=Math.max(e,...d.map(({dimensions:i})=>i.width)),o=Math.max(t,...d.map(({dimensions:i})=>i.height));return R.bannerAdsMeta.reduce((i,{dimensions:l,source:p},A)=>{let{shouldNotUseStrictContainerLimits:c=!1,categories:m=[B]}=p;if(m.every(v=>!a.includes(v)))return i;let{minContainerWidth:E,minContainerHeight:h,width:f,maxContainerWidth:u,maxContainerHeight:T}=l,S=!1;switch(r){case"permanent":S=c||n>=f&&(o>=h||o<2);break;case"slot-replacement":S=c||n>=E&&(o>=h||o<2);break;default:S=e>=E&&t>=h&&e<=u&&t<=T;}return S&&i.push(A),i},[])};var De=(e,t)=>{let{shouldHide:r,cssString:s,parentDepth:a,isMultiple:d}=e;L(s,d).forEach(n=>{let o=N(n,a);if(!o)return;let i=window.getComputedStyle(o);i.display!=="none"&&i.visibility!=="hidden"&&t.push({type:r?"hide-element":"remove-element",element:o});});};var He=(e,t,r)=>w(void 0,null,function*(){let{parentSelector:s,displayWidth:a}=e,{isMultiple:d,cssString:n,parentDepth:o}=s;if(a&&!semver.satisfies(semver.coerce(window.innerWidth),a))return [];let i=L(n,d).map(l=>N(l,o)).filter(l=>!!l);return yield Promise.all(i.map(l=>w(void 0,null,function*(){yield H(0),tt(l,e,t,r);}))),i}),Ae=(e,t)=>{var r,s;return e?{width:(r=document.querySelector(e.width))!=null?r:t,height:(s=document.querySelector(e.height))!=null?s:t}:{width:t,height:t}},tt=(e,t,r,s)=>{var Te;let Se=t,{shouldUseDivWrapper:a,divWrapperStyle:d,wrapperStyle:n,elementStyle:o,adSelector:i,insertionIndex:l,insertBeforeSelector:p,insertAfterSelector:A,insertionsCount:c=1,elementsToMeasureSelectors:m,stylesOverrides:E,shouldHideOriginal:h=!1,isNative:f,urlRegexes:u,parentSelector:T}=Se,S=M(Se,["shouldUseDivWrapper","divWrapperStyle","wrapperStyle","elementStyle","adSelector","insertionIndex","insertBeforeSelector","insertAfterSelector","insertionsCount","elementsToMeasureSelectors","stylesOverrides","shouldHideOriginal","isNative","urlRegexes","parentSelector"]),v=S.wrapperType?n:a?d:{display:"contents"},{isMultiple:g,cssString:I,parentDepth:_}=i,x=L(f?be:_e,!0,e).reduce((y,W)=>y.some(Z=>Z.contains(W)||W.contains(Z))?y:[...y,W],[]).length,C=c-x;if(L(I,g,e).map(y=>N(y,_)).filter(y=>Me(y)&&!X(y)).forEach(y=>{var Z;let W=window.getComputedStyle(y).display==="none";if(C<=0)(!h||!W)&&s.push({type:h?"hide-element":"remove-element",element:y});else {let Ke=Ae(m,((Z=y.parentElement)==null?void 0:Z.children.length)===1?y.parentElement:y),ze=P({type:"replace-element",element:y,wrapperStyle:v,elementStyle:o,stylesOverrides:E},S),we={type:"hide-element",element:y},qe=P({type:"simple-insert-ad",wrapperStyle:v,elementStyle:o,parent:y.parentElement,insertionIndex:Array.from(y.parentElement.children).indexOf(y),isSiblingReplacement:!0,stylesOverrides:E},S),ee=[],ve=de(y);h&&ve&&!W?ee=[we]:h&&!ve?ee=[we,qe]:h||(ee=[ze]),ee.length>0&&r(Ke,"permanent",f,[B],...ee)&&C--;}}),C<=0)return;let D=-1,F=e,J={width:e,height:e},ye=p||A;if(ye){let y=e.querySelector(ye),W=y==null?void 0:y.parentElement;y&&W&&(F=W,D=Array.from(e.children).indexOf(y)+(p?0:1),J=Ae(m,y));}else {let y=l!=null?l:0;D=y<0?Math.max(e.children.length+y,0):Math.min(y,e.children.length),J=Ae(m,(Te=e.children[D])!=null?Te:e);}if(D!==-1){let y=P({type:"simple-insert-ad",wrapperStyle:v,elementStyle:o,parent:F,insertionIndex:D,isSiblingReplacement:!1,stylesOverrides:E},S);r(J,"permanent",f,[B],...Array(C).fill(y));}};var rt=["align-items","align-self","bottom","display","flex","flex-grow","flex-shrink","float","justify-content","justify-self","left","margin","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","padding","position","right","top","vertical-align","z-index"],Ne=(e,t,r,s)=>w(void 0,null,function*(){let a=e.map(({selector:n,parentDepth:o,categories:i})=>L(n,!0).reduce((l,p)=>{var v;let A=(v=N(p,o))!=null?v:p,c=l.findIndex(({element:g})=>g.contains(A)),m=A.parentElement&&window.getComputedStyle(A.parentElement),{width:E,height:h}=re(A),f=s.some(g=>{var I;return g.type==="replace-all-children"||g.type==="simple-insert-ad"?g.parent.contains(A)||A.contains(g.parent):((I=g.element.parentElement)==null?void 0:I.contains(A))||A.contains(g.element)}),u=(m==null?void 0:m.display)==="none"||(m==null?void 0:m.visibility)==="hidden",T=c>=0&&l[c]instanceof HTMLAnchorElement;if(f||E===0||h===0||u||T)return l;let S={element:A,categories:i};return c>=0?l.splice(c,1,S):l.some(({element:g})=>g.contains(A))||l.push(S),l},[])).flat(),d=t.map(({selector:n,parentDepth:o})=>L(n,!0).map(i=>N(i,o)).filter(i=>!!i)).flat();a=a.filter(({element:n})=>!d.includes(n)),yield Promise.all(a.map(i=>w(void 0,[i],function*({element:n,categories:o}){var m,E,h,f,u,T,S,v;yield H(0);let l=n.parentElement,{width:p,height:A}=window.getComputedStyle(n),c=K.test(p)&&K.test(A)?n:(E=(m=l==null?void 0:l.closest("div, article, aside, footer, header"))!=null?m:(l==null?void 0:l.tagName.toLowerCase())==="body"?void 0:l)!=null?E:n;if(!X(n)&&!n.querySelector(z)&&!s.some(g=>g.type==="simple-insert-ad"?!1:g.type==="replace-all-children"?g.parent.contains(n):g.element===n)){let g=(h=n.getAttribute("style"))!=null?h:"",I=Object.fromEntries(g.split(";").filter(Boolean).map(F=>F.split(":").map(J=>J.trim())));if((f=I.width)!=null&&f.match(/^0[a-z]/)||(u=I.height)!=null&&u.match(/^0[a-z]/))return;let _=window.getComputedStyle(n),U=P(P({},Object.fromEntries(rt.map(F=>[F,_.getPropertyValue(F)]))),I),x={type:"hide-element",element:n},C={type:"simple-insert-ad",wrapperStyle:U,parent:(T=n.parentElement)!=null?T:document.body,insertionIndex:Array.from((v=(S=n.parentElement)==null?void 0:S.children)!=null?v:[]).indexOf(n),isSiblingReplacement:!0},j,D=n.closest(`[${Y}] + *`);D&&D!==n?j=[{type:"remove-element",element:D.previousElementSibling},x,C]:D?j=window.getComputedStyle(n).display==="none"?[]:[x]:j=[x,C],r({width:c,height:c},"provider-replacement",!1,o,...j);}})));});var Oe=(e,t,r)=>w(void 0,null,function*(){let{cssString:s,isMultiple:a}=e.selector,d=L(s,a);yield Promise.all(d.map(n=>w(void 0,null,function*(){yield H(0),nt(n,e,t,r);})));}),nt=(e,t,r,s)=>{let{selector:{shouldUseDivWrapper:a,parentDepth:d,divWrapperStyle:n},stylesOverrides:o,shouldHideOriginal:i,isNative:l=!1}=t,p=N(e,d);if(!p||r.some(m=>m.contains(p))||X(p)||p.querySelector(z))return;let A={shouldUseDivWrapper:a,wrapperStyle:n},c;if(a&&i){let m=p.parentElement,E=window.getComputedStyle(p).display==="none",h=P({type:"simple-insert-ad",parent:m,insertionIndex:Array.from(m.children).indexOf(p),stylesOverrides:o==null?void 0:o.map(T=>{var S=T,{parentDepth:f}=S,u=M(S,["parentDepth"]);return b(P({},u),{parentDepth:f-1})}),isSiblingReplacement:!0},A);c=[],E||c.push({type:"hide-element",element:p}),de(p)||c.push(h);}else if(a)c=[P({type:"replace-element",element:p,stylesOverrides:o==null?void 0:o.map(f=>{var u=f,{parentDepth:E}=u,h=M(u,["parentDepth"]);return b(P({},h),{parentDepth:E-1})})},A)];else if(i){let m={type:"simple-insert-ad",parent:p,insertionIndex:0,stylesOverrides:o,isSiblingReplacement:!0,wrapperStyle:{display:"contents"}};c=Array.from(p.children).filter(E=>window.getComputedStyle(E).display!=="none").map(E=>({type:"hide-element",element:E})),p.querySelector(z)||c.push(m);}else c=[{type:"replace-all-children",parent:p,stylesOverrides:o,wrapperStyle:{display:"contents"}}];c.length>0&&s({width:p,height:p},"slot-replacement",l,[B],...c);};var st=d=>w(void 0,[d],function*({providersSelectors:e,providersNegativeSelectors:t,adPlacesRules:r,permanentAdPlacesRules:s,elementsToHideOrRemoveRules:a}){let n=[],o=(l,p,A,c,...m)=>{if(m.length>0&&m.every(x=>x.type==="hide-element"||x.type==="remove-element"))return n.push(...m),!0;let{width:E}=re(l.width),{height:h}=re(l.height),{paddingLeft:f,paddingRight:u}=window.getComputedStyle(l.width),{paddingTop:T,paddingBottom:S}=window.getComputedStyle(l.height),v=q([f,u]),g=v===E?E:E-v,I=q([T,S]),_=I===h?h:h-I,U=Le(g,_,p,A,c);return U.length?(n.push(...m.map(x=>x.type==="hide-element"||x.type==="remove-element"?x:b(P({},x),{adsMetadata:U,originalWidth:g,originalHeight:_}))),!0):!1},i=[];return yield Promise.all(a.map(l=>w(void 0,null,function*(){yield H(0),De(l,n);}))),yield Promise.all(s.map(l=>w(void 0,null,function*(){yield H(0),i=i.concat(yield He(l,o,n));}))),yield Promise.all(r.map(l=>w(void 0,null,function*(){yield H(0),yield Oe(l,i,o);}))),yield Ne(e,t,o,n),n});var ue=(d=>(d.Optimal="Optimal",d.SmartyAds="SmartyAds",d.HypeLab="HypeLab",d.Persona="Persona",d.Temple="Temple Wallet",d))(ue||{});var he=new Set,Ce=new Set,We=new Set,ke=e=>w(void 0,null,function*(){let t=e.id;if(!he.has(t))return he.add(t),new Promise((r,s)=>{let a=!1,d=n=>{var o,i;if(n.source===e.contentWindow)try{let l=typeof n.data=="string"?JSON.parse(n.data):n.data;if(l.id!==t)return;let p=e.offsetWidth-e.clientWidth,A=e.offsetHeight-e.clientHeight;switch(l.type){case $:r(l.adMetadata.source.providerName);break;case te:window.removeEventListener("message",d),e.style.display="none",s(new Error((o=l.reason)!=null?o:"Unknown error"));break;case oe:let{dimensions:c,source:m}=l.adMetadata;a=(i=m.native)!=null?i:!1;let{width:E,height:h}=c;E>0&&h>0&&(m.native?e.style.height=`${h}px`:(k(e,"width",E),k(e,"height",h)));break;case le:let{width:f,height:u}=l;a?e.style.height=`${u+A}px`:(k(e,"width",f+p),k(e,"height",u+A));}}catch(l){console.error("Observing error:",l);}};window.addEventListener("message",d);}).then(r=>{if(Ce.has(t))return;Ce.add(t),lt(e)?Ue(t,r):ot(e,r);}).catch(r=>{throw console.error(r),r}).finally(()=>void he.delete(t))}),ot=(e,t)=>{let r=new IntersectionObserver(s=>{s.some(a=>a.isIntersecting)&&(Ue(e.id,t),r.disconnect());},{threshold:.5});r.observe(e);},Ue=(e,t)=>{if(We.has(e))return;We.add(e);let r=window.parent.location.href;it__default.default.runtime.sendMessage({type:R.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,url:r,provider:ue[t]}).catch(s=>void console.error(s));},lt=e=>{let t=e.getBoundingClientRect(),r=window.visualViewport;if(!r)return !1;let s=Math.min(Math.max(0,t.x),r.width),a=Math.min(Math.max(0,t.x+t.width),r.width),d=Math.min(Math.max(0,t.y),r.height),n=Math.min(Math.max(0,t.y+t.height),r.height),o=t.width*t.height;return (a-s)*(n-d)/o>=.5};var ne=(e,t)=>{for(let r in t)e.style.setProperty(r,t[r]);};var dt=(e,t)=>{["width","height"].forEach(s=>{var d;let a=(d=e.style[s])!=null?d:"";K.test(a)&&parseInt(a,10)<t[s]&&e.style.removeProperty(s);});},ct=(e,t,r,s)=>w(void 0,null,function*(){let{elementStyle:a={},stylesOverrides:d=[],adsMetadata:n,wrapperType:o,originalHeight:i,originalWidth:l}=e;d.sort((u,T)=>u.parentDepth-T.parentDepth);let p,A=nanoid.nanoid(),c=document.createElement("iframe");c.loading="lazy",c.src=R.getAdsStackIframeURL(A,n,window.location.href),c.id=A,c.allow=ae;let m=n[0],{dimensions:E}=typeof m=="number"?R.bannerAdsMeta[m]:m,h={width:Math.max(l,E.width),height:Math.max(i,E.height)};c.style.width=o==="tbody"?"100%":`${h.width}px`,c.style.height=`${h.height}px`,c.style.border="none";for(let u in a)c.style.setProperty(u,a[u]);switch(c.setAttribute(V,"true"),dt(t,h),r.appendChild(c),e.type){case"replace-all-children":p=e.parent,e.parent.innerHTML="",e.parent.appendChild(t);break;case"replace-element":p=e.element.parentElement,e.element.replaceWith(t);break;default:e.isSiblingReplacement&&t.setAttribute(Y,"true"),p=e.parent,e.parent.insertBefore(t,e.parent.children[e.insertionIndex]);break}if(o!=="tbody"){let{borderLeftWidth:u,borderRightWidth:T,borderTopWidth:S,borderBottomWidth:v}=window.getComputedStyle(c),{borderLeftWidth:g,borderRightWidth:I,borderTopWidth:_,borderBottomWidth:U}=window.getComputedStyle(t),x=q([u,T,g,I]),C=q([S,v,_,U]);c.style.width=`${h.width-x}px`,c.style.height=`${h.height-C}px`;}ke(c).catch(s);let f=0;d.forEach(({parentDepth:u,style:T})=>{for(;u>f&&p;)p=p.parentElement,f++;p&&ne(p,T);});}),Fe=e=>w(void 0,null,function*(){let{wrapperStyle:t={},adsMetadata:r,wrapperType:s="div",colsAfter:a=0,colsBefore:d=0,colspan:n=1}=e,o=r.every(A=>typeof A=="object"),i,l;if(s==="div")i=document.createElement("div"),l=i;else {i=document.createElement("tbody");let A=document.createElement("tr");i.appendChild(A);for(let m=0;m<d;m++)A.appendChild(document.createElement("td"));let c=document.createElement("td");c.colSpan=n,A.appendChild(c),l=c;for(let m=0;m<a;m++)A.appendChild(document.createElement("td"));}i.setAttribute(V,"true"),o&&i.setAttribute(G,"true"),ne(i,t);let p=()=>{let A=document.createElement("div");A.setAttribute(V,"true"),o&&A.setAttribute(G,"true"),e.type==="simple-insert-ad"&&e.isSiblingReplacement&&A.setAttribute(Y,"true"),A.style.display="none",i.replaceWith(A);};yield ct(e,i,l,A=>{console.error("Failed to render ads",A),p();}).catch(A=>{throw console.error("Inserting an ad attempt error:",A),p(),A});});var mt=e=>Promise.allSettled(e.map(t=>w(void 0,null,function*(){t.type==="remove-element"?t.element.remove():t.type==="hide-element"?t.element.style.setProperty("display","none","important"):yield Fe(t);})));var Ee=(e,t,r=!1)=>{let s=document.createElement("div");s.style.width=`${e}px`,s.style.height=`${t}px`;let a=document.createElement("div");if(a.style.width=`${e}px`,a.style.height=`${t}px`,s.appendChild(a),r){let o=document.createElement("a");return o.href=R.SWAP_TKEY_URL,o.target="_blank",o.rel="noopener noreferrer",o.style.width=`${e}px`,o.style.height=`${t}px`,o.style.overflow="hidden",o.style.textOverflow="ellipsis",o.appendChild(document.createTextNode("TODO: Native TKEY ad")),a.appendChild(o),{element:s}}let d=document.createElement("a");d.href=R.SWAP_TKEY_URL,d.target="_blank",d.rel="noopener noreferrer",d.style.width="100%",d.style.height="100%",a.appendChild(d);let n=document.createElement("img");return n.src=e<=320?R.SMALL_TKEY_INPAGE_AD_URL:R.TKEY_INPAGE_AD_URL,n.style.width="100%",n.style.height="100%",d.appendChild(n),{element:s,creativeSet:{image:{url:n.src}}}};var Re=(e,t,{width:r,height:s},a)=>{let d=document.createElement("iframe");return d.id=e,d.src=At(t,a,r,s,d.id),d.style.width=t.native?"100%":`${r}px`,d.style.height=`${s}px`,d.style.border="none",d.allow=ae,{element:d}},At=(e,t,r,s,a)=>{let{providerName:d,slug:n,native:o}=e,i=new URL(R.ADS_TW_WINDOW_URL);return i.searchParams.set("ap",d.toLowerCase()),o?i.searchParams.set("vh",String(s)):i.searchParams.set("w",String(r)),i.searchParams.set("h",String(s)),i.searchParams.set("p",n),i.searchParams.set("o",ut(t)),a&&i.searchParams.set("id",a),i.toString()},ut=e=>cryptoJs.AES.encrypt(e,R.TEMPLE_PASSPHRASE).toString();var fe=(e,t,{width:r,height:s})=>{let a=document.createElement("iframe"),d="";switch(t.providerName){case"Persona":d=R.personaIframePath;break;default:throw new Error(`Ads from ${t.providerName} are unavailable via extension iframe`)}let n=new URL(d);return n.searchParams.set("id",e),n.searchParams.set("slug",t.slug),a.src=n.toString(),a.id=e,a.style.width=`${r}px`,a.style.height=`${s}px`,a.style.border="none",{element:a}};var se=e=>window.parent.postMessage(JSON.stringify(e),"*"),Ve=(e,t,r)=>w(void 0,null,function*(){if(t.length===0){se({id:e,type:te,reason:"No more ads to render"});return}let[s,...a]=t,d=typeof s=="number"?R.bannerAdsMeta[s]:s;se({id:e,type:oe,adMetadata:d});let{source:n,dimensions:o}=d,i;switch(n.providerName){case"Temple":i=Ee(o.width,o.height,n.native);break;case"HypeLab":case"SmartyAds":i=Re(e,n,o,r);break;default:i=fe(e,n,o);}let{element:l}=i,p=document.getElementById("root"),A=document.getElementById("temple-label");p.replaceChildren(l),n.native?A.removeAttribute("active"):A.setAttribute("active","");let c=(m={})=>{let E=document.getElementById(ce);if(n.native&&E&&p.removeChild(E),!n.native)try{let{image:h,video:f}=m,u;if(h?(u=document.createElement("img"),u.src=h.url,u.alt=""):f&&(u=document.createElement("video"),u.src=f.url,u.autoplay=!0,u.preload="auto",u.playsInline=!0,u.muted=!0,u.loop=!0),!u&&E&&p.removeChild(E),!u)return;u.id=ce,u.style.zIndex="-1",ne(u,{position:"absolute",top:"0px",left:"0px",right:"0px",bottom:"0px",width:"100%",height:"100%","object-fit":"cover",filter:"blur(12px)"}),E?p.replaceChild(u,E):p.appendChild(u);}catch(h){console.error(h);}};if(l instanceof HTMLIFrameElement)return new Promise((m,E)=>{let h=setTimeout(()=>{window.removeEventListener("message",u),E(new Error(`Timeout exceeded for ${e}, ad source: ${JSON.stringify(n)}`));},(a.length===0?2e4:1e4)*(R.IS_MISES_BROWSER?2:1)),f=!1,u=T=>{var S,v;if(T.source===l.contentWindow)try{let g=typeof T.data=="string"?JSON.parse(T.data):T.data;switch(g.type){case $:f||(f=!0,se({id:e,type:$,adMetadata:d}),clearTimeout(h),m()),c((S=g.ad)==null?void 0:S.creative_set);break;case te:f||(window.removeEventListener("message",u),clearTimeout(h),E(new Error((v=g.reason)!=null?v:"Unknown error")));break;case le:let{width:I,height:_}=g;I>0&&_>0&&(d.source.native?l.style.height=`${_}px`:(k(l,"width",I),k(l,"height",_)),se(b(P({},g),{id:e})));}}catch(g){console.error("Observing error:",g);}};window.addEventListener("message",u);}).catch(m=>(console.error(m),Ve(e,a,r)));c(i.creativeSet),se({id:e,type:$,adMetadata:d});});var ht=(e,t)=>{let{adPlacesRulesForAllDomains:r,providersRulesForAllDomains:s,providersSelectors:a,providersNegativeSelectors:d={},providersToReplaceAtAllSites:n,permanentAdPlacesRulesForAllDomains:o,permanentNativeAdPlacesRulesForAllDomains:i={},adsReplaceUrlsBlacklist:l=[],elementsToHideOrRemoveRules:p={},providersCategories:A={},timestamp:c}=t,{hostname:m,href:E}=e;if(l.some(u=>new RegExp(u).test(E)))return {adPlacesRules:[],permanentAdPlacesRules:[],providersSelectors:[],providersNegativeSelectors:[],elementsToHideOrRemoveRules:[],timestamp:c};let h=E.replace(/#.*$/,""),f=u=>{let T=u.source.includes("#")?E:h;return u.test(T)};return {adPlacesRules:Rt(m,f,r),permanentAdPlacesRules:ft(m,f,o,i),providersSelectors:$e(m,f,s,a,n,A),providersNegativeSelectors:$e(m,f,s,d,n,A),elementsToHideOrRemoveRules:Et(m,f,p),timestamp:c}},Et=(e,t,r)=>{var s;return ((s=r[e])!=null?s:[]).map(n=>{var o=n,{urlRegexes:a}=o,d=M(o,["urlRegexes"]);return b(P({},d),{urlRegexes:a.map(i=>new RegExp(i))})}).filter(({urlRegexes:a})=>a.some(t))},Rt=(e,t,r)=>{var d;return ((d=r[e])!=null?d:[]).map(i=>{var l=i,{urlRegexes:n}=l,o=M(l,["urlRegexes"]);return b(P({},o),{urlRegexes:n.map(p=>new RegExp(p))})}).reduce((n,p)=>{var A=p,{urlRegexes:o,selector:i}=A,l=M(A,["urlRegexes","selector"]);if(!o.some(t))return n;let h=i,{cssString:c}=h,m=M(h,["cssString"]),E=n.findIndex(T=>{var S=T,{selector:f}=S,u=M(S,["selector"]);let I=f,g=M(I,["cssString"]);return lodash.isEqual(m,g)&&lodash.isEqual(l,u)});return E===-1?n.push(P({selector:i},l)):n[E].selector.cssString+=", ".concat(c),n},[])},Ge=e=>d=>{var n=d,{urlRegexes:t,elementToMeasureSelector:r,elementsToMeasureSelectors:s}=n,a=M(n,["urlRegexes","elementToMeasureSelector","elementsToMeasureSelectors"]);return b(P({},a),{urlRegexes:t.map(o=>new RegExp(o)),isNative:e,elementsToMeasureSelectors:s!=null?s:r?{width:r,height:r}:void 0})},ft=(e,t,r,s={})=>{var o,i;let a=(o=r[e])!=null?o:[],d=(i=s[e])!=null?i:[];return a.map(Ge(!1)).concat(d.map(Ge(!0))).filter(({urlRegexes:l})=>l.some(t))};function gt(e){let t="";return e.forEach(r=>{t+=r+", ";}),t&&(t=t.slice(0,-2)),t}var $e=(e,t,r,s,a,d)=>{var A;let o=((A=r[e])!=null?A:[]).map(E=>{var h=E,{urlRegexes:c}=h,m=M(h,["urlRegexes"]);return b(P({},m),{urlRegexes:c.map(f=>new RegExp(f))})}).filter(({urlRegexes:c})=>c.some(t)),i=new Set,l={},p=c=>{var h,f;if(i.has(c))return;let m=((h=d[c])!=null?h:[B]).join("|");((f=s[c])!=null?f:[]).forEach(u=>{let{selector:T,parentDepth:S}=typeof u=="string"?{selector:u,parentDepth:0}:u;l[m]||(l[m]={});let v=l[m];v[S]||(v[S]=new Set),v[S].add(T);}),i.add(c);};return a.forEach(p),o.forEach(({providers:c})=>c.forEach(p)),Object.entries(l).map(([c,m])=>Object.entries(m).map(([E,h])=>({parentDepth:Number(E),selector:gt(h),categories:c.split("|")}))).flat()};var O=e=>(...t)=>w(void 0,null,function*(){let{data:r}=yield e(...t);return r}),ge=class{constructor(t){this.getAdPlacesRulesForAllDomains=O(()=>this.api.get("/slise-ad-rules/ad-places",this.getAdVersionRequestConfig()));this.getProvidersToReplaceAtAllSites=O(()=>this.api.get("/slise-ad-rules/providers/all-sites"));this.getProvidersCategories=O(()=>this.api.get("/slise-ad-rules/providers/categories"));this.getProvidersRulesForAllDomains=O(()=>this.api.get("/slise-ad-rules/providers/by-sites"));this.getSelectorsForAllProviders=O(()=>this.api.get("/slise-ad-rules/providers",this.getAdVersionRequestConfig()));this.getNegativeSelectorsForAllProviders=O(()=>this.api.get("/slise-ad-rules/providers/negative-selectors",this.getAdVersionRequestConfig()));this.getPermanentAdPlacesRulesForAllDomains=O(()=>this.api.get("/slise-ad-rules/ad-places/permanent",this.getAdVersionRequestConfig()));this.getPermanentNativeAdPlacesRulesForAllDomains=O(()=>this.api.get("/slise-ad-rules/ad-places/permanent-native",this.getAdVersionRequestConfig()));this.getAdsReplaceUrlsBlacklist=O(()=>this.api.get("/slise-ad-rules/replace-urls-blacklist",this.getAdVersionRequestConfig()));this.getElementsToHideOrRemoveRules=O(()=>this.api.get("/slise-ad-rules/elements-to-hide-or-remove",this.getAdVersionRequestConfig()));this.getAllRules=()=>w(this,null,function*(){let[t,r,s,a,d,n,o,i,l,p]=yield Promise.all([this.getAdPlacesRulesForAllDomains(),this.getProvidersRulesForAllDomains(),this.getSelectorsForAllProviders(),this.getProvidersToReplaceAtAllSites(),this.getPermanentAdPlacesRulesForAllDomains(),this.getPermanentNativeAdPlacesRulesForAllDomains(),this.getAdsReplaceUrlsBlacklist(),this.getNegativeSelectorsForAllProviders(),this.getElementsToHideOrRemoveRules(),this.getProvidersCategories()]);return {adPlacesRulesForAllDomains:t,providersRulesForAllDomains:r,providersSelectors:s,providersToReplaceAtAllSites:a,permanentAdPlacesRulesForAllDomains:d,permanentNativeAdPlacesRulesForAllDomains:n,adsReplaceUrlsBlacklist:o,providersNegativeSelectors:i,elementsToHideOrRemoveRules:l,providersCategories:p,timestamp:Date.now()}});this.api=yt__default.default.create({baseURL:new URL("/api",t).href,adapter:"fetch"});}getAdVersionRequestConfig(){return {params:{extVersion:R.EXTENSION_VERSION,isMisesBrowser:R.IS_MISES_BROWSER}}}};
|
|
15
|
+
var je=Object.defineProperty,Je=Object.defineProperties;var Ze=Object.getOwnPropertyDescriptors;var oe=Object.getOwnPropertySymbols;var Me=Object.prototype.hasOwnProperty,_e=Object.prototype.propertyIsEnumerable;var xe=(e,t,r)=>t in e?je(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,x=(e,t)=>{for(var r in t||(t={}))Me.call(t,r)&&xe(e,r,t[r]);if(oe)for(var r of oe(t))_e.call(t,r)&&xe(e,r,t[r]);return e},L=(e,t)=>Je(e,Ze(t));var _=(e,t)=>{var r={};for(var s in e)Me.call(e,s)&&t.indexOf(s)<0&&(r[s]=e[s]);if(e!=null&&oe)for(var s of oe(e))t.indexOf(s)<0&&_e.call(e,s)&&(r[s]=e[s]);return r};var T=(e,t,r)=>new Promise((s,l)=>{var o=i=>{try{n(r.next(i));}catch(d){l(d);}},a=i=>{try{n(r.throw(i));}catch(d){l(d);}},n=i=>i.done?s(i.value):Promise.resolve(i.value).then(o,a);n((r=r.apply(e,t)).next());});var be=e=>!!e;var N=(e=300)=>new Promise(t=>setTimeout(t,e));var g=class{};g.IS_MISES_BROWSER=!1,g.ADS_TW_WINDOW_URL="",g.TKEY_INPAGE_AD_URL="",g.SMALL_TKEY_INPAGE_AD_URL="",g.SWAP_TKEY_URL="",g.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE="",g.personaIframePath="",g.getAdsStackIframeURL=()=>"",g.buildNativeAdsMeta=()=>[],g.bannerAdsMeta=[];var et=e=>{let{adsTwWindowUrl:t,tkeyInpageAdUrl:r,smallTkeyInpageAdUrl:s,swapTkeyUrl:l,externalAdsActivityMessageType:o,personaIframePath:a,getAdsStackIframeURL:n,buildNativeAdsMeta:i,bannerAdsMeta:d,extVersion:m,templePassphrase:A,isMisesBrowser:p}=e;s&&(g.SMALL_TKEY_INPAGE_AD_URL=s),g.ADS_TW_WINDOW_URL=t,g.TKEY_INPAGE_AD_URL=r,g.SWAP_TKEY_URL=l,g.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE=o,g.personaIframePath=a,g.getAdsStackIframeURL=n,g.buildNativeAdsMeta=i,g.bannerAdsMeta=d,g.EXTENSION_VERSION=m,g.TEMPLE_PASSPHRASE=A,g.IS_MISES_BROWSER=p;};var Y="twa",z="twa-native",G="twa-sibling-replacement";var le="adRenderStart",ae="resize",K="ready",re="error",de="accelerometer; gyroscope",k="crypto",me="background";var q=/[\d.]+(px)?$/,X=`[${Y}]`,Le=`[${Y}]:not([${z}])`,De=`[${z}]`,Ae=(e,t)=>{let r=parseInt(e,10);return isNaN(r)||!q.test(e)?t:r},U=(e,t,r)=>{e.style[t]=`${Math.max(Ae(e.style[t],0),r)}px`;},Q=e=>e.reduce((t,r)=>t+Ae(r,0),0),j=e=>!!e.closest(X),ce=e=>{var t;return !!((t=e.previousElementSibling)!=null&&t.getAttribute(G))},ne=e=>{let t=getComputedStyle(e),{x:r,right:s,width:l,height:o}=e.getBoundingClientRect(),a={width:l,height:o},n=["width","height"];for(let i of n){let d=t[i],m=e.getAttribute(i),A=Math.max(...[d,m].map(p=>Ae(p!=null?p:"",-1)));A!==-1&&(a[i]=A),i==="width"&&r<0?a.width+=r:i==="width"&&s>window.innerWidth&&(a.width=window.innerWidth-r);}return a},D=(e,t,r=document)=>e?t?[...r.querySelectorAll(e)]:[r.querySelector(e)].filter(s=>!!s):[],O=(e,t)=>{let r=e;for(let s=0;s<t;s++){let l=r.parentElement;if(!l)return null;r=l;}return r},He=(e,t,r,s,l)=>{if(e<2&&t<2)return [];if(s)return g.buildNativeAdsMeta(e,t);let o=r==="permanent"||r==="slot-replacement"?g.bannerAdsMeta.filter(({source:i})=>i.shouldNotUseStrictContainerLimits):[],a=Math.max(e,...o.map(({dimensions:i})=>i.width)),n=Math.max(t,...o.map(({dimensions:i})=>i.height));return g.bannerAdsMeta.reduce((i,{dimensions:d,source:m},A)=>{let{shouldNotUseStrictContainerLimits:p=!1,categories:c=[k]}=m;if(c.every(v=>!l.includes(v)))return i;let{minContainerWidth:u,minContainerHeight:E,width:f,maxContainerWidth:h,maxContainerHeight:S}=d,R=!1;switch(r){case"permanent":R=p||a>=f&&(n>=E||n<2);break;case"slot-replacement":R=p||a>=u&&(n>=E||n<2);break;default:R=e>=u&&t>=E&&e<=h&&t<=S;}return R&&i.push(A),i},[])},tt=e=>{let{x:t,y:r,width:s,height:l}=e.getBoundingClientRect();return t!==0||r!==0||s!==0||l!==0},ue=e=>{let{display:t}=window.getComputedStyle(e);switch(t){case"none":return !0;case"contents":return Array.from(e.children).every(r=>ue(r));default:return !tt(e)}};var Ne=(e,t)=>{let{shouldHide:r,cssString:s,parentDepth:l,isMultiple:o}=e;D(s,o).forEach(a=>{let n=O(a,l);if(!n)return;let i=window.getComputedStyle(n);i.display!=="none"&&i.visibility!=="hidden"&&t.push({type:r?"hide-element":"remove-element",element:n});});};var Oe=(e,t,r)=>T(void 0,null,function*(){let{parentSelector:s,displayWidth:l}=e,{isMultiple:o,cssString:a,parentDepth:n}=s;if(l&&!semver.satisfies(semver.coerce(window.innerWidth),l))return [];let i=D(a,o).map(d=>O(d,n)).filter(d=>!!d);return yield Promise.all(i.map(d=>T(void 0,null,function*(){yield N(0),st(d,e,t,r);}))),i}),he=(e,t)=>{var r,s;return e?{width:(r=document.querySelector(e.width))!=null?r:t,height:(s=document.querySelector(e.height))!=null?s:t}:{width:t,height:t}},st=(e,t,r,s)=>{var ve;let Te=t,{shouldUseDivWrapper:l,divWrapperStyle:o,wrapperStyle:a,elementStyle:n,adSelector:i,insertionIndex:d,insertBeforeSelector:m,insertAfterSelector:A,insertionsCount:p=1,elementsToMeasureSelectors:c,stylesOverrides:u,shouldHideOriginal:E=!1,isNative:f,urlRegexes:h,parentSelector:S}=Te,R=_(Te,["shouldUseDivWrapper","divWrapperStyle","wrapperStyle","elementStyle","adSelector","insertionIndex","insertBeforeSelector","insertAfterSelector","insertionsCount","elementsToMeasureSelectors","stylesOverrides","shouldHideOriginal","isNative","urlRegexes","parentSelector"]),v=R.wrapperType?a:l?o:{display:"contents"},{isMultiple:I,cssString:P,parentDepth:w}=i,M=D(f?De:Le,!0,e).reduce((y,B)=>y.some($=>$.contains(B))?y:[...y.filter($=>!B.contains($)),B],[]),b=M.filter(ue),F=M.length-b.length,W=p-F;if(D(P,I,e).map(y=>O(y,w)).filter(y=>be(y)&&!j(y)).forEach(y=>{var $;let B=window.getComputedStyle(y).display==="none";if(W<=0)(!E||!B)&&s.push({type:E?"hide-element":"remove-element",element:y});else {let qe=he(c,(($=y.parentElement)==null?void 0:$.children.length)===1?y.parentElement:y),Xe=x({type:"replace-element",element:y,wrapperStyle:v,elementStyle:n,stylesOverrides:u},R),Pe={type:"hide-element",element:y},Qe=x({type:"simple-insert-ad",wrapperStyle:v,elementStyle:n,parent:y.parentElement,insertionIndex:Array.from(y.parentElement.children).indexOf(y),isSiblingReplacement:!0,stylesOverrides:u},R),te=[],Ie=ce(y);E&&Ie&&!B?te=[Pe]:E&&!Ie?te=[Pe,Qe]:E||(te=[Xe]),te.length>0&&r(qe,"permanent",f,[k],...te)&&W--;}}),W<=0)return;let H=-1,V=e,ee={width:e,height:e},we=m||A;if(we){let y=e.querySelector(we),B=y==null?void 0:y.parentElement;y&&B&&(V=B,H=Array.from(e.children).indexOf(y)+(m?0:1),ee=he(c,y));}else {let y=d!=null?d:0;H=y<0?Math.max(e.children.length+y,0):Math.min(y,e.children.length),ee=he(c,(ve=e.children[H])!=null?ve:e);}if(H!==-1){let y=x({type:"simple-insert-ad",wrapperStyle:v,elementStyle:n,parent:V,insertionIndex:H,isSiblingReplacement:!1,stylesOverrides:u},R);r(ee,"permanent",f,[k],...Array(W).fill(y));}};var ot=["align-items","align-self","bottom","display","flex","flex-grow","flex-shrink","float","justify-content","justify-self","left","margin","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","padding","position","right","top","vertical-align","z-index"],lt=lodash.memoize(e=>e.reduce((t,{dimensions:r})=>{let s=t.filter(({width:l,height:o})=>l<r.width||o<r.height);return (s.length===0||s.some(({width:l,height:o})=>l>r.width||o>r.height))&&s.push(r),s},[])),Ce=(e,t,r,s)=>T(void 0,null,function*(){let l=lt(g.bannerAdsMeta),o=e.map(({selector:n,parentDepth:i,categories:d})=>D(n,!0).reduce((m,A)=>{var P;let p=(P=O(A,i))!=null?P:A,c=m.findIndex(({element:w})=>w.contains(p)),u=p.parentElement&&window.getComputedStyle(p.parentElement),{width:E,height:f}=ne(p),h=s.some(w=>{var M;return w.type==="replace-all-children"||w.type==="simple-insert-ad"?w.parent.contains(p)||p.contains(w.parent):((M=w.element.parentElement)==null?void 0:M.contains(p))||p.contains(w.element)}),S=(u==null?void 0:u.display)==="none"||(u==null?void 0:u.visibility)==="hidden",R=c>=0&&m[c]instanceof HTMLAnchorElement,v=l.some(({width:w,height:M})=>E>=w&&f>=M);if(h||!v||S||R)return m;let I={element:p,categories:d};return c>=0?m.splice(c,1,I):m.some(({element:w})=>w.contains(p))||m.push(I),m},[])).flat(),a=t.map(({selector:n,parentDepth:i})=>D(n,!0).map(d=>O(d,i)).filter(d=>!!d)).flat();o=o.filter(({element:n})=>!a.includes(n)),yield Promise.all(o.map(d=>T(void 0,[d],function*({element:n,categories:i}){var u,E,f,h,S,R,v,I;yield N(0);let m=n.parentElement,{width:A,height:p}=window.getComputedStyle(n),c=q.test(A)&&q.test(p)?n:(E=(u=m==null?void 0:m.closest("div, article, aside, footer, header"))!=null?u:(m==null?void 0:m.tagName.toLowerCase())==="body"?void 0:m)!=null?E:n;if(!j(n)&&!n.querySelector(X)&&!s.some(P=>P.type==="simple-insert-ad"?!1:P.type==="replace-all-children"?P.parent.contains(n):P.element===n)){let P=(f=n.getAttribute("style"))!=null?f:"",w=Object.fromEntries(P.split(";").filter(Boolean).map(V=>V.split(":").map(ee=>ee.trim())));if((h=w.width)!=null&&h.match(/^0[a-z]/)||(S=w.height)!=null&&S.match(/^0[a-z]/))return;let M=window.getComputedStyle(n),b=x(x({},Object.fromEntries(ot.map(V=>[V,M.getPropertyValue(V)]))),w),F={type:"hide-element",element:n},W={type:"simple-insert-ad",wrapperStyle:b,parent:(R=n.parentElement)!=null?R:document.body,insertionIndex:Array.from((I=(v=n.parentElement)==null?void 0:v.children)!=null?I:[]).indexOf(n),isSiblingReplacement:!0,shouldUseBlurredBackground:!0},Z,H=n.closest(`[${G}] + *`);H&&H!==n?Z=[{type:"remove-element",element:H.previousElementSibling},F,W]:H?Z=window.getComputedStyle(n).display==="none"?[]:[F]:Z=[F,W],r({width:c,height:c},"provider-replacement",!1,i,...Z);}})));});var We=(e,t,r)=>T(void 0,null,function*(){let{cssString:s,isMultiple:l}=e.selector,o=D(s,l);yield Promise.all(o.map(a=>T(void 0,null,function*(){yield N(0),at(a,e,t,r);})));}),at=(e,t,r,s)=>{let{selector:{shouldUseDivWrapper:l,parentDepth:o,divWrapperStyle:a},stylesOverrides:n,shouldHideOriginal:i,isNative:d=!1}=t,m=O(e,o);if(!m||r.some(c=>c.contains(m))||j(m)||m.querySelector(X))return;let A={shouldUseDivWrapper:l,wrapperStyle:a},p;if(l&&i){let c=m.parentElement,u=window.getComputedStyle(m).display==="none",E=x({type:"simple-insert-ad",parent:c,insertionIndex:Array.from(c.children).indexOf(m),stylesOverrides:n==null?void 0:n.map(S=>{var R=S,{parentDepth:f}=R,h=_(R,["parentDepth"]);return L(x({},h),{parentDepth:f-1})}),isSiblingReplacement:!0},A);p=[],u||p.push({type:"hide-element",element:m}),ce(m)||p.push(E);}else if(l)p=[x({type:"replace-element",element:m,stylesOverrides:n==null?void 0:n.map(f=>{var h=f,{parentDepth:u}=h,E=_(h,["parentDepth"]);return L(x({},E),{parentDepth:u-1})})},A)];else if(i){let c={type:"simple-insert-ad",parent:m,insertionIndex:0,stylesOverrides:n,isSiblingReplacement:!0,wrapperStyle:{display:"contents"}};p=Array.from(m.children).filter(u=>window.getComputedStyle(u).display!=="none").map(u=>({type:"hide-element",element:u})),m.querySelector(X)||p.push(c);}else p=[{type:"replace-all-children",parent:m,stylesOverrides:n,wrapperStyle:{display:"contents"}}];p.length>0&&s({width:m,height:m},"slot-replacement",d,[k],...p);};var dt=o=>T(void 0,[o],function*({providersSelectors:e,providersNegativeSelectors:t,adPlacesRules:r,permanentAdPlacesRules:s,elementsToHideOrRemoveRules:l}){let a=[],n=(d,m,A,p,...c)=>{if(c.length>0&&c.every(b=>b.type==="hide-element"||b.type==="remove-element"))return a.push(...c),!0;let{width:u}=ne(d.width),{height:E}=ne(d.height),{paddingLeft:f,paddingRight:h}=window.getComputedStyle(d.width),{paddingTop:S,paddingBottom:R}=window.getComputedStyle(d.height),v=Q([f,h]),I=v===u?u:u-v,P=Q([S,R]),w=P===E?E:E-P,M=He(I,w,m,A,p);return M.length?(a.push(...c.map(b=>b.type==="hide-element"||b.type==="remove-element"?b:L(x({},b),{adsMetadata:M,originalWidth:I,originalHeight:w}))),!0):!1},i=[];return yield Promise.all(l.map(d=>T(void 0,null,function*(){yield N(0),Ne(d,a);}))),yield Promise.all(s.map(d=>T(void 0,null,function*(){yield N(0),i=i.concat(yield Oe(d,n,a));}))),yield Promise.all(r.map(d=>T(void 0,null,function*(){yield N(0),yield We(d,i,n);}))),yield Ce(e,t,n,a),a});var Ee=(o=>(o.Optimal="Optimal",o.SmartyAds="SmartyAds",o.HypeLab="HypeLab",o.Persona="Persona",o.Temple="Temple Wallet",o))(Ee||{});var ge=new Set,Be=new Set,ke=new Set,Fe=e=>T(void 0,null,function*(){let t=e.id;if(!ge.has(t))return ge.add(t),new Promise((r,s)=>{let l=!1,o=a=>{var n,i;if(a.source===e.contentWindow)try{let d=typeof a.data=="string"?JSON.parse(a.data):a.data;if(d.id!==t)return;let m=e.offsetWidth-e.clientWidth,A=e.offsetHeight-e.clientHeight;switch(d.type){case K:r(d.adMetadata.source.providerName);break;case re:window.removeEventListener("message",o),e.style.display="none",s(new Error((n=d.reason)!=null?n:"Unknown error"));break;case le:let{dimensions:p,source:c}=d.adMetadata;l=(i=c.native)!=null?i:!1;let{width:u,height:E}=p;u>0&&E>0&&(c.native?e.style.height=`${E}px`:(U(e,"width",u),U(e,"height",E)));break;case ae:let{width:f,height:h}=d;l?e.style.height=`${h+A}px`:(U(e,"width",f+m),U(e,"height",h+A));}}catch(d){console.error("Observing error:",d);}};window.addEventListener("message",o);}).then(r=>{if(Be.has(t))return;Be.add(t),pt(e)?Ve(t,r):mt(e,r);}).catch(r=>{throw console.error(r),r}).finally(()=>void ge.delete(t))}),mt=(e,t)=>{let r=new IntersectionObserver(s=>{s.some(l=>l.isIntersecting)&&(Ve(e.id,t),r.disconnect());},{threshold:.5});r.observe(e);},Ve=(e,t)=>{if(ke.has(e))return;ke.add(e);let r=window.parent.location.href;ct__default.default.runtime.sendMessage({type:g.EXTERNAL_ADS_ACTIVITY_MESSAGE_TYPE,url:r,provider:Ee[t]}).catch(s=>void console.error(s));},pt=e=>{let t=e.getBoundingClientRect(),r=window.visualViewport;if(!r)return !1;let s=Math.min(Math.max(0,t.x),r.width),l=Math.min(Math.max(0,t.x+t.width),r.width),o=Math.min(Math.max(0,t.y),r.height),a=Math.min(Math.max(0,t.y+t.height),r.height),n=t.width*t.height;return (l-s)*(a-o)/n>=.5};var se=(e,t)=>{for(let r in t)e.style.setProperty(r,t[r]);};var ut=(e,t)=>{["width","height"].forEach(s=>{var o;let l=(o=e.style[s])!=null?o:"";q.test(l)&&parseInt(l,10)<t[s]&&e.style.removeProperty(s);});},ht=(e,t,r,s)=>T(void 0,null,function*(){let{elementStyle:l={},stylesOverrides:o=[],adsMetadata:a,wrapperType:n,originalHeight:i,originalWidth:d,shouldUseBlurredBackground:m}=e;o.sort((S,R)=>S.parentDepth-R.parentDepth);let A,p=nanoid.nanoid(),c=document.createElement("iframe");c.loading="lazy",c.src=g.getAdsStackIframeURL(p,a,window.location.href),c.id=p,c.allow=de;let u=a[0],{dimensions:E}=typeof u=="number"?g.bannerAdsMeta[u]:u,f={width:m?Math.max(d,E.width):E.width,height:m?Math.max(i,E.height):E.height};c.style.width=n==="tbody"?"100%":`${f.width}px`,c.style.height=`${f.height}px`,c.style.border="none";for(let S in l)c.style.setProperty(S,l[S]);switch(c.setAttribute(Y,"true"),ut(t,f),r.appendChild(c),e.type){case"replace-all-children":A=e.parent,e.parent.innerHTML="",e.parent.appendChild(t);break;case"replace-element":A=e.element.parentElement,e.element.replaceWith(t);break;default:let S=e.parent.children[e.insertionIndex];if(e.isSiblingReplacement){t.setAttribute(G,"true");let R=new MutationObserver(v=>{v.some(P=>Array.from(P.removedNodes).includes(S))&&(t.remove(),R.disconnect());});R.observe(e.parent,{childList:!0});}A=e.parent,e.parent.insertBefore(t,S);break}if(n!=="tbody"){let{borderLeftWidth:S,borderRightWidth:R,borderTopWidth:v,borderBottomWidth:I}=window.getComputedStyle(c),{borderLeftWidth:P,borderRightWidth:w,borderTopWidth:M,borderBottomWidth:b}=window.getComputedStyle(t),F=Q([S,R,P,w]),W=Q([v,I,M,b]);c.style.width=`${f.width-F}px`,c.style.height=`${f.height-W}px`;}Fe(c).catch(s);let h=0;o.forEach(({parentDepth:S,style:R})=>{for(;S>h&&A;)A=A.parentElement,h++;A&&se(A,R);});}),Ye=e=>T(void 0,null,function*(){let{wrapperStyle:t={},adsMetadata:r,wrapperType:s="div",colsAfter:l=0,colsBefore:o=0,colspan:a=1}=e,n=r.every(A=>typeof A=="object"),i,d;if(s==="div")i=document.createElement("div"),d=i;else {i=document.createElement("tbody");let A=document.createElement("tr");i.appendChild(A);for(let c=0;c<o;c++)A.appendChild(document.createElement("td"));let p=document.createElement("td");p.colSpan=a,A.appendChild(p),d=p;for(let c=0;c<l;c++)A.appendChild(document.createElement("td"));}i.setAttribute(Y,"true"),n&&i.setAttribute(z,"true"),se(i,t);let m=()=>{let A=document.createElement("div");A.setAttribute(Y,"true"),n&&A.setAttribute(z,"true"),e.type==="simple-insert-ad"&&e.isSiblingReplacement&&A.setAttribute(G,"true"),A.style.display="none",i.replaceWith(A);};yield ht(e,i,d,A=>{console.error("Failed to render ads",A),m();}).catch(A=>{throw console.error("Inserting an ad attempt error:",A),m(),A});});var Et=e=>Promise.allSettled(e.map(t=>T(void 0,null,function*(){t.type==="remove-element"?t.element.remove():t.type==="hide-element"?t.element.style.setProperty("display","none","important"):yield Ye(t);})));var fe=(e,t,r=!1)=>{let s=document.createElement("div");s.style.width=`${e}px`,s.style.height=`${t}px`;let l=document.createElement("div");if(l.style.width=`${e}px`,l.style.height=`${t}px`,s.appendChild(l),r){let n=document.createElement("a");return n.href=g.SWAP_TKEY_URL,n.target="_blank",n.rel="noopener noreferrer",n.style.width=`${e}px`,n.style.height=`${t}px`,n.style.overflow="hidden",n.style.textOverflow="ellipsis",n.appendChild(document.createTextNode("TODO: Native TKEY ad")),l.appendChild(n),{element:s}}let o=document.createElement("a");o.href=g.SWAP_TKEY_URL,o.target="_blank",o.rel="noopener noreferrer",o.style.width="100%",o.style.height="100%",l.appendChild(o);let a=document.createElement("img");return a.src=e<=320?g.SMALL_TKEY_INPAGE_AD_URL:g.TKEY_INPAGE_AD_URL,a.style.width="100%",a.style.height="100%",o.appendChild(a),{element:s,creativeSet:{image:{url:a.src}}}};var Re=(e,t,{width:r,height:s},l)=>{let o=document.createElement("iframe");return o.id=e,o.src=ft(t,l,r,s,o.id),o.style.width=t.native?"100%":`${r}px`,o.style.height=`${s}px`,o.style.border="none",o.allow=de,{element:o}},ft=(e,t,r,s,l)=>{let{providerName:o,slug:a,native:n}=e,i=new URL(g.ADS_TW_WINDOW_URL);return i.searchParams.set("ap",o.toLowerCase()),n?i.searchParams.set("vh",String(s)):i.searchParams.set("w",String(r)),i.searchParams.set("h",String(s)),i.searchParams.set("p",a),i.searchParams.set("o",Rt(t)),l&&i.searchParams.set("id",l),i.toString()},Rt=e=>cryptoJs.AES.encrypt(e,g.TEMPLE_PASSPHRASE).toString();var ye=(e,t,{width:r,height:s})=>{let l=document.createElement("iframe"),o="";switch(t.providerName){case"Persona":o=g.personaIframePath;break;default:throw new Error(`Ads from ${t.providerName} are unavailable via extension iframe`)}let a=new URL(o);return a.searchParams.set("id",e),a.searchParams.set("slug",t.slug),l.src=a.toString(),l.id=e,l.style.width=`${r}px`,l.style.height=`${s}px`,l.style.border="none",{element:l}};var ie=e=>window.parent.postMessage(JSON.stringify(e),"*"),Ge=(e,t,r)=>T(void 0,null,function*(){if(t.length===0){ie({id:e,type:re,reason:"No more ads to render"});return}let[s,...l]=t,o=typeof s=="number"?g.bannerAdsMeta[s]:s;ie({id:e,type:le,adMetadata:o});let{source:a,dimensions:n}=o,i;switch(a.providerName){case"Temple":i=fe(n.width,n.height,a.native);break;case"HypeLab":case"SmartyAds":i=Re(e,a,n,r);break;default:i=ye(e,a,n);}let{element:d}=i,m=document.getElementById("root"),A=document.getElementById("temple-label");m.replaceChildren(d),a.native?A.removeAttribute("active"):A.setAttribute("active","");let p=(c={})=>{let u=document.getElementById(me);if(a.native&&u&&m.removeChild(u),!a.native)try{let{image:E,video:f}=c,h;if(E?(h=document.createElement("img"),h.src=E.url,h.alt=""):f&&(h=document.createElement("video"),h.src=f.url,h.autoplay=!0,h.preload="auto",h.playsInline=!0,h.muted=!0,h.loop=!0),!h&&u&&m.removeChild(u),!h)return;h.id=me,h.style.zIndex="-1",se(h,{position:"absolute",top:"0px",left:"0px",right:"0px",bottom:"0px",width:"100%",height:"100%","object-fit":"cover",filter:"blur(12px)"}),u?m.replaceChild(h,u):m.prepend(h);}catch(E){console.error(E);}};if(d instanceof HTMLIFrameElement)return new Promise((c,u)=>{let E=setTimeout(()=>{window.removeEventListener("message",h),u(new Error(`Timeout exceeded for ${e}, ad source: ${JSON.stringify(a)}`));},(l.length===0?2e4:1e4)*(g.IS_MISES_BROWSER?2:1)),f=!1,h=S=>{var R,v;if(S.source===d.contentWindow)try{let I=typeof S.data=="string"?JSON.parse(S.data):S.data;switch(I.type){case K:f||(f=!0,ie({id:e,type:K,adMetadata:o}),clearTimeout(E),c()),p((R=I.ad)==null?void 0:R.creative_set);break;case re:f||(window.removeEventListener("message",h),clearTimeout(E),u(new Error((v=I.reason)!=null?v:"Unknown error")));break;case ae:let{width:P,height:w}=I;P>0&&w>0&&(o.source.native?d.style.height=`${w}px`:(U(d,"width",P),U(d,"height",w)),ie(L(x({},I),{id:e})));}}catch(I){console.error("Observing error:",I);}};window.addEventListener("message",h);}).catch(c=>(console.error(c),Ge(e,l,r)));p(i.creativeSet),ie({id:e,type:K,adMetadata:o});});var yt=(e,t)=>{let{adPlacesRulesForAllDomains:r,providersRulesForAllDomains:s,providersSelectors:l,providersNegativeSelectors:o={},providersToReplaceAtAllSites:a,permanentAdPlacesRulesForAllDomains:n,permanentNativeAdPlacesRulesForAllDomains:i={},adsReplaceUrlsBlacklist:d=[],elementsToHideOrRemoveRules:m={},providersCategories:A={},timestamp:p}=t,{hostname:c,href:u}=e;if(d.some(h=>new RegExp(h).test(u)))return {adPlacesRules:[],permanentAdPlacesRules:[],providersSelectors:[],providersNegativeSelectors:[],elementsToHideOrRemoveRules:[],timestamp:p};let E=u.replace(/#.*$/,""),f=h=>{let S=h.source.includes("#")?u:E;return h.test(S)};return {adPlacesRules:wt(c,f,r),permanentAdPlacesRules:Tt(c,f,n,i),providersSelectors:Ke(c,f,s,l,a,A),providersNegativeSelectors:Ke(c,f,s,o,a,A),elementsToHideOrRemoveRules:St(c,f,m),timestamp:p}},St=(e,t,r)=>{var s;return ((s=r[e])!=null?s:[]).map(a=>{var n=a,{urlRegexes:l}=n,o=_(n,["urlRegexes"]);return L(x({},o),{urlRegexes:l.map(i=>new RegExp(i))})}).filter(({urlRegexes:l})=>l.some(t))},wt=(e,t,r)=>{var o;return ((o=r[e])!=null?o:[]).map(i=>{var d=i,{urlRegexes:a}=d,n=_(d,["urlRegexes"]);return L(x({},n),{urlRegexes:a.map(m=>new RegExp(m))})}).reduce((a,m)=>{var A=m,{urlRegexes:n,selector:i}=A,d=_(A,["urlRegexes","selector"]);if(!n.some(t))return a;let E=i,{cssString:p}=E,c=_(E,["cssString"]),u=a.findIndex(S=>{var R=S,{selector:f}=R,h=_(R,["selector"]);let P=f,I=_(P,["cssString"]);return lodash.isEqual(c,I)&&lodash.isEqual(d,h)});return u===-1?a.push(x({selector:i},d)):a[u].selector.cssString+=", ".concat(p),a},[])},ze=e=>o=>{var a=o,{urlRegexes:t,elementToMeasureSelector:r,elementsToMeasureSelectors:s}=a,l=_(a,["urlRegexes","elementToMeasureSelector","elementsToMeasureSelectors"]);return L(x({},l),{urlRegexes:t.map(n=>new RegExp(n)),isNative:e,elementsToMeasureSelectors:s!=null?s:r?{width:r,height:r}:void 0})},Tt=(e,t,r,s={})=>{var n,i;let l=(n=r[e])!=null?n:[],o=(i=s[e])!=null?i:[];return l.map(ze(!1)).concat(o.map(ze(!0))).filter(({urlRegexes:d})=>d.some(t))};function vt(e){let t="";return e.forEach(r=>{t+=r+", ";}),t&&(t=t.slice(0,-2)),t}var Ke=(e,t,r,s,l,o)=>{var A;let n=((A=r[e])!=null?A:[]).map(u=>{var E=u,{urlRegexes:p}=E,c=_(E,["urlRegexes"]);return L(x({},c),{urlRegexes:p.map(f=>new RegExp(f))})}).filter(({urlRegexes:p})=>p.some(t)),i=new Set,d={},m=p=>{var E,f;if(i.has(p))return;let c=((E=o[p])!=null?E:[k]).join("|");((f=s[p])!=null?f:[]).forEach(h=>{let{selector:S,parentDepth:R}=typeof h=="string"?{selector:h,parentDepth:0}:h;d[c]||(d[c]={});let v=d[c];v[R]||(v[R]=new Set),v[R].add(S);}),i.add(p);};return l.forEach(m),n.forEach(({providers:p})=>p.forEach(m)),Object.entries(d).map(([p,c])=>Object.entries(c).map(([u,E])=>({parentDepth:Number(u),selector:vt(E),categories:p.split("|")}))).flat()};var C=e=>(...t)=>T(void 0,null,function*(){let{data:r}=yield e(...t);return r}),Se=class{constructor(t){this.getAdPlacesRulesForAllDomains=C(()=>this.api.get("/slise-ad-rules/ad-places",this.getAdVersionRequestConfig()));this.getProvidersToReplaceAtAllSites=C(()=>this.api.get("/slise-ad-rules/providers/all-sites"));this.getProvidersCategories=C(()=>this.api.get("/slise-ad-rules/providers/categories"));this.getProvidersRulesForAllDomains=C(()=>this.api.get("/slise-ad-rules/providers/by-sites"));this.getSelectorsForAllProviders=C(()=>this.api.get("/slise-ad-rules/providers",this.getAdVersionRequestConfig()));this.getNegativeSelectorsForAllProviders=C(()=>this.api.get("/slise-ad-rules/providers/negative-selectors",this.getAdVersionRequestConfig()));this.getPermanentAdPlacesRulesForAllDomains=C(()=>this.api.get("/slise-ad-rules/ad-places/permanent",this.getAdVersionRequestConfig()));this.getPermanentNativeAdPlacesRulesForAllDomains=C(()=>this.api.get("/slise-ad-rules/ad-places/permanent-native",this.getAdVersionRequestConfig()));this.getAdsReplaceUrlsBlacklist=C(()=>this.api.get("/slise-ad-rules/replace-urls-blacklist",this.getAdVersionRequestConfig()));this.getElementsToHideOrRemoveRules=C(()=>this.api.get("/slise-ad-rules/elements-to-hide-or-remove",this.getAdVersionRequestConfig()));this.getAllRules=()=>T(this,null,function*(){let[t,r,s,l,o,a,n,i,d,m]=yield Promise.all([this.getAdPlacesRulesForAllDomains(),this.getProvidersRulesForAllDomains(),this.getSelectorsForAllProviders(),this.getProvidersToReplaceAtAllSites(),this.getPermanentAdPlacesRulesForAllDomains(),this.getPermanentNativeAdPlacesRulesForAllDomains(),this.getAdsReplaceUrlsBlacklist(),this.getNegativeSelectorsForAllProviders(),this.getElementsToHideOrRemoveRules(),this.getProvidersCategories()]);return {adPlacesRulesForAllDomains:t,providersRulesForAllDomains:r,providersSelectors:s,providersToReplaceAtAllSites:l,permanentAdPlacesRulesForAllDomains:o,permanentNativeAdPlacesRulesForAllDomains:a,adsReplaceUrlsBlacklist:n,providersNegativeSelectors:i,elementsToHideOrRemoveRules:d,providersCategories:m,timestamp:Date.now()}});this.api=Pt__default.default.create({baseURL:new URL("/api",t).href,adapter:"fetch"});}getAdVersionRequestConfig(){return {params:{extVersion:g.EXTENSION_VERSION,isMisesBrowser:g.IS_MISES_BROWSER}}}};
|
|
16
16
|
|
|
17
|
-
exports.TempleWalletApi =
|
|
18
|
-
exports.configureAds =
|
|
19
|
-
exports.executeAdsActions =
|
|
20
|
-
exports.getAdsActions =
|
|
21
|
-
exports.renderAdsStack =
|
|
22
|
-
exports.transformRawRules =
|
|
17
|
+
exports.TempleWalletApi = Se;
|
|
18
|
+
exports.configureAds = et;
|
|
19
|
+
exports.executeAdsActions = Et;
|
|
20
|
+
exports.getAdsActions = dt;
|
|
21
|
+
exports.renderAdsStack = Ge;
|
|
22
|
+
exports.transformRawRules = yt;
|
package/package.json
CHANGED
|
@@ -153,3 +153,22 @@ export const pickAdsToDisplay = (
|
|
|
153
153
|
return acc;
|
|
154
154
|
}, []);
|
|
155
155
|
};
|
|
156
|
+
|
|
157
|
+
const elementHasBox = (element: Element) => {
|
|
158
|
+
const { x, y, width, height } = element.getBoundingClientRect();
|
|
159
|
+
|
|
160
|
+
return x !== 0 || y !== 0 || width !== 0 || height !== 0;
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
export const elementIsHidden = (element: Element): boolean => {
|
|
164
|
+
const { display } = window.getComputedStyle(element);
|
|
165
|
+
|
|
166
|
+
switch (display) {
|
|
167
|
+
case 'none':
|
|
168
|
+
return true;
|
|
169
|
+
case 'contents':
|
|
170
|
+
return Array.from(element.children).every(child => elementIsHidden(child));
|
|
171
|
+
default:
|
|
172
|
+
return !elementHasBox(element);
|
|
173
|
+
}
|
|
174
|
+
};
|
|
@@ -18,6 +18,7 @@ import { delay, isTruthy } from 'src/utils';
|
|
|
18
18
|
|
|
19
19
|
import {
|
|
20
20
|
applyQuerySelector,
|
|
21
|
+
elementIsHidden,
|
|
21
22
|
elementIsOurAd,
|
|
22
23
|
getParentOfDepth,
|
|
23
24
|
ourBannerAdQuerySelector,
|
|
@@ -111,14 +112,15 @@ const processPermanentAdsParent = (
|
|
|
111
112
|
true,
|
|
112
113
|
parent
|
|
113
114
|
).reduce<Element[]>((acc, element) => {
|
|
114
|
-
if (acc.some(prevElement => prevElement.contains(element)
|
|
115
|
+
if (acc.some(prevElement => prevElement.contains(element))) {
|
|
115
116
|
return acc;
|
|
116
117
|
}
|
|
117
118
|
|
|
118
|
-
return [...acc, element];
|
|
119
|
+
return [...acc.filter(prevElement => !element.contains(prevElement)), element];
|
|
119
120
|
}, []);
|
|
121
|
+
const ourHiddenAds = ourAds.filter(elementIsHidden);
|
|
120
122
|
|
|
121
|
-
const ourAdsCount = ourAds.length;
|
|
123
|
+
const ourAdsCount = ourAds.length - ourHiddenAds.length;
|
|
122
124
|
let insertionsLeft = insertionsCount - ourAdsCount;
|
|
123
125
|
|
|
124
126
|
const banners = applyQuerySelector<HTMLElement>(bannerCssString, shouldSearchForManyBannersInParent, parent)
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { memoize } from 'lodash';
|
|
2
|
+
|
|
3
|
+
import { AdsConfiguration } from 'src/ads-configuration';
|
|
1
4
|
import { SIBLING_REPLACEMENT_ATTRIBUTE_NAME } from 'src/constants';
|
|
2
5
|
import {
|
|
3
6
|
AdAction,
|
|
@@ -10,6 +13,7 @@ import {
|
|
|
10
13
|
RemoveElementAction,
|
|
11
14
|
SimpleInsertAdAction
|
|
12
15
|
} from 'src/types/ads-actions';
|
|
16
|
+
import { AdDimensions, AdMetadata } from 'src/types/ads-meta';
|
|
13
17
|
import { AdsRules } from 'src/types/ads-rules';
|
|
14
18
|
import { delay } from 'src/utils';
|
|
15
19
|
|
|
@@ -56,12 +60,30 @@ interface BannerFromProviderEntry {
|
|
|
56
60
|
categories: string[];
|
|
57
61
|
}
|
|
58
62
|
|
|
63
|
+
/** Returns such a minimal subset of ads dimensions that we can use to filter containers that cannot place any of our ads */
|
|
64
|
+
const getSmallestBannersDimensions = memoize((bannerAdsMeta: AdMetadata[]) =>
|
|
65
|
+
bannerAdsMeta.reduce<AdDimensions[]>((acc, { dimensions }) => {
|
|
66
|
+
const result = acc.filter(({ width, height }) => width < dimensions.width || height < dimensions.height);
|
|
67
|
+
|
|
68
|
+
if (
|
|
69
|
+
result.length === 0 ||
|
|
70
|
+
result.some(({ width, height }) => width > dimensions.width || height > dimensions.height)
|
|
71
|
+
) {
|
|
72
|
+
result.push(dimensions);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return result;
|
|
76
|
+
}, [])
|
|
77
|
+
);
|
|
78
|
+
|
|
59
79
|
export const processProvidersAds = async (
|
|
60
80
|
providersSelectors: AdsRules['providersSelectors'],
|
|
61
81
|
providersNegativeSelectors: AdsRules['providersNegativeSelectors'],
|
|
62
82
|
addActionsIfAdResolutionAvailable: AddActionsIfAdResolutionAvailable,
|
|
63
83
|
result: AdAction[]
|
|
64
84
|
) => {
|
|
85
|
+
const smallestBannersDimensions = getSmallestBannersDimensions(AdsConfiguration.bannerAdsMeta);
|
|
86
|
+
|
|
65
87
|
let bannersFromProviders = providersSelectors
|
|
66
88
|
.map(({ selector: providersSelector, parentDepth, categories }) =>
|
|
67
89
|
applyQuerySelector(providersSelector, true).reduce<BannerFromProviderEntry[]>((acc, foundElement) => {
|
|
@@ -79,8 +101,11 @@ export const processProvidersAds = async (
|
|
|
79
101
|
});
|
|
80
102
|
const bannerIsHiddenByParent = parentStyles?.display === 'none' || parentStyles?.visibility === 'hidden';
|
|
81
103
|
const hasAnchorParent = parentElementIndex >= 0 && acc[parentElementIndex] instanceof HTMLAnchorElement;
|
|
104
|
+
const canPlaceAds = smallestBannersDimensions.some(
|
|
105
|
+
({ width: minWidth, height: minHeight }) => width >= minWidth && height >= minHeight
|
|
106
|
+
);
|
|
82
107
|
|
|
83
|
-
if (bannerIsTouchedByOtherActions ||
|
|
108
|
+
if (bannerIsTouchedByOtherActions || !canPlaceAds || bannerIsHiddenByParent || hasAnchorParent) {
|
|
84
109
|
return acc;
|
|
85
110
|
}
|
|
86
111
|
|
|
@@ -155,7 +180,8 @@ export const processProvidersAds = async (
|
|
|
155
180
|
wrapperStyle,
|
|
156
181
|
parent: banner.parentElement ?? document.body,
|
|
157
182
|
insertionIndex: Array.from(banner.parentElement?.children ?? []).indexOf(banner),
|
|
158
|
-
isSiblingReplacement: true
|
|
183
|
+
isSiblingReplacement: true,
|
|
184
|
+
shouldUseBlurredBackground: true
|
|
159
185
|
};
|
|
160
186
|
|
|
161
187
|
let actions: (InsertAdActionWithoutMeta | HideElementAction | RemoveElementAction)[];
|
|
@@ -33,7 +33,15 @@ const processInsertAdActionOnce = async (
|
|
|
33
33
|
insertionPoint: HTMLDivElement | HTMLTableCellElement,
|
|
34
34
|
onAdsStackError: (error: Error) => void
|
|
35
35
|
) => {
|
|
36
|
-
const {
|
|
36
|
+
const {
|
|
37
|
+
elementStyle = {},
|
|
38
|
+
stylesOverrides = [],
|
|
39
|
+
adsMetadata,
|
|
40
|
+
wrapperType,
|
|
41
|
+
originalHeight,
|
|
42
|
+
originalWidth,
|
|
43
|
+
shouldUseBlurredBackground
|
|
44
|
+
} = action;
|
|
37
45
|
|
|
38
46
|
stylesOverrides.sort((a, b) => a.parentDepth - b.parentDepth);
|
|
39
47
|
|
|
@@ -49,8 +57,8 @@ const processInsertAdActionOnce = async (
|
|
|
49
57
|
const { dimensions: minDimensions } =
|
|
50
58
|
typeof firstAdMetadataOrId === 'number' ? AdsConfiguration.bannerAdsMeta[firstAdMetadataOrId] : firstAdMetadataOrId;
|
|
51
59
|
const dimensions = {
|
|
52
|
-
width: Math.max(originalWidth, minDimensions.width),
|
|
53
|
-
height: Math.max(originalHeight, minDimensions.height)
|
|
60
|
+
width: shouldUseBlurredBackground ? Math.max(originalWidth, minDimensions.width) : minDimensions.width,
|
|
61
|
+
height: shouldUseBlurredBackground ? Math.max(originalHeight, minDimensions.height) : minDimensions.height
|
|
54
62
|
};
|
|
55
63
|
adElement.style.width = wrapperType === 'tbody' ? '100%' : `${dimensions.width}px`;
|
|
56
64
|
adElement.style.height = `${dimensions.height}px`;
|
|
@@ -74,11 +82,23 @@ const processInsertAdActionOnce = async (
|
|
|
74
82
|
action.element.replaceWith(wrapperElement);
|
|
75
83
|
break;
|
|
76
84
|
default:
|
|
85
|
+
const nextSibling = action.parent.children[action.insertionIndex];
|
|
77
86
|
if (action.isSiblingReplacement) {
|
|
78
87
|
wrapperElement.setAttribute(SIBLING_REPLACEMENT_ATTRIBUTE_NAME, 'true');
|
|
88
|
+
const observer = new MutationObserver(mutations => {
|
|
89
|
+
const hasRemoveSiblingMutation = mutations.some(mutation =>
|
|
90
|
+
Array.from(mutation.removedNodes).includes(nextSibling)
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
if (hasRemoveSiblingMutation) {
|
|
94
|
+
wrapperElement.remove();
|
|
95
|
+
observer.disconnect();
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
observer.observe(action.parent, { childList: true });
|
|
79
99
|
}
|
|
80
100
|
stylesOverridesCurrentElement = action.parent;
|
|
81
|
-
action.parent.insertBefore(wrapperElement,
|
|
101
|
+
action.parent.insertBefore(wrapperElement, nextSibling);
|
|
82
102
|
break;
|
|
83
103
|
}
|
|
84
104
|
|
package/src/render-ads-stack.ts
CHANGED
|
@@ -106,7 +106,7 @@ export const renderAdsStack = async (
|
|
|
106
106
|
if (prevBackgroundElement) {
|
|
107
107
|
rootElement.replaceChild(backgroundElement, prevBackgroundElement);
|
|
108
108
|
} else {
|
|
109
|
-
rootElement.
|
|
109
|
+
rootElement.prepend(backgroundElement);
|
|
110
110
|
}
|
|
111
111
|
} catch (e) {
|
|
112
112
|
console.error(e);
|
package/src/types/ads-actions.ts
CHANGED
|
@@ -31,6 +31,7 @@ interface InsertAdActionProps
|
|
|
31
31
|
stylesOverrides?: AdStylesOverrides[];
|
|
32
32
|
originalWidth: number;
|
|
33
33
|
originalHeight: number;
|
|
34
|
+
shouldUseBlurredBackground?: boolean;
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
export interface ReplaceAllChildrenWithAdAction extends AdActionBase, InsertAdActionProps {
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { AdType } from 'src/types/ads-actions';
|
|
2
|
-
import { AdMetadata } from 'src/types/ads-meta';
|
|
3
|
-
export declare const PX_VALUE_REGEX: RegExp;
|
|
4
|
-
export declare const ourAdQuerySelector = "[twa]";
|
|
5
|
-
export declare const ourBannerAdQuerySelector = "[twa]:not([twa-native])";
|
|
6
|
-
export declare const ourNativeAdQuerySelector = "[twa-native]";
|
|
7
|
-
export declare const extendOrKeepDimension: (element: HTMLElement, dimension: 'width' | 'height', suggestedValue: number) => void;
|
|
8
|
-
export declare const sumPxValues: (values: string[]) => number;
|
|
9
|
-
export declare const elementIsOurAd: (element: Element) => boolean;
|
|
10
|
-
export declare const prevBannerSiblingIsReplacement: (banner: Element) => boolean;
|
|
11
|
-
export declare const getFinalSize: (element: Element) => {
|
|
12
|
-
width: number;
|
|
13
|
-
height: number;
|
|
14
|
-
};
|
|
15
|
-
export declare const applyQuerySelector: <E extends Element = Element>(querySelector: string, isMultiple: boolean, element?: Element | Document) => E[];
|
|
16
|
-
export declare const getParentOfDepth: (element: HTMLElement, depth: number) => HTMLElement | null;
|
|
17
|
-
export declare const pickAdsToDisplay: (containerWidth: number, containerHeight: number, adType: AdType, adIsNative: boolean, expectedCategories: string[]) => (number | AdMetadata)[];
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { AdsConfiguration } from 'src/ads-configuration';
|
|
2
|
-
import { CRYPTO_CATEGORY_NAME, SIBLING_REPLACEMENT_ATTRIBUTE_NAME, TEMPLE_WALLET_AD_ATTRIBUTE_NAME, TEMPLE_WALLET_NATIVE_AD_ATTRIBUTE_NAME } from 'src/constants';
|
|
3
|
-
import { AdType } from 'src/types/ads-actions';
|
|
4
|
-
export const PX_VALUE_REGEX = /[\d.]+(px)?$/;
|
|
5
|
-
export const ourAdQuerySelector = `[${TEMPLE_WALLET_AD_ATTRIBUTE_NAME}]`;
|
|
6
|
-
export const ourBannerAdQuerySelector = `[${TEMPLE_WALLET_AD_ATTRIBUTE_NAME}]:not([${TEMPLE_WALLET_NATIVE_AD_ATTRIBUTE_NAME}])`;
|
|
7
|
-
export const ourNativeAdQuerySelector = `[${TEMPLE_WALLET_NATIVE_AD_ATTRIBUTE_NAME}]`;
|
|
8
|
-
const parsePxValue = (value, fallback) => {
|
|
9
|
-
const parsedValue = parseInt(value, 10);
|
|
10
|
-
return isNaN(parsedValue) || !PX_VALUE_REGEX.test(value) ? fallback : parsedValue;
|
|
11
|
-
};
|
|
12
|
-
export const extendOrKeepDimension = (element, dimension, suggestedValue) => {
|
|
13
|
-
element.style[dimension] = `${Math.max(parsePxValue(element.style[dimension], 0), suggestedValue)}px`;
|
|
14
|
-
};
|
|
15
|
-
export const sumPxValues = (values) => values.reduce((acc, value) => acc + parsePxValue(value, 0), 0);
|
|
16
|
-
export const elementIsOurAd = (element) => Boolean(element.closest(ourAdQuerySelector));
|
|
17
|
-
export const prevBannerSiblingIsReplacement = (banner) => { var _a; return Boolean((_a = banner.previousElementSibling) === null || _a === void 0 ? void 0 : _a.getAttribute(SIBLING_REPLACEMENT_ATTRIBUTE_NAME)); };
|
|
18
|
-
export const getFinalSize = (element) => {
|
|
19
|
-
const elementStyle = getComputedStyle(element);
|
|
20
|
-
const { x, right, width: rectWidth, height: rectHeight } = element.getBoundingClientRect();
|
|
21
|
-
const size = { width: rectWidth, height: rectHeight };
|
|
22
|
-
const dimensions = ['width', 'height'];
|
|
23
|
-
for (const dimension of dimensions) {
|
|
24
|
-
const rawDimensionFromStyle = elementStyle[dimension];
|
|
25
|
-
const rawDimensionFromAttribute = element.getAttribute(dimension);
|
|
26
|
-
const parsedDimension = Math.max(...[rawDimensionFromStyle, rawDimensionFromAttribute].map(rawValue => parsePxValue(rawValue !== null && rawValue !== void 0 ? rawValue : '', -1)));
|
|
27
|
-
if (parsedDimension !== -1) {
|
|
28
|
-
size[dimension] = parsedDimension;
|
|
29
|
-
}
|
|
30
|
-
if (dimension === 'width' && x < 0) {
|
|
31
|
-
size.width += x;
|
|
32
|
-
}
|
|
33
|
-
else if (dimension === 'width' && right > window.innerWidth) {
|
|
34
|
-
size.width = window.innerWidth - x;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return size;
|
|
38
|
-
};
|
|
39
|
-
export const applyQuerySelector = (querySelector, isMultiple, element = document) => {
|
|
40
|
-
if (!querySelector) {
|
|
41
|
-
return [];
|
|
42
|
-
}
|
|
43
|
-
return isMultiple
|
|
44
|
-
? [...element.querySelectorAll(querySelector)]
|
|
45
|
-
: [element.querySelector(querySelector)].filter((el) => Boolean(el));
|
|
46
|
-
};
|
|
47
|
-
export const getParentOfDepth = (element, depth) => {
|
|
48
|
-
let parent = element;
|
|
49
|
-
for (let i = 0; i < depth; i++) {
|
|
50
|
-
const nextParent = parent.parentElement;
|
|
51
|
-
if (!nextParent) {
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
parent = nextParent;
|
|
55
|
-
}
|
|
56
|
-
return parent;
|
|
57
|
-
};
|
|
58
|
-
export const pickAdsToDisplay = (containerWidth, containerHeight, adType, adIsNative, expectedCategories) => {
|
|
59
|
-
if (containerWidth < 2 && containerHeight < 2) {
|
|
60
|
-
return [];
|
|
61
|
-
}
|
|
62
|
-
if (adIsNative) {
|
|
63
|
-
return AdsConfiguration.buildNativeAdsMeta(containerWidth, containerHeight);
|
|
64
|
-
}
|
|
65
|
-
return AdsConfiguration.bannerAdsMeta.reduce((acc, { dimensions, source }, i) => {
|
|
66
|
-
const { shouldNotUseStrictContainerLimits = false, categories = [CRYPTO_CATEGORY_NAME] } = source;
|
|
67
|
-
if (categories.every(category => !expectedCategories.includes(category))) {
|
|
68
|
-
return acc;
|
|
69
|
-
}
|
|
70
|
-
const { minContainerWidth, minContainerHeight, width, maxContainerWidth, maxContainerHeight } = dimensions;
|
|
71
|
-
let matches = false;
|
|
72
|
-
switch (adType) {
|
|
73
|
-
case AdType.Permanent:
|
|
74
|
-
matches =
|
|
75
|
-
shouldNotUseStrictContainerLimits ||
|
|
76
|
-
(containerWidth >= width && (containerHeight >= minContainerHeight || containerHeight < 2));
|
|
77
|
-
break;
|
|
78
|
-
case AdType.SlotReplacement:
|
|
79
|
-
matches =
|
|
80
|
-
shouldNotUseStrictContainerLimits ||
|
|
81
|
-
(containerWidth >= minContainerWidth && (containerHeight >= minContainerHeight || containerHeight < 2));
|
|
82
|
-
break;
|
|
83
|
-
default:
|
|
84
|
-
matches =
|
|
85
|
-
containerWidth >= minContainerWidth &&
|
|
86
|
-
containerHeight >= minContainerHeight &&
|
|
87
|
-
containerWidth <= maxContainerWidth &&
|
|
88
|
-
containerHeight <= maxContainerHeight;
|
|
89
|
-
}
|
|
90
|
-
if (matches) {
|
|
91
|
-
acc.push(i);
|
|
92
|
-
}
|
|
93
|
-
return acc;
|
|
94
|
-
}, []);
|
|
95
|
-
};
|
|
96
|
-
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/ads-actions/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { AdAction } from 'src/types/ads-actions';
|
|
2
|
-
import type { AdsRules } from 'src/types/ads-rules';
|
|
3
|
-
export declare const getAdsActions: ({ providersSelectors, providersNegativeSelectors, adPlacesRules, permanentAdPlacesRules, elementsToHideOrRemoveRules }: AdsRules) => Promise<AdAction[]>;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { AdActionType } from 'src/types/ads-actions';
|
|
11
|
-
import { delay } from 'src/utils';
|
|
12
|
-
import { getFinalSize, pickAdsToDisplay, sumPxValues } from './helpers';
|
|
13
|
-
import { processElementsToHideOrRemoveRule } from './process-elements-to-hide-or-remove-rule';
|
|
14
|
-
import { processPermanentAdPlacesRule } from './process-permanent-rule';
|
|
15
|
-
import { processProvidersAds } from './process-providers-ads';
|
|
16
|
-
import { processAdPlacesRule } from './process-rule';
|
|
17
|
-
export const getAdsActions = (_a) => __awaiter(void 0, [_a], void 0, function* ({ providersSelectors, providersNegativeSelectors, adPlacesRules, permanentAdPlacesRules, elementsToHideOrRemoveRules }) {
|
|
18
|
-
const result = [];
|
|
19
|
-
const addActionsIfAdResolutionAvailable = (elementsToMeasure, adType, adIsNative, categories, ...actionsBases) => {
|
|
20
|
-
if (actionsBases.length > 0 &&
|
|
21
|
-
actionsBases.every((action) => action.type === AdActionType.HideElement || action.type === AdActionType.RemoveElement)) {
|
|
22
|
-
result.push(...actionsBases);
|
|
23
|
-
return true;
|
|
24
|
-
}
|
|
25
|
-
const { width } = getFinalSize(elementsToMeasure.width);
|
|
26
|
-
const { height } = getFinalSize(elementsToMeasure.height);
|
|
27
|
-
const { paddingLeft, paddingRight } = window.getComputedStyle(elementsToMeasure.width);
|
|
28
|
-
const { paddingTop, paddingBottom } = window.getComputedStyle(elementsToMeasure.height);
|
|
29
|
-
const horizontalPadding = sumPxValues([paddingLeft, paddingRight]);
|
|
30
|
-
const innerWidth = horizontalPadding === width ? width : width - horizontalPadding;
|
|
31
|
-
const verticalPadding = sumPxValues([paddingTop, paddingBottom]);
|
|
32
|
-
const innerHeight = verticalPadding === height ? height : height - verticalPadding;
|
|
33
|
-
const adsMetadata = pickAdsToDisplay(innerWidth, innerHeight, adType, adIsNative, categories);
|
|
34
|
-
if (!adsMetadata.length) {
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
result.push(...actionsBases.map(actionBase => actionBase.type === AdActionType.HideElement || actionBase.type === AdActionType.RemoveElement
|
|
38
|
-
? actionBase
|
|
39
|
-
: Object.assign(Object.assign({}, actionBase), { adsMetadata, originalWidth: innerWidth, originalHeight: innerHeight })));
|
|
40
|
-
return true;
|
|
41
|
-
};
|
|
42
|
-
let permanentAdsParents = [];
|
|
43
|
-
/*
|
|
44
|
-
Asynchronizing processing to free-up the thread on heavyish work here.
|
|
45
|
-
'Parallelizing' it (through `Promise.all`) to fill-up Event Loop right away.
|
|
46
|
-
Otherwise (with `for` loop), original ads start glitching through more.
|
|
47
|
-
*/
|
|
48
|
-
yield Promise.all(elementsToHideOrRemoveRules.map((rule) => __awaiter(void 0, void 0, void 0, function* () {
|
|
49
|
-
yield delay(0);
|
|
50
|
-
processElementsToHideOrRemoveRule(rule, result);
|
|
51
|
-
})));
|
|
52
|
-
yield Promise.all(permanentAdPlacesRules.map((rule) => __awaiter(void 0, void 0, void 0, function* () {
|
|
53
|
-
yield delay(0);
|
|
54
|
-
permanentAdsParents = permanentAdsParents.concat(yield processPermanentAdPlacesRule(rule, addActionsIfAdResolutionAvailable, result));
|
|
55
|
-
})));
|
|
56
|
-
yield Promise.all(adPlacesRules.map((rule) => __awaiter(void 0, void 0, void 0, function* () {
|
|
57
|
-
yield delay(0);
|
|
58
|
-
yield processAdPlacesRule(rule, permanentAdsParents, addActionsIfAdResolutionAvailable);
|
|
59
|
-
})));
|
|
60
|
-
yield processProvidersAds(providersSelectors, providersNegativeSelectors, addActionsIfAdResolutionAvailable, result);
|
|
61
|
-
return result;
|
|
62
|
-
});
|
|
63
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ads-actions/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { AdActionType } from 'src/types/ads-actions';
|
|
2
|
-
import { applyQuerySelector, getParentOfDepth } from './helpers';
|
|
3
|
-
export const processElementsToHideOrRemoveRule = (rule, result) => {
|
|
4
|
-
const { shouldHide, cssString, parentDepth, isMultiple } = rule;
|
|
5
|
-
applyQuerySelector(cssString, isMultiple).forEach(elem => {
|
|
6
|
-
const element = getParentOfDepth(elem, parentDepth);
|
|
7
|
-
if (!element) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
const styles = window.getComputedStyle(element);
|
|
11
|
-
if (styles.display !== 'none' && styles.visibility !== 'hidden') {
|
|
12
|
-
result.push({
|
|
13
|
-
type: shouldHide ? AdActionType.HideElement : AdActionType.RemoveElement,
|
|
14
|
-
element
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=process-elements-to-hide-or-remove-rule.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"process-elements-to-hide-or-remove-rule.js","sourceRoot":"","sources":["../../src/ads-actions/process-elements-to-hide-or-remove-rule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG/D,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEjE,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,IAAgC,EAAE,MAAkB,EAAE,EAAE;IACxG,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAEhE,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvD,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAmB,EAAE,WAAW,CAAC,CAAC;QAEnE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEhD,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,UAAU,CAAC,CAAC,CAAE,YAAY,CAAC,WAAqB,CAAC,CAAC,CAAE,YAAY,CAAC,aAAuB;gBAC9F,OAAO;aACR,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { AdAction, AddActionsIfAdResolutionAvailable } from 'src/types/ads-actions';
|
|
2
|
-
import { PermanentAdPlacesRule } from 'src/types/ads-rules';
|
|
3
|
-
export declare const processPermanentAdPlacesRule: (rule: PermanentAdPlacesRule, addActionsIfAdResolutionAvailable: AddActionsIfAdResolutionAvailable, result: AdAction[]) => Promise<HTMLElement[]>;
|