/* esm.sh - @repobit/dex-data-layer@1.6.1 */
var c=class{event;product={};constructor(e,t){this.event=e,e==="trial downloaded"?this.product={trial:[{ID:t}]}:e==="product downloaded"?this.product={download:[{ID:t}]}:this.product={[e]:[{ID:t}]}}};var d=class{event="cdp data";parameters;constructor(e){this.parameters=e}};var u=class{event;user;constructor(e,t){this.event=e,this.user=t}};var l=class{event;cart=null;transaction=null;constructor(e,t,r){this.event=e,this.cart=t,this.transaction=r,this.cart||delete this.cart,this.transaction||delete this.transaction}};var m=class{event="page error"};import{UserAgent as I}from"/@repobit/dex-utils@^1.3.0?target=es2022";function g(){let a=new Date,e=a.getHours(),t=a.getMinutes(),r=a.getDay(),o=a.toTimeString().split(" ")[1];return`${e}:${t}|${e}:00-${e}:59|${["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][r]}|${o}`}function f(){let a=new Date,e=a.getDate(),t=a.getMonth()+1,r=a.getFullYear();return`${e}/${t}/${r}`}var p=class{event="page load started";pageInstanceID;page;constructor(e,t,r={}){this.pageInstanceID=e.environment;let[o="",i="",w="",L=""]=t.name.split(":"),P=window.location.hostname.split(".").splice(1,2).join(".");this.page={info:{...t,section:o,subSection:i,subSubSection:w,subSubSubSection:L,destinationURL:window.location.href,queryString:window.location.search,referringURL:e.getParamValue("ref")||e.getParamValue("adobe_mc_ref")||document.referrer,serverName:window.location.hostname,sysEnv:I.os||"",language:e.locale},attributes:{promotionID:e.getParamValue("pid")||"",internalPromotionID:e.getParamValue("icid")||"",trackingID:e.getParamValue("cid")||"",time:g(),date:f(),domain:P,domainPeriod:window.location.hostname.split(".").length-1,...r}}}};var s=class{event="page loaded"};var n=class{event="product loaded";product={};constructor(e,t){this.product[t]||(this.product[t]=[]),"ID"in e?this.product[t].push(e):this.product[t].push(this.getOptionInfo(e))}getOptionInfo(e){return{ID:e.getProduct().getPlatformId(),name:e.getProduct().getName(),devices:e.getDevices(),subscription:e.getSubscription(),version:e.getSubscription()===1?"monthly":"yearly",basePrice:e.getPrice({currency:!1}),discountValue:e.getDiscount({symbol:!1}),discountRate:e.getDiscount({percentage:!0,symbol:!1}),currency:e.getProduct().getCurrency(),grossPrice:e.getDiscountedPrice({currency:!1})||e.getPrice({currency:!1})}}};var h=class{event="user detected";user;constructor(e,t){if(e&&t){let r=e.getParamValue("ems-uid")||e.getParamValue("sc_uid")||void 0;this.user={loggedIN:!!t.ID},t.ID&&(this.user.ID=t.ID),r&&(this.user.emarsysID=r),t.productFinding&&(this.user.productFinding=t.productFinding)}else{let r=window.adobeDataLayer.find(o=>o.event==="user detected");r?this.user={...r.user}:this.user={loggedIN:!1}}}};var y=class{event="visitorID ready";user;constructor(e){this.user={visitorId:e}}};var v=class{event="page load started";pageInstanceID;page;constructor(e,t={}){let r=window.adobeDataLayer.find(w=>w.event==="page load started");this.pageInstanceID=r.pageInstanceID;let o=r.page,i=e instanceof Function?e({...o.info}):{...o.info,...e};this.page={info:i,attributes:{...o.attributes,...t,time:g(),date:f()}}}};var D=class{event="page loaded"};import x from"/deepmerge@^4.3.1?target=es2022";var b=class{static _dataLayer={};static{window.adobeDataLayer=window.adobeDataLayer||[]}static combineMerge(e,t){let r=new Set;return t.length&&t.forEach(o=>{r.add(JSON.stringify(o))}),e.length&&e.forEach(o=>{r.add(JSON.stringify(o))}),[...r].map(o=>JSON.parse(o))}static pushEventsToDataLayer(){let e=this._dataLayer["product loaded"];if(e){let t=e.product;t.all=t.all?.filter(r=>!t.info?.some(o=>JSON.stringify(r)===JSON.stringify(o))),Object.keys(t).forEach(r=>{(!t[r]||!t[r].length)&&delete t[r]})}Object.keys(this._dataLayer).forEach(t=>{window.adobeDataLayer.push({...this._dataLayer[t]}),delete this._dataLayer[t]})}static get dataLayer(){return this._dataLayer}static push(e){if(e instanceof n){let t={[e.event]:e};this._dataLayer=x(this._dataLayer,t,{arrayMerge:this.combineMerge});return}else e instanceof s&&this.pushEventsToDataLayer();window.adobeDataLayer.push({...e})}};export{b as AdobeDataLayerService,c as ButtonClickEvent,d as CdpEvent,u as FormEvent,l as OneClickPurchaseEvent,m as PageErrorEvent,p as PageLoadStartedEvent,s as PageLoadedEvent,n as ProductLoadedEvent,h as UserDetectedEvent,y as VisitorIdEvent,v as WindowLoadStartedEvent,D as WindowLoadedEvent};
//# sourceMappingURL=dex-data-layer.mjs.map