/* esm.sh - @repobit/dex-target@2.2.0 */
import{Constants as b}from"/@repobit/dex-constants@^1.1.0?target=es2022";import{AdobeDataLayerService as D,CdpEvent as v}from"/@repobit/dex-data-layer@^1.6.1?target=es2022";window.Promise.withResolvers||(window.Promise.withResolvers=function(){let f,o,t=new Promise((e,r)=>{f=e,o=r});return{resolve:f,reject:o,promise:t}});var w=class{urlParameters;profileUrlParameters;cachedMboxes;_configMbox;controller=new AbortController;_visitorInfo;cdpData;constructor(o){if(this.urlParameters=this.getUrlParameters(),this.profileUrlParameters=this.transfromIntoProfileParameters(this.urlParameters),this.cachedMboxes=new Map,!window.alloyProxy){let e=function(...r){return new Promise((a,i)=>{window.alloyProxy.q.push([a,i,r])})};window.alloyProxy=e,window.alloyProxy.q=[]}let t=new URLSearchParams(window.location.search);t.get("dotest")==="1"&&this.abort(),this._visitorInfo=new Promise(e=>{this.controller.signal?.aborted&&e({}),window.alloyProxy("getIdentity").then(r=>e(r)).catch(()=>e({})),this.controller.signal?.addEventListener("abort",()=>e({}))}),this.cdpData=o?.pageLoadStartedEvent&&t.get("dotest")!=="1"?this.sendCdpData(o?.pageLoadStartedEvent):Promise.resolve({}),this._configMbox=this.getOffers({mboxNames:"config-mbox"})}getUrlParameters(){let o=new URLSearchParams(window.location.search),t={};return o.forEach((e,r)=>{t[r]=e}),t}get configMbox(){return this._configMbox}get visitorInfo(){return this._visitorInfo}appendVisitorIDsTo(o){return this.controller.signal?.aborted||o.includes("adobe_mc")?Promise.resolve(o):new Promise(t=>{window.alloyProxy("appendIdentityToUrl",{url:o}).then(e=>t(e.url)).catch(()=>t(o)),this.controller.signal?.addEventListener("abort",()=>t(o))})}abort(){this.controller.abort()}async sendCdpData(o){let t=Promise.withResolvers(),e={};if(window.BD.state.cdpDataPromise)return await window.BD.state.cdpDataPromise;window.BD.state.cdpDataPromise=t.promise;try{let r=(await this.visitorInfo)?.identity?.ECID,i=await(await fetch(`${b.PUBLIC_URL_ORIGIN}/cdp/`,{method:"POST",body:JSON.stringify({mcvisid:r||"",info:{...o.page.info},attributes:{...o.page.attributes,ppvScrollData:sessionStorage.getItem("ppvScrollData")||"",ppvName:sessionStorage.getItem("ppvName")||""}})})).json();e={auds:i?.auds[0]||""},i.mdl&&(e=i?.mdl.reduce((n,c)=>(n[c.key]=c.value,n),e)),D.push(new v(e))}catch(r){console.warn(r)}return t.resolve(e),e}transfromIntoProfileParameters(o){return Object.keys(o).reduce((e,r)=>(e[`profile.${r}`]=o[r],e),{})}async getOffers(o){let{mboxNames:t}=o,e=Array.isArray(t),{parameters:r,profileParameters:a}=o;Array.isArray(t)||(t=[t]);let i=await this.cdpData;if(this.controller.signal?.aborted)return t.length>1?{}:void 0;let n=t.filter(s=>!this.cachedMboxes.has(`${s}_${JSON.stringify(r)}`));if(n.length){let s=window.alloyProxy("sendEvent",{type:"decisioning.propositionFetch",decisionScopes:n,data:{__adobe:{target:Object.assign({},this.urlParameters,this.profileUrlParameters,r||{},a||{},i,this.transfromIntoProfileParameters(i))}},renderDecisions:!0});s.then(l=>{window.alloyProxy("applyPropositions",{propositions:l.propositions,viewName:window.location.href})}),n.forEach(l=>{let d=new Promise((u,P)=>{s.then(p=>{let y=p.propositions.find(g=>g.scope===l)?.items[0].data?.content;u(y)}).catch(p=>{P(p)}),this.controller.signal?.addEventListener("abort",P)});this.cachedMboxes.set(`${l}_${JSON.stringify(r)}_${JSON.stringify(a)}`,d)})}let c=t.map(s=>this.cachedMboxes.get(`${s}_${JSON.stringify(r)}_${JSON.stringify(a)}`)),h=await Promise.allSettled(c),m=t.reduce((s,l,d)=>(s[l]=h[d].status==="fulfilled"?h[d].value:void 0,s),{});return e?m:m[t[0]]}};window.BD=window.BD||{};window.BD.state=window.BD.state||{};export{w as default};
//# sourceMappingURL=dex-target.mjs.map