-`;function E1(r){return new Promise((e,t)=>{let o=new Image;o.onload=()=>e(o),o.onerror=(a,i,d,u,n)=>t(n),o.src=r})}function h2(r,{placement:e,onClick:t,onError:o,onLoad:a,onReport:i}){d(),u();function d(){r.innerHTML=k1,n()}async function u(){let p=e.content,h=e.content?.image_url;if(!p)return;if(!h){o?.({placement:e,error:new Error(`No imageURL found for advertisement: ${e.placementId}`)}),r.innerHTML=T1,n();return}try{await E1(h),r.innerHTML=Z1,n(),V1()}catch(v){o?.({placement:e,error:v})}let C=r.querySelector(".moz-ads-placement-link");C&&(C.onclick=()=>t?.({placement:e}),C.dataset.placementId=e.placementId,C.href=e.content?.url??"about:blank");let l=r.querySelector(".moz-ads-placement-img");l&&(l.onload=()=>a?.({placement:e}),l.onerror=(v,H,g,y,Z)=>o?.({placement:e,error:Z}),l.dataset.placementId=e.placementId,l.alt=e.content?.alt_text??c("ad_image_default_alt"),l.src=h)}function n(){let p=r.querySelector(".moz-ads-placement-container");if(p&&(p.dataset.placementId=e.placementId,e.fixedSize)){let{width:h,height:C}=e.fixedSize;p.style.width=h!==void 0?`${h}px`:"",p.style.height=C!==void 0?`${C}px`:""}}function V1(){let p=r.querySelector(".moz-ads-placement-report-button");p&&(p.onclick=h=>{h.preventDefault(),h.stopPropagation();let C=r.querySelector(".moz-ads-placement-inner");if(C){C.insertAdjacentHTML("beforeend",S1);let l=r.querySelector(".moz-ads-placement-link");l&&(l.hidden=!0),p.hidden=!0;let v=r.querySelector(".moz-ads-placement-report-form"),H=r.querySelector(".moz-ads-placement-report-close-button"),g=r.querySelector(".moz-ads-placement-report-reason-select"),y=r.querySelector(".moz-ads-placement-report-submit-button");g?.focus(),H&&(H.onclick=()=>{l&&(l.hidden=!1),p.hidden=!1,v?.remove()}),v&&g&&y&&(v.onsubmit=async Z=>{Z.preventDefault();let O=r.querySelector(".moz-ads-placement-report-title");if(O){O.textContent=c("report_form_title_success"),l&&(l.onclick=f=>f.preventDefault(),l.focus()),H?.remove(),g.remove(),y.remove();let F=g.value;try{let f=new URL(e.content?.callbacks?.report??"");f.searchParams.set("reason",F);try{await fetch(f.toString(),{keepalive:!0}),i?.({placement:e,reason:F})}catch(v1){C1.error(`Report callback failed for: ${e.placementId} with an unknown error.`,{type:"recordClick.callbackResponseError",eventLabel:"fetch_error",path:f.toString(),placementId:e.placementId,method:"GET",errorId:v1?.name})}}catch(f){C1.error(`Invalid report callback URL for placement ID: ${e.placementId}`,{type:"renderPlacement.reportCallbackInvalid",eventLabel:"invalid_url_error",path:e.content?.callbacks?.report??"",placementId:e.placementId,errorId:f?.name})}}},g.onchange=()=>{y.disabled=!g.value})}})}}var s=[];for(let r=0;r<256;++r)s.push((r+256).toString(16).slice(1));function u1(r,e=0){return(s[r[e+0]]+s[r[e+1]]+s[r[e+2]]+s[r[e+3]]+"-"+s[r[e+4]]+s[r[e+5]]+"-"+s[r[e+6]]+s[r[e+7]]+"-"+s[r[e+8]]+s[r[e+9]]+"-"+s[r[e+10]]+s[r[e+11]]+s[r[e+12]]+s[r[e+13]]+s[r[e+14]]+s[r[e+15]]).toLowerCase()}var q,U1=new Uint8Array(16);function N(){if(!q){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");q=crypto.getRandomValues.bind(crypto)}return q(U1)}var x1=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),W={randomUUID:x1};function J1(r,e,t){if(W.randomUUID&&!e&&!r)return W.randomUUID();r=r||{};let o=r.random??r.rng?.()??N();if(o.length<16)throw new Error("Random bytes length must be >= 16");if(o[6]=o[6]&15|64,o[8]=o[8]&63|128,e){if(t=t||0,t<0||t+16>e.length)throw new RangeError(`UUID byte range ${t}:${t+15} is out of buffer bounds`);for(let a=0;a<16;++a)e[t+a]=o[a];return e}return u1(o)}var G=J1;var R="__mozads__",z1=(t=>(t[t.Persistent=0]="Persistent",t[t.SessionOnly=1]="SessionOnly",t))(z1||{}),I1=new m({name:"core.store"}),q1=(r,e=1)=>K(e).getItem(`${R}${r}`),N1=(r,e,t=1)=>{K(t).setItem(`${R}${r}`,e)},T2=(r,e=1)=>{K(e).removeItem(`${R}${r}`)},h1=(r=!1)=>{let e=r?null:q1("contextId");return e||(e=G(),N1("contextId",e),I1.debug(`Updated contextId in session store: ${e}`),e)};function K(r){return r===0?window.localStorage:window.sessionStorage}var W1={Billboard:G1(),Skyscraper:R1(),MediumRectangle:K1()};function B(r){let e=r?.fixedSize;if(!e)return{};let t=M[`${e.width}x${e.height}`];return W1[t]??B1()}function g1(r){let e=(t,o)=>{let a=o[0],i=o[1],d=B(i);return{...t,[a]:[d]}};return Object.entries(r).reduce(e,{})}function G1(){return{url:A.Billboard,format:"Billboard",image_url:k(l1)}}function R1(){return{url:A.Skyscraper,format:"Skyscraper",image_url:k(c1)}}function K1(){return{url:A.MediumRectangle,format:"MediumRectangle",image_url:k(z)}}function B1(){return{url:A.MediumRectangle,image_url:k(z)}}function k(r){let e=new Blob([r],{type:"image/svg+xml"});return URL.createObjectURL(e)}var D=new m({name:"core.fetch"}),T=class extends Error{constructor(t){super(t.message,{cause:t});this.cause=t}name="FetchAdsError"},V={},L,G2=async({placements:r,contextId:e=h1(),serviceEndpoint:t=S})=>(V={...V,...r},L||(L=new Promise((o,a)=>{setTimeout(async()=>{X.setConfig({baseUrl:t,headers:{"Content-Type":"application/json"}});let i={body:{context_id:e,placements:D1(V)}};try{let{data:d,error:u}=await Q(i);if(u||!d){let n=new T(new Error(`getAds failed with response: ${d}. Error: ${u}`));throw D.error(n.message,{type:"fetchAds.request.error",eventLabel:"fetch_error",method:"POST",errorId:`${n.name}`}),n}D.info(`Successfully fetched ads with request: ${JSON.stringify(i)}`,{type:"fetchAds.request.success",method:"POST"}),o(f1(d,V))}catch(d){let u=new T(d);D.error(u.message,{type:"fetchAds.request.error",eventLabel:"fetch_error",method:"POST",errorId:`${u.name}`});try{let n=f1(g1(V),V);o(n)}catch{a(u)}}finally{V={},L=void 0}})}),L));function D1(r){return Object.values(r).map(e=>{let t;return e.iabContent&&(t={taxonomy:e.iabContent.taxonomy,categories:e.iabContent.categoryIds}),{placement:e.placementId,count:1,content:t}})}function f1(r,e){for(let t of Object.values(e)){let o=t.placementId,a=r[o]?.[0];if(!a){let i=B(t);t.content=i;continue}t.content=a}return e}export{P as a,Y as b,S as c,j as d,_ as e,$ as f,A1 as g,b1 as h,L1 as i,M as j,A as k,e1 as l,E as m,r1 as n,U as o,o1 as p,y1 as q,m as r,x as s,n1 as t,n2 as u,i1 as v,a1 as w,w as x,s1 as y,l1 as z,c1 as A,z as B,c as C,E1 as D,h2 as E,z1 as F,q1 as G,N1 as H,T2 as I,h1 as J,T as K,G2 as L,D1 as M,f1 as N};
0 commit comments