@letscooee/web-sdk 14.1.2 → 14.1.3

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/main.min.js CHANGED
@@ -1,4 +1,4 @@
1
- import { s, r, A as An$1, h as he$3, K as Kr$3, e as ee$3, x as x$2, Y as Y$1, C as Cr$2, v as v$1, k as ke$2, y as yt$1, f as fe$4, L as Ln$1, n as ne$2, g as ge$3, c as en, V as Vn$1, J as Jr$3, d as Cn, a as Be$3, G as Gn$1, P as Pn, R as Rn, i as Yr$3, l as xn, z as zr$3, m as ht$2, p as pe$4, M as Mn$1, o as oe$5, Q as Q$4, H as Hr$3, q as Gr$3, b as jn$1, t as to, E as eo, D as Dn, Z as Zn$1, F as Ar$1, I as ve$2, N as Nn$2, O as On$1, S as ro, T as qr$3, U as xr$1, W as z$3, X as Ve$4, _ as d$3, $ as Wn$1, a0 as $n$1, a1 as Nr$2 } from './chunk-BfxFwTzH-ahb09_QH.js';
1
+ import { s, r, A as An$1, h as he$3, K as Kr$3, e as ee$3, x as x$2, Y as Y$1, C as Cr$2, v as v$1, k as ke$2, y as yt$1, f as fe$4, L as Ln$1, n as ne$2, g as ge$3, c as en, V as Vn$1, J as Jr$3, d as Cn, a as Be$3, G as Gn$1, P as Pn, R as Rn, i as Yr$3, l as xn, z as zr$3, m as ht$2, p as pe$4, M as Mn$1, o as oe$5, Q as Q$4, H as Hr$3, q as Gr$3, b as jn$1, t as to, E as eo, D as Dn, Z as Zn$1, F as Ar$1, I as ve$2, N as Nn$2, O as On$1, S as ro, T as qr$3, U as xr$1, W as z$3, X as Ve$4, _ as d$3, $ as Wn$1, a0 as $n$1, a1 as Nr$2 } from './chunk-B_uqFVNg-CQrYna--.js';
2
2
 
3
3
  var o=`a-f\\d`,I$1=`#?[${o}]{3}[${o}]?`,S$3=`#?[${o}]{6}([${o}]{2})?`,R$1=new RegExp(`[^#${o}]`,`gi`),A$4=new RegExp(`^${I$1}$|^${S$3}$`,`i`);function c(e,r={}){if(typeof e!=`string`||R$1.test(e)||!A$4.test(e))throw new TypeError(`Expected a valid hex string`);e=e.replace(/^#/,``);let t=1;e.length===8&&(t=Number.parseInt(e.slice(6,8),16)/255,e=e.slice(0,6)),e.length===4&&(t=Number.parseInt(e.slice(3,4).repeat(2),16)/255,e=e.slice(0,3)),e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]);let l=Number.parseInt(e,16),u=l>>16,p=l>>8&255,m=l&255,s=typeof r.alpha==`number`?r.alpha:t;if(r.format===`array`)return [u,p,m,s];if(r.format===`css`)return `rgb(${u} ${p} ${m}${s===1?``:` / ${Number((s*100).toFixed(2))}%`})`;return {red:u,green:p,blue:m,alpha:s}}var n$1=class n{h;a=100;g;constructor(r){r??={},this.h=r.h,this.a=r.a,this.g=r.g;}get hex(){return this.h}get grad(){return this.g}get rgba(){if(!this.hex)return ``;try{return c(this.hex,{format:`css`,alpha:this.getAlpha()})}catch(r){return console.error(`Invalid hex`,r),`#000000`}}getAlpha(){return (this.a??100)/100}};var h$3=class h{s;g;i;constructor(r){r.s&&(this.s=new n$1(r.s)),r.g&&(this.g=new i(r.g)),this.i=r.i;}get solid(){return this.s}get glossy(){return this.g}get img(){return this.i}};var a$2=class a{s;r;w;c;constructor(r){this.s=r.s,this.r=r.r,this.w=r.w,r.c&&(this.c=new n$1(r.c));}get radius(){return this.r}get width(){return this.w}get color(){return this.c}get style(){return w$2[this.s??1]}},w$2=(t=>(t[t.SOLID=1]=`SOLID`,t[t.DASHED=2]=`DASHED`,t))(w$2||{});var i=class e{static DEFAULT_FALLBACK=new n$1({h:`#000000`,a:50});r;c;fb;constructor(r){this.r=r.r,r.c&&(this.c=new n$1(r.c)),r.fb&&(this.fb=new n$1(r.fb));}get radius(){return this.r}get color(){return this.c}get fallback(){return this.fb??e.DEFAULT_FALLBACK}};var g$2=class g{blur;spr;clr;x;y;constructor(r){r=r??{},this.blur=r.blur??0,this.spr=r.spr??0,this.x=r.x??0,this.y=r.y??0,this.clr=new n$1(r.clr);}getStyle(r){return `${this.x*r}px ${this.y*r}px ${this.blur*r}px ${this.spr*r}px ${this.clr.rgba}`}};var b$2=class b{pl;pr;pt;pb;ml;mr;mt;mb;cent;constructor(r){r=r??{},this.pl=r.pl??0,this.pr=r.pr??0,this.pt=r.pt??0,this.pb=r.pb??0,this.ml=r.ml??0,this.mr=r.mr??0,this.mt=r.mt??0,this.mb=r.mb??0,this.cent=r.cent??false;}getHorizontal(){return this.pl+this.pr}getVertical(){return this.pt+this.pb}getPaddingCSS(){return `${this.pt}px ${this.pr}px ${this.pb}px ${this.pl}px`}};var f=class{rot;constructor(r){r?.rot&&(this.rot=r.rot);}get rotate(){return this.rot}};var y$1=class y{enabled;type;color;constructor(r){r??={},this.enabled=r.enabled,this.type=r.type,this.color=new n$1(r.color);}},d$2=class d{size;enabled;color;constructor(r){r??={},this.enabled=r.enabled,this.size=r.size,this.color=new n$1(r.color);}},x$1=class x{enabled;delay;constructor(r={}){this.enabled=r.enabled,r.delay&&(this.delay=r.delay>100?r.delay:r.delay*1e3);}},C$4=class C{navigation;pagination;autoplay;loop;maxInRow;gap;maxInRowSm;gapSm;speed;marquee;constructor(r){r??={},this.navigation=new d$2(r.navigation),this.pagination=new y$1(r.pagination),this.autoplay=new x$1(r.autoplay),this.loop=r.loop??false,this.maxInRow=r.maxInRow??4,this.gap=r.gap??0,this.maxInRowSm=r.maxInRowSm??this.maxInRow,this.gapSm=r.gapSm??this.gap,r.speed&&(this.speed=r.speed*1e3),this.marquee=r.marquee;}};
4
4
 
@@ -25,7 +25,7 @@ ${t.map((o,n)=>`${n+1}) ${o.toString()}`).join(`
25
25
 
26
26
  function M$1(){return window.CooeeSDK?.uaParser.getDevice().type===`mobile`}function S$1(e,i){Object.assign(e.style,i);}function H$1(e,i,t){if(i){if(!t){e.style.removeProperty(i);return}e.style.setProperty(i,t,`important`);}}function C$1(e){if(!e)return false;if(e.tagName.toLowerCase()===`cart-drawer`&&e.hasAttribute(`open`))return true;let t=e.getBoundingClientRect(),n=(window.innerHeight||document.documentElement.clientHeight)+.5,r=(window.innerWidth||document.documentElement.clientWidth)+.5,o=getComputedStyle(e);if(o.display===`none`||o.visibility===`hidden`||parseFloat(o.opacity)===0||e.hidden||!(e.offsetWidth>0||e.offsetHeight>0||e.getClientRects().length>0))return false;let u=Math.max(0,Math.min(t.right,r)-Math.max(t.left,0))*Math.max(0,Math.min(t.bottom,n)-Math.max(t.top,0)),c=t.width*t.height;if(!(c>0&&u/c>=.1))return false;let p=t.top<=n&&t.bottom>=0,g=t.left<=r&&t.right>=0,m=p&&g,l=o.transform.match(/matrix\(([^)]+)\)/),s=0,a=0;if(l){let d=l[1].split(`, `).map(parseFloat);s=d[4],a=d[5];}let y=s+t.left>r||s+t.right<0||a+t.top>n||a+t.bottom<0;return m||!y}var V$1=()=>typeof navigator<`u`&&`share`in navigator,A$1=e=>new Promise((i,t)=>{let n=new Image;n.onload=()=>{i({width:n.width,height:n.height});},n.onerror=t,n.src=e,n.style.display=`none`;});
27
27
 
28
- var Fe=class{constructor(e,t){this._startTime=e;this._triggerData=t;}intervals=[];selectedEmbeddedItems;renderer;closeCallback;inputFields=[];get startTime(){return this._startTime}get triggerData(){return this._triggerData}get inputs(){return this.inputFields}get rootClassName(){let e=this.triggerData.shortID??this.triggerData.id.slice(-6);return e===`test`&&(e=`test-`+this.startTime.getTime().toString()),`cooee-wrapper-`+e}get selectedItems(){return this.triggerData.items.filter(e=>e.selected.value)}get shouldGiveFBTDiscount(){let e=this.selectedItems.length;return this.triggerData.bundleConfig?.applyDiscountOnMinimum?this.triggerData.bundleConfig.applyDiscountOnMinimum<=e:e===this.triggerData.items.length}onClose(e){this.closeCallback=e;}closeInApp(e,t){t??={};let o=r({eventName:e,duration:(new Date().getTime()-this.startTime.getTime())/1e3},t);this.stopIntervals(),this.closeCallback&&this.closeCallback(o);}addInputField(e,t){this.inputFields.push({id:e,type:t,isValid:false});}updateValidation(e,t){this.inputFields.forEach(i=>{if(i.id===e){i.isValid=t;return}});}hasManipulatedProductQuantity(){let e=this.triggerData.manipulation.productQuantity;return e?.enabled&&e.min!=null&&e.max!=null}getManipulatedQuantity(e){let{min:t=1,max:i=100}=this.triggerData.manipulation.productQuantity;if(t>i)return Y$1.error(`Invalid range: min should be less than or equal to max.`),e;if(e>=t&&e<=i)return e;let o=e%100;return o<t?t:o>i?i:o}stopIntervals(){this.intervals.forEach(e=>clearInterval(e));}};var re=class{t;bg;br;clc;shd;spc;trf;a;w;h;x;y;constructor(e){this.t=e.t,e.bg&&(this.bg=new h$3(e.bg)),e.br&&(this.br=new a$2(e.br)),e.shd&&(this.shd=new g$2(e.shd)),e.spc&&(this.spc=new b$2(e.spc)),this.trf=new f(e.trf),this.clc=e.clc,this.w=e.w,this.h=e.h,this.x=e.x,this.y=e.y,this.a=e.a;}get alpha(){return this.a??100}get type(){return this.t}get typeAsString(){return U[this.t]}get click(){return this.clc}},U=(C=>(C[C.IMAGE=1]=`IMAGE`,C[C.TEXT=2]=`TEXT`,C[C.BUTTON=3]=`BUTTON`,C[C.FLEXBOX=4]=`FLEXBOX`,C[C.MULTI_COLUMN=5]=`MULTI_COLUMN`,C[C.CHECKBOX=6]=`CHECKBOX`,C[C.PRODUCTS=11]=`PRODUCTS`,C[C.PRODUCT=12]=`PRODUCT`,C[C.PRODUCT_IMAGE=13]=`PRODUCT_IMAGE`,C[C.PRODUCT_TITLE=14]=`PRODUCT_TITLE`,C[C.PRODUCT_VARIATIONS=15]=`PRODUCT_VARIATIONS`,C[C.PRODUCT_VARIATIONS_SELLING_PLANS=16]=`PRODUCT_VARIATIONS_SELLING_PLANS`,C[C.PRODUCT_BUTTON=18]=`PRODUCT_BUTTON`,C[C.PRODUCT_RATING=19]=`PRODUCT_RATING`,C[C.EMAIL_INPUT=51]=`EMAIL_INPUT`,C[C.PHONE_INPUT=52]=`PHONE_INPUT`,C[C.COUNTDOWN_TIMER=61]=`COUNTDOWN_TIMER`,C[C.CAROUSEL=62]=`CAROUSEL`,C[C.SHAPE=100]=`SHAPE`,C))(U||{});var qt=class extends re{constructor(e){super(e);}};var tt=class extends re{src;constructor(e){super(e),this.src=e.src;}};var Fr=(o=>(o[o.START=0]=`START`,o[o.CENTER=1]=`CENTER`,o[o.END=2]=`END`,o[o.JUSTIFY=3]=`JUSTIFY`,o))(Fr||{});var Br=class{name;fonts;constructor(e){e=e??{},e.name&&(e.name=e.name!==`Arial`?e.name:``),this.name=e.name,this.fonts=e.fonts?.map(t=>new oo(t));}},oo=class{style;url;constructor(e){e=e??{},this.style=e.style,this.url=e.url;}getFontDescriptor(){return {style:this.style===2||this.style===4?`italic`:`normal`,weight:this.style===4||this.style===3?`700`:`400`}}getURL(){return `url('${this.url}') format('truetype')`}};var V=class{fw;fs;fam;fmly;lh=1.2;ls;s;tc;ta;td;tdc;constructor(e){this.update(e);}get alignment(){return Fr[this.ta]}get letterSpacing(){return this.ls?this.ls+`px`:`normal`}update(e){e=e??{},e.lh&&(this.lh=e.lh),e.tdc&&(this.tdc=new n$1(e.tdc)),this.td=e.td,this.fs=e.s??e.fs??60,this.tc=new n$1(e.tc),this.ta=e.ta??1,this.fw=e.fw??400,this.ls=e.ls??0,this.tc.h??=`#000000`,this.fam=new Br(e.fam??e.fmly);}resize(e){this.s*=e,this.ls*=e;}};var Be=class extends re{typo;constructor(e){super(e);let t=r(r({},e.f),e.typo);e.alg&&(t.ta=e.alg),e.c&&(t.tc=e.c),this.typo=new V(t);}get color(){return this.typography.tc}get typography(){return this.typo}};var bt=class extends Be{prs;constructor(e){super(e),this.prs=e.prs;}get parts(){return this.prs}};var Ct=class{dd;hh;mm;ss;date;constructor(e){e??={},this.dd=e.dd??0,this.hh=e.hh??0,this.mm=e.mm??0,this.ss=e.ss??0,this.date=e.date?new Date(e.date):void 0;}start(e,t){let i=new Date;e===2?(i.setSeconds(i.getSeconds()+this.ss),i.setMinutes(i.getMinutes()+this.mm),i.setHours(i.getHours()+this.hh),i.setDate(i.getDate()+this.dd)):i=this.date??new Date;let o=window.setInterval(()=>{let n=new Date().getTime(),s=i.getTime()-n;if(s<1){clearInterval(o);return}t({days:Math.floor(s/(1e3*60*60*24)),hours:Math.floor(s%(1e3*60*60*24)/(1e3*60*60)),minutes:Math.floor(s%(1e3*60*60)/(1e3*60)),seconds:Math.floor(s%(1e3*60)/1e3)});},1e3);return o}};var Vr=class extends Be{gap;timer;timerType;horizontal;lblPos;show;constructor(e){e??={},super(e),this.gap=e.gap,this.timerType=e.type,this.timer=new Ct(e.timer),this.show=e.show??{day:true,hour:true,minute:true,second:true},this.horizontal=e.horizontal,this.lblPos=e.lblPos;}};var Wr=class{txt;c;constructor(e){e??={},this.txt=e.txt,this.c=new n$1(e.c??{});}get text(){return this.txt}get color(){return this.c}};var Ve=class extends Be{ph;constructor(e){super(e),this.ph=new Wr(e.ph);}get placeholderText(){return this.ph.text}get placeholderColor(){return this.ph.color.rgba}};var Hr=class extends Ve{constructor(e){e??={},super(e);}};var $r=class extends Ve{};var qr=class extends Ve{};var Gr=class extends tt{};var ce=(function(r){return r[r.NONE=0]=`NONE`,r[r.STATIC=1]=`STATIC`,r[r.UNIQUE_FLAT=2]=`UNIQUE_FLAT`,r[r.UNIQUE_FLAT_ITEMS=3]=`UNIQUE_FLAT_ITEMS`,r[r.UNIQUE_FIXED_ITEMS=4]=`UNIQUE_FIXED_ITEMS`,r[r.UNIQUE_CHEAPEST_ITEM_FREE=5]=`UNIQUE_CHEAPEST_ITEM_FREE`,r[r.BXGY=6]=`BXGY`,r})(ce||{});var De=class r{static of(e,t){return t!==void 0?new Array(e).fill(t):Array.from({length:e},(i,o)=>o)}static remove(e,t){let i=e.indexOf(t);return i===-1?false:(e.splice(i,1),true)}static swap(e,t,i){[e[t],e[i]]=[e[i],e[t]];}static sum(e,t){return e.reduce((i,o)=>i+Math.max(t?t(o):+o,0),0)}static unique(e,t){return e.filter((i,o,n)=>n.findIndex(s=>s[t]===i[t])===o)}static shuffle(e){let t=e.length;for(;t!=0;){let i=Math.floor(Math.random()*t);t--,r.swap(e,t,i);}}};var kn=(()=>{class r{static toTitle(t){return t?this.titleCase(t.toLowerCase().split(/[_-]+/).join(` `)):``}static toSlug(t){return t?t.toLowerCase().replace(/[_-]+/,` `).replace(/[^\w ]+/g,``).replace(/ +/g,`-`):``}static toCamelCase(t){return t.toLowerCase().split(` `).map((i,o)=>o===0?i:i.charAt(0).toUpperCase()+i.slice(1)).join(``)}static format(t,...i){return t?.replace(/{(\d+)}/g,(o,n)=>{let s=i[n];return s!==void 0?s:o})}static chop(t,i){if(!(!t||!i))return t.length<=i?t:t.substring(0,i)}static titleCase=t=>t.replace(/(^|\s)\S/g,i=>i.toUpperCase())}return r})();var jr=class{applyDiscountOnMinimum;constructor(e){this.applyDiscountOnMinimum=e.applyDiscountOnMinimum;}};var zr=class{modifications;constructor(e={}){e.modifications?.length?this.modifications=e.modifications.map(t=>new Kr(t)):e.experiments?.length&&(this.modifications=e.experiments.map(t=>new Kr(t)));}};var Kr=class{cssSelector;type;display;bg;typo;br;text;image;moveTo;constructor(e={}){this.cssSelector=e.cssSelector??``,this.type=e.type??`OTHER`,this.display=e.display,e.bg&&(this.bg=new n$1(e.bg)),e.typo&&(this.typo=new V(e.typo)),e.br&&(this.br=new a$2(e.br)),this.text=e.text,this.image=e.image,this.moveTo=e.moveTo;}get style(){let e={};return this.br?.r&&(e.borderRadius=this.br.r+`px`),this.br?.w&&(e.borderWidth=this.br.w+`px`),this.br?.s&&(e.borderStyle=w$2[this.br.s]?.toLowerCase()),this.br?.c?.h&&(e.borderColor=this.br.color?.rgba),this.bg?.h&&(e.backgroundColor=this.bg.rgba),this.type===`TEXT`&&this.typo&&(this.typo.fs&&(e.fontSize=this.typo.fs+`px`),this.typo.lh&&(e.lineHeight=this.typo.lh),this.typo.fw&&(e.fontWeight=this.typo.fw),this.typo.ta&&(e.textAlign=this.typo.alignment),this.typo.tc.h&&(e.color=this.typo.tc.rgba),this.typo.ls&&(e.letterSpacing=this.typo.letterSpacing),this.typo.td&&(e.textDecoration=this.typo.td??`none`)),e}toString(){return `Experiment(cssSelector=${this.cssSelector})`}};function Gt(){return !!window.Shopify}function Xr(){if(Gt())return window.Shopify.shop?.split(`.`)?.[0]}function An(r){let i=(r.includes(`://`)?new URL(r).pathname:r).match(/\/products\/([^/]+?)(?:\.html)?$/);return i?i[1]:null}function yt(r){return (window.Shopify?.routes?.root??`/`)+r.substring(1)}function Yr(r){return yt(r+`?from=cooee`)}var E=class r{static CURRENT;token;items=[];total_price=0;original_total_price=0;items_subtotal_price=0;currency;item_count=0;attributes;cart_level_discount_applications;discount_codes;total_discount=0;constructor(){}static getCurrent(){return this.CURRENT||(this.CURRENT=new r),this.CURRENT}async getNormalisedCart(e){return ua(e)}getCooeeCart(){return no()}update(e){return this.token=e.token,this.items=e.items,this.total_price=e.total_price,this.original_total_price=e.original_total_price,this.items_subtotal_price=e.items_subtotal_price,this.currency=e.currency,this.item_count=e.item_count,this.attributes=e.attributes,this.cart_level_discount_applications=e.cart_level_discount_applications,this.discount_codes=e.discount_codes,this.total_discount=e.total_discount,Be$3().currencyCode=this.currency,Y$1.verbose(`Updated ShopifyCart`,this),this}toString(){return `ShopifyCart(token: ${this.token}, itemCount: ${this.item_count})`}};async function ua(r){let e=E.getCurrent();await fa(e,r);let t=On(e);return r&&await fe$4.set(`cart`,t),t}function no(){return On(E.getCurrent())}function On(r){return {amount:r.total_price/100,originalAmount:r.original_total_price/100,itemsSubtotalPrice:r.items_subtotal_price/100,currency:r.currency,itemCount:r.item_count,items:ga(r.items),token:r.token}}function ga(r){if(!r)return Y$1.error(`No item received to be sent`),[];Array.isArray(r)||(r=[r]);let e=[];for(let t of r){if(!t.id||!t.title){Y$1.warn(`Invalid item received`,t);continue}let i={name:t.title,quantity:+t.quantity||1,mID:t.product_id?.toString(),vID:t.id.toString(),price:+t.price/100||0,finalPrice:+t.final_price/100||0,properties:t.properties,key:t.key},o=t.selling_plan_allocation?.selling_plan;if(!o){e.push(i);continue}i.sellingPlanAllocation={sellingPlan:{fixedSellingPlan:o.fixed_selling_plan,id:o.id,name:o.name,recurringDeliveries:o.recurring_deliveries}},e.push(i);}return e}async function fa(r,e){if(!e&&r.token){Y$1.verbose(`Not fetching cart`);return}Y$1.verbose(`Fetching cart`);let t=Yr(`/cart.js`);try{let i=(await jn$1(t)).data;r.update(i);}catch(i){Y$1.error(`Unable to fetch the cart`,i);}}var Jr=class{id;mID;handle;title;imageURL;constructor(e){e??={},this.id=e.id,this.mID=e.mID,this.handle=e.handle,this.title=e.title,this.imageURL=e.imageURL;}};var so=class{enabled;constructor(e){this.enabled=e.enabled;}},ao=class extends so{max;min;constructor(e){e??={},super(e),this.min=e.min,this.max=e.max;}},Qr=class{productQuantity;constructor(e){e??={},this.productQuantity=new ao(e.productQuantity);}};var Zr=class extends re{o;constructor(e){super(e),this.o=e.o??5,this.w=this.w??1080,this.h=this.h??1920;}getOrigin(){return this.o}};var ei=class{en;ex;constructor(e){e=e??{},this.en=e.en,this.ex=e.ex;}getEnterAnimation(){switch(this.en){case 2:return [{transform:`translateY(-100%)`},{transform:`translateY(0%)`}];case 3:return [{transform:`translateY(100%)`},{transform:`translateY(0%)`}];case 4:return [{transform:`translateX(-100%)`},{transform:`translateX(0%)`}];case 5:return [{transform:`translateX(100%)`},{transform:`translateX(0%)`}];case 6:return [{transform:`translate(-100%, -100%)`},{transform:`translate(0%, 0%)`}];case 7:return [{transform:`translate(100%, -100%)`},{transform:`translate(0%, 0%)`}];case 8:return [{transform:`translate(-100%, 100%)`},{transform:`translate(0%, 0%)`}];case 9:return [{transform:`translate(100%, 100%)`},{transform:`translate(0%, 0%)`}];case 10:return [{transform:`scale(0.1)`},{transform:`scale(1)`}];default:return []}}getExitAnimation(){switch(this.ex){case 2:return [{transform:`translateY(0%)`},{transform:`translateY(-100%)`}];case 3:return [{transform:`translateY(0%)`},{transform:`translateY(100%)`}];case 4:return [{transform:`translateX(0%)`},{transform:`translateX(-100%)`}];case 5:return [{transform:`translateX(0%)`},{transform:`translateX(100%)`}];case 6:return [{transform:`translate(0%, 0%)`},{transform:`translate(-100%, -100%)`}];case 7:return [{transform:`translate(0%, 0%)`},{transform:`translate(100%, -100%)`}];case 8:return [{transform:`translate(0%, 0%)`},{transform:`translate(-100%, 100%)`}];case 9:return [{transform:`translate(0%, 0%)`},{transform:`translate(100%, 100%)`}];case 10:return [{transform:`scale(1)`},{transform:`scale(0)`}];default:return []}}};var ti=15,zt=class extends re{gvt;max;cover;anim;embedded;constructor(e){e=e??{},super(e),this.gvt=e.gvt??5,this.max=e.max,this.cover=e.cover??true,this.anim=new ei(e.anim),this.spc||(this.spc=new b$2({pl:ti,pr:ti,pt:ti,pb:ti}));}};var ri=class extends zt{cont;elems=[];mob;constructor(e){e=e??{},super(e),this.cont=new Zr(e.cont),this.mob=new zt(e.mob),this.bg||(this.bg=this.cont.bg,delete this.cont.bg),e.elems.forEach(t=>{t.t===1?this.elems.push(new tt(t)):t.t===2?this.elems.push(new bt(t)):t.t===3?this.elems.push(new bt(t)):t.t===100?this.elems.push(new qt(t)):t.t===51?this.elems.push(new $r(t)):t.t===52?this.elems.push(new qr(t)):t.t===61?this.elems.push(new Vr(t)):t.t===15||t.t===16?this.elems.push(new Hr(t)):t.t===13&&this.elems.push(new Gr(t));});}getStylesForWrapper(){if(this.cover)return {};let e;return this.gvt===1?e={top:0,left:0}:this.gvt===2?e={top:0,left:`50%`,transform:`translateX(-50%)`}:this.gvt===3?e={top:0,right:0}:this.gvt===6?e={top:`50%`,right:0,transform:`translateY(-50%)`}:this.gvt===9?e={bottom:0,right:0}:this.gvt===8?e={bottom:0,left:`50%`,transform:`translateX(-50%)`}:this.gvt===7?e={bottom:0,left:0}:this.gvt===4?e={top:`50%`,left:0,transform:`translateY(-50%)`}:e={top:`50%`,left:`50%`,transform:`translateX(-50%) translateY(-50%)`},e.overflow=`visible`,e}getFlexStylesForContainer(){let e={display:`flex`,flexDirection:`row`},t,i;return this.gvt===1?(t=`flex-start`,i=`flex-start`):this.gvt===2?(t=`center`,i=`flex-start`):this.gvt===3?(t=`flex-end`,i=`flex-start`):this.gvt===4?(t=`flex-start`,i=`center`):this.gvt===6?(t=`flex-end`,i=`center`):this.gvt===7?(t=`flex-start`,i=`flex-end`):this.gvt===8?(t=`center`,i=`flex-end`):this.gvt===9?(t=`flex-end`,i=`flex-end`):(t=`center`,i=`center`),e.alignItems=i,e.justifyContent=t,e.overflow=`visible`,e}overrideForMobileView(){this.max=this.mob.max??this.max,this.cover=this.mob.cover??this.cover,this.gvt=this.mob.gvt??this.gvt,this.bg=this.mob.bg??this.bg,this.spc=this.mob.spc??this.spc,this.anim=this.mob.anim??this.anim;}};var Et=class{gap;dir;wrap;jc;ai;scroll;constructor(e){e??={},this.gap=e.gap??0,this.dir=e.dir??`row`,this.wrap=e.wrap??`nowrap`,this.jc=e.jc??`flex-start`,this.ai=e.ai??`flex-start`,this.scroll=e.scroll;}};var ii=class{of;disp;pos;top;bottom;left;right;zIndex;constructor(e){e??={},this.of=e.of,this.disp=e.disp,this.pos=e.pos,this.top=e.top,this.bottom=e.bottom,this.left=e.left,this.right=e.right,this.zIndex=e.zIndex;}};var oi=class{w;h;maxW;maxH;minW;minH;constructor(e){e??={},this.w=e.w??`100%`,this.h=e.h??`auto`,this.maxW=e.maxW,this.maxH=e.maxH,this.minW=e.minW,this.minH=e.minH;}};var ni=class{size;bg;br;spc;typo;lout;flex;constructor(e){e??={},this.spc=new b$2(e.spc),e.size&&(this.size=new oi(e.size)),e.bg&&(this.bg=new h$3(e.bg)),e.br&&(this.br=new a$2(e.br)),e.typo&&(this.typo=new V(e.typo)),e.lout&&(this.lout=new ii(e.lout)),e.flex&&(this.flex=new Et(e.flex));}},St=class{sm;lg;constructor(e){e??={},this.sm=new ni(e.sm),this.lg=new ni(e.lg);}};var H=class{t;style;hide;when;clc;l;constructor(e,t){t??={},this.t=e,this.style=new St(t.style),this.hide=t.hide,this.l=t.l,t.when?.op&&(this.when=t.when),t.clc&&(this.clc=t.clc);}get stringType(){return U[this.t]}};var $=class extends H{text;constructor(e,t){e?.style?.lg?.typo?.s&&delete e.style.lg.typo.s,e?.style?.sm?.typo?.s&&delete e.style.sm.typo.s,super(t??2,e),e??={},this.text=e.text;}};var rt=class extends ${constructor(e,t){super(e,t??3);}};var It=class extends H{value;constructor(e){super(6,e),e??={},this.value=e.value;}};var Tt=class extends ${showChips;optionsConfig;constructor(e=15,t){super(t,e),t??={},this.showChips=t.showChips??false,this.optionsConfig=t.optionsConfig??{};}};var si=class extends H{c;iconSize;showSingleStar;fullStar;halfStart;constructor(e){super(19,e),e??={},this.c=new n$1(e.c),this.iconSize=e.iconSize??24,this.showSingleStar=e.showSingleStar??false,this.fullStar=e.fullStar,this.halfStart=e.halfStart;}};var Ln=x$2(yt$1());var ai=class extends H{conf;slide;formData;values;allowedTypes;constructor(e){super(62,e),e&&this.update(e);}update(e){e??={},this.slide=ie.getParsedElement(e.slide),this.formData=e.formData,this.values=e.values,this.conf=new C$4(e.conf),this.allowedTypes=e.allowedTypes;}};var ci=class extends ${gap;timer;timerType;horizontal;lblPos;show;constructor(e){e??={},super(e,61),this.gap=e.gap,this.timerType=e.type,this.timer=new Ct(e.timer),this.show=e.show??{days:true,hours:true,minutes:true,seconds:true},this.horizontal=e.horizontal,this.lblPos=e.lblPos;}};var We=class extends H{elems;constructor(e){super(4,e),this.update(e);}update(e){e??={},this.elems??=[],e.elems?.forEach(t=>{let i=ie.getParsedElement(t);i&&this.elems.push(i);});}};var it=class extends H{src;sm;lg;constructor(e,t){super(t??1,e),e&&this.update(e);}update(e){this.src=e.src,this.sm=e.sm,this.lg=e.lg;}};var ie=class r{static getParsedElements(e){let t=[];return e?.forEach(i=>{let o=r.getParsedElement(i);o&&t.push(o);}),t}static getParsedElement(e){switch(e.t){case 2:return new $(e);case 3:return new rt(e);case 6:return new It(e);case 11:return new li(e);case 12:return new He(e);case 61:return new ci(e);case 4:return new We(e);case 1:return new it(e);case 13:return new it(e,13);case 14:return new $(e,14);case 15:case 16:return new Tt(e.t,e);case 18:return new rt(e,18);case 62:return new ai(e);case 19:return new si(e);default:Ln.default.error(`Unknown element type`,e.t);return}}static parseAlignmentToJustifyContent(e){switch(e){case 1:return `center`;case 2:return `flex-end`;case 0:return `flex-start`;default:return `flex-start`}}};var He=class extends H{img;title;desc;price;compareAt;btn;variantDD;show;symbol;cBox;elems;noLinks;constructor(e){if(e??={},super(12,e),this.show=e.show,this.elems=ie.getParsedElements(e.elems),this.noLinks=e.noLinks,!this.elems.length){e.cBox&&this.elems.push(new It(e.cBox)),this.elems.push(new it(e.img,13));let t=new $(e.title,14);t.hide=!e.show?.title,t.text=`{{ product.name }}`,this.elems.push(t);let i=new $(e.price);i.text=`{{ product.price }}`,i.hide=!e.show?.price;let o=new $(e.compareAt);o.text=`{{ product.compare_price }}`,o.hide=!e.show?.price,e.compareAt||(o.style=new St(i.style),o.style.lg.typo=new V(s(r({},o.style.lg.typo),{td:`line-through`})),o.style.sm.typo=new V(s(r({},o.style.sm.typo),{td:`line-through`})));let n=new We({style:{lg:{spc:{mb:10},flex:{dir:`row`,gap:10,ai:`center`,jc:ie.parseAlignmentToJustifyContent(i.style.lg.typo?.ta)}}}});n.elems.push(o),n.elems.push(i),this.elems.push(n);let s$1=new Tt(15,e.variantDD);if(s$1.hide=!e.show?.variantDD,this.elems.push(s$1),e.btn){let c=new rt(e.btn,18);c.hide=!e.show?.btn,this.elems.push(c);}}e.symbol&&(this.symbol=new $(e.symbol));}};var li=class extends H{conf;prod;constructor(e){super(11,e),e??={},this.conf=new co(e.conf),this.prod=new He(e.prod);}};var mi=class extends C$4{disp;maxItems;constructor(e){e??={},super(e),this.disp=e.disp,this.maxItems=e.maxItems;}},co=class{lg;sm;constructor(e){e??={},this.lg=new mi(e.lg),this.sm=new mi(e.sm);}};var pi=class extends We{constructor(e){super(e);}};var xt=class{cont;elems=[];constructor(e){e=e??{},this.cont=new pi(e.cont),e.elems?.forEach(t=>{this.addRawElement(t);});}addRawElement(e){let t=ie.getParsedElement(e);return t&&this.elems.push(t),t}};function di(r,e){return ha(r,e,0,5)}function ha(r,e,t=0,i=50){if(e){if(t>i){console.warn(`Maximum recursion depth reached in findFirstElementOfType`);return}for(let o of e){if(o.t===r)return o;let n=`elems`in o?o.elems:[];if(n?.length>0){let s=di(r,n);if(s)return s}}}}var lo=class{engagementID;shortID;contentType;delay;onsiteDeliveryType;objective;redirectBehaviour;constructor(e){this.shortID=e.shortID,this.contentType=e.contentType,this.engagementID=e.engagementID,this.delay=e.delay??0,this.redirectBehaviour=e.redirectBehaviour,this.onsiteDeliveryType=e.onsiteDeliveryType,this.objective=e.objective;}isAnySplit(){return this.isABTesting()||this.isExclusionTesting()}isExclusionTesting(){return this.contentType===Ue.EXCLUSION}isABTesting(){return this.contentType===Ue.ABTESTING}isSingleContent(){return this.contentType===Ue.SINGLE}},Kt=class{videoConfig;savingsBarConfig;collectionFilterConfig;afterDeleteJS;afterRenderJS;innerCSS;outerCSS;constructor(e){this.update(e);}update(e){e??={},e.videoConfig&&(this.videoConfig=new ue$2(e.videoConfig)),e.savingsBarConfig&&(this.savingsBarConfig=new Ne$1(e.savingsBarConfig)),e.collectionFilterConfig&&(this.collectionFilterConfig=new Ie$1(e.collectionFilterConfig)),this.afterDeleteJS=e.afterDeleteJS,this.afterRenderJS=e.afterRenderJS,this.innerCSS=e.innerCSS,this.outerCSS=e.outerCSS;}},q=class extends lo{contentID;variation;ian;widget;discount;placement;promotionType;contentSource;manipulation;klaviyoFormID;entryAnimation;hasMultiplePlacement;skipSubscribedItems;progressBarConfig;stickyATCConfig;bundleConfig;content;previewType;occurred;id;currency;props;items;nonMutableItems;embeddedItems;bundleFrom;collections;customerData;experimentConfig;discountData=T$1({});constructor(e){if(super(e),this.id=e.id,this.currency=Be$3().currencyCode??`USD`,this.contentID=e.contentID,this.variation=e.variation,e.widget&&(this.widget=new xt(e.widget)),this.previewType=e.previewType,this.occurred=e.occurred??new Date,this.props=e.props,this.entryAnimation=e.entryAnimation??`NONE`,this.embeddedItems=e.embeddedItems?.map(t=>new et(t)),this.items=e.items?.map(t=>new ot$2(t))??[],this.nonMutableItems=e.items?.map(t=>new ot$2(t))??[],this.collections=e.collections?.map(t=>new Jr(t))??[],this.discount=e.discount,this.placement=e.placement,e.customerData?.name){let t=e.customerData.name.split(` `);this.customerData={name:e.customerData.name,full_name:e.customerData.name,first_name:t[0],last_name:t[1]};}this.ian=e.ian?this.processPopup(e.ian):void 0,this.promotionType=e.promotionType,this.manipulation=new Qr(e.manipulation),this.contentSource=e.contentSource,this.klaviyoFormID=e.klaviyoFormID,this.hasMultiplePlacement=e.hasMultiplePlacement,this.skipSubscribedItems=e.skipSubscribedItems,this.stickyATCConfig=e.stickyATCConfig,e.experimentConfig&&(this.experimentConfig=new zr(e.experimentConfig)),e.progressBarConfig&&(this.progressBarConfig=new xe$1(e.progressBarConfig)),e.bundleConfig&&(this.bundleConfig=new jr(e.bundleConfig)),e.bundleFrom&&(this.bundleFrom=new ot$2(e.bundleFrom)),e.content&&(this.content=new Kt(e.content));}shouldDelay(){return this.delay>0}getDelaySeconds(){let e=new Date().getTime()-this.occurred.getTime();return this.delay*1e3-e}isBundle(){return this.objective===ke$1.BUNDLE_AND_UPSELL}isCartEmbed(){return this.onsiteDeliveryType===Ge$1.CART_EMBED}isPageEmbed(){return this.onsiteDeliveryType===Ge$1.PAGE_EMBED}isProgressBar(){return this.objective===ke$1.PROGRESS_BAR}isSubscriptionUpsell(){return this.objective===ke$1.SUBSCRIPTION_UPSELL}isCartRecovery(){return this.objective===ke$1.CART_RECOVERY}isProductPromotion(){return this.objective===ke$1.PRODUCT_PROMOTION}isProductPromoted(){return this.isProductPromotion()||this.isBundle()||this.isCartRecovery()}isCollectionPromoted(){return this.isProductPromotion()&&this.collections.length>0&&this.promotionType===xe$2.COLLECTION}isBYOB(){return this.objective===ke$1.BYOB}isStickyATC(){return this.objective===ke$1.STICKY_ATC}isShoppableVideo(){return this.objective===ke$1.SHOPPABLE_VIDEO}isSavingsBar(){return this.objective===ke$1.SAVINGS_BAR}isCollectionFilter(){return this.objective===ke$1.COLLECTION_FILTER}processPopup(e){let t=this.items[0],i={},o={};if(t){let c=t.selectedOrFirstVariant.value;i=s(r(r({name:t.name,id:t.mID,link:t.link,vID:c.mID,image:t.variantImage},An$1(`price`,c.price.d)),An$1(`comparePrice`,c.price.cmp)),{quantity:t.quantity}),o={quantity:c.quantity};}let n={productCount:E.getCurrent().item_count},s$2=qe$1(JSON.stringify(e),{product:i,variant:o,cart:n,discount:this.discount,customer:this.customerData},new Fe(new Date,this));return t&&(s$2=s$2.replace(new RegExp(`https://cdn.global.letscooee.com/images/placeholders/product.png`,`gi`),t.variantImage??t.firstImageURL)),new ri(JSON.parse(s$2))}calculateDiscountData(e,t){let i=De.sum(e,s=>s.selectedOrFirstVariant.value.price.d),n={actualPrice:i,totalComparePrice:De.sum(e,s=>{let c=s.selectedOrFirstVariant.value.price;return c.cmp??c.d}),discountAmount:0,discountPercentage:0,discountedPrice:i};if(!e?.length||!t||!this.discount?.type){this.discountData.value=this.formatCurrencyAndNumber(n);return}if(ce.BXGY===this.discount.type&&this.discount.values?.length)n.discountPercentage=this.discount.values[0],this.updateEffectivePrice(e,n.discountPercentage,true),n.discountAmount=n.actualPrice-De.sum(e,s=>s.selectedOrFirstVariant.value.effectivePrice.value);else if([ce.STATIC,ce.UNIQUE_FLAT].includes(this.discount.type)&&this.discount.values?.length)n.discountPercentage=this.discount.values[0],n.discountAmount=n.actualPrice*n.discountPercentage/100,this.updateEffectivePrice(e,n.discountPercentage);else if(ce.UNIQUE_FLAT_ITEMS===this.discount.type&&this.discount.values?.length)this.discount.ruleType===`fixed_amount`?(n.discountAmount=this.discount.values[0],n.discountPercentage=n.actualPrice>0?n.discountAmount*100/n.actualPrice:0):(n.discountPercentage=this.discount.values[0],n.discountAmount=n.actualPrice*n.discountPercentage/100),this.updateEffectivePrice(e,n.discountPercentage);else if(this.discount.type===ce.UNIQUE_FIXED_ITEMS&&this.discount.values?.length)n.discountAmount=n.actualPrice-this.discount.values[0],n.discountPercentage=n.discountAmount/n.actualPrice*100,this.updateEffectivePrice(e,n.discountPercentage);else if(this.discount.type===ce.UNIQUE_CHEAPEST_ITEM_FREE){e.sort((c,l)=>l.selectedOrFirstVariant.value.price.d-c.selectedOrFirstVariant.value.price.d);let s=e[e.length-1];s.selectedOrFirstVariant.value.effectivePrice.value=0,n.discountAmount=s.selectedOrFirstVariant.value.price.d,n.discountPercentage=n.discountAmount/n.actualPrice*100;}n.discountedPrice=n.actualPrice-n.discountAmount,this.discountData.value=this.formatCurrencyAndNumber(n);}getPrivateAttributesForLineItem(){return he$3.get().skipItemAttribute?{}:{_via:`Cooee`,_letscooee_campaign:this.shortID,_letscooee_content:this.contentID}}getKVFormatPrivateAttributesForLineItem(){return he$3.get().skipItemAttribute?[]:[{key:`_via`,value:`Cooee`},{key:`_letscooee_campaign`,value:this.shortID},{key:`_letscooee_content`,value:this.contentID}]}isBundleOnCartDrawer(){return this.isBundle()&&this.isCartEmbed()}isBundleOnPDP(){return this.isPageEmbed()&&this.isBundle()}hasSwiperElement(){if(di(62,this.widget?.elems))return true;let t=di(11,this.widget?.elems);return t?t.conf.lg.disp===2||t.conf.sm.disp===2:false}toString(){let e;return this.onsiteDeliveryType===Ge$1.POPUP?e=`Popup`:e=kn.toTitle(this.objective),`${e}(id=${this.shortID})`}getCartMagicVariables(){let e=E.getCurrent(),t=De.sum(e.items??[],i=>i.discounts?.reduce((o,n)=>o+(n.amount??0),0)??0);return r(r(r(r({productCount:e.item_count,product_count:e.item_count},An$1(`amount`,e.total_price/100)),An$1(`originalAmount`,e.original_total_price/100)),An$1(`total_line_items_discount`,t/100)),An$1(`total_discount`,e.total_discount/100))}shouldGetVariationImmediately(){return this.hasMultiplePlacement&&!this.alwaysHaveVariations()}shouldSkipVariation(){return this.isSingleContent()||this.alwaysHaveVariations()?true:!!this.variation}alwaysHaveVariations(){return this.isProgressBar()||this.isSavingsBar()}updateEffectivePrice(e,t,i=false){let o=Be$3().currentItem;e.forEach(n=>{let s=n.selectedOrFirstVariant.value,c=s.price;if(i&&n.mID===o.mID)s.effectivePrice.value=c.d;else {let l=c.d*t/100;s.effectivePrice.value=c.d-l;}});}formatCurrencyAndNumber(e){if(!e)return {};let t={discountPercentage:xn(e.discountPercentage??0),discountCode:this.discount?.code};return [`actualPrice`,`discountAmount`,`discountedPrice`,`totalComparePrice`].map(i=>{Object.assign(t,An$1(i,e[i]));}),t}};var ba=`/api/2026-01/graphql.json?from=cooee`,Nn={"Content-Type":`application/json`};async function Pt(r,e,t,i){let o=he$3.get().storefrontToken;if(!o)throw new Error(`Storefront token not set for the store`);let n=new Headers(Nn);n.append(`X-Shopify-Storefront-Access-Token`,o);let s=JSON.stringify({query:r,variables:e});try{return await jn$1(ba,{method:`POST`,headers:n,body:s})}catch(c){throw ke$2(c,t,{engagementTrigger:i}),c}}function ot(r,e){return Ca(Yr(r),e)}async function Ca(r,e){return jn$1(r,{body:JSON.stringify(e),method:`POST`,headers:Nn})}var ui=class{isLocked=false;queue=[];async acquire(){if(this.isLocked)await new Promise(e=>this.queue.push(e));else {this.isLocked=true;return}}release(){if(this.queue.length>0){let e=this.queue.shift();e&&e();}else this.isLocked=false;}},gi=class r{static LOCK_TIMEOUT=1e4;static RETRY_INTERVAL=200;static MAX_RETRIES=50;static async request(e,t){if(e=`__cooee_${e}_lock__`,`locks`in navigator&&!Ea())try{return await ya(e,t,this.LOCK_TIMEOUT)}catch(s){Y$1.verbose(`Web Locks API failed, falling back to localStorage: ${s}`);}let i=false,o=0,n=Math.random().toString(36).substring(2,10);for(;o++<this.MAX_RETRIES&&(Y$1.verbose(`Lock retry ${o} for ${e}`),i=await this.acquire(e,n,o),!i);)await this.sleep(r.RETRY_INTERVAL*o+Math.random()*100);try{return await t()}finally{this.release(e,n);}}static async acquire(e,t,i){let o=Date.now(),n=localStorage.getItem(e),s=n?JSON.parse(n):null;if(s&&o<=s.expiry)return false;let c={owner:t,expiry:o+r.LOCK_TIMEOUT};return localStorage.setItem(e,JSON.stringify(c)),await this.sleep(150+Math.random()*100),JSON.parse(localStorage.getItem(e)||`{}`).owner===t?(Y$1.verbose(`${t}: Lock acquired for ${e} after ${i} attempts!`),true):(Y$1.verbose(`${t}: Race lost. Another tab acquired the lock.`),false)}static release(e,t){let i=localStorage.getItem(e);if(!i)return;let o=JSON.parse(i);o.owner===t?(localStorage.removeItem(e),Y$1.verbose(`${t}: Lock released`)):Y$1.verbose(`${t}: Cannot release lock. Current owner: ${o.owner}`);}static sleep(e){return new Promise(t=>setTimeout(t,e))}};async function ya(r,e,t){return new Promise((i,o)=>{let n=setTimeout(()=>{o(new Error(`Web Locks API timeout after ${t}ms`));},t);navigator.locks.request(r,async()=>{try{let s=await e();return clearTimeout(n),i(s),s}catch(s){throw clearTimeout(n),o(s),s}}).catch(s=>{clearTimeout(n),o(s);});})}function Ea(){let r=navigator.userAgent||``;return /Safari/.test(r)&&!/Chrome/.test(r)&&!/Chromium/.test(r)||/iPhone|iPad|iPod/i.test(r)&&(/(FBAV|FBAN|Instagram|Twitter|Line|WhatsApp)/i.test(r)||!window.safari?.pushNotificaTion)||/Macintosh/.test(r)&&/Safari/.test(r)&&!/Chrome/.test(r)&&!/Chromium/.test(r)&&!window.safari?.pushNotification?true:Sa()}function Sa(){try{return window.safari?.pushNotification?window.safari.pushNotification.toString()===`[object SafariRemoteNotification]`:!window.indexedDB||!window.localStorage}catch{return true}}var mo=new ui,Ia=`
28
+ var Fe=class{constructor(e,t){this._startTime=e;this._triggerData=t;}intervals=[];selectedEmbeddedItems;renderer;closeCallback;inputFields=[];get startTime(){return this._startTime}get triggerData(){return this._triggerData}get inputs(){return this.inputFields}get rootClassName(){let e=this.triggerData.shortID??this.triggerData.id.slice(-6);return e===`test`&&(e=`test-`+this.startTime.getTime().toString()),`cooee-wrapper-`+e}get selectedItems(){return this.triggerData.items.filter(e=>e.selected.value)}get shouldGiveFBTDiscount(){let e=this.selectedItems.length;return this.triggerData.bundleConfig?.applyDiscountOnMinimum?this.triggerData.bundleConfig.applyDiscountOnMinimum<=e:e===this.triggerData.items.length}onClose(e){this.closeCallback=e;}closeInApp(e,t){t??={};let o=r({eventName:e,duration:(new Date().getTime()-this.startTime.getTime())/1e3},t);this.stopIntervals(),this.closeCallback&&this.closeCallback(o);}addInputField(e,t){this.inputFields.push({id:e,type:t,isValid:false});}updateValidation(e,t){this.inputFields.forEach(i=>{if(i.id===e){i.isValid=t;return}});}hasManipulatedProductQuantity(){let e=this.triggerData.manipulation.productQuantity;return e?.enabled&&e.min!=null&&e.max!=null}getManipulatedQuantity(e){let{min:t=1,max:i=100}=this.triggerData.manipulation.productQuantity;if(t>i)return Y$1.error(`Invalid range: min should be less than or equal to max.`),e;if(e>=t&&e<=i)return e;let o=e%100;return o<t?t:o>i?i:o}stopIntervals(){this.intervals.forEach(e=>clearInterval(e));}};var re=class{t;bg;br;clc;shd;spc;trf;a;w;h;x;y;constructor(e){this.t=e.t,e.bg&&(this.bg=new h$3(e.bg)),e.br&&(this.br=new a$2(e.br)),e.shd&&(this.shd=new g$2(e.shd)),e.spc&&(this.spc=new b$2(e.spc)),this.trf=new f(e.trf),this.clc=e.clc,this.w=e.w,this.h=e.h,this.x=e.x,this.y=e.y,this.a=e.a;}get alpha(){return this.a??100}get type(){return this.t}get typeAsString(){return U[this.t]}get click(){return this.clc}},U=(b=>(b[b.IMAGE=1]=`IMAGE`,b[b.TEXT=2]=`TEXT`,b[b.BUTTON=3]=`BUTTON`,b[b.FLEXBOX=4]=`FLEXBOX`,b[b.MULTI_COLUMN=5]=`MULTI_COLUMN`,b[b.CHECKBOX=6]=`CHECKBOX`,b[b.PRODUCTS=11]=`PRODUCTS`,b[b.PRODUCT=12]=`PRODUCT`,b[b.PRODUCT_IMAGE=13]=`PRODUCT_IMAGE`,b[b.PRODUCT_TITLE=14]=`PRODUCT_TITLE`,b[b.PRODUCT_VARIATIONS=15]=`PRODUCT_VARIATIONS`,b[b.PRODUCT_VARIATIONS_SELLING_PLANS=16]=`PRODUCT_VARIATIONS_SELLING_PLANS`,b[b.PRODUCT_BUTTON=18]=`PRODUCT_BUTTON`,b[b.PRODUCT_RATING=19]=`PRODUCT_RATING`,b[b.EMAIL_INPUT=51]=`EMAIL_INPUT`,b[b.PHONE_INPUT=52]=`PHONE_INPUT`,b[b.COUNTDOWN_TIMER=61]=`COUNTDOWN_TIMER`,b[b.CAROUSEL=62]=`CAROUSEL`,b[b.SHAPE=100]=`SHAPE`,b))(U||{});var qt=class extends re{constructor(e){super(e);}};var tt=class extends re{src;constructor(e){super(e),this.src=e.src;}};var Fr=(o=>(o[o.START=0]=`START`,o[o.CENTER=1]=`CENTER`,o[o.END=2]=`END`,o[o.JUSTIFY=3]=`JUSTIFY`,o))(Fr||{});var Br=class{name;fonts;constructor(e){e=e??{},e.name&&(e.name=e.name!==`Arial`?e.name:``),this.name=e.name,this.fonts=e.fonts?.map(t=>new oo(t));}},oo=class{style;url;constructor(e){e=e??{},this.style=e.style,this.url=e.url;}getFontDescriptor(){return {style:this.style===2||this.style===4?`italic`:`normal`,weight:this.style===4||this.style===3?`700`:`400`}}getURL(){return `url('${this.url}') format('truetype')`}};var V=class{fw;fs;fam;fmly;lh=1.2;ls;s;tc;ta;td;tdc;constructor(e){this.update(e);}get alignment(){return Fr[this.ta]}get letterSpacing(){return this.ls?this.ls+`px`:`normal`}update(e){e=e??{},e.lh&&(this.lh=e.lh),e.tdc&&(this.tdc=new n$1(e.tdc)),this.td=e.td,this.fs=e.s??e.fs??60,this.tc=new n$1(e.tc),this.ta=e.ta??1,this.fw=e.fw??400,this.ls=e.ls??0,this.tc.h??=`#000000`,this.fam=new Br(e.fam??e.fmly);}resize(e){this.s*=e,this.ls*=e;}};var Be=class extends re{typo;constructor(e){super(e);let t=r(r({},e.f),e.typo);e.alg&&(t.ta=e.alg),e.c&&(t.tc=e.c),this.typo=new V(t);}get color(){return this.typography.tc}get typography(){return this.typo}};var Ct=class extends Be{prs;constructor(e){super(e),this.prs=e.prs;}get parts(){return this.prs}};var bt=class{dd;hh;mm;ss;date;constructor(e){e??={},this.dd=e.dd??0,this.hh=e.hh??0,this.mm=e.mm??0,this.ss=e.ss??0,this.date=e.date?new Date(e.date):void 0;}start(e,t){let i=new Date;e===2?(i.setSeconds(i.getSeconds()+this.ss),i.setMinutes(i.getMinutes()+this.mm),i.setHours(i.getHours()+this.hh),i.setDate(i.getDate()+this.dd)):i=this.date??new Date;let o=window.setInterval(()=>{let n=new Date().getTime(),s=i.getTime()-n;if(s<1){clearInterval(o);return}t({days:Math.floor(s/(1e3*60*60*24)),hours:Math.floor(s%(1e3*60*60*24)/(1e3*60*60)),minutes:Math.floor(s%(1e3*60*60)/(1e3*60)),seconds:Math.floor(s%(1e3*60)/1e3)});},1e3);return o}};var Vr=class extends Be{gap;timer;timerType;horizontal;lblPos;show;constructor(e){e??={},super(e),this.gap=e.gap,this.timerType=e.type,this.timer=new bt(e.timer),this.show=e.show??{day:true,hour:true,minute:true,second:true},this.horizontal=e.horizontal,this.lblPos=e.lblPos;}};var Wr=class{txt;c;constructor(e){e??={},this.txt=e.txt,this.c=new n$1(e.c??{});}get text(){return this.txt}get color(){return this.c}};var Ve=class extends Be{ph;constructor(e){super(e),this.ph=new Wr(e.ph);}get placeholderText(){return this.ph.text}get placeholderColor(){return this.ph.color.rgba}};var Hr=class extends Ve{constructor(e){e??={},super(e);}};var $r=class extends Ve{};var qr=class extends Ve{};var Gr=class extends tt{};var ce=(function(r){return r[r.NONE=0]=`NONE`,r[r.STATIC=1]=`STATIC`,r[r.UNIQUE_FLAT=2]=`UNIQUE_FLAT`,r[r.UNIQUE_FLAT_ITEMS=3]=`UNIQUE_FLAT_ITEMS`,r[r.UNIQUE_FIXED_ITEMS=4]=`UNIQUE_FIXED_ITEMS`,r[r.UNIQUE_CHEAPEST_ITEM_FREE=5]=`UNIQUE_CHEAPEST_ITEM_FREE`,r[r.BXGY=6]=`BXGY`,r})(ce||{});var De=class r{static of(e,t){return t!==void 0?new Array(e).fill(t):Array.from({length:e},(i,o)=>o)}static remove(e,t){let i=e.indexOf(t);return i===-1?false:(e.splice(i,1),true)}static swap(e,t,i){[e[t],e[i]]=[e[i],e[t]];}static sum(e,t){return e.reduce((i,o)=>i+Math.max(t?t(o):+o,0),0)}static unique(e,t){return e.filter((i,o,n)=>n.findIndex(s=>s[t]===i[t])===o)}static shuffle(e){let t=e.length;for(;t!=0;){let i=Math.floor(Math.random()*t);t--,r.swap(e,t,i);}}};var kn=(()=>{class r{static toTitle(t){return t?this.titleCase(t.toLowerCase().split(/[_-]+/).join(` `)):``}static toSlug(t){return t?t.toLowerCase().replace(/[_-]+/,` `).replace(/[^\w ]+/g,``).replace(/ +/g,`-`):``}static toCamelCase(t){return t.toLowerCase().split(` `).map((i,o)=>o===0?i:i.charAt(0).toUpperCase()+i.slice(1)).join(``)}static format(t,...i){return t?.replace(/{(\d+)}/g,(o,n)=>{let s=i[n];return s!==void 0?s:o})}static chop(t,i){if(!(!t||!i))return t.length<=i?t:t.substring(0,i)}static titleCase=t=>t.replace(/(^|\s)\S/g,i=>i.toUpperCase())}return r})();var jr=class{applyDiscountOnMinimum;constructor(e){this.applyDiscountOnMinimum=e.applyDiscountOnMinimum;}};var zr=class{modifications;constructor(e={}){e.modifications?.length?this.modifications=e.modifications.map(t=>new Kr(t)):e.experiments?.length&&(this.modifications=e.experiments.map(t=>new Kr(t)));}};var Kr=class{cssSelector;type;display;bg;typo;br;text;image;moveTo;constructor(e={}){this.cssSelector=e.cssSelector??``,this.type=e.type??`OTHER`,this.display=e.display,e.bg&&(this.bg=new n$1(e.bg)),e.typo&&(this.typo=new V(e.typo)),e.br&&(this.br=new a$2(e.br)),this.text=e.text,this.image=e.image,this.moveTo=e.moveTo;}get style(){let e={};return this.br?.r&&(e.borderRadius=this.br.r+`px`),this.br?.w&&(e.borderWidth=this.br.w+`px`),this.br?.s&&(e.borderStyle=w$2[this.br.s]?.toLowerCase()),this.br?.c?.h&&(e.borderColor=this.br.color?.rgba),this.bg?.h&&(e.backgroundColor=this.bg.rgba),this.type===`TEXT`&&this.typo&&(this.typo.fs&&(e.fontSize=this.typo.fs+`px`),this.typo.lh&&(e.lineHeight=this.typo.lh),this.typo.fw&&(e.fontWeight=this.typo.fw),this.typo.ta&&(e.textAlign=this.typo.alignment),this.typo.tc.h&&(e.color=this.typo.tc.rgba),this.typo.ls&&(e.letterSpacing=this.typo.letterSpacing),this.typo.td&&(e.textDecoration=this.typo.td??`none`)),e}toString(){return `Experiment(cssSelector=${this.cssSelector})`}};function Gt(){return !!window.Shopify}function Xr(){if(Gt())return window.Shopify.shop?.split(`.`)?.[0]}function An(r){let i=(r.includes(`://`)?new URL(r).pathname:r).match(/\/products\/([^/]+?)(?:\.html)?$/);return i?i[1]:null}function yt(r){return (window.Shopify?.routes?.root??`/`)+r.substring(1)}function Yr(r){return yt(r+`?from=cooee`)}var E=class r{static CURRENT;token;items=[];total_price=0;original_total_price=0;items_subtotal_price=0;currency;item_count=0;attributes;cart_level_discount_applications;discount_codes;total_discount=0;constructor(){}static getCurrent(){return this.CURRENT||(this.CURRENT=new r),this.CURRENT}async getNormalisedCart(e){return ua(e)}getCooeeCart(){return no()}update(e){return this.token=e.token,this.items=e.items,this.total_price=e.total_price,this.original_total_price=e.original_total_price,this.items_subtotal_price=e.items_subtotal_price,this.currency=e.currency,this.item_count=e.item_count,this.attributes=e.attributes,this.cart_level_discount_applications=e.cart_level_discount_applications,this.discount_codes=e.discount_codes,this.total_discount=e.total_discount,Be$3().currencyCode=this.currency,Y$1.verbose(`Updated ShopifyCart`,this),this}toString(){return `ShopifyCart(token: ${this.token}, itemCount: ${this.item_count})`}};async function ua(r){let e=E.getCurrent();await fa(e,r);let t=On(e);return r&&await fe$4.set(`cart`,t),t}function no(){return On(E.getCurrent())}function On(r){return {amount:r.total_price/100,originalAmount:r.original_total_price/100,itemsSubtotalPrice:r.items_subtotal_price/100,currency:r.currency,itemCount:r.item_count,items:ga(r.items),token:r.token,discountCodes:r.discount_codes?.filter(e=>e.applicable).map(e=>e.code)||[]}}function ga(r){if(!r)return Y$1.error(`No item received to be sent`),[];Array.isArray(r)||(r=[r]);let e=[];for(let t of r){if(!t.id||!t.title){Y$1.warn(`Invalid item received`,t);continue}let i={name:t.title,quantity:+t.quantity||1,mID:t.product_id?.toString(),vID:t.id.toString(),price:+t.price/100||0,finalPrice:+t.final_price/100||0,properties:t.properties,key:t.key},o=t.selling_plan_allocation?.selling_plan;if(!o){e.push(i);continue}i.sellingPlanAllocation={sellingPlan:{fixedSellingPlan:o.fixed_selling_plan,id:o.id,name:o.name,recurringDeliveries:o.recurring_deliveries}},e.push(i);}return e}async function fa(r,e){if(!e&&r.token){Y$1.verbose(`Not fetching cart`);return}Y$1.verbose(`Fetching cart`);let t=Yr(`/cart.js`);try{let i=(await jn$1(t)).data;r.update(i);}catch(i){Y$1.error(`Unable to fetch the cart`,i);}}var Jr=class{id;mID;handle;title;imageURL;constructor(e){e??={},this.id=e.id,this.mID=e.mID,this.handle=e.handle,this.title=e.title,this.imageURL=e.imageURL;}};var so=class{enabled;constructor(e){this.enabled=e.enabled;}},ao=class extends so{max;min;constructor(e){e??={},super(e),this.min=e.min,this.max=e.max;}},Qr=class{productQuantity;constructor(e){e??={},this.productQuantity=new ao(e.productQuantity);}};var Zr=class extends re{o;constructor(e){super(e),this.o=e.o??5,this.w=this.w??1080,this.h=this.h??1920;}getOrigin(){return this.o}};var ei=class{en;ex;constructor(e){e=e??{},this.en=e.en,this.ex=e.ex;}getEnterAnimation(){switch(this.en){case 2:return [{transform:`translateY(-100%)`},{transform:`translateY(0%)`}];case 3:return [{transform:`translateY(100%)`},{transform:`translateY(0%)`}];case 4:return [{transform:`translateX(-100%)`},{transform:`translateX(0%)`}];case 5:return [{transform:`translateX(100%)`},{transform:`translateX(0%)`}];case 6:return [{transform:`translate(-100%, -100%)`},{transform:`translate(0%, 0%)`}];case 7:return [{transform:`translate(100%, -100%)`},{transform:`translate(0%, 0%)`}];case 8:return [{transform:`translate(-100%, 100%)`},{transform:`translate(0%, 0%)`}];case 9:return [{transform:`translate(100%, 100%)`},{transform:`translate(0%, 0%)`}];case 10:return [{transform:`scale(0.1)`},{transform:`scale(1)`}];default:return []}}getExitAnimation(){switch(this.ex){case 2:return [{transform:`translateY(0%)`},{transform:`translateY(-100%)`}];case 3:return [{transform:`translateY(0%)`},{transform:`translateY(100%)`}];case 4:return [{transform:`translateX(0%)`},{transform:`translateX(-100%)`}];case 5:return [{transform:`translateX(0%)`},{transform:`translateX(100%)`}];case 6:return [{transform:`translate(0%, 0%)`},{transform:`translate(-100%, -100%)`}];case 7:return [{transform:`translate(0%, 0%)`},{transform:`translate(100%, -100%)`}];case 8:return [{transform:`translate(0%, 0%)`},{transform:`translate(-100%, 100%)`}];case 9:return [{transform:`translate(0%, 0%)`},{transform:`translate(100%, 100%)`}];case 10:return [{transform:`scale(1)`},{transform:`scale(0)`}];default:return []}}};var ti=15,zt=class extends re{gvt;max;cover;anim;embedded;constructor(e){e=e??{},super(e),this.gvt=e.gvt??5,this.max=e.max,this.cover=e.cover??true,this.anim=new ei(e.anim),this.spc||(this.spc=new b$2({pl:ti,pr:ti,pt:ti,pb:ti}));}};var ri=class extends zt{cont;elems=[];mob;constructor(e){e=e??{},super(e),this.cont=new Zr(e.cont),this.mob=new zt(e.mob),this.bg||(this.bg=this.cont.bg,delete this.cont.bg),e.elems.forEach(t=>{t.t===1?this.elems.push(new tt(t)):t.t===2?this.elems.push(new Ct(t)):t.t===3?this.elems.push(new Ct(t)):t.t===100?this.elems.push(new qt(t)):t.t===51?this.elems.push(new $r(t)):t.t===52?this.elems.push(new qr(t)):t.t===61?this.elems.push(new Vr(t)):t.t===15||t.t===16?this.elems.push(new Hr(t)):t.t===13&&this.elems.push(new Gr(t));});}getStylesForWrapper(){if(this.cover)return {};let e;return this.gvt===1?e={top:0,left:0}:this.gvt===2?e={top:0,left:`50%`,transform:`translateX(-50%)`}:this.gvt===3?e={top:0,right:0}:this.gvt===6?e={top:`50%`,right:0,transform:`translateY(-50%)`}:this.gvt===9?e={bottom:0,right:0}:this.gvt===8?e={bottom:0,left:`50%`,transform:`translateX(-50%)`}:this.gvt===7?e={bottom:0,left:0}:this.gvt===4?e={top:`50%`,left:0,transform:`translateY(-50%)`}:e={top:`50%`,left:`50%`,transform:`translateX(-50%) translateY(-50%)`},e.overflow=`visible`,e}getFlexStylesForContainer(){let e={display:`flex`,flexDirection:`row`},t,i;return this.gvt===1?(t=`flex-start`,i=`flex-start`):this.gvt===2?(t=`center`,i=`flex-start`):this.gvt===3?(t=`flex-end`,i=`flex-start`):this.gvt===4?(t=`flex-start`,i=`center`):this.gvt===6?(t=`flex-end`,i=`center`):this.gvt===7?(t=`flex-start`,i=`flex-end`):this.gvt===8?(t=`center`,i=`flex-end`):this.gvt===9?(t=`flex-end`,i=`flex-end`):(t=`center`,i=`center`),e.alignItems=i,e.justifyContent=t,e.overflow=`visible`,e}overrideForMobileView(){this.max=this.mob.max??this.max,this.cover=this.mob.cover??this.cover,this.gvt=this.mob.gvt??this.gvt,this.bg=this.mob.bg??this.bg,this.spc=this.mob.spc??this.spc,this.anim=this.mob.anim??this.anim;}};var Et=class{gap;dir;wrap;jc;ai;scroll;constructor(e){e??={},this.gap=e.gap??0,this.dir=e.dir??`row`,this.wrap=e.wrap??`nowrap`,this.jc=e.jc??`flex-start`,this.ai=e.ai??`flex-start`,this.scroll=e.scroll;}};var ii=class{of;disp;pos;top;bottom;left;right;zIndex;constructor(e){e??={},this.of=e.of,this.disp=e.disp,this.pos=e.pos,this.top=e.top,this.bottom=e.bottom,this.left=e.left,this.right=e.right,this.zIndex=e.zIndex;}};var oi=class{w;h;maxW;maxH;minW;minH;constructor(e){e??={},this.w=e.w??`100%`,this.h=e.h??`auto`,this.maxW=e.maxW,this.maxH=e.maxH,this.minW=e.minW,this.minH=e.minH;}};var ni=class{size;bg;br;spc;typo;lout;flex;constructor(e){e??={},this.spc=new b$2(e.spc),e.size&&(this.size=new oi(e.size)),e.bg&&(this.bg=new h$3(e.bg)),e.br&&(this.br=new a$2(e.br)),e.typo&&(this.typo=new V(e.typo)),e.lout&&(this.lout=new ii(e.lout)),e.flex&&(this.flex=new Et(e.flex));}},St=class{sm;lg;constructor(e){e??={},this.sm=new ni(e.sm),this.lg=new ni(e.lg);}};var H=class{t;classes;style;hide;when;clc;l;constructor(e,t){t??={},this.t=e,this.classes=t.classes??``,this.style=new St(t.style),this.hide=t.hide,this.l=t.l,t.when?.op&&(this.when=t.when),t.clc&&(this.clc=t.clc);}get stringType(){return U[this.t]}};var $=class extends H{text;constructor(e,t){e?.style?.lg?.typo?.s&&delete e.style.lg.typo.s,e?.style?.sm?.typo?.s&&delete e.style.sm.typo.s,super(t??2,e),e??={},this.text=e.text;}};var rt=class extends ${constructor(e,t){super(e,t??3);}};var It=class extends H{value;constructor(e){super(6,e),e??={},this.value=e.value;}};var Tt=class extends ${showChips;optionsConfig;constructor(e=15,t){super(t,e),t??={},this.showChips=t.showChips??false,this.optionsConfig=t.optionsConfig??{};}};var si=class extends H{c;iconSize;showSingleStar;fullStar;halfStart;constructor(e){super(19,e),e??={},this.c=new n$1(e.c),this.iconSize=e.iconSize??24,this.showSingleStar=e.showSingleStar??false,this.fullStar=e.fullStar,this.halfStart=e.halfStart;}};var Ln=x$2(yt$1());var ai=class extends H{conf;slide;formData;values;allowedTypes;constructor(e){super(62,e),e&&this.update(e);}update(e){e??={},this.slide=ie.getParsedElement(e.slide),this.formData=e.formData,this.values=e.values,this.conf=new C$4(e.conf),this.allowedTypes=e.allowedTypes;}};var ci=class extends ${gap;timer;timerType;horizontal;lblPos;show;constructor(e){e??={},super(e,61),this.gap=e.gap,this.timerType=e.type,this.timer=new bt(e.timer),this.show=e.show??{days:true,hours:true,minutes:true,seconds:true},this.horizontal=e.horizontal,this.lblPos=e.lblPos;}};var We=class extends H{elems;constructor(e){super(4,e),this.update(e);}update(e){e??={},this.elems??=[],e.elems?.forEach(t=>{let i=ie.getParsedElement(t);i&&this.elems.push(i);});}};var it=class extends H{src;sm;lg;constructor(e,t){super(t??1,e),e&&this.update(e);}update(e){this.src=e.src,this.sm=e.sm,this.lg=e.lg;}};var ie=class r{static getParsedElements(e){let t=[];return e?.forEach(i=>{let o=r.getParsedElement(i);o&&t.push(o);}),t}static getParsedElement(e){switch(e.t){case 2:return new $(e);case 3:return new rt(e);case 6:return new It(e);case 11:return new li(e);case 12:return new He(e);case 61:return new ci(e);case 4:return new We(e);case 1:return new it(e);case 13:return new it(e,13);case 14:return new $(e,14);case 15:case 16:return new Tt(e.t,e);case 18:return new rt(e,18);case 62:return new ai(e);case 19:return new si(e);default:Ln.default.error(`Unknown element type`,e.t);return}}static parseAlignmentToJustifyContent(e){switch(e){case 1:return `center`;case 2:return `flex-end`;case 0:return `flex-start`;default:return `flex-start`}}};var He=class extends H{img;title;desc;price;compareAt;btn;variantDD;show;symbol;cBox;elems;noLinks;constructor(e){if(e??={},super(12,e),this.show=e.show,this.elems=ie.getParsedElements(e.elems),this.noLinks=e.noLinks,!this.elems.length){e.cBox&&this.elems.push(new It(e.cBox)),this.elems.push(new it(e.img,13));let t=new $(e.title,14);t.hide=!e.show?.title,t.text=`{{ product.name }}`,this.elems.push(t);let i=new $(e.price);i.text=`{{ product.price }}`,i.hide=!e.show?.price;let o=new $(e.compareAt);o.text=`{{ product.compare_price }}`,o.hide=!e.show?.price,e.compareAt||(o.style=new St(i.style),o.style.lg.typo=new V(s(r({},o.style.lg.typo),{td:`line-through`})),o.style.sm.typo=new V(s(r({},o.style.sm.typo),{td:`line-through`})));let n=new We({style:{lg:{spc:{mb:10},flex:{dir:`row`,gap:10,ai:`center`,jc:ie.parseAlignmentToJustifyContent(i.style.lg.typo?.ta)}}}});n.elems.push(o),n.elems.push(i),this.elems.push(n);let s$1=new Tt(15,e.variantDD);if(s$1.hide=!e.show?.variantDD,this.elems.push(s$1),e.btn){let c=new rt(e.btn,18);c.hide=!e.show?.btn,this.elems.push(c);}}e.symbol&&(this.symbol=new $(e.symbol));}};var li=class extends H{conf;prod;constructor(e){super(11,e),e??={},this.conf=new co(e.conf),this.prod=new He(e.prod);}};var mi=class extends C$4{disp;maxItems;constructor(e){e??={},super(e),this.disp=e.disp,this.maxItems=e.maxItems;}},co=class{lg;sm;constructor(e){e??={},this.lg=new mi(e.lg),this.sm=new mi(e.sm);}};var pi=class extends We{constructor(e){super(e);}};var xt=class{cont;elems=[];constructor(e){e=e??{},this.cont=new pi(e.cont),e.elems?.forEach(t=>{this.addRawElement(t);});}addRawElement(e){let t=ie.getParsedElement(e);return t&&this.elems.push(t),t}};function di(r,e){return ha(r,e,0,5)}function ha(r,e,t=0,i=50){if(e){if(t>i){console.warn(`Maximum recursion depth reached in findFirstElementOfType`);return}for(let o of e){if(o.t===r)return o;let n=`elems`in o?o.elems:[];if(n?.length>0){let s=di(r,n);if(s)return s}}}}var lo=class{engagementID;shortID;contentType;delay;onsiteDeliveryType;objective;redirectBehaviour;constructor(e){this.shortID=e.shortID,this.contentType=e.contentType,this.engagementID=e.engagementID,this.delay=e.delay??0,this.redirectBehaviour=e.redirectBehaviour,this.onsiteDeliveryType=e.onsiteDeliveryType,this.objective=e.objective;}isAnySplit(){return this.isABTesting()||this.isExclusionTesting()}isExclusionTesting(){return this.contentType===Ue.EXCLUSION}isABTesting(){return this.contentType===Ue.ABTESTING}isSingleContent(){return this.contentType===Ue.SINGLE}},Kt=class{videoConfig;savingsBarConfig;collectionFilterConfig;afterDeleteJS;afterRenderJS;classes;innerCSS;outerCSS;showSnackBar;constructor(e){this.update(e);}update(e){e??={},e.videoConfig&&(this.videoConfig=new ue$2(e.videoConfig)),e.savingsBarConfig&&(this.savingsBarConfig=new Ne$1(e.savingsBarConfig)),e.collectionFilterConfig&&(this.collectionFilterConfig=new Ie$1(e.collectionFilterConfig)),this.afterDeleteJS=e.afterDeleteJS,this.afterRenderJS=e.afterRenderJS,this.innerCSS=e.innerCSS,this.outerCSS=e.outerCSS,this.classes=e.classes,this.showSnackBar=e.showSnackBar;}},q=class extends lo{contentID;variation;ian;widget;discount;placement;promotionType;contentSource;manipulation;klaviyoFormID;entryAnimation;hasMultiplePlacement;skipSubscribedItems;progressBarConfig;stickyATCConfig;bundleConfig;content;previewType;occurred;id;currency;props;items;nonMutableItems;embeddedItems;bundleFrom;collections;customerData;experimentConfig;discountData=T$1({});constructor(e){if(super(e),this.id=e.id,this.currency=Be$3().currencyCode??`USD`,this.contentID=e.contentID,this.variation=e.variation,e.widget&&(this.widget=new xt(e.widget)),this.previewType=e.previewType,this.occurred=e.occurred??new Date,this.props=e.props,this.entryAnimation=e.entryAnimation??`NONE`,this.embeddedItems=e.embeddedItems?.map(t=>new et(t)),this.items=e.items?.map(t=>new ot$2(t))??[],this.nonMutableItems=e.items?.map(t=>new ot$2(t))??[],this.collections=e.collections?.map(t=>new Jr(t))??[],this.discount=e.discount,this.placement=e.placement,e.customerData?.name){let t=e.customerData.name.split(` `);this.customerData={name:e.customerData.name,full_name:e.customerData.name,first_name:t[0],last_name:t[1]};}this.ian=e.ian?this.processPopup(e.ian):void 0,this.promotionType=e.promotionType,this.manipulation=new Qr(e.manipulation),this.contentSource=e.contentSource,this.klaviyoFormID=e.klaviyoFormID,this.hasMultiplePlacement=e.hasMultiplePlacement,this.skipSubscribedItems=e.skipSubscribedItems,this.stickyATCConfig=e.stickyATCConfig,e.experimentConfig&&(this.experimentConfig=new zr(e.experimentConfig)),e.progressBarConfig&&(this.progressBarConfig=new xe$1(e.progressBarConfig)),e.bundleConfig&&(this.bundleConfig=new jr(e.bundleConfig)),e.bundleFrom&&(this.bundleFrom=new ot$2(e.bundleFrom)),e.content&&(this.content=new Kt(e.content));}shouldDelay(){return this.delay>0}getDelaySeconds(){let e=new Date().getTime()-this.occurred.getTime();return this.delay*1e3-e}isBundle(){return this.objective===ke$1.BUNDLE_AND_UPSELL}isCartEmbed(){return this.onsiteDeliveryType===Ge$1.CART_EMBED}isPageEmbed(){return this.onsiteDeliveryType===Ge$1.PAGE_EMBED}isProgressBar(){return this.objective===ke$1.PROGRESS_BAR}isSubscriptionUpsell(){return this.objective===ke$1.SUBSCRIPTION_UPSELL}isCartRecovery(){return this.objective===ke$1.CART_RECOVERY}isProductPromotion(){return this.objective===ke$1.PRODUCT_PROMOTION}isProductPromoted(){return this.isProductPromotion()||this.isBundle()||this.isCartRecovery()}isCollectionPromoted(){return this.isProductPromotion()&&this.collections.length>0&&this.promotionType===xe$2.COLLECTION}isBYOB(){return this.objective===ke$1.BYOB}isStickyATC(){return this.objective===ke$1.STICKY_ATC}isShoppableVideo(){return this.objective===ke$1.SHOPPABLE_VIDEO}isSavingsBar(){return this.objective===ke$1.SAVINGS_BAR}isCollectionFilter(){return this.objective===ke$1.COLLECTION_FILTER}processPopup(e){let t=this.items[0],i={},o={};if(t){let c=t.selectedOrFirstVariant.value;i=s(r(r({name:t.name,id:t.mID,link:t.link,vID:c.mID,image:t.variantImage},An$1(`price`,c.price.d)),An$1(`comparePrice`,c.price.cmp)),{quantity:t.quantity}),o={quantity:c.quantity};}let n={productCount:E.getCurrent().item_count},s$2=qe$1(JSON.stringify(e),{product:i,variant:o,cart:n,discount:this.discount,customer:this.customerData},new Fe(new Date,this));return t&&(s$2=s$2.replace(new RegExp(`https://cdn.global.letscooee.com/images/placeholders/product.png`,`gi`),t.variantImage??t.firstImageURL)),new ri(JSON.parse(s$2))}calculateDiscountData(e,t){let i=De.sum(e,s=>s.selectedOrFirstVariant.value.price.d),n={actualPrice:i,totalComparePrice:De.sum(e,s=>{let c=s.selectedOrFirstVariant.value.price;return c.cmp??c.d}),discountAmount:0,discountPercentage:0,discountedPrice:i};if(!e?.length||!t||!this.discount?.type){this.discountData.value=this.formatCurrencyAndNumber(n);return}if(ce.BXGY===this.discount.type&&this.discount.values?.length)n.discountPercentage=this.discount.values[0],this.updateEffectivePrice(e,n.discountPercentage,true),n.discountAmount=n.actualPrice-De.sum(e,s=>s.selectedOrFirstVariant.value.effectivePrice.value);else if([ce.STATIC,ce.UNIQUE_FLAT].includes(this.discount.type)&&this.discount.values?.length)n.discountPercentage=this.discount.values[0],n.discountAmount=n.actualPrice*n.discountPercentage/100,this.updateEffectivePrice(e,n.discountPercentage);else if(ce.UNIQUE_FLAT_ITEMS===this.discount.type&&this.discount.values?.length)this.discount.ruleType===`fixed_amount`?(n.discountAmount=this.discount.values[0],n.discountPercentage=n.actualPrice>0?n.discountAmount*100/n.actualPrice:0):(n.discountPercentage=this.discount.values[0],n.discountAmount=n.actualPrice*n.discountPercentage/100),this.updateEffectivePrice(e,n.discountPercentage);else if(this.discount.type===ce.UNIQUE_FIXED_ITEMS&&this.discount.values?.length)n.discountAmount=n.actualPrice-this.discount.values[0],n.discountPercentage=n.discountAmount/n.actualPrice*100,this.updateEffectivePrice(e,n.discountPercentage);else if(this.discount.type===ce.UNIQUE_CHEAPEST_ITEM_FREE){e.sort((c,l)=>l.selectedOrFirstVariant.value.price.d-c.selectedOrFirstVariant.value.price.d);let s=e[e.length-1];s.selectedOrFirstVariant.value.effectivePrice.value=0,n.discountAmount=s.selectedOrFirstVariant.value.price.d,n.discountPercentage=n.discountAmount/n.actualPrice*100;}n.discountedPrice=n.actualPrice-n.discountAmount,this.discountData.value=this.formatCurrencyAndNumber(n);}getPrivateAttributesForLineItem(){return he$3.get().skipItemAttribute?{}:{_via:`Cooee`,_letscooee_campaign:this.shortID,_letscooee_content:this.contentID}}getKVFormatPrivateAttributesForLineItem(){return he$3.get().skipItemAttribute?[]:[{key:`_via`,value:`Cooee`},{key:`_letscooee_campaign`,value:this.shortID},{key:`_letscooee_content`,value:this.contentID}]}isBundleOnCartDrawer(){return this.isBundle()&&this.isCartEmbed()}isBundleOnPDP(){return this.isPageEmbed()&&this.isBundle()}hasSwiperElement(){if(di(62,this.widget?.elems))return true;let t=di(11,this.widget?.elems);return t?t.conf.lg.disp===2||t.conf.sm.disp===2:false}toString(){let e;return this.onsiteDeliveryType===Ge$1.POPUP?e=`Popup`:e=kn.toTitle(this.objective),`${e}(id=${this.shortID})`}getCartMagicVariables(){let e=E.getCurrent(),t=De.sum(e.items??[],i=>i.discounts?.reduce((o,n)=>o+(n.amount??0),0)??0);return r(r(r(r({productCount:e.item_count,product_count:e.item_count},An$1(`amount`,e.total_price/100)),An$1(`originalAmount`,e.original_total_price/100)),An$1(`total_line_items_discount`,t/100)),An$1(`total_discount`,e.total_discount/100))}shouldGetVariationImmediately(){return this.hasMultiplePlacement&&!this.alwaysHaveVariations()}shouldSkipVariation(){return this.isSingleContent()||this.alwaysHaveVariations()?true:!!this.variation}alwaysHaveVariations(){return this.isProgressBar()||this.isSavingsBar()}updateEffectivePrice(e,t,i=false){let o=Be$3().currentItem;e.forEach(n=>{let s=n.selectedOrFirstVariant.value,c=s.price;if(i&&n.mID===o.mID)s.effectivePrice.value=c.d;else {let l=c.d*t/100;s.effectivePrice.value=c.d-l;}});}formatCurrencyAndNumber(e){if(!e)return {};let t={discountPercentage:xn(e.discountPercentage??0),discountCode:this.discount?.code};return [`actualPrice`,`discountAmount`,`discountedPrice`,`totalComparePrice`].map(i=>{Object.assign(t,An$1(i,e[i]));}),t}};var Ca=`/api/2026-01/graphql.json?from=cooee`,Nn={"Content-Type":`application/json`};async function Pt(r,e,t,i){let o=he$3.get().storefrontToken;if(!o)throw new Error(`Storefront token not set for the store`);let n=new Headers(Nn);n.append(`X-Shopify-Storefront-Access-Token`,o);let s=JSON.stringify({query:r,variables:e});try{return await jn$1(Ca,{method:`POST`,headers:n,body:s})}catch(c){throw ke$2(c,t,{engagementTrigger:i}),c}}function ot(r,e){return ba(Yr(r),e)}async function ba(r,e){return jn$1(r,{body:JSON.stringify(e),method:`POST`,headers:Nn})}var ui=class{isLocked=false;queue=[];async acquire(){if(this.isLocked)await new Promise(e=>this.queue.push(e));else {this.isLocked=true;return}}release(){if(this.queue.length>0){let e=this.queue.shift();e&&e();}else this.isLocked=false;}},gi=class r{static LOCK_TIMEOUT=1e4;static RETRY_INTERVAL=200;static MAX_RETRIES=50;static async request(e,t){if(e=`__cooee_${e}_lock__`,`locks`in navigator&&!Ea())try{return await ya(e,t,this.LOCK_TIMEOUT)}catch(s){Y$1.verbose(`Web Locks API failed, falling back to localStorage: ${s}`);}let i=false,o=0,n=Math.random().toString(36).substring(2,10);for(;o++<this.MAX_RETRIES&&(Y$1.verbose(`Lock retry ${o} for ${e}`),i=await this.acquire(e,n,o),!i);)await this.sleep(r.RETRY_INTERVAL*o+Math.random()*100);try{return await t()}finally{this.release(e,n);}}static async acquire(e,t,i){let o=Date.now(),n=localStorage.getItem(e),s=n?JSON.parse(n):null;if(s&&o<=s.expiry)return false;let c={owner:t,expiry:o+r.LOCK_TIMEOUT};return localStorage.setItem(e,JSON.stringify(c)),await this.sleep(150+Math.random()*100),JSON.parse(localStorage.getItem(e)||`{}`).owner===t?(Y$1.verbose(`${t}: Lock acquired for ${e} after ${i} attempts!`),true):(Y$1.verbose(`${t}: Race lost. Another tab acquired the lock.`),false)}static release(e,t){let i=localStorage.getItem(e);if(!i)return;let o=JSON.parse(i);o.owner===t?(localStorage.removeItem(e),Y$1.verbose(`${t}: Lock released`)):Y$1.verbose(`${t}: Cannot release lock. Current owner: ${o.owner}`);}static sleep(e){return new Promise(t=>setTimeout(t,e))}};async function ya(r,e,t){return new Promise((i,o)=>{let n=setTimeout(()=>{o(new Error(`Web Locks API timeout after ${t}ms`));},t);navigator.locks.request(r,async()=>{try{let s=await e();return clearTimeout(n),i(s),s}catch(s){throw clearTimeout(n),o(s),s}}).catch(s=>{clearTimeout(n),o(s);});})}function Ea(){let r=navigator.userAgent||``;return /Safari/.test(r)&&!/Chrome/.test(r)&&!/Chromium/.test(r)||/iPhone|iPad|iPod/i.test(r)&&(/(FBAV|FBAN|Instagram|Twitter|Line|WhatsApp)/i.test(r)||!window.safari?.pushNotificaTion)||/Macintosh/.test(r)&&/Safari/.test(r)&&!/Chrome/.test(r)&&!/Chromium/.test(r)&&!window.safari?.pushNotification?true:Sa()}function Sa(){try{return window.safari?.pushNotification?window.safari.pushNotification.toString()===`[object SafariRemoteNotification]`:!window.indexedDB||!window.localStorage}catch{return true}}var mo=new ui,Ia=`
29
29
  mutation cartMetafieldsSet($metafields: [CartMetafieldsSetInput!]!) {
30
30
  cartMetafieldsSet(metafields: $metafields) {
31
31
  metafields {
@@ -39,7 +39,7 @@ var Fe=class{constructor(e,t){this._startTime=e;this._triggerData=t;}intervals=[
39
39
  }
40
40
  }
41
41
  }
42
- `;function Mn(){xa().catch(r=>{Y$1.error(`Fail to add attributes in cart`,r);});}async function Ta(){let e=await(await fetch(window.Shopify.routes.root+`browsing_context_suggestions.json?country[enabled]=true&country[exclude]=${window.Shopify.country}&language[enabled]=true&language[exclude]=${window.Shopify.language}`)).json(),t=he$3.get().storefrontToken,i=new Headers;i.append(`x-shopify-storefront-access-token`,t),i.append(`Content-Type`,`application/json`),await Pt(Ia,{metafields:[{key:`currentCountry`,ownerId:`gid://shopify/Cart/${E.getCurrent().token}`,type:`single_line_text_field`,value:e.detected_values.country.handle}]},`add-cart-metafields-set`);}function po(){E.getCurrent().token?Ta().catch(r=>{Y$1.error(`Fail to update cart metafields`,r);}):setTimeout(po,500);}async function xa(){await mo.acquire();let r=E.getCurrent(),e=await xr$1();if(r.attributes?.letscooee_did===e.letscooee_did&&r.attributes?.letscooee_sn===e.letscooee_sn){Y$1.verbose(`Not calling Shopify update.js API.`,`Current attributes:`,r.attributes),mo.release();return}try{let t=await ot(`/cart/update.js`,{attributes:e});Y$1.verbose(`Updated cart attributes`,JSON.stringify(t.data)),r.update(t.data);}catch(t){Y$1.error(`Failed to add cart attributes`,t);}mo.release();}var Pa=r=>r,Un=r=>r.filter(e=>e.removedNodes&&e.removedNodes.length>0);function Fn(r,e={childList:true,subtree:true},t=500,i=Pa){return te(o=>{let n=new MutationObserver(s=>o(s));return n.observe(r,e),n},(o,n)=>n.disconnect()).pipe(q$1(o=>i(o)),Ir(o=>o.length>0),Fe$1(t))}var Gn=x$2(yt$1());var Vn=new U$1,Wn=new U$1;function Hn(){return Wn.asObservable()}function fi(){Vn.next();}Vn.pipe(Fe$1(100)).subscribe(Aa.bind(void 0));function $n(){fi(),Da(),Ra();}function Da(){let r=window.XMLHttpRequest.prototype.send;window.XMLHttpRequest.prototype.send=function(){return this.addEventListener(`load`,function(){qn(this._url).catch(e=>Y$1.error(`Unable to process cart change in XMLHttpRequest`,e));}),r.apply(this,arguments)},Y$1.verbose(`Securely overwritten window.XMLHttpRequest.send method`);}function Ra(){let r=window.fetch;try{window.fetch=async function(e,t){return r(e,t).then(i=>{let o=``;try{o=typeof e==`string`||e instanceof URL?e.toString():e?.url??i?.url??``;}catch{}return qn(o).catch(n=>Y$1.error(`Unable to process cart change in fetch`,n)),i})},Y$1.verbose(`Securely overwritten window.fetch method`);}catch(e){console.warn(`Fail to override fetch.`,`Cooee won't be able to track "Add To Cart" and "Remove From Cart" KPI.`),Y$1.error(e);}}async function qn(r){_a(r)&&fi();}function _a(r){return /\/cart\/(add|change|update|clear)/.test(r)}function ka(r$1,e){let t=r$1?.items,i=e.items,o=[],n=[];if(Y$1.verbose(`Comparing cart change with old count ${t?.length} to new count ${i.length}`),i?.forEach(s$3=>{let c=t?.find(l=>l.vID===s$3.vID);if(c){if(c.quantity!==s$3.quantity){let l=c.quantity<s$3.quantity,v=Math.abs(c.quantity-s$3.quantity),w=s(r({},s$3),{quantity:v});l?o.push(w):n.push(w);}t&&Cn(t,c);}else o.push(s$3);}),t)for(let s of t)n.push(s);Y$1.verbose(`Cart delta: added: ${o.length}, removed: ${n.length}`),o.length&&Bn(`Add To Cart`,{items:o}),n.length&&r$1.token===e.token&&Bn(`Remove From Cart`,{items:n}),(n.length||o.length)&&Wn.next({itemsAdded:o,itemsRemoved:n,cart:e});}function Bn(r,e){j(new Ir$1(r,e));}async function Aa(){ka(await fe$4.get(`cart`,{}),await E.getCurrent().getNormalisedCart(true));}var F=class r{static cartDrawerToggle$=new Sr({open:false,firstOpen:false});static DEFAULT_SELECTOR=`cart-drawer`;static _instance;inShadow=false;cartDrawerElement;cartDrawerShadowElement;configWebsite=he$3.get().website??{};currentState=false;mutationSubscription;mutationObserver;firstOpen=true;selector;shadowParentElementSelector;clickEventListener;refreshUIEventListener;iconSelector=[`button[drawer-to-open="cart-drawer"]`,`a[href="/cart"]`,`.header__icon--cart`,`#cart-icon-bubble`,`.cart-icon-bubble`,`.cart-count`,`a[onclick*="handleFloCartBtn"]`].join(`,`);cartSelector=[r.DEFAULT_SELECTOR,`#halo-cart-sidebar`,`[role="dialog"][class*="cart" i]`,`[id*="section-cart" i]`,`#sidebar-cart`,`#rebuy-cart`,`#mini-cart`,`#flo-cart-wrapper`,`#drawer-cart`,`#UpcartPopupBackDrop`,`[id$="CartDrawer" i]`].join(`,`);constructor(){this.initialize(),this.refreshUIEventListener=this.updateBubble.bind(this),this.clickEventListener=this.manualCartIconClicked.bind(this),document.addEventListener(`letscooee:outbound:refresh-ui`,this.refreshUIEventListener),document.addEventListener(`click`,this.clickEventListener,{capture:true,passive:true});}get element(){return this.cartDrawerElement}static get(){return r._instance||(r._instance=new r),r._instance}static initialize(){r.get();}isOpen(){if(window.cooeeIsCartDrawerVisible)return window.cooeeIsCartDrawerVisible();if(this.cartDrawerElement?.id===`rebuy-cart`)return !!window.Rebuy?.SmartCart?.visible;let e=this.inShadow?this.isPresent():C$1(this.cartDrawerElement);return Y$1.info(`Cart drawer is currently ${e?`open`:`close`}`),e}open(){if(this.isOpen()){Y$1.log(`Drawer is already open`);return}document.dispatchEvent(new CustomEvent(`letscooee:outbound:open-cart`));let e=document.querySelector(this.iconSelector);if(!e){Y$1.verbose(`No clickable cart icon found with selector`,this.iconSelector);return}e.click();}isShopifyDefaultDrawer(){return this.element?.tagName.toLowerCase()===r.DEFAULT_SELECTOR}isMiniCart(){return this.isShopifyDefaultDrawer()&&this.element?.id===`mini-cart`}refreshUI(e,t=true){if(window.cooeeUpdateCartDrawer)try{window.cooeeUpdateCartDrawer(e);}catch(i){ke$2(i,`execute-cooeeUpdateCartDrawer`);}else if(this.isMiniCart()&&this.element?._rerenderCart)this.element._rerenderCart({detail:{cart:e}});else if(window.MinimogTheme?.Cart?.renderNewCart)window.MinimogTheme.Cart.renderNewCart();else if(this.isShopifyDefaultDrawer()&&this.element?.renderContents&&e)this.element.classList.remove(`is-empty`),this.element.renderContents?.(e);else if(this.element?.onCartDrawerUpdate)this.element.onCartDrawerUpdate();else if(window.cartGiftUpdate){if(!e?.items?.[0])return;let i=e.items[0].id,o=e.items[0].quantity,n=e.items[0].price;window.cartGiftUpdate(i,n,o,``,`ADD_TO_CART`);}else if(window.icartCartActivityEvent)window.icartCartActivityEvent();else if(window.theme?.CartDrawer&&typeof window.theme?.CartDrawer==`function`)window.theme?.CartDrawer.init?new window.theme.CartDrawer().init():new window.theme.CartDrawer;else if(window.Hs_CartDrawer?.updateSlideCart)window.Hs_CartDrawer.updateSlideCart();else if(window.theme?.fetch_side_cart)window.theme.fetch_side_cart();else if(window.theme?.Cart?.updateCart)window.theme.Cart.updateCart();else if(window.cartUpdate)window.cartUpdate();else if(this.element?._onCartRefresh)this.element._onCartRefresh();else if(window.cart?.getCart)window.cart.getCart();else if(this.element?.tagName?.toLowerCase()===`cart-drawer-component`)document.dispatchEvent(new CustomEvent(`action:cart:updateCartandShowCart`));else if(this.element?.id===`sidebar-cart`)document.body.dispatchEvent(new CustomEvent(`cart:refresh`,{bubbles:true,detail:{}}));else if(this.element?.id===`quick-cart`){let i=document.querySelector(`a[href="/cart"]`);i&&i.click();}else window.Shopify?.KT_onItemAdded?window.Shopify.KT_onItemAdded():window.sideCart?.updateCart?window.sideCart.updateCart():window.SLIDECART_UPDATE?(window.SLIDECART_UPDATE(),window.SLIDECART_OPEN?.()):window.refreshCart?E.getCurrent().getNormalisedCart(true).then(()=>{window.refreshCart(E.getCurrent());}):window.OPEN_CART?window.OPEN_CART():window.updateCart?window.updateCart():window.sjRefreshCart?window.sjRefreshCart():window.CartJS?.getCart?window.CartJS?.getCart():window.updateCartItemJS?window.updateCartItemJS(1,e?.items?.[0]?.id+``):(Y$1.info(`No method found to update the cart drawer. Blindly firing some events to try`),document.dispatchEvent(new CustomEvent(`cart:refresh`,{bubbles:true})));document.dispatchEvent(new CustomEvent(`letscooee:outbound:refresh-ui`,{detail:{responseJSON:e,currentCart:E.getCurrent()}})),t&&fi();}async initialize(){let e=this.configWebsite.cartDrawerSelector;if(!e){await this.findCartDrawer();return}let t=e.split(`:shadow`);t.length===1?(this.selector=t[0],await this.findCartDrawer()):(this.inShadow=true,this.shadowParentElementSelector=t[0]?.trim(),this.selector=t[1]?.trim(),await this.findCartDrawerWithShadow());}async findCartDrawer(){if(!Gt())return;let e=this.selector||this.cartSelector;if(this.cartDrawerElement=await Ln$1(e),!this.cartDrawerElement){Gn.default.warn(`Max attempts exhausted to find cart drawer`);return}Y$1.verbose(`Found`,this.cartDrawerElement,`from selector: ${e}`),this.createMutationObservers();}async findCartDrawerWithShadow(){if(!this.shadowParentElementSelector)return;let t=(await Ln$1(this.shadowParentElementSelector))?.shadowRoot;t?.mode===`open`&&(this.cartDrawerShadowElement=t,this.createMutationObservers());}createMutationObservers(){!this.cartDrawerElement&&!this.cartDrawerShadowElement||this.watchForCartToggle();}watchForCartToggle(){let e=this.cartDrawerElement||this.cartDrawerShadowElement,t=new U$1;this.mutationObserver=new MutationObserver(()=>{t.next();}),this.mutationObserver.observe(e,{attributes:true,subtree:true,childList:this.inShadow}),this.mutationSubscription=t.pipe(we$1(800,void 0,{leading:false,trailing:true})).subscribe(()=>{let i=this.isOpen();this.currentState!==i&&(this.currentState=i,r.cartDrawerToggle$.next({open:i,firstOpen:this.firstOpen}),this.firstOpen&&(this.firstOpen=false));});}isPresent(){if(!this.selector||!this.cartDrawerShadowElement)return false;let e=this.cartDrawerShadowElement.querySelector(this.selector);return e?C$1(e):false}async updateBubble(){let e=(await E.getCurrent().getNormalisedCart(true)).itemCount,t=document.querySelector(`.cart-link__bubble`);t&&(t.innerText=e+``);}manualCartIconClicked(e){!e.target.closest(this.iconSelector)||!e.isTrusted||window.CooeeSDK.events.push([`Open Cart`]);}};var uo=new Map,hi=async r=>{for(let n of r.items)if(window.cooeeManipulateProduct)try{window.cooeeManipulateProduct(n,r);}catch(s){Y$1.error(s);}if(r.isCartEmbed()&&!r.isSubscriptionUpsell()){let s=(await E.getCurrent().getNormalisedCart()).items.map(c=>c.mID);r.items=r.items.filter(c=>!s.includes(c.mID));}if(r.items=jn(r),he$3.get().currencyCount<=1)return r.items;if(r.isShoppableVideo())return await Oa(r.content.videoConfig,r),r.items;let e=r.items.length,t=r.items.map(n=>zn(n,r)),o=(await Promise.all(t)).filter(n=>n!=null);if(e&&!o.length){let n=`Failed to fetch any product from Ajax API`;throw fe(new Ir$1(`CE Campaign Failed`,{reason:n,currency:r.currency},r)),new Error(n)}return jn(r,o)},jn=(r,e=r.items)=>{if(!r.isCartRecovery())return e;let t=E.getCurrent().items,i=[];for(let o of e)for(let n of o.vars){if(!n.isAvailable)continue;let s=t.find(v=>v.variant_id.toString()===n.mID);if(!s)continue;let c=new ot$2(o);c.name=s.title;let l=new nt$1(n);l.name=s.variant_title,l.price.d=s.discounted_price/100,c.variants=[l],i.push(c);}return i},Oa=async(r,e)=>{await Promise.all(r.videos.map(async t=>{t.items=await Promise.all(t.items.map(async i=>{return await zn(i,e)||i}));}));},zn=async(r,e)=>{if(uo.has(r.mID))return uo.get(r.mID);let t,i=`/products/${r.slug}.js`;try{t=(await jn$1(i)).data;}catch(o){return o instanceof oe$5&&o.response?.status===404||ke$2(o,`fetch-shopify-product`,{extra:{item:r,path:i},engagementTrigger:e}),null}return t?La(r,t):(Y$1.error(`Item not found after AJAX call for:`,r),null)},La=(r,e)=>{if(!r||!e)return r;r.name=e.title,r.tags=e.tags,r.slug=e.handle;let t=r.selectedOrFirstVariant.value;return r.vars.map(i=>{let o=e.variants.find(n=>n.id===+i.mID);o!=null&&(i.name=o.title,i.isAvailable=o.available,i.price.d=o.price?o.price/100:o.price,i.price.effective=i.price.d,i.price.cmp=o.compare_at_price?o.compare_at_price/100:o.compare_at_price,+t.mID===o.id&&(t.effectivePrice.value=i.price.d));}),uo.set(r.mID,r),r};var Xt=r=>{let e=r instanceof ot$2?r.selectedOrFirstVariant.value.mID:r.vID,t=r instanceof ot$2?r.selectedOrFirstVariant.value.name:r.vName;return {product_id:r.mID,product_name:r.name,variant_id:e,variant_name:t}};var wi=class{constructor(e){this.scalingFactor=e;}getLayoutStyles(e){if(!e)return {display:`block`};let t={display:e.disp};return e.of&&(t.objectFit=e.of),e.pos===`absolute`&&(t.width=`auto !important`,t.position=`absolute`,t.right=e.right+`px`,t.left=e.left+`px`,t.top=e.top+`px`,t.bottom=e.bottom+`px`),t}getSizeStyles(e){let t={};return e?.w&&(t.width=e.w),e?.h&&(t.height=e.h),e?.maxW&&(t.maxWidth=e.maxW),e?.maxH&&(t.maxHeight=e.maxH),e?.minW&&(t.minWidth=e.minW),e?.minH&&(t.minHeight=e.minH),t}getBorderStyles(e){if(!e)return {};let t={};return e.radius&&e.radius>0&&(t.borderRadius=this.getSizePx(e.radius)),e.width&&e.width>0&&(t.borderWidth=this.getSizePx(e.width),t.borderStyle=e.style?.toLowerCase(),e.color?this.getColourStyles(e.color,`border-color`,t):t.borderColor=`black`),t}getFlexStyles(e){return e?{gap:e.gap+`px`,flexWrap:e.wrap,flexDirection:e.dir,justifyContent:e.jc,alignItems:e.ai,width:`100%`}:{}}getSpaceStyles(e){let t={};return e?(t.paddingTop=this.getSizePx(e.pt),t.paddingBottom=this.getSizePx(e.pb),t.paddingLeft=this.getSizePx(e.pl),t.paddingRight=this.getSizePx(e.pr),t.marginTop=this.getSizePx(e.mt),t.marginBottom=this.getSizePx(e.mb),t.marginLeft=e.cent?`auto`:this.getSizePx(e.ml),t.marginRight=e.cent?`auto`:this.getSizePx(e.mr),t):(t.margin=`0 !important`,t.padding=`unset`,t)}getBackgroundStyles(e){if(!e)return {};let t={};if(e.glossy){let i=`backdrop-filter`,o=`-webkit-`+i,n=`blur(${e.glossy.radius}px)`;if(!CSS.supports(o,n)&&!CSS.supports(i,n))return {background:e.glossy.fallback.rgba};if(t[o]=n,t[i]=n,e.glossy.color)return this.getColourStyles(e.glossy.color,`background`,t)}else if(e.solid){if(e.solid.grad)return this.getGradientStyles(e.solid.grad,`background`,t);if(e.solid.hex)return {backgroundColor:e.solid.rgba}}else if(e.img){if(!e.img.src)return {};let i=(e.img.a??0)/100;t.background=`linear-gradient(rgba(0, 0, 0, ${i}), rgba(0, 0, 0, ${i})),url("${e.img.src}") no-repeat center`,t.backgroundSize=`cover`,e.img.a&&(t[`-webkit-backdrop-filter`]=`opacity(${e.img.a})`,t.backdropFilter=`opacity(${e.img.a})`);}return t}getGradientStyles(e,t,i){if(i??={},e.type===`LINEAR`){let o=`linear-gradient(${e.ang}deg, ${e.c1}, ${e.c2}`;e.c3&&(o+=`, ${e.c3}`),o+=`)`,i[t]=o;}return i}getColourStyles(e,t=`color`,i){return i??={},e?e.grad?this.getGradientStyles(e.grad,t,i):(e.hex&&(i[t]=e.rgba),i):i}getSizePx(e){return this.getScaledSize(e)+`px`}getScaledSize(e){return (e??0)*this.scalingFactor}};var ns=x$2(yt$1());var go=class{origin;path;qs;name;referrer;utmSource;utmMedium;utmCampaign;utmId;utmTerm;utmContent;constructor(e){this.name=e.name,this.path=e.path,this.qs=e.qs,this.referrer=e.referrer,this.utmSource=e.utmSource||e.utm_source,this.utmMedium=e.utmMedium||e.utm_medium,this.utmCampaign=e.utmCampaign||e.utm_campaign,this.utmId=e.utmId||e.utm_id,this.utmTerm=e.utmTerm||e.utm_term,this.utmContent=e.utmContent||e.utm_content;}};function vi(){let r$2=location.pathname===`/`?location.pathname:location.pathname.replace(/\/+$/,``);return new go(r({origin:location.origin,path:r$2,qs:location.search,referrer:Ye$1(),name:Be$3().pageName},Je()))}function Kn(){let r=Be$3(),e=new URLSearchParams(location.search),t=e.get(`cooee-preview`),i=e.get(`cooee-exp-preview`);if(t){let n=t.split(`,`).map(s=>s.trim()).filter(s=>Number.isInteger(+s));n.length&&(r.previewIDs=n);}if(i){let n=i.split(`,`).map(s=>s.trim()).filter(s=>Number.isInteger(+s));n.length&&(r.previewIDs??=[],r.previewIDs.push(...n),r.activeExperiments=true);}let o=e.get(`cooee-variant`)?.trim();o&&(r.previewVariant=o);}function bi(){let r$3=Be$3();return s(r(s(r({},r$3.customContext),{page:vi(),locale:r$3.locale,currentItem:r$3.currentItem,previewIDs:r$3.previewIDs,previewVariant:r$3.previewVariant,engagementIDs:Ma(),cart:no()}),Na()),{host:window.location.host})}function Na(){let r=window.CooeeSDK.uaParser.getResult();return {os:r.os,device:r.device,browser:r.browser}}function Ma(){let r=document.querySelectorAll(`.letscooee-engagement`),e=[];return r.forEach(t=>{let i=t.dataset.engagementId;i&&+i&&e.push(i);}),e}var Ua=`keepalive`in new Request(``),fo=new Headers,Ci={type:Gr$3,code:Hr$3,version:Q$4,shopName:Xr()??``};Wa();async function $e(){let[r$4]=await Promise.all([Xn()]);return r(r({},bi()),r$4)}function Dt(r){le$1(le).then(()=>Fa(r??{}));}function Fa(r){es(`/v1/user/update`,r).then(()=>{Y$1.verbose(`Updated user profile`);}).catch(e=>{Y$1.error(`Error saving user profile`,e);});}function Yn(r){return me(`/v1/event/generate-discount`,r)}function Jn(r){le$1(le).then(()=>Ba({props:r}));}function Ba(r){es(`/v1/device/update`,r).then(()=>{Y$1.verbose(`Updated device properties`);}).catch(async e=>{Y$1.error(`Error saving device property`,e);});}function Qn(r){r&&(Ci.deviceId=r);}function Zn(r){r&&(Ci.firstSeen=r.toUTCString());}function me(r,e){return ts(`POST`,r,e)}function es(r,e){return ts(`PUT`,r,e)}function ts(r$5,e,t){if(!Gt())return Y$1.log(`Rejecting ${r$5} ${e} as this is not e-commerce app`),Promise.reject();e.startsWith(`http`)||(e=ee$3.apiURL+e);let i=t?s(r({},t),{sdkMeta:Ci}):void 0;if(i&&!Ua&&e.includes(ho))return Va(e,fo,i);let o={method:r$5,headers:fo,keepalive:false};return i&&(o.body=JSON.stringify(i)),jn$1(e,o)}function Va(r,e,t){return new Promise((i,o)=>{let n=new XMLHttpRequest;n.open(`POST`,r,true),e.forEach((s,c)=>{n.setRequestHeader(c,s);}),n.onreadystatechange=()=>{if(n.readyState===XMLHttpRequest.DONE)if(n.status>=200&&n.status<300)try{if(n.getResponseHeader(`Content-Type`)?.includes(`application/json`))i({data:JSON.parse(n.responseText),headers:e,request:n,status:n.status,statusText:n.statusText});else o(new Error(`Content-Type of response header is not json`));}catch(s){o(s);}else o(new Error(`Received status - ${n.status}(${n.statusText})`));},n.onerror=()=>{o(new Error(`Network error occurred during the request.`));},n.send(JSON.stringify(t));})}function Wa(){fo.set(`Content-Type`,`text/plain; charset=utf-8`);let r=localStorage.getItem(`cooeeDebugTill`);(r&&new Date(+r)>new Date)&&(Ci.debug=true);}var Ha=`
42
+ `;function Mn(){xa().catch(r=>{Y$1.error(`Fail to add attributes in cart`,r);});}async function Ta(){let e=await(await fetch(window.Shopify.routes.root+`browsing_context_suggestions.json?country[enabled]=true&country[exclude]=${window.Shopify.country}&language[enabled]=true&language[exclude]=${window.Shopify.language}`)).json(),t=he$3.get().storefrontToken,i=new Headers;i.append(`x-shopify-storefront-access-token`,t),i.append(`Content-Type`,`application/json`),await Pt(Ia,{metafields:[{key:`currentCountry`,ownerId:`gid://shopify/Cart/${E.getCurrent().token}`,type:`single_line_text_field`,value:e.detected_values.country.handle}]},`add-cart-metafields-set`);}function po(){E.getCurrent().token?Ta().catch(r=>{Y$1.error(`Fail to update cart metafields`,r);}):setTimeout(po,500);}async function xa(){await mo.acquire();let r=E.getCurrent(),e=await xr$1();if(r.attributes?.letscooee_did===e.letscooee_did&&r.attributes?.letscooee_sn===e.letscooee_sn){Y$1.verbose(`Not calling Shopify update.js API.`,`Current attributes:`,r.attributes),mo.release();return}try{let t=await ot(`/cart/update.js`,{attributes:e});Y$1.verbose(`Updated cart attributes`,JSON.stringify(t.data)),r.update(t.data);}catch(t){Y$1.error(`Failed to add cart attributes`,t);}mo.release();}var Pa=r=>r,Un=r=>r.filter(e=>e.removedNodes&&e.removedNodes.length>0);function Fn(r,e={childList:true,subtree:true},t=500,i=Pa){return te(o=>{let n=new MutationObserver(s=>o(s));return n.observe(r,e),n},(o,n)=>n.disconnect()).pipe(q$1(o=>i(o)),Ir(o=>o.length>0),Fe$1(t))}var Gn=x$2(yt$1());var Vn=new U$1,Wn=new U$1;function Hn(){return Wn.asObservable()}function fi(){Vn.next();}Vn.pipe(Fe$1(100)).subscribe(Aa.bind(void 0));function $n(){fi(),Da(),Ra();}function Da(){let r=window.XMLHttpRequest.prototype.send;window.XMLHttpRequest.prototype.send=function(){return this.addEventListener(`load`,function(){qn(this._url).catch(e=>Y$1.error(`Unable to process cart change in XMLHttpRequest`,e));}),r.apply(this,arguments)},Y$1.verbose(`Securely overwritten window.XMLHttpRequest.send method`);}function Ra(){let r=window.fetch;try{window.fetch=async function(e,t){return r(e,t).then(i=>{let o=``;try{o=typeof e==`string`||e instanceof URL?e.toString():e?.url??i?.url??``;}catch{}return qn(o).catch(n=>Y$1.error(`Unable to process cart change in fetch`,n)),i})},Y$1.verbose(`Securely overwritten window.fetch method`);}catch(e){console.warn(`Fail to override fetch.`,`Cooee won't be able to track "Add To Cart" and "Remove From Cart" KPI.`),Y$1.error(e);}}async function qn(r){_a(r)&&fi();}function _a(r){return /\/cart\/(add|change|update|clear)/.test(r)}function ka(r$1,e){let t=r$1?.items,i=e.items,o=[],n=[];if(Y$1.verbose(`Comparing cart change with old count ${t?.length} to new count ${i.length}`),i?.forEach(s$3=>{let c=t?.find(l=>l.vID===s$3.vID);if(c){if(c.quantity!==s$3.quantity){let l=c.quantity<s$3.quantity,v=Math.abs(c.quantity-s$3.quantity),w=s(r({},s$3),{quantity:v});l?o.push(w):n.push(w);}t&&Cn(t,c);}else o.push(s$3);}),t)for(let s of t)n.push(s);Y$1.verbose(`Cart delta: added: ${o.length}, removed: ${n.length}`),o.length&&Bn(`Add To Cart`,{items:o}),n.length&&r$1.token===e.token&&Bn(`Remove From Cart`,{items:n}),(n.length||o.length)&&Wn.next({itemsAdded:o,itemsRemoved:n,cart:e});}function Bn(r,e){j(new Ir$1(r,e));}async function Aa(){ka(await fe$4.get(`cart`,{}),await E.getCurrent().getNormalisedCart(true));}var F=class r{static cartDrawerToggle$=new Sr({open:false,firstOpen:false});static DEFAULT_SELECTOR=`cart-drawer`;static _instance;inShadow=false;cartDrawerElement;cartDrawerShadowElement;configWebsite=he$3.get().website??{};currentState=false;mutationSubscription;mutationObserver;firstOpen=true;selector;shadowParentElementSelector;clickEventListener;refreshUIEventListener;iconSelector=[`button[drawer-to-open="cart-drawer"]`,`a[href="/cart"]`,`.header__icon--cart`,`#cart-icon-bubble`,`.cart-icon-bubble`,`.cart-count`,`a[onclick*="handleFloCartBtn"]`].join(`,`);cartSelector=[r.DEFAULT_SELECTOR,`#halo-cart-sidebar`,`[role="dialog"][class*="cart" i]`,`[id*="section-cart" i]`,`#sidebar-cart`,`#rebuy-cart`,`#mini-cart`,`#flo-cart-wrapper`,`#drawer-cart`,`#UpcartPopupBackDrop`,`[id$="CartDrawer" i]`].join(`,`);constructor(){this.initialize(),this.refreshUIEventListener=this.updateBubble.bind(this),this.clickEventListener=this.manualCartIconClicked.bind(this),document.addEventListener(`letscooee:outbound:refresh-ui`,this.refreshUIEventListener),document.addEventListener(`click`,this.clickEventListener,{capture:true,passive:true});}get element(){return this.cartDrawerElement}static get(){return r._instance||(r._instance=new r),r._instance}static initialize(){r.get();}isOpen(){if(window.cooeeIsCartDrawerVisible)return window.cooeeIsCartDrawerVisible();if(this.cartDrawerElement?.id===`rebuy-cart`)return !!window.Rebuy?.SmartCart?.visible;let e=this.inShadow?this.isPresent():C$1(this.cartDrawerElement);return Y$1.info(`Cart drawer is currently ${e?`open`:`close`}`),e}open(){if(this.isOpen()){Y$1.log(`Drawer is already open`);return}document.dispatchEvent(new CustomEvent(`letscooee:outbound:open-cart`));let e=document.querySelector(this.iconSelector);if(!e){Y$1.verbose(`No clickable cart icon found with selector`,this.iconSelector);return}e.click();}isShopifyDefaultDrawer(){return this.element?.tagName.toLowerCase()===r.DEFAULT_SELECTOR}isMiniCart(){return this.isShopifyDefaultDrawer()&&this.element?.id===`mini-cart`}refreshUI(e,t=true){if(window.cooeeUpdateCartDrawer)try{window.cooeeUpdateCartDrawer(e);}catch(i){ke$2(i,`execute-cooeeUpdateCartDrawer`);}else if(this.isMiniCart()&&this.element?._rerenderCart)this.element._rerenderCart({detail:{cart:e}});else if(window.MinimogTheme?.Cart?.renderNewCart)window.MinimogTheme.Cart.renderNewCart();else if(this.isShopifyDefaultDrawer()&&this.element?.renderContents&&e)this.element.classList.remove(`is-empty`),this.element.renderContents?.(e);else if(this.element?.onCartDrawerUpdate)this.element.onCartDrawerUpdate();else if(window.cartGiftUpdate){if(!e?.items?.[0])return;let i=e.items[0].id,o=e.items[0].quantity,n=e.items[0].price;window.cartGiftUpdate(i,n,o,``,`ADD_TO_CART`);}else if(window.icartCartActivityEvent)window.icartCartActivityEvent();else if(window.theme?.CartDrawer&&typeof window.theme?.CartDrawer==`function`)window.theme?.CartDrawer.init?new window.theme.CartDrawer().init():new window.theme.CartDrawer;else if(window.Hs_CartDrawer?.updateSlideCart)window.Hs_CartDrawer.updateSlideCart();else if(window.theme?.fetch_side_cart)window.theme.fetch_side_cart();else if(window.theme?.Cart?.updateCart)window.theme.Cart.updateCart();else if(window.cartUpdate)window.cartUpdate();else if(this.element?._onCartRefresh)this.element._onCartRefresh();else if(window.cart?.getCart)window.cart.getCart();else if(this.element?.tagName?.toLowerCase()===`cart-drawer-component`)document.dispatchEvent(new CustomEvent(`action:cart:updateCartandShowCart`));else if(this.element?.id===`sidebar-cart`)document.body.dispatchEvent(new CustomEvent(`cart:refresh`,{bubbles:true,detail:{}}));else if(this.element?.id===`quick-cart`){let i=document.querySelector(`a[href="/cart"]`);i&&i.click();}else window.Shopify?.KT_onItemAdded?window.Shopify.KT_onItemAdded():window.sideCart?.updateCart?window.sideCart.updateCart():window.SLIDECART_UPDATE?(window.SLIDECART_UPDATE(),window.SLIDECART_OPEN?.()):window.refreshCart?E.getCurrent().getNormalisedCart(true).then(()=>{window.refreshCart(E.getCurrent());}):window.OPEN_CART?window.OPEN_CART():window.updateCart?window.updateCart():window.sjRefreshCart?window.sjRefreshCart():window.CartJS?.getCart?window.CartJS?.getCart():window.updateCartItemJS?window.updateCartItemJS(1,e?.items?.[0]?.id+``):(Y$1.info(`No method found to update the cart drawer. Blindly firing some events to try`),document.dispatchEvent(new CustomEvent(`cart:refresh`,{bubbles:true})));document.dispatchEvent(new CustomEvent(`letscooee:outbound:refresh-ui`,{detail:{responseJSON:e,currentCart:E.getCurrent()}})),t&&fi();}async initialize(){let e=this.configWebsite.cartDrawerSelector;if(!e){await this.findCartDrawer();return}let t=e.split(`:shadow`);t.length===1?(this.selector=t[0],await this.findCartDrawer()):(this.inShadow=true,this.shadowParentElementSelector=t[0]?.trim(),this.selector=t[1]?.trim(),await this.findCartDrawerWithShadow());}async findCartDrawer(){if(!Gt())return;let e=this.selector||this.cartSelector;if(this.cartDrawerElement=await Ln$1(e),!this.cartDrawerElement){Gn.default.warn(`Max attempts exhausted to find cart drawer`);return}Y$1.verbose(`Found`,this.cartDrawerElement,`from selector: ${e}`),this.createMutationObservers();}async findCartDrawerWithShadow(){if(!this.shadowParentElementSelector)return;let t=(await Ln$1(this.shadowParentElementSelector))?.shadowRoot;t?.mode===`open`&&(this.cartDrawerShadowElement=t,this.createMutationObservers());}createMutationObservers(){!this.cartDrawerElement&&!this.cartDrawerShadowElement||this.watchForCartToggle();}watchForCartToggle(){let e=this.cartDrawerElement||this.cartDrawerShadowElement,t=new U$1;this.mutationObserver=new MutationObserver(()=>{t.next();}),this.mutationObserver.observe(e,{attributes:true,subtree:true,childList:this.inShadow}),this.mutationSubscription=t.pipe(we$1(800,void 0,{leading:false,trailing:true})).subscribe(()=>{let i=this.isOpen();this.currentState!==i&&(this.currentState=i,r.cartDrawerToggle$.next({open:i,firstOpen:this.firstOpen}),this.firstOpen&&(this.firstOpen=false));});}isPresent(){if(!this.selector||!this.cartDrawerShadowElement)return false;let e=this.cartDrawerShadowElement.querySelector(this.selector);return e?C$1(e):false}async updateBubble(){let e=(await E.getCurrent().getNormalisedCart(true)).itemCount,t=document.querySelector(`.cart-link__bubble`);t&&(t.innerText=e+``);}manualCartIconClicked(e){!e.target.closest(this.iconSelector)||!e.isTrusted||window.CooeeSDK.events.push([`Open Cart`]);}};var uo=new Map,hi=async r=>{for(let n of r.items)if(window.cooeeManipulateProduct)try{window.cooeeManipulateProduct(n,r);}catch(s){Y$1.error(s);}if(r.isCartEmbed()&&!r.isSubscriptionUpsell()){let s=(await E.getCurrent().getNormalisedCart()).items.map(c=>c.mID);r.items=r.items.filter(c=>!s.includes(c.mID));}if(r.items=jn(r),he$3.get().currencyCount<=1)return r.items;if(r.isShoppableVideo())return await Oa(r.content.videoConfig,r),r.items;let e=r.items.length,t=r.items.map(n=>zn(n,r)),o=(await Promise.all(t)).filter(n=>n!=null);if(e&&!o.length){let n=`Failed to fetch any product from Ajax API`;throw fe(new Ir$1(`CE Campaign Failed`,{reason:n,currency:r.currency},r)),new Error(n)}return jn(r,o)},jn=(r,e=r.items)=>{if(!r.isCartRecovery())return e;let t=E.getCurrent().items,i=[];for(let o of e)for(let n of o.vars){if(!n.isAvailable)continue;let s=t.find(v=>v.variant_id.toString()===n.mID);if(!s)continue;let c=new ot$2(o);c.name=s.title;let l=new nt$1(n);l.name=s.variant_title,l.price.d=s.discounted_price/100,c.variants=[l],i.push(c);}return i},Oa=async(r,e)=>{await Promise.all(r.videos.map(async t=>{t.items=await Promise.all(t.items.map(async i=>{return await zn(i,e)||i}));}));},zn=async(r,e)=>{if(uo.has(r.mID))return uo.get(r.mID);let t,i=`/products/${r.slug}.js`;try{t=(await jn$1(i)).data;}catch(o){return o instanceof oe$5&&o.response?.status===404||ke$2(o,`fetch-shopify-product`,{extra:{item:r,path:i},engagementTrigger:e}),null}return t?La(r,t):(Y$1.error(`Item not found after AJAX call for:`,r),null)},La=(r,e)=>{if(!r||!e)return r;r.name=e.title,r.tags=e.tags,r.slug=e.handle;let t=r.selectedOrFirstVariant.value;return r.vars.map(i=>{let o=e.variants.find(n=>n.id===+i.mID);o!=null&&(i.name=o.title,i.isAvailable=o.available,i.price.d=o.price?o.price/100:o.price,i.price.effective=i.price.d,i.price.cmp=o.compare_at_price?o.compare_at_price/100:o.compare_at_price,+t.mID===o.id&&(t.effectivePrice.value=i.price.d));}),uo.set(r.mID,r),r};var Xt=r=>{let e=r instanceof ot$2?r.selectedOrFirstVariant.value.mID:r.vID,t=r instanceof ot$2?r.selectedOrFirstVariant.value.name:r.vName;return {product_id:r.mID,product_name:r.name,variant_id:e,variant_name:t}};var wi=class{constructor(e){this.scalingFactor=e;}getLayoutStyles(e){if(!e)return {display:`block`};let t={display:e.disp};return e.of&&(t.objectFit=e.of),e.pos===`absolute`&&(t.width=`auto !important`,t.position=`absolute`,t.right=e.right+`px`,t.left=e.left+`px`,t.top=e.top+`px`,t.bottom=e.bottom+`px`),t}getSizeStyles(e){let t={};return e?.w&&(t.width=e.w),e?.h&&(t.height=e.h),e?.maxW&&(t.maxWidth=e.maxW),e?.maxH&&(t.maxHeight=e.maxH),e?.minW&&(t.minWidth=e.minW),e?.minH&&(t.minHeight=e.minH),t}getBorderStyles(e){if(!e)return {};let t={};return e.radius&&e.radius>0&&(t.borderRadius=this.getSizePx(e.radius)),e.width&&e.width>0&&(t.borderWidth=this.getSizePx(e.width),t.borderStyle=e.style?.toLowerCase(),e.color?this.getColourStyles(e.color,`border-color`,t):t.borderColor=`black`),t}getFlexStyles(e){return e?{gap:e.gap+`px`,flexWrap:e.wrap,flexDirection:e.dir,justifyContent:e.jc,alignItems:e.ai,width:`100%`}:{}}getSpaceStyles(e){let t={};return e?(t.paddingTop=this.getSizePx(e.pt),t.paddingBottom=this.getSizePx(e.pb),t.paddingLeft=this.getSizePx(e.pl),t.paddingRight=this.getSizePx(e.pr),t.marginTop=this.getSizePx(e.mt),t.marginBottom=this.getSizePx(e.mb),t.marginLeft=e.cent?`auto`:this.getSizePx(e.ml),t.marginRight=e.cent?`auto`:this.getSizePx(e.mr),t):(t.margin=`0 !important`,t.padding=`unset`,t)}getBackgroundStyles(e){if(!e)return {};let t={};if(e.glossy){let i=`backdrop-filter`,o=`-webkit-`+i,n=`blur(${e.glossy.radius}px)`;if(!CSS.supports(o,n)&&!CSS.supports(i,n))return {background:e.glossy.fallback.rgba};if(t[o]=n,t[i]=n,e.glossy.color)return this.getColourStyles(e.glossy.color,`background`,t)}else if(e.solid){if(e.solid.grad)return this.getGradientStyles(e.solid.grad,`background`,t);if(e.solid.hex)return {backgroundColor:e.solid.rgba}}else if(e.img){if(!e.img.src)return {};let i=(e.img.a??0)/100;t.background=`linear-gradient(rgba(0, 0, 0, ${i}), rgba(0, 0, 0, ${i})),url("${e.img.src}") no-repeat center`,t.backgroundSize=`cover`,e.img.a&&(t[`-webkit-backdrop-filter`]=`opacity(${e.img.a})`,t.backdropFilter=`opacity(${e.img.a})`);}return t}getGradientStyles(e,t,i){if(i??={},e.type===`LINEAR`){let o=`linear-gradient(${e.ang}deg, ${e.c1}, ${e.c2}`;e.c3&&(o+=`, ${e.c3}`),o+=`)`,i[t]=o;}return i}getColourStyles(e,t=`color`,i){return i??={},e?e.grad?this.getGradientStyles(e.grad,t,i):(e.hex&&(i[t]=e.rgba),i):i}getSizePx(e){return this.getScaledSize(e)+`px`}getScaledSize(e){return (e??0)*this.scalingFactor}};var ns=x$2(yt$1());var go=class{origin;path;qs;name;referrer;utmSource;utmMedium;utmCampaign;utmId;utmTerm;utmContent;constructor(e){this.name=e.name,this.path=e.path,this.qs=e.qs,this.referrer=e.referrer,this.utmSource=e.utmSource||e.utm_source,this.utmMedium=e.utmMedium||e.utm_medium,this.utmCampaign=e.utmCampaign||e.utm_campaign,this.utmId=e.utmId||e.utm_id,this.utmTerm=e.utmTerm||e.utm_term,this.utmContent=e.utmContent||e.utm_content;}};function vi(){let r$2=location.pathname===`/`?location.pathname:location.pathname.replace(/\/+$/,``);return new go(r({origin:location.origin,path:r$2,qs:location.search,referrer:Ye$1(),name:Be$3().pageName},Je()))}function Kn(){let r=Be$3(),e=new URLSearchParams(location.search),t=e.get(`cooee-preview`),i=e.get(`cooee-exp-preview`);if(t){let n=t.split(`,`).map(s=>s.trim()).filter(s=>Number.isInteger(+s));n.length&&(r.previewIDs=n);}if(i){let n=i.split(`,`).map(s=>s.trim()).filter(s=>Number.isInteger(+s));n.length&&(r.previewIDs??=[],r.previewIDs.push(...n),r.activeExperiments=true);}let o=e.get(`cooee-variant`)?.trim();o&&(r.previewVariant=o);}function Ci(){let r$3=Be$3();return s(r(s(r({},r$3.customContext),{page:vi(),locale:r$3.locale,currentItem:r$3.currentItem,previewIDs:r$3.previewIDs,previewVariant:r$3.previewVariant,engagementIDs:Ma(),cart:no()}),Na()),{host:window.location.host})}function Na(){let r=window.CooeeSDK.uaParser.getResult();return {os:r.os,device:r.device,browser:r.browser}}function Ma(){let r=document.querySelectorAll(`.letscooee-engagement`),e=[];return r.forEach(t=>{let i=t.dataset.engagementId;i&&+i&&e.push(i);}),e}var Ua=`keepalive`in new Request(``),fo=new Headers,bi={type:Gr$3,code:Hr$3,version:Q$4,shopName:Xr()??``};Wa();async function $e(){let[r$4]=await Promise.all([Xn()]);return r(r({},Ci()),r$4)}function Dt(r){le$1(le).then(()=>Fa(r??{}));}function Fa(r){es(`/v1/user/update`,r).then(()=>{Y$1.verbose(`Updated user profile`);}).catch(e=>{Y$1.error(`Error saving user profile`,e);});}function Yn(r){return me(`/v1/event/generate-discount`,r)}function Jn(r){le$1(le).then(()=>Ba({props:r}));}function Ba(r){es(`/v1/device/update`,r).then(()=>{Y$1.verbose(`Updated device properties`);}).catch(async e=>{Y$1.error(`Error saving device property`,e);});}function Qn(r){r&&(bi.deviceId=r);}function Zn(r){r&&(bi.firstSeen=r.toUTCString());}function me(r,e){return ts(`POST`,r,e)}function es(r,e){return ts(`PUT`,r,e)}function ts(r$5,e,t){if(!Gt())return Y$1.log(`Rejecting ${r$5} ${e} as this is not e-commerce app`),Promise.reject();e.startsWith(`http`)||(e=ee$3.apiURL+e);let i=t?s(r({},t),{sdkMeta:bi}):void 0;if(i&&!Ua&&e.includes(ho))return Va(e,fo,i);let o={method:r$5,headers:fo,keepalive:false};return i&&(o.body=JSON.stringify(i)),jn$1(e,o)}function Va(r,e,t){return new Promise((i,o)=>{let n=new XMLHttpRequest;n.open(`POST`,r,true),e.forEach((s,c)=>{n.setRequestHeader(c,s);}),n.onreadystatechange=()=>{if(n.readyState===XMLHttpRequest.DONE)if(n.status>=200&&n.status<300)try{if(n.getResponseHeader(`Content-Type`)?.includes(`application/json`))i({data:JSON.parse(n.responseText),headers:e,request:n,status:n.status,statusText:n.statusText});else o(new Error(`Content-Type of response header is not json`));}catch(s){o(s);}else o(new Error(`Received status - ${n.status}(${n.statusText})`));},n.onerror=()=>{o(new Error(`Network error occurred during the request.`));},n.send(JSON.stringify(t));})}function Wa(){fo.set(`Content-Type`,`text/plain; charset=utf-8`);let r=localStorage.getItem(`cooeeDebugTill`);(r&&new Date(+r)>new Date)&&(bi.debug=true);}var Ha=`
43
43
  mutation cartDiscountCodesUpdate($cartId: ID!, $discountCodes: [String!]) {
44
44
  cartDiscountCodesUpdate(cartId: $cartId, discountCodes: $discountCodes) {
45
45
  cart {
@@ -64,25 +64,25 @@ mutation cartDiscountCodesUpdate($cartId: ID!, $discountCodes: [String!]) {
64
64
  }
65
65
  }
66
66
  }
67
- `;function is(r){let e=F.get();if(window.cooeeGetCartSections&&typeof window.cooeeGetCartSections==`function`)try{return {sections_url:window.location.pathname,sections:window.cooeeGetCartSections()}}catch(t){ke$2(t,`execute-cooeeGetCartSections`,{engagementTrigger:r});}else {if(e.isMiniCart())return {sections:[`mini-cart`]};if(e.isShopifyDefaultDrawer())return {sections:e.element.getSectionsToRender?.().map((t=>t.section??t.id))}}return {}}async function wo(r$6,e){if(!pe$4.hasKeys(r$6)){Y$1.warn(`No update fields provided`);return}let t=is(e),i=r(r({},r$6),t);try{let o=await ot(`/cart/update.js`,i);return Y$1.log(`Updated cart`,r$6),E.getCurrent().update(o.data),o.data}catch(o){ke$2(o,`cart-update`),Nn$2(`Failed to update item in cart`);}}var Rt=class{async addToCart(e,t){if(!e.length)return;let i=e.map(s=>{let{vID:c,vName:l,quantity:v}=this.getVariantDetails(s),w=t.getPrivateAttributesForLineItem();if(pe$4.hasKeys(window.CooeeSDK.customItemProperties)){let I={name:l},R={templateSuffix:s.templateSuffix},b=rs.render(JSON.stringify(window.CooeeSDK.customItemProperties),{variant:I,product:R});w=r(r({},JSON.parse(b)),w);}return {id:c?+c:+s.mID,quantity:v,properties:w}}),o=is(t),n=r({items:i},o);try{let s=await ot(`/cart/add.js`,n);return Y$1.log(`Added ${e.length} items to Cart`),Nn$2(`Product added to your cart`),s.data}catch(s){ke$2(s,`cart-item-add`,{engagementTrigger:t});let c=[`Failed to add product in cart.`];if(s instanceof oe$5&&s.is40x()&&s.responseText){let l=s.responseText;l.description&&c.push(`Reason: ${l.description}`);}c.push(`Please try again later.`),Nn$2(c.join(` `));}}async copyDiscountCode(e){if(e)try{await navigator.clipboard.writeText(e),Y$1.log(`Code-${e} copied`),Nn$2(`Discount code copied`);}catch(t){Y$1.error(`Failed to copy code`,t);}}getProductURL(e){if(!e?.link)return;let t=An(e.link);if(t)return yt(`/products/`+t)}async upgradeToSubscription(e,t){if(!e){Y$1.warn(`Trying to upgrade to subscription with no item`);return}let i=await E.getCurrent().getNormalisedCart(),o=e.selectedOrFirstVariant.value,n=i.items.findIndex(l=>l.vID===o.mID),s=o.selectedSellingPlan.value,c={line:n+1,selling_plan:s?.mID||null,properties:t.getPrivateAttributesForLineItem()};try{let l=await ot(`/cart/change.js`,c);return Y$1.log(`Upgraded ${e} selling plan`),Nn$2(`Line item updated`),E.getCurrent().update(l.data),l.data}catch(l){ke$2(l,`cart-switch-subscription`,{engagementTrigger:t}),Nn$2(`Failed to update subscription`);}}async createNewCart(e,t,i){if(!e?.vID){Y$1.error(`No variant ID found to perform Buy now`,e);return}let o=t?[t]:[];return (await Pt($a,{input:{lines:[{merchandiseId:`gid://shopify/ProductVariant/${e.vID}`,quantity:1,attributes:i.getKVFormatPrivateAttributesForLineItem()}],discountCodes:o,attributes:await On$1(`Buy Now`)}},`storefront-create-cart`)).data.data?.cartCreate?.cart?.checkoutUrl}async process(e){let t=e.clickAction,i=e.items,o=e.triggerData,n;if(t.at){let s=t;Y$1.log(`Performing ${JSON.stringify(s)} action`);let c={};if(s.at===He$2.GO_TO_PRODUCT)n=this.getProductURL(i[0]);else if(s.at===He$2.ADD_TO_CART)i?.length&&await this.addToCart(i,o);else if(s.at===He$2.COPY_COUPON_CODE)await this.copyDiscountCode(o.discount?.code),c.discountCode=o.discount?.code;else if(s.at===He$2.OPEN_CART)F.get().open();else if(s.at===He$2.GO_TO_COLLECTION){let l=e.collections;if(!l?.length)return;n=yt(`/collections/`+l[0].handle);}c.products=i.map(Xt),c.redirectTo=n,Yt(s.at,c);}t.applyDiscount&&o.discount?.code?qe.navigate(o.discount.code,o.redirectBehaviour,n):n&&(location.pathname=n);}getVariantDetails(e){let t,i,o;if(e instanceof et)t=e.vID,i=e.vName,o=e.quantity??1;else {if(!e.vars?.length)return {};t=e.selectedOrFirstVariant.value.mID,i=e.selectedOrFirstVariant.value.name,o=1;}return {vID:t,quantity:o,vName:i}}};async function os(r$7,e){if(!pe$4.hasKeys(e)){Y$1.warn(`No update fields provided`);return}let t=r({id:r$7.key},e);try{let i=await ot(`/cart/change.js`,t);Y$1.log(`Updated line-item`,r$7),E.getCurrent().update(i.data);}catch(i){ke$2(i,`cart-item-update`);}}var Re=class{constructor(e){this.triggerContext=e;}async execute(e){let t=Be$3().currentItem,i=e.clickAction;if(!i)return;let o=e.item,n=this.triggerContext,s=new Rt,c=n.triggerData.redirectBehaviour,l=!!n.triggerData.discount?.type&&!!i?.applyDiscount,v={selectedVariants:n.triggerData.nonMutableItems.map(y=>({itemMID:y.mID,mID:y.selectedOrFirstVariant.value.mID,variantID:y.selectedOrFirstVariant.value.mID})),eID:n.triggerData.engagementID,cID:n.triggerData.contentID},w=``,I=[],R=[];if(o?R=[o.toEmbed()]:e.embeddedItem&&(R=[e.embeddedItem]),i.at===He$2.ADD_BUNDLE){let y=n.selectedItems;if(R=e.embeddedItems??y.map(z=>z.toEmbed()),n.shouldGiveFBTDiscount||e.embeddedItems?.length){let z;e.embeddedItems?z=e.embeddedItems.map(C=>({itemMID:C.mID,mID:C.vID,variantID:C.vID,quantity:C.quantity})):z=y.map(C=>({itemMID:C.mID,mID:C.selectedOrFirstVariant.value.mID,variantID:C.selectedOrFirstVariant.value.mID}));let ee=n.triggerData.bundleFrom;n.triggerData.isBundleOnCartDrawer()&&ee&&(z.push({itemMID:ee.mID,mID:ee.selectedOrFirstVariant.value.mID,isPrimary:true}),R.unshift(ee.toEmbed())),v.selectedVariants=z,n.triggerData.isBundleOnPDP()&&v.selectedVariants.forEach(C=>{C.mID===t.vID&&(C.isPrimary=true);});}else v=void 0;I=e.embeddedItems??y;}else if(i.at===He$2.INITIATE_CHECKOUT){let y=await E.getCurrent().getNormalisedCart();R=y.items,v.selectedVariants=y.items.map(z=>({itemMID:z.mID,mID:z.vID}));}else if(i.at===He$2.ADD_TO_CART)I=o?[o]:[e.embeddedItem];else if(i.at===He$2.QUICK_VIEW){window.cooeeShowQuickItem(this.triggerContext,o),this.sendTriggerClicked(R,{from:`button`},e.video);return}else if(i.at===He$2.GO_TO_PRODUCT)w=o?yt(`/products/`+o.slug):e.embeddedItem?.link;else if(i.at===He$2.GO_TO_URL){let y=Dn(i.gu?.u);window.CooeeSDK.allowExternalURL?y&&(w=y.href):y&&(w=y.pathname+y.search+y.hash);}else if(i.at===He$2.UPGRADE_TO_SUBSCRIPTION){let y=await s.upgradeToSubscription(o,n.triggerData);this.triggerContext.triggerData.skipSubscribedItems&&this.triggerContext.renderer.destroy(),F.get().refreshUI(y);}else if(i.at===He$2.GO_TO_COLLECTION){let y=this.triggerContext.triggerData.collections?.[0];y&&(w=`collections/`+y.handle);}if(this.sendTriggerClicked(R,{from:`button`},e.video),Y$1.verbose({redirectPath:w,redirectBehaviour:c,hasDiscount:l}),!l&&w){Yt(i.at,{redirectTo:w}),location.href=w;return}let b,P=false;try{b=await this.getOrGenerateDiscountCode(v),Y$1.verbose(`Discount code (if any) to apply`,b);}catch(y){if(!this.triggerContext.triggerData.isBYOB()){ns.default.error(`Unable to get a discount code`,y);return}}if(b&&i.at===He$2.COPY_COUPON_CODE)await s.copyDiscountCode(b);else if(i.at===He$2.BUY_NOW){let y=await s.createNewCart(t,b,n.triggerData);y&&(Yt(i.at,{products:[Xt(t)],redirectTo:y}),location.href=y);return}try{b&&await qe.applyWithStorefront([b]);}catch(y){Y$1.error(y),P=true;}let _;if(I?.length&&(_=await s.addToCart(I,n.triggerData)),Yt(i.at,{products:I.map(Xt),redirectTo:w,discountCode:b}),P&&b){qe.navigate(b,c,w);return}if(w){location.href=w;return}qe.navigateWithoutDiscount(c,_);}sendTriggerClicked(e,t,i){let o=new Ir$1(`CE Trigger Clicked`,t,this.triggerContext.triggerData);o.items=e,o.setVideos(i),fe(o);}async getOrGenerateDiscountCode(e){let t=this.triggerContext.triggerData.discount;if(!t?.type)return;let i=``;if(t.type===ce.STATIC){if(!t.code)throw Zn$1(`No discount code found`,`warning`,{triggerContext:this.triggerContext}),new Error(`No discount code found`);return t.code}if(e){if(i=await qa(e,this.triggerContext),!i)throw Y$1.error(`No discount code found`,e),new Error(`Discount code not found or generated`);return i}}};function Yt(r$8,e){document.dispatchEvent(new CustomEvent(`letscooee:outbound:cta-executed`,{detail:r({action:He$2[r$8]},e)}));}async function qa(r,e){try{return (await Yn(r)).data.code}catch(t){throw Nn$2(`Failed to generate a discount code`),ke$2(t,`backend-generate-discount`,{triggerContext:e}),t}}var A=class extends g$1{stylesConverter=new wi(1);mediaStyle={};deviceTypeKey;clickExecutor;componentWillMount(){this.deviceTypeKey=M$1()?`sm`:`lg`,this.clickExecutor=new Re(this.props.triggerContext);}getCompiledStyles(){return this.putStyleAccordingToDevice(),r(r(s(r(r(r(r(r(r({},this.stylesConverter.getFlexStyles(this.mediaStyle.flex)),this.stylesConverter.getBackgroundStyles(this.mediaStyle.bg)),this.stylesConverter.getBorderStyles(this.mediaStyle.br)),this.stylesConverter.getSizeStyles(this.mediaStyle.size)),this.stylesConverter.getSpaceStyles(this.mediaStyle.spc)),this.stylesConverter.getLayoutStyles(this.mediaStyle.lout)),{boxSizing:`border-box`,outline:`none`}),this.getComponentStyles()),this.props.style)}matchWhenCondition(e){if(!e?.op)return true;let{lhs:t,rhs:i}=e;switch(e.op){case `eq`:return t===i;case `gt`:return +t>+i;case `gte`:return +t>=+i;case `lt`:return +t<+i;case `lte`:return +t<=+i;case `ne`:return t!==i;case `null`:return t==null;case `empty`:return t.trim()===``;case `in`:return new RegExp(`\\b${i}\\b`).test(t);case `nin`:return !new RegExp(`\\b${i}\\b`).test(t);default:return Y$1.error(`Invalid operator found for when condition - ${e.op}`),false}}putStyleAccordingToDevice(){let e=this.props.element;this.mediaStyle=e.style.lg,M$1()&&e.style.sm&&Object.keys(e.style.sm).length&&(this.mediaStyle=r(r({},this.mediaStyle),e.style.sm));}sendTriggerClicked(e,t){this.clickExecutor.sendTriggerClicked(e,t);}async onClick(e,t){e.stopPropagation(),t.clickAction||(t.clickAction=this.props.element.clc),t.clickAction?.at&&await this.clickExecutor.execute(t);}};var Ga=0;function h(r,e,t,i,o,n){e||(e={});var s,c,l=e;if(`ref`in l)for(c in l={},e)c==`ref`?s=e[c]:l[c]=e[c];var v={type:r,props:l,key:t,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Ga,__i:-1,__u:0,__source:o,__self:n};if(typeof r==`function`&&(s=r.defaultProps))for(c in s)l[c]===void 0&&(l[c]=s[c]);return h$2.vnode&&h$2.vnode(v),v}var oe=class extends A{componentDidMount(){this.setState(()=>({text:this.props.element.text})),W$1(this.onChange.bind(this));}componentWillReceiveProps(e){this.props.element=e.element,this.onChange();}render(){let e=this.getCompiledStyles(),t=this.state.text;return t||(e.display=`none`,t=``),h(`div`,{style:e,onClick:this.customOnClick.bind(this),className:`lc-text`,children:h(`span`,{style:this.getSpanStyle(),dangerouslySetInnerHTML:{__html:t}})})}customOnClick(){this.props.onClick&&this.props.onClick(`title`);}onChange(){if(this.props.element.text==null)return;let e=this.props.triggerContext.triggerData,t={bundle:e.discountData.value,customer:e.customerData,cart:e.getCartMagicVariables()},o=new $(Ve$2(this.props.element,t,this.props.triggerContext));if(!this.matchWhenCondition(o.when)){this.setState(()=>({text:``}));return}this.setState(()=>({text:o.text}));}getTypoStyles(){let e={},t=this.mediaStyle.typo??new V;return e.letterSpacing=t.letterSpacing,e.fontSize=t.fs+`px`,e.lineHeight=t.lh,e.fontFamily=t.fam.name||`inherit`,e.textAlign=t.alignment,e.fontWeight=t.fw,e.textDecoration=t.td??`none`,this.stylesConverter.getColourStyles(t.tc,`color`,e),e}getComponentStyles(){return r({},this.getTypoStyles())}getSpanStyle(){return {overflow:`hidden`,display:`-webkit-box`,webkitBoxOrient:`vertical`,webkitLineClamp:2,color:`inherit`,fontSize:`inherit`,fontWeight:`inherit`,fontFamily:`inherit`}}};var nt=class extends oe{render(){return h(`div`,{style:this.getCompiledStyles(),className:`lc-button`,onClick:e=>this.onClick(e,{item:this.props.item}),children:h(`span`,{style:this.getSpanStyle(),dangerouslySetInnerHTML:{__html:this.state.text}})})}getComponentStyles(){return s(r({},super.getComponentStyles()),{cursor:`pointer`})}};var vo=class extends g$1{render(){if(this.props.element.show[this.props.label.toLowerCase()])return this.props.element.lblPos===`end`?h(`div`,{style:r(r({},this.getElementStyle()),this.props.styles),children:[h(`span`,{children:this.props.time}),h(`span`,{style:this.getTimeLabelStyle(),children:this.props.label})]}):h(`div`,{style:r(r({},this.getElementStyle()),this.props.styles),children:[h(`span`,{style:this.getTimeLabelStyle(),children:this.props.label}),h(`span`,{children:this.props.time})]})}getDesign(){}getTimeLabelStyle(){return {fontSize:`0.5em`,alignContent:`center`}}getElementStyle(){let e={display:`flex`,flexDirection:`column`,placeContent:`center center`,textAlign:`center`};return this.props.element.horizontal&&(e.gridTemplateColumns=`repeat(2, minmax(0, 1fr))`),e}},Jt=class extends oe{labels={Days:`00`,Hours:`00`,Minutes:`00`,Seconds:`00`};componentWillMount(){super.componentWillMount(),this.setState(()=>r({},this.labels)),this.processAndStartTimer();}render(){return h(`div`,{style:this.getLabelsParentStyle(),children:Object.keys(this.labels).map(e=>h(vo,{styles:this.getCompiledStyles(),label:e,time:this.state[e],element:this.props.element}))})}getLabelsParentStyle(){return {display:`grid`,justifyContent:`center`,gridTemplateColumns:`repeat(4, auto)`,gap:this.stylesConverter.getSizePx(this.props.element.gap)}}getDisplayStyles(){return {display:`grid`,placeContent:`center center`}}getComponentStyles(){return r(r({},super.getComponentStyles()),this.getDisplayStyles())}processAndStartTimer(){this.props.element.timer.start(this.props.element.timerType,e=>{this.labels.Days=String(e.days).padStart(2,`0`),this.labels.Hours=String(e.hours).padStart(2,`0`),this.labels.Minutes=String(e.minutes).padStart(2,`0`),this.labels.Seconds=String(e.seconds).padStart(2,`0`),this.setState(()=>r({},this.labels));});}};function yi(r,e){if(!r)return;let t={loop:e.loop,slidesPerView:e.maxInRow,spaceBetween:e.gap+`px`,pagination:{type:e.pagination.type,el:r.querySelector(`.swiper-pagination`),clickable:true,renderBullet:(o,n)=>`
67
+ `;function is(r){let e=F.get();if(window.cooeeGetCartSections&&typeof window.cooeeGetCartSections==`function`)try{return {sections_url:window.location.pathname,sections:window.cooeeGetCartSections()}}catch(t){ke$2(t,`execute-cooeeGetCartSections`,{engagementTrigger:r});}else {if(e.isMiniCart())return {sections:[`mini-cart`]};if(e.isShopifyDefaultDrawer())return {sections:e.element.getSectionsToRender?.().map((t=>t.section??t.id))}}return {}}async function wo(r$6,e){if(!pe$4.hasKeys(r$6)){Y$1.warn(`No update fields provided`);return}let t=is(e),i=r(r({},r$6),t);try{let o=await ot(`/cart/update.js`,i);return Y$1.log(`Updated cart`,r$6),E.getCurrent().update(o.data),o.data}catch(o){ke$2(o,`cart-update`),e.content?.showSnackBar!==false&&Nn$2(`Failed to update item in cart`);}}var Rt=class{async addToCart(e,t){if(!e.length)return;let i=e.map(s=>{let{vID:c,vName:l,quantity:v}=this.getVariantDetails(s),w=t.getPrivateAttributesForLineItem();if(pe$4.hasKeys(window.CooeeSDK.customItemProperties)){let I={name:l},R={templateSuffix:s.templateSuffix},C=rs.render(JSON.stringify(window.CooeeSDK.customItemProperties),{variant:I,product:R});w=r(r({},JSON.parse(C)),w);}return {id:c?+c:+s.mID,quantity:v,properties:w}}),o=is(t),n=r({items:i},o);try{let s=await ot(`/cart/add.js`,n);return Y$1.log(`Added ${e.length} items to Cart`),t.content?.showSnackBar!==!1&&Nn$2(`Product added to your cart`),s.data}catch(s){ke$2(s,`cart-item-add`,{engagementTrigger:t});let c=[`Failed to add product in cart.`];if(s instanceof oe$5&&s.is40x()&&s.responseText){let l=s.responseText;l.description&&c.push(`Reason: ${l.description}`);}c.push(`Please try again later.`),t.content?.showSnackBar!==false&&Nn$2(c.join(` `));}}async copyDiscountCode(e){if(e)try{await navigator.clipboard.writeText(e),Y$1.log(`Code-${e} copied`),Nn$2(`Discount code copied`);}catch(t){Y$1.error(`Failed to copy code`,t);}}getProductURL(e){if(!e?.link)return;let t=An(e.link);if(t)return yt(`/products/`+t)}async upgradeToSubscription(e,t){if(!e){Y$1.warn(`Trying to upgrade to subscription with no item`);return}let i=await E.getCurrent().getNormalisedCart(),o=e.selectedOrFirstVariant.value,n=i.items.findIndex(l=>l.vID===o.mID),s=o.selectedSellingPlan.value,c={line:n+1,selling_plan:s?.mID||null,properties:t.getPrivateAttributesForLineItem()};try{let l=await ot(`/cart/change.js`,c);return Y$1.log(`Upgraded ${e} selling plan`),Nn$2(`Line item updated`),E.getCurrent().update(l.data),l.data}catch(l){ke$2(l,`cart-switch-subscription`,{engagementTrigger:t}),Nn$2(`Failed to update subscription`);}}async createNewCart(e,t,i){if(!e?.vID){Y$1.error(`No variant ID found to perform Buy now`,e);return}let o=t?[t]:[];return (await Pt($a,{input:{lines:[{merchandiseId:`gid://shopify/ProductVariant/${e.vID}`,quantity:1,attributes:i.getKVFormatPrivateAttributesForLineItem()}],discountCodes:o,attributes:await On$1(`Buy Now`)}},`storefront-create-cart`)).data.data?.cartCreate?.cart?.checkoutUrl}async process(e){let t=e.clickAction,i=e.items,o=e.triggerData,n;if(t.at){let s=t;Y$1.log(`Performing ${JSON.stringify(s)} action`);let c={};if(s.at===He$2.GO_TO_PRODUCT)n=this.getProductURL(i[0]);else if(s.at===He$2.ADD_TO_CART)i?.length&&await this.addToCart(i,o);else if(s.at===He$2.COPY_COUPON_CODE)await this.copyDiscountCode(o.discount?.code),c.discountCode=o.discount?.code;else if(s.at===He$2.OPEN_CART)F.get().open();else if(s.at===He$2.GO_TO_COLLECTION){let l=e.collections;if(!l?.length)return;n=yt(`/collections/`+l[0].handle);}c.products=i.map(Xt),c.redirectTo=n,Yt(s.at,c);}t.applyDiscount&&o.discount?.code?qe.navigate(o.discount.code,o.redirectBehaviour,n):n&&(location.pathname=n);}getVariantDetails(e){let t,i,o;if(e instanceof et)t=e.vID,i=e.vName,o=e.quantity??1;else {if(!e.vars?.length)return {};t=e.selectedOrFirstVariant.value.mID,i=e.selectedOrFirstVariant.value.name,o=1;}return {vID:t,quantity:o,vName:i}}};async function os(r$7,e){if(!pe$4.hasKeys(e)){Y$1.warn(`No update fields provided`);return}let t=r({id:r$7.key},e);try{let i=await ot(`/cart/change.js`,t);Y$1.log(`Updated line-item`,r$7),E.getCurrent().update(i.data);}catch(i){ke$2(i,`cart-item-update`);}}var Re=class{constructor(e){this.triggerContext=e;}async execute(e){let t=Be$3().currentItem,i=e.clickAction;if(!i)return;let o=e.item,n=this.triggerContext,s=new Rt,c=n.triggerData.redirectBehaviour,l=!!n.triggerData.discount?.type&&!!i?.applyDiscount,v={selectedVariants:n.triggerData.nonMutableItems.map(y=>({itemMID:y.mID,mID:y.selectedOrFirstVariant.value.mID,variantID:y.selectedOrFirstVariant.value.mID})),eID:n.triggerData.engagementID,cID:n.triggerData.contentID},w=``,I=[],R=[];if(o?R=[o.toEmbed()]:e.embeddedItem&&(R=[e.embeddedItem]),i.at===He$2.ADD_BUNDLE){let y=n.selectedItems;if(R=e.embeddedItems??y.map(z=>z.toEmbed()),n.shouldGiveFBTDiscount||e.embeddedItems?.length){let z;e.embeddedItems?z=e.embeddedItems.map(b=>({itemMID:b.mID,mID:b.vID,variantID:b.vID,quantity:b.quantity})):z=y.map(b=>({itemMID:b.mID,mID:b.selectedOrFirstVariant.value.mID,variantID:b.selectedOrFirstVariant.value.mID}));let ee=n.triggerData.bundleFrom;n.triggerData.isBundleOnCartDrawer()&&ee&&(z.push({itemMID:ee.mID,mID:ee.selectedOrFirstVariant.value.mID,isPrimary:true}),R.unshift(ee.toEmbed())),v.selectedVariants=z,n.triggerData.isBundleOnPDP()&&v.selectedVariants.forEach(b=>{b.mID===t.vID&&(b.isPrimary=true);});}else v=void 0;I=e.embeddedItems??y;}else if(i.at===He$2.INITIATE_CHECKOUT){let y=await E.getCurrent().getNormalisedCart();R=y.items,v.selectedVariants=y.items.map(z=>({itemMID:z.mID,mID:z.vID}));}else if(i.at===He$2.ADD_TO_CART)I=o?[o]:[e.embeddedItem];else if(i.at===He$2.QUICK_VIEW){window.cooeeShowQuickItem(this.triggerContext,o),this.sendTriggerClicked(R,{from:`button`},e.video);return}else if(i.at===He$2.GO_TO_PRODUCT)w=o?yt(`/products/`+o.slug):e.embeddedItem?.link;else if(i.at===He$2.GO_TO_URL){let y=Dn(i.gu?.u);window.CooeeSDK.allowExternalURL?y&&(w=y.href):y&&(w=y.pathname+y.search+y.hash);}else if(i.at===He$2.UPGRADE_TO_SUBSCRIPTION){let y=await s.upgradeToSubscription(o,n.triggerData);this.triggerContext.triggerData.skipSubscribedItems&&this.triggerContext.renderer.destroy(),F.get().refreshUI(y);}else if(i.at===He$2.GO_TO_COLLECTION){let y=this.triggerContext.triggerData.collections?.[0];y&&(w=`collections/`+y.handle);}if(this.sendTriggerClicked(R,{from:`button`},e.video),Y$1.verbose({redirectPath:w,redirectBehaviour:c,hasDiscount:l}),!l&&w){Yt(i.at,{redirectTo:w}),location.href=w;return}let C,P=false;try{C=await this.getOrGenerateDiscountCode(v),Y$1.verbose(`Discount code (if any) to apply`,C);}catch(y){if(!this.triggerContext.triggerData.isBYOB()){ns.default.error(`Unable to get a discount code`,y);return}}if(C&&i.at===He$2.COPY_COUPON_CODE)await s.copyDiscountCode(C);else if(i.at===He$2.BUY_NOW){let y=await s.createNewCart(t,C,n.triggerData);y&&(Yt(i.at,{products:[Xt(t)],redirectTo:y}),location.href=y);return}try{C&&await qe.applyWithStorefront([C]);}catch(y){Y$1.error(y),P=true;}let _;if(I?.length&&(_=await s.addToCart(I,n.triggerData)),Yt(i.at,{products:I.map(Xt),redirectTo:w,discountCode:C}),P&&C){qe.navigate(C,c,w);return}if(w){location.href=w;return}qe.navigateWithoutDiscount(c,_);}sendTriggerClicked(e,t,i){let o=new Ir$1(`CE Trigger Clicked`,t,this.triggerContext.triggerData);o.items=e,o.setVideos(i),fe(o);}async getOrGenerateDiscountCode(e){let t=this.triggerContext.triggerData.discount;if(!t?.type)return;let i=``;if(t.type===ce.STATIC){if(!t.code)throw Zn$1(`No discount code found`,`warning`,{triggerContext:this.triggerContext}),new Error(`No discount code found`);return t.code}if(e){if(i=await qa(e,this.triggerContext),!i)throw Y$1.error(`No discount code found`,e),new Error(`Discount code not found or generated`);return i}}};function Yt(r$8,e){document.dispatchEvent(new CustomEvent(`letscooee:outbound:cta-executed`,{detail:r({action:He$2[r$8]},e)}));}async function qa(r,e){try{return (await Yn(r)).data.code}catch(t){throw Nn$2(`Failed to generate a discount code`),ke$2(t,`backend-generate-discount`,{triggerContext:e}),t}}var A=class extends g$1{stylesConverter=new wi(1);mediaStyle={};deviceTypeKey;clickExecutor;componentWillMount(){this.deviceTypeKey=M$1()?`sm`:`lg`,this.clickExecutor=new Re(this.props.triggerContext);}getCompiledStyles(){return this.putStyleAccordingToDevice(),r(r(s(r(r(r(r(r(r({},this.stylesConverter.getFlexStyles(this.mediaStyle.flex)),this.stylesConverter.getBackgroundStyles(this.mediaStyle.bg)),this.stylesConverter.getBorderStyles(this.mediaStyle.br)),this.stylesConverter.getSizeStyles(this.mediaStyle.size)),this.stylesConverter.getSpaceStyles(this.mediaStyle.spc)),this.stylesConverter.getLayoutStyles(this.mediaStyle.lout)),{boxSizing:`border-box`,outline:`none`}),this.getComponentStyles()),this.props.style)}matchWhenCondition(e){if(!e?.op)return true;let{lhs:t,rhs:i}=e;switch(e.op){case `eq`:return t===i;case `gt`:return +t>+i;case `gte`:return +t>=+i;case `lt`:return +t<+i;case `lte`:return +t<=+i;case `ne`:return t!==i;case `null`:return t==null;case `empty`:return t.trim()===``;case `in`:return new RegExp(`\\b${i}\\b`).test(t);case `nin`:return !new RegExp(`\\b${i}\\b`).test(t);default:return Y$1.error(`Invalid operator found for when condition - ${e.op}`),false}}getClasses(e){return this.props.element.classes?(e??=``,e+` `+this.props.element.classes):e??``}putStyleAccordingToDevice(){let e=this.props.element;this.mediaStyle=e.style.lg,M$1()&&e.style.sm&&Object.keys(e.style.sm).length&&(this.mediaStyle=r(r({},this.mediaStyle),e.style.sm));}sendTriggerClicked(e,t){this.clickExecutor.sendTriggerClicked(e,t);}async onClick(e,t){e.stopPropagation(),t.clickAction||(t.clickAction=this.props.element.clc),t.clickAction?.at&&await this.clickExecutor.execute(t);}};var Ga=0;function h(r,e,t,i,o,n){e||(e={});var s,c,l=e;if(`ref`in l)for(c in l={},e)c==`ref`?s=e[c]:l[c]=e[c];var v={type:r,props:l,key:t,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Ga,__i:-1,__u:0,__source:o,__self:n};if(typeof r==`function`&&(s=r.defaultProps))for(c in s)l[c]===void 0&&(l[c]=s[c]);return h$2.vnode&&h$2.vnode(v),v}var oe=class extends A{componentDidMount(){this.setState(()=>({text:this.props.element.text})),W$1(this.onChange.bind(this));}componentWillReceiveProps(e){this.props.element=e.element,this.onChange();}render(){let e=this.getCompiledStyles(),t=this.state.text;return t||(e.display=`none`,t=``),h(`div`,{style:e,onClick:this.customOnClick.bind(this),className:this.getClasses(`lc-text`),children:h(`span`,{style:this.getSpanStyle(),dangerouslySetInnerHTML:{__html:t}})})}customOnClick(){this.props.onClick&&this.props.onClick(`title`);}onChange(){if(this.props.element.text==null)return;let e=this.props.triggerContext.triggerData,t={bundle:e.discountData.value,customer:e.customerData,cart:e.getCartMagicVariables()},o=new $(Ve$2(this.props.element,t,this.props.triggerContext));if(!this.matchWhenCondition(o.when)){this.setState(()=>({text:``}));return}this.setState(()=>({text:o.text}));}getTypoStyles(){let e={},t=this.mediaStyle.typo??new V;return e.letterSpacing=t.letterSpacing,e.fontSize=t.fs+`px`,e.lineHeight=t.lh,e.fontFamily=t.fam.name||`inherit`,e.textAlign=t.alignment,e.fontWeight=t.fw,e.textDecoration=t.td??`none`,this.stylesConverter.getColourStyles(t.tc,`color`,e),e}getComponentStyles(){return r({},this.getTypoStyles())}getSpanStyle(){return {overflow:`hidden`,display:`-webkit-box`,webkitBoxOrient:`vertical`,webkitLineClamp:2,color:`inherit`,fontSize:`inherit`,fontWeight:`inherit`,fontFamily:`inherit`}}};var nt=class extends oe{render(){return h(`div`,{style:this.getCompiledStyles(),className:this.getClasses(`lc-button`),onClick:e=>this.onClick(e,{item:this.props.item}),children:h(`span`,{style:this.getSpanStyle(),dangerouslySetInnerHTML:{__html:this.state.text}})})}getComponentStyles(){return s(r({},super.getComponentStyles()),{cursor:`pointer`})}};var vo=class extends g$1{render(){if(this.props.element.show[this.props.label.toLowerCase()])return this.props.element.lblPos===`end`?h(`div`,{style:r(r({},this.getElementStyle()),this.props.styles),children:[h(`span`,{children:this.props.time}),h(`span`,{style:this.getTimeLabelStyle(),children:this.props.label})]}):h(`div`,{style:r(r({},this.getElementStyle()),this.props.styles),children:[h(`span`,{style:this.getTimeLabelStyle(),children:this.props.label}),h(`span`,{children:this.props.time})]})}getDesign(){}getTimeLabelStyle(){return {fontSize:`0.5em`,alignContent:`center`}}getElementStyle(){let e={display:`flex`,flexDirection:`column`,placeContent:`center center`,textAlign:`center`};return this.props.element.horizontal&&(e.gridTemplateColumns=`repeat(2, minmax(0, 1fr))`),e}},Jt=class extends oe{labels={Days:`00`,Hours:`00`,Minutes:`00`,Seconds:`00`};componentWillMount(){super.componentWillMount(),this.setState(()=>r({},this.labels)),this.processAndStartTimer();}render(){return h(`div`,{style:this.getLabelsParentStyle(),className:this.getClasses(),children:Object.keys(this.labels).map(e=>h(vo,{styles:this.getCompiledStyles(),label:e,time:this.state[e],element:this.props.element}))})}getLabelsParentStyle(){return {display:`grid`,justifyContent:`center`,gridTemplateColumns:`repeat(4, auto)`,gap:this.stylesConverter.getSizePx(this.props.element.gap)}}getDisplayStyles(){return {display:`grid`,placeContent:`center center`}}getComponentStyles(){return r(r({},super.getComponentStyles()),this.getDisplayStyles())}processAndStartTimer(){this.props.element.timer.start(this.props.element.timerType,e=>{this.labels.Days=String(e.days).padStart(2,`0`),this.labels.Hours=String(e.hours).padStart(2,`0`),this.labels.Minutes=String(e.minutes).padStart(2,`0`),this.labels.Seconds=String(e.seconds).padStart(2,`0`),this.setState(()=>r({},this.labels));});}};function yi(r,e){if(!r)return;let t={loop:e.loop,slidesPerView:e.maxInRow,spaceBetween:e.gap+`px`,pagination:{type:e.pagination.type,el:r.querySelector(`.swiper-pagination`),clickable:true,renderBullet:(o,n)=>`
68
68
  <span class="${n}"
69
69
  style="background-color: ${e.pagination.color?.rgba};"></span>
70
70
  `,renderProgressbar:o=>`
71
71
  <span class="${o}"
72
72
  style="background-color: ${e.pagination.color?.rgba};">
73
73
  </span>
74
- `},navigation:{nextEl:r.querySelector(`.swiper-button-next`),prevEl:r.querySelector(`.swiper-button-prev`)},autoplay:e.autoplay?.enabled?{delay:e.autoplay?.delay,disableOnInteraction:false,pauseOnMouseEnter:false}:false,autoHeight:true};e.marquee&&t.autoplay&&typeof t.autoplay==`object`&&(t.speed=e.speed,t.autoplay.pauseOnMouseEnter=true,r.style.setProperty(`--swiper-wrapper-transition-timing-function`,`linear`));let i=new window.CooeeSDK.Swiper(r,t);return r.style.setProperty(`--swiper-navigation-size`,`${e.navigation.size}px`),i}function Ei(r,e,t){let i={color:r.navigation.color?.rgba};return r.pagination.enabled&&(i.transform=`translateY(-25%)`),h(`div`,{class:`swiper-container`,ref:e,style:`max-width: 100%`,children:[h(`div`,{class:`swiper-wrapper`,children:t()}),r.navigation.enabled&&h(`div`,{class:`swiper-button-next`,style:i,children:h(`span`,{})}),r.navigation.enabled&&h(`div`,{class:`swiper-button-prev`,style:i,children:h(`span`,{})}),r.pagination.enabled&&h(`div`,{className:`swiper-pagination`,style:{bottom:0,top:`unset`,position:`relative`,color:r.pagination.color?.rgba}})]})}var Qt=class extends A{componentDidMount(){W$1(()=>{this.setState(()=>({checked:this.props.item.selected.value}));});}render(){return h(`div`,{style:this.getCompiledStyles(),className:`lc-checkbox`,children:h(`input`,{type:`checkbox`,checked:this.state.checked,onChange:this.onChange.bind(this),style:{appearance:`auto`}})})}onChange(e){let{checked:t}=e.target;this.props.item.selected.value=t;}getTypoStyles(){let e={},t=this.mediaStyle.typo??new V;return e.textAlign=t.alignment,e.justifyContent=t.alignment,e}getComponentStyles(){return s(r({},this.getTypoStyles()),{display:`flex`})}};var _e=class extends A{constructor(e,t){super(e,t);}render(){let e=this.props.element[this.deviceTypeKey],t=e?.src||this.props.element.src||this.props.element.lg?.src;return h(`img`,{onClick:this.customOnClick.bind(this),className:`lc-image`,alt:e?.name||`Image`,onMouseEnter:this.handleMouseEnter.bind(this),onMouseLeave:this.handleMouseLeave.bind(this),src:t,style:this.getCompiledStyles()})}customOnClick(e){this.props.element.clc?.at===He$2.ADD_TO_CART&&this.props.triggerContext.triggerData.items[0]&&this.onClick(e,{item:this.props.triggerContext.triggerData.items[0]}),this.props.onClick&&this.props.onClick(`image`);}getComponentStyles(){let e=this.mediaStyle.lout;if(!e||e.pos!==`absolute`)return {};let t={zIndex:e.zIndex,cursor:this.props.element.clc?.at?`pointer`:`auto`};return this.mediaStyle.size?.w&&(t.width=this.mediaStyle.size.w),this.mediaStyle.size?.h&&(t.height=this.mediaStyle.size.h),t}handleMouseEnter(e){let t=this.props.element[this.deviceTypeKey]?.secondarySrc;t&&(e.currentTarget.src=t);}handleMouseLeave(e){e.currentTarget.src=this.props.element[this.deviceTypeKey]?.src;}};var ke=class extends A{render(){if(!(this.props.element.hide||!this.matchWhenCondition(this.props.element.when)))return h(`div`,{style:this.getCompiledStyles(),class:`lc-flexbox`,children:h(Ge,{elements:this.props.elements,element:this.props.element,triggerContext:this.props.triggerContext})})}getComponentStyles(){let e=this.mediaStyle.flex??new Et,t={display:`flex`,gap:e.gap+`px`,flexWrap:e.wrap,flexDirection:e.dir,justifyContent:e.jc,alignItems:e.ai};return e.wrap===`nowrap`&&e.scroll&&(e.dir===`column`?t[`overflow-y`]=`auto`:t[`overflow-x`]=`auto`),t}};var Zt=class extends ke{render(){if(!(this.props.element.hide||!this.matchWhenCondition(this.props.element.when)))return h(`div`,{style:this.getCompiledStyles(),class:`lc-flexbox`,children:h(_t,{elements:this.props.elements,element:this.props.element,triggerContext:this.props.triggerContext,item:this.props.item,noLinks:this.props.noLinks})})}};var er=class extends A{render(){return h(`select`,{style:this.getCompiledStyles(),value:this.props.selectedVariant.selectedSellingPlan.value?.mID??``,onChange:this.onChange.bind(this),disabled:this.state.disabled,className:`lc-dropdown`,children:this.createSelectItems()})}componentDidMount(){W$1(()=>{this.setState(()=>({disabled:this.props.triggerContext.triggerData.isBundle()?!this.props.item.selected.value:false}));});}getTypoStyles(){let e={},t=this.mediaStyle.typo??new V;return e.letterSpacing=t.letterSpacing,e.fontSize=t.fs+`px`,e.lineHeight=t.lh,e.fontFamily=`inherit`,e.textAlign=t.alignment,e.fontWeight=t.fw,this.stylesConverter.getColourStyles(t.tc,`color`,e),e.boxShadow=`none`,e}getComponentStyles(){let e={};return this.props.selectedVariant.sellingPlans?.length||(e.visibility=`hidden`),r(r({},e),this.getTypoStyles())}createSelectItems(){let e=[],t=this.props.selectedVariant;if(!t.sellingPlans?.length)return [];this.props.triggerContext.triggerData.skipSubscribedItems?t.selectedSellingPlan.value||(t.sellingPlans[0].isSelected=true,t.changeSellingPlan(t.sellingPlans[0])):e.push(h(`option`,{value:``,selected:!t.selectedSellingPlan,children:`One time purchase`}));for(let i of t.sellingPlans??[])e.push(h(`option`,{value:i.mID,selected:i.isSelected,children:i.name}));return e}onChange(e){let t=e.target.value;t?this.props.selectedVariant.selectedSellingPlan.value=this.props.selectedVariant.sellingPlans.find(i=>i.mID===t):this.props.selectedVariant.selectedSellingPlan.value=void 0;}};var ja=new RegExp(`fill="#[a-zA-Z0-9]+"`),tr=class extends A{constructor(){super();}render(){let e=this.getCompiledStyles(),t=this.getRating();return t||(e.display=`none`,t=``),h(`div`,{style:e,className:`lc-star-rating`,dangerouslySetInnerHTML:{__html:t}})}getRating(){let e={size:this.props.element.iconSize,color:this.props.element.c.hex},t=qe$1(this.props.element.fullStar,{svg:e},this.props.triggerContext),i=qe$1(this.props.element.halfStart,{svg:e},this.props.triggerContext),o=this.props.review;if(!o?.rating)return ``;let n=``;if(this.props.element.showSingleStar)n=t;else {let s=5,c=`${o.rating}`.split(`.`);for(let l=0;l<+c[0];l++)n+=t,s--;c[1]&&(n+=i,s--);for(let l=0;l<s;l++)n+=t.replace(ja,`fill="#f1f1f1"`);}return n}getComponentStyles(){return {display:`flex`,alignItems:`center`}}};var rr=class extends A{render(){return h(`select`,{style:this.getCompiledStyles(),value:this.props.item.selectedOrFirstVariant.value.mID,onChange:this.onChange.bind(this),disabled:this.state.disabled,className:`lc-dropdown`,children:this.createSelectItems()})}componentDidMount(){W$1(()=>{this.setState(()=>({disabled:this.props.triggerContext.triggerData.isBundle()?!this.props.item.selected.value:false}));});}getTypoStyles(){let e={},t=this.mediaStyle.typo??new V;return e.letterSpacing=t.letterSpacing,e.fontSize=t.fs+`px`,e.lineHeight=t.lh,e.fontFamily=`inherit`,e.textAlign=t.alignment,e.fontWeight=t.fw,this.stylesConverter.getColourStyles(t.tc,`color`,e),e.boxShadow=`none`,e}getComponentStyles(){let e={};return this.props.item.vars?.length===1&&this.props.item.vars[0].name===`Default Title`&&(e.visibility=`hidden`),r(r({},e),this.getTypoStyles())}createSelectItems(){let e=[];for(let t of this.props.item.vars)e.push(h(`option`,{value:t.mID,disabled:!t.isAvailable,children:t.name}));return e}onChange(e){let t=e.target.value,i=this.props.item.vars.find(o=>o.mID===t);this.props.item.setSelectedVariant(i);}};var ss=()=>{let r=window.ShopifyAnalytics?.meta??{},e=r.selectedVariantId;if(e)return e;if(r.product?.variants?.length>0)return r.product.variants[0].id},bo=r=>{if(!r)return;let e;try{e=new URL(r);}catch{return}if(e.hostname!==`cdn.shopify.com`)return r;let t=e.pathname.split(`.`);return t.length!==2?r:(e.pathname=t[0]+`_large.`+t[1],e.toString())};var _t=class extends A{constructor(e,t){super(e,t),this.setState(()=>({decoration:`unset`}));}renderElement(e){if(!(e.hide||!this.matchWhenCondition(e.when))){if(e.t===4){let t=e;return t.l===`Star Rating`&&!this.props.item.reviews?.rating?void 0:h(Zt,{element:t,triggerContext:this.props.triggerContext,elements:t.elems,item:this.props.item,noLinks:this.props.noLinks})}if(e.t===6)return this.props.triggerContext.triggerData.isBundle()?h(Qt,{element:e,item:this.props.item,triggerContext:this.props.triggerContext}):void 0;if(e.t===13){let t=e,i=this.props.item,o=bo(i.variantImage??i.firstImageURL),n=bo(i.variantSecondaryImage??i.secondaryImageURL);t.lg=t.sm={src:o,name:i.name,secondarySrc:n};let s=h(_e,{element:t,onClick:this.customOnClick.bind(this),triggerContext:this.props.triggerContext});return this.props.noLinks?s:h(`a`,{href:this.props.item.selectedOrFirstVariant.value.link,style:{display:`block`},children:s})}if(e.t===14)return this.renderProductTitle(e);if(e.t===15){let t=e;return this.props.triggerContext.triggerData.isCartEmbed()&&this.props.item.vars?.length===1&&this.props.item.vars[0].name===`Default Title`?void 0:t.showChips?h(`cooee-product-options-picker`,{item:this.props.item}):h(rr,{element:t,item:this.props.item,triggerContext:this.props.triggerContext})}return e.t===16?h(er,{element:e,selectedVariant:this.props.item.selectedOrFirstVariant.value,item:this.props.item,triggerContext:this.props.triggerContext}):e.t===19?h(tr,{element:e,triggerContext:this.props.triggerContext,review:this.props.item.reviews}):e.t===18||e.t===3?h(nt,{element:e,item:this.props.item,triggerContext:this.props.triggerContext}):h(Ge,{elements:[e],element:this.props.element,triggerContext:this.props.triggerContext})}}render(){return this.attachListener(),this.props.elements.map(e=>this.renderElement(e))}getComponentStyles(){return {}}renderProductTitle(e){let t=h(oe,{element:e,onClick:this.customOnClick.bind(this),triggerContext:this.props.triggerContext});return this.props.noLinks?t:h(`a`,{href:this.props.item.selectedOrFirstVariant.value.link,style:{display:`block`,textDecoration:this.state.decoration},onMouseEnter:this.onMouseEnter.bind(this),onMouseLeave:this.onMouseLeave.bind(this),children:t})}customOnClick(e){this.sendTriggerClicked([this.props.item.toEmbed()],{from:e});}onMouseEnter(){this.setState(()=>({decoration:`underline`}));}onMouseLeave(){this.setState(()=>({decoration:`unset`}));}attachListener(){document.addEventListener(`letscooee:variant-change`,e=>{let t=e;if(!t.detail||this.props.item.mID!==t.detail.productID)return;let i=t.detail.variantID;this.props.item.setSelectedVariantByID(i);});}};var st=class extends A{productElement;constructor(e,t){super(e,t),this.setState(()=>({decoration:`unset`}));}render(){if(this.productElement=new He(Ve$2(this.props.element,this.getProductData(),this.props.triggerContext)),!(this.productElement.hide||!this.matchWhenCondition(this.productElement.when)))return h(`div`,{style:r({},this.getCompiledStyles()),class:`lc-single-product`,children:h(_t,{element:this.productElement,elements:this.productElement.elems,triggerContext:this.props.triggerContext,item:this.props.item,noLinks:this.productElement.noLinks})})}getComponentStyles(){return {flexShrink:0}}getProductData(){if(!this.props.item)return {};let e=this.props.item,t=e.selectedOrFirstVariant.value,i=e.getTemplateVariables();i.product.quantity=this.props.triggerContext.hasManipulatedProductQuantity()?this.props.triggerContext.getManipulatedQuantity(this.props.item.quantity):this.props.item.quantity;let o=this.props.triggerContext.triggerData.discount?.type===ce.BXGY;return !t.hasEffectivePrice()&&o&&(i.product=s(r(r({},i.product),An$1(`effective_price`,t.effectivePrice.value)),{price:``})),i.variant.quantity=this.props.triggerContext.hasManipulatedProductQuantity()?this.props.triggerContext.getManipulatedQuantity(t.quantity):t.quantity,{product:i.product,variant:i.variant,svg:{color:`{{ svg.color }}`,size:`{{ svg.size }}`}}}};var ir=class extends A{swiperRef=null;swiperInstance=null;configuration;gap;constructor(e,t){super(e,t),this.configuration=M$1()?this.props.element.conf.sm:this.props.element.conf.lg,this.gap=(this.configuration.gap??15)+`px`;}componentDidMount(){this.props.element.conf[this.deviceTypeKey].disp===2&&Vi$1().then(()=>{this.swiperInstance=yi(this.swiperRef,this.props.element.conf[this.deviceTypeKey]);});}componentWillUnmount(){this.swiperInstance&&this.swiperInstance.destroy();}render(){let e=this.props.triggerContext.triggerData.items;e.splice(this.configuration.maxItems??10);let t;if(this.configuration.disp===2){let i=n=>{this.swiperRef=n;},o=()=>e?.map(n=>h(`div`,{class:`swiper-slide`,children:this.getProductFragment(n)}));t=h(`div`,{style:s(r({},this.getCompiledStyles()),{display:`block`}),class:`lc-product-swiper-list`,children:Ei(this.configuration,i,o)});}else t=h(`div`,{style:this.getCompiledStyles(),class:`lc-product-list`,children:e?.map((i,o)=>this.getProductFragment(i,o!==e.length-1))});return t}getComponentStyles(){let e=[0,2].includes(this.configuration.disp),t={display:e?`flex`:`grid`,justifyContent:`safe `+(this.mediaStyle.flex?.jc??`center`),gap:this.gap,flexDirection:this.mediaStyle.flex?.dir??`row`};if(t.flexDirection===`row`){if(e)t.maxWidth=`100%`,t.overflowY=`auto`;else if(this.configuration.disp===1){let i=this.props.triggerContext.triggerData,o=i.items.length,n;i.isBundle()?n=this.props.element.prod.symbol?.hide!==true?o*2-1:o:n=this.props.element.conf[this.deviceTypeKey].maxInRow,t.gridTemplateColumns=`repeat(${n}, auto)`;}}return t}getProductFragment(e,t=false){return h(j$2,{children:[h(st,{element:this.props.element.prod,item:e,triggerContext:this.props.triggerContext}),this.props.triggerContext.triggerData.isBundle()&&t&&this.props.element.prod.symbol&&!this.props.element.prod.symbol.hide&&h(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`center`},children:h(oe,{element:this.props.element.prod.symbol,triggerContext:this.props.triggerContext})})]},e.mID)}};var or=class extends A{swiperRef=null;swiperInstance=null;constructor(e,t){super(e,t);}componentDidMount(){Vi$1().then(()=>{this.swiperInstance=yi(this.swiperRef,this.props.element.conf);});}componentWillUnmount(){this.swiperInstance&&this.swiperInstance.destroy();}render(){let e=this.props.element,t=o=>{this.swiperRef=o;},i=()=>{let o=e.values?.map(c=>h(`div`,{class:`swiper-slide`,onClick:l=>this.onClick(l,{clickAction:this.getClickAction(c)}),children:this.renderElement(c)}));if(!o?.length)return [];let n=e.conf,s=o.length;if(n.marquee&&s<=Number(n.maxInRow)){let c=Number(n.maxInRow)-s+1;for(let l=0;l<c;l++)o.push(o[l%s]);}return o};return Ei(e.conf,t,i)}getComponentStyles(){return {}}renderElement(e){let t=this.valueAddedSlide(this.props.element.slide,e);switch(t?.t){case 1:return h(_e,{element:t,triggerContext:this.props.triggerContext});case 4:return h(ke,{elements:t.elems,element:t,triggerContext:this.props.triggerContext});default:Y$1.warn(`Unknown slide type for carousal`);}}valueAddedSlide(e,t){let i=Ve$2(e,{form:t},this.props.triggerContext);return ie.getParsedElement(i)}getClickAction(e){return Ve$2(this.props.element.clc??{},{form:e},this.props.triggerContext)}};var Ge=class extends A{constructor(e,t){super(e,t),this.setState(()=>({decoration:`unset`})),W$1(()=>{this.setState(()=>({showButton:!this.props.triggerContext.triggerData.isBundle()||!!this.props.triggerContext.selectedItems.length}));});}renderElement(e){if(!e.hide){if(e.t===4){let t=e;return h(ke,{element:t,triggerContext:this.props.triggerContext,elements:t.elems})}if(e.t===61)return h(Jt,{element:e,triggerContext:this.props.triggerContext});if(e.t===3)return this.state.showButton?h(nt,{element:e,triggerContext:this.props.triggerContext}):void 0;if(e.t===2)return h(oe,{element:e,triggerContext:this.props.triggerContext});if(e.t===1)return h(_e,{element:e,triggerContext:this.props.triggerContext});if(e.t===11)return h(ir,{element:e,triggerContext:this.props.triggerContext});if(e.t===12)return h(st,{element:e,item:this.props.triggerContext.triggerData.items[0],triggerContext:this.props.triggerContext});if(e.t===62)return h(or,{element:e,triggerContext:this.props.triggerContext})}}render(){return this.props.elements.map(e=>this.renderElement(e))}getComponentStyles(){return {}}};var nr=class extends A{clickAction;isClickable;constructor(e,t){super(e,t),this.clickAction=this.props.element.clc,this.isClickable=this.clickAction?.at===He$2.GO_TO_URL&&!!Dn(this.clickAction.gu?.u)||this.clickAction?.at===He$2.OPEN_CART||this.clickAction?.at===He$2.INITIATE_CHECKOUT;}componentDidMount(){W$1(()=>{let e=this.props.triggerContext.triggerData,t=this.props.triggerContext.selectedItems;e.calculateDiscountData(t,this.props.triggerContext.shouldGiveFBTDiscount);});}render(){return h(j$2,{children:[h(`div`,{style:this.getCompiledStyles(),class:`lc-container`,onClick:e=>{this.onClick(e,{clickAction:this.clickAction});},children:h(Ge,{elements:this.props.elements,element:this.props.element,triggerContext:this.props.triggerContext})}),this.props.triggerContext.triggerData.id===`preview`&&h(`div`,{class:`letscooee-preview-badge`,children:[`#`,this.props.triggerContext.triggerData.shortID,` preview`]})]})}getComponentStyles(){let e={position:`relative`,overflow:`hidden`,display:`block`};return this.isClickable&&(e.cursor=`pointer`),e}};var K=class r$9{constructor(e){this.engagementTrigger=e;this.triggerContext=new Fe(new Date,this.engagementTrigger);}static engagementIDsWithTrackedDisplay=new Set;static DEBOUNCE_TIME=1e3;rootContainer;widgetElement;triggerContext;observers=[];renderedCount=0;scrollSubscription;isExclusionWithBVariation;isProcessing=false;renderSilently(){this.acquireProcessingLock()||this.render().finally(()=>this.releaseProcessingLock()).catch(e=>{ke$2(e,`render-widget`,{triggerContext:this.triggerContext});});}destroy(){Y$1.verbose(`${this.engagementTrigger} will be destroyed`),this.preDestroy(),this.removeFromRendered(),this.rootContainer?.remove(),r$9.engagementIDsWithTrackedDisplay.delete(this.engagementTrigger.shortID),xi$1(this.engagementTrigger.content?.afterDeleteJS);}matches(e){return this.engagementTrigger.shortID===e.shortID}async render(){if(this.engagementTrigger.shouldGetVariationImmediately()){let e=await this.getVariation();this.handleVariationResponse(e);}if(this.rootContainer=await this.getWidgetContainer(true),!this.rootContainer){Y$1.warn(`${this.engagementTrigger} no section found to render the widget`);return}this.afterRootContainerCreated(),await this.getVariationIfRequired(),await this.runChoresBeforeRender(),this.attachScroll(),this.checkAndSendEvent(),this.triggerContext.renderer=this,xi$1(this.engagementTrigger.content?.afterRenderJS);}async updateAndReRender(e){if(!this.acquireProcessingLock())try{this.updateItems(e.items,this.engagementTrigger.items),await this.update(e),await this.render();}finally{this.releaseProcessingLock();}}async update(e){this.engagementTrigger.variation=e.variation;}async rerenderIfDeleted(){if(!this.rootContainer?.isConnected&&!this.acquireProcessingLock()){Y$1.info(`${this.engagementTrigger} deleted. Will be re-rendered`);try{this.preDestroy(),await this.render();}finally{this.releaseProcessingLock();}}}updateAngularWidget(){return this.widgetElement?.isConnected?(this.widgetElement.update(),true):false}preDestroy(){this.scrollSubscription?.unsubscribe(),this.observers.forEach(e=>{e?.disconnect&&e.disconnect();});}acquireProcessingLock(){return this.isProcessing?(Y$1.verbose(`Lock could not be acquired for ${this.engagementTrigger}`),true):(Y$1.verbose(`Acquiring rendering lock for ${this.engagementTrigger}`),this.isProcessing=true,false)}releaseProcessingLock(){Y$1.verbose(`Releasing rendering lock for ${this.engagementTrigger}`),this.isProcessing=false;}afterRootContainerCreated(){}isAllOkToRender(){return !!this.engagementTrigger.widget}async getVariationIfRequired(){if(this.engagementTrigger.shouldSkipVariation()){Y$1.verbose(`${this.engagementTrigger} already has necessary data to render`);return}let e=await this.observeWidgetContainerInViewport();this.handleVariationResponse(e);}handleVariationResponse(e){if(!e)return;let t=this.engagementTrigger;Y$1.log(`${t} visitor has been assigned to variation ${e.variation}`),e.items?.length&&(t.items=e.items.map(i=>new ot$2(i)),t.nonMutableItems=e.items.map(i=>new ot$2(i))),e.bundleFrom&&(t.bundleFrom=new ot$2(e.bundleFrom)),e.discount&&(t.discount=e.discount),e.placement&&(t.placement=e.placement),e.props&&pe$4.hasKeys(e.props)&&(t.props=r(r({},t.props),e.props)),e.content&&(t.content=new Kt(e.content)),t.widget=new xt(e.widget),t.contentID=e.contentID,t.variation=e.variation,t.placement=e.placement,t.manipulation=e.manipulation,t.entryAnimation=e.entryAnimation??`NONE`,this.isExclusionWithBVariation=t.isExclusionTesting()&&t.variation===`b`,this.isExclusionWithBVariation&&(this.rootContainer.style.height=`0.5px`);}addToRendered(){this.renderedCount++,Y$1.info(`${this.engagementTrigger} rendered \u2705 ${Mn$1(this.renderedCount)} time`);}removeFromRendered(){this instanceof pe?at.delete(this):kt.delete(this);}async getVariation(){Y$1.log(`${this.engagementTrigger} get variation`);let e={engagementID:this.engagementTrigger.engagementID,isPreview:this.engagementTrigger.id===`preview`};try{return (await as(e)).data}catch(t){if(t instanceof oe$5&&t.response?.status===400)return;ke$2(t,`get-variation`,{engagementTrigger:this.engagementTrigger});return}}async observeWidgetContainerInViewport(){if(!this.rootContainer){Y$1.warn(`${this.engagementTrigger} No root container found to watch for viewport`);return}let e=window.innerHeight*.3,t={root:null,rootMargin:`${e}px 0px ${e}px 0px`,threshold:0};return this.isInViewport()?this.getVariation():new Promise(i=>{let o=new IntersectionObserver((n,s)=>{n.forEach(async c=>{if(c.isIntersecting){Y$1.log(`${this.engagementTrigger} root container is near the viewport. Fetching variation`);i(await this.getVariation()),s.unobserve(this.rootContainer);}});},t);o.observe(this.rootContainer),this.observers.push(o);})}attachScroll(){this.scrollSubscription=Tr(window,`scroll`).pipe(Fe$1(r$9.DEBOUNCE_TIME)).subscribe(()=>{this.checkAndSendEvent();});}checkAndSendEvent(){let e=this.engagementTrigger.shortID;if(r$9.engagementIDsWithTrackedDisplay.has(e)||!this.isInViewport())return;let i={};this.triggerContext.triggerData.items?.length&&(i.promotedMIDs=this.engagementTrigger.items?.map(s=>s.mID));let n=new Ir$1(this.isExclusionWithBVariation?`CE Campaign Holdout`:`CE Trigger Displayed`,i,this.engagementTrigger);n.name===`CE Campaign Holdout`&&(n.trigger.holdout=true),fe(n),r$9.engagementIDsWithTrackedDisplay.add(e),this.scrollSubscription.unsubscribe();}generateParentElementID(){return `letscooee-${this.engagementTrigger.shortID}`}createAngularWidget(e){let t=this.widgetElement=document.createElement(e);return t.cart=E.getCurrent(),t.triggerContext=this.triggerContext,t.engagementTrigger=this.engagementTrigger,t.setAttribute(`engagement`,this.engagementTrigger.shortID),this.rootContainer.appendChild(t),this.addToRendered(),this.injectOuterCSSOnly(),t}getParentElement(e,t=document){let i=t.getElementById(e);if(i)return i;let o=this.engagementTrigger.objective.toLowerCase().replaceAll(`_`,`-`),n=this.engagementTrigger.shortID;return i=document.createElement(`div`),i.id=e,i.className=`letscooee letscooee-engagement engagement-${n} lc-${o}`,i.dataset.engagementId=n,this.engagementTrigger.id===`preview`&&(i.className+=` letscooee-preview`),i.style.display=`block`,i.style.minHeight=`0.5px`,i.style.minWidth=`0.5px`,i}async startRendering(){let e=this.rootContainer,t=this.triggerContext.triggerData.hasSwiperElement();t&&(e=this.rootContainer?.shadowRoot||this.rootContainer?.attachShadow({mode:`open`}),Mi$1(e)),this.injectCampaignCSS(t,e);let i=this.engagementTrigger.widget;ze$1(pe$3(nr,{element:i.cont,triggerContext:this.triggerContext,elements:i.elems}),e),this.addToRendered();}injectCampaignCSS(e,t){let i=this.engagementTrigger.content?.outerCSS?.trim()??``,o=this.engagementTrigger.content?.innerCSS?.trim()??``;if(!i&&!o)return;let n=this.rootContainer.id;if(e){Ce$1(o,t),this.injectOuterCSSOnly();return}Ce$1(`#${n} { ${i+`
75
- ${o}`} }`);}injectOuterCSSOnly(){let e=this.engagementTrigger.content?.outerCSS?.trim();if(!e)return;let t=this.rootContainer.id;Ce$1(`#${t} { ${e} }`);}isInViewport(){let e=this.rootContainer?.getBoundingClientRect();if(!e)return false;let t=window.innerHeight||document.documentElement.clientHeight,s=(Math.min(e.bottom,t)-Math.max(e.top,0))*e.width/(e.width*e.height)*100;return this.engagementTrigger.isAnySplit()?s>0:s>=30}async getWidgetContainer(e){if(this.rootContainer?.isConnected)return this.rootContainer;let t=await this.createParentElementWithPlacement(e);if(t)return t;let i=`.letscooee[data-engagement-id="${this.triggerContext.triggerData.shortID}"]`;return document.querySelector(i)}async createParentElementWithPlacement(e){let t=this.engagementTrigger.placement;if(!t?.selector)return Y$1.info(`\u26A0\uFE0F${this.engagementTrigger} does not have a selector`),null;let i=t.selector,o;if(i.includes(`:shadow`)){let l=i.split(`:shadow`);o=(await Ln$1(l[0].trim()))?.shadowRoot,i=l[1].trim(),o&&Mi$1(o,false);}Y$1.verbose(`${this.engagementTrigger} attempt to render "${t.position}" "${i}"`);let n=await Ln$1(i,3,o??document);if(!n)return Y$1.warn(`${this.engagementTrigger} no placement found with ${i}`),null;let s=this.generateParentElementID(),c=this.getParentElement(s);if(!e)return c;switch(t.position){case Ve$3.BEFORE1:case Ve$3.BEFORE:n.parentElement?.insertBefore(c,n);break;case Ve$3.INSIDE_FIRST1:case Ve$3.INSIDE_FIRST:n.insertBefore(c,n.firstChild);break;case Ve$3.INSIDE_LAST1:case Ve$3.INSIDE_LAST:n.appendChild(c);break;case Ve$3.AFTER1:case Ve$3.AFTER:default:n.parentElement?.insertBefore(c,n.nextSibling);}return c}async runChoresBeforeRender(){if(this.isExclusionWithBVariation)return;if(!this.isAllOkToRender()){Y$1.info(`\u26A0\uFE0F ${this.engagementTrigger} could not be rendered`);return}Y$1.verbose(`${this.engagementTrigger} will be rendered`);let e;try{e=await hi(this.engagementTrigger);}catch(t){Y$1.info(`\u203C\uFE0F${this.engagementTrigger} could not render as items failed to refresh`,t);return}if(!this.engagementTrigger.isCollectionPromoted()&&!e?.length&&this.engagementTrigger.isProductPromoted()){Y$1.info(`\u203C\uFE0F${this.engagementTrigger} could not render as no products promoted`);return}this.engagementTrigger.items=e,await this.startRendering();}updateItems(e,t){let i=this.getItemDiff(e,t),o=this.getItemDiff(t,e);t.push(...i);for(let n of o)De.remove(t,n);}getItemDiff(e,t){return e.filter(i=>!t.some(o=>o.selectedOrFirstVariant.value.mID===i.selectedOrFirstVariant.value.mID))}};var pe=class extends K{constructor(e){super(e);}rerenderAfterCartOpened(){this.rerenderIfDeleted(),this.checkAndSendEvent();}observeWidgetContainerInViewport(){return this.getVariation()}generateParentElementID(){let e=super.generateParentElementID();return this.engagementTrigger.isSubscriptionUpsell()&&(e+=`-${this.engagementTrigger.items[0].selectedOrFirstVariant.value.mID}`),e}checkAndSendEvent(){if(!F.get().isOpen()&&Be$3().pageName!==`cart`){Y$1.log(`Do not send display event as neither the cart drawer nor the cart page is open.`);return}return super.checkAndSendEvent()}};var Si=class r{constructor(e,t){this.engagementTrigger=e;this.element=t;this.cartItems=E.getCurrent().items;}cartItems;static renderCartUpsell(e){let t=e.placement;if(!t?.selector){Y$1.warn(`No placement available for ${e.objective}`,e.shortID);return}let i=Array.from(document.querySelectorAll(t.selector));if(!i?.length){Y$1.warn(`No placement found for ${e.objective}`,e.shortID);return}for(let o of i)new r(e,o).render();}render(){let e=this.findCartItemFromHTMLElement();if(!e||this.engagementTrigger.skipSubscribedItems&&e.selling_plan_allocation)return;let t=this.engagementTrigger.items.find(w=>w.mID===e.product_id.toString());if(!t)return;let i=t.vars.find(w=>w.mID===e.id.toString());if(!i)return;let o=new nt$1(i),n=e.selling_plan_allocation?.selling_plan;if(n)for(let w of o.sellingPlans??[])w.mID===n.id.toString()&&(w.isSelected=true,o.changeSellingPlan(w));let s=new ot$2(t);s.vars=[o],s.selectedOrFirstVariant.value=o;let c=`lc-cart-item-${this.engagementTrigger.shortID}-${t.mID}`;this.element.classList.add(c);let l=new q(this.engagementTrigger);l.placement.selector=`.${c}`,l.items=[s];let v=new pe(l);v.renderSilently(),this.watchForCartItemDeletion(v,c);}watchForCartItemDeletion(e,t){let i=new MutationObserver(o=>{o.forEach(n=>{n.removedNodes.forEach(s=>{s===this.element&&(Y$1.verbose(`${t} has been removed`),e.destroy(),i.disconnect());});});});i.observe(this.element.parentElement,{childList:true,subtree:true});}findCartItemFromHTMLElement(){let e=this.element.innerHTML;return this.cartItems.find(t=>{if(!(e.includes(t.url)||e.includes(t.variant_id))&&(!e.includes(t.product_title)||t.variant_title&&!e.includes(t.variant_title)))return false;let i=t.selling_plan_allocation?.selling_plan?.name;return !(i&&!e.includes(i))})}};var Ii=class extends K{constructor(e){super(e);}isAllOkToRender(){return true}async startRendering(){if(this.widgetElement?.isConnected){this.addToRendered();return}this.createAngularWidget(`cooee-collection-filter`);}};var Ti=class extends pe{constructor(e){super(e);}async update(e){await super.update(e),this.engagementTrigger.progressBarConfig.update(e.progressBarConfig),await this.checkMilestoneTryCatch(),this.updateAngularWidget();}isAllOkToRender(){return !!this.engagementTrigger.progressBarConfig}async startRendering(){if(this.updateAngularWidget()){this.addToRendered();return}this.createAngularWidget(`cooee-progressbar`),await this.checkMilestoneTryCatch();}async checkMilestoneTryCatch(){try{await this.checkMilestone();}catch(e){ke$2(e,`apply-milestones`,{engagementTrigger:this.engagementTrigger});}}async checkMilestone(){let e=await E.getCurrent().getNormalisedCart(true),t=this.engagementTrigger.progressBarConfig,i=[],o=[],n=[],s,c,l=[...t.milestones];for(let v of l){if(v.rewardType!==Fe$3.FREE_AUTO_GIFT)continue;if(v.isUIOnly&&!v.allowATC){Y$1.verbose(`Skipping milestone ${v.label} as it is UI only and does not allow ATC`);continue}let w=v.items[0],I=v.reached,R=e.items.find(b=>(b.vID===w.vID||b.mID===w.mID)&&b.properties._letscooee_campaign===this.engagementTrigger.shortID);I&&(s=v,c=R),R&&i.push(R),!I&&R&&t.removeIneligibleItem?(Y$1.verbose(`Removing free gift ${R.vID} from cart`),n.push(R)):I&&!R&&(Y$1.verbose(`Adding free gift ${w.vID} to cart`),o.push(w));}t.restrictToLatestFreebie&&s&&(c?(i=i.filter(v=>v.vID!==c.vID),o=[]):o=[s.items[0]],n.push(...i)),t.treatFreebieAsSeparateLineItem?await this.handleSeparateFreebieLineItems(o,n):await this.handleCombinedCartUpdate(o,n);}async handleSeparateFreebieLineItems(e,t){if(!t.length&&!e.length)return;let i=new Rt,o=[];if(e.length){let c=this.addFreebiesOperation(e,i);o.push(c);}if(t.length){let c=this.removeFreebiesOperation(t);o.push(c);}if(!o.length)return;let n;try{n=await Promise.all(o),Y$1.log(`All freebie and coupon operations completed`);}catch(c){ke$2(c,`parallel-freebie-operations`,{engagementTrigger:this.engagementTrigger});}let s;e.length&&n?.length&&(s=n[0]),F.get().refreshUI(s,false);}async removeFreebiesOperation(e){let t={updates:{}};return e.forEach(i=>t.updates[i.key??i.vID]=i.quantity-1),wo(t,this.engagementTrigger)}async addFreebiesOperation(e,t){return t.addToCart(e,this.engagementTrigger)}async handleCombinedCartUpdate(e,t){let i=this.engagementTrigger.progressBarConfig,o={},n={};t.length&&t.forEach(I=>n[I.key??I.vID]=0),e.length&&e.forEach(I=>n[I.vID]=1);let s=i.coupons,c=[];if(s?.length){c=s.map(b=>b.couponCode);let I=E.getCurrent().discount_codes?.map(b=>b.code)??[];c.every(b=>I.some(P=>P===b))||(o.discount=c.join(`,`));}if(pe$4.hasKeys(n)&&(o.updates=n),!pe$4.hasKeys(o))return;let l=await wo(o,this.engagementTrigger),v=l?.items,w=[];for(let I of e){let R=v?.find(b=>c?.length?b.id+``===I.vID&&b.discounts?.some(P=>c.includes(P.title)):b.id+``===I.vID);R&&w.push(R);}if(!w.length){F.get().refreshUI(l,false);return}try{await Promise.all(w.map(I=>os(I,{properties:this.engagementTrigger.getPrivateAttributesForLineItem()})));}catch(I){ke$2(I,`add-private-attribute`,{engagementTrigger:this.engagementTrigger,extra:{productAddedByCooee:w}});}finally{F.get().refreshUI(l,false);}}};var sr=class extends pe{constructor(e){super(e);}async update(e){await super.update(e),this.engagementTrigger.content.update(e.content),this.updateAngularWidget();}isAllOkToRender(){return !!this.engagementTrigger.content}async startRendering(){if(this.updateAngularWidget()){this.addToRendered();return}this.createAngularWidget(`cooee-savings-bar`);}};var xi=class extends K{constructor(e){super(e);}isAllOkToRender(){return !!this.engagementTrigger.content?.videoConfig}async startRendering(){if(this.widgetElement?.isConnected){this.addToRendered();return}let e,t=this.engagementTrigger.content.videoConfig;t.template===`FLOATING_POPUP`?e=`cooee-video-popup`:t.template===`STORY`?e=`cooee-video-stories`:e=`cooee-video-playlist`,this.createAngularWidget(e);}};var Pi=class extends K{constructor(e){super(e);}isAllOkToRender(){return true}async startRendering(){if(this.widgetElement?.isConnected){this.addToRendered();return}this.createAngularWidget(`cooee-sticky-atc`);}};var Di=class extends K{constructor(e){super(e);}isAllOkToRender(){return true}async startRendering(){let e=this.getParentElement(`inner-letscooee-${this.engagementTrigger.shortID}`);this.rootContainer.appendChild(e),document.addEventListener(`letscooee:inbound:cta:add-bundle`,this.inboundCTAListener.bind(this),false);}async inboundCTAListener(e){let t=this.engagementTrigger,i=`Engagement(id: ${t.engagementID}, shortID: ${t.shortID})`,o=e.detail;if(!pe$4.hasKeys(o)){Y$1.error(`No detail received for ${i}`);return}Y$1.log(`Detail received for BYOB`,o);let n=o.campaignID??o.campaignId??o.campaign_id;if(n!==t.shortID&&n!==t.engagementID){Y$1.warn(`Current ${i} is not BYOB. Received: ${n}`);return}let s=o.items;if(!s?.length)return;let c=s.map(l=>new et({mID:l.product_id,vID:l.variant_id,quantity:l.quantity||1}));await new Re(this.triggerContext).execute({embeddedItems:c,clickAction:{at:He$2.ADD_BUNDLE,applyDiscount:true}});}};var Co=false,yo=false,Ri=null,_i=null,cs=false,at=new Set,kt=new Set;function ls(){cs||(cs=true,ht$2(()=>{Fn(document.body,{childList:true,subtree:true},500,Un).subscribe(()=>{kt.forEach(r=>r.rerenderIfDeleted()),at.forEach(r=>r.rerenderIfDeleted());});}));}function ar(r){if(r.length>0&&us(),ls(),Co){Y$1.verbose(`Cart widget processing in progress, queuing latest triggers`),Ri=r;return}Co=true;try{za(r);}finally{if(Co=false,Ri){let e=Ri;Ri=null,Y$1.verbose(`Processing queued cart triggers`),ar(e);}}}function cr(r){if(r.length>0&&us(),ls(),yo){Y$1.verbose(`Page widget processing in progress, queuing latest triggers`),_i=r;return}yo=true;try{Ka(r);}finally{if(yo=false,_i){let e=_i;_i=null,Y$1.verbose(`Processing queued page triggers`),cr(e);}}}function ms(){at.forEach(r=>r.rerenderAfterCartOpened());}function za(r){ds(at,r);for(let e of r){Y$1.info(`${e} received as cart embed`);let t=ps(at,e);if(t&&!e.isSubscriptionUpsell()){t.updateAndReRender(e).catch(o=>{ke$2(o,`update-and-re-render`,{engagementTrigger:e});});continue}Y$1.verbose(`${e} is new`);let i;if(e.isProgressBar())i=new Ti(e);else if(e.isSubscriptionUpsell()){Si.renderCartUpsell(e);continue}else e.isSavingsBar()?i=new sr(e):i=new pe(e);at.add(i),i.renderSilently();}}function Ka(r){ds(kt,r);for(let e of r){Y$1.info(`${e} received as page embed`);let t=ps(kt,e);if(t){t.updateAndReRender(e).catch(o=>{ke$2(o,`update-and-re-render`,{engagementTrigger:e});});continue}Y$1.verbose(`${e} is new`);let i;e.isShoppableVideo()?i=new xi(e):e.isBYOB()?i=new Di(e):e.isStickyATC()?i=new Pi(e):e.isSavingsBar()?i=new sr(e):e.isCollectionFilter()?i=new Ii(e):i=new K(e),kt.add(i),i.renderSilently();}}function ps(r,e){for(let t of r)if(t.matches(e))return t}function ds(r,e){let t=new Set(e.map(i=>i.shortID));for(let i of r)t.has(i.engagementTrigger.shortID)||i.destroy();}function us(){import('./widgets-CvuUxWhO-tgk0RvFV.js').then(function (n) { return n.ad; }).then(({loadAngularWidgets:r})=>{r();});}var ki=class extends ne$2{static storeName=`app`;static{this.storage=ge$3(this.storeName);}};var Xa=` daum[ /]| deusu/|(?:^|[^g])news(?!sapphire)|(?<! (?:channel/|google/))google(?!(app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!(?:lib))http|(?<![hg]m)score|(?<!cam)scan|24x7|@[a-z][\\w-]+\\.|\\(\\)|\\.com\\b|\\bperl\\b|\\btime/|\\||^[\\w \\.\\-\\(?:\\):%]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[^ ]{50,}$|^\\d+\\b|^\\W|^\\w*search\\b|^\\w+/[\\w\\(\\)]*$|^active|^ad muncher|^amaya|^avsdevicesdk/|^azure|^biglotron|^bot|^bw/|^clamav[ /]|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^email|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^igetter/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d\\s[\\w\\.-]+$|^mozilla/\\d\\.\\d\\s\\(compatible;?(?:\\s\\w+\\/\\d+\\.\\d+)?\\)$|^navermailapp|^netsurf|^offline|^openai/|^owler|^php|^postman|^python|^rank|^read|^reed|^rest|^rss|^snapchat|^space bison|^svn|^swcd |^taringa|^thumbor/|^track|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|agent\\b|analyzer|archive|ask jeeves/teoma|audit|bit\\.ly/|bluecoat drtr|browsex|burpcollaborator|capture|catch|check\\b|checker|chrome-lighthouse|chromeframe|classifier|cloudflare|convertify|crawl|cypress/|dareboost|datanyze|dejaclick|detect|dmbrowser|download|evc-batch/|exaleadcloudview|feed|fetcher|firephp|functionize|grab|headless|httrack|hubspot marketing grader|hydra|ibisbrowser|infrawatch|insight|inspect|iplabel|java(?!;)|library|linkcheck|mail\\.ru/|manager|measure|neustar wpm|node\\b|nutch|offbyone|onetrust|optimize|pageburst|pagespeed|parser|phantomjs|pingdom|powermarks|preview|proxy|ptst[ /]\\d|retriever|rexx;|rigor|rss\\b|scrape|server|sogou|sparkler/|speedcurve|spider|splash|statuscake|supercleaner|synapse|synthetic|tools|torrent|transcoder|url|validator|virtuoso|wappalyzer|webglance|webkit2png|whatcms/|xtate/`,Ya=/bot|crawl|http|lighthouse|scan|search|spider/i,lr;function Ja(){if(lr instanceof RegExp)return lr;try{lr=new RegExp(Xa,`i`);}catch{lr=Ya;}return lr}function gs(r){return !!r&&Ja().test(r)}var Qa=`2.0.4`,Oo=500,fs=`user-agent`,Mt=``,hs=`?`,Ui=`function`,Ke=`undefined`,Ut=`object`,Lo=`string`,J=`browser`,Ae=`cpu`,Se=`device`,he=`engine`,de=`os`,Lt=`result`,u=`name`,m=`type`,d=`vendor`,g=`version`,Q=`architecture`,br=`major`,p=`model`,wr=`console`,S=`mobile`,O=`tablet`,B=`smarttv`,ye=`wearable`,Ai=`xr`,vr=`embedded`,mr=`inapp`,Uo=`brands`,lt=`formFactors`,Fo=`fullVersionList`,Nt=`platform`,Bo=`platformVersion`,Vi=`bitness`,Xe=`sec-ch-ua`,Za=Xe+`-full-version-list`,ec=Xe+`-arch`,tc=Xe+`-`+Vi,rc=Xe+`-form-factors`,ic=Xe+`-`+S,oc=Xe+`-`+p,_s=Xe+`-`+Nt,nc=_s+`-version`,ks=[Uo,Fo,S,p,Nt,Bo,Q,lt,Vi],Oi=`Amazon`,At=`Apple`,ws=`ASUS`,vs=`BlackBerry`,ct=`Google`,bs=`Huawei`,Eo=`Lenovo`,Cs=`Honor`,Li=`LG`,So=`Microsoft`,Io=`Motorola`,To=`Nvidia`,ys=`OnePlus`,xo=`OPPO`,pr=`Samsung`,Es=`Sharp`,dr=`Sony`,Po=`Xiaomi`,Do=`Zebra`,Ss=`Chrome`,Is=`Chromium`,je=`Chromecast`,Mi=`Edge`,ur=`Firefox`,gr=`Opera`,Ro=`Facebook`,Ts=`Sogou`,Ot=`Mobile `,fr=` Browser`,No=`Windows`,Z=typeof window!==Ke&&window.navigator?window.navigator:void 0,ze=Z&&Z.userAgentData?Z.userAgentData:void 0,ac=function(r,e){var t={},i=e;if(!Fi(e)){i={};for(var o in e)for(var n in e[o])i[n]=e[o][n].concat(i[n]?i[n]:[]);}for(var s in r)t[s]=i[s]&&i[s].length%2===0?i[s].concat(r[s]):r[s];return t},Wi=function(r){for(var e={},t=0;t<r.length;t++)e[r[t].toUpperCase()]=r[t];return e},Mo=function(r,e){if(typeof r===Ut&&r.length>0){for(var t in r)if(Oe(e)==Oe(r[t]))return true;return false}return Bt(r)?Oe(e)==Oe(r):false},Fi=function(r,e){for(var t in r)return /^(browser|cpu|device|engine|os)$/.test(t)||(e?Fi(r[t]):false)},Bt=function(r){return typeof r===Lo},_o=function(r){if(r){for(var e=[],t=Ft(/\\?\"/g,r).split(`,`),i=0;i<t.length;i++)if(t[i].indexOf(`;`)>-1){var o=Bi(t[i]).split(`;v=`);e[i]={brand:o[0],version:o[1]};}else e[i]=Bi(t[i]);return e}},Oe=function(r){return Bt(r)?r.toLowerCase():r},ko=function(r){return Bt(r)?Ft(/[^\d\.]/g,r).split(`.`)[0]:void 0},Le=function(r){for(var e in r){var t=r[e];typeof t==Ut&&t.length==2?this[t[0]]=t[1]:this[t]=void 0;}return this},Ft=function(r,e){return Bt(e)?e.replace(r,Mt):e},hr=function(r){return Ft(/\\?\"/g,r)},Bi=function(r,e){if(Bt(r))return r=Ft(/^\s\s*/,r),typeof e===Ke?r:r.substring(0,Oo)},Ao=function(r,e){if(!(!r||!e))for(var t=0,i,o,n,s,c,l;t<e.length&&!c;){var v=e[t],w=e[t+1];for(i=o=0;i<v.length&&!c&&v[i];)if(c=v[i++].exec(r),c)for(n=0;n<w.length;n++)l=c[++o],s=w[n],typeof s===Ut&&s.length>0?s.length===2?typeof s[1]==Ui?this[s[0]]=s[1].call(this,l):this[s[0]]=s[1]:s.length>=3&&(typeof s[1]===Ui&&!(s[1].exec&&s[1].test)?s.length>3?this[s[0]]=l?s[1].apply(this,s.slice(2)):void 0:this[s[0]]=l?s[1].call(this,l,s[2]):void 0:s.length==3?this[s[0]]=l?l.replace(s[1],s[2]):void 0:s.length==4?this[s[0]]=l?s[3].call(this,l.replace(s[1],s[2])):void 0:s.length>4&&(this[s[0]]=l?s[3].apply(this,[l.replace(s[1],s[2])].concat(s.slice(4))):void 0)):this[s]=l||void 0;t+=2;}},Ee=function(r,e){for(var t in e)if(typeof e[t]===Ut&&e[t].length>0){for(var i=0;i<e[t].length;i++)if(Mo(e[t][i],r))return t===hs?void 0:t}else if(Mo(e[t],r))return t===hs?void 0:t;return e.hasOwnProperty(`*`)?e[`*`]:r},xs={ME:`4.90`,"NT 3.51":`3.51`,"NT 4.0":`4.0`,2e3:[`5.0`,`5.01`],XP:[`5.1`,`5.2`],Vista:`6.0`,7:`6.1`,8:`6.2`,"8.1":`6.3`,10:[`6.4`,`10.0`],NT:``},Ps={embedded:`Automotive`,mobile:`Mobile`,tablet:[`Tablet`,`EInk`],smarttv:`TV`,wearable:`Watch`,xr:[`VR`,`XR`],"?":[`Desktop`,`Unknown`],"*":void 0},cc={Chrome:`Google Chrome`,Edge:`Microsoft Edge`,"Edge WebView2":`Microsoft Edge WebView2`,"Chrome WebView":`Android WebView`,"Chrome Headless":`HeadlessChrome`,"Huawei Browser":`HuaweiBrowser`,"MIUI Browser":`Miui Browser`,"Opera Mobi":`OperaMobile`,Yandex:`YaBrowser`},Ds={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[g,[u,Ot+`Chrome`]],[/webview.+edge\/([\w\.]+)/i],[g,[u,Mi+` WebView`]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[g,[u,`Edge`]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[u,g],[/opios[\/ ]+([\w\.]+)/i],[g,[u,gr+` Mini`]],[/\bop(?:rg)?x\/([\w\.]+)/i],[g,[u,gr+` GX`]],[/\bopr\/([\w\.]+)/i],[g,[u,gr]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[g,[u,`Baidu`]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[g,[u,`Maxthon`]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser)\/([-\w\.]+)/i,/(heytap|ovi|115|surf)browser\/([\d\.]+)/i,/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i],[u,g],[/quark(?:pc)?\/([-\w\.]+)/i],[g,[u,`Quark`]],[/\bddg\/([\w\.]+)/i],[g,[u,`DuckDuckGo`]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[g,[u,`UCBrowser`]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[g,[u,`WeChat`]],[/konqueror\/([\w\.]+)/i],[g,[u,`Konqueror`]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[g,[u,`IE`]],[/ya(?:search)?browser\/([\w\.]+)/i],[g,[u,`Yandex`]],[/slbrowser\/([\w\.]+)/i],[g,[u,`Smart `+Eo+fr]],[/(avast|avg)\/([\w\.]+)/i],[[u,/(.+)/,`$1 Secure`+fr],g],[/\bfocus\/([\w\.]+)/i],[g,[u,ur+` Focus`]],[/\bopt\/([\w\.]+)/i],[g,[u,gr+` Touch`]],[/coc_coc\w+\/([\w\.]+)/i],[g,[u,`Coc Coc`]],[/dolfin\/([\w\.]+)/i],[g,[u,`Dolphin`]],[/coast\/([\w\.]+)/i],[g,[u,gr+` Coast`]],[/miuibrowser\/([\w\.]+)/i],[g,[u,`MIUI`+fr]],[/fxios\/([\w\.-]+)/i],[g,[u,Ot+ur]],[/\bqihoobrowser\/?([\w\.]*)/i],[g,[u,`360`]],[/\b(qq)\/([\w\.]+)/i],[[u,/(.+)/,`$1Browser`],g],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[u,/(.+)/,`$1`+fr],g],[/samsungbrowser\/([\w\.]+)/i],[g,[u,pr+` Internet`]],[/metasr[\/ ]?([\d\.]+)/i],[g,[u,Ts+` Explorer`]],[/(sogou)mo\w+\/([\d\.]+)/i],[[u,Ts+` Mobile`],g],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[u,g],[/(lbbrowser|rekonq)/i],[u],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[g,u],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[u,Ro],g,[m,mr]],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i],[u,g,[m,mr]],[/\bgsa\/([\w\.]+) .*safari\//i],[g,[u,`GSA`],[m,mr]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[g,[u,`TikTok`],[m,mr]],[/\[(linkedin)app\]/i],[u,[m,mr]],[/(chromium)[\/ ]([-\w\.]+)/i],[u,g],[/headlesschrome(?:\/([\w\.]+)| )/i],[g,[u,Ss+` Headless`]],[/wv\).+chrome\/([\w\.]+).+edgw\//i],[g,[u,Mi+` WebView2`]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[u,Ss+` WebView`],g],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[g,[u,`Android`+fr]],[/chrome\/([\w\.]+) mobile/i],[g,[u,Ot+`Chrome`]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[u,g],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[g,[u,Ot+`Safari`]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[u,Ot+`Safari`]],[/version\/([\w\.\,]+) .*(safari)/i],[g,u],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[u,[g,`1`]],[/(webkit|khtml)\/([\w\.]+)/i],[u,g],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[u,Ot+ur],g],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[u,`Netscape`],g],[/(wolvic|librewolf)\/([\w\.]+)/i],[u,g],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[g,[u,ur+` Reality`]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[u,[g,/_/g,`.`]],[/(cobalt)\/([\w\.]+)/i],[u,[g,/[^\d\.]+./,Mt]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[Q,`amd64`]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[Q,`ia32`]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[Q,`arm64`]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[Q,`armhf`]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[Q,`arm`]],[/((ppc|powerpc)(64)?)( mac|;|\))/i],[[Q,/ower/,Mt,Oe]],[/ sun4\w[;\)]/i],[[Q,`sparc`]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i],[[Q,Oe]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[p,[d,pr],[m,O]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,/sec-(sgh\w+)/i],[p,[d,pr],[m,S]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[p,[d,At],[m,S]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[p,[d,At],[m,O]],[/(macintosh);/i],[p,[d,At]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[p,[d,Es],[m,S]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[p,[d,Cs],[m,O]],[/honor([-\w ]+)[;\)]/i],[p,[d,Cs],[m,S]],[/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i],[p,[d,bs],[m,O]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[p,[d,bs],[m,S]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[p,/_/g,` `],[d,Po],[m,O]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i,/ ([\w ]+) miui\/v?\d/i],[[p,/_/g,` `],[d,Po],[m,S]],[/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-k]\w[1m]10)\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[p,[d,ys],[m,S]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[p,[d,xo],[m,S]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[p,[d,Ee,{OnePlus:[`203`,`304`,`403`,`404`,`413`,`415`],"*":xo}],[m,O]],[/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i],[p,[d,`BLU`],[m,S]],[/; vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[p,[d,`Vivo`],[m,S]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[p,[d,`Realme`],[m,S]],[/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i],[p,[d,Eo],[m,O]],[/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i],[p,[d,Eo],[m,S]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,/((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i],[p,[d,Io],[m,S]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[p,[d,Io],[m,O]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[p,[d,Li],[m,O]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,/\blg-?([\d\w]+) bui/i],[p,[d,Li],[m,S]],[/(nokia) (t[12][01])/i],[d,p,[m,O]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*))/i],[[p,/_/g,` `],[m,S],[d,`Nokia`]],[/(pixel (c|tablet))\b/i],[p,[d,ct],[m,O]],[/droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i],[p,[d,ct],[m,S]],[/(google) (pixelbook( go)?)/i],[d,p],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[p,[d,dr],[m,S]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[p,`Xperia Tablet`],[d,dr],[m,O]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[p,[d,Oi],[m,O]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[p,/(.+)/g,`Fire Phone $1`],[d,Oi],[m,S]],[/(playbook);[-\w\),; ]+(rim)/i],[p,d,[m,O]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[p,[d,vs],[m,S]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[p,[d,ws],[m,O]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[p,[d,ws],[m,S]],[/(nexus 9)/i],[p,[d,`HTC`],[m,O]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[d,[p,/_/g,` `],[m,S]],[/tcl (xess p17aa)/i,/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i],[p,[d,`TCL`],[m,O]],[/droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i],[p,[d,`TCL`],[m,S]],[/(itel) ((\w+))/i],[[d,Oe],p,[m,Ee,{tablet:[`p10001l`,`w7001`],"*":`mobile`}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[p,[d,`Acer`],[m,O]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[p,[d,`Meizu`],[m,S]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[p,[d,`Ulefone`],[m,S]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[p,[d,`Energizer`],[m,S]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[p,[d,`Cat`],[m,S]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[p,[d,`Smartfren`],[m,S]],[/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i],[p,[d,`Nothing`],[m,S]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[p,[d,`Archos`],[m,O]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[p,[d,`Archos`],[m,S]],[/; (n159v)/i],[p,[d,`HMD`],[m,S]],[/(imo) (tab \w+)/i,/(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i],[d,p,[m,O]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (blu|hmd|imo|infinix|lava|oneplus|tcl)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(oppo) ?([\w ]+) bui/i],[d,p,[m,S]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[d,p,[m,O]],[/(surface duo)/i],[p,[d,So],[m,O]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[p,[d,`Fairphone`],[m,S]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[p,[d,To],[m,O]],[/(sprint) (\w+)/i],[d,p,[m,S]],[/(kin\.[onetw]{3})/i],[[p,/\./g,` `],[d,So],[m,S]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[p,[d,Do],[m,O]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[p,[d,Do],[m,S]],[/smart-tv.+(samsung)/i],[d,[m,B]],[/hbbtv.+maple;(\d+)/i],[[p,/^/,`SmartTV`],[d,pr],[m,B]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[d,p,[m,B]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[d,Li],[m,B]],[/(apple) ?tv/i],[d,[p,At+` TV`],[m,B]],[/crkey.*devicetype\/chromecast/i],[[p,je+` Third Generation`],[d,ct],[m,B]],[/crkey.*devicetype\/([^/]*)/i],[[p,/^/,`Chromecast `],[d,ct],[m,B]],[/fuchsia.*crkey/i],[[p,je+` Nest Hub`],[d,ct],[m,B]],[/crkey/i],[[p,je],[d,ct],[m,B]],[/(portaltv)/i],[p,[d,Ro],[m,B]],[/droid.+aft(\w+)( bui|\))/i],[p,[d,Oi],[m,B]],[/(shield \w+ tv)/i],[p,[d,To],[m,B]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[p,[d,Es],[m,B]],[/(bravia[\w ]+)( bui|\))/i],[p,[d,dr],[m,B]],[/(mi(tv|box)-?\w+) bui/i],[p,[d,Po],[m,B]],[/Hbbtv.*(technisat) (.*);/i],[d,p,[m,B]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[d,/.+\/(\w+)/,`$1`,Ee,{LG:`lge`}],[p,Bi],[m,B]],[/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i],[p,[m,B]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:|large screen[\w ]+safari)\b/i],[[m,B]],[/(playstation \w+)/i],[p,[d,dr],[m,wr]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[p,[d,So],[m,wr]],[/(ouya)/i,/(nintendo) (\w+)/i,/(retroid) (pocket ([^\)]+))/i],[d,p,[m,wr]],[/droid.+; (shield)( bui|\))/i],[p,[d,To],[m,wr]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[p,[d,pr],[m,ye]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[d,p,[m,ye]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[p,[d,xo],[m,ye]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[p,[d,At],[m,ye]],[/(opwwe\d{3})/i],[p,[d,ys],[m,ye]],[/(moto 360)/i],[p,[d,Io],[m,ye]],[/(smartwatch 3)/i],[p,[d,dr],[m,ye]],[/(g watch r)/i],[p,[d,Li],[m,ye]],[/droid.+; (wt63?0{2,3})\)/i],[p,[d,Do],[m,ye]],[/droid.+; (glass) \d/i],[p,[d,ct],[m,Ai]],[/(pico) (4|neo3(?: link|pro)?)/i],[d,p,[m,Ai]],[/(quest( \d| pro)?s?).+vr/i],[p,[d,Ro],[m,Ai]],[/mobile vr; rv.+firefox/i],[[m,Ai]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[d,[m,vr]],[/(aeobc)\b/i],[p,[d,Oi],[m,vr]],[/(homepod).+mac os/i],[p,[d,At],[m,vr]],[/windows iot/i],[[m,vr]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+?(mobile|vr|\d) safari/i],[p,[m,Ee,{mobile:`Mobile`,xr:`VR`,"*":O}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[m,O]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[m,S]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[p,[d,`Generic`]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[g,[u,Mi+`HTML`]],[/(arkweb)\/([\w\.]+)/i],[u,g],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[g,[u,`Blink`]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[u,g],[/ladybird\//i],[[u,`LibWeb`]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[g,u]],os:[[/(windows nt) (6\.[23]); arm/i],[[u,/N/,`R`],[g,Ee,xs]],[/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i],[u,g],[/windows nt ?([\d\.\)]*)(?!.+xbox)/i,/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i],[[g,/(;|\))/g,``,Ee,xs],[u,No]],[/(windows ce)\/?([\d\.]*)/i],[u,g],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[g,/_/g,`.`],[u,`iOS`]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i],[[u,`macOS`],[g,/_/g,`.`]],[/android ([\d\.]+).*crkey/i],[g,[u,je+` Android`]],[/fuchsia.*crkey\/([\d\.]+)/i],[g,[u,je+` Fuchsia`]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[g,[u,je+` SmartSpeaker`]],[/linux.*crkey\/([\d\.]+)/i],[g,[u,je+` Linux`]],[/crkey\/([\d\.]+)/i],[g,[u,je]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[g,u],[/(ubuntu) ([\w\.]+) like android/i],[[u,/(.+)/,`$1 Touch`],g],[/(harmonyos)[\/ ]?([\d\.]*)/i,/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i],[u,g],[/\(bb(10);/i],[g,[u,vs]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[g,[u,`Symbian`]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[g,[u,ur+` OS`]],[/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i],[g,[u,`webOS`]],[/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i],[[g,Ee,{25:`120`,24:`108`,23:`94`,22:`87`,6:`79`,5:`68`,4:`53`,3:`38`,2:`538`,1:`537`,"*":`TV`}],[u,`webOS`]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[g,[u,`watchOS`]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[u,`Chrome OS`],g],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) (\w+)/i,/(xbox); +xbox ([^\);]+)/i,/(pico) .+os([\w\.]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/linux.+(mint)[\/\(\) ]?([\w\.]*)/i,/(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\d\.]*)/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/\b(aix)[; ]([1-9\.]{0,4})/i,/(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) ?(r\d)?/i],[u,g],[/(sunos) ?([\d\.]*)/i],[[u,`Solaris`],g],[/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[u,g]]},Ni=(function(){var r={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}};return Le.call(r.init,[[J,[u,g,br,m]],[Ae,[Q]],[Se,[m,p,d]],[he,[u,g]],[de,[u,g]]]),Le.call(r.isIgnore,[[J,[g,br]],[he,[g]],[de,[g]]]),Le.call(r.isIgnoreRgx,[[J,/ ?browser$/i],[de,/ ?os$/i]]),Le.call(r.toString,[[J,[u,g]],[Ae,[Q]],[Se,[d,p]],[he,[u,g]],[de,[u,g]]]),r})(),lc=function(r,e){var t=Ni.init[e],i=Ni.isIgnore[e]||0,o=Ni.isIgnoreRgx[e]||0,n=Ni.toString[e]||0;function s(){Le.call(this,t);}return s.prototype.getItem=function(){return r},s.prototype.withClientHints=function(){return ze?ze.getHighEntropyValues(ks).then(function(c){return r.setCH(new As(c,false)).parseCH().get()}):r.parseCH().get()},s.prototype.withFeatureCheck=function(){return r.detectFeature().get()},e!=Lt&&(s.prototype.is=function(c){var l=false;for(var v in this)if(this.hasOwnProperty(v)&&!Mo(i,v)&&Oe(o?Ft(o,this[v]):this[v])==Oe(o?Ft(o,c):c)){if(l=true,c!=Ke)break}else if(c==Ke&&l){l=!l;break}return l},s.prototype.toString=function(){var c=Mt;for(var l in n)typeof this[n[l]]!==Ke&&(c+=(c?` `:Mt)+this[n[l]]);return c||Ke}),ze||(s.prototype.then=function(c){var l=this,v=function(){for(var I in l)l.hasOwnProperty(I)&&(this[I]=l[I]);};v.prototype={is:s.prototype.is,toString:s.prototype.toString};var w=new v;return c(w),w}),new s};function As(r,e){if(r=r||{},Le.call(this,ks),e)Le.call(this,[[Uo,_o(r[Xe])],[Fo,_o(r[Za])],[S,/\?1/.test(r[ic])],[p,hr(r[oc])],[Nt,hr(r[_s])],[Bo,hr(r[nc])],[Q,hr(r[ec])],[lt,_o(r[rc])],[Vi,hr(r[tc])]]);else for(var t in r)this.hasOwnProperty(t)&&typeof r[t]!==Ke&&(this[t]=r[t]);}function Rs(r,e,t,i){return this.get=function(o){return o?this.data.hasOwnProperty(o)?this.data[o]:void 0:this.data},this.set=function(o,n){return this.data[o]=n,this},this.setCH=function(o){return this.uaCH=o,this},this.detectFeature=function(){if(Z&&Z.userAgent==this.ua)switch(this.itemType){case J:Z.brave&&typeof Z.brave.isBrave==Ui&&this.set(u,`Brave`);break;case Se:!this.get(m)&&ze&&ze[S]&&this.set(m,S),this.get(p)==`Macintosh`&&Z&&typeof Z.standalone!==Ke&&Z.maxTouchPoints&&Z.maxTouchPoints>2&&this.set(p,`iPad`).set(m,O);break;case de:!this.get(u)&&ze&&ze[Nt]&&this.set(u,ze[Nt]);break;case Lt:var o=this.data,n=function(s){return o[s].getItem().detectFeature().get()};this.set(J,n(J)).set(Ae,n(Ae)).set(Se,n(Se)).set(he,n(he)).set(de,n(de));}return this},this.parseUA=function(){return this.itemType!=Lt&&Ao.call(this.data,this.ua,this.rgxMap),this.itemType==J&&this.set(br,ko(this.get(g))),this},this.parseCH=function(){var o=this.uaCH,n=this.rgxMap;switch(this.itemType){case J:case he:var s=o[Fo]||o[Uo],c;if(s)for(var l in s){var v=s[l].brand||s[l],w=s[l].version;this.itemType==J&&!/not.a.brand/i.test(v)&&(!c||/Chrom/.test(c)&&v!=Is||c==Mi&&/WebView2/.test(v))&&(v=Ee(v,cc),c=this.get(u),c&&!/Chrom/.test(c)&&/Chrom/.test(v)||this.set(u,v).set(g,w).set(br,ko(w)),c=v),this.itemType==he&&v==Is&&this.set(g,w);}break;case Ae:var I=o[Q];I&&(I&&o[Vi]==`64`&&(I+=`64`),Ao.call(this.data,I+`;`,n));break;case Se:if(o[S]&&this.set(m,S),o[p]&&(this.set(p,o[p]),!this.get(m)||!this.get(d))){var R={};Ao.call(R,`droid 9; `+o[p]+`)`,n),!this.get(m)&&R.type&&this.set(m,R.type),!this.get(d)&&R.vendor&&this.set(d,R.vendor);}if(o[lt]){var b;if(typeof o[lt]!=`string`)for(var P=0;!b&&P<o[lt].length;)b=Ee(o[lt][P++],Ps);else b=Ee(o[lt],Ps);this.set(m,b);}break;case de:var _=o[Nt];if(_){var y=o[Bo];_==No&&(y=parseInt(ko(y),10)>=13?`11`:`10`),this.set(u,_).set(g,y);}this.get(u)==No&&o[p]==`Xbox`&&this.set(u,`Xbox`).set(g,void 0);break;case Lt:var z=this.data,ee=function(C){return z[C].getItem().setCH(o).parseCH().get()};this.set(J,ee(J)).set(Ae,ee(Ae)).set(Se,ee(Se)).set(he,ee(he)).set(de,ee(de));}return this},Le.call(this,[[`itemType`,r],[`ua`,e],[`uaCH`,i],[`rgxMap`,t],[`data`,lc(this,r)]]),this}function we(r,e,t){if(typeof r===Ut?(Fi(r,true)?(typeof e===Ut&&(t=e),e=r):(t=r,e=void 0),r=void 0):typeof r===Lo&&!Fi(e,true)&&(t=e,e=void 0),t&&typeof t.append===Ui){var i={};t.forEach(function(l,v){i[v]=l;}),t=i;}if(!(this instanceof we))return new we(r,e,t).getResult();var o=typeof r===Lo?r:t&&t[fs]?t[fs]:Z&&Z.userAgent?Z.userAgent:Mt,n=new As(t,true),s=e?ac(Ds,e):Ds,c=function(l){return l==Lt?function(){return new Rs(l,o,s,n).set(`ua`,o).set(J,this.getBrowser()).set(Ae,this.getCPU()).set(Se,this.getDevice()).set(he,this.getEngine()).set(de,this.getOS()).get()}:function(){return new Rs(l,o,s[l],n).parseUA().get()}};return Le.call(this,[[`getBrowser`,c(J)],[`getCPU`,c(Ae)],[`getDevice`,c(Se)],[`getEngine`,c(he)],[`getOS`,c(de)],[`getResult`,c(Lt)],[`getUA`,function(){return o}],[`setUA`,function(l){return Bt(l)&&(o=l.length>Oo?Bi(l,Oo):l),this}]]).setUA(o),this}we.VERSION=Qa;we.BROWSER=Wi([u,g,br,m]);we.CPU=Wi([Q]);we.DEVICE=Wi([p,d,m,wr,S,B,O,ye,vr]);we.ENGINE=we.OS=Wi([u,g]);var Hi=class{modifications=[];constructor(){Ce$1(`.lc-hide {display: none !important;height: 0 !important;}
74
+ `},navigation:{nextEl:r.querySelector(`.swiper-button-next`),prevEl:r.querySelector(`.swiper-button-prev`)},autoplay:e.autoplay?.enabled?{delay:e.autoplay?.delay,disableOnInteraction:false,pauseOnMouseEnter:false}:false,autoHeight:true};e.marquee&&t.autoplay&&typeof t.autoplay==`object`&&(t.speed=e.speed,t.autoplay.pauseOnMouseEnter=true,r.style.setProperty(`--swiper-wrapper-transition-timing-function`,`linear`));let i=new window.CooeeSDK.Swiper(r,t);return r.style.setProperty(`--swiper-navigation-size`,`${e.navigation.size}px`),i}function Ei(r,e,t){let i={color:r.navigation.color?.rgba};return r.pagination.enabled&&(i.transform=`translateY(-25%)`),h(`div`,{class:`swiper-container`,ref:e,style:`max-width: 100%`,children:[h(`div`,{class:`swiper-wrapper`,children:t()}),r.navigation.enabled&&h(`div`,{class:`swiper-button-next`,style:i,children:h(`span`,{})}),r.navigation.enabled&&h(`div`,{class:`swiper-button-prev`,style:i,children:h(`span`,{})}),r.pagination.enabled&&h(`div`,{className:`swiper-pagination`,style:{bottom:0,top:`unset`,position:`relative`,color:r.pagination.color?.rgba}})]})}var Qt=class extends A{componentDidMount(){W$1(()=>{this.setState(()=>({checked:this.props.item.selected.value}));});}render(){return h(`div`,{style:this.getCompiledStyles(),className:this.getClasses(`lc-checkbox`),children:h(`input`,{type:`checkbox`,checked:this.state.checked,onChange:this.onChange.bind(this),style:{appearance:`auto`}})})}onChange(e){let{checked:t}=e.target;this.props.item.selected.value=t;}getTypoStyles(){let e={},t=this.mediaStyle.typo??new V;return e.textAlign=t.alignment,e.justifyContent=t.alignment,e}getComponentStyles(){return s(r({},this.getTypoStyles()),{display:`flex`})}};var _e=class extends A{constructor(e,t){super(e,t);}render(){let e=this.props.element[this.deviceTypeKey],t=e?.src||this.props.element.src||this.props.element.lg?.src;return h(`img`,{onClick:this.customOnClick.bind(this),alt:e?.name||`Image`,className:this.getClasses(`lc-image`),onMouseEnter:this.handleMouseEnter.bind(this),onMouseLeave:this.handleMouseLeave.bind(this),src:t,style:this.getCompiledStyles()})}customOnClick(e){this.props.element.clc?.at===He$2.ADD_TO_CART&&this.props.triggerContext.triggerData.items[0]&&this.onClick(e,{item:this.props.triggerContext.triggerData.items[0]}),this.props.onClick&&this.props.onClick(`image`);}getComponentStyles(){let e=this.mediaStyle.lout;if(!e||e.pos!==`absolute`)return {};let t={zIndex:e.zIndex,cursor:this.props.element.clc?.at?`pointer`:`auto`};return this.mediaStyle.size?.w&&(t.width=this.mediaStyle.size.w),this.mediaStyle.size?.h&&(t.height=this.mediaStyle.size.h),t}handleMouseEnter(e){let t=this.props.element[this.deviceTypeKey]?.secondarySrc;t&&(e.currentTarget.src=t);}handleMouseLeave(e){e.currentTarget.src=this.props.element[this.deviceTypeKey]?.src;}};var ke=class extends A{render(){if(!(this.props.element.hide||!this.matchWhenCondition(this.props.element.when)))return h(`div`,{style:this.getCompiledStyles(),class:`lc-flexbox`,children:h(Ge,{elements:this.props.elements,element:this.props.element,triggerContext:this.props.triggerContext})})}getComponentStyles(){let e=this.mediaStyle.flex??new Et,t={display:`flex`,gap:e.gap+`px`,flexWrap:e.wrap,flexDirection:e.dir,justifyContent:e.jc,alignItems:e.ai};return e.wrap===`nowrap`&&e.scroll&&(e.dir===`column`?t[`overflow-y`]=`auto`:t[`overflow-x`]=`auto`),t}};var Zt=class extends ke{render(){if(!(this.props.element.hide||!this.matchWhenCondition(this.props.element.when)))return h(`div`,{style:this.getCompiledStyles(),class:`lc-flexbox`,children:h(_t,{elements:this.props.elements,element:this.props.element,triggerContext:this.props.triggerContext,item:this.props.item,noLinks:this.props.noLinks})})}};var er=class extends A{render(){return h(`select`,{style:this.getCompiledStyles(),value:this.props.selectedVariant.selectedSellingPlan.value?.mID??``,onChange:this.onChange.bind(this),disabled:this.state.disabled,className:this.getClasses(`lc-dropdown`),children:this.createSelectItems()})}componentDidMount(){W$1(()=>{this.setState(()=>({disabled:this.props.triggerContext.triggerData.isBundle()?!this.props.item.selected.value:false}));});}getTypoStyles(){let e={},t=this.mediaStyle.typo??new V;return e.letterSpacing=t.letterSpacing,e.fontSize=t.fs+`px`,e.lineHeight=t.lh,e.fontFamily=`inherit`,e.textAlign=t.alignment,e.fontWeight=t.fw,this.stylesConverter.getColourStyles(t.tc,`color`,e),e.boxShadow=`none`,e}getComponentStyles(){let e={};return this.props.selectedVariant.sellingPlans?.length||(e.visibility=`hidden`),r(r({},e),this.getTypoStyles())}createSelectItems(){let e=[],t=this.props.selectedVariant;if(!t.sellingPlans?.length)return [];this.props.triggerContext.triggerData.skipSubscribedItems?t.selectedSellingPlan.value||(t.sellingPlans[0].isSelected=true,t.changeSellingPlan(t.sellingPlans[0])):e.push(h(`option`,{value:``,selected:!t.selectedSellingPlan,children:`One time purchase`}));for(let i of t.sellingPlans??[])e.push(h(`option`,{value:i.mID,selected:i.isSelected,children:i.name}));return e}onChange(e){let t=e.target.value;t?this.props.selectedVariant.selectedSellingPlan.value=this.props.selectedVariant.sellingPlans.find(i=>i.mID===t):this.props.selectedVariant.selectedSellingPlan.value=void 0;}};var ja=new RegExp(`fill="#[a-zA-Z0-9]+"`),tr=class extends A{constructor(){super();}render(){let e=this.getCompiledStyles(),t=this.getRating();return t||(e.display=`none`,t=``),h(`div`,{style:e,className:this.getClasses(`lc-star-rating`),dangerouslySetInnerHTML:{__html:t}})}getRating(){let e={size:this.props.element.iconSize,color:this.props.element.c.hex},t=qe$1(this.props.element.fullStar,{svg:e},this.props.triggerContext),i=qe$1(this.props.element.halfStart,{svg:e},this.props.triggerContext),o=this.props.review;if(!o?.rating)return ``;let n=``;if(this.props.element.showSingleStar)n=t;else {let s=5,c=`${o.rating}`.split(`.`);for(let l=0;l<+c[0];l++)n+=t,s--;c[1]&&(n+=i,s--);for(let l=0;l<s;l++)n+=t.replace(ja,`fill="#f1f1f1"`);}return n}getComponentStyles(){return {display:`flex`,alignItems:`center`}}};var rr=class extends A{render(){return h(`select`,{style:this.getCompiledStyles(),value:this.props.item.selectedOrFirstVariant.value.mID,onChange:this.onChange.bind(this),disabled:this.state.disabled,className:this.getClasses(`lc-dropdown`),children:this.createSelectItems()})}componentDidMount(){W$1(()=>{this.setState(()=>({disabled:this.props.triggerContext.triggerData.isBundle()?!this.props.item.selected.value:false}));});}getTypoStyles(){let e={},t=this.mediaStyle.typo??new V;return e.letterSpacing=t.letterSpacing,e.fontSize=t.fs+`px`,e.lineHeight=t.lh,e.fontFamily=`inherit`,e.textAlign=t.alignment,e.fontWeight=t.fw,this.stylesConverter.getColourStyles(t.tc,`color`,e),e.boxShadow=`none`,e}getComponentStyles(){let e={};return this.props.item.vars?.length===1&&this.props.item.vars[0].name===`Default Title`&&(e.visibility=`hidden`),r(r({},e),this.getTypoStyles())}createSelectItems(){let e=[];for(let t of this.props.item.vars)e.push(h(`option`,{value:t.mID,disabled:!t.isAvailable,children:t.name}));return e}onChange(e){let t=e.target.value,i=this.props.item.vars.find(o=>o.mID===t);this.props.item.setSelectedVariant(i);}};var ss=()=>{let r=window.ShopifyAnalytics?.meta??{},e=r.selectedVariantId;if(e)return e;if(r.product?.variants?.length>0)return r.product.variants[0].id},Co=r=>{if(!r)return;let e;try{e=new URL(r);}catch{return}if(e.hostname!==`cdn.shopify.com`)return r;let t=e.pathname.split(`.`);return t.length!==2?r:(e.pathname=t[0]+`_large.`+t[1],e.toString())};var _t=class extends A{constructor(e,t){super(e,t),this.setState(()=>({decoration:`unset`}));}renderElement(e){if(!(e.hide||!this.matchWhenCondition(e.when))){if(e.t===4){let t=e;return t.l===`Star Rating`&&!this.props.item.reviews?.rating?void 0:h(Zt,{element:t,triggerContext:this.props.triggerContext,elements:t.elems,item:this.props.item,noLinks:this.props.noLinks})}if(e.t===6)return this.props.triggerContext.triggerData.isBundle()?h(Qt,{element:e,item:this.props.item,triggerContext:this.props.triggerContext}):void 0;if(e.t===13){let t=e,i=this.props.item,o=Co(i.variantImage??i.firstImageURL),n=Co(i.variantSecondaryImage??i.secondaryImageURL);t.lg=t.sm={src:o,name:i.name,secondarySrc:n};let s=h(_e,{element:t,onClick:this.customOnClick.bind(this),triggerContext:this.props.triggerContext});return this.props.noLinks?s:h(`a`,{href:this.props.item.selectedOrFirstVariant.value.link,style:{display:`block`},children:s})}if(e.t===14)return this.renderProductTitle(e);if(e.t===15){let t=e;return this.props.triggerContext.triggerData.isCartEmbed()&&this.props.item.vars?.length===1&&this.props.item.vars[0].name===`Default Title`?void 0:t.showChips?h(`cooee-product-options-picker`,{item:this.props.item}):h(rr,{element:t,item:this.props.item,triggerContext:this.props.triggerContext})}return e.t===16?h(er,{element:e,selectedVariant:this.props.item.selectedOrFirstVariant.value,item:this.props.item,triggerContext:this.props.triggerContext}):e.t===19?h(tr,{element:e,triggerContext:this.props.triggerContext,review:this.props.item.reviews}):e.t===18||e.t===3?h(nt,{element:e,item:this.props.item,triggerContext:this.props.triggerContext}):h(Ge,{elements:[e],element:this.props.element,triggerContext:this.props.triggerContext})}}render(){return this.attachListener(),this.props.elements.map(e=>this.renderElement(e))}getComponentStyles(){return {}}renderProductTitle(e){let t=h(oe,{element:e,onClick:this.customOnClick.bind(this),triggerContext:this.props.triggerContext});return this.props.noLinks?t:h(`a`,{href:this.props.item.selectedOrFirstVariant.value.link,style:{display:`block`,textDecoration:this.state.decoration},onMouseEnter:this.onMouseEnter.bind(this),onMouseLeave:this.onMouseLeave.bind(this),children:t})}customOnClick(e){this.sendTriggerClicked([this.props.item.toEmbed()],{from:e});}onMouseEnter(){this.setState(()=>({decoration:`underline`}));}onMouseLeave(){this.setState(()=>({decoration:`unset`}));}attachListener(){document.addEventListener(`letscooee:variant-change`,e=>{let t=e;if(!t.detail||this.props.item.mID!==t.detail.productID)return;let i=t.detail.variantID;this.props.item.setSelectedVariantByID(i);});}};var st=class extends A{productElement;constructor(e,t){super(e,t),this.setState(()=>({decoration:`unset`}));}render(){if(this.productElement=new He(Ve$2(this.props.element,this.getProductData(),this.props.triggerContext)),!(this.productElement.hide||!this.matchWhenCondition(this.productElement.when)))return h(`div`,{style:r({},this.getCompiledStyles()),className:this.getClasses(`lc-single-product`),children:h(_t,{element:this.productElement,elements:this.productElement.elems,triggerContext:this.props.triggerContext,item:this.props.item,noLinks:this.productElement.noLinks})})}getComponentStyles(){return {flexShrink:0}}getProductData(){if(!this.props.item)return {};let e=this.props.item,t=e.selectedOrFirstVariant.value,i=e.getTemplateVariables();i.product.quantity=this.props.triggerContext.hasManipulatedProductQuantity()?this.props.triggerContext.getManipulatedQuantity(this.props.item.quantity):this.props.item.quantity;let o=this.props.triggerContext.triggerData.discount?.type===ce.BXGY;return !t.hasEffectivePrice()&&o&&(i.product=s(r(r({},i.product),An$1(`effective_price`,t.effectivePrice.value)),{price:``})),i.variant.quantity=this.props.triggerContext.hasManipulatedProductQuantity()?this.props.triggerContext.getManipulatedQuantity(t.quantity):t.quantity,{product:i.product,variant:i.variant,svg:{color:`{{ svg.color }}`,size:`{{ svg.size }}`}}}};var ir=class extends A{swiperRef=null;swiperInstance=null;configuration;gap;constructor(e,t){super(e,t),this.configuration=M$1()?this.props.element.conf.sm:this.props.element.conf.lg,this.gap=(this.configuration.gap??15)+`px`;}componentDidMount(){this.props.element.conf[this.deviceTypeKey].disp===2&&Vi$1().then(()=>{this.swiperInstance=yi(this.swiperRef,this.props.element.conf[this.deviceTypeKey]);});}componentWillUnmount(){this.swiperInstance&&this.swiperInstance.destroy();}render(){let e=this.props.triggerContext.triggerData.items;e.splice(this.configuration.maxItems??10);let t;if(this.configuration.disp===2){let i=n=>{this.swiperRef=n;},o=()=>e?.map(n=>h(`div`,{class:`swiper-slide`,children:this.getProductFragment(n)}));t=h(`div`,{style:s(r({},this.getCompiledStyles()),{display:`block`}),className:this.getClasses(`lc-product-swiper-list`),children:Ei(this.configuration,i,o)});}else t=h(`div`,{style:this.getCompiledStyles(),className:this.getClasses(`lc-product-list`),children:e?.map((i,o)=>this.getProductFragment(i,o!==e.length-1))});return t}getComponentStyles(){let e=[0,2].includes(this.configuration.disp),t={display:e?`flex`:`grid`,justifyContent:`safe `+(this.mediaStyle.flex?.jc??`center`),gap:this.gap,flexDirection:this.mediaStyle.flex?.dir??`row`};if(t.flexDirection===`row`){if(e)t.maxWidth=`100%`,t.overflowY=`auto`;else if(this.configuration.disp===1){let i=this.props.triggerContext.triggerData,o=i.items.length,n;i.isBundle()?n=this.props.element.prod.symbol?.hide!==true?o*2-1:o:n=this.props.element.conf[this.deviceTypeKey].maxInRow,t.gridTemplateColumns=`repeat(${n}, auto)`;}}return t}getProductFragment(e,t=false){return h(j$2,{children:[h(st,{element:this.props.element.prod,item:e,triggerContext:this.props.triggerContext}),this.props.triggerContext.triggerData.isBundle()&&t&&this.props.element.prod.symbol&&!this.props.element.prod.symbol.hide&&h(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`center`},children:h(oe,{element:this.props.element.prod.symbol,triggerContext:this.props.triggerContext})})]},e.mID)}};var or=class extends A{swiperRef=null;swiperInstance=null;constructor(e,t){super(e,t);}componentDidMount(){Vi$1().then(()=>{this.swiperInstance=yi(this.swiperRef,this.props.element.conf);});}componentWillUnmount(){this.swiperInstance&&this.swiperInstance.destroy();}render(){let e=this.props.element,t=o=>{this.swiperRef=o;},i=()=>{let o=e.values?.map(c=>h(`div`,{class:`swiper-slide`,onClick:l=>this.onClick(l,{clickAction:this.getClickAction(c)}),children:this.renderElement(c)}));if(!o?.length)return [];let n=e.conf,s=o.length;if(n.marquee&&s<=Number(n.maxInRow)){let c=Number(n.maxInRow)-s+1;for(let l=0;l<c;l++)o.push(o[l%s]);}return o};return Ei(e.conf,t,i)}getComponentStyles(){return {}}renderElement(e){let t=this.valueAddedSlide(this.props.element.slide,e);switch(t?.t){case 1:return h(_e,{element:t,triggerContext:this.props.triggerContext});case 4:return h(ke,{elements:t.elems,element:t,triggerContext:this.props.triggerContext});default:Y$1.warn(`Unknown slide type for carousal`);}}valueAddedSlide(e,t){let i=Ve$2(e,{form:t},this.props.triggerContext);return ie.getParsedElement(i)}getClickAction(e){return Ve$2(this.props.element.clc??{},{form:e},this.props.triggerContext)}};var Ge=class extends A{constructor(e,t){super(e,t),this.setState(()=>({decoration:`unset`})),W$1(()=>{this.setState(()=>({showButton:!this.props.triggerContext.triggerData.isBundle()||!!this.props.triggerContext.selectedItems.length}));});}renderElement(e){if(!e.hide){if(e.t===4){let t=e;return h(ke,{element:t,triggerContext:this.props.triggerContext,elements:t.elems})}if(e.t===61)return h(Jt,{element:e,triggerContext:this.props.triggerContext});if(e.t===3)return this.state.showButton?h(nt,{element:e,triggerContext:this.props.triggerContext}):void 0;if(e.t===2)return h(oe,{element:e,triggerContext:this.props.triggerContext});if(e.t===1)return h(_e,{element:e,triggerContext:this.props.triggerContext});if(e.t===11)return h(ir,{element:e,triggerContext:this.props.triggerContext});if(e.t===12)return h(st,{element:e,item:this.props.triggerContext.triggerData.items[0],triggerContext:this.props.triggerContext});if(e.t===62)return h(or,{element:e,triggerContext:this.props.triggerContext})}}render(){return this.props.elements.map(e=>this.renderElement(e))}getComponentStyles(){return {}}};var nr=class extends A{clickAction;isClickable;constructor(e,t){super(e,t),this.clickAction=this.props.element.clc,this.isClickable=this.clickAction?.at===He$2.GO_TO_URL&&!!Dn(this.clickAction.gu?.u)||this.clickAction?.at===He$2.OPEN_CART||this.clickAction?.at===He$2.INITIATE_CHECKOUT;}componentDidMount(){W$1(()=>{let e=this.props.triggerContext.triggerData,t=this.props.triggerContext.selectedItems;e.calculateDiscountData(t,this.props.triggerContext.shouldGiveFBTDiscount);});}render(){return h(j$2,{children:[h(`div`,{style:this.getCompiledStyles(),className:this.getClasses(`lc-container`),onClick:e=>{this.onClick(e,{clickAction:this.clickAction});},children:h(Ge,{elements:this.props.elements,element:this.props.element,triggerContext:this.props.triggerContext})}),this.props.triggerContext.triggerData.id===`preview`&&h(`div`,{class:`letscooee-preview-badge`,children:[`#`,this.props.triggerContext.triggerData.shortID,` preview`]})]})}getComponentStyles(){let e={position:`relative`,overflow:`hidden`,display:`block`};return this.isClickable&&(e.cursor=`pointer`),e}};var K=class r$9{constructor(e){this.engagementTrigger=e;this.triggerContext=new Fe(new Date,this.engagementTrigger);}static engagementIDsWithTrackedDisplay=new Set;static DEBOUNCE_TIME=1e3;rootContainer;widgetElement;triggerContext;observers=[];renderedCount=0;scrollSubscription;isExclusionWithBVariation;isProcessing=false;renderSilently(){this.acquireProcessingLock()||this.render().finally(()=>this.releaseProcessingLock()).catch(e=>{ke$2(e,`render-widget`,{triggerContext:this.triggerContext});});}destroy(){Y$1.verbose(`${this.engagementTrigger} will be destroyed`),this.preDestroy(),this.removeFromRendered(),this.rootContainer?.remove(),r$9.engagementIDsWithTrackedDisplay.delete(this.engagementTrigger.shortID),xi$1(this.engagementTrigger.content?.afterDeleteJS);}matches(e){return this.engagementTrigger.shortID===e.shortID}async render(){if(this.engagementTrigger.shouldGetVariationImmediately()){let e=await this.getVariation();this.handleVariationResponse(e);}if(this.rootContainer=await this.getWidgetContainer(true),!this.rootContainer){Y$1.warn(`${this.engagementTrigger} no section found to render the widget`);return}this.afterRootContainerCreated(),await this.getVariationIfRequired(),await this.runChoresBeforeRender(),this.attachScroll(),this.checkAndSendEvent(),this.triggerContext.renderer=this,xi$1(this.engagementTrigger.content?.afterRenderJS);}async updateAndReRender(e){if(!this.acquireProcessingLock())try{this.updateItems(e.items,this.engagementTrigger.items),await this.update(e),await this.render();}finally{this.releaseProcessingLock();}}async update(e){this.engagementTrigger.variation=e.variation;}async rerenderIfDeleted(){if(!this.rootContainer?.isConnected&&!this.acquireProcessingLock()){Y$1.info(`${this.engagementTrigger} deleted. Will be re-rendered`);try{this.preDestroy(),await this.render();}finally{this.releaseProcessingLock();}}}updateAngularWidget(){return this.widgetElement?.isConnected?(this.widgetElement.update(),true):false}preDestroy(){this.scrollSubscription?.unsubscribe(),this.observers.forEach(e=>{e?.disconnect&&e.disconnect();});}acquireProcessingLock(){return this.isProcessing?(Y$1.verbose(`Lock could not be acquired for ${this.engagementTrigger}`),true):(Y$1.verbose(`Acquiring rendering lock for ${this.engagementTrigger}`),this.isProcessing=true,false)}releaseProcessingLock(){Y$1.verbose(`Releasing rendering lock for ${this.engagementTrigger}`),this.isProcessing=false;}afterRootContainerCreated(){}isAllOkToRender(){return !!this.engagementTrigger.widget}async getVariationIfRequired(){if(this.engagementTrigger.shouldSkipVariation()){Y$1.verbose(`${this.engagementTrigger} already has necessary data to render`);return}let e=await this.observeWidgetContainerInViewport();this.handleVariationResponse(e);}handleVariationResponse(e){if(!e)return;let t=this.engagementTrigger;Y$1.log(`${t} visitor has been assigned to variation ${e.variation}`),e.items?.length&&(t.items=e.items.map(i=>new ot$2(i)),t.nonMutableItems=e.items.map(i=>new ot$2(i))),e.bundleFrom&&(t.bundleFrom=new ot$2(e.bundleFrom)),e.discount&&(t.discount=e.discount),e.placement&&(t.placement=e.placement),e.props&&pe$4.hasKeys(e.props)&&(t.props=r(r({},t.props),e.props)),e.content&&(t.content=new Kt(e.content)),t.widget=new xt(e.widget),t.contentID=e.contentID,t.variation=e.variation,t.placement=e.placement,t.manipulation=e.manipulation,t.entryAnimation=e.entryAnimation??`NONE`,this.isExclusionWithBVariation=t.isExclusionTesting()&&t.variation===`b`,this.isExclusionWithBVariation&&(this.rootContainer.style.height=`0.5px`);}addToRendered(){this.renderedCount++,Y$1.info(`${this.engagementTrigger} rendered \u2705 ${Mn$1(this.renderedCount)} time`);}removeFromRendered(){this instanceof pe?at.delete(this):kt.delete(this);}async getVariation(){Y$1.log(`${this.engagementTrigger} get variation`);let e={engagementID:this.engagementTrigger.engagementID,isPreview:this.engagementTrigger.id===`preview`};try{return (await as(e)).data}catch(t){if(t instanceof oe$5&&t.response?.status===400)return;ke$2(t,`get-variation`,{engagementTrigger:this.engagementTrigger});return}}async observeWidgetContainerInViewport(){if(!this.rootContainer){Y$1.warn(`${this.engagementTrigger} No root container found to watch for viewport`);return}let e=window.innerHeight*.3,t={root:null,rootMargin:`${e}px 0px ${e}px 0px`,threshold:0};return this.isInViewport()?this.getVariation():new Promise(i=>{let o=new IntersectionObserver((n,s)=>{n.forEach(async c=>{if(c.isIntersecting){Y$1.log(`${this.engagementTrigger} root container is near the viewport. Fetching variation`);i(await this.getVariation()),s.unobserve(this.rootContainer);}});},t);o.observe(this.rootContainer),this.observers.push(o);})}attachScroll(){this.scrollSubscription=Tr(window,`scroll`).pipe(Fe$1(r$9.DEBOUNCE_TIME)).subscribe(()=>{this.checkAndSendEvent();});}checkAndSendEvent(){let e=this.engagementTrigger.shortID;if(r$9.engagementIDsWithTrackedDisplay.has(e)||!this.isInViewport())return;let i={};this.triggerContext.triggerData.items?.length&&(i.promotedMIDs=this.engagementTrigger.items?.map(s=>s.mID));let n=new Ir$1(this.isExclusionWithBVariation?`CE Campaign Holdout`:`CE Trigger Displayed`,i,this.engagementTrigger);n.name===`CE Campaign Holdout`&&(n.trigger.holdout=true),fe(n),r$9.engagementIDsWithTrackedDisplay.add(e),this.scrollSubscription.unsubscribe();}generateParentElementID(){return `letscooee-${this.engagementTrigger.shortID}`}createAngularWidget(e){let t=this.widgetElement=document.createElement(e);return t.cart=E.getCurrent(),t.triggerContext=this.triggerContext,t.engagementTrigger=this.engagementTrigger,t.setAttribute(`engagement`,this.engagementTrigger.shortID),this.rootContainer.appendChild(t),this.addToRendered(),this.injectOuterCSSOnly(),t}getParentElement(e,t=document){let i=t.getElementById(e);if(i)return i;let o=this.engagementTrigger.objective.toLowerCase().replaceAll(`_`,`-`),n=this.engagementTrigger.shortID;i=document.createElement(`div`),i.id=e;let s=`letscooee letscooee-engagement engagement-${n} lc-${o}`;return this.engagementTrigger.content?.classes&&(s+=` ${this.engagementTrigger.content.classes}`),i.className=s,i.dataset.engagementId=n,this.engagementTrigger.id===`preview`&&(i.className+=` letscooee-preview`),i.style.display=`block`,i.style.minHeight=`0.5px`,i.style.minWidth=`0.5px`,i}async startRendering(){let e=this.rootContainer,t=this.triggerContext.triggerData.hasSwiperElement();t&&(e=this.rootContainer?.shadowRoot||this.rootContainer?.attachShadow({mode:`open`}),Mi$1(e)),this.injectCampaignCSS(t,e);let i=this.engagementTrigger.widget;ze$1(pe$3(nr,{element:i.cont,triggerContext:this.triggerContext,elements:i.elems}),e),this.addToRendered();}injectCampaignCSS(e,t){let i=this.engagementTrigger.content?.outerCSS?.trim()??``,o=this.engagementTrigger.content?.innerCSS?.trim()??``;if(!i&&!o)return;let n=this.rootContainer.id;if(e){Ce$1(o,t),this.injectOuterCSSOnly();return}Ce$1(`#${n} { ${i+`
75
+ ${o}`} }`);}injectOuterCSSOnly(){let e=this.engagementTrigger.content?.outerCSS?.trim();if(!e)return;let t=this.rootContainer.id;Ce$1(`#${t} { ${e} }`);}isInViewport(){let e=this.rootContainer?.getBoundingClientRect();if(!e)return false;let t=window.innerHeight||document.documentElement.clientHeight,s=(Math.min(e.bottom,t)-Math.max(e.top,0))*e.width/(e.width*e.height)*100;return this.engagementTrigger.isAnySplit()?s>0:s>=30}async getWidgetContainer(e){if(this.rootContainer?.isConnected)return this.rootContainer;let t=await this.createParentElementWithPlacement(e);if(t)return t;let i=`.letscooee[data-engagement-id="${this.triggerContext.triggerData.shortID}"]`;return document.querySelector(i)}async createParentElementWithPlacement(e){let t=this.engagementTrigger.placement;if(!t?.selector)return Y$1.info(`\u26A0\uFE0F${this.engagementTrigger} does not have a selector`),null;let i=t.selector,o;if(i.includes(`:shadow`)){let l=i.split(`:shadow`);o=(await Ln$1(l[0].trim()))?.shadowRoot,i=l[1].trim(),o&&Mi$1(o,false);}Y$1.verbose(`${this.engagementTrigger} attempt to render "${t.position}" "${i}"`);let n=await Ln$1(i,3,o??document);if(!n)return Y$1.warn(`${this.engagementTrigger} no placement found with ${i}`),null;let s=this.generateParentElementID(),c=this.getParentElement(s);if(!e)return c;switch(t.position){case Ve$3.BEFORE1:case Ve$3.BEFORE:n.parentElement?.insertBefore(c,n);break;case Ve$3.INSIDE_FIRST1:case Ve$3.INSIDE_FIRST:n.insertBefore(c,n.firstChild);break;case Ve$3.INSIDE_LAST1:case Ve$3.INSIDE_LAST:n.appendChild(c);break;case Ve$3.AFTER1:case Ve$3.AFTER:default:n.parentElement?.insertBefore(c,n.nextSibling);}return c}async runChoresBeforeRender(){if(this.isExclusionWithBVariation)return;if(!this.isAllOkToRender()){Y$1.info(`\u26A0\uFE0F ${this.engagementTrigger} could not be rendered`);return}Y$1.verbose(`${this.engagementTrigger} will be rendered`);let e;try{e=await hi(this.engagementTrigger);}catch(t){Y$1.info(`\u203C\uFE0F${this.engagementTrigger} could not render as items failed to refresh`,t);return}if(!this.engagementTrigger.isCollectionPromoted()&&!e?.length&&this.engagementTrigger.isProductPromoted()){Y$1.info(`\u203C\uFE0F${this.engagementTrigger} could not render as no products promoted`);return}this.engagementTrigger.items=e,await this.startRendering();}updateItems(e,t){let i=this.getItemDiff(e,t),o=this.getItemDiff(t,e);t.push(...i);for(let n of o)De.remove(t,n);}getItemDiff(e,t){return e.filter(i=>!t.some(o=>o.selectedOrFirstVariant.value.mID===i.selectedOrFirstVariant.value.mID))}};var pe=class extends K{constructor(e){super(e);}rerenderAfterCartOpened(){this.rerenderIfDeleted(),this.checkAndSendEvent();}observeWidgetContainerInViewport(){return this.getVariation()}generateParentElementID(){let e=super.generateParentElementID();return this.engagementTrigger.isSubscriptionUpsell()&&(e+=`-${this.engagementTrigger.items[0].selectedOrFirstVariant.value.mID}`),e}checkAndSendEvent(){if(!F.get().isOpen()&&Be$3().pageName!==`cart`){Y$1.log(`Do not send display event as neither the cart drawer nor the cart page is open.`);return}return super.checkAndSendEvent()}};var Si=class r{constructor(e,t){this.engagementTrigger=e;this.element=t;this.cartItems=E.getCurrent().items;}cartItems;static renderCartUpsell(e){let t=e.placement;if(!t?.selector){Y$1.warn(`No placement available for ${e.objective}`,e.shortID);return}let i=Array.from(document.querySelectorAll(t.selector));if(!i?.length){Y$1.warn(`No placement found for ${e.objective}`,e.shortID);return}for(let o of i)new r(e,o).render();}render(){let e=this.findCartItemFromHTMLElement();if(!e||this.engagementTrigger.skipSubscribedItems&&e.selling_plan_allocation)return;let t=this.engagementTrigger.items.find(w=>w.mID===e.product_id.toString());if(!t)return;let i=t.vars.find(w=>w.mID===e.id.toString());if(!i)return;let o=new nt$1(i),n=e.selling_plan_allocation?.selling_plan;if(n)for(let w of o.sellingPlans??[])w.mID===n.id.toString()&&(w.isSelected=true,o.changeSellingPlan(w));let s=new ot$2(t);s.vars=[o],s.selectedOrFirstVariant.value=o;let c=`lc-cart-item-${this.engagementTrigger.shortID}-${t.mID}`;this.element.classList.add(c);let l=new q(this.engagementTrigger);l.placement.selector=`.${c}`,l.items=[s];let v=new pe(l);v.renderSilently(),this.watchForCartItemDeletion(v,c);}watchForCartItemDeletion(e,t){let i=new MutationObserver(o=>{o.forEach(n=>{n.removedNodes.forEach(s=>{s===this.element&&(Y$1.verbose(`${t} has been removed`),e.destroy(),i.disconnect());});});});i.observe(this.element.parentElement,{childList:true,subtree:true});}findCartItemFromHTMLElement(){let e=this.element.innerHTML;return this.cartItems.find(t=>{if(!(e.includes(t.url)||e.includes(t.variant_id))&&(!e.includes(t.product_title)||t.variant_title&&!e.includes(t.variant_title)))return false;let i=t.selling_plan_allocation?.selling_plan?.name;return !(i&&!e.includes(i))})}};var Ii=class extends K{constructor(e){super(e);}isAllOkToRender(){return true}async startRendering(){if(this.widgetElement?.isConnected){this.addToRendered();return}this.createAngularWidget(`cooee-collection-filter`);}};var Ti=class extends pe{constructor(e){super(e);}async update(e){await super.update(e),this.engagementTrigger.progressBarConfig.update(e.progressBarConfig),await this.checkMilestoneTryCatch(),this.updateAngularWidget();}isAllOkToRender(){return !!this.engagementTrigger.progressBarConfig}async startRendering(){if(this.updateAngularWidget()){this.addToRendered();return}this.createAngularWidget(`cooee-progressbar`),await this.checkMilestoneTryCatch();}async checkMilestoneTryCatch(){try{await this.checkMilestone();}catch(e){ke$2(e,`apply-milestones`,{engagementTrigger:this.engagementTrigger});}}async checkMilestone(){let e=await E.getCurrent().getNormalisedCart(true),t=this.engagementTrigger.progressBarConfig,i=[],o=[],n=[],s,c,l=[...t.milestones];for(let v of l){if(v.rewardType!==Fe$3.FREE_AUTO_GIFT)continue;if(v.isUIOnly&&!v.allowATC){Y$1.verbose(`Skipping milestone ${v.label} as it is UI only and does not allow ATC`);continue}let w=v.items[0],I=v.reached,R=e.items.find(C=>(C.vID===w.vID||C.mID===w.mID)&&C.properties._letscooee_campaign===this.engagementTrigger.shortID);I&&(s=v,c=R),R&&i.push(R),!I&&R&&t.removeIneligibleItem?(Y$1.verbose(`Removing free gift ${R.vID} from cart`),n.push(R)):I&&!R&&(Y$1.verbose(`Adding free gift ${w.vID} to cart`),o.push(w));}t.restrictToLatestFreebie&&s&&(c?(i=i.filter(v=>v.vID!==c.vID),o=[]):o=[s.items[0]],n.push(...i)),t.treatFreebieAsSeparateLineItem?await this.handleSeparateFreebieLineItems(o,n):await this.handleCombinedCartUpdate(o,n);}async handleSeparateFreebieLineItems(e,t){if(!t.length&&!e.length)return;let i=new Rt,o=[];if(e.length){let c=this.addFreebiesOperation(e,i);o.push(c);}if(t.length){let c=this.removeFreebiesOperation(t);o.push(c);}if(!o.length)return;let n;try{n=await Promise.all(o),Y$1.log(`All freebie and coupon operations completed`);}catch(c){ke$2(c,`parallel-freebie-operations`,{engagementTrigger:this.engagementTrigger});}let s;e.length&&n?.length&&(s=n[0]),F.get().refreshUI(s,false);}async removeFreebiesOperation(e){let t={updates:{}};return e.forEach(i=>t.updates[i.key??i.vID]=i.quantity-1),wo(t,this.engagementTrigger)}async addFreebiesOperation(e,t){return t.addToCart(e,this.engagementTrigger)}async handleCombinedCartUpdate(e,t){let i=this.engagementTrigger.progressBarConfig,o={},n={};t.length&&t.forEach(I=>n[I.key??I.vID]=0),e.length&&e.forEach(I=>n[I.vID]=1);let s=i.coupons,c=[];if(s?.length){c=s.map(C=>C.couponCode);let I=E.getCurrent().discount_codes?.map(C=>C.code)??[];c.every(C=>I.some(P=>P===C))||(o.discount=c.join(`,`));}if(pe$4.hasKeys(n)&&(o.updates=n),!pe$4.hasKeys(o))return;let l=await wo(o,this.engagementTrigger),v=l?.items,w=[];for(let I of e){let R=v?.find(C=>c?.length?C.id+``===I.vID&&C.discounts?.some(P=>c.includes(P.title)):C.id+``===I.vID);R&&w.push(R);}if(!w.length){F.get().refreshUI(l,false);return}try{await Promise.all(w.map(I=>os(I,{properties:this.engagementTrigger.getPrivateAttributesForLineItem()})));}catch(I){ke$2(I,`add-private-attribute`,{engagementTrigger:this.engagementTrigger,extra:{productAddedByCooee:w}});}finally{F.get().refreshUI(l,false);}}};var sr=class extends pe{constructor(e){super(e);}async update(e){await super.update(e),this.engagementTrigger.content.update(e.content),this.updateAngularWidget();}isAllOkToRender(){return !!this.engagementTrigger.content}async startRendering(){if(this.updateAngularWidget()){this.addToRendered();return}this.createAngularWidget(`cooee-savings-bar`);}};var xi=class extends K{constructor(e){super(e);}isAllOkToRender(){return !!this.engagementTrigger.content?.videoConfig}async startRendering(){if(this.widgetElement?.isConnected){this.addToRendered();return}let e,t=this.engagementTrigger.content.videoConfig;t.template===`FLOATING_POPUP`?e=`cooee-video-popup`:t.template===`STORY`?e=`cooee-video-stories`:e=`cooee-video-playlist`,this.createAngularWidget(e);}};var Pi=class extends K{constructor(e){super(e);}isAllOkToRender(){return true}async startRendering(){if(this.widgetElement?.isConnected){this.addToRendered();return}this.createAngularWidget(`cooee-sticky-atc`);}};var Di=class extends K{constructor(e){super(e);}isAllOkToRender(){return true}async startRendering(){let e=this.getParentElement(`inner-letscooee-${this.engagementTrigger.shortID}`);this.rootContainer.appendChild(e),document.addEventListener(`letscooee:inbound:cta:add-bundle`,this.inboundCTAListener.bind(this),false);}async inboundCTAListener(e){let t=this.engagementTrigger,i=`Engagement(id: ${t.engagementID}, shortID: ${t.shortID})`,o=e.detail;if(!pe$4.hasKeys(o)){Y$1.error(`No detail received for ${i}`);return}Y$1.log(`Detail received for BYOB`,o);let n=o.campaignID??o.campaignId??o.campaign_id;if(n!==t.shortID&&n!==t.engagementID){Y$1.warn(`Current ${i} is not BYOB. Received: ${n}`);return}let s=o.items;if(!s?.length)return;let c=s.map(l=>new et({mID:l.product_id,vID:l.variant_id,quantity:l.quantity||1}));await new Re(this.triggerContext).execute({embeddedItems:c,clickAction:{at:He$2.ADD_BUNDLE,applyDiscount:true}});}};var bo=false,yo=false,Ri=null,_i=null,cs=false,at=new Set,kt=new Set;function ls(){cs||(cs=true,ht$2(()=>{Fn(document.body,{childList:true,subtree:true},500,Un).subscribe(()=>{kt.forEach(r=>r.rerenderIfDeleted()),at.forEach(r=>r.rerenderIfDeleted());});}));}function ar(r){if(r.length>0&&us(),ls(),bo){Y$1.verbose(`Cart widget processing in progress, queuing latest triggers`),Ri=r;return}bo=true;try{za(r);}finally{if(bo=false,Ri){let e=Ri;Ri=null,Y$1.verbose(`Processing queued cart triggers`),ar(e);}}}function cr(r){if(r.length>0&&us(),ls(),yo){Y$1.verbose(`Page widget processing in progress, queuing latest triggers`),_i=r;return}yo=true;try{Ka(r);}finally{if(yo=false,_i){let e=_i;_i=null,Y$1.verbose(`Processing queued page triggers`),cr(e);}}}function ms(){at.forEach(r=>r.rerenderAfterCartOpened());}function za(r){ds(at,r);for(let e of r){Y$1.info(`${e} received as cart embed`);let t=ps(at,e);if(t&&!e.isSubscriptionUpsell()){t.updateAndReRender(e).catch(o=>{ke$2(o,`update-and-re-render`,{engagementTrigger:e});});continue}Y$1.verbose(`${e} is new`);let i;if(e.isProgressBar())i=new Ti(e);else if(e.isSubscriptionUpsell()){Si.renderCartUpsell(e);continue}else e.isSavingsBar()?i=new sr(e):i=new pe(e);at.add(i),i.renderSilently();}}function Ka(r){ds(kt,r);for(let e of r){Y$1.info(`${e} received as page embed`);let t=ps(kt,e);if(t){t.updateAndReRender(e).catch(o=>{ke$2(o,`update-and-re-render`,{engagementTrigger:e});});continue}Y$1.verbose(`${e} is new`);let i;e.isShoppableVideo()?i=new xi(e):e.isBYOB()?i=new Di(e):e.isStickyATC()?i=new Pi(e):e.isSavingsBar()?i=new sr(e):e.isCollectionFilter()?i=new Ii(e):i=new K(e),kt.add(i),i.renderSilently();}}function ps(r,e){for(let t of r)if(t.matches(e))return t}function ds(r,e){let t=new Set(e.map(i=>i.shortID));for(let i of r)t.has(i.engagementTrigger.shortID)||i.destroy();}function us(){import('./widgets-NOmmKSih-DI_FXfa6.js').then(function (n) { return n.ad; }).then(({loadAngularWidgets:r})=>{r();});}var ki=class extends ne$2{static storeName=`app`;static{this.storage=ge$3(this.storeName);}};var Xa=` daum[ /]| deusu/|(?:^|[^g])news(?!sapphire)|(?<! (?:channel/|google/))google(?!(app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!(?:lib))http|(?<![hg]m)score|(?<!cam)scan|24x7|@[a-z][\\w-]+\\.|\\(\\)|\\.com\\b|\\bperl\\b|\\btime/|\\||^[\\w \\.\\-\\(?:\\):%]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[^ ]{50,}$|^\\d+\\b|^\\W|^\\w*search\\b|^\\w+/[\\w\\(\\)]*$|^active|^ad muncher|^amaya|^avsdevicesdk/|^azure|^biglotron|^bot|^bw/|^clamav[ /]|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^email|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^igetter/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d\\s[\\w\\.-]+$|^mozilla/\\d\\.\\d\\s\\(compatible;?(?:\\s\\w+\\/\\d+\\.\\d+)?\\)$|^navermailapp|^netsurf|^offline|^openai/|^owler|^php|^postman|^python|^rank|^read|^reed|^rest|^rss|^snapchat|^space bison|^svn|^swcd |^taringa|^thumbor/|^track|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|agent\\b|analyzer|archive|ask jeeves/teoma|audit|bit\\.ly/|bluecoat drtr|browsex|burpcollaborator|capture|catch|check\\b|checker|chrome-lighthouse|chromeframe|classifier|cloudflare|convertify|crawl|cypress/|dareboost|datanyze|dejaclick|detect|dmbrowser|download|evc-batch/|exaleadcloudview|feed|fetcher|firephp|functionize|grab|headless|httrack|hubspot marketing grader|hydra|ibisbrowser|infrawatch|insight|inspect|iplabel|java(?!;)|library|linkcheck|mail\\.ru/|manager|measure|neustar wpm|node\\b|nutch|offbyone|onetrust|optimize|pageburst|pagespeed|parser|phantomjs|pingdom|powermarks|preview|proxy|ptst[ /]\\d|retriever|rexx;|rigor|rss\\b|scrape|server|sogou|sparkler/|speedcurve|spider|splash|statuscake|supercleaner|synapse|synthetic|tools|torrent|transcoder|url|validator|virtuoso|wappalyzer|webglance|webkit2png|whatcms/|xtate/`,Ya=/bot|crawl|http|lighthouse|scan|search|spider/i,lr;function Ja(){if(lr instanceof RegExp)return lr;try{lr=new RegExp(Xa,`i`);}catch{lr=Ya;}return lr}function gs(r){return !!r&&Ja().test(r)}var Qa=`2.0.4`,Oo=500,fs=`user-agent`,Mt=``,hs=`?`,Ui=`function`,Ke=`undefined`,Ut=`object`,Lo=`string`,J=`browser`,Ae=`cpu`,Se=`device`,he=`engine`,de=`os`,Lt=`result`,u=`name`,m=`type`,d=`vendor`,g=`version`,Q=`architecture`,Cr=`major`,p=`model`,wr=`console`,S=`mobile`,O=`tablet`,B=`smarttv`,ye=`wearable`,Ai=`xr`,vr=`embedded`,mr=`inapp`,Uo=`brands`,lt=`formFactors`,Fo=`fullVersionList`,Nt=`platform`,Bo=`platformVersion`,Vi=`bitness`,Xe=`sec-ch-ua`,Za=Xe+`-full-version-list`,ec=Xe+`-arch`,tc=Xe+`-`+Vi,rc=Xe+`-form-factors`,ic=Xe+`-`+S,oc=Xe+`-`+p,_s=Xe+`-`+Nt,nc=_s+`-version`,ks=[Uo,Fo,S,p,Nt,Bo,Q,lt,Vi],Oi=`Amazon`,At=`Apple`,ws=`ASUS`,vs=`BlackBerry`,ct=`Google`,Cs=`Huawei`,Eo=`Lenovo`,bs=`Honor`,Li=`LG`,So=`Microsoft`,Io=`Motorola`,To=`Nvidia`,ys=`OnePlus`,xo=`OPPO`,pr=`Samsung`,Es=`Sharp`,dr=`Sony`,Po=`Xiaomi`,Do=`Zebra`,Ss=`Chrome`,Is=`Chromium`,je=`Chromecast`,Mi=`Edge`,ur=`Firefox`,gr=`Opera`,Ro=`Facebook`,Ts=`Sogou`,Ot=`Mobile `,fr=` Browser`,No=`Windows`,Z=typeof window!==Ke&&window.navigator?window.navigator:void 0,ze=Z&&Z.userAgentData?Z.userAgentData:void 0,ac=function(r,e){var t={},i=e;if(!Fi(e)){i={};for(var o in e)for(var n in e[o])i[n]=e[o][n].concat(i[n]?i[n]:[]);}for(var s in r)t[s]=i[s]&&i[s].length%2===0?i[s].concat(r[s]):r[s];return t},Wi=function(r){for(var e={},t=0;t<r.length;t++)e[r[t].toUpperCase()]=r[t];return e},Mo=function(r,e){if(typeof r===Ut&&r.length>0){for(var t in r)if(Oe(e)==Oe(r[t]))return true;return false}return Bt(r)?Oe(e)==Oe(r):false},Fi=function(r,e){for(var t in r)return /^(browser|cpu|device|engine|os)$/.test(t)||(e?Fi(r[t]):false)},Bt=function(r){return typeof r===Lo},_o=function(r){if(r){for(var e=[],t=Ft(/\\?\"/g,r).split(`,`),i=0;i<t.length;i++)if(t[i].indexOf(`;`)>-1){var o=Bi(t[i]).split(`;v=`);e[i]={brand:o[0],version:o[1]};}else e[i]=Bi(t[i]);return e}},Oe=function(r){return Bt(r)?r.toLowerCase():r},ko=function(r){return Bt(r)?Ft(/[^\d\.]/g,r).split(`.`)[0]:void 0},Le=function(r){for(var e in r){var t=r[e];typeof t==Ut&&t.length==2?this[t[0]]=t[1]:this[t]=void 0;}return this},Ft=function(r,e){return Bt(e)?e.replace(r,Mt):e},hr=function(r){return Ft(/\\?\"/g,r)},Bi=function(r,e){if(Bt(r))return r=Ft(/^\s\s*/,r),typeof e===Ke?r:r.substring(0,Oo)},Ao=function(r,e){if(!(!r||!e))for(var t=0,i,o,n,s,c,l;t<e.length&&!c;){var v=e[t],w=e[t+1];for(i=o=0;i<v.length&&!c&&v[i];)if(c=v[i++].exec(r),c)for(n=0;n<w.length;n++)l=c[++o],s=w[n],typeof s===Ut&&s.length>0?s.length===2?typeof s[1]==Ui?this[s[0]]=s[1].call(this,l):this[s[0]]=s[1]:s.length>=3&&(typeof s[1]===Ui&&!(s[1].exec&&s[1].test)?s.length>3?this[s[0]]=l?s[1].apply(this,s.slice(2)):void 0:this[s[0]]=l?s[1].call(this,l,s[2]):void 0:s.length==3?this[s[0]]=l?l.replace(s[1],s[2]):void 0:s.length==4?this[s[0]]=l?s[3].call(this,l.replace(s[1],s[2])):void 0:s.length>4&&(this[s[0]]=l?s[3].apply(this,[l.replace(s[1],s[2])].concat(s.slice(4))):void 0)):this[s]=l||void 0;t+=2;}},Ee=function(r,e){for(var t in e)if(typeof e[t]===Ut&&e[t].length>0){for(var i=0;i<e[t].length;i++)if(Mo(e[t][i],r))return t===hs?void 0:t}else if(Mo(e[t],r))return t===hs?void 0:t;return e.hasOwnProperty(`*`)?e[`*`]:r},xs={ME:`4.90`,"NT 3.51":`3.51`,"NT 4.0":`4.0`,2e3:[`5.0`,`5.01`],XP:[`5.1`,`5.2`],Vista:`6.0`,7:`6.1`,8:`6.2`,"8.1":`6.3`,10:[`6.4`,`10.0`],NT:``},Ps={embedded:`Automotive`,mobile:`Mobile`,tablet:[`Tablet`,`EInk`],smarttv:`TV`,wearable:`Watch`,xr:[`VR`,`XR`],"?":[`Desktop`,`Unknown`],"*":void 0},cc={Chrome:`Google Chrome`,Edge:`Microsoft Edge`,"Edge WebView2":`Microsoft Edge WebView2`,"Chrome WebView":`Android WebView`,"Chrome Headless":`HeadlessChrome`,"Huawei Browser":`HuaweiBrowser`,"MIUI Browser":`Miui Browser`,"Opera Mobi":`OperaMobile`,Yandex:`YaBrowser`},Ds={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[g,[u,Ot+`Chrome`]],[/webview.+edge\/([\w\.]+)/i],[g,[u,Mi+` WebView`]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[g,[u,`Edge`]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[u,g],[/opios[\/ ]+([\w\.]+)/i],[g,[u,gr+` Mini`]],[/\bop(?:rg)?x\/([\w\.]+)/i],[g,[u,gr+` GX`]],[/\bopr\/([\w\.]+)/i],[g,[u,gr]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[g,[u,`Baidu`]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[g,[u,`Maxthon`]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser)\/([-\w\.]+)/i,/(heytap|ovi|115|surf)browser\/([\d\.]+)/i,/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i],[u,g],[/quark(?:pc)?\/([-\w\.]+)/i],[g,[u,`Quark`]],[/\bddg\/([\w\.]+)/i],[g,[u,`DuckDuckGo`]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[g,[u,`UCBrowser`]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[g,[u,`WeChat`]],[/konqueror\/([\w\.]+)/i],[g,[u,`Konqueror`]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[g,[u,`IE`]],[/ya(?:search)?browser\/([\w\.]+)/i],[g,[u,`Yandex`]],[/slbrowser\/([\w\.]+)/i],[g,[u,`Smart `+Eo+fr]],[/(avast|avg)\/([\w\.]+)/i],[[u,/(.+)/,`$1 Secure`+fr],g],[/\bfocus\/([\w\.]+)/i],[g,[u,ur+` Focus`]],[/\bopt\/([\w\.]+)/i],[g,[u,gr+` Touch`]],[/coc_coc\w+\/([\w\.]+)/i],[g,[u,`Coc Coc`]],[/dolfin\/([\w\.]+)/i],[g,[u,`Dolphin`]],[/coast\/([\w\.]+)/i],[g,[u,gr+` Coast`]],[/miuibrowser\/([\w\.]+)/i],[g,[u,`MIUI`+fr]],[/fxios\/([\w\.-]+)/i],[g,[u,Ot+ur]],[/\bqihoobrowser\/?([\w\.]*)/i],[g,[u,`360`]],[/\b(qq)\/([\w\.]+)/i],[[u,/(.+)/,`$1Browser`],g],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[u,/(.+)/,`$1`+fr],g],[/samsungbrowser\/([\w\.]+)/i],[g,[u,pr+` Internet`]],[/metasr[\/ ]?([\d\.]+)/i],[g,[u,Ts+` Explorer`]],[/(sogou)mo\w+\/([\d\.]+)/i],[[u,Ts+` Mobile`],g],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[u,g],[/(lbbrowser|rekonq)/i],[u],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[g,u],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[u,Ro],g,[m,mr]],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i],[u,g,[m,mr]],[/\bgsa\/([\w\.]+) .*safari\//i],[g,[u,`GSA`],[m,mr]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[g,[u,`TikTok`],[m,mr]],[/\[(linkedin)app\]/i],[u,[m,mr]],[/(chromium)[\/ ]([-\w\.]+)/i],[u,g],[/headlesschrome(?:\/([\w\.]+)| )/i],[g,[u,Ss+` Headless`]],[/wv\).+chrome\/([\w\.]+).+edgw\//i],[g,[u,Mi+` WebView2`]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[u,Ss+` WebView`],g],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[g,[u,`Android`+fr]],[/chrome\/([\w\.]+) mobile/i],[g,[u,Ot+`Chrome`]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[u,g],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[g,[u,Ot+`Safari`]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[u,Ot+`Safari`]],[/version\/([\w\.\,]+) .*(safari)/i],[g,u],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[u,[g,`1`]],[/(webkit|khtml)\/([\w\.]+)/i],[u,g],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[u,Ot+ur],g],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[u,`Netscape`],g],[/(wolvic|librewolf)\/([\w\.]+)/i],[u,g],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[g,[u,ur+` Reality`]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[u,[g,/_/g,`.`]],[/(cobalt)\/([\w\.]+)/i],[u,[g,/[^\d\.]+./,Mt]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[Q,`amd64`]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[Q,`ia32`]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[Q,`arm64`]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[Q,`armhf`]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[Q,`arm`]],[/((ppc|powerpc)(64)?)( mac|;|\))/i],[[Q,/ower/,Mt,Oe]],[/ sun4\w[;\)]/i],[[Q,`sparc`]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i],[[Q,Oe]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[p,[d,pr],[m,O]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,/sec-(sgh\w+)/i],[p,[d,pr],[m,S]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[p,[d,At],[m,S]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[p,[d,At],[m,O]],[/(macintosh);/i],[p,[d,At]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[p,[d,Es],[m,S]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[p,[d,bs],[m,O]],[/honor([-\w ]+)[;\)]/i],[p,[d,bs],[m,S]],[/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i],[p,[d,Cs],[m,O]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[p,[d,Cs],[m,S]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[p,/_/g,` `],[d,Po],[m,O]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i,/ ([\w ]+) miui\/v?\d/i],[[p,/_/g,` `],[d,Po],[m,S]],[/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-k]\w[1m]10)\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[p,[d,ys],[m,S]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[p,[d,xo],[m,S]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[p,[d,Ee,{OnePlus:[`203`,`304`,`403`,`404`,`413`,`415`],"*":xo}],[m,O]],[/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i],[p,[d,`BLU`],[m,S]],[/; vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[p,[d,`Vivo`],[m,S]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[p,[d,`Realme`],[m,S]],[/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i],[p,[d,Eo],[m,O]],[/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i],[p,[d,Eo],[m,S]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,/((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i],[p,[d,Io],[m,S]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[p,[d,Io],[m,O]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[p,[d,Li],[m,O]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,/\blg-?([\d\w]+) bui/i],[p,[d,Li],[m,S]],[/(nokia) (t[12][01])/i],[d,p,[m,O]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*))/i],[[p,/_/g,` `],[m,S],[d,`Nokia`]],[/(pixel (c|tablet))\b/i],[p,[d,ct],[m,O]],[/droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i],[p,[d,ct],[m,S]],[/(google) (pixelbook( go)?)/i],[d,p],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[p,[d,dr],[m,S]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[p,`Xperia Tablet`],[d,dr],[m,O]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[p,[d,Oi],[m,O]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[p,/(.+)/g,`Fire Phone $1`],[d,Oi],[m,S]],[/(playbook);[-\w\),; ]+(rim)/i],[p,d,[m,O]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[p,[d,vs],[m,S]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[p,[d,ws],[m,O]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[p,[d,ws],[m,S]],[/(nexus 9)/i],[p,[d,`HTC`],[m,O]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[d,[p,/_/g,` `],[m,S]],[/tcl (xess p17aa)/i,/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i],[p,[d,`TCL`],[m,O]],[/droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i],[p,[d,`TCL`],[m,S]],[/(itel) ((\w+))/i],[[d,Oe],p,[m,Ee,{tablet:[`p10001l`,`w7001`],"*":`mobile`}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[p,[d,`Acer`],[m,O]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[p,[d,`Meizu`],[m,S]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[p,[d,`Ulefone`],[m,S]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[p,[d,`Energizer`],[m,S]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[p,[d,`Cat`],[m,S]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[p,[d,`Smartfren`],[m,S]],[/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i],[p,[d,`Nothing`],[m,S]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[p,[d,`Archos`],[m,O]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[p,[d,`Archos`],[m,S]],[/; (n159v)/i],[p,[d,`HMD`],[m,S]],[/(imo) (tab \w+)/i,/(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i],[d,p,[m,O]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (blu|hmd|imo|infinix|lava|oneplus|tcl)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(oppo) ?([\w ]+) bui/i],[d,p,[m,S]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[d,p,[m,O]],[/(surface duo)/i],[p,[d,So],[m,O]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[p,[d,`Fairphone`],[m,S]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[p,[d,To],[m,O]],[/(sprint) (\w+)/i],[d,p,[m,S]],[/(kin\.[onetw]{3})/i],[[p,/\./g,` `],[d,So],[m,S]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[p,[d,Do],[m,O]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[p,[d,Do],[m,S]],[/smart-tv.+(samsung)/i],[d,[m,B]],[/hbbtv.+maple;(\d+)/i],[[p,/^/,`SmartTV`],[d,pr],[m,B]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[d,p,[m,B]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[d,Li],[m,B]],[/(apple) ?tv/i],[d,[p,At+` TV`],[m,B]],[/crkey.*devicetype\/chromecast/i],[[p,je+` Third Generation`],[d,ct],[m,B]],[/crkey.*devicetype\/([^/]*)/i],[[p,/^/,`Chromecast `],[d,ct],[m,B]],[/fuchsia.*crkey/i],[[p,je+` Nest Hub`],[d,ct],[m,B]],[/crkey/i],[[p,je],[d,ct],[m,B]],[/(portaltv)/i],[p,[d,Ro],[m,B]],[/droid.+aft(\w+)( bui|\))/i],[p,[d,Oi],[m,B]],[/(shield \w+ tv)/i],[p,[d,To],[m,B]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[p,[d,Es],[m,B]],[/(bravia[\w ]+)( bui|\))/i],[p,[d,dr],[m,B]],[/(mi(tv|box)-?\w+) bui/i],[p,[d,Po],[m,B]],[/Hbbtv.*(technisat) (.*);/i],[d,p,[m,B]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[d,/.+\/(\w+)/,`$1`,Ee,{LG:`lge`}],[p,Bi],[m,B]],[/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i],[p,[m,B]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:|large screen[\w ]+safari)\b/i],[[m,B]],[/(playstation \w+)/i],[p,[d,dr],[m,wr]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[p,[d,So],[m,wr]],[/(ouya)/i,/(nintendo) (\w+)/i,/(retroid) (pocket ([^\)]+))/i],[d,p,[m,wr]],[/droid.+; (shield)( bui|\))/i],[p,[d,To],[m,wr]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[p,[d,pr],[m,ye]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[d,p,[m,ye]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[p,[d,xo],[m,ye]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[p,[d,At],[m,ye]],[/(opwwe\d{3})/i],[p,[d,ys],[m,ye]],[/(moto 360)/i],[p,[d,Io],[m,ye]],[/(smartwatch 3)/i],[p,[d,dr],[m,ye]],[/(g watch r)/i],[p,[d,Li],[m,ye]],[/droid.+; (wt63?0{2,3})\)/i],[p,[d,Do],[m,ye]],[/droid.+; (glass) \d/i],[p,[d,ct],[m,Ai]],[/(pico) (4|neo3(?: link|pro)?)/i],[d,p,[m,Ai]],[/(quest( \d| pro)?s?).+vr/i],[p,[d,Ro],[m,Ai]],[/mobile vr; rv.+firefox/i],[[m,Ai]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[d,[m,vr]],[/(aeobc)\b/i],[p,[d,Oi],[m,vr]],[/(homepod).+mac os/i],[p,[d,At],[m,vr]],[/windows iot/i],[[m,vr]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+?(mobile|vr|\d) safari/i],[p,[m,Ee,{mobile:`Mobile`,xr:`VR`,"*":O}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[m,O]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[m,S]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[p,[d,`Generic`]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[g,[u,Mi+`HTML`]],[/(arkweb)\/([\w\.]+)/i],[u,g],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[g,[u,`Blink`]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[u,g],[/ladybird\//i],[[u,`LibWeb`]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[g,u]],os:[[/(windows nt) (6\.[23]); arm/i],[[u,/N/,`R`],[g,Ee,xs]],[/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i],[u,g],[/windows nt ?([\d\.\)]*)(?!.+xbox)/i,/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i],[[g,/(;|\))/g,``,Ee,xs],[u,No]],[/(windows ce)\/?([\d\.]*)/i],[u,g],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[g,/_/g,`.`],[u,`iOS`]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i],[[u,`macOS`],[g,/_/g,`.`]],[/android ([\d\.]+).*crkey/i],[g,[u,je+` Android`]],[/fuchsia.*crkey\/([\d\.]+)/i],[g,[u,je+` Fuchsia`]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[g,[u,je+` SmartSpeaker`]],[/linux.*crkey\/([\d\.]+)/i],[g,[u,je+` Linux`]],[/crkey\/([\d\.]+)/i],[g,[u,je]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[g,u],[/(ubuntu) ([\w\.]+) like android/i],[[u,/(.+)/,`$1 Touch`],g],[/(harmonyos)[\/ ]?([\d\.]*)/i,/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i],[u,g],[/\(bb(10);/i],[g,[u,vs]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[g,[u,`Symbian`]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[g,[u,ur+` OS`]],[/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i],[g,[u,`webOS`]],[/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i],[[g,Ee,{25:`120`,24:`108`,23:`94`,22:`87`,6:`79`,5:`68`,4:`53`,3:`38`,2:`538`,1:`537`,"*":`TV`}],[u,`webOS`]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[g,[u,`watchOS`]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[u,`Chrome OS`],g],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) (\w+)/i,/(xbox); +xbox ([^\);]+)/i,/(pico) .+os([\w\.]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/linux.+(mint)[\/\(\) ]?([\w\.]*)/i,/(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\d\.]*)/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/\b(aix)[; ]([1-9\.]{0,4})/i,/(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) ?(r\d)?/i],[u,g],[/(sunos) ?([\d\.]*)/i],[[u,`Solaris`],g],[/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[u,g]]},Ni=(function(){var r={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}};return Le.call(r.init,[[J,[u,g,Cr,m]],[Ae,[Q]],[Se,[m,p,d]],[he,[u,g]],[de,[u,g]]]),Le.call(r.isIgnore,[[J,[g,Cr]],[he,[g]],[de,[g]]]),Le.call(r.isIgnoreRgx,[[J,/ ?browser$/i],[de,/ ?os$/i]]),Le.call(r.toString,[[J,[u,g]],[Ae,[Q]],[Se,[d,p]],[he,[u,g]],[de,[u,g]]]),r})(),lc=function(r,e){var t=Ni.init[e],i=Ni.isIgnore[e]||0,o=Ni.isIgnoreRgx[e]||0,n=Ni.toString[e]||0;function s(){Le.call(this,t);}return s.prototype.getItem=function(){return r},s.prototype.withClientHints=function(){return ze?ze.getHighEntropyValues(ks).then(function(c){return r.setCH(new As(c,false)).parseCH().get()}):r.parseCH().get()},s.prototype.withFeatureCheck=function(){return r.detectFeature().get()},e!=Lt&&(s.prototype.is=function(c){var l=false;for(var v in this)if(this.hasOwnProperty(v)&&!Mo(i,v)&&Oe(o?Ft(o,this[v]):this[v])==Oe(o?Ft(o,c):c)){if(l=true,c!=Ke)break}else if(c==Ke&&l){l=!l;break}return l},s.prototype.toString=function(){var c=Mt;for(var l in n)typeof this[n[l]]!==Ke&&(c+=(c?` `:Mt)+this[n[l]]);return c||Ke}),ze||(s.prototype.then=function(c){var l=this,v=function(){for(var I in l)l.hasOwnProperty(I)&&(this[I]=l[I]);};v.prototype={is:s.prototype.is,toString:s.prototype.toString};var w=new v;return c(w),w}),new s};function As(r,e){if(r=r||{},Le.call(this,ks),e)Le.call(this,[[Uo,_o(r[Xe])],[Fo,_o(r[Za])],[S,/\?1/.test(r[ic])],[p,hr(r[oc])],[Nt,hr(r[_s])],[Bo,hr(r[nc])],[Q,hr(r[ec])],[lt,_o(r[rc])],[Vi,hr(r[tc])]]);else for(var t in r)this.hasOwnProperty(t)&&typeof r[t]!==Ke&&(this[t]=r[t]);}function Rs(r,e,t,i){return this.get=function(o){return o?this.data.hasOwnProperty(o)?this.data[o]:void 0:this.data},this.set=function(o,n){return this.data[o]=n,this},this.setCH=function(o){return this.uaCH=o,this},this.detectFeature=function(){if(Z&&Z.userAgent==this.ua)switch(this.itemType){case J:Z.brave&&typeof Z.brave.isBrave==Ui&&this.set(u,`Brave`);break;case Se:!this.get(m)&&ze&&ze[S]&&this.set(m,S),this.get(p)==`Macintosh`&&Z&&typeof Z.standalone!==Ke&&Z.maxTouchPoints&&Z.maxTouchPoints>2&&this.set(p,`iPad`).set(m,O);break;case de:!this.get(u)&&ze&&ze[Nt]&&this.set(u,ze[Nt]);break;case Lt:var o=this.data,n=function(s){return o[s].getItem().detectFeature().get()};this.set(J,n(J)).set(Ae,n(Ae)).set(Se,n(Se)).set(he,n(he)).set(de,n(de));}return this},this.parseUA=function(){return this.itemType!=Lt&&Ao.call(this.data,this.ua,this.rgxMap),this.itemType==J&&this.set(Cr,ko(this.get(g))),this},this.parseCH=function(){var o=this.uaCH,n=this.rgxMap;switch(this.itemType){case J:case he:var s=o[Fo]||o[Uo],c;if(s)for(var l in s){var v=s[l].brand||s[l],w=s[l].version;this.itemType==J&&!/not.a.brand/i.test(v)&&(!c||/Chrom/.test(c)&&v!=Is||c==Mi&&/WebView2/.test(v))&&(v=Ee(v,cc),c=this.get(u),c&&!/Chrom/.test(c)&&/Chrom/.test(v)||this.set(u,v).set(g,w).set(Cr,ko(w)),c=v),this.itemType==he&&v==Is&&this.set(g,w);}break;case Ae:var I=o[Q];I&&(I&&o[Vi]==`64`&&(I+=`64`),Ao.call(this.data,I+`;`,n));break;case Se:if(o[S]&&this.set(m,S),o[p]&&(this.set(p,o[p]),!this.get(m)||!this.get(d))){var R={};Ao.call(R,`droid 9; `+o[p]+`)`,n),!this.get(m)&&R.type&&this.set(m,R.type),!this.get(d)&&R.vendor&&this.set(d,R.vendor);}if(o[lt]){var C;if(typeof o[lt]!=`string`)for(var P=0;!C&&P<o[lt].length;)C=Ee(o[lt][P++],Ps);else C=Ee(o[lt],Ps);this.set(m,C);}break;case de:var _=o[Nt];if(_){var y=o[Bo];_==No&&(y=parseInt(ko(y),10)>=13?`11`:`10`),this.set(u,_).set(g,y);}this.get(u)==No&&o[p]==`Xbox`&&this.set(u,`Xbox`).set(g,void 0);break;case Lt:var z=this.data,ee=function(b){return z[b].getItem().setCH(o).parseCH().get()};this.set(J,ee(J)).set(Ae,ee(Ae)).set(Se,ee(Se)).set(he,ee(he)).set(de,ee(de));}return this},Le.call(this,[[`itemType`,r],[`ua`,e],[`uaCH`,i],[`rgxMap`,t],[`data`,lc(this,r)]]),this}function we(r,e,t){if(typeof r===Ut?(Fi(r,true)?(typeof e===Ut&&(t=e),e=r):(t=r,e=void 0),r=void 0):typeof r===Lo&&!Fi(e,true)&&(t=e,e=void 0),t&&typeof t.append===Ui){var i={};t.forEach(function(l,v){i[v]=l;}),t=i;}if(!(this instanceof we))return new we(r,e,t).getResult();var o=typeof r===Lo?r:t&&t[fs]?t[fs]:Z&&Z.userAgent?Z.userAgent:Mt,n=new As(t,true),s=e?ac(Ds,e):Ds,c=function(l){return l==Lt?function(){return new Rs(l,o,s,n).set(`ua`,o).set(J,this.getBrowser()).set(Ae,this.getCPU()).set(Se,this.getDevice()).set(he,this.getEngine()).set(de,this.getOS()).get()}:function(){return new Rs(l,o,s[l],n).parseUA().get()}};return Le.call(this,[[`getBrowser`,c(J)],[`getCPU`,c(Ae)],[`getDevice`,c(Se)],[`getEngine`,c(he)],[`getOS`,c(de)],[`getResult`,c(Lt)],[`getUA`,function(){return o}],[`setUA`,function(l){return Bt(l)&&(o=l.length>Oo?Bi(l,Oo):l),this}]]).setUA(o),this}we.VERSION=Qa;we.BROWSER=Wi([u,g,Cr,m]);we.CPU=Wi([Q]);we.DEVICE=Wi([p,d,m,wr,S,B,O,ye,vr]);we.ENGINE=we.OS=Wi([u,g]);var Hi=class{modifications=[];constructor(){Ce$1(`.lc-hide {display: none !important;height: 0 !important;}
76
76
  .lc-display-block {display: block !important;}
77
- .lc-display-inline {display: inline !important;}`,document.body);}execute(e){for(let t of e){if(!t.experimentConfig)continue;this.executeExperiment(t)&&this.trackExperimentRan(t);}if(document.querySelector(`#lc-hide-body`)?.remove(),!document.body){Zn$1(`No body element found`,`error`);return}this.setupMutationObserver();}executeExperiment(e){let t=e.experimentConfig?.modifications;if(!t?.length)return Y$1.log(`Nothing to experiment`,e.toString()),true;let i=false;for(let o of t){if(!o.cssSelector){Y$1.verbose(`No CSS Selector available`,e?.toString());continue}this.modifications.push(o);let n=Array.from(document.querySelectorAll(o.cssSelector));n?.length&&(this.executeSingleModification(o,n),i=true);}return i}executeSingleModification(e,t){if(t?.length)for(let i of t)Object.assign(i.style,e.style),e.display===`HIDE`?i.classList.add(`lc-hide`):e.display===`BLOCK`?i.classList.add(`lc-display-block`):e.display===`INLINE`&&i.classList.add(`lc-display-inline`),e.type===`TEXT`&&e.text?i.innerHTML=e.text:e.type===`IMAGE`&&this.updateImage(e,i),e.moveTo?.selector&&this.changePlacement(e,i).catch(console.error);}async changePlacement(e,t){let i=await Ln$1(e.moveTo.selector);if(i)switch(e.moveTo.position){case Ve$3.BEFORE1:t.nextElementSibling!==i&&i.parentElement?.insertBefore(t,i);break;case Ve$3.INSIDE_FIRST1:i.firstChild!==t&&i.insertBefore(t,i.firstChild);break;case Ve$3.INSIDE_LAST1:i.lastChild!==t&&i.appendChild(t);break;case Ve$3.AFTER1:default:t.previousElementSibling!==i&&i.parentElement?.insertBefore(t,i.nextSibling);}}trackExperimentRan(e){if(e.id===`preview`){Y$1.warn(`Skipping experiment attribution as its preview`,e.toString());return}Os({name:`CE Experiment Start`,experiment:new mt(e)}).catch(t=>{Y$1.error(`Fail to track experiment`,t);});}setupMutationObserver(){new MutationObserver(t=>{t.forEach(i=>{i.addedNodes.forEach(o=>{o instanceof HTMLElement&&this.modifications.forEach(n=>{if(o.matches&&o.matches(n.cssSelector))Y$1.verbose(`1. Re-applying experiment`,n.toString()),this.executeSingleModification(n,[o]);else if(o.querySelectorAll){let s=Array.from(o.querySelectorAll(n.cssSelector));if(!s.length)return;Y$1.verbose(`2. Re-applying experiment`,n.toString()),this.executeSingleModification(n,s);}});});});}).observe(document.body,{childList:true,subtree:true});}updateImage(e,t){let i=e.image?.lg?.src,o=e.image?.sm?.src;!i&&!o||(t instanceof HTMLPictureElement?this.updatePictureElement({desktop:i,mobile:o},t):this.updateImageElement({desktop:i,mobile:o},t));}updateImageElement(e,t){M$1()&&e.mobile?(t.setAttribute(`src`,e.mobile),t.removeAttribute(`srcset`)):e.desktop&&(t.setAttribute(`src`,e.desktop),t.removeAttribute(`srcset`));}updatePictureElement(e,t){if(t.innerHTML=``,e.mobile){let o=document.createElement(`source`);o.srcset=e.mobile,o.media=`(max-width: 767px)`,t.append(o);}if(e.desktop){let o=document.createElement(`source`);o.srcset=e.desktop,o.media=`(min-width: 768px)`,t.append(o);}let i=document.createElement(`img`);i.src=e.desktop??e.mobile??``,t.append(i);}};async function Os(r$10){let e=await $e();await me(`/v1/event/experiment`,r(r({},r$10),e));}function $i(){mc().catch(r=>ke$2(r,`fetch-experiments`));}async function mc(){Be$3().activeExperiments&&(await le$1(le),await pc());}async function pc(){Y$1.info(`Fetch experiments after ⏰`,en()+` of SDK load`);me(`/v1/engagement/experiments`,r({},await $e())).then(async t=>{Y$1.info(`Experiments fetched ${Jr$3(t.timeTakenMs)}`);let i=t.data.experiments.map(o=>new q(o));new Hi().execute(i);}).catch(t=>{Y$1.error(`Error sending experiment getter`,t);});}function Ls(){let r=he$3.get();!r.gaMeasurementID||!r.gaEnabled||uc();}async function dc(){let r=await fe$4.get(`gacid`),e=await gc();if(r!==e)return await fe$4.set(`gacid`,e),e}async function uc(){let r=await dc();r&&Jn({gaClientID:r});}async function gc(){let e=he$3.get().gaMeasurementID;if(!(!e||!window.gtag))return new Promise(t=>{window.gtag(`get`,e,`client_id`,i=>{t(i);});})}async function Ns(r){Y$1.verbose(`Received app configuration`,r),r.currencyCount=r.currencies?.length;let e=D.globalRef.config.update(r);Ls(),F.initialize(),e.website&&(Ui$1(e.website.commonJS),Ce$1(e.website.commonCSS)),window.CooeeSDK.cartDrawerToggle$.pipe(Fe$1(10)).subscribe(async({open:t})=>{Y$1.info(`Cart drawer is now`,t?`open`:`closed`),t&&(ms(),await fc());});}function Ms(r){D.globalRef.apiURLs=r;}async function fc(){let r=await E.getCurrent().getNormalisedCart(),e={value:r.amount,currency:r.currency};j(new Ir$1(`View Cart`,{items:r.items,amount:e,drawer:true}));}var qi=class{runtimeData=Be$3();meddle(){let e=D.globalRef;e.profile=e.profile??[],e.events=e.events??[],e.page=e.page??[],this.meddlePage(),this.meddleEvents(),this.meddleProfile(),this.exposeMethods();}exposeMethods(){let e=D.globalRef;e.loadWidgets=e.loadCartWidgets=e.loadPageWidgets=()=>{Vt();},e.loadExperiments=()=>{$i();},e.testCartUpdate=this.testCartUpdate.bind(this),e.previewWidget=D.previewWidget.bind(D),e.previewPopup=D.previewPopup.bind(D),e.executeCTA=(t,i)=>{new Re(t).execute(i);},e.sendEvent=t=>{j(t);};}overwritePush(e,t){Pn(e,`push`,t);}meddleEvents(){this.overwritePush(D.globalRef.events,(...e)=>{this.processEvent(e[0]);}),D.globalRef.events.forEach(this.processEvent.bind(this));}meddleProfile(){this.overwritePush(D.globalRef.profile,(...e)=>{this.processProfile(e[0]);}),D.globalRef.profile.forEach(this.processProfile.bind(this));}processEvent(e){e&&(zr$3.includes(e[0])?D.sendEvent(e[0],e[1],r({occurred:this.runtimeData.jsLoadTime},e[2])):D.sendEvent(e[0],e[1],e[2]));}processProfile(e){e&&D.updateProfile(e);}meddlePage(){this.overwritePush(D.globalRef.page,(...e)=>{this.processPage(e[0]);}),D.globalRef.page.forEach(this.processPage.bind(this));}processPage(e){e.appID&&D.authenticate(e),e.currentItem&&hc(e.currentItem),e.currency&&(Be$3().currencyCode=e.currency),e.shopCurrency&&(this.runtimeData.shopCurrencyCode=e.shopCurrency),e.moneyFormat&&(this.runtimeData.moneyFormat=e.moneyFormat),e.jsLoad&&(this.runtimeData.jsLoadTime=e.jsLoad),e.locale&&(this.runtimeData.locale=e.locale),e.pageName&&D.setPageName(e.pageName),e.activeExperiment&&(this.runtimeData.activeExperiments=e.activeExperiment),e.cart&&E.getCurrent().update(e.cart),e.configurations&&Ns(e.configurations),e.apiURLs&&Ms(e.apiURLs),e.customContext&&(this.runtimeData.customContext=r(r({},this.runtimeData.customContext),e.customContext));}async testCartUpdate(){if(Be$3().pageName!==`product`){window.alert(`This feature is only available on a product page`);return}let e=ss();if(e||(e=Be$3().currentItem?.vID),!e){window.alert(`Could not find a variant to test. Please try a different product page`);return}let t=new q({id:`preview`,shortID:`1`,redirectBehaviour:Me$1.CART_DRAWER});await new Re(new Fe(new Date,t)).execute({clickAction:{at:He$2.ADD_TO_CART},embeddedItem:new et({vID:e})});}};function hc(r){let e=Be$3();if(e.currentItem&&e.currentItem.vID!==r.vID){let t=new CustomEvent(`letscooee:variant-change`,{detail:{variantID:r.vID,productID:r.mID}});document.dispatchEvent(t);}e.currentItem=new et(r);}var Wt=class{static SESSION_STORAGE=window.sessionStorage;static SESSION_STORAGE_KEY_PREFIX=`cooee`.concat(`-`);static getString(e,t){return this.getItem(e)||t}static setString(e,t){this.setItem(e,t);}static remove(e){this.removeItem(e);}static getItem(e){return this.SESSION_STORAGE.getItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e))}static setItem(e,t){this.SESSION_STORAGE.setItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e),t);}static removeItem(e){this.SESSION_STORAGE.removeItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e));}};var wc=1e3,vc=10,Vo=0,Wo=new Date;function Ho(r){Wt.remove(`sleid`),Wo=r??new Date;}function Us(){if(window.scrollY){let r=Vs();Fs(r)&&Bs(r);}ht$2(()=>{bc();});}function bc(){Tr(window,`scroll`).pipe(Fe$1(wc),q$1(()=>{let r=Vs();if(r>100){Y$1.warn(`Received scroll percent is more than 100`,r);return}if(Fs(r))return r})).subscribe(r=>{Bs(r);});}function Fs(r){return Math.abs(Vo-r)>=vc||Vo!==r&&r===100}function Bs(r){if(r==null)return;let e={percent:r,timeMS:new Date().getTime()-Wo.getTime()};Vo=r;let i=new Ir$1(`CE Scroll`,e,null,Wt.getString(`sleid`,``));j(i),Wt.setString(`sleid`,i.id.toHexString()),Wo=new Date(i.occurred);}function Vs(){let r=window.document.body.scrollHeight,e=window.innerHeight;return Math.ceil((window.scrollY+e)/r*100)}function Ws(){document.onvisibilitychange=()=>{document.visibilityState===`visible`?Cc():document.visibilityState===`hidden`&&yc();};}async function Cc(){}async function yc(){let r=await Ec();if(r===0){Y$1.info(`Not sending duration as user was inactive on website`);return}$s(r);}async function Ec(){let r=Be$3();return r.inInactive?0:(r.inInactive=true,r.lastEnterInactive=new Date,Math.max(r.lastEnterInactive.getTime()-r.lastEnterActive.getTime(),0))}function Hs(){let r=Be$3();return r.inInactive?(r.inInactive=false,r.lastEnterActive=new Date,Math.max((r.lastEnterActive.getTime()-r.lastEnterInactive.getTime())/1e3,0)):0}function qs(){Sc();}function Sc(){let r=window.fetch;try{window.fetch=async function(e,t){try{await Ic(e,t);}catch(i){ke$2(i,`modify-graphql-request`,{extra:{body:JSON.stringify(t?.body)}});}return r(e,t)};}catch(e){console.warn(`Fail to override fetch.`,`Cooee won't be able to track "Buy Now Clicked" KPI.`),Y$1.error(e);}Y$1.verbose(`Securely overwritten window.fetch method for graphql query`);}async function Ic(r,e){let t=typeof r==`string`?r:r instanceof Request?r.url:``;if(!(t.includes(`graphql.json`)&&e?.method===`POST`)||!e.body)return;let i;if(typeof e.body==`string`)try{i=JSON.parse(e.body);}catch{return}else i=e.body;i?.variables?.input&&(Y$1.verbose(`Intercepted fetch request of:`,t),i?.query.includes(`cartCreate`)&&(e.body=await Tc(i),xc()));}async function Tc(r){let e=r.variables.input.attributes??[],t=await On$1(`Buy Now`);return r.variables.input.attributes=[...e,...t],JSON.stringify(r)}function xc(){let r=Be$3().currentItem;if(!r)return;j(new Ir$1(`Buy Now Clicked`,{items:[r]}));}var Ht=class{constructor(e,t){this.selectors=e;this.eventName=t;this.selectorString=e.join(`,`);}static INSTANCE;elements;selectorString;clickListenerCallback=e=>{let t=e.currentTarget;j(new Ir$1(this.eventName,{class:t.className||void 0,tagName:t.tagName||void 0,id:t.id||void 0})),this.removeClickListener(this.clickListenerCallback);};listenSilently(){this.listen().catch(e=>Y$1.error(e));}async listen(){this.elements=await Ar$1(this.selectorString),this.elements.forEach(e=>{e.addEventListener(`click`,this.clickListenerCallback);});}removeClickListener(e){this.elements?.forEach(t=>{t.removeEventListener(`click`,e);});}};var Gi=class r extends Ht{static selectors=[`.product__thumbnail-list-inner > button`,`product-gallery-navigation > button`,`.product-media--thumb-container`,`.product-images-inner > img`,`.m-product-media`,`.swiper-button-control`,`.media__thumb`,`.slick-arrow`,`.productView-img-container.product-single__media`,`.product-gallery__thumbnail_item_inner`];constructor(){super(r.selectors,`Item Thumbnail Clicked`);}static getInstance(){return this.INSTANCE||(this.INSTANCE=new r),this.INSTANCE}};var ji=class r extends Ht{static selectors=[`.jdgm-widget.jdgm-preview-badge.jdgm-preview-badge--with-link.jdgm--done-setup`,`reviewsio-product-ratings`,`.ruk_rating_snippet.tracked:not(.hidden)`,`a > .loox-rating`,`.yotpo-reviews-star-ratings-widget`,`.yotpo.lp-hero__reviews`,`.pr-rating > a`,`.rivyoReviewWidget`];constructor(){super(r.selectors,`Review Clicked`);}static getInstance(){return this.INSTANCE||(this.INSTANCE=new r),this.INSTANCE}};var Pc=[`.gokwik-checkout button`,`button.cart__checkout-button`,`button.cart__checkout`,`button#checkout`,`button#checkout2`,`button[id*="checkout" i]`,`button[name*="checkout" i]`,`button[class*="checkout" i]`].join(`,`);function Gs(){ht$2(()=>{Y$1.verbose(`Execution order:`,`document ready`),Dc();});}function Dc(){let r=window.location.hash?.substring(1);if(r)if(r.includes(`initiate-checkout`)){document.dispatchEvent(new Event(`letscooee:outbound:third-party-initiate-checkout`));let e=document.querySelector(Pc);if(!e){Y$1.verbose(`No clickable cart checkout button found`);return}Y$1.verbose(`Clickable cart checkout button found`,e),e.click();}else r.includes(`open-cart-drawer`)&&F.get().open();}function zs(){window.addEventListener(`kp-modal:opened`,()=>{Be$3().isGoKwikPopupOpen=true;}),window.addEventListener(`user-loggedin`,r=>{let{token:e}=r.detail;e&&Dt({goKwikToken:e});}),window.gokwikSdk?js():window.addEventListener(`gokwikLoaded`,js);}function js(){window.gokwikSdk&&window.gokwikSdk.on(`checkout_initiated`,async()=>{let r=await E.getCurrent().getNormalisedCart();j(new Ir$1(`Checkout Started`,{via:`GoKwik`,items:r.items,cartToken:r.token,amount:{value:r.amount,currency:r.currency}}));});}var D=class{static globalRef;static authenticated;static async initForMerchantWebsiteOnly(e){if(!window.cooeeSDKPreview){if(Y$1.info(`Initialising SDK`),gs(navigator.userAgent)){Y$1.info(`This seems to be a bot. Disabling SDK`);return}this.initGlobalReference(e),await Xs(),this.autoAuthenticate(),new qi().meddle(),Kn(),$i(),Rc(),Ws(),$n(),qs(),Gs(),Us(),ji.getInstance().listenSilently(),Gi.getInstance().listenSilently(),zs(),_c(),Gn$1(),po(),ki.remove(`conf`).catch(t=>{Y$1.error(`Fail to remove App Config from local storage`,t);});}}static initGlobalReference(e){window.CooeeSDK||Pn(window,`CooeeSDK`,{}),this.globalRef=window.CooeeSDK,Pn(this.globalRef,`config`,new he$3),Pn(this.globalRef,`runtimeData`,{sdkLoadTime:e,jsLoadTime:new Date,lastEnterActive:new Date}),Pn(this.globalRef,`uaParser`,new we,true),Pn(this.globalRef,`cart`,E.getCurrent()),Pn(this.globalRef,`cartChange$`,Hn()),Pn(this.globalRef,`cartDrawerToggle$`,F.cartDrawerToggle$.asObservable()),Y$1.verbose(`Global reference initialised`),new le$3(()=>{this.globalRef.uaParser=new we;});}static autoAuthenticate(){let e=Xr();e&&this.authenticate({shopifyShop:e});}static authenticate(e){if(this.authenticated)return;Y$1.info(`Begin auth after ⏰`,en(),`of SDK load`);let t=e.appID?.trim(),i=e.shopifyShop;if((Rn(t)||t.length!==24)&&Rn(i)){Y$1.warn(`Cooee App ID or Shop name is not configured`);return}this.authenticated=true,Ks(e);}static sendEvent(e,t,i){let o=new Ir$1(e,t,i?.triggerData);i?.occurred&&(o.occurred=i.occurred),j(o);}static updateProfile(e){for(let t in e)if(t.toLowerCase().startsWith(`ce `))throw new Error(`User property name cannot start with 'CE '`);Dt(e);}static setPageName(e){if(!e)return;let t=Be$3(),i=t.pageName;if(e===i)return;if(t.pageName=e,Yr$3.some(s=>e.includes(s))){Ho();return}let o={};i&&(o.ps=i);let n=new Ir$1(`CE Screen View`,o);n.occurred=t.jsLoadTime,j(n),Ho(n.occurred);}static previewPopup(e,t){import('./renderer-BjTB_9Mh-DtKoS-qy.js').then(({FreeformRenderer:i})=>{new i(t).render(e);});}static previewWidget(e){new K(new q(e)).renderSilently();}};function Rc(){window.CooeeSDK.cartChange$.subscribe(()=>{Vt();});}function _c(){if(window.opener){try{window.opener.postMessage({action:`COOEE_READY_FOR_PREVIEW`},`*`);}catch(r){Y$1.error(r);}window.addEventListener(`message`,r=>{if(Y$1.verbose(`Received event`,r),!r.origin.includes(`letscooee.com`)&&!r.origin.includes(`localhost`))return;let e=r.data;typeof e==`object`&&(e.action===`POPUP_PREVIEW`?(D.previewPopup(e.engagementTrigger),r.source?.postMessage({action:`PREVIEW_SUCCESSFUL`},r.origin)):e.action===`WIDGET_PREVIEW`&&(D.previewWidget(e.engagementTrigger),r.source?.postMessage({action:`PREVIEW_SUCCESSFUL`},r.origin)));});}}var Js=new U$1,Ys=0;Js.pipe(Fe$1(50)).subscribe(async r=>{kc(await $e()).catch(t=>{ke$2(t,`load-page-widgets`,{extra:{firstLoad:r}});});});function Vt(r=false){le$1(le).then(()=>{Js.next(r);});}async function as(r){let e=await $e();return Object.assign(r,e),me(`/v1/engagement/get-variant`,r)}async function kc(r$11){Ys++,Ys===1?Y$1.info(`Fetch widgets (after ⏰`,en()+` of SDK load)`):Y$1.info(`Fetch widgets`);let e=r({},r$11),t=Vn$1(`/v1/engagement/eligible`,D.globalRef.apiURLs?.engagementsURL);try{let i=await me(t,e);if(Y$1.info(`Widgets fetched ${Jr$3(i.timeTakenMs)}`),i.data.pageWidgets?.length)cr(i.data.pageWidgets.map(n=>new q(n)));if(i.data.cartWidgets?.length)ar(i.data.cartWidgets.map(n=>new q(n)));}catch(i){Y$1.error(`Error sending widget getter`,i);}}var Qs=x$2(dr$2()),zi=class r{static META_REQUIRED_FIELDS=[`ad_id`];static GOOGLE_REQUIRED_FIELDS=[`gad_source`,`gclid`];source;adID;campaignID;adName;campaignName;constructor(e){this.adID=e.adID,this.campaignID=e.campaignID,this.source=e.source;}static getAdParams(){let e;try{e=new Qs.URLBuilder(location.href);}catch{return {}}let t={};if(this.META_REQUIRED_FIELDS.every(n=>Array.from(e.getParams().keys()).includes(n)))return t={source:`META`,adID:e.getQueryParam(`ad_id`)?.trim(),campaignID:e.getQueryParam(`campaign_id`)?.trim()},new r(t);if(this.GOOGLE_REQUIRED_FIELDS.every(n=>Array.from(e.getParams().keys()).includes(n)))return t={source:`GOOGLE`},new r(t)}};var $o={d:(r,e)=>{for(var t in e)$o.o(e,t)&&!$o.o(r,t)&&Object.defineProperty(r,t,{enumerable:true,get:e[t]});},o:(r,e)=>Object.prototype.hasOwnProperty.call(r,e)},qo={};$o.d(qo,{A:()=>Ac,k:()=>Go});var Cr=function(r,e,t,i){return new(t||(t=Promise))(function(o,n){function s(v){try{l(i.next(v));}catch(w){n(w);}}function c(v){try{l(i.throw(v));}catch(w){n(w);}}function l(v){var w;v.done?o(v.value):(w=v.value,w instanceof t?w:new t(function(I){I(w);})).then(s,c);}l((i=i.apply(r,[])).next());})},yr=function(r,e){var t,i,o,n,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return n={next:c(0),throw:c(1),return:c(2)},typeof Symbol==`function`&&(n[Symbol.iterator]=function(){return this}),n;function c(l){return function(v){return (function(w){if(t)throw new TypeError(`Generator is already executing.`);for(;n&&(n=0,w[0]&&(s=0)),s;)try{if(t=1,i&&(o=2&w[0]?i.return:w[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,w[1])).done)return o;switch(i=0,o&&(w=[2&w[0],o.value]),w[0]){case 0:case 1:o=w;break;case 4:return s.label++,{value:w[1],done:!1};case 5:s.label++,i=w[1],w=[0];continue;case 7:w=s.ops.pop(),s.trys.pop();continue;default:if(o=s.trys,!((o=o.length>0&&o[o.length-1])||w[0]!==6&&w[0]!==2)){s=0;continue}if(w[0]===3&&(!o||w[1]>o[0]&&w[1]<o[3])){s.label=w[1];break}if(w[0]===6&&s.label<o[1]){s.label=o[1],o=w;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(w);break}o[2]&&s.ops.pop(),s.trys.pop();continue}w=e.call(r,s);}catch(I){w=[6,I],i=0;}finally{t=o=0;}if(5&w[0])throw w[1];return {value:w[0]?w[1]:void 0,done:true}})([l,v])}}};function Go(){return Cr(this,void 0,Promise,function(){return yr(this,function(r){switch(r.label){case 0:return [4,new Promise(function(e,t){var i=`Unknown`,o=false;function n(b){o||(o=true,e({isPrivate:b,browserName:i}));}function s(){var b=0,P=parseInt(`-1`);try{P.toFixed(P);}catch(_){b=_.message.length;}return b}function c(){return navigator.msSaveBlob!==void 0&&(function(b){try{return b===eval.toString().length}catch{return false}})(39)}function l(){var b;return Cr(this,void 0,void 0,function(){var P,_;return yr(this,function(y){switch(y.label){case 0:return y.trys.push([0,2,,3]),[4,navigator.storage.getDirectory()];case 1:return y.sent(),n(false),[3,3];case 2:return P=y.sent(),_=P,P instanceof Error&&(_=(b=P.message)!==null&&b!==void 0?b:P),typeof _!=`string`?(n(false),[2]):(n(!!_.includes(`unknown transient reason`)),[3,3]);case 3:return [2]}})})}function v(){var b;return Cr(this,void 0,Promise,function(){return yr(this,function(P){switch(P.label){case 0:return ((b=navigator.storage)===null||b===void 0?void 0:b.getDirectory)===void 0?[3,2]:[4,l()];case 1:return P.sent(),[3,3];case 2:navigator.maxTouchPoints!==void 0?(function(){var _=String(Math.random());try{var y=indexedDB.open(_,1);y.onupgradeneeded=function(z){var ee=z.target.result,C=function(Yi){n(Yi);};try{ee.createObjectStore(`t`,{autoIncrement:!0}).put(new Blob),C(!1);}catch(Yi){(Yi.message||``).includes(`are not yet supported`)?C(!0):C(!1);}finally{ee.close(),indexedDB.deleteDatabase(_);}},y.onerror=function(){return n(!1)};}catch{n(false);}})():(function(){var _=window.openDatabase,y=window.localStorage;try{_(null,null,null,null);}catch{n(true);return}try{y.setItem(`test`,`1`),y.removeItem(`test`);}catch{n(true);return}n(false);})(),P.label=3;case 3:return [2]}})})}function w(){navigator.webkitTemporaryStorage.queryUsageAndQuota(function(b,P){var _;n(Math.round(P/1048576)<2*Math.round(((_=window).performance!==void 0&&_.performance.memory!==void 0&&_.performance.memory.jsHeapSizeLimit!==void 0?performance.memory.jsHeapSizeLimit:1073741824)/1048576));},function(b){t(new Error(`detectIncognito somehow failed to query storage quota: `+b.message));});}function I(){self.Promise!==void 0&&self.Promise.allSettled!==void 0?w():(0, window.webkitRequestFileSystem)(0,1,function(){n(false);},function(){n(true);});}function R(){return Cr(this,void 0,Promise,function(){var b,P;return yr(this,function(_){switch(_.label){case 0:if(!navigator.storage||!navigator.storage.getDirectory)return [3,4];_.label=1;case 1:return _.trys.push([1,3,,4]),[4,navigator.storage.getDirectory()];case 2:return _.sent(),n(false),[3,4];case 3:return b=_.sent(),typeof(P=b instanceof Error&&typeof b.message==`string`?b.message:String(b))!=`string`?(n(false),[2]):(n(P.includes(`Security error`)),[2]);case 4:return n(navigator.serviceWorker===void 0),[2]}})})}(function(){return Cr(this,void 0,Promise,function(){return yr(this,function(b){switch(b.label){case 0:return s()!==44?[3,2]:(i=`Safari`,[4,v()]);case 1:return b.sent(),[3,6];case 2:return s()!==51?[3,3]:(P=navigator.userAgent,i=P.match(/Chrome/)?navigator.brave!==void 0?`Brave`:P.match(/Edg/)?`Edge`:P.match(/OPR/)?`Opera`:`Chrome`:`Chromium`,I(),[3,6]);case 3:return s()!==25?[3,5]:(i=`Firefox`,[4,R()]);case 4:return b.sent(),[3,6];case 5:c()?(i=`Internet Explorer`,n(window.indexedDB===void 0)):t(new Error(`detectIncognito cannot determine the browser`)),b.label=6;case 6:return [2]}var P;})})})().catch(t);})];case 1:return [2,r.sent()]}})})}typeof window<`u`&&(window.detectIncognito=Go);var Ac=Go,Zs=qo.A;qo.k;var ea=x$2(yt$1()),ta=async()=>{let r={};try{return await Oc(r)}catch(e){return ke$2(e,`device-properties`),r}},Oc=async r=>{let e=window.CooeeSDK.uaParser;Lc(r),Nc(r),Mc(r),r.referrer=document.referrer,r.host=location.origin,r.path=location.pathname,r.qs=location.search,r.locale=navigator.language,r.display={w:screen.width,h:screen.height,pd:screen.pixelDepth,dpi:Uc()},r.win={ow:window.outerWidth,oh:window.outerHeight,iw:window.innerWidth,ih:window.innerHeight,dpr:window.devicePixelRatio},navigator.webdriver&&(r.headless=true,ro({headless:true}));let t=e.getResult();return r.browser=t.browser,r.device=t.device,r.engine=t.engine,r.cpu=t.cpu,r.os=t.os,r.navigatorUA=navigator.userAgent,await Promise.all([Vc(r),Fc(r),Wc(r)]),r},Lc=r=>{let e=navigator;if(!e.deviceMemory)return;r.mem={tot:e.deviceMemory*1024};},Nc=r=>{let e=navigator,t=e.connection||e.mozConnection||e.webkitConnection;t?.effectiveType&&(r.net={type:t.effectiveType});},Mc=r=>{let e=screen.orientation?.type;e&&(r.orientation=e);},Uc=()=>{if(!document.body)return;let r=document.createElement(`div`);r.setAttribute(`style`,`height: 1in; left: -100%; position: absolute; top: -100%; width: 1in;`),document.body.appendChild(r);let e=window.devicePixelRatio||1,t=r.offsetWidth*e;return document.body.removeChild(r),t},Fc=async r=>{try{await Bc(r);}catch(e){Y$1.error(`Unable to get location`,e);}},Bc=async r=>{if(!(!navigator.geolocation||!navigator.permissions||(await navigator.permissions.query({name:`geolocation`})).state!=`granted`))return new Promise(t=>{navigator.geolocation.getCurrentPosition(i=>{r.coords=[i.coords.latitude,i.coords.longitude],t();},()=>t());})},Vc=async r=>{if(`getBattery`in navigator)try{let t=await navigator.getBattery();r.bat={l:t.level*100,c:t.charging},ro({"battery.level":r.bat.l,"battery.charging":r.bat.c});}catch{}},Wc=async r=>{try{(await Zs())?.isPrivate&&(r.incognito=!0,ro({incognito:!0}));}catch(e){ea.default.error(`Unable to detect private/incognito window`,e);}};function ia(r){if(!oa())return;let e=Ye$2[r]?.toLowerCase();e&&(Y$1.verbose(`Sending ${e} intent to MS Clarity`),window.clarity(`set`,`Cooee Intent`,e));}function oa(){return window.clarity&&typeof window.clarity==`function`}var le=new gr$1(1),sa=`App ID or Shopify shop is not set`,jo=``,Ye=``,zo=``,Ki;async function Ks(r){jo=r.appID,zo=r.shopifyShop;try{await Hc(),le.next(!0),le.complete();}catch(e){e?.message?.includes(sa)&&ke$2(e,`initiate-session`,{extra:r}),Y$1.error(`Unable to initiate session`,e);}}async function Xn(){return await aa(false),Ki}async function Xs(){let r=Date.now();await gi.request(`gen_did`,async()=>{Ye=await fe$4.get(`did`),Ye||(Ye=new $$2().toHexString(),await fe$4.set(`did`,Ye)),Y$1.info(`Device ID:`,Ye),la(Ye);}),Y$1.info(`Device ID set/get done ${Jr$3(Date.now()-r)}`);}async function na(){if(Ki)return;let[r,e,t]=await Promise.all([ve$2.get(`id`,``),fe$4.get(`sessionNumber`,1),ve$2.get(`landing`,{})]);ca(r,e,t);}async function Hc(){await aa(true);}async function aa(r){let e=false;return await qc()?(await $c(),e=true):await Gc()?(await na(),e=true):await na(),e?await zc():r&&Vt(),e}async function $c(){Y$1.info(`Starting new session`),await ve$2.clear();let r=new Date,e=new $$2().toHexString(),t=await fe$4.get(`sessionNumber`,0)+1,i=vi();await Promise.all([fe$4.set(`sessionNumber`,t),ve$2.set(`id`,e),ve$2.set(`lastUsedTime`,r.getTime()),ve$2.set(`landing`,i)]),ca(e,t,i);}async function qc(){let r=await ve$2.get(`lastUsedTime`,0);return r?(new Date().getTime()-r)/1e3>1800:true}async function Gc(){return !await ve$2.get(`synced`,false)}async function jc(){if(!jo&&!zo)throw new Error(sa);let r$12=await ta(),e=bi();return s(r(r({deviceID:Ye,deviceProps:r$12,appID:jo,shopifyShop:zo},Ki),e),{sdk:Gr$3,ad:zi.getAdParams(),occurred:Xc(Be$3().jsLoadTime),properties:{},uuid:await fe$4.get(`uuid`)})}async function zc(){Y$1.info(`Ensuring session on server`),await Kc();let r=Date.now(),e=await jc();Y$1.info(`Session data generated ${Jr$3(Date.now()-r)}`);let t=Vn$1(`/v1/event/validate-session`,D.globalRef.apiURLs?.baseURL??`https://cdn.sdk-api1.letscooee.com`);try{let i=await me(t,e);if(Y$1.info(`Auth finished ${Jr$3(i.timeTakenMs)}`),await ve$2.set(`synced`,!0),i.data.deviceID&&(await fe$4.set(`did`,Ye),la(i.data.deviceID)),i.data.pageWidgets?.length)cr(i.data.pageWidgets.map(n=>new q(n)));if(i.data.cartWidgets?.length)ar(i.data.cartWidgets.map(n=>new q(n)));}catch(i){throw Y$1.error(i),i}}async function Kc(){let r=await fe$4.get(`firstSeen`),e=r?new Date(r):new Date;r||await fe$4.set(`firstSeen`,e.toISOString()),Zn(e),to(`Visitor Info`,{first_seen:e.toISOString()});}function ca(r,e,t){ro({"cooee_session.number":e}),to(`Visitor Session`,{id:r,number:e,landing_page:t}),Y$1.info(`Session number: ${e}, id: ${r}`),Ki={sessionID:r,sessionNumber:e,landingPage:t};}function la(r){Qn(r);to(`Visitor Info`,{device_id:r,[`device_id_${Math.floor(Math.random()*1e4)}`]:r}),eo({id:r});}function Xc(r){return (new Date().getTime()-r.getTime())/1e3>1800?new Date:r}var Xi=class{triggerData;render(e){e.contentSource===Be$2.KLAVIYO&&(this.triggerData=e,window.addEventListener(`klaviyoForms`,this.handleKlaviyoEvents.bind(this)),window._klOnsite=window._klOnsite||[],window._klOnsite.push([`openForm`,e.klaviyoFormID]));}handleKlaviyoEvents(e){if(e.type!==`klaviyoForms`)return;let t=e.detail;if(t.formId!==this.triggerData.klaviyoFormID){Y$1.warn(`Received invalid trigger callback`);return}switch(t.type){case `open`:fe(new Ir$1(`CE Trigger Displayed`,{form:{id:t.formId}},this.triggerData));break;case `stepSubmit`:{let i=this.getFormDetails(t);fe(new Ir$1(`CE Form Submitted`,{form:i},this.triggerData)),Dt(i);break}case `close`:window.removeEventListener(`klaviyoForms`,this.handleKlaviyoEvents.bind(this)),fe(new Ir$1(`CE Trigger Closed`,{form:{id:t.formId}},this.triggerData));break}}getFormDetails(e){let t={id:e.formId},i=e.metaData;if(pe$4.hasKeys(i)){let o=[`email`,`phone_number`,`first_name`,`last_name`,`$email`,`$phone_number`,`$first_name`,`$last_name`];Object.keys(i).forEach(c=>{o.includes(c)||(t[c]=i[c]);}),t.email=i.$email??i.email,t.mobile=i.$phone_number??i.phone_number;let n=i.$first_name??i.first_name,s=i.$last_name??i.last_name;(n?.length||s?.length)&&(t.name=n+` `+s);}return t}};function ma(r){if(!Yc()||!he$3.get().pixelPush)return;let t=Ye$2[r.intent]?.toLowerCase();t&&(Y$1.verbose(`Sending ${t} intent to Facebook Pixel`),window.fbq(`trackCustom`,`CooeeIntent`,{intent_value:t}));}function Yc(){return window.fbq&&typeof window.fbq==`function`}var ho=`/v1/event/track-page-unload`;function j(r){Y$1.verbose(`Waiting for auth to send event ${r.name}`),le$1(le).then(()=>fe(r));}function $s(r){le$1(le).then(()=>{Jc(r);});}async function Jc(r){let e=Be$3().currentPageViewEvent;if(!e){Y$1.warn(`No page view event was stored previously`);return}let t={pageViewEventID:e.id,pageViewEventName:e.name,pageActiveTimeMS:r};Y$1.verbose(`Sending page unload`,t);let i=Vn$1(ho,D.globalRef.apiURLs?.eventURL);try{await me(i,t);}catch(o){throw Y$1.error(`Error sending page unload for ${e} to server`,o),o}}function fe(r){Qc(r);}async function Qc(r){if(Y$1.verbose(`Sending event: ${r.name}`,r),ol(r)){Y$1.warn(`Rejecting event ${r.name}`);return}Mn();let e=await $e();Object.assign(r,e),Hs(),ve$2.set(`lastUsedTime`,new Date().getTime());let t=il(r.name),o=Vn$1(`/v1/event/track/${t.toLowerCase().replace(/\s+/g,`-`)}`,D.globalRef.apiURLs?.eventURL);try{let n=await me(o,r);Y$1.info(`Event tracked:`,t),Zc(r)&&(Be$3().currentPageViewEvent={id:r.id,name:r.name}),el(r,n.data);}catch(n){throw Y$1.error(`Error sending event ${r.name} to server`,n),n}}function Zc(r){return qr$3.includes(r.name)?r.name===`View Cart`?!r.properties.drawer:true:false}function el(r,e){tl(r,e).catch(t=>{ke$2(t,`process-popup-response`,{extra:{event:r,response:e}});}),rl(e);}async function tl(r,e){if(!e.triggerData)return;let t=new q(e.triggerData);t.occurred=r.occurred,Y$1.log(`${t} will be shown`);let i;try{i=await hi(t);}catch(n){Y$1.error(`Failed to refresh the products`,n);return}if(t.items=i,t.contentSource===Be$2.KLAVIYO){new Xi().render(t);return}new(await(import('./renderer-BjTB_9Mh-DtKoS-qy.js'))).FreeformRenderer().renderEngagement(t).catch(n=>{ke$2(n,`render-popup`,{extra:{event:r},engagementTrigger:t});});}function rl(r){r.intent&&(ia(r.intent),ma(r),Y$1.info(`Intent is ${Ye$2[r.intent]}`));}function il(r){return r.replace(`CE `,``).replace(`Trigger`,`Campaign`).replace(`Screen`,`Page`).replace(`App `,``)}function ol(r){return r.trigger?.triggerID===`test`||r.trigger?.triggerID===`preview`?(Y$1.warn(`Not sending event as this is a test trigger`),true):false}
77
+ .lc-display-inline {display: inline !important;}`,document.body);}execute(e){for(let t of e){if(!t.experimentConfig)continue;this.executeExperiment(t)&&this.trackExperimentRan(t);}if(document.querySelector(`#lc-hide-body`)?.remove(),!document.body){Zn$1(`No body element found`,`error`);return}this.setupMutationObserver();}executeExperiment(e){let t=e.experimentConfig?.modifications;if(!t?.length)return Y$1.log(`Nothing to experiment`,e.toString()),true;let i=false;for(let o of t){if(!o.cssSelector){Y$1.verbose(`No CSS Selector available`,e?.toString());continue}this.modifications.push(o);let n=Array.from(document.querySelectorAll(o.cssSelector));n?.length&&(this.executeSingleModification(o,n),i=true);}return i}executeSingleModification(e,t){if(t?.length)for(let i of t)Object.assign(i.style,e.style),e.display===`HIDE`?i.classList.add(`lc-hide`):e.display===`BLOCK`?i.classList.add(`lc-display-block`):e.display===`INLINE`&&i.classList.add(`lc-display-inline`),e.type===`TEXT`&&e.text?i.innerHTML=e.text:e.type===`IMAGE`&&this.updateImage(e,i),e.moveTo?.selector&&this.changePlacement(e,i).catch(console.error);}async changePlacement(e,t){let i=await Ln$1(e.moveTo.selector);if(i)switch(e.moveTo.position){case Ve$3.BEFORE1:t.nextElementSibling!==i&&i.parentElement?.insertBefore(t,i);break;case Ve$3.INSIDE_FIRST1:i.firstChild!==t&&i.insertBefore(t,i.firstChild);break;case Ve$3.INSIDE_LAST1:i.lastChild!==t&&i.appendChild(t);break;case Ve$3.AFTER1:default:t.previousElementSibling!==i&&i.parentElement?.insertBefore(t,i.nextSibling);}}trackExperimentRan(e){if(e.id===`preview`){Y$1.warn(`Skipping experiment attribution as its preview`,e.toString());return}Os({name:`CE Experiment Start`,experiment:new mt(e)}).catch(t=>{Y$1.error(`Fail to track experiment`,t);});}setupMutationObserver(){new MutationObserver(t=>{t.forEach(i=>{i.addedNodes.forEach(o=>{o instanceof HTMLElement&&this.modifications.forEach(n=>{if(o.matches&&o.matches(n.cssSelector))Y$1.verbose(`1. Re-applying experiment`,n.toString()),this.executeSingleModification(n,[o]);else if(o.querySelectorAll){let s=Array.from(o.querySelectorAll(n.cssSelector));if(!s.length)return;Y$1.verbose(`2. Re-applying experiment`,n.toString()),this.executeSingleModification(n,s);}});});});}).observe(document.body,{childList:true,subtree:true});}updateImage(e,t){let i=e.image?.lg?.src,o=e.image?.sm?.src;!i&&!o||(t instanceof HTMLPictureElement?this.updatePictureElement({desktop:i,mobile:o},t):this.updateImageElement({desktop:i,mobile:o},t));}updateImageElement(e,t){M$1()&&e.mobile?(t.setAttribute(`src`,e.mobile),t.removeAttribute(`srcset`)):e.desktop&&(t.setAttribute(`src`,e.desktop),t.removeAttribute(`srcset`));}updatePictureElement(e,t){if(t.innerHTML=``,e.mobile){let o=document.createElement(`source`);o.srcset=e.mobile,o.media=`(max-width: 767px)`,t.append(o);}if(e.desktop){let o=document.createElement(`source`);o.srcset=e.desktop,o.media=`(min-width: 768px)`,t.append(o);}let i=document.createElement(`img`);i.src=e.desktop??e.mobile??``,t.append(i);}};async function Os(r$10){let e=await $e();await me(`/v1/event/experiment`,r(r({},r$10),e));}function $i(){mc().catch(r=>ke$2(r,`fetch-experiments`));}async function mc(){Be$3().activeExperiments&&(await le$1(le),await pc());}async function pc(){Y$1.info(`Fetch experiments after ⏰`,en()+` of SDK load`);me(`/v1/engagement/experiments`,r({},await $e())).then(async t=>{Y$1.info(`Experiments fetched ${Jr$3(t.timeTakenMs)}`);let i=t.data.experiments.map(o=>new q(o));new Hi().execute(i);}).catch(t=>{Y$1.error(`Error sending experiment getter`,t);});}function Ls(){let r=he$3.get();!r.gaMeasurementID||!r.gaEnabled||uc();}async function dc(){let r=await fe$4.get(`gacid`),e=await gc();if(r!==e)return await fe$4.set(`gacid`,e),e}async function uc(){let r=await dc();r&&Jn({gaClientID:r});}async function gc(){let e=he$3.get().gaMeasurementID;if(!(!e||!window.gtag))return new Promise(t=>{window.gtag(`get`,e,`client_id`,i=>{t(i);});})}async function Ns(r){Y$1.verbose(`Received app configuration`,r),r.currencyCount=r.currencies?.length;let e=D.globalRef.config.update(r);Ls(),F.initialize(),e.website&&(Ui$1(e.website.commonJS),Ce$1(e.website.commonCSS)),window.CooeeSDK.cartDrawerToggle$.pipe(Fe$1(10)).subscribe(async({open:t})=>{Y$1.info(`Cart drawer is now`,t?`open`:`closed`),t&&(ms(),await fc());});}function Ms(r){D.globalRef.apiURLs=r;}async function fc(){let r=await E.getCurrent().getNormalisedCart(),e={value:r.amount,currency:r.currency};j(new Ir$1(`View Cart`,{items:r.items,amount:e,drawer:true}));}var qi=class{runtimeData=Be$3();meddle(){let e=D.globalRef;e.profile=e.profile??[],e.events=e.events??[],e.page=e.page??[],this.meddlePage(),this.meddleEvents(),this.meddleProfile(),this.exposeMethods();}exposeMethods(){let e=D.globalRef;e.loadWidgets=e.loadCartWidgets=e.loadPageWidgets=()=>{Vt();},e.loadExperiments=()=>{$i();},e.testCartUpdate=this.testCartUpdate.bind(this),e.previewWidget=D.previewWidget.bind(D),e.previewPopup=D.previewPopup.bind(D),e.executeCTA=(t,i)=>{new Re(t).execute(i);},e.sendEvent=t=>{j(t);};}overwritePush(e,t){Pn(e,`push`,t);}meddleEvents(){this.overwritePush(D.globalRef.events,(...e)=>{this.processEvent(e[0]);}),D.globalRef.events.forEach(this.processEvent.bind(this));}meddleProfile(){this.overwritePush(D.globalRef.profile,(...e)=>{this.processProfile(e[0]);}),D.globalRef.profile.forEach(this.processProfile.bind(this));}processEvent(e){e&&(zr$3.includes(e[0])?D.sendEvent(e[0],e[1],r({occurred:this.runtimeData.jsLoadTime},e[2])):D.sendEvent(e[0],e[1],e[2]));}processProfile(e){e&&D.updateProfile(e);}meddlePage(){this.overwritePush(D.globalRef.page,(...e)=>{this.processPage(e[0]);}),D.globalRef.page.forEach(this.processPage.bind(this));}processPage(e){e.appID&&D.authenticate(e),e.currentItem&&hc(e.currentItem),e.currency&&(Be$3().currencyCode=e.currency),e.shopCurrency&&(this.runtimeData.shopCurrencyCode=e.shopCurrency),e.moneyFormat&&(this.runtimeData.moneyFormat=e.moneyFormat),e.jsLoad&&(this.runtimeData.jsLoadTime=e.jsLoad),e.locale&&(this.runtimeData.locale=e.locale),e.pageName&&D.setPageName(e.pageName),e.activeExperiment&&(this.runtimeData.activeExperiments=e.activeExperiment),e.cart&&E.getCurrent().update(e.cart),e.configurations&&Ns(e.configurations),e.apiURLs&&Ms(e.apiURLs),e.customContext&&(this.runtimeData.customContext=r(r({},this.runtimeData.customContext),e.customContext));}async testCartUpdate(){if(Be$3().pageName!==`product`){window.alert(`This feature is only available on a product page`);return}let e=ss();if(e||(e=Be$3().currentItem?.vID),!e){window.alert(`Could not find a variant to test. Please try a different product page`);return}let t=new q({id:`preview`,shortID:`1`,redirectBehaviour:Me$1.CART_DRAWER});await new Re(new Fe(new Date,t)).execute({clickAction:{at:He$2.ADD_TO_CART},embeddedItem:new et({vID:e})});}};function hc(r){let e=Be$3();if(e.currentItem&&e.currentItem.vID!==r.vID){let t=new CustomEvent(`letscooee:variant-change`,{detail:{variantID:r.vID,productID:r.mID}});document.dispatchEvent(t);}e.currentItem=new et(r);}var Wt=class{static SESSION_STORAGE=window.sessionStorage;static SESSION_STORAGE_KEY_PREFIX=`cooee`.concat(`-`);static getString(e,t){return this.getItem(e)||t}static setString(e,t){this.setItem(e,t);}static remove(e){this.removeItem(e);}static getItem(e){return this.SESSION_STORAGE.getItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e))}static setItem(e,t){this.SESSION_STORAGE.setItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e),t);}static removeItem(e){this.SESSION_STORAGE.removeItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e));}};var wc=1e3,vc=10,Vo=0,Wo=new Date;function Ho(r){Wt.remove(`sleid`),Wo=r??new Date;}function Us(){if(window.scrollY){let r=Vs();Fs(r)&&Bs(r);}ht$2(()=>{Cc();});}function Cc(){Tr(window,`scroll`).pipe(Fe$1(wc),q$1(()=>{let r=Vs();if(r>100){Y$1.warn(`Received scroll percent is more than 100`,r);return}if(Fs(r))return r})).subscribe(r=>{Bs(r);});}function Fs(r){return Math.abs(Vo-r)>=vc||Vo!==r&&r===100}function Bs(r){if(r==null)return;let e={percent:r,timeMS:new Date().getTime()-Wo.getTime()};Vo=r;let i=new Ir$1(`CE Scroll`,e,null,Wt.getString(`sleid`,``));j(i),Wt.setString(`sleid`,i.id.toHexString()),Wo=new Date(i.occurred);}function Vs(){let r=window.document.body.scrollHeight,e=window.innerHeight;return Math.ceil((window.scrollY+e)/r*100)}function Ws(){document.onvisibilitychange=()=>{document.visibilityState===`visible`?bc():document.visibilityState===`hidden`&&yc();};}async function bc(){}async function yc(){let r=await Ec();if(r===0){Y$1.info(`Not sending duration as user was inactive on website`);return}$s(r);}async function Ec(){let r=Be$3();return r.inInactive?0:(r.inInactive=true,r.lastEnterInactive=new Date,Math.max(r.lastEnterInactive.getTime()-r.lastEnterActive.getTime(),0))}function Hs(){let r=Be$3();return r.inInactive?(r.inInactive=false,r.lastEnterActive=new Date,Math.max((r.lastEnterActive.getTime()-r.lastEnterInactive.getTime())/1e3,0)):0}function qs(){Sc();}function Sc(){let r=window.fetch;try{window.fetch=async function(e,t){try{await Ic(e,t);}catch(i){ke$2(i,`modify-graphql-request`,{extra:{body:JSON.stringify(t?.body)}});}return r(e,t)};}catch(e){console.warn(`Fail to override fetch.`,`Cooee won't be able to track "Buy Now Clicked" KPI.`),Y$1.error(e);}Y$1.verbose(`Securely overwritten window.fetch method for graphql query`);}async function Ic(r,e){let t=typeof r==`string`?r:r instanceof Request?r.url:``;if(!(t.includes(`graphql.json`)&&e?.method===`POST`)||!e.body)return;let i;if(typeof e.body==`string`)try{i=JSON.parse(e.body);}catch{return}else i=e.body;i?.variables?.input&&(Y$1.verbose(`Intercepted fetch request of:`,t),i?.query.includes(`cartCreate`)&&(e.body=await Tc(i),xc()));}async function Tc(r){let e=r.variables.input.attributes??[],t=await On$1(`Buy Now`);return r.variables.input.attributes=[...e,...t],JSON.stringify(r)}function xc(){let r=Be$3().currentItem;if(!r)return;j(new Ir$1(`Buy Now Clicked`,{items:[r]}));}var Ht=class{constructor(e,t){this.selectors=e;this.eventName=t;this.selectorString=e.join(`,`);}static INSTANCE;elements;selectorString;clickListenerCallback=e=>{let t=e.currentTarget;j(new Ir$1(this.eventName,{class:t.className||void 0,tagName:t.tagName||void 0,id:t.id||void 0})),this.removeClickListener(this.clickListenerCallback);};listenSilently(){this.listen().catch(e=>Y$1.error(e));}async listen(){this.elements=await Ar$1(this.selectorString),this.elements.forEach(e=>{e.addEventListener(`click`,this.clickListenerCallback);});}removeClickListener(e){this.elements?.forEach(t=>{t.removeEventListener(`click`,e);});}};var Gi=class r extends Ht{static selectors=[`.product__thumbnail-list-inner > button`,`product-gallery-navigation > button`,`.product-media--thumb-container`,`.product-images-inner > img`,`.m-product-media`,`.swiper-button-control`,`.media__thumb`,`.slick-arrow`,`.productView-img-container.product-single__media`,`.product-gallery__thumbnail_item_inner`];constructor(){super(r.selectors,`Item Thumbnail Clicked`);}static getInstance(){return this.INSTANCE||(this.INSTANCE=new r),this.INSTANCE}};var ji=class r extends Ht{static selectors=[`.jdgm-widget.jdgm-preview-badge.jdgm-preview-badge--with-link.jdgm--done-setup`,`reviewsio-product-ratings`,`.ruk_rating_snippet.tracked:not(.hidden)`,`a > .loox-rating`,`.yotpo-reviews-star-ratings-widget`,`.yotpo.lp-hero__reviews`,`.pr-rating > a`,`.rivyoReviewWidget`];constructor(){super(r.selectors,`Review Clicked`);}static getInstance(){return this.INSTANCE||(this.INSTANCE=new r),this.INSTANCE}};var Pc=[`.gokwik-checkout button`,`button.cart__checkout-button`,`button.cart__checkout`,`button#checkout`,`button#checkout2`,`button[id*="checkout" i]`,`button[name*="checkout" i]`,`button[class*="checkout" i]`].join(`,`);function Gs(){ht$2(()=>{Y$1.verbose(`Execution order:`,`document ready`),Dc();});}function Dc(){let r=window.location.hash?.substring(1);if(r)if(r.includes(`initiate-checkout`)){document.dispatchEvent(new Event(`letscooee:outbound:third-party-initiate-checkout`));let e=document.querySelector(Pc);if(!e){Y$1.verbose(`No clickable cart checkout button found`);return}Y$1.verbose(`Clickable cart checkout button found`,e),e.click();}else r.includes(`open-cart-drawer`)&&F.get().open();}function zs(){window.addEventListener(`kp-modal:opened`,()=>{Be$3().isGoKwikPopupOpen=true;}),window.addEventListener(`user-loggedin`,r=>{let{token:e}=r.detail;e&&Dt({goKwikToken:e});}),window.gokwikSdk?js():window.addEventListener(`gokwikLoaded`,js);}function js(){window.gokwikSdk&&window.gokwikSdk.on(`checkout_initiated`,async()=>{let r=await E.getCurrent().getNormalisedCart();j(new Ir$1(`Checkout Started`,{via:`GoKwik`,items:r.items,cartToken:r.token,amount:{value:r.amount,currency:r.currency}}));});}var D=class{static globalRef;static authenticated;static async initForMerchantWebsiteOnly(e){if(!window.cooeeSDKPreview){if(Y$1.info(`Initialising SDK`),gs(navigator.userAgent)){Y$1.info(`This seems to be a bot. Disabling SDK`);return}this.initGlobalReference(e),await Xs(),this.autoAuthenticate(),new qi().meddle(),Kn(),$i(),Rc(),Ws(),$n(),qs(),Gs(),Us(),ji.getInstance().listenSilently(),Gi.getInstance().listenSilently(),zs(),_c(),Gn$1(),po(),ki.remove(`conf`).catch(t=>{Y$1.error(`Fail to remove App Config from local storage`,t);});}}static initGlobalReference(e){window.CooeeSDK||Pn(window,`CooeeSDK`,{}),this.globalRef=window.CooeeSDK,Pn(this.globalRef,`config`,new he$3),Pn(this.globalRef,`runtimeData`,{sdkLoadTime:e,jsLoadTime:new Date,lastEnterActive:new Date}),Pn(this.globalRef,`uaParser`,new we,true),Pn(this.globalRef,`cart`,E.getCurrent()),Pn(this.globalRef,`cartChange$`,Hn()),Pn(this.globalRef,`cartDrawerToggle$`,F.cartDrawerToggle$.asObservable()),Y$1.verbose(`Global reference initialised`),new le$3(()=>{this.globalRef.uaParser=new we;});}static autoAuthenticate(){let e=Xr();e&&this.authenticate({shopifyShop:e});}static authenticate(e){if(this.authenticated)return;Y$1.info(`Begin auth after ⏰`,en(),`of SDK load`);let t=e.appID?.trim(),i=e.shopifyShop;if((Rn(t)||t.length!==24)&&Rn(i)){Y$1.warn(`Cooee App ID or Shop name is not configured`);return}this.authenticated=true,Ks(e);}static sendEvent(e,t,i){let o=new Ir$1(e,t,i?.triggerData);i?.occurred&&(o.occurred=i.occurred),j(o);}static updateProfile(e){for(let t in e)if(t.toLowerCase().startsWith(`ce `))throw new Error(`User property name cannot start with 'CE '`);Dt(e);}static setPageName(e){if(!e)return;let t=Be$3(),i=t.pageName;if(e===i)return;if(t.pageName=e,Yr$3.some(s=>e.includes(s))){Ho();return}let o={};i&&(o.ps=i);let n=new Ir$1(`CE Screen View`,o);n.occurred=t.jsLoadTime,j(n),Ho(n.occurred);}static previewPopup(e,t){import('./renderer-CTulP0OI-DgHUqOB-.js').then(({FreeformRenderer:i})=>{new i(t).render(e);});}static previewWidget(e){new K(new q(e)).renderSilently();}};function Rc(){window.CooeeSDK.cartChange$.subscribe(()=>{Vt();});}function _c(){if(window.opener){try{window.opener.postMessage({action:`COOEE_READY_FOR_PREVIEW`},`*`);}catch(r){Y$1.error(r);}window.addEventListener(`message`,r=>{if(Y$1.verbose(`Received event`,r),!r.origin.includes(`letscooee.com`)&&!r.origin.includes(`localhost`))return;let e=r.data;typeof e==`object`&&(e.action===`POPUP_PREVIEW`?(D.previewPopup(e.engagementTrigger),r.source?.postMessage({action:`PREVIEW_SUCCESSFUL`},r.origin)):e.action===`WIDGET_PREVIEW`&&(D.previewWidget(e.engagementTrigger),r.source?.postMessage({action:`PREVIEW_SUCCESSFUL`},r.origin)));});}}var Js=new U$1,Ys=0;Js.pipe(Fe$1(50)).subscribe(async r=>{kc(await $e()).catch(t=>{ke$2(t,`load-page-widgets`,{extra:{firstLoad:r}});});});function Vt(r=false){le$1(le).then(()=>{Js.next(r);});}async function as(r){let e=await $e();return Object.assign(r,e),me(`/v1/engagement/get-variant`,r)}async function kc(r$11){Ys++,Ys===1?Y$1.info(`Fetch widgets (after ⏰`,en()+` of SDK load)`):Y$1.info(`Fetch widgets`);let e=r({},r$11),t=Vn$1(`/v1/engagement/eligible`,D.globalRef.apiURLs?.engagementsURL);try{let i=await me(t,e);if(Y$1.info(`Widgets fetched ${Jr$3(i.timeTakenMs)}`),i.data.pageWidgets?.length)cr(i.data.pageWidgets.map(n=>new q(n)));if(i.data.cartWidgets?.length)ar(i.data.cartWidgets.map(n=>new q(n)));}catch(i){Y$1.error(`Error sending widget getter`,i);}}var Qs=x$2(dr$2()),zi=class r{static META_REQUIRED_FIELDS=[`ad_id`];static GOOGLE_REQUIRED_FIELDS=[`gad_source`,`gclid`];source;adID;campaignID;adName;campaignName;constructor(e){this.adID=e.adID,this.campaignID=e.campaignID,this.source=e.source;}static getAdParams(){let e;try{e=new Qs.URLBuilder(location.href);}catch{return {}}let t={};if(this.META_REQUIRED_FIELDS.every(n=>Array.from(e.getParams().keys()).includes(n)))return t={source:`META`,adID:e.getQueryParam(`ad_id`)?.trim(),campaignID:e.getQueryParam(`campaign_id`)?.trim()},new r(t);if(this.GOOGLE_REQUIRED_FIELDS.every(n=>Array.from(e.getParams().keys()).includes(n)))return t={source:`GOOGLE`},new r(t)}};var $o={d:(r,e)=>{for(var t in e)$o.o(e,t)&&!$o.o(r,t)&&Object.defineProperty(r,t,{enumerable:true,get:e[t]});},o:(r,e)=>Object.prototype.hasOwnProperty.call(r,e)},qo={};$o.d(qo,{A:()=>Ac,k:()=>Go});var br=function(r,e,t,i){return new(t||(t=Promise))(function(o,n){function s(v){try{l(i.next(v));}catch(w){n(w);}}function c(v){try{l(i.throw(v));}catch(w){n(w);}}function l(v){var w;v.done?o(v.value):(w=v.value,w instanceof t?w:new t(function(I){I(w);})).then(s,c);}l((i=i.apply(r,[])).next());})},yr=function(r,e){var t,i,o,n,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return n={next:c(0),throw:c(1),return:c(2)},typeof Symbol==`function`&&(n[Symbol.iterator]=function(){return this}),n;function c(l){return function(v){return (function(w){if(t)throw new TypeError(`Generator is already executing.`);for(;n&&(n=0,w[0]&&(s=0)),s;)try{if(t=1,i&&(o=2&w[0]?i.return:w[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,w[1])).done)return o;switch(i=0,o&&(w=[2&w[0],o.value]),w[0]){case 0:case 1:o=w;break;case 4:return s.label++,{value:w[1],done:!1};case 5:s.label++,i=w[1],w=[0];continue;case 7:w=s.ops.pop(),s.trys.pop();continue;default:if(o=s.trys,!((o=o.length>0&&o[o.length-1])||w[0]!==6&&w[0]!==2)){s=0;continue}if(w[0]===3&&(!o||w[1]>o[0]&&w[1]<o[3])){s.label=w[1];break}if(w[0]===6&&s.label<o[1]){s.label=o[1],o=w;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(w);break}o[2]&&s.ops.pop(),s.trys.pop();continue}w=e.call(r,s);}catch(I){w=[6,I],i=0;}finally{t=o=0;}if(5&w[0])throw w[1];return {value:w[0]?w[1]:void 0,done:true}})([l,v])}}};function Go(){return br(this,void 0,Promise,function(){return yr(this,function(r){switch(r.label){case 0:return [4,new Promise(function(e,t){var i=`Unknown`,o=false;function n(C){o||(o=true,e({isPrivate:C,browserName:i}));}function s(){var C=0,P=parseInt(`-1`);try{P.toFixed(P);}catch(_){C=_.message.length;}return C}function c(){return navigator.msSaveBlob!==void 0&&(function(C){try{return C===eval.toString().length}catch{return false}})(39)}function l(){var C;return br(this,void 0,void 0,function(){var P,_;return yr(this,function(y){switch(y.label){case 0:return y.trys.push([0,2,,3]),[4,navigator.storage.getDirectory()];case 1:return y.sent(),n(false),[3,3];case 2:return P=y.sent(),_=P,P instanceof Error&&(_=(C=P.message)!==null&&C!==void 0?C:P),typeof _!=`string`?(n(false),[2]):(n(!!_.includes(`unknown transient reason`)),[3,3]);case 3:return [2]}})})}function v(){var C;return br(this,void 0,Promise,function(){return yr(this,function(P){switch(P.label){case 0:return ((C=navigator.storage)===null||C===void 0?void 0:C.getDirectory)===void 0?[3,2]:[4,l()];case 1:return P.sent(),[3,3];case 2:navigator.maxTouchPoints!==void 0?(function(){var _=String(Math.random());try{var y=indexedDB.open(_,1);y.onupgradeneeded=function(z){var ee=z.target.result,b=function(Yi){n(Yi);};try{ee.createObjectStore(`t`,{autoIncrement:!0}).put(new Blob),b(!1);}catch(Yi){(Yi.message||``).includes(`are not yet supported`)?b(!0):b(!1);}finally{ee.close(),indexedDB.deleteDatabase(_);}},y.onerror=function(){return n(!1)};}catch{n(false);}})():(function(){var _=window.openDatabase,y=window.localStorage;try{_(null,null,null,null);}catch{n(true);return}try{y.setItem(`test`,`1`),y.removeItem(`test`);}catch{n(true);return}n(false);})(),P.label=3;case 3:return [2]}})})}function w(){navigator.webkitTemporaryStorage.queryUsageAndQuota(function(C,P){var _;n(Math.round(P/1048576)<2*Math.round(((_=window).performance!==void 0&&_.performance.memory!==void 0&&_.performance.memory.jsHeapSizeLimit!==void 0?performance.memory.jsHeapSizeLimit:1073741824)/1048576));},function(C){t(new Error(`detectIncognito somehow failed to query storage quota: `+C.message));});}function I(){self.Promise!==void 0&&self.Promise.allSettled!==void 0?w():(0, window.webkitRequestFileSystem)(0,1,function(){n(false);},function(){n(true);});}function R(){return br(this,void 0,Promise,function(){var C,P;return yr(this,function(_){switch(_.label){case 0:if(!navigator.storage||!navigator.storage.getDirectory)return [3,4];_.label=1;case 1:return _.trys.push([1,3,,4]),[4,navigator.storage.getDirectory()];case 2:return _.sent(),n(false),[3,4];case 3:return C=_.sent(),typeof(P=C instanceof Error&&typeof C.message==`string`?C.message:String(C))!=`string`?(n(false),[2]):(n(P.includes(`Security error`)),[2]);case 4:return n(navigator.serviceWorker===void 0),[2]}})})}(function(){return br(this,void 0,Promise,function(){return yr(this,function(C){switch(C.label){case 0:return s()!==44?[3,2]:(i=`Safari`,[4,v()]);case 1:return C.sent(),[3,6];case 2:return s()!==51?[3,3]:(P=navigator.userAgent,i=P.match(/Chrome/)?navigator.brave!==void 0?`Brave`:P.match(/Edg/)?`Edge`:P.match(/OPR/)?`Opera`:`Chrome`:`Chromium`,I(),[3,6]);case 3:return s()!==25?[3,5]:(i=`Firefox`,[4,R()]);case 4:return C.sent(),[3,6];case 5:c()?(i=`Internet Explorer`,n(window.indexedDB===void 0)):t(new Error(`detectIncognito cannot determine the browser`)),C.label=6;case 6:return [2]}var P;})})})().catch(t);})];case 1:return [2,r.sent()]}})})}typeof window<`u`&&(window.detectIncognito=Go);var Ac=Go,Zs=qo.A;qo.k;var ea=x$2(yt$1()),ta=async()=>{let r={};try{return await Oc(r)}catch(e){return ke$2(e,`device-properties`),r}},Oc=async r=>{let e=window.CooeeSDK.uaParser;Lc(r),Nc(r),Mc(r),r.referrer=document.referrer,r.host=location.origin,r.path=location.pathname,r.qs=location.search,r.locale=navigator.language,r.display={w:screen.width,h:screen.height,pd:screen.pixelDepth,dpi:Uc()},r.win={ow:window.outerWidth,oh:window.outerHeight,iw:window.innerWidth,ih:window.innerHeight,dpr:window.devicePixelRatio},navigator.webdriver&&(r.headless=true,ro({headless:true}));let t=e.getResult();return r.browser=t.browser,r.device=t.device,r.engine=t.engine,r.cpu=t.cpu,r.os=t.os,r.navigatorUA=navigator.userAgent,await Promise.all([Vc(r),Fc(r),Wc(r)]),r},Lc=r=>{let e=navigator;if(!e.deviceMemory)return;r.mem={tot:e.deviceMemory*1024};},Nc=r=>{let e=navigator,t=e.connection||e.mozConnection||e.webkitConnection;t?.effectiveType&&(r.net={type:t.effectiveType});},Mc=r=>{let e=screen.orientation?.type;e&&(r.orientation=e);},Uc=()=>{if(!document.body)return;let r=document.createElement(`div`);r.setAttribute(`style`,`height: 1in; left: -100%; position: absolute; top: -100%; width: 1in;`),document.body.appendChild(r);let e=window.devicePixelRatio||1,t=r.offsetWidth*e;return document.body.removeChild(r),t},Fc=async r=>{try{await Bc(r);}catch(e){Y$1.error(`Unable to get location`,e);}},Bc=async r=>{if(!(!navigator.geolocation||!navigator.permissions||(await navigator.permissions.query({name:`geolocation`})).state!=`granted`))return new Promise(t=>{navigator.geolocation.getCurrentPosition(i=>{r.coords=[i.coords.latitude,i.coords.longitude],t();},()=>t());})},Vc=async r=>{if(`getBattery`in navigator)try{let t=await navigator.getBattery();r.bat={l:t.level*100,c:t.charging},ro({"battery.level":r.bat.l,"battery.charging":r.bat.c});}catch{}},Wc=async r=>{try{(await Zs())?.isPrivate&&(r.incognito=!0,ro({incognito:!0}));}catch(e){ea.default.error(`Unable to detect private/incognito window`,e);}};function ia(r){if(!oa())return;let e=Ye$2[r]?.toLowerCase();e&&(Y$1.verbose(`Sending ${e} intent to MS Clarity`),window.clarity(`set`,`Cooee Intent`,e));}function oa(){return window.clarity&&typeof window.clarity==`function`}var le=new gr$1(1),sa=`App ID or Shopify shop is not set`,jo=``,Ye=``,zo=``,Ki;async function Ks(r){jo=r.appID,zo=r.shopifyShop;try{await Hc(),le.next(!0),le.complete();}catch(e){e?.message?.includes(sa)&&ke$2(e,`initiate-session`,{extra:r}),Y$1.error(`Unable to initiate session`,e);}}async function Xn(){return await aa(false),Ki}async function Xs(){let r=Date.now();await gi.request(`gen_did`,async()=>{Ye=await fe$4.get(`did`),Ye||(Ye=new $$2().toHexString(),await fe$4.set(`did`,Ye)),Y$1.info(`Device ID:`,Ye),la(Ye);}),Y$1.info(`Device ID set/get done ${Jr$3(Date.now()-r)}`);}async function na(){if(Ki)return;let[r,e,t]=await Promise.all([ve$2.get(`id`,``),fe$4.get(`sessionNumber`,1),ve$2.get(`landing`,{})]);ca(r,e,t);}async function Hc(){await aa(true);}async function aa(r){let e=false;return await qc()?(await $c(),e=true):await Gc()?(await na(),e=true):await na(),e?await zc():r&&Vt(),e}async function $c(){Y$1.info(`Starting new session`),await ve$2.clear();let r=new Date,e=new $$2().toHexString(),t=await fe$4.get(`sessionNumber`,0)+1,i=vi();await Promise.all([fe$4.set(`sessionNumber`,t),ve$2.set(`id`,e),ve$2.set(`lastUsedTime`,r.getTime()),ve$2.set(`landing`,i)]),ca(e,t,i);}async function qc(){let r=await ve$2.get(`lastUsedTime`,0);return r?(new Date().getTime()-r)/1e3>1800:true}async function Gc(){return !await ve$2.get(`synced`,false)}async function jc(){if(!jo&&!zo)throw new Error(sa);let r$12=await ta(),e=Ci();return s(r(r({deviceID:Ye,deviceProps:r$12,appID:jo,shopifyShop:zo},Ki),e),{sdk:Gr$3,ad:zi.getAdParams(),occurred:Xc(Be$3().jsLoadTime),properties:{},uuid:await fe$4.get(`uuid`)})}async function zc(){Y$1.info(`Ensuring session on server`),await Kc();let r=Date.now(),e=await jc();Y$1.info(`Session data generated ${Jr$3(Date.now()-r)}`);let t=Vn$1(`/v1/event/validate-session`,D.globalRef.apiURLs?.baseURL??`https://cdn.sdk-api1.letscooee.com`);try{let i=await me(t,e);if(Y$1.info(`Auth finished ${Jr$3(i.timeTakenMs)}`),await ve$2.set(`synced`,!0),i.data.deviceID&&(await fe$4.set(`did`,Ye),la(i.data.deviceID)),i.data.pageWidgets?.length)cr(i.data.pageWidgets.map(n=>new q(n)));if(i.data.cartWidgets?.length)ar(i.data.cartWidgets.map(n=>new q(n)));}catch(i){throw Y$1.error(i),i}}async function Kc(){let r=await fe$4.get(`firstSeen`),e=r?new Date(r):new Date;r||await fe$4.set(`firstSeen`,e.toISOString()),Zn(e),to(`Visitor Info`,{first_seen:e.toISOString()});}function ca(r,e,t){ro({"cooee_session.number":e}),to(`Visitor Session`,{id:r,number:e,landing_page:t}),Y$1.info(`Session number: ${e}, id: ${r}`),Ki={sessionID:r,sessionNumber:e,landingPage:t};}function la(r){Qn(r);to(`Visitor Info`,{device_id:r,[`device_id_${Math.floor(Math.random()*1e4)}`]:r}),eo({id:r});}function Xc(r){return (new Date().getTime()-r.getTime())/1e3>1800?new Date:r}var Xi=class{triggerData;render(e){e.contentSource===Be$2.KLAVIYO&&(this.triggerData=e,window.addEventListener(`klaviyoForms`,this.handleKlaviyoEvents.bind(this)),window._klOnsite=window._klOnsite||[],window._klOnsite.push([`openForm`,e.klaviyoFormID]));}handleKlaviyoEvents(e){if(e.type!==`klaviyoForms`)return;let t=e.detail;if(t.formId!==this.triggerData.klaviyoFormID){Y$1.warn(`Received invalid trigger callback`);return}switch(t.type){case `open`:fe(new Ir$1(`CE Trigger Displayed`,{form:{id:t.formId}},this.triggerData));break;case `stepSubmit`:{let i=this.getFormDetails(t);fe(new Ir$1(`CE Form Submitted`,{form:i},this.triggerData)),Dt(i);break}case `close`:window.removeEventListener(`klaviyoForms`,this.handleKlaviyoEvents.bind(this)),fe(new Ir$1(`CE Trigger Closed`,{form:{id:t.formId}},this.triggerData));break}}getFormDetails(e){let t={id:e.formId},i=e.metaData;if(pe$4.hasKeys(i)){let o=[`email`,`phone_number`,`first_name`,`last_name`,`$email`,`$phone_number`,`$first_name`,`$last_name`];Object.keys(i).forEach(c=>{o.includes(c)||(t[c]=i[c]);}),t.email=i.$email??i.email,t.mobile=i.$phone_number??i.phone_number;let n=i.$first_name??i.first_name,s=i.$last_name??i.last_name;(n?.length||s?.length)&&(t.name=n+` `+s);}return t}};function ma(r){if(!Yc()||!he$3.get().pixelPush)return;let t=Ye$2[r.intent]?.toLowerCase();t&&(Y$1.verbose(`Sending ${t} intent to Facebook Pixel`),window.fbq(`trackCustom`,`CooeeIntent`,{intent_value:t}));}function Yc(){return window.fbq&&typeof window.fbq==`function`}var ho=`/v1/event/track-page-unload`;function j(r){Y$1.verbose(`Waiting for auth to send event ${r.name}`),le$1(le).then(()=>fe(r));}function $s(r){le$1(le).then(()=>{Jc(r);});}async function Jc(r){let e=Be$3().currentPageViewEvent;if(!e){Y$1.warn(`No page view event was stored previously`);return}let t={pageViewEventID:e.id,pageViewEventName:e.name,pageActiveTimeMS:r};Y$1.verbose(`Sending page unload`,t);let i=Vn$1(ho,D.globalRef.apiURLs?.eventURL);try{await me(i,t);}catch(o){throw Y$1.error(`Error sending page unload for ${e} to server`,o),o}}function fe(r){Qc(r);}async function Qc(r){if(Y$1.verbose(`Sending event: ${r.name}`,r),ol(r)){Y$1.warn(`Rejecting event ${r.name}`);return}Mn();let e=await $e();Object.assign(r,e),Hs(),ve$2.set(`lastUsedTime`,new Date().getTime());let t=il(r.name),o=Vn$1(`/v1/event/track/${t.toLowerCase().replace(/\s+/g,`-`)}`,D.globalRef.apiURLs?.eventURL);try{let n=await me(o,r);Y$1.info(`Event tracked:`,t),Zc(r)&&(Be$3().currentPageViewEvent={id:r.id,name:r.name}),el(r,n.data);}catch(n){throw Y$1.error(`Error sending event ${r.name} to server`,n),n}}function Zc(r){return qr$3.includes(r.name)?r.name===`View Cart`?!r.properties.drawer:true:false}function el(r,e){tl(r,e).catch(t=>{ke$2(t,`process-popup-response`,{extra:{event:r,response:e}});}),rl(e);}async function tl(r,e){if(!e.triggerData)return;let t=new q(e.triggerData);t.occurred=r.occurred,Y$1.log(`${t} will be shown`);let i;try{i=await hi(t);}catch(n){Y$1.error(`Failed to refresh the products`,n);return}if(t.items=i,t.contentSource===Be$2.KLAVIYO){new Xi().render(t);return}new(await(import('./renderer-CTulP0OI-DgHUqOB-.js'))).FreeformRenderer().renderEngagement(t).catch(n=>{ke$2(n,`render-popup`,{extra:{event:r},engagementTrigger:t});});}function rl(r){r.intent&&(ia(r.intent),ma(r),Y$1.info(`Intent is ${Ye$2[r.intent]}`));}function il(r){return r.replace(`CE `,``).replace(`Trigger`,`Campaign`).replace(`Screen`,`Page`).replace(`App `,``)}function ol(r){return r.trigger?.triggerID===`test`||r.trigger?.triggerID===`preview`?(Y$1.warn(`Not sending event as this is a test trigger`),true):false}
78
78
 
79
79
  function a(i){return i?new Date(i).toLocaleString(`en-US`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,fractionalSecondDigits:3,hour12:false,timeZoneName:`short`}):`N/A`}function M(){let i=performance.getEntriesByType?.(`resource`);if(i)return i.find(o=>o.name.includes(`@letscooee/web-sdk`)&&o.name.includes(`main.min.js`))}function x(i){window.cooeeSDKPreview||(document.readyState===`complete`?setTimeout(()=>L(i),100):window.addEventListener(`load`,()=>{setTimeout(()=>L(i),100);}));}function L(i){try{N(i),z$3();}catch(o){console.error(`Failed to print debugging logs`,o);}}function N(i){let o=performance.getEntriesByType?.(`navigation`)?.[0],f=window.CooeeSDK?.pageLoadTime,l=M(),s=performance.timeOrigin||0,n=o?.responseEnd?s+o.responseEnd:void 0,d=s,c=o?.domContentLoadedEventEnd||0,m=o?.loadEventEnd||0,u=n&&n>0?n:f?f.getTime():0,T=n&&n>0?`HTML download complete`:`inline script execution`,S=c>0?d+c:void 0,$=m>0?d+m:void 0;Y$1.info(`⏱️ ═══════════════ Performance Timing Report ═══════════════`),Y$1.info(`📅 Absolute Timestamps (Local Time):`),Y$1.info(` Note: Inline script can execute during HTML download (incremental parsing)`),Y$1.info(``),Y$1.info(` 1. Navigation started: ${a(d)}`);let r=f?f.getTime():0;if(n&&n>0&&r?r<n?(Y$1.info(` 2. Inline script executed: ${a(r)} (during HTML parsing)`),Y$1.info(` 3. HTML download complete: ${a(n)}`)):(Y$1.info(` 2. HTML download complete: ${a(n)}`),Y$1.info(` 3. Inline script executed: ${a(r)}`)):n&&n>0?Y$1.info(` 2. HTML download complete: ${a(n)}`):r&&Y$1.info(` 2. Inline script executed: ${a(r)}`),Y$1.info(` 4. SDK module loaded: ${a(i.getTime())} (from CDN)`),S&&Y$1.info(` 5. DOMContentLoaded: ${a(S)}`),$&&Y$1.info(` 6. Page fully loaded: ${a($)}`),Y$1.info(``),Y$1.info(`⏱️ Relative Timings:`),n&&n>0&&d){let g=n-d;Y$1.info(` Shopify backend + HTML download: ${Ve$4(g)} (not Cooee SDK)`);}if(u){let g=i.getTime()-u;if(g<0){let w=r>0?r:d,b=r>0?`inline script execution`:`navigation start`,K=i.getTime()-w;Y$1.info(` SDK module load time: ${Ve$4(K)} after ${b}`),Y$1.info(` (Note: Using earlier baseline because SDK loaded before ${T})`);}else Y$1.info(` SDK module load time: ${Ve$4(g)} after ${T}`),Y$1.info(` (Baseline: ${T} at ${a(u)})`);let v=i.getTime()-d;Y$1.info(` \u{1F3AF} Total SDK load time: ${Ve$4(v)} (from navigation start to SDK ready)`);}c&&c>0&&Y$1.info(` DOMContentLoaded: ${Ve$4(c)} after navigation start`),m&&m>0&&Y$1.info(` Page fully loaded: ${Ve$4(m)} after navigation start`),C(l),Y$1.info(`⏱️ ═══════════════════════════════════════════════════════`);}function C(i){if(!i){Y$1.info(``),Y$1.info(`📦 SDK Resource Metrics: Not available`);return}Y$1.info(``),Y$1.info(`📦 SDK Resource Metrics:`),Y$1.info(` URL: ${i.name}`),Y$1.info(` Download duration: ${Ve$4(i.duration)}`);let o=i.transferSize===0;if(Y$1.info(` Served from: ${o?`💾 Cache (disk/memory)`:`🌐 Network`}`),!o){Y$1.info(` Transfer size: ${d$3(i.transferSize)}`),Y$1.info(` Encoded size: ${d$3(i.encodedBodySize)}`),Y$1.info(` Decoded size: ${d$3(i.decodedBodySize)}`);let f=(1-i.encodedBodySize/i.decodedBodySize)*100;f>0&&Y$1.info(` Compression ratio: ${f.toFixed(1)}%`);}if(i.domainLookupEnd>0){let f=i.domainLookupEnd-i.domainLookupStart,l=i.connectEnd-i.connectStart,s=i.responseStart-i.requestStart,n=i.responseEnd-i.responseStart;Y$1.info(` Timing breakdown:`),f>0&&Y$1.info(` DNS lookup: ${Ve$4(f)}`),l>0&&Y$1.info(` TCP connect: ${Ve$4(l)}`),s>0&&Y$1.info(` Request: ${Ve$4(s)}`),n>0&&Y$1.info(` Response: ${Ve$4(n)}`);}}
80
80
 
81
- var sdkDebugLogsByGSIOpq = /*#__PURE__*/Object.freeze({
81
+ var sdkDebugLogsB_7YZA4X = /*#__PURE__*/Object.freeze({
82
82
  __proto__: null,
83
83
  printAllDebugLogs: x
84
84
  });
85
85
 
86
- performance.mark(`cooee-sdk-start`);var n=new Date;window.cooeeShopifyScriptLoaded||(window.cooeeShopifyScriptLoaded=true,Wn$1(),$n$1(),await D.initForMerchantWebsiteOnly(n),be$2(),performance.measure(`cooee-sdk-init`,`cooee-sdk-start`),Nr$2()&&Promise.resolve().then(function () { return sdkDebugLogsByGSIOpq; }).then(({printAllDebugLogs:a})=>a(n)));
86
+ performance.mark(`cooee-sdk-start`);var n=new Date;window.cooeeShopifyScriptLoaded||(window.cooeeShopifyScriptLoaded=true,Wn$1(),$n$1(),await D.initForMerchantWebsiteOnly(n),be$2(),performance.measure(`cooee-sdk-init`,`cooee-sdk-start`),Nr$2()&&Promise.resolve().then(function () { return sdkDebugLogsB_7YZA4X; }).then(({printAllDebugLogs:a})=>a(n)));
87
87
 
88
- export { $r as $, A$1 as A, Be as B, m$1 as C, vs$1 as D, ve as E, Fe as F, Gr as G, He$1 as H, Ir$1 as I, pi$1 as J, bi$1 as K, ii$1 as L, M$1 as M, Nn$1 as N, Fs$1 as O, Ps$1 as P, Se$1 as Q, Rt as R, S$1 as S, ye$1 as T, U$1 as U, Ve$1 as V, Ce$1 as W, Me$1 as X, De$1 as Y, Vi$1 as Z, _e$1 as _, Mi$1 as a, $e$1 as a0, gr$1 as a1, Fe$2 as a2, qe$1 as a3, Re$1 as a4, Fe$3 as a5, We$1 as a6, Je as a7, Ae$2 as a8, ge$2 as a9, V$1 as b, H$1 as c, d$2 as d, F as e, fe as f, qr as g, bt as h, qt as i, Vr as j, Hr as k, le$3 as l, mt as m, n$1 as n, nt$1 as o, f as p, q, Fr as r, He$2 as s, tt as t, ue$2 as u, v, wi as w, q$1 as x, ye$3 as y, Sr as z };
88
+ export { $r as $, A$1 as A, Be as B, Ct as C, vs$1 as D, ve as E, Fe as F, Gr as G, He$1 as H, Ir$1 as I, pi$1 as J, bi$1 as K, ii$1 as L, M$1 as M, Nn$1 as N, Fs$1 as O, Ps$1 as P, Se$1 as Q, Rt as R, S$1 as S, ye$1 as T, U$1 as U, Ve$1 as V, Ce$1 as W, Me$1 as X, De$1 as Y, Vi$1 as Z, _e$1 as _, Mi$1 as a, $e$1 as a0, gr$1 as a1, Fe$2 as a2, qe$1 as a3, Re$1 as a4, Fe$3 as a5, We$1 as a6, Je as a7, Ae$2 as a8, ge$2 as a9, V$1 as b, H$1 as c, d$2 as d, F as e, fe as f, qr as g, qt as h, Vr as i, Hr as j, nt$1 as k, le$3 as l, mt as m, n$1 as n, f as o, Fr as p, q, He$2 as r, q$1 as s, tt as t, ue$2 as u, v, wi as w, Sr as x, ye$3 as y, m$1 as z };