@letscooee/web-sdk 12.1.2 → 12.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.
@@ -1,4 +1,4 @@
1
- import{a as $s,b as zt,c as ge,e as In,f as tr,g as js,h as Ws,l as rr}from"./chunk-XJGHCCKJ.js";import{a as nr}from"./chunk-SBONG2TS.js";import{$ as pi,$a as bn,Aa as yt,Ba as ke,Ca as yn,D as gn,Da as B,E as tt,Ea as Ps,Fa as Ls,I as _n,K as At,L as _t,La as it,Na as En,O as D,Oa as Qn,Pa as Zn,Qa as ee,Ra as ot,Sa as Nt,Wa as Ue,X as Se,Xa as Be,Y as fi,Ya as ve,Za as Vs,_ as Ns,_a as Fs,ab as er,b as xs,ba as vt,bb as ks,ca as vn,cb as He,db as Ge,fb as Sn,ga as $t,ha as Q,hb as st,ia as Z,ib as Ot,jb as Et,ka as jt,kb as Ce,la as Wt,ma as oe,mb as Cn,na as W,o as Ds,oa as z,pa as Me,q as ws,qa as fe,ra as me,s as li,sa as nt,sb as Us,t as di,tb as Bs,u as As,ub as Hs,v as _e,va as rt,wa as Os,wb as Gs,x as Te,xa as Rs,y as xe,ya as Ms,za as We}from"./chunk-I62LO6BZ.js";import{a as _,b as V,c as hn,d as Ts,e as Ll,f as Vl,g as Jn}from"./chunk-V7UGKYBN.js";var ta=Ll((ea,gi)=>{"use strict";(function(e){if(typeof ea=="object"&&typeof gi<"u")gi.exports=e();else if(typeof define=="function"&&define.amd)define([],e);else{var t;typeof window<"u"?t=window:typeof global<"u"?t=global:typeof self<"u"?t=self:t=this,t.localforage=e()}})(function(){var e,t,n;return(function r(i,o,s){function u(y,p){if(!o[y]){if(!i[y]){var E=typeof hn=="function"&&hn;if(!p&&E)return E(y,!0);if(l)return l(y,!0);var v=new Error("Cannot find module '"+y+"'");throw v.code="MODULE_NOT_FOUND",v}var N=o[y]={exports:{}};i[y][0].call(N.exports,function(U){var M=i[y][1][U];return u(M||U)},N,N.exports,r,i,o,s)}return o[y].exports}for(var l=typeof hn=="function"&&hn,h=0;h<s.length;h++)u(s[h]);return u})({1:[function(r,i,o){(function(s){"use strict";var u=s.MutationObserver||s.WebKitMutationObserver,l;if(u){var h=0,y=new u(U),p=s.document.createTextNode("");y.observe(p,{characterData:!0}),l=function(){p.data=h=++h%2}}else if(!s.setImmediate&&typeof s.MessageChannel<"u"){var E=new s.MessageChannel;E.port1.onmessage=U,l=function(){E.port2.postMessage(0)}}else"document"in s&&"onreadystatechange"in s.document.createElement("script")?l=function(){var O=s.document.createElement("script");O.onreadystatechange=function(){U(),O.onreadystatechange=null,O.parentNode.removeChild(O),O=null},s.document.documentElement.appendChild(O)}:l=function(){setTimeout(U,0)};var v,N=[];function U(){v=!0;for(var O,F,X=N.length;X;){for(F=N,N=[],O=-1;++O<X;)F[O]();X=N.length}v=!1}i.exports=M;function M(O){N.push(O)===1&&!v&&l()}}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{}],2:[function(r,i,o){"use strict";var s=r(1);function u(){}var l={},h=["REJECTED"],y=["FULFILLED"],p=["PENDING"];i.exports=E;function E(x){if(typeof x!="function")throw new TypeError("resolver must be a function");this.state=p,this.queue=[],this.outcome=void 0,x!==u&&M(this,x)}E.prototype.catch=function(x){return this.then(null,x)},E.prototype.then=function(x,H){if(typeof x!="function"&&this.state===y||typeof H!="function"&&this.state===h)return this;var L=new this.constructor(u);if(this.state!==p){var G=this.state===y?x:H;N(L,G,this.outcome)}else this.queue.push(new v(L,x,H));return L};function v(x,H,L){this.promise=x,typeof H=="function"&&(this.onFulfilled=H,this.callFulfilled=this.otherCallFulfilled),typeof L=="function"&&(this.onRejected=L,this.callRejected=this.otherCallRejected)}v.prototype.callFulfilled=function(x){l.resolve(this.promise,x)},v.prototype.otherCallFulfilled=function(x){N(this.promise,this.onFulfilled,x)},v.prototype.callRejected=function(x){l.reject(this.promise,x)},v.prototype.otherCallRejected=function(x){N(this.promise,this.onRejected,x)};function N(x,H,L){s(function(){var G;try{G=H(L)}catch(ne){return l.reject(x,ne)}G===x?l.reject(x,new TypeError("Cannot resolve promise with itself")):l.resolve(x,G)})}l.resolve=function(x,H){var L=O(U,H);if(L.status==="error")return l.reject(x,L.value);var G=L.value;if(G)M(x,G);else{x.state=y,x.outcome=H;for(var ne=-1,J=x.queue.length;++ne<J;)x.queue[ne].callFulfilled(H)}return x},l.reject=function(x,H){x.state=h,x.outcome=H;for(var L=-1,G=x.queue.length;++L<G;)x.queue[L].callRejected(H);return x};function U(x){var H=x&&x.then;if(x&&(typeof x=="object"||typeof x=="function")&&typeof H=="function")return function(){H.apply(x,arguments)}}function M(x,H){var L=!1;function G(Oe){L||(L=!0,l.reject(x,Oe))}function ne(Oe){L||(L=!0,l.resolve(x,Oe))}function J(){H(ne,G)}var de=O(J);de.status==="error"&&G(de.value)}function O(x,H){var L={};try{L.value=x(H),L.status="success"}catch(G){L.status="error",L.value=G}return L}E.resolve=F;function F(x){return x instanceof this?x:l.resolve(new this(u),x)}E.reject=X;function X(x){var H=new this(u);return l.reject(H,x)}E.all=Ae;function Ae(x){var H=this;if(Object.prototype.toString.call(x)!=="[object Array]")return this.reject(new TypeError("must be an array"));var L=x.length,G=!1;if(!L)return this.resolve([]);for(var ne=new Array(L),J=0,de=-1,Oe=new this(u);++de<L;)Ze(x[de],de);return Oe;function Ze(fn,qn){H.resolve(fn).then(ei,function(Ht){G||(G=!0,l.reject(Oe,Ht))});function ei(Ht){ne[qn]=Ht,++J===L&&!G&&(G=!0,l.resolve(Oe,ne))}}}E.race=Ne;function Ne(x){var H=this;if(Object.prototype.toString.call(x)!=="[object Array]")return this.reject(new TypeError("must be an array"));var L=x.length,G=!1;if(!L)return this.resolve([]);for(var ne=-1,J=new this(u);++ne<L;)de(x[ne]);return J;function de(Oe){H.resolve(Oe).then(function(Ze){G||(G=!0,l.resolve(J,Ze))},function(Ze){G||(G=!0,l.reject(J,Ze))})}}},{1:1}],3:[function(r,i,o){(function(s){"use strict";typeof s.Promise!="function"&&(s.Promise=r(2))}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{2:2}],4:[function(r,i,o){"use strict";var s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(a){return typeof a}:function(a){return a&&typeof Symbol=="function"&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};function u(a,d){if(!(a instanceof d))throw new TypeError("Cannot call a class as a function")}function l(){try{if(typeof indexedDB<"u")return indexedDB;if(typeof webkitIndexedDB<"u")return webkitIndexedDB;if(typeof mozIndexedDB<"u")return mozIndexedDB;if(typeof OIndexedDB<"u")return OIndexedDB;if(typeof msIndexedDB<"u")return msIndexedDB}catch{return}}var h=l();function y(){try{if(!h||!h.open)return!1;var a=typeof openDatabase<"u"&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),d=typeof fetch=="function"&&fetch.toString().indexOf("[native code")!==-1;return(!a||d)&&typeof indexedDB<"u"&&typeof IDBKeyRange<"u"}catch{return!1}}function p(a,d){a=a||[],d=d||{};try{return new Blob(a,d)}catch(f){if(f.name!=="TypeError")throw f;for(var c=typeof BlobBuilder<"u"?BlobBuilder:typeof MSBlobBuilder<"u"?MSBlobBuilder:typeof MozBlobBuilder<"u"?MozBlobBuilder:WebKitBlobBuilder,m=new c,g=0;g<a.length;g+=1)m.append(a[g]);return m.getBlob(d.type)}}typeof Promise>"u"&&r(3);var E=Promise;function v(a,d){d&&a.then(function(c){d(null,c)},function(c){d(c)})}function N(a,d,c){typeof d=="function"&&a.then(d),typeof c=="function"&&a.catch(c)}function U(a){return typeof a!="string"&&(console.warn(a+" used as a key, but it is not a string."),a=String(a)),a}function M(){if(arguments.length&&typeof arguments[arguments.length-1]=="function")return arguments[arguments.length-1]}var O="local-forage-detect-blob-support",F=void 0,X={},Ae=Object.prototype.toString,Ne="readonly",x="readwrite";function H(a){for(var d=a.length,c=new ArrayBuffer(d),m=new Uint8Array(c),g=0;g<d;g++)m[g]=a.charCodeAt(g);return c}function L(a){return new E(function(d){var c=a.transaction(O,x),m=p([""]);c.objectStore(O).put(m,"key"),c.onabort=function(g){g.preventDefault(),g.stopPropagation(),d(!1)},c.oncomplete=function(){var g=navigator.userAgent.match(/Chrome\/(\d+)/),f=navigator.userAgent.match(/Edge\//);d(f||!g||parseInt(g[1],10)>=43)}}).catch(function(){return!1})}function G(a){return typeof F=="boolean"?E.resolve(F):L(a).then(function(d){return F=d,F})}function ne(a){var d=X[a.name],c={};c.promise=new E(function(m,g){c.resolve=m,c.reject=g}),d.deferredOperations.push(c),d.dbReady?d.dbReady=d.dbReady.then(function(){return c.promise}):d.dbReady=c.promise}function J(a){var d=X[a.name],c=d.deferredOperations.pop();if(c)return c.resolve(),c.promise}function de(a,d){var c=X[a.name],m=c.deferredOperations.pop();if(m)return m.reject(d),m.promise}function Oe(a,d){return new E(function(c,m){if(X[a.name]=X[a.name]||os(),a.db)if(d)ne(a),a.db.close();else return c(a.db);var g=[a.name];d&&g.push(a.version);var f=h.open.apply(h,g);d&&(f.onupgradeneeded=function(b){var S=f.result;try{S.createObjectStore(a.storeName),b.oldVersion<=1&&S.createObjectStore(O)}catch(C){if(C.name==="ConstraintError")console.warn('The database "'+a.name+'" has been upgraded from version '+b.oldVersion+" to version "+b.newVersion+', but the storage "'+a.storeName+'" already exists.');else throw C}}),f.onerror=function(b){b.preventDefault(),m(f.error)},f.onsuccess=function(){var b=f.result;b.onversionchange=function(S){S.target.close()},c(b),J(a)}})}function Ze(a){return Oe(a,!1)}function fn(a){return Oe(a,!0)}function qn(a,d){if(!a.db)return!0;var c=!a.db.objectStoreNames.contains(a.storeName),m=a.version<a.db.version,g=a.version>a.db.version;if(m&&(a.version!==d&&console.warn('The database "'+a.name+`" can't be downgraded from version `+a.db.version+" to version "+a.version+"."),a.version=a.db.version),g||c){if(c){var f=a.db.version+1;f>a.version&&(a.version=f)}return!0}return!1}function ei(a){return new E(function(d,c){var m=new FileReader;m.onerror=c,m.onloadend=function(g){var f=btoa(g.target.result||"");d({__local_forage_encoded_blob:!0,data:f,type:a.type})},m.readAsBinaryString(a)})}function Ht(a){var d=H(atob(a.data));return p([d],{type:a.type})}function is(a){return a&&a.__local_forage_encoded_blob}function Vu(a){var d=this,c=d._initReady().then(function(){var m=X[d._dbInfo.name];if(m&&m.dbReady)return m.dbReady});return N(c,a,a),c}function Fu(a){ne(a);for(var d=X[a.name],c=d.forages,m=0;m<c.length;m++){var g=c[m];g._dbInfo.db&&(g._dbInfo.db.close(),g._dbInfo.db=null)}return a.db=null,Ze(a).then(function(f){return a.db=f,qn(a)?fn(a):f}).then(function(f){a.db=d.db=f;for(var b=0;b<c.length;b++)c[b]._dbInfo.db=f}).catch(function(f){throw de(a,f),f})}function et(a,d,c,m){m===void 0&&(m=1);try{var g=a.db.transaction(a.storeName,d);c(null,g)}catch(f){if(m>0&&(!a.db||f.name==="InvalidStateError"||f.name==="NotFoundError"))return E.resolve().then(function(){if(!a.db||f.name==="NotFoundError"&&!a.db.objectStoreNames.contains(a.storeName)&&a.version<=a.db.version)return a.db&&(a.version=a.db.version+1),fn(a)}).then(function(){return Fu(a).then(function(){et(a,d,c,m-1)})}).catch(c);c(f)}}function os(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function ku(a){var d=this,c={db:null};if(a)for(var m in a)c[m]=a[m];var g=X[c.name];g||(g=os(),X[c.name]=g),g.forages.push(d),d._initReady||(d._initReady=d.ready,d.ready=Vu);var f=[];function b(){return E.resolve()}for(var S=0;S<g.forages.length;S++){var C=g.forages[S];C!==d&&f.push(C._initReady().catch(b))}var I=g.forages.slice(0);return E.all(f).then(function(){return c.db=g.db,Ze(c)}).then(function(T){return c.db=T,qn(c,d._defaultConfig.version)?fn(c):T}).then(function(T){c.db=g.db=T,d._dbInfo=c;for(var A=0;A<I.length;A++){var k=I[A];k!==d&&(k._dbInfo.db=c.db,k._dbInfo.version=c.version)}})}function Uu(a,d){var c=this;a=U(a);var m=new E(function(g,f){c.ready().then(function(){et(c._dbInfo,Ne,function(b,S){if(b)return f(b);try{var C=S.objectStore(c._dbInfo.storeName),I=C.get(a);I.onsuccess=function(){var T=I.result;T===void 0&&(T=null),is(T)&&(T=Ht(T)),g(T)},I.onerror=function(){f(I.error)}}catch(T){f(T)}})}).catch(f)});return v(m,d),m}function Bu(a,d){var c=this,m=new E(function(g,f){c.ready().then(function(){et(c._dbInfo,Ne,function(b,S){if(b)return f(b);try{var C=S.objectStore(c._dbInfo.storeName),I=C.openCursor(),T=1;I.onsuccess=function(){var A=I.result;if(A){var k=A.value;is(k)&&(k=Ht(k));var $=a(k,A.key,T++);$!==void 0?g($):A.continue()}else g()},I.onerror=function(){f(I.error)}}catch(A){f(A)}})}).catch(f)});return v(m,d),m}function Hu(a,d,c){var m=this;a=U(a);var g=new E(function(f,b){var S;m.ready().then(function(){return S=m._dbInfo,Ae.call(d)==="[object Blob]"?G(S.db).then(function(C){return C?d:ei(d)}):d}).then(function(C){et(m._dbInfo,x,function(I,T){if(I)return b(I);try{var A=T.objectStore(m._dbInfo.storeName);C===null&&(C=void 0);var k=A.put(C,a);T.oncomplete=function(){C===void 0&&(C=null),f(C)},T.onabort=T.onerror=function(){var $=k.error?k.error:k.transaction.error;b($)}}catch($){b($)}})}).catch(b)});return v(g,c),g}function Gu(a,d){var c=this;a=U(a);var m=new E(function(g,f){c.ready().then(function(){et(c._dbInfo,x,function(b,S){if(b)return f(b);try{var C=S.objectStore(c._dbInfo.storeName),I=C.delete(a);S.oncomplete=function(){g()},S.onerror=function(){f(I.error)},S.onabort=function(){var T=I.error?I.error:I.transaction.error;f(T)}}catch(T){f(T)}})}).catch(f)});return v(m,d),m}function $u(a){var d=this,c=new E(function(m,g){d.ready().then(function(){et(d._dbInfo,x,function(f,b){if(f)return g(f);try{var S=b.objectStore(d._dbInfo.storeName),C=S.clear();b.oncomplete=function(){m()},b.onabort=b.onerror=function(){var I=C.error?C.error:C.transaction.error;g(I)}}catch(I){g(I)}})}).catch(g)});return v(c,a),c}function ju(a){var d=this,c=new E(function(m,g){d.ready().then(function(){et(d._dbInfo,Ne,function(f,b){if(f)return g(f);try{var S=b.objectStore(d._dbInfo.storeName),C=S.count();C.onsuccess=function(){m(C.result)},C.onerror=function(){g(C.error)}}catch(I){g(I)}})}).catch(g)});return v(c,a),c}function Wu(a,d){var c=this,m=new E(function(g,f){if(a<0){g(null);return}c.ready().then(function(){et(c._dbInfo,Ne,function(b,S){if(b)return f(b);try{var C=S.objectStore(c._dbInfo.storeName),I=!1,T=C.openKeyCursor();T.onsuccess=function(){var A=T.result;if(!A){g(null);return}a===0||I?g(A.key):(I=!0,A.advance(a))},T.onerror=function(){f(T.error)}}catch(A){f(A)}})}).catch(f)});return v(m,d),m}function zu(a){var d=this,c=new E(function(m,g){d.ready().then(function(){et(d._dbInfo,Ne,function(f,b){if(f)return g(f);try{var S=b.objectStore(d._dbInfo.storeName),C=S.openKeyCursor(),I=[];C.onsuccess=function(){var T=C.result;if(!T){m(I);return}I.push(T.key),T.continue()},C.onerror=function(){g(C.error)}}catch(T){g(T)}})}).catch(g)});return v(c,a),c}function Yu(a,d){d=M.apply(this,arguments);var c=this.config();a=typeof a!="function"&&a||{},a.name||(a.name=a.name||c.name,a.storeName=a.storeName||c.storeName);var m=this,g;if(!a.name)g=E.reject("Invalid arguments");else{var f=a.name===c.name&&m._dbInfo.db,b=f?E.resolve(m._dbInfo.db):Ze(a).then(function(S){var C=X[a.name],I=C.forages;C.db=S;for(var T=0;T<I.length;T++)I[T]._dbInfo.db=S;return S});a.storeName?g=b.then(function(S){if(S.objectStoreNames.contains(a.storeName)){var C=S.version+1;ne(a);var I=X[a.name],T=I.forages;S.close();for(var A=0;A<T.length;A++){var k=T[A];k._dbInfo.db=null,k._dbInfo.version=C}var $=new E(function(j,ie){var re=h.open(a.name,C);re.onerror=function(Re){var mn=re.result;mn.close(),ie(Re)},re.onupgradeneeded=function(){var Re=re.result;Re.deleteObjectStore(a.storeName)},re.onsuccess=function(){var Re=re.result;Re.close(),j(Re)}});return $.then(function(j){I.db=j;for(var ie=0;ie<T.length;ie++){var re=T[ie];re._dbInfo.db=j,J(re._dbInfo)}}).catch(function(j){throw(de(a,j)||E.resolve()).catch(function(){}),j})}}):g=b.then(function(S){ne(a);var C=X[a.name],I=C.forages;S.close();for(var T=0;T<I.length;T++){var A=I[T];A._dbInfo.db=null}var k=new E(function($,j){var ie=h.deleteDatabase(a.name);ie.onerror=function(){var re=ie.result;re&&re.close(),j(ie.error)},ie.onblocked=function(){console.warn('dropInstance blocked for database "'+a.name+'" until all open connections are closed')},ie.onsuccess=function(){var re=ie.result;re&&re.close(),$(re)}});return k.then(function($){C.db=$;for(var j=0;j<I.length;j++){var ie=I[j];J(ie._dbInfo)}}).catch(function($){throw(de(a,$)||E.resolve()).catch(function(){}),$})})}return v(g,d),g}var qu={_driver:"asyncStorage",_initStorage:ku,_support:y(),iterate:Bu,getItem:Uu,setItem:Hu,removeItem:Gu,clear:$u,length:ju,key:Wu,keys:zu,dropInstance:Yu};function Ku(){return typeof openDatabase=="function"}var ht="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Xu="~~local_forage_type~",ss=/^~~local_forage_type~([^~]+)~/,Kn="__lfsc__:",ti=Kn.length,ni="arbf",ri="blob",as="si08",cs="ui08",us="uic8",ls="si16",ds="si32",fs="ur16",ps="ui32",ms="fl32",hs="fl64",gs=ti+ni.length,_s=Object.prototype.toString;function vs(a){var d=a.length*.75,c=a.length,m,g=0,f,b,S,C;a[a.length-1]==="="&&(d--,a[a.length-2]==="="&&d--);var I=new ArrayBuffer(d),T=new Uint8Array(I);for(m=0;m<c;m+=4)f=ht.indexOf(a[m]),b=ht.indexOf(a[m+1]),S=ht.indexOf(a[m+2]),C=ht.indexOf(a[m+3]),T[g++]=f<<2|b>>4,T[g++]=(b&15)<<4|S>>2,T[g++]=(S&3)<<6|C&63;return I}function ii(a){var d=new Uint8Array(a),c="",m;for(m=0;m<d.length;m+=3)c+=ht[d[m]>>2],c+=ht[(d[m]&3)<<4|d[m+1]>>4],c+=ht[(d[m+1]&15)<<2|d[m+2]>>6],c+=ht[d[m+2]&63];return d.length%3===2?c=c.substring(0,c.length-1)+"=":d.length%3===1&&(c=c.substring(0,c.length-2)+"=="),c}function Ju(a,d){var c="";if(a&&(c=_s.call(a)),a&&(c==="[object ArrayBuffer]"||a.buffer&&_s.call(a.buffer)==="[object ArrayBuffer]")){var m,g=Kn;a instanceof ArrayBuffer?(m=a,g+=ni):(m=a.buffer,c==="[object Int8Array]"?g+=as:c==="[object Uint8Array]"?g+=cs:c==="[object Uint8ClampedArray]"?g+=us:c==="[object Int16Array]"?g+=ls:c==="[object Uint16Array]"?g+=fs:c==="[object Int32Array]"?g+=ds:c==="[object Uint32Array]"?g+=ps:c==="[object Float32Array]"?g+=ms:c==="[object Float64Array]"?g+=hs:d(new Error("Failed to get type for BinaryArray"))),d(g+ii(m))}else if(c==="[object Blob]"){var f=new FileReader;f.onload=function(){var b=Xu+a.type+"~"+ii(this.result);d(Kn+ri+b)},f.readAsArrayBuffer(a)}else try{d(JSON.stringify(a))}catch(b){console.error("Couldn't convert value into a JSON string: ",a),d(null,b)}}function Qu(a){if(a.substring(0,ti)!==Kn)return JSON.parse(a);var d=a.substring(gs),c=a.substring(ti,gs),m;if(c===ri&&ss.test(d)){var g=d.match(ss);m=g[1],d=d.substring(g[0].length)}var f=vs(d);switch(c){case ni:return f;case ri:return p([f],{type:m});case as:return new Int8Array(f);case cs:return new Uint8Array(f);case us:return new Uint8ClampedArray(f);case ls:return new Int16Array(f);case fs:return new Uint16Array(f);case ds:return new Int32Array(f);case ps:return new Uint32Array(f);case ms:return new Float32Array(f);case hs:return new Float64Array(f);default:throw new Error("Unkown type: "+c)}}var oi={serialize:Ju,deserialize:Qu,stringToBuffer:vs,bufferToString:ii};function ys(a,d,c,m){a.executeSql("CREATE TABLE IF NOT EXISTS "+d.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],c,m)}function Zu(a){var d=this,c={db:null};if(a)for(var m in a)c[m]=typeof a[m]!="string"?a[m].toString():a[m];var g=new E(function(f,b){try{c.db=openDatabase(c.name,String(c.version),c.description,c.size)}catch(S){return b(S)}c.db.transaction(function(S){ys(S,c,function(){d._dbInfo=c,f()},function(C,I){b(I)})},b)});return c.serializer=oi,g}function gt(a,d,c,m,g,f){a.executeSql(c,m,g,function(b,S){S.code===S.SYNTAX_ERR?b.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[d.storeName],function(C,I){I.rows.length?f(C,S):ys(C,d,function(){C.executeSql(c,m,g,f)},f)},f):f(b,S)},f)}function el(a,d){var c=this;a=U(a);var m=new E(function(g,f){c.ready().then(function(){var b=c._dbInfo;b.db.transaction(function(S){gt(S,b,"SELECT * FROM "+b.storeName+" WHERE key = ? LIMIT 1",[a],function(C,I){var T=I.rows.length?I.rows.item(0).value:null;T&&(T=b.serializer.deserialize(T)),g(T)},function(C,I){f(I)})})}).catch(f)});return v(m,d),m}function tl(a,d){var c=this,m=new E(function(g,f){c.ready().then(function(){var b=c._dbInfo;b.db.transaction(function(S){gt(S,b,"SELECT * FROM "+b.storeName,[],function(C,I){for(var T=I.rows,A=T.length,k=0;k<A;k++){var $=T.item(k),j=$.value;if(j&&(j=b.serializer.deserialize(j)),j=a(j,$.key,k+1),j!==void 0){g(j);return}}g()},function(C,I){f(I)})})}).catch(f)});return v(m,d),m}function Es(a,d,c,m){var g=this;a=U(a);var f=new E(function(b,S){g.ready().then(function(){d===void 0&&(d=null);var C=d,I=g._dbInfo;I.serializer.serialize(d,function(T,A){A?S(A):I.db.transaction(function(k){gt(k,I,"INSERT OR REPLACE INTO "+I.storeName+" (key, value) VALUES (?, ?)",[a,T],function(){b(C)},function($,j){S(j)})},function(k){if(k.code===k.QUOTA_ERR){if(m>0){b(Es.apply(g,[a,C,c,m-1]));return}S(k)}})})}).catch(S)});return v(f,c),f}function nl(a,d,c){return Es.apply(this,[a,d,c,1])}function rl(a,d){var c=this;a=U(a);var m=new E(function(g,f){c.ready().then(function(){var b=c._dbInfo;b.db.transaction(function(S){gt(S,b,"DELETE FROM "+b.storeName+" WHERE key = ?",[a],function(){g()},function(C,I){f(I)})})}).catch(f)});return v(m,d),m}function il(a){var d=this,c=new E(function(m,g){d.ready().then(function(){var f=d._dbInfo;f.db.transaction(function(b){gt(b,f,"DELETE FROM "+f.storeName,[],function(){m()},function(S,C){g(C)})})}).catch(g)});return v(c,a),c}function ol(a){var d=this,c=new E(function(m,g){d.ready().then(function(){var f=d._dbInfo;f.db.transaction(function(b){gt(b,f,"SELECT COUNT(key) as c FROM "+f.storeName,[],function(S,C){var I=C.rows.item(0).c;m(I)},function(S,C){g(C)})})}).catch(g)});return v(c,a),c}function sl(a,d){var c=this,m=new E(function(g,f){c.ready().then(function(){var b=c._dbInfo;b.db.transaction(function(S){gt(S,b,"SELECT key FROM "+b.storeName+" WHERE id = ? LIMIT 1",[a+1],function(C,I){var T=I.rows.length?I.rows.item(0).key:null;g(T)},function(C,I){f(I)})})}).catch(f)});return v(m,d),m}function al(a){var d=this,c=new E(function(m,g){d.ready().then(function(){var f=d._dbInfo;f.db.transaction(function(b){gt(b,f,"SELECT key FROM "+f.storeName,[],function(S,C){for(var I=[],T=0;T<C.rows.length;T++)I.push(C.rows.item(T).key);m(I)},function(S,C){g(C)})})}).catch(g)});return v(c,a),c}function cl(a){return new E(function(d,c){a.transaction(function(m){m.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],function(g,f){for(var b=[],S=0;S<f.rows.length;S++)b.push(f.rows.item(S).name);d({db:a,storeNames:b})},function(g,f){c(f)})},function(m){c(m)})})}function ul(a,d){d=M.apply(this,arguments);var c=this.config();a=typeof a!="function"&&a||{},a.name||(a.name=a.name||c.name,a.storeName=a.storeName||c.storeName);var m=this,g;return a.name?g=new E(function(f){var b;a.name===c.name?b=m._dbInfo.db:b=openDatabase(a.name,"","",0),a.storeName?f({db:b,storeNames:[a.storeName]}):f(cl(b))}).then(function(f){return new E(function(b,S){f.db.transaction(function(C){function I($){return new E(function(j,ie){C.executeSql("DROP TABLE IF EXISTS "+$,[],function(){j()},function(re,Re){ie(Re)})})}for(var T=[],A=0,k=f.storeNames.length;A<k;A++)T.push(I(f.storeNames[A]));E.all(T).then(function(){b()}).catch(function($){S($)})},function(C){S(C)})})}):g=E.reject("Invalid arguments"),v(g,d),g}var ll={_driver:"webSQLStorage",_initStorage:Zu,_support:Ku(),iterate:tl,getItem:el,setItem:nl,removeItem:rl,clear:il,length:ol,key:sl,keys:al,dropInstance:ul};function dl(){try{return typeof localStorage<"u"&&"setItem"in localStorage&&!!localStorage.setItem}catch{return!1}}function bs(a,d){var c=a.name+"/";return a.storeName!==d.storeName&&(c+=a.storeName+"/"),c}function fl(){var a="_localforage_support_test";try{return localStorage.setItem(a,!0),localStorage.removeItem(a),!1}catch{return!0}}function pl(){return!fl()||localStorage.length>0}function ml(a){var d=this,c={};if(a)for(var m in a)c[m]=a[m];return c.keyPrefix=bs(a,d._defaultConfig),pl()?(d._dbInfo=c,c.serializer=oi,E.resolve()):E.reject()}function hl(a){var d=this,c=d.ready().then(function(){for(var m=d._dbInfo.keyPrefix,g=localStorage.length-1;g>=0;g--){var f=localStorage.key(g);f.indexOf(m)===0&&localStorage.removeItem(f)}});return v(c,a),c}function gl(a,d){var c=this;a=U(a);var m=c.ready().then(function(){var g=c._dbInfo,f=localStorage.getItem(g.keyPrefix+a);return f&&(f=g.serializer.deserialize(f)),f});return v(m,d),m}function _l(a,d){var c=this,m=c.ready().then(function(){for(var g=c._dbInfo,f=g.keyPrefix,b=f.length,S=localStorage.length,C=1,I=0;I<S;I++){var T=localStorage.key(I);if(T.indexOf(f)===0){var A=localStorage.getItem(T);if(A&&(A=g.serializer.deserialize(A)),A=a(A,T.substring(b),C++),A!==void 0)return A}}});return v(m,d),m}function vl(a,d){var c=this,m=c.ready().then(function(){var g=c._dbInfo,f;try{f=localStorage.key(a)}catch{f=null}return f&&(f=f.substring(g.keyPrefix.length)),f});return v(m,d),m}function yl(a){var d=this,c=d.ready().then(function(){for(var m=d._dbInfo,g=localStorage.length,f=[],b=0;b<g;b++){var S=localStorage.key(b);S.indexOf(m.keyPrefix)===0&&f.push(S.substring(m.keyPrefix.length))}return f});return v(c,a),c}function El(a){var d=this,c=d.keys().then(function(m){return m.length});return v(c,a),c}function bl(a,d){var c=this;a=U(a);var m=c.ready().then(function(){var g=c._dbInfo;localStorage.removeItem(g.keyPrefix+a)});return v(m,d),m}function Sl(a,d,c){var m=this;a=U(a);var g=m.ready().then(function(){d===void 0&&(d=null);var f=d;return new E(function(b,S){var C=m._dbInfo;C.serializer.serialize(d,function(I,T){if(T)S(T);else try{localStorage.setItem(C.keyPrefix+a,I),b(f)}catch(A){(A.name==="QuotaExceededError"||A.name==="NS_ERROR_DOM_QUOTA_REACHED")&&S(A),S(A)}})})});return v(g,c),g}function Cl(a,d){if(d=M.apply(this,arguments),a=typeof a!="function"&&a||{},!a.name){var c=this.config();a.name=a.name||c.name,a.storeName=a.storeName||c.storeName}var m=this,g;return a.name?g=new E(function(f){a.storeName?f(bs(a,m._defaultConfig)):f(a.name+"/")}).then(function(f){for(var b=localStorage.length-1;b>=0;b--){var S=localStorage.key(b);S.indexOf(f)===0&&localStorage.removeItem(S)}}):g=E.reject("Invalid arguments"),v(g,d),g}var Il={_driver:"localStorageWrapper",_initStorage:ml,_support:dl(),iterate:_l,getItem:gl,setItem:Sl,removeItem:bl,clear:hl,length:El,key:vl,keys:yl,dropInstance:Cl},Tl=function(d,c){return d===c||typeof d=="number"&&typeof c=="number"&&isNaN(d)&&isNaN(c)},xl=function(d,c){for(var m=d.length,g=0;g<m;){if(Tl(d[g],c))return!0;g++}return!1},Ss=Array.isArray||function(a){return Object.prototype.toString.call(a)==="[object Array]"},pn={},Cs={},Gt={INDEXEDDB:qu,WEBSQL:ll,LOCALSTORAGE:Il},Dl=[Gt.INDEXEDDB._driver,Gt.WEBSQL._driver,Gt.LOCALSTORAGE._driver],Xn=["dropInstance"],si=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(Xn),wl={description:"",driver:Dl.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function Al(a,d){a[d]=function(){var c=arguments;return a.ready().then(function(){return a[d].apply(a,c)})}}function ai(){for(var a=1;a<arguments.length;a++){var d=arguments[a];if(d)for(var c in d)d.hasOwnProperty(c)&&(Ss(d[c])?arguments[0][c]=d[c].slice():arguments[0][c]=d[c])}return arguments[0]}var Nl=(function(){function a(d){u(this,a);for(var c in Gt)if(Gt.hasOwnProperty(c)){var m=Gt[c],g=m._driver;this[c]=g,pn[g]||this.defineDriver(m)}this._defaultConfig=ai({},wl),this._config=ai({},this._defaultConfig,d),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch(function(){})}return a.prototype.config=function(c){if((typeof c>"u"?"undefined":s(c))==="object"){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var m in c){if(m==="storeName"&&(c[m]=c[m].replace(/\W/g,"_")),m==="version"&&typeof c[m]!="number")return new Error("Database version must be a number.");this._config[m]=c[m]}return"driver"in c&&c.driver?this.setDriver(this._config.driver):!0}else return typeof c=="string"?this._config[c]:this._config},a.prototype.defineDriver=function(c,m,g){var f=new E(function(b,S){try{var C=c._driver,I=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!c._driver){S(I);return}for(var T=si.concat("_initStorage"),A=0,k=T.length;A<k;A++){var $=T[A],j=!xl(Xn,$);if((j||c[$])&&typeof c[$]!="function"){S(I);return}}var ie=function(){for(var mn=function(Ml){return function(){var Pl=new Error("Method "+Ml+" is not implemented by the current driver"),Is=E.reject(Pl);return v(Is,arguments[arguments.length-1]),Is}},ci=0,Rl=Xn.length;ci<Rl;ci++){var ui=Xn[ci];c[ui]||(c[ui]=mn(ui))}};ie();var re=function(mn){pn[C]&&console.info("Redefining LocalForage driver: "+C),pn[C]=c,Cs[C]=mn,b()};"_support"in c?c._support&&typeof c._support=="function"?c._support().then(re,S):re(!!c._support):re(!0)}catch(Re){S(Re)}});return N(f,m,g),f},a.prototype.driver=function(){return this._driver||null},a.prototype.getDriver=function(c,m,g){var f=pn[c]?E.resolve(pn[c]):E.reject(new Error("Driver not found."));return N(f,m,g),f},a.prototype.getSerializer=function(c){var m=E.resolve(oi);return N(m,c),m},a.prototype.ready=function(c){var m=this,g=m._driverSet.then(function(){return m._ready===null&&(m._ready=m._initDriver()),m._ready});return N(g,c,c),g},a.prototype.setDriver=function(c,m,g){var f=this;Ss(c)||(c=[c]);var b=this._getSupportedDrivers(c);function S(){f._config.driver=f.driver()}function C(A){return f._extend(A),S(),f._ready=f._initStorage(f._config),f._ready}function I(A){return function(){var k=0;function $(){for(;k<A.length;){var j=A[k];return k++,f._dbInfo=null,f._ready=null,f.getDriver(j).then(C).catch($)}S();var ie=new Error("No available storage method found.");return f._driverSet=E.reject(ie),f._driverSet}return $()}}var T=this._driverSet!==null?this._driverSet.catch(function(){return E.resolve()}):E.resolve();return this._driverSet=T.then(function(){var A=b[0];return f._dbInfo=null,f._ready=null,f.getDriver(A).then(function(k){f._driver=k._driver,S(),f._wrapLibraryMethodsWithReady(),f._initDriver=I(b)})}).catch(function(){S();var A=new Error("No available storage method found.");return f._driverSet=E.reject(A),f._driverSet}),N(this._driverSet,m,g),this._driverSet},a.prototype.supports=function(c){return!!Cs[c]},a.prototype._extend=function(c){ai(this,c)},a.prototype._getSupportedDrivers=function(c){for(var m=[],g=0,f=c.length;g<f;g++){var b=c[g];this.supports(b)&&m.push(b)}return m},a.prototype._wrapLibraryMethodsWithReady=function(){for(var c=0,m=si.length;c<m;c++)Al(this,si[c])},a.prototype.createInstance=function(c){return new a(c)},a})(),Ol=new Nl;i.exports=Ol},{3:3}]},{},[4])(4)})});var bt=class{gaEnabled;gaMeasurementID;pixelPush;website;currencyCount;money;storefrontToken;skipItemAttribute;currency;static get(){return window.CooeeSDK.config}update(t){return t??={},this.gaEnabled=t.gaEnabled,this.gaMeasurementID=t.gaMeasurementID,this.pixelPush=t.pixelPush,this.website=t.website??{},this.currencyCount=t.currencyCount??0,this.money=t.money,this.currency=t.currency,this.storefrontToken=t.storefrontToken,this.skipItemAttribute=t.skipItemAttribute,this}};var zs=0;function Fl(e=document.head){return Ys(zt.styleURL,e,"cooee-global-styles")}function kl(e=document.head){return Ys(zt.swiperStyleURL,e,"cooee-swiper-styles")}function Ys(e,t=document.head,n){return new Promise(r=>{if(t.querySelector(`#${n}`)){r();return}let o=document.createElement("link");o.rel="stylesheet",o.href=e,o.id=n,o.onload=()=>{r()},o.onerror=()=>{console.error("Failed to load stylesheet:",e),r()},t.appendChild(o)})}function mi(e,t=document.head){if(!e)return;zs++;let n=document.createElement("style");n.id=`cooee-app-css-${zs}`,n.textContent=e,t.appendChild(n)}async function qs(){let e=(await import("./swiper-bundle-WHJS64TU.js")).default;return window.CooeeSDK.Swiper=e}async function Ks(e,t=!0){if(!e)return;let n=[];t&&n.push(kl(e)),n.push(Fl(e)),await Promise.all(n);let r=bt.get().website.commonCSS;mi(r,e)}var Hl={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},Gh=V(_({},Hl),{"[class.ng-submitted]":"isSubmitted"});var Gl=new As("",{providedIn:"root",factory:()=>Xs}),Xs="always";var $l=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=fi({type:e});static \u0275inj=di({})}return e})();var Js=(()=>{class e{static withConfig(n){return{ngModule:e,providers:[{provide:Gl,useValue:n.callSetDisabledState??Xs}]}}static \u0275fac=function(r){return new(r||e)};static \u0275mod=fi({type:e});static \u0275inj=di({imports:[$l]})}return e})();var hi=(function(e){return e.SHOPIFY_CHECKOUT="shopify_checkout",e.THIRD_PARTY_CHECKOUT="third_party_checkout",e.CART_PAGE="cart_page",e.CART_DRAWER="cart_drawer",e})(hi||{});var ct=(function(e){return e[e.NONE=0]="NONE",e[e.REJECT_POPUP=1]="REJECT_POPUP",e[e.ACCEPT_POPUP=2]="ACCEPT_POPUP",e[e.GO_TO_URL=4]="GO_TO_URL",e[e.SHARE=5]="SHARE",e[e.KEY_VALUE=100]="KEY_VALUE",e[e.GO_TO_PRODUCT=101]="GO_TO_PRODUCT",e[e.ADD_TO_CART=102]="ADD_TO_CART",e[e.COPY_COUPON_CODE=103]="COPY_COUPON_CODE",e[e.GO_TO_COLLECTION=104]="GO_TO_COLLECTION",e[e.OPEN_CART=105]="OPEN_CART",e[e.SUBMIT_FORM=106]="SUBMIT_FORM",e[e.INITIATE_CHECKOUT=107]="INITIATE_CHECKOUT",e[e.ADD_BUNDLE=108]="ADD_BUNDLE",e[e.UPGRADE_TO_SUBSCRIPTION=109]="UPGRADE_TO_SUBSCRIPTION",e[e.BUY_NOW=110]="BUY_NOW",e[e.QUICK_VIEW=111]="QUICK_VIEW",e})(ct||{});var jl=(function(e){return e.FREE_SHIPPING="FREE_SHIPPING",e.DISCOUNT="DISCOUNT",e.FREE_AUTO_GIFT="FREE_AUTO_GIFT",e.FREE_GIFT_SELECT="FREE_GIFT_SELECT",e.UI_ONLY="UI_ONLY",e})(jl||{});var St=class e{engagementContext=_e(In);eventData=_e(tr);constructor(){}executeCTA(t,n){let r,i=this.engagementContext();if(!i){ge.error("Engagement context is not available; aborting executeCTA.");return}if(t===ct.ADD_TO_CART)r="CE Add To Cart Clicked";else if(t===ct.GO_TO_PRODUCT)r="CE View Item Clicked";else if(t===ct.OPEN_CART)r="CE Open Cart Clicked",i.triggerData.redirectBehaviour=hi.CART_DRAWER;else{ge.warn(`Unsupported CTA type: ${t}`);return}window.CooeeSDK.executeCTA(i,_({clickAction:{at:t}},n));let o=new js(r,this.eventData.props,i.triggerData);n?.video?o.setVideos(n.video):this.eventData.video&&o.setVideos(this.eventData.video),window.CooeeSDK.sendEvent(o)}static \u0275fac=function(n){return new(n||e)};static \u0275prov=li({token:e,factory:e.\u0275fac})};function Qs(e,t){return[St,...zl(e,t)]}function zl(e,t){return[{provide:In,useValue:tt(e)},{provide:tr,useValue:_({},t)}]}var ir=class e{elementRef=_e(_n);engagementService=_e(St);hasSwiper=!1;_engagementTrigger=tt(null);_triggerContext=_e(In);constructor(){this.elementRef.nativeElement.update=this.update.bind(this)}get classes(){let t=["letscooee-widget"],n=this._engagementTrigger();return t.push(`widget-${n?.shortID}`),t}get triggerContext(){return this._triggerContext()}set triggerContext(t){this._triggerContext.set(t),this._engagementTrigger.set(t.triggerData),this.engagementTriggerReceived(t.triggerData)}get engagementTrigger(){return this._engagementTrigger()}ngOnInit(){ge.verbose("Init",this.constructor.name);let t=this.elementRef.nativeElement.shadowRoot;t&&Ks(t,this.hasSwiper)}ngOnDestroy(){ge.verbose("Destroying",this.constructor.name)}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=Se({type:e,selectors:[["ng-component"]],hostVars:2,hostBindings:function(n,r){n&2&&Zn(r.classes)},inputs:{triggerContext:"triggerContext"},decls:1,vars:0,template:function(n,r){n&1&&Ms(0)},encapsulation:2})};var Zs=(e,t)=>t.id;function Yl(e,t){if(e&1&&(W(0,"span",6),ee(1),z()),e&2){B();let n=ve(0);D(),ot(n)}}function ql(e,t){if(e&1){let n=We();Ue(0),W(1,"button",5),ke("click",function(){let i=Te(n).$implicit,o=B().$implicit,s=B();return xe(s.onOptionChange(o,i))}),Q(2,Yl,2,1,"span",6),z()}if(e&2){let n=t.$implicit,r=B().$implicit,i=ve(1),o=B(),s=n.name,u=Be(n.displayName||n.name),l=n.swatch,h=i?n.hexColor??s:"",y=o.selectedOptions()[r.name]===s,p=!!(l!=null&&l.color),E=!!(!(l==null||l.image==null)&&l.image.url);D(),En("swatch-color-type",p)("swatch-image-type",E)("selected",y)("disabled",n.disabled),oe("title",u)("ngStyle",o.getSwatchStyles(l,h)),$t("aria-checked",y?"true":"false")("data-value",s)("aria-disabled",n.disabled?"true":null)("aria-label",u),D(),Z(!i&&!p&&!E?2:-1)}}function Kl(e,t){if(e&1&&(W(0,"div"),Ue(1),W(2,"div",1),ee(3),z(),W(4,"div",2),ee(5),z(),W(6,"div",3),jt(7,ql,3,16,"button",4,Zs),z()()),e&2){let n=t.$implicit,r=B();Zn(Fs("option-group ",n.name.toLowerCase())),D(),Be(r.hasHexColors(n)),D(2),Nt("",n.name,":"),D(2),ot(r.selectedOptions()[n.name]),D(),$t("aria-label",n.name),D(),Wt(n.optionValues)}}var Tn=e=>e.trim().toLowerCase(),or=class e extends ir{selectedVariant=new vn;item=Ce.required();selectedOptions=tt({});options=st(()=>{let t=this.item();if(!t.options||t.vars.length===1)return[];if(window.cooeeManipulateProduct)try{window.cooeeManipulateProduct(t,this.engagementTrigger)}catch(n){ge.error(n)}return t.options.forEach(n=>{n.optionValues.forEach(r=>{r.disabled=this.isOptionValueDisabledFast(n,r)})}),t.options});matchedVariant=st(()=>{let t=this.item(),n=this.selectedOptions();return t.vars.find(r=>t.options.every(i=>{let o=r.selectedOptions.find(s=>s.name===i.name)?.value;return n[i.name]===o}))});availabilityIndex=st(()=>{let t=this.item(),n=new Map;return t?.vars?.length&&t.vars.forEach((r,i)=>{if(r.isAvailable)for(let o of r.selectedOptions){let s=Tn(o.name),u=o.value,l=n.get(s);l||n.set(s,l=new Map);let h=l.get(u);h||l.set(u,h=new Set),h.add(i)}}),n});constructor(){super(),Ot(()=>{let n=this.matchedVariant();n&&(this.item().setSelectedVariant(n),this.selectedVariant.emit(n))});let t=Ot(()=>{let n=this.item();if(!n?.options)return;let r=_({},this.selectedOptions()),i=n.vars.find(o=>o.isAvailable)??n.vars[0];n.options.forEach(o=>{let s=i?.selectedOptions.find(u=>u.name===o.name)?.value;s&&(r[o.name]=s)}),this.selectedOptions.set(r),t.destroy()})}ngOnInit(){super.ngOnInit();let t=this.elementRef.nativeElement.shadowRoot;if(!t)return;let n=bt.get().website?.itemSwatchMapping;n&&mi(n,t)}onOptionChange(t,n){let r=_({},this.selectedOptions());r[t.name]=n.name,this.selectedOptions.set(r)}engagementTriggerReceived(){}update(){}hasHexColors(t){return!!t.optionValues[0]?.name.match(/#[a-f0-9]{6}\b/i)}getSwatchStyles(t,n){let r={};return!t&&n?(r["--option-color"]=n,r["background-color"]=n,r):(t?.image?.url?r["background-image"]=`url("${t.image.url}")`:t?.color&&(r["--option-color"]=t.color,r["background-color"]=t.color),r)}getCandidateVariantsExcluding(t){let n=this.item(),r=this.availabilityIndex(),i=new Set;n.vars.forEach((s,u)=>{s.isAvailable&&i.add(u)});let o=i;for(let[s,u]of Object.entries(this.selectedOptions())){if(Tn(s)===Tn(t))continue;let l=r.get(Tn(s));if(!l)return new Set;let h=l.get(String(u));if(!h)return new Set;if(o=new Set([...o].filter(y=>h.has(y))),o.size===0)return o}return o}isOptionValueDisabledFast(t,n){let i=this.availabilityIndex().get(Tn(t.name));if(!i)return!0;let o=n.name,s=i.get(o);if(!s||s.size===0)return!0;let u=this.getCandidateVariantsExcluding(t.name);if(u.size===0)return!0;for(let l of u)if(s.has(l))return!1;return!0}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=Se({type:e,selectors:[["cooee-item-options-picker"]],inputs:{item:[1,"item"]},outputs:{selectedVariant:"selectedVariant"},features:[bn(Qs()),pi],decls:2,vars:0,consts:[[3,"class"],[1,"name"],[1,"selected-value"],["role","radiogroup",1,"option-values"],["type","button","role","radio",1,"option-value",3,"swatch-color-type","swatch-image-type","selected","disabled","title","ngStyle"],["type","button","role","radio",1,"option-value",3,"click","title","ngStyle"],[1,"title"]],template:function(n,r){n&1&&jt(0,Kl,9,7,"div",0,Zs),n&2&&Wt(r.options())},dependencies:[Gs,Bs,Js],styles:[`.option-group{display:flex;gap:4px;align-items:center}.option-group+.option-group{margin-top:8px}.option-values{display:flex;flex-wrap:nowrap;overflow-x:auto;padding:6px;gap:4px;scrollbar-gutter:stable both-edges;scrollbar-width:none}.option-values::-webkit-scrollbar{display:none}.selected-value{display:none}.option-value{padding:5px 10px;border:1px solid #ccc;cursor:pointer;border-radius:4px;min-width:32px;min-height:32px;text-align:center;position:relative;flex-shrink:0;--selected-color: var(--option-color, rgba(var(--lc-primary-button-bg-color, 0 0 0)));background-size:cover;background-position:center;background-repeat:no-repeat}.option-value.selected{box-shadow:#fff 0 0 0 2px,var(--selected-color) 0 0 0 4px}.option-value.disabled{opacity:.5;pointer-events:none}
1
+ import{a as $s,b as zt,c as ge,e as In,f as tr,g as js,h as Ws,l as rr}from"./chunk-PUMES7ZS.js";import{a as nr}from"./chunk-SBONG2TS.js";import{$ as pi,$a as bn,Aa as yt,Ba as ke,Ca as yn,D as gn,Da as B,E as tt,Ea as Ps,Fa as Ls,I as _n,K as At,L as _t,La as it,Na as En,O as D,Oa as Qn,Pa as Zn,Qa as ee,Ra as ot,Sa as Nt,Wa as Ue,X as Se,Xa as Be,Y as fi,Ya as ve,Za as Vs,_ as Ns,_a as Fs,ab as er,b as xs,ba as vt,bb as ks,ca as vn,cb as He,db as Ge,fb as Sn,ga as $t,ha as Q,hb as st,ia as Z,ib as Ot,jb as Et,ka as jt,kb as Ce,la as Wt,ma as oe,mb as Cn,na as W,o as Ds,oa as z,pa as Me,q as ws,qa as fe,ra as me,s as li,sa as nt,sb as Us,t as di,tb as Bs,u as As,ub as Hs,v as _e,va as rt,wa as Os,wb as Gs,x as Te,xa as Rs,y as xe,ya as Ms,za as We}from"./chunk-I62LO6BZ.js";import{a as _,b as V,c as hn,d as Ts,e as Ll,f as Vl,g as Jn}from"./chunk-V7UGKYBN.js";var ta=Ll((ea,gi)=>{"use strict";(function(e){if(typeof ea=="object"&&typeof gi<"u")gi.exports=e();else if(typeof define=="function"&&define.amd)define([],e);else{var t;typeof window<"u"?t=window:typeof global<"u"?t=global:typeof self<"u"?t=self:t=this,t.localforage=e()}})(function(){var e,t,n;return(function r(i,o,s){function u(y,p){if(!o[y]){if(!i[y]){var E=typeof hn=="function"&&hn;if(!p&&E)return E(y,!0);if(l)return l(y,!0);var v=new Error("Cannot find module '"+y+"'");throw v.code="MODULE_NOT_FOUND",v}var N=o[y]={exports:{}};i[y][0].call(N.exports,function(U){var M=i[y][1][U];return u(M||U)},N,N.exports,r,i,o,s)}return o[y].exports}for(var l=typeof hn=="function"&&hn,h=0;h<s.length;h++)u(s[h]);return u})({1:[function(r,i,o){(function(s){"use strict";var u=s.MutationObserver||s.WebKitMutationObserver,l;if(u){var h=0,y=new u(U),p=s.document.createTextNode("");y.observe(p,{characterData:!0}),l=function(){p.data=h=++h%2}}else if(!s.setImmediate&&typeof s.MessageChannel<"u"){var E=new s.MessageChannel;E.port1.onmessage=U,l=function(){E.port2.postMessage(0)}}else"document"in s&&"onreadystatechange"in s.document.createElement("script")?l=function(){var O=s.document.createElement("script");O.onreadystatechange=function(){U(),O.onreadystatechange=null,O.parentNode.removeChild(O),O=null},s.document.documentElement.appendChild(O)}:l=function(){setTimeout(U,0)};var v,N=[];function U(){v=!0;for(var O,F,X=N.length;X;){for(F=N,N=[],O=-1;++O<X;)F[O]();X=N.length}v=!1}i.exports=M;function M(O){N.push(O)===1&&!v&&l()}}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{}],2:[function(r,i,o){"use strict";var s=r(1);function u(){}var l={},h=["REJECTED"],y=["FULFILLED"],p=["PENDING"];i.exports=E;function E(x){if(typeof x!="function")throw new TypeError("resolver must be a function");this.state=p,this.queue=[],this.outcome=void 0,x!==u&&M(this,x)}E.prototype.catch=function(x){return this.then(null,x)},E.prototype.then=function(x,H){if(typeof x!="function"&&this.state===y||typeof H!="function"&&this.state===h)return this;var L=new this.constructor(u);if(this.state!==p){var G=this.state===y?x:H;N(L,G,this.outcome)}else this.queue.push(new v(L,x,H));return L};function v(x,H,L){this.promise=x,typeof H=="function"&&(this.onFulfilled=H,this.callFulfilled=this.otherCallFulfilled),typeof L=="function"&&(this.onRejected=L,this.callRejected=this.otherCallRejected)}v.prototype.callFulfilled=function(x){l.resolve(this.promise,x)},v.prototype.otherCallFulfilled=function(x){N(this.promise,this.onFulfilled,x)},v.prototype.callRejected=function(x){l.reject(this.promise,x)},v.prototype.otherCallRejected=function(x){N(this.promise,this.onRejected,x)};function N(x,H,L){s(function(){var G;try{G=H(L)}catch(ne){return l.reject(x,ne)}G===x?l.reject(x,new TypeError("Cannot resolve promise with itself")):l.resolve(x,G)})}l.resolve=function(x,H){var L=O(U,H);if(L.status==="error")return l.reject(x,L.value);var G=L.value;if(G)M(x,G);else{x.state=y,x.outcome=H;for(var ne=-1,J=x.queue.length;++ne<J;)x.queue[ne].callFulfilled(H)}return x},l.reject=function(x,H){x.state=h,x.outcome=H;for(var L=-1,G=x.queue.length;++L<G;)x.queue[L].callRejected(H);return x};function U(x){var H=x&&x.then;if(x&&(typeof x=="object"||typeof x=="function")&&typeof H=="function")return function(){H.apply(x,arguments)}}function M(x,H){var L=!1;function G(Oe){L||(L=!0,l.reject(x,Oe))}function ne(Oe){L||(L=!0,l.resolve(x,Oe))}function J(){H(ne,G)}var de=O(J);de.status==="error"&&G(de.value)}function O(x,H){var L={};try{L.value=x(H),L.status="success"}catch(G){L.status="error",L.value=G}return L}E.resolve=F;function F(x){return x instanceof this?x:l.resolve(new this(u),x)}E.reject=X;function X(x){var H=new this(u);return l.reject(H,x)}E.all=Ae;function Ae(x){var H=this;if(Object.prototype.toString.call(x)!=="[object Array]")return this.reject(new TypeError("must be an array"));var L=x.length,G=!1;if(!L)return this.resolve([]);for(var ne=new Array(L),J=0,de=-1,Oe=new this(u);++de<L;)Ze(x[de],de);return Oe;function Ze(fn,qn){H.resolve(fn).then(ei,function(Ht){G||(G=!0,l.reject(Oe,Ht))});function ei(Ht){ne[qn]=Ht,++J===L&&!G&&(G=!0,l.resolve(Oe,ne))}}}E.race=Ne;function Ne(x){var H=this;if(Object.prototype.toString.call(x)!=="[object Array]")return this.reject(new TypeError("must be an array"));var L=x.length,G=!1;if(!L)return this.resolve([]);for(var ne=-1,J=new this(u);++ne<L;)de(x[ne]);return J;function de(Oe){H.resolve(Oe).then(function(Ze){G||(G=!0,l.resolve(J,Ze))},function(Ze){G||(G=!0,l.reject(J,Ze))})}}},{1:1}],3:[function(r,i,o){(function(s){"use strict";typeof s.Promise!="function"&&(s.Promise=r(2))}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{2:2}],4:[function(r,i,o){"use strict";var s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(a){return typeof a}:function(a){return a&&typeof Symbol=="function"&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};function u(a,d){if(!(a instanceof d))throw new TypeError("Cannot call a class as a function")}function l(){try{if(typeof indexedDB<"u")return indexedDB;if(typeof webkitIndexedDB<"u")return webkitIndexedDB;if(typeof mozIndexedDB<"u")return mozIndexedDB;if(typeof OIndexedDB<"u")return OIndexedDB;if(typeof msIndexedDB<"u")return msIndexedDB}catch{return}}var h=l();function y(){try{if(!h||!h.open)return!1;var a=typeof openDatabase<"u"&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),d=typeof fetch=="function"&&fetch.toString().indexOf("[native code")!==-1;return(!a||d)&&typeof indexedDB<"u"&&typeof IDBKeyRange<"u"}catch{return!1}}function p(a,d){a=a||[],d=d||{};try{return new Blob(a,d)}catch(f){if(f.name!=="TypeError")throw f;for(var c=typeof BlobBuilder<"u"?BlobBuilder:typeof MSBlobBuilder<"u"?MSBlobBuilder:typeof MozBlobBuilder<"u"?MozBlobBuilder:WebKitBlobBuilder,m=new c,g=0;g<a.length;g+=1)m.append(a[g]);return m.getBlob(d.type)}}typeof Promise>"u"&&r(3);var E=Promise;function v(a,d){d&&a.then(function(c){d(null,c)},function(c){d(c)})}function N(a,d,c){typeof d=="function"&&a.then(d),typeof c=="function"&&a.catch(c)}function U(a){return typeof a!="string"&&(console.warn(a+" used as a key, but it is not a string."),a=String(a)),a}function M(){if(arguments.length&&typeof arguments[arguments.length-1]=="function")return arguments[arguments.length-1]}var O="local-forage-detect-blob-support",F=void 0,X={},Ae=Object.prototype.toString,Ne="readonly",x="readwrite";function H(a){for(var d=a.length,c=new ArrayBuffer(d),m=new Uint8Array(c),g=0;g<d;g++)m[g]=a.charCodeAt(g);return c}function L(a){return new E(function(d){var c=a.transaction(O,x),m=p([""]);c.objectStore(O).put(m,"key"),c.onabort=function(g){g.preventDefault(),g.stopPropagation(),d(!1)},c.oncomplete=function(){var g=navigator.userAgent.match(/Chrome\/(\d+)/),f=navigator.userAgent.match(/Edge\//);d(f||!g||parseInt(g[1],10)>=43)}}).catch(function(){return!1})}function G(a){return typeof F=="boolean"?E.resolve(F):L(a).then(function(d){return F=d,F})}function ne(a){var d=X[a.name],c={};c.promise=new E(function(m,g){c.resolve=m,c.reject=g}),d.deferredOperations.push(c),d.dbReady?d.dbReady=d.dbReady.then(function(){return c.promise}):d.dbReady=c.promise}function J(a){var d=X[a.name],c=d.deferredOperations.pop();if(c)return c.resolve(),c.promise}function de(a,d){var c=X[a.name],m=c.deferredOperations.pop();if(m)return m.reject(d),m.promise}function Oe(a,d){return new E(function(c,m){if(X[a.name]=X[a.name]||os(),a.db)if(d)ne(a),a.db.close();else return c(a.db);var g=[a.name];d&&g.push(a.version);var f=h.open.apply(h,g);d&&(f.onupgradeneeded=function(b){var S=f.result;try{S.createObjectStore(a.storeName),b.oldVersion<=1&&S.createObjectStore(O)}catch(C){if(C.name==="ConstraintError")console.warn('The database "'+a.name+'" has been upgraded from version '+b.oldVersion+" to version "+b.newVersion+', but the storage "'+a.storeName+'" already exists.');else throw C}}),f.onerror=function(b){b.preventDefault(),m(f.error)},f.onsuccess=function(){var b=f.result;b.onversionchange=function(S){S.target.close()},c(b),J(a)}})}function Ze(a){return Oe(a,!1)}function fn(a){return Oe(a,!0)}function qn(a,d){if(!a.db)return!0;var c=!a.db.objectStoreNames.contains(a.storeName),m=a.version<a.db.version,g=a.version>a.db.version;if(m&&(a.version!==d&&console.warn('The database "'+a.name+`" can't be downgraded from version `+a.db.version+" to version "+a.version+"."),a.version=a.db.version),g||c){if(c){var f=a.db.version+1;f>a.version&&(a.version=f)}return!0}return!1}function ei(a){return new E(function(d,c){var m=new FileReader;m.onerror=c,m.onloadend=function(g){var f=btoa(g.target.result||"");d({__local_forage_encoded_blob:!0,data:f,type:a.type})},m.readAsBinaryString(a)})}function Ht(a){var d=H(atob(a.data));return p([d],{type:a.type})}function is(a){return a&&a.__local_forage_encoded_blob}function Vu(a){var d=this,c=d._initReady().then(function(){var m=X[d._dbInfo.name];if(m&&m.dbReady)return m.dbReady});return N(c,a,a),c}function Fu(a){ne(a);for(var d=X[a.name],c=d.forages,m=0;m<c.length;m++){var g=c[m];g._dbInfo.db&&(g._dbInfo.db.close(),g._dbInfo.db=null)}return a.db=null,Ze(a).then(function(f){return a.db=f,qn(a)?fn(a):f}).then(function(f){a.db=d.db=f;for(var b=0;b<c.length;b++)c[b]._dbInfo.db=f}).catch(function(f){throw de(a,f),f})}function et(a,d,c,m){m===void 0&&(m=1);try{var g=a.db.transaction(a.storeName,d);c(null,g)}catch(f){if(m>0&&(!a.db||f.name==="InvalidStateError"||f.name==="NotFoundError"))return E.resolve().then(function(){if(!a.db||f.name==="NotFoundError"&&!a.db.objectStoreNames.contains(a.storeName)&&a.version<=a.db.version)return a.db&&(a.version=a.db.version+1),fn(a)}).then(function(){return Fu(a).then(function(){et(a,d,c,m-1)})}).catch(c);c(f)}}function os(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function ku(a){var d=this,c={db:null};if(a)for(var m in a)c[m]=a[m];var g=X[c.name];g||(g=os(),X[c.name]=g),g.forages.push(d),d._initReady||(d._initReady=d.ready,d.ready=Vu);var f=[];function b(){return E.resolve()}for(var S=0;S<g.forages.length;S++){var C=g.forages[S];C!==d&&f.push(C._initReady().catch(b))}var I=g.forages.slice(0);return E.all(f).then(function(){return c.db=g.db,Ze(c)}).then(function(T){return c.db=T,qn(c,d._defaultConfig.version)?fn(c):T}).then(function(T){c.db=g.db=T,d._dbInfo=c;for(var A=0;A<I.length;A++){var k=I[A];k!==d&&(k._dbInfo.db=c.db,k._dbInfo.version=c.version)}})}function Uu(a,d){var c=this;a=U(a);var m=new E(function(g,f){c.ready().then(function(){et(c._dbInfo,Ne,function(b,S){if(b)return f(b);try{var C=S.objectStore(c._dbInfo.storeName),I=C.get(a);I.onsuccess=function(){var T=I.result;T===void 0&&(T=null),is(T)&&(T=Ht(T)),g(T)},I.onerror=function(){f(I.error)}}catch(T){f(T)}})}).catch(f)});return v(m,d),m}function Bu(a,d){var c=this,m=new E(function(g,f){c.ready().then(function(){et(c._dbInfo,Ne,function(b,S){if(b)return f(b);try{var C=S.objectStore(c._dbInfo.storeName),I=C.openCursor(),T=1;I.onsuccess=function(){var A=I.result;if(A){var k=A.value;is(k)&&(k=Ht(k));var $=a(k,A.key,T++);$!==void 0?g($):A.continue()}else g()},I.onerror=function(){f(I.error)}}catch(A){f(A)}})}).catch(f)});return v(m,d),m}function Hu(a,d,c){var m=this;a=U(a);var g=new E(function(f,b){var S;m.ready().then(function(){return S=m._dbInfo,Ae.call(d)==="[object Blob]"?G(S.db).then(function(C){return C?d:ei(d)}):d}).then(function(C){et(m._dbInfo,x,function(I,T){if(I)return b(I);try{var A=T.objectStore(m._dbInfo.storeName);C===null&&(C=void 0);var k=A.put(C,a);T.oncomplete=function(){C===void 0&&(C=null),f(C)},T.onabort=T.onerror=function(){var $=k.error?k.error:k.transaction.error;b($)}}catch($){b($)}})}).catch(b)});return v(g,c),g}function Gu(a,d){var c=this;a=U(a);var m=new E(function(g,f){c.ready().then(function(){et(c._dbInfo,x,function(b,S){if(b)return f(b);try{var C=S.objectStore(c._dbInfo.storeName),I=C.delete(a);S.oncomplete=function(){g()},S.onerror=function(){f(I.error)},S.onabort=function(){var T=I.error?I.error:I.transaction.error;f(T)}}catch(T){f(T)}})}).catch(f)});return v(m,d),m}function $u(a){var d=this,c=new E(function(m,g){d.ready().then(function(){et(d._dbInfo,x,function(f,b){if(f)return g(f);try{var S=b.objectStore(d._dbInfo.storeName),C=S.clear();b.oncomplete=function(){m()},b.onabort=b.onerror=function(){var I=C.error?C.error:C.transaction.error;g(I)}}catch(I){g(I)}})}).catch(g)});return v(c,a),c}function ju(a){var d=this,c=new E(function(m,g){d.ready().then(function(){et(d._dbInfo,Ne,function(f,b){if(f)return g(f);try{var S=b.objectStore(d._dbInfo.storeName),C=S.count();C.onsuccess=function(){m(C.result)},C.onerror=function(){g(C.error)}}catch(I){g(I)}})}).catch(g)});return v(c,a),c}function Wu(a,d){var c=this,m=new E(function(g,f){if(a<0){g(null);return}c.ready().then(function(){et(c._dbInfo,Ne,function(b,S){if(b)return f(b);try{var C=S.objectStore(c._dbInfo.storeName),I=!1,T=C.openKeyCursor();T.onsuccess=function(){var A=T.result;if(!A){g(null);return}a===0||I?g(A.key):(I=!0,A.advance(a))},T.onerror=function(){f(T.error)}}catch(A){f(A)}})}).catch(f)});return v(m,d),m}function zu(a){var d=this,c=new E(function(m,g){d.ready().then(function(){et(d._dbInfo,Ne,function(f,b){if(f)return g(f);try{var S=b.objectStore(d._dbInfo.storeName),C=S.openKeyCursor(),I=[];C.onsuccess=function(){var T=C.result;if(!T){m(I);return}I.push(T.key),T.continue()},C.onerror=function(){g(C.error)}}catch(T){g(T)}})}).catch(g)});return v(c,a),c}function Yu(a,d){d=M.apply(this,arguments);var c=this.config();a=typeof a!="function"&&a||{},a.name||(a.name=a.name||c.name,a.storeName=a.storeName||c.storeName);var m=this,g;if(!a.name)g=E.reject("Invalid arguments");else{var f=a.name===c.name&&m._dbInfo.db,b=f?E.resolve(m._dbInfo.db):Ze(a).then(function(S){var C=X[a.name],I=C.forages;C.db=S;for(var T=0;T<I.length;T++)I[T]._dbInfo.db=S;return S});a.storeName?g=b.then(function(S){if(S.objectStoreNames.contains(a.storeName)){var C=S.version+1;ne(a);var I=X[a.name],T=I.forages;S.close();for(var A=0;A<T.length;A++){var k=T[A];k._dbInfo.db=null,k._dbInfo.version=C}var $=new E(function(j,ie){var re=h.open(a.name,C);re.onerror=function(Re){var mn=re.result;mn.close(),ie(Re)},re.onupgradeneeded=function(){var Re=re.result;Re.deleteObjectStore(a.storeName)},re.onsuccess=function(){var Re=re.result;Re.close(),j(Re)}});return $.then(function(j){I.db=j;for(var ie=0;ie<T.length;ie++){var re=T[ie];re._dbInfo.db=j,J(re._dbInfo)}}).catch(function(j){throw(de(a,j)||E.resolve()).catch(function(){}),j})}}):g=b.then(function(S){ne(a);var C=X[a.name],I=C.forages;S.close();for(var T=0;T<I.length;T++){var A=I[T];A._dbInfo.db=null}var k=new E(function($,j){var ie=h.deleteDatabase(a.name);ie.onerror=function(){var re=ie.result;re&&re.close(),j(ie.error)},ie.onblocked=function(){console.warn('dropInstance blocked for database "'+a.name+'" until all open connections are closed')},ie.onsuccess=function(){var re=ie.result;re&&re.close(),$(re)}});return k.then(function($){C.db=$;for(var j=0;j<I.length;j++){var ie=I[j];J(ie._dbInfo)}}).catch(function($){throw(de(a,$)||E.resolve()).catch(function(){}),$})})}return v(g,d),g}var qu={_driver:"asyncStorage",_initStorage:ku,_support:y(),iterate:Bu,getItem:Uu,setItem:Hu,removeItem:Gu,clear:$u,length:ju,key:Wu,keys:zu,dropInstance:Yu};function Ku(){return typeof openDatabase=="function"}var ht="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Xu="~~local_forage_type~",ss=/^~~local_forage_type~([^~]+)~/,Kn="__lfsc__:",ti=Kn.length,ni="arbf",ri="blob",as="si08",cs="ui08",us="uic8",ls="si16",ds="si32",fs="ur16",ps="ui32",ms="fl32",hs="fl64",gs=ti+ni.length,_s=Object.prototype.toString;function vs(a){var d=a.length*.75,c=a.length,m,g=0,f,b,S,C;a[a.length-1]==="="&&(d--,a[a.length-2]==="="&&d--);var I=new ArrayBuffer(d),T=new Uint8Array(I);for(m=0;m<c;m+=4)f=ht.indexOf(a[m]),b=ht.indexOf(a[m+1]),S=ht.indexOf(a[m+2]),C=ht.indexOf(a[m+3]),T[g++]=f<<2|b>>4,T[g++]=(b&15)<<4|S>>2,T[g++]=(S&3)<<6|C&63;return I}function ii(a){var d=new Uint8Array(a),c="",m;for(m=0;m<d.length;m+=3)c+=ht[d[m]>>2],c+=ht[(d[m]&3)<<4|d[m+1]>>4],c+=ht[(d[m+1]&15)<<2|d[m+2]>>6],c+=ht[d[m+2]&63];return d.length%3===2?c=c.substring(0,c.length-1)+"=":d.length%3===1&&(c=c.substring(0,c.length-2)+"=="),c}function Ju(a,d){var c="";if(a&&(c=_s.call(a)),a&&(c==="[object ArrayBuffer]"||a.buffer&&_s.call(a.buffer)==="[object ArrayBuffer]")){var m,g=Kn;a instanceof ArrayBuffer?(m=a,g+=ni):(m=a.buffer,c==="[object Int8Array]"?g+=as:c==="[object Uint8Array]"?g+=cs:c==="[object Uint8ClampedArray]"?g+=us:c==="[object Int16Array]"?g+=ls:c==="[object Uint16Array]"?g+=fs:c==="[object Int32Array]"?g+=ds:c==="[object Uint32Array]"?g+=ps:c==="[object Float32Array]"?g+=ms:c==="[object Float64Array]"?g+=hs:d(new Error("Failed to get type for BinaryArray"))),d(g+ii(m))}else if(c==="[object Blob]"){var f=new FileReader;f.onload=function(){var b=Xu+a.type+"~"+ii(this.result);d(Kn+ri+b)},f.readAsArrayBuffer(a)}else try{d(JSON.stringify(a))}catch(b){console.error("Couldn't convert value into a JSON string: ",a),d(null,b)}}function Qu(a){if(a.substring(0,ti)!==Kn)return JSON.parse(a);var d=a.substring(gs),c=a.substring(ti,gs),m;if(c===ri&&ss.test(d)){var g=d.match(ss);m=g[1],d=d.substring(g[0].length)}var f=vs(d);switch(c){case ni:return f;case ri:return p([f],{type:m});case as:return new Int8Array(f);case cs:return new Uint8Array(f);case us:return new Uint8ClampedArray(f);case ls:return new Int16Array(f);case fs:return new Uint16Array(f);case ds:return new Int32Array(f);case ps:return new Uint32Array(f);case ms:return new Float32Array(f);case hs:return new Float64Array(f);default:throw new Error("Unkown type: "+c)}}var oi={serialize:Ju,deserialize:Qu,stringToBuffer:vs,bufferToString:ii};function ys(a,d,c,m){a.executeSql("CREATE TABLE IF NOT EXISTS "+d.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],c,m)}function Zu(a){var d=this,c={db:null};if(a)for(var m in a)c[m]=typeof a[m]!="string"?a[m].toString():a[m];var g=new E(function(f,b){try{c.db=openDatabase(c.name,String(c.version),c.description,c.size)}catch(S){return b(S)}c.db.transaction(function(S){ys(S,c,function(){d._dbInfo=c,f()},function(C,I){b(I)})},b)});return c.serializer=oi,g}function gt(a,d,c,m,g,f){a.executeSql(c,m,g,function(b,S){S.code===S.SYNTAX_ERR?b.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[d.storeName],function(C,I){I.rows.length?f(C,S):ys(C,d,function(){C.executeSql(c,m,g,f)},f)},f):f(b,S)},f)}function el(a,d){var c=this;a=U(a);var m=new E(function(g,f){c.ready().then(function(){var b=c._dbInfo;b.db.transaction(function(S){gt(S,b,"SELECT * FROM "+b.storeName+" WHERE key = ? LIMIT 1",[a],function(C,I){var T=I.rows.length?I.rows.item(0).value:null;T&&(T=b.serializer.deserialize(T)),g(T)},function(C,I){f(I)})})}).catch(f)});return v(m,d),m}function tl(a,d){var c=this,m=new E(function(g,f){c.ready().then(function(){var b=c._dbInfo;b.db.transaction(function(S){gt(S,b,"SELECT * FROM "+b.storeName,[],function(C,I){for(var T=I.rows,A=T.length,k=0;k<A;k++){var $=T.item(k),j=$.value;if(j&&(j=b.serializer.deserialize(j)),j=a(j,$.key,k+1),j!==void 0){g(j);return}}g()},function(C,I){f(I)})})}).catch(f)});return v(m,d),m}function Es(a,d,c,m){var g=this;a=U(a);var f=new E(function(b,S){g.ready().then(function(){d===void 0&&(d=null);var C=d,I=g._dbInfo;I.serializer.serialize(d,function(T,A){A?S(A):I.db.transaction(function(k){gt(k,I,"INSERT OR REPLACE INTO "+I.storeName+" (key, value) VALUES (?, ?)",[a,T],function(){b(C)},function($,j){S(j)})},function(k){if(k.code===k.QUOTA_ERR){if(m>0){b(Es.apply(g,[a,C,c,m-1]));return}S(k)}})})}).catch(S)});return v(f,c),f}function nl(a,d,c){return Es.apply(this,[a,d,c,1])}function rl(a,d){var c=this;a=U(a);var m=new E(function(g,f){c.ready().then(function(){var b=c._dbInfo;b.db.transaction(function(S){gt(S,b,"DELETE FROM "+b.storeName+" WHERE key = ?",[a],function(){g()},function(C,I){f(I)})})}).catch(f)});return v(m,d),m}function il(a){var d=this,c=new E(function(m,g){d.ready().then(function(){var f=d._dbInfo;f.db.transaction(function(b){gt(b,f,"DELETE FROM "+f.storeName,[],function(){m()},function(S,C){g(C)})})}).catch(g)});return v(c,a),c}function ol(a){var d=this,c=new E(function(m,g){d.ready().then(function(){var f=d._dbInfo;f.db.transaction(function(b){gt(b,f,"SELECT COUNT(key) as c FROM "+f.storeName,[],function(S,C){var I=C.rows.item(0).c;m(I)},function(S,C){g(C)})})}).catch(g)});return v(c,a),c}function sl(a,d){var c=this,m=new E(function(g,f){c.ready().then(function(){var b=c._dbInfo;b.db.transaction(function(S){gt(S,b,"SELECT key FROM "+b.storeName+" WHERE id = ? LIMIT 1",[a+1],function(C,I){var T=I.rows.length?I.rows.item(0).key:null;g(T)},function(C,I){f(I)})})}).catch(f)});return v(m,d),m}function al(a){var d=this,c=new E(function(m,g){d.ready().then(function(){var f=d._dbInfo;f.db.transaction(function(b){gt(b,f,"SELECT key FROM "+f.storeName,[],function(S,C){for(var I=[],T=0;T<C.rows.length;T++)I.push(C.rows.item(T).key);m(I)},function(S,C){g(C)})})}).catch(g)});return v(c,a),c}function cl(a){return new E(function(d,c){a.transaction(function(m){m.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],function(g,f){for(var b=[],S=0;S<f.rows.length;S++)b.push(f.rows.item(S).name);d({db:a,storeNames:b})},function(g,f){c(f)})},function(m){c(m)})})}function ul(a,d){d=M.apply(this,arguments);var c=this.config();a=typeof a!="function"&&a||{},a.name||(a.name=a.name||c.name,a.storeName=a.storeName||c.storeName);var m=this,g;return a.name?g=new E(function(f){var b;a.name===c.name?b=m._dbInfo.db:b=openDatabase(a.name,"","",0),a.storeName?f({db:b,storeNames:[a.storeName]}):f(cl(b))}).then(function(f){return new E(function(b,S){f.db.transaction(function(C){function I($){return new E(function(j,ie){C.executeSql("DROP TABLE IF EXISTS "+$,[],function(){j()},function(re,Re){ie(Re)})})}for(var T=[],A=0,k=f.storeNames.length;A<k;A++)T.push(I(f.storeNames[A]));E.all(T).then(function(){b()}).catch(function($){S($)})},function(C){S(C)})})}):g=E.reject("Invalid arguments"),v(g,d),g}var ll={_driver:"webSQLStorage",_initStorage:Zu,_support:Ku(),iterate:tl,getItem:el,setItem:nl,removeItem:rl,clear:il,length:ol,key:sl,keys:al,dropInstance:ul};function dl(){try{return typeof localStorage<"u"&&"setItem"in localStorage&&!!localStorage.setItem}catch{return!1}}function bs(a,d){var c=a.name+"/";return a.storeName!==d.storeName&&(c+=a.storeName+"/"),c}function fl(){var a="_localforage_support_test";try{return localStorage.setItem(a,!0),localStorage.removeItem(a),!1}catch{return!0}}function pl(){return!fl()||localStorage.length>0}function ml(a){var d=this,c={};if(a)for(var m in a)c[m]=a[m];return c.keyPrefix=bs(a,d._defaultConfig),pl()?(d._dbInfo=c,c.serializer=oi,E.resolve()):E.reject()}function hl(a){var d=this,c=d.ready().then(function(){for(var m=d._dbInfo.keyPrefix,g=localStorage.length-1;g>=0;g--){var f=localStorage.key(g);f.indexOf(m)===0&&localStorage.removeItem(f)}});return v(c,a),c}function gl(a,d){var c=this;a=U(a);var m=c.ready().then(function(){var g=c._dbInfo,f=localStorage.getItem(g.keyPrefix+a);return f&&(f=g.serializer.deserialize(f)),f});return v(m,d),m}function _l(a,d){var c=this,m=c.ready().then(function(){for(var g=c._dbInfo,f=g.keyPrefix,b=f.length,S=localStorage.length,C=1,I=0;I<S;I++){var T=localStorage.key(I);if(T.indexOf(f)===0){var A=localStorage.getItem(T);if(A&&(A=g.serializer.deserialize(A)),A=a(A,T.substring(b),C++),A!==void 0)return A}}});return v(m,d),m}function vl(a,d){var c=this,m=c.ready().then(function(){var g=c._dbInfo,f;try{f=localStorage.key(a)}catch{f=null}return f&&(f=f.substring(g.keyPrefix.length)),f});return v(m,d),m}function yl(a){var d=this,c=d.ready().then(function(){for(var m=d._dbInfo,g=localStorage.length,f=[],b=0;b<g;b++){var S=localStorage.key(b);S.indexOf(m.keyPrefix)===0&&f.push(S.substring(m.keyPrefix.length))}return f});return v(c,a),c}function El(a){var d=this,c=d.keys().then(function(m){return m.length});return v(c,a),c}function bl(a,d){var c=this;a=U(a);var m=c.ready().then(function(){var g=c._dbInfo;localStorage.removeItem(g.keyPrefix+a)});return v(m,d),m}function Sl(a,d,c){var m=this;a=U(a);var g=m.ready().then(function(){d===void 0&&(d=null);var f=d;return new E(function(b,S){var C=m._dbInfo;C.serializer.serialize(d,function(I,T){if(T)S(T);else try{localStorage.setItem(C.keyPrefix+a,I),b(f)}catch(A){(A.name==="QuotaExceededError"||A.name==="NS_ERROR_DOM_QUOTA_REACHED")&&S(A),S(A)}})})});return v(g,c),g}function Cl(a,d){if(d=M.apply(this,arguments),a=typeof a!="function"&&a||{},!a.name){var c=this.config();a.name=a.name||c.name,a.storeName=a.storeName||c.storeName}var m=this,g;return a.name?g=new E(function(f){a.storeName?f(bs(a,m._defaultConfig)):f(a.name+"/")}).then(function(f){for(var b=localStorage.length-1;b>=0;b--){var S=localStorage.key(b);S.indexOf(f)===0&&localStorage.removeItem(S)}}):g=E.reject("Invalid arguments"),v(g,d),g}var Il={_driver:"localStorageWrapper",_initStorage:ml,_support:dl(),iterate:_l,getItem:gl,setItem:Sl,removeItem:bl,clear:hl,length:El,key:vl,keys:yl,dropInstance:Cl},Tl=function(d,c){return d===c||typeof d=="number"&&typeof c=="number"&&isNaN(d)&&isNaN(c)},xl=function(d,c){for(var m=d.length,g=0;g<m;){if(Tl(d[g],c))return!0;g++}return!1},Ss=Array.isArray||function(a){return Object.prototype.toString.call(a)==="[object Array]"},pn={},Cs={},Gt={INDEXEDDB:qu,WEBSQL:ll,LOCALSTORAGE:Il},Dl=[Gt.INDEXEDDB._driver,Gt.WEBSQL._driver,Gt.LOCALSTORAGE._driver],Xn=["dropInstance"],si=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(Xn),wl={description:"",driver:Dl.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function Al(a,d){a[d]=function(){var c=arguments;return a.ready().then(function(){return a[d].apply(a,c)})}}function ai(){for(var a=1;a<arguments.length;a++){var d=arguments[a];if(d)for(var c in d)d.hasOwnProperty(c)&&(Ss(d[c])?arguments[0][c]=d[c].slice():arguments[0][c]=d[c])}return arguments[0]}var Nl=(function(){function a(d){u(this,a);for(var c in Gt)if(Gt.hasOwnProperty(c)){var m=Gt[c],g=m._driver;this[c]=g,pn[g]||this.defineDriver(m)}this._defaultConfig=ai({},wl),this._config=ai({},this._defaultConfig,d),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch(function(){})}return a.prototype.config=function(c){if((typeof c>"u"?"undefined":s(c))==="object"){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var m in c){if(m==="storeName"&&(c[m]=c[m].replace(/\W/g,"_")),m==="version"&&typeof c[m]!="number")return new Error("Database version must be a number.");this._config[m]=c[m]}return"driver"in c&&c.driver?this.setDriver(this._config.driver):!0}else return typeof c=="string"?this._config[c]:this._config},a.prototype.defineDriver=function(c,m,g){var f=new E(function(b,S){try{var C=c._driver,I=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!c._driver){S(I);return}for(var T=si.concat("_initStorage"),A=0,k=T.length;A<k;A++){var $=T[A],j=!xl(Xn,$);if((j||c[$])&&typeof c[$]!="function"){S(I);return}}var ie=function(){for(var mn=function(Ml){return function(){var Pl=new Error("Method "+Ml+" is not implemented by the current driver"),Is=E.reject(Pl);return v(Is,arguments[arguments.length-1]),Is}},ci=0,Rl=Xn.length;ci<Rl;ci++){var ui=Xn[ci];c[ui]||(c[ui]=mn(ui))}};ie();var re=function(mn){pn[C]&&console.info("Redefining LocalForage driver: "+C),pn[C]=c,Cs[C]=mn,b()};"_support"in c?c._support&&typeof c._support=="function"?c._support().then(re,S):re(!!c._support):re(!0)}catch(Re){S(Re)}});return N(f,m,g),f},a.prototype.driver=function(){return this._driver||null},a.prototype.getDriver=function(c,m,g){var f=pn[c]?E.resolve(pn[c]):E.reject(new Error("Driver not found."));return N(f,m,g),f},a.prototype.getSerializer=function(c){var m=E.resolve(oi);return N(m,c),m},a.prototype.ready=function(c){var m=this,g=m._driverSet.then(function(){return m._ready===null&&(m._ready=m._initDriver()),m._ready});return N(g,c,c),g},a.prototype.setDriver=function(c,m,g){var f=this;Ss(c)||(c=[c]);var b=this._getSupportedDrivers(c);function S(){f._config.driver=f.driver()}function C(A){return f._extend(A),S(),f._ready=f._initStorage(f._config),f._ready}function I(A){return function(){var k=0;function $(){for(;k<A.length;){var j=A[k];return k++,f._dbInfo=null,f._ready=null,f.getDriver(j).then(C).catch($)}S();var ie=new Error("No available storage method found.");return f._driverSet=E.reject(ie),f._driverSet}return $()}}var T=this._driverSet!==null?this._driverSet.catch(function(){return E.resolve()}):E.resolve();return this._driverSet=T.then(function(){var A=b[0];return f._dbInfo=null,f._ready=null,f.getDriver(A).then(function(k){f._driver=k._driver,S(),f._wrapLibraryMethodsWithReady(),f._initDriver=I(b)})}).catch(function(){S();var A=new Error("No available storage method found.");return f._driverSet=E.reject(A),f._driverSet}),N(this._driverSet,m,g),this._driverSet},a.prototype.supports=function(c){return!!Cs[c]},a.prototype._extend=function(c){ai(this,c)},a.prototype._getSupportedDrivers=function(c){for(var m=[],g=0,f=c.length;g<f;g++){var b=c[g];this.supports(b)&&m.push(b)}return m},a.prototype._wrapLibraryMethodsWithReady=function(){for(var c=0,m=si.length;c<m;c++)Al(this,si[c])},a.prototype.createInstance=function(c){return new a(c)},a})(),Ol=new Nl;i.exports=Ol},{3:3}]},{},[4])(4)})});var bt=class{gaEnabled;gaMeasurementID;pixelPush;website;currencyCount;money;storefrontToken;skipItemAttribute;currency;static get(){return window.CooeeSDK.config}update(t){return t??={},this.gaEnabled=t.gaEnabled,this.gaMeasurementID=t.gaMeasurementID,this.pixelPush=t.pixelPush,this.website=t.website??{},this.currencyCount=t.currencyCount??0,this.money=t.money,this.currency=t.currency,this.storefrontToken=t.storefrontToken,this.skipItemAttribute=t.skipItemAttribute,this}};var zs=0;function Fl(e=document.head){return Ys(zt.styleURL,e,"cooee-global-styles")}function kl(e=document.head){return Ys(zt.swiperStyleURL,e,"cooee-swiper-styles")}function Ys(e,t=document.head,n){return new Promise(r=>{if(t.querySelector(`#${n}`)){r();return}let o=document.createElement("link");o.rel="stylesheet",o.href=e,o.id=n,o.onload=()=>{r()},o.onerror=()=>{console.error("Failed to load stylesheet:",e),r()},t.appendChild(o)})}function mi(e,t=document.head){if(!e)return;zs++;let n=document.createElement("style");n.id=`cooee-app-css-${zs}`,n.textContent=e,t.appendChild(n)}async function qs(){let e=(await import("./swiper-bundle-WHJS64TU.js")).default;return window.CooeeSDK.Swiper=e}async function Ks(e,t=!0){if(!e)return;let n=[];t&&n.push(kl(e)),n.push(Fl(e)),await Promise.all(n);let r=bt.get().website.commonCSS;mi(r,e)}var Hl={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},Gh=V(_({},Hl),{"[class.ng-submitted]":"isSubmitted"});var Gl=new As("",{providedIn:"root",factory:()=>Xs}),Xs="always";var $l=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=fi({type:e});static \u0275inj=di({})}return e})();var Js=(()=>{class e{static withConfig(n){return{ngModule:e,providers:[{provide:Gl,useValue:n.callSetDisabledState??Xs}]}}static \u0275fac=function(r){return new(r||e)};static \u0275mod=fi({type:e});static \u0275inj=di({imports:[$l]})}return e})();var hi=(function(e){return e.SHOPIFY_CHECKOUT="shopify_checkout",e.THIRD_PARTY_CHECKOUT="third_party_checkout",e.CART_PAGE="cart_page",e.CART_DRAWER="cart_drawer",e})(hi||{});var ct=(function(e){return e[e.NONE=0]="NONE",e[e.REJECT_POPUP=1]="REJECT_POPUP",e[e.ACCEPT_POPUP=2]="ACCEPT_POPUP",e[e.GO_TO_URL=4]="GO_TO_URL",e[e.SHARE=5]="SHARE",e[e.KEY_VALUE=100]="KEY_VALUE",e[e.GO_TO_PRODUCT=101]="GO_TO_PRODUCT",e[e.ADD_TO_CART=102]="ADD_TO_CART",e[e.COPY_COUPON_CODE=103]="COPY_COUPON_CODE",e[e.GO_TO_COLLECTION=104]="GO_TO_COLLECTION",e[e.OPEN_CART=105]="OPEN_CART",e[e.SUBMIT_FORM=106]="SUBMIT_FORM",e[e.INITIATE_CHECKOUT=107]="INITIATE_CHECKOUT",e[e.ADD_BUNDLE=108]="ADD_BUNDLE",e[e.UPGRADE_TO_SUBSCRIPTION=109]="UPGRADE_TO_SUBSCRIPTION",e[e.BUY_NOW=110]="BUY_NOW",e[e.QUICK_VIEW=111]="QUICK_VIEW",e})(ct||{});var jl=(function(e){return e.FREE_SHIPPING="FREE_SHIPPING",e.DISCOUNT="DISCOUNT",e.FREE_AUTO_GIFT="FREE_AUTO_GIFT",e.FREE_GIFT_SELECT="FREE_GIFT_SELECT",e.UI_ONLY="UI_ONLY",e})(jl||{});var St=class e{engagementContext=_e(In);eventData=_e(tr);constructor(){}executeCTA(t,n){let r,i=this.engagementContext();if(!i){ge.error("Engagement context is not available; aborting executeCTA.");return}if(t===ct.ADD_TO_CART)r="CE Add To Cart Clicked";else if(t===ct.GO_TO_PRODUCT)r="CE View Item Clicked";else if(t===ct.OPEN_CART)r="CE Open Cart Clicked",i.triggerData.redirectBehaviour=hi.CART_DRAWER;else{ge.warn(`Unsupported CTA type: ${t}`);return}window.CooeeSDK.executeCTA(i,_({clickAction:{at:t}},n));let o=new js(r,this.eventData.props,i.triggerData);n?.video?o.setVideos(n.video):this.eventData.video&&o.setVideos(this.eventData.video),window.CooeeSDK.sendEvent(o)}static \u0275fac=function(n){return new(n||e)};static \u0275prov=li({token:e,factory:e.\u0275fac})};function Qs(e,t){return[St,...zl(e,t)]}function zl(e,t){return[{provide:In,useValue:tt(e)},{provide:tr,useValue:_({},t)}]}var ir=class e{elementRef=_e(_n);engagementService=_e(St);hasSwiper=!1;_engagementTrigger=tt(null);_triggerContext=_e(In);constructor(){this.elementRef.nativeElement.update=this.update.bind(this)}get classes(){let t=["letscooee-widget"],n=this._engagementTrigger();return t.push(`widget-${n?.shortID}`),t}get triggerContext(){return this._triggerContext()}set triggerContext(t){this._triggerContext.set(t),this._engagementTrigger.set(t.triggerData),this.engagementTriggerReceived(t.triggerData)}get engagementTrigger(){return this._engagementTrigger()}ngOnInit(){ge.verbose("Init",this.constructor.name);let t=this.elementRef.nativeElement.shadowRoot;t&&Ks(t,this.hasSwiper)}ngOnDestroy(){ge.verbose("Destroying",this.constructor.name)}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=Se({type:e,selectors:[["ng-component"]],hostVars:2,hostBindings:function(n,r){n&2&&Zn(r.classes)},inputs:{triggerContext:"triggerContext"},decls:1,vars:0,template:function(n,r){n&1&&Ms(0)},encapsulation:2})};var Zs=(e,t)=>t.id;function Yl(e,t){if(e&1&&(W(0,"span",6),ee(1),z()),e&2){B();let n=ve(0);D(),ot(n)}}function ql(e,t){if(e&1){let n=We();Ue(0),W(1,"button",5),ke("click",function(){let i=Te(n).$implicit,o=B().$implicit,s=B();return xe(s.onOptionChange(o,i))}),Q(2,Yl,2,1,"span",6),z()}if(e&2){let n=t.$implicit,r=B().$implicit,i=ve(1),o=B(),s=n.name,u=Be(n.displayName||n.name),l=n.swatch,h=i?n.hexColor??s:"",y=o.selectedOptions()[r.name]===s,p=!!(l!=null&&l.color),E=!!(!(l==null||l.image==null)&&l.image.url);D(),En("swatch-color-type",p)("swatch-image-type",E)("selected",y)("disabled",n.disabled),oe("title",u)("ngStyle",o.getSwatchStyles(l,h)),$t("aria-checked",y?"true":"false")("data-value",s)("aria-disabled",n.disabled?"true":null)("aria-label",u),D(),Z(!i&&!p&&!E?2:-1)}}function Kl(e,t){if(e&1&&(W(0,"div"),Ue(1),W(2,"div",1),ee(3),z(),W(4,"div",2),ee(5),z(),W(6,"div",3),jt(7,ql,3,16,"button",4,Zs),z()()),e&2){let n=t.$implicit,r=B();Zn(Fs("option-group ",n.name.toLowerCase())),D(),Be(r.hasHexColors(n)),D(2),Nt("",n.name,":"),D(2),ot(r.selectedOptions()[n.name]),D(),$t("aria-label",n.name),D(),Wt(n.optionValues)}}var Tn=e=>e.trim().toLowerCase(),or=class e extends ir{selectedVariant=new vn;item=Ce.required();selectedOptions=tt({});options=st(()=>{let t=this.item();if(!t.options||t.vars.length===1)return[];if(window.cooeeManipulateProduct)try{window.cooeeManipulateProduct(t,this.engagementTrigger)}catch(n){ge.error(n)}return t.options.forEach(n=>{n.optionValues.forEach(r=>{r.disabled=this.isOptionValueDisabledFast(n,r)})}),t.options});matchedVariant=st(()=>{let t=this.item(),n=this.selectedOptions();return t.vars.find(r=>t.options.every(i=>{let o=r.selectedOptions.find(s=>s.name===i.name)?.value;return n[i.name]===o}))});availabilityIndex=st(()=>{let t=this.item(),n=new Map;return t?.vars?.length&&t.vars.forEach((r,i)=>{if(r.isAvailable)for(let o of r.selectedOptions){let s=Tn(o.name),u=o.value,l=n.get(s);l||n.set(s,l=new Map);let h=l.get(u);h||l.set(u,h=new Set),h.add(i)}}),n});constructor(){super(),Ot(()=>{let n=this.matchedVariant();n&&(this.item().setSelectedVariant(n),this.selectedVariant.emit(n))});let t=Ot(()=>{let n=this.item();if(!n?.options)return;let r=_({},this.selectedOptions()),i=n.vars.find(o=>o.isAvailable)??n.vars[0];n.options.forEach(o=>{let s=i?.selectedOptions.find(u=>u.name===o.name)?.value;s&&(r[o.name]=s)}),this.selectedOptions.set(r),t.destroy()})}ngOnInit(){super.ngOnInit();let t=this.elementRef.nativeElement.shadowRoot;if(!t)return;let n=bt.get().website?.itemSwatchMapping;n&&mi(n,t)}onOptionChange(t,n){let r=_({},this.selectedOptions());r[t.name]=n.name,this.selectedOptions.set(r)}engagementTriggerReceived(){}update(){}hasHexColors(t){return!!t.optionValues[0]?.name.match(/#[a-f0-9]{6}\b/i)}getSwatchStyles(t,n){let r={};return!t&&n?(r["--option-color"]=n,r["background-color"]=n,r):(t?.image?.url?r["background-image"]=`url("${t.image.url}")`:t?.color&&(r["--option-color"]=t.color,r["background-color"]=t.color),r)}getCandidateVariantsExcluding(t){let n=this.item(),r=this.availabilityIndex(),i=new Set;n.vars.forEach((s,u)=>{s.isAvailable&&i.add(u)});let o=i;for(let[s,u]of Object.entries(this.selectedOptions())){if(Tn(s)===Tn(t))continue;let l=r.get(Tn(s));if(!l)return new Set;let h=l.get(String(u));if(!h)return new Set;if(o=new Set([...o].filter(y=>h.has(y))),o.size===0)return o}return o}isOptionValueDisabledFast(t,n){let i=this.availabilityIndex().get(Tn(t.name));if(!i)return!0;let o=n.name,s=i.get(o);if(!s||s.size===0)return!0;let u=this.getCandidateVariantsExcluding(t.name);if(u.size===0)return!0;for(let l of u)if(s.has(l))return!1;return!0}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=Se({type:e,selectors:[["cooee-item-options-picker"]],inputs:{item:[1,"item"]},outputs:{selectedVariant:"selectedVariant"},features:[bn(Qs()),pi],decls:2,vars:0,consts:[[3,"class"],[1,"name"],[1,"selected-value"],["role","radiogroup",1,"option-values"],["type","button","role","radio",1,"option-value",3,"swatch-color-type","swatch-image-type","selected","disabled","title","ngStyle"],["type","button","role","radio",1,"option-value",3,"click","title","ngStyle"],[1,"title"]],template:function(n,r){n&1&&jt(0,Kl,9,7,"div",0,Zs),n&2&&Wt(r.options())},dependencies:[Gs,Bs,Js],styles:[`.option-group{display:flex;gap:4px;align-items:center}.option-group+.option-group{margin-top:8px}.option-values{display:flex;flex-wrap:nowrap;overflow-x:auto;padding:6px;gap:4px;scrollbar-gutter:stable both-edges;scrollbar-width:none}.option-values::-webkit-scrollbar{display:none}.selected-value{display:none}.option-value{padding:5px 10px;border:1px solid #ccc;cursor:pointer;border-radius:4px;min-width:32px;min-height:32px;text-align:center;position:relative;flex-shrink:0;--selected-color: var(--option-color, rgba(var(--lc-primary-button-bg-color, 0 0 0)));background-size:cover;background-position:center;background-repeat:no-repeat}.option-value.selected{box-shadow:#fff 0 0 0 2px,var(--selected-color) 0 0 0 4px}.option-value.disabled{opacity:.5;pointer-events:none}
2
2
  `],encapsulation:3})};var _i=Vl(ta());function sr(e){return _i.default.createInstance({name:"lc",storeName:e,driver:_i.default.LOCALSTORAGE})}var qt=class{static storage;static async get(t,n){return await this.storage?.getItem(t)??n}static set(t,n){return this.storage?.setItem(t,n)}static remove(t){return this.storage?.removeItem(t)}static clear(){return this.storage?.clear()}static getForage(){return this.storage}};var xn=class xn extends qt{};Jn(xn,"storeName","usr"),xn.storage=sr(xn.storeName);var vi=xn;function yi(){return window.CooeeSDK?.uaParser.getDevice().type==="mobile"}var kg=()=>typeof navigator<"u"&&"share"in navigator;var Kt=class{lastWidth;lastHeight;resizeTimeout=null;debounceDelay=200;onResizeCallback;constructor(t){this.onResizeCallback=t,this.lastWidth=window.innerWidth,this.lastHeight=window.innerHeight,window.addEventListener("resize",this.debouncedResize),window.addEventListener("orientationchange",this.handleImmediateResize)}destroy(){window.removeEventListener("resize",this.debouncedResize),window.removeEventListener("orientationchange",this.handleImmediateResize)}handleImmediateResize=()=>{this.triggerResize()};debouncedResize=()=>{this.resizeTimeout!==null&&clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout(()=>{this.triggerResize()},this.debounceDelay)};triggerResize(){let t=window.innerWidth,n=window.innerHeight;(n!==this.lastHeight||t!==this.lastWidth)&&(this.onResizeCallback(),this.lastWidth=t,this.lastHeight=n)}};function na(e){e||(e=_e(gn));let t=new xs(n=>{if(e.destroyed){n.next();return}return e.onDestroy(n.next.bind(n))});return n=>n.pipe(ws(t))}var ra=(n=>(n.SINGLE_PANE="SINGLE_PANE",n.TWO_PANE="TWO_PANE",n))(ra||{});var Dn=class Dn extends qt{};Jn(Dn,"storeName","ses"),Dn.storage=sr(Dn.storeName);var Ei=Dn;var R=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__;var P=globalThis;var ze="9.42.0";function Rt(){return Mt(P),P}function Mt(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||ze,t[ze]=t[ze]||{}}function ut(e,t,n=P){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[ze]=r[ze]||{};return i[e]||(i[e]=t())}var bi=["debug","info","warn","error","log","assert","trace"],Xl="Sentry Logger ",Xt={};function Ct(e){if(!("console"in P))return e();let t=P.console,n={},r=Object.keys(Xt);r.forEach(i=>{let o=Xt[i];n[i]=t[i],t[i]=o});try{return e()}finally{r.forEach(i=>{t[i]=n[i]})}}function Jl(){Ci().enabled=!0}function Ql(){Ci().enabled=!1}function ia(){return Ci().enabled}function Zl(...e){Si("log",...e)}function ed(...e){Si("warn",...e)}function td(...e){Si("error",...e)}function Si(e,...t){R&&ia()&&Ct(()=>{P.console[e](`${Xl}[${e}]:`,...t)})}function Ci(){return R?ut("loggerSettings",()=>({enabled:!1})):{enabled:!1}}var w={enable:Jl,disable:Ql,isEnabled:ia,log:Zl,warn:ed,error:td};var oa=/\(error: (.*)\)/,sa=/captureMessage|captureException/;function Ti(...e){let t=e.sort((n,r)=>n[0]-r[0]).map(n=>n[1]);return(n,r=0,i=0)=>{let o=[],s=n.split(`
3
3
  `);for(let u=r;u<s.length;u++){let l=s[u];if(l.length>1024)continue;let h=oa.test(l)?l.replace(oa,"$1"):l;if(!h.match(/\S*Error: /)){for(let y of t){let p=y(h);if(p){o.push(p);break}}if(o.length>=50+i)break}}return aa(o.slice(i))}}function aa(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(ar(t).function||"")&&t.pop(),t.reverse(),sa.test(ar(t).function||"")&&(t.pop(),sa.test(ar(t).function||"")&&t.pop()),t.slice(0,50).map(n=>V(_({},n),{filename:n.filename||ar(t).filename,function:n.function||"?"}))}function ar(e){return e[e.length-1]||{}}var Ii="<anonymous>";function Pe(e){try{return!e||typeof e!="function"?Ii:e.name||Ii}catch{return Ii}}function cr(e){let t=e.exception;if(t){let n=[];try{return t.values.forEach(r=>{r.stacktrace.frames&&n.push(...r.stacktrace.frames)}),n}catch{return}}}var ur={},ca={};function ye(e,t){ur[e]=ur[e]||[],ur[e].push(t)}function Ee(e,t){if(!ca[e]){ca[e]=!0;try{t()}catch(n){R&&w.error(`Error while instrumenting ${e}`,n)}}}function se(e,t){let n=e&&ur[e];if(n)for(let r of n)try{r(t)}catch(i){R&&w.error(`Error while triggering instrumentation handler.
4
4
  Type: ${e}
package/dist/main.min.js CHANGED
@@ -7,7 +7,7 @@ import{a as _,b as Z,c as No,d as Im,e as Oo,f as xr,g as wi}from"./chunk-V7UGKY
7
7
 
8
8
  `+ne.message+`
9
9
  `+Array(ne.message.length+1).join("=")+`
10
- `+T(A,U)):ne}}function Ft(A,R){var $;return R.cache&&R.name&&R.storage.templates.get(R.name)?R.storage.templates.get(R.name):($=typeof A=="function"?A:et(A,R),R.cache&&R.name&&R.storage.templates.define(R.name,$),$)}Ae.l.bind(Ae),t.compile=et,t.compileScope=P,t.compileScopeIntoFunction=G,t.compileToString=T,t.defaultConfig=Ae,t.filters=Te,t.getConfig=qe,t.helpers=fe,t.nativeHelpers=Be,t.parse=y,t.render=function(A,R,$,U){var H=qe($||{});if(!H.async)return Ft(A,H)(R,H);if(!U){if(typeof n=="function")return new n(function(ne,he){try{ne(Ft(A,H)(R,H))}catch(Ke){he(Ke)}});throw e("Please provide a callback function, this env doesn't support Promises")}try{Ft(A,H)(R,H,U)}catch(ne){return U(ne)}},t.templates=se,Object.defineProperty(t,"__esModule",{value:!0})})});var iu="12.1.2";var Qv=iu.split("-")[0].split(".").slice(0,3).map(t=>t.padStart(2,"0")).join(""),Ys="WEB",Tm="CooeeSDK",Xr=iu,xm=parseInt(Qv,10);var Cm=["collection","product","cart"],Rm=[{identifier:"#flo-checkout-wrapper",gateway:"Shopflow"},{identifier:"#fastrr-main-container",gateway:"Shiprocket"},{identifier:"#gokwik-modal-wrapper",gateway:"Gokwik"},{identifier:"#zecpe",gateway:"Ecom 360"}],Am=["View Item","View Cart","View Collection"];var Ks=`https://cdn.jsdelivr.net/npm/@letscooee/web-sdk@${Xr}/dist`,Gt={apiURL:"https://api.sdk.letscooee.com",debug:!1,mode:"production",baseURL:Ks,styleURL:`${Ks}/widget.min.css`,widgetURL:`${Ks}/widget.min.js`,swiperStyleURL:`${Ks}/swiper-bundle.min.css`};var zt=xr(Si());var b=class{static debuggerEl;static infoLogs=[];static log(...e){zt.default.info(...e)}static verbose(...e){zt.default.debug(...e)}static error(...e){zt.default.error(...e)}static warn(...e){zt.default.warn(...e)}static info(...e){zt.default.info(...e),this.infoLogs.unshift({time:new Date,message:e.join(" ")}),this.addToDebugger()}static trace(...e){zt.default.trace(...e)}static addToDebugger(){sessionStorage.cooeeDebug&&(this.debuggerEl=this.debuggerEl??document.querySelector("cooee-debugger"),this.debuggerEl&&this.debuggerEl&&(this.debuggerEl.logs=[...this.infoLogs]))}};function Nm(t=Tm){zt.default.useDefaults({formatter:function(r){r.unshift(`${t} (v${Xr}):`)}});let e=ou();(e==="1"||e==="on")&&(localStorage.cooeeLogLevel="TRACE"),localStorage.cooeeLogLevel?zt.default.setLevel(zt.default[localStorage.cooeeLogLevel]):zt.default.setLevel(Gt.debug?zt.default.TRACE:zt.default.OFF)}function ou(){return new URL(location.href).searchParams?.get("cooee-debug")}function Om(){let t=`
10
+ `+T(A,U)):ne}}function Ft(A,R){var $;return R.cache&&R.name&&R.storage.templates.get(R.name)?R.storage.templates.get(R.name):($=typeof A=="function"?A:et(A,R),R.cache&&R.name&&R.storage.templates.define(R.name,$),$)}Ae.l.bind(Ae),t.compile=et,t.compileScope=P,t.compileScopeIntoFunction=G,t.compileToString=T,t.defaultConfig=Ae,t.filters=Te,t.getConfig=qe,t.helpers=fe,t.nativeHelpers=Be,t.parse=y,t.render=function(A,R,$,U){var H=qe($||{});if(!H.async)return Ft(A,H)(R,H);if(!U){if(typeof n=="function")return new n(function(ne,he){try{ne(Ft(A,H)(R,H))}catch(Ke){he(Ke)}});throw e("Please provide a callback function, this env doesn't support Promises")}try{Ft(A,H)(R,H,U)}catch(ne){return U(ne)}},t.templates=se,Object.defineProperty(t,"__esModule",{value:!0})})});var iu="12.1.3";var Qv=iu.split("-")[0].split(".").slice(0,3).map(t=>t.padStart(2,"0")).join(""),Ys="WEB",Tm="CooeeSDK",Xr=iu,xm=parseInt(Qv,10);var Cm=["collection","product","cart"],Rm=[{identifier:"#flo-checkout-wrapper",gateway:"Shopflow"},{identifier:"#fastrr-main-container",gateway:"Shiprocket"},{identifier:"#gokwik-modal-wrapper",gateway:"Gokwik"},{identifier:"#zecpe",gateway:"Ecom 360"}],Am=["View Item","View Cart","View Collection"];var Ks=`https://cdn.jsdelivr.net/npm/@letscooee/web-sdk@${Xr}/dist`,Gt={apiURL:"https://api.sdk.letscooee.com",debug:!1,mode:"production",baseURL:Ks,styleURL:`${Ks}/widget.min.css`,widgetURL:`${Ks}/widget.min.js`,swiperStyleURL:`${Ks}/swiper-bundle.min.css`};var zt=xr(Si());var b=class{static debuggerEl;static infoLogs=[];static log(...e){zt.default.info(...e)}static verbose(...e){zt.default.debug(...e)}static error(...e){zt.default.error(...e)}static warn(...e){zt.default.warn(...e)}static info(...e){zt.default.info(...e),this.infoLogs.unshift({time:new Date,message:e.join(" ")}),this.addToDebugger()}static trace(...e){zt.default.trace(...e)}static addToDebugger(){sessionStorage.cooeeDebug&&(this.debuggerEl=this.debuggerEl??document.querySelector("cooee-debugger"),this.debuggerEl&&this.debuggerEl&&(this.debuggerEl.logs=[...this.infoLogs]))}};function Nm(t=Tm){zt.default.useDefaults({formatter:function(r){r.unshift(`${t} (v${Xr}):`)}});let e=ou();(e==="1"||e==="on")&&(localStorage.cooeeLogLevel="TRACE"),localStorage.cooeeLogLevel?zt.default.setLevel(zt.default[localStorage.cooeeLogLevel]):zt.default.setLevel(Gt.debug?zt.default.TRACE:zt.default.OFF)}function ou(){return new URL(location.href).searchParams?.get("cooee-debug")}function Om(){let t=`
11
11
  display: inline-block;
12
12
  font-size: 14px;
13
13
  background: linear-gradient(90deg, #d52dc8 25%, #2179e2 82%);
@@ -71,4 +71,4 @@ mutation cartDiscountCodesUpdate($cartId: ID!, $discountCodes: [String!]) {
71
71
  <span class="${i}"
72
72
  style="background-color: ${e.pagination.color?.rgba};">
73
73
  </span>
74
- `},navigation:{nextEl:t.querySelector(".swiper-button-next"),prevEl:t.querySelector(".swiper-button-prev")},autoplay:e.autoplay?.enabled?{delay:e.autoplay?.delay,disableOnInteraction:!1,pauseOnMouseEnter:!1}:!1,autoHeight:!0,speed:e.speed};e.marquee&&r.autoplay&&typeof r.autoplay=="object"&&(r.autoplay.pauseOnMouseEnter=!0,t.style.setProperty("--swiper-wrapper-transition-timing-function","linear"));let n=new window.CooeeSDK.Swiper(t,r);return t.style.setProperty("--swiper-navigation-size",`${e.navigation.size}px`),n}function Ml(t,e,r){let n={color:t.navigation.color?.rgba};return t.pagination.enabled&&(n.transform="translateY(-25%)"),K("div",{class:"swiper-container",ref:e,style:"max-width: 100%",children:[K("div",{class:"swiper-wrapper",children:r()}),t.navigation.enabled&&K("div",{class:"swiper-button-next",style:n,children:K("span",{})}),t.navigation.enabled&&K("div",{class:"swiper-button-prev",style:n,children:K("span",{})}),t.pagination.enabled&&K("div",{className:"swiper-pagination",style:{bottom:0,top:"unset",position:"relative",color:t.pagination.color?.rgba}})]})}var ks=class extends Fe{componentDidMount(){Tt(()=>{this.setState(()=>({checked:this.props.item.selected.value}))})}render(){return K("div",{style:this.getCompiledStyles(),className:"lc-checkbox",children:K("input",{type:"checkbox",checked:this.state.checked,onChange:this.onChange.bind(this),style:{appearance:"auto"}})})}onChange(e){let{checked:r}=e.target;this.props.item.selected.value=r}getTypoStyles(){let e={},r=this.mediaStyle.typo??new lt;return e.textAlign=r.alignment,e.justifyContent=r.alignment,e}getComponentStyles(){return Z(_({},this.getTypoStyles()),{display:"flex"})}};var dn=class extends Fe{constructor(e,r){super(e,r)}render(){let e=this.props.element[this.deviceTypeKey],r=e?.src||this.props.element.src||this.props.element.lg?.src;return K("img",{onClick:this.customOnClick.bind(this),className:"lc-image",alt:e?.name||"Image",onMouseEnter:this.handleMouseEnter.bind(this),onMouseLeave:this.handleMouseLeave.bind(this),src:r,style:this.getCompiledStyles()})}customOnClick(e){this.props.element.clc?.at===we.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 r={zIndex:e.zIndex,cursor:this.props.element.clc?.at?"pointer":"auto"};return this.mediaStyle.size?.w&&(r.width=this.mediaStyle.size.w),this.mediaStyle.size?.h&&(r.height=this.mediaStyle.size.h),r}handleMouseEnter(e){let r=this.props.element[this.deviceTypeKey]?.secondarySrc;r&&(e.currentTarget.src=r)}handleMouseLeave(e){e.currentTarget.src=this.props.element[this.deviceTypeKey]?.src}};var hn=class extends Fe{render(){if(!(this.props.element.hide||!this.matchWhenCondition(this.props.element.when)))return K("div",{style:this.getCompiledStyles(),class:"lc-flexbox",children:K(Fn,{elements:this.props.elements,element:this.props.element,triggerContext:this.props.triggerContext})})}getComponentStyles(){let e=this.mediaStyle.flex??new Qi,r={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"?r["overflow-y"]="auto":r["overflow-x"]="auto"),r}};var Us=class extends hn{render(){if(!(this.props.element.hide||!this.matchWhenCondition(this.props.element.when)))return K("div",{style:this.getCompiledStyles(),class:"lc-flexbox",children:K(To,{elements:this.props.elements,element:this.props.element,triggerContext:this.props.triggerContext,item:this.props.item,noLinks:this.props.noLinks})})}};var Fs=class extends Fe{render(){return K("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(){Tt(()=>{this.setState(()=>({disabled:this.props.triggerContext.triggerData.isBundle()?!this.props.item.selected.value:!1}))})}getTypoStyles(){let e={},r=this.mediaStyle.typo??new lt;return e.letterSpacing=r.letterSpacing,e.fontSize=r.fs+"px",e.lineHeight=r.lh,e.fontFamily="inherit",e.textAlign=r.alignment,e.fontWeight=r.fw,this.stylesConverter.getColourStyles(r.tc,"color",e),e.boxShadow="none",e}getComponentStyles(){let e={};return this.props.selectedVariant.sellingPlans?.length||(e.visibility="hidden"),_(_({},e),this.getTypoStyles())}createSelectItems(){let e=[],r=this.props.selectedVariant;if(!r.sellingPlans?.length)return[];this.props.triggerContext.triggerData.skipSubscribedItems?r.selectedSellingPlan.value||(r.sellingPlans[0].isSelected=!0,r.changeSellingPlan(r.sellingPlans[0])):e.push(K("option",{value:"",selected:!r.selectedSellingPlan,children:"One time purchase"}));for(let n of r.sellingPlans??[])e.push(K("option",{value:n.mID,selected:n.isSelected,children:n.name}));return e}onChange(e){let r=e.target.value;r?this.props.selectedVariant.selectedSellingPlan.value=this.props.selectedVariant.sellingPlans.find(n=>n.mID===r):this.props.selectedVariant.selectedSellingPlan.value=void 0}};var D0=new RegExp('fill="#[a-zA-Z0-9]+"'),Hs=class extends Fe{constructor(){super()}render(){let e=this.getCompiledStyles(),r=this.getRating();return r||(e.display="none",r=""),K("div",{style:e,className:"lc-star-rating",dangerouslySetInnerHTML:{__html:r}})}getRating(){let e={size:this.props.element.iconSize,color:this.props.element.c.hex},r=ji(this.props.element.fullStar,{svg:e},this.props.triggerContext),n=ji(this.props.element.halfStart,{svg:e},this.props.triggerContext),i=this.props.review;if(!i?.rating)return"";let o="";if(this.props.element.showSingleStar)o=r;else{let s=5,a=`${i.rating}`.split(".");for(let c=0;c<+a[0];c++)o+=r,s--;a[1]&&(o+=n,s--);for(let c=0;c<s;c++)o+=r.replace(D0,'fill="#f1f1f1"')}return o}getComponentStyles(){return{display:"flex",alignItems:"center"}}};var Vs=class extends Fe{render(){return K("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(){Tt(()=>{this.setState(()=>({disabled:this.props.triggerContext.triggerData.isBundle()?!this.props.item.selected.value:!1}))})}getTypoStyles(){let e={},r=this.mediaStyle.typo??new lt;return e.letterSpacing=r.letterSpacing,e.fontSize=r.fs+"px",e.lineHeight=r.lh,e.fontFamily="inherit",e.textAlign=r.alignment,e.fontWeight=r.fw,this.stylesConverter.getColourStyles(r.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"),_(_({},e),this.getTypoStyles())}createSelectItems(){let e=[];for(let r of this.props.item.vars)e.push(K("option",{value:r.mID,disabled:!r.isAvailable,children:r.name}));return e}onChange(e){let r=e.target.value,n=this.props.item.vars.find(i=>i.mID===r);this.props.item.setSelectedVariant(n)}};var To=class extends Fe{constructor(e,r){super(e,r),this.setState(()=>({decoration:"unset"}))}renderElement(e){if(!(e.hide||!this.matchWhenCondition(e.when))){if(e.t===4){let r=e;return r.l==="Star Rating"&&!this.props.item.reviews?.rating?void 0:K(Us,{element:r,triggerContext:this.props.triggerContext,elements:r.elems,item:this.props.item,noLinks:this.props.noLinks})}if(e.t===6)return this.props.triggerContext.triggerData.isBundle()?K(ks,{element:e,item:this.props.item,triggerContext:this.props.triggerContext}):void 0;if(e.t===13){let r=e,n=this.props.item,i=n.variantImage??n.firstImageURL,o=n.variantSecondaryImage??n.secondaryImageURL;r.lg=r.sm={src:i,name:n.name,secondarySrc:o};let s=K(dn,{element:r,onClick:this.customOnClick.bind(this),triggerContext:this.props.triggerContext});return this.props.noLinks?s:K("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 r=e;return this.props.triggerContext.triggerData.isCartEmbed()&&this.props.item.vars?.length===1&&this.props.item.vars[0].name==="Default Title"?void 0:r.showChips?K("cooee-product-options-picker",{item:this.props.item}):K(Vs,{element:r,item:this.props.item,triggerContext:this.props.triggerContext})}return e.t===16?K(Fs,{element:e,selectedVariant:this.props.item.selectedOrFirstVariant.value,item:this.props.item,triggerContext:this.props.triggerContext}):e.t===19?K(Hs,{element:e,triggerContext:this.props.triggerContext,review:this.props.item.reviews}):e.t===18||e.t===3?K(vi,{element:e,item:this.props.item,triggerContext:this.props.triggerContext}):K(Fn,{elements:[e],element:this.props.element,triggerContext:this.props.triggerContext})}}render(){return this.props.elements.map(e=>this.renderElement(e))}getComponentStyles(){return{}}renderProductTitle(e){let r=K(Qt,{element:e,onClick:this.customOnClick.bind(this),triggerContext:this.props.triggerContext});return this.props.noLinks?r:K("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:r})}customOnClick(e){this.sendTriggerClicked([this.props.item.toEmbed()],{from:e})}onMouseEnter(){this.setState(()=>({decoration:"underline"}))}onMouseLeave(){this.setState(()=>({decoration:"unset"}))}};var Ei=class extends Fe{productElement;constructor(e,r){super(e,r),this.setState(()=>({decoration:"unset"}))}render(){let e=Zn(this.props.element,this.getProductData(),this.props.triggerContext);if(this.productElement=new Rn(e),!(this.productElement.hide||!this.matchWhenCondition(this.productElement.when)))return K("div",{style:_({},this.getCompiledStyles()),class:"lc-single-product",children:K(To,{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,r=e.selectedOrFirstVariant.value,n=e.getTemplateVariables();n.product.quantity=this.props.triggerContext.hasManipulatedProductQuantity()?this.props.triggerContext.getManipulatedQuantity(this.props.item.quantity):this.props.item.quantity;let i=this.props.triggerContext.triggerData.discount?.type===er.BXGY;return!r.hasEffectivePrice()&&i&&(n.product=Z(_(_({},n.product),kt("effective_price",r.effectivePrice.value)),{price:""})),n.variant.quantity=this.props.triggerContext.hasManipulatedProductQuantity()?this.props.triggerContext.getManipulatedQuantity(r.quantity):r.quantity,{product:n.product,variant:n.variant,svg:{color:"{{ svg.color }}",size:"{{ svg.size }}"}}}};var $s=class extends Fe{swiperRef=null;swiperInstance=null;configuration;gap;constructor(e,r){super(e,r),this.configuration=Gr()?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&&Mc().then(()=>{this.swiperInstance=Ll(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 r;if(this.configuration.disp===2){let n=o=>{this.swiperRef=o},i=()=>e?.map(o=>K("div",{class:"swiper-slide",children:this.getProductFragment(o)}));r=K("div",{style:Z(_({},this.getCompiledStyles()),{display:"block"}),class:"lc-product-swiper-list",children:Ml(this.configuration,n,i)})}else r=K("div",{style:this.getCompiledStyles(),class:"lc-product-list",children:e?.map((n,i)=>this.getProductFragment(n,i!==e.length-1))});return r}getComponentStyles(){let e=[0,2].includes(this.configuration.disp),r={display:e?"flex":"grid",justifyContent:"safe "+(this.mediaStyle.flex?.jc??"center"),gap:this.gap,flexDirection:this.mediaStyle.flex?.dir??"row"};if(r.flexDirection==="row"){if(e)r.maxWidth="100%",r.overflowY="auto";else if(this.configuration.disp===1){let n=this.props.triggerContext.triggerData,i=n.items.length,o;n.isBundle()?o=this.props.element.prod.symbol?.hide!==!0?i*2-1:i:o=this.props.element.conf[this.deviceTypeKey].maxInRow,r.gridTemplateColumns=`repeat(${o}, auto)`}}return r}getProductFragment(e,r=!1){return K(Br,{children:[K(Ei,{element:this.props.element.prod,item:e,triggerContext:this.props.triggerContext}),this.props.triggerContext.triggerData.isBundle()&&r&&this.props.element.prod.symbol&&!this.props.element.prod.symbol.hide&&K("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:K(Qt,{element:this.props.element.prod.symbol,triggerContext:this.props.triggerContext})})]},e.mID)}};var Ws=class extends Fe{swiperRef=null;swiperInstance=null;constructor(e,r){super(e,r)}componentDidMount(){Mc().then(()=>{this.swiperInstance=Ll(this.swiperRef,this.props.element.conf)})}componentWillUnmount(){this.swiperInstance&&this.swiperInstance.destroy()}render(){let e=this.props.element,r=i=>{this.swiperRef=i},n=()=>{let i=e.values?.map(a=>K("div",{class:"swiper-slide",onClick:c=>this.onClick(c,{clickAction:this.getClickAction(a)}),children:this.renderElement(a)}));if(!i?.length)return[];let o=e.conf,s=i.length;if(o.marquee&&s<=Number(o.maxInRow)){let a=Number(o.maxInRow)-s+1;for(let c=0;c<a;c++)i.push(i[c%s])}return i};return Ml(e.conf,r,n)}getComponentStyles(){return{}}renderElement(e){let r=this.valueAddedSlide(this.props.element.slide,e);switch(r?.t){case 1:return K(dn,{element:r,triggerContext:this.props.triggerContext});case 4:return K(hn,{elements:r.elems,element:r,triggerContext:this.props.triggerContext});default:b.warn("Unknown slide type for carousal")}}valueAddedSlide(e,r){let n=Zn(e,{form:r},this.props.triggerContext);return Xt.getParsedElement(n)}getClickAction(e){return Zn(this.props.element.clc??{},{form:e},this.props.triggerContext)}};var Fn=class extends Fe{constructor(e,r){super(e,r),this.setState(()=>({decoration:"unset"})),Tt(()=>{this.setState(()=>({showButton:!this.props.triggerContext.triggerData.isBundle()||!!this.props.triggerContext.selectedItems.length}))})}renderElement(e){if(!e.hide){if(e.t===4){let r=e;return K(hn,{element:r,triggerContext:this.props.triggerContext,elements:r.elems})}if(e.t===61)return K(Bs,{element:e,triggerContext:this.props.triggerContext});if(e.t===3)return this.state.showButton?K(vi,{element:e,triggerContext:this.props.triggerContext}):void 0;if(e.t===2)return K(Qt,{element:e,triggerContext:this.props.triggerContext});if(e.t===1)return K(dn,{element:e,triggerContext:this.props.triggerContext});if(e.t===11)return K($s,{element:e,triggerContext:this.props.triggerContext});if(e.t===12)return K(Ei,{element:e,item:this.props.triggerContext.triggerData.items[0],triggerContext:this.props.triggerContext});if(e.t===62)return K(Ws,{element:e,triggerContext:this.props.triggerContext})}}render(){return this.props.elements.map(e=>this.renderElement(e))}getComponentStyles(){return{}}};var js=class extends Fe{clickAction;isClickable;constructor(e,r){super(e,r),this.clickAction=this.props.element.clc,this.isClickable=this.clickAction?.at===we.GO_TO_URL&&!!ki(this.clickAction.gu?.u)||this.clickAction?.at===we.OPEN_CART||this.clickAction?.at===we.INITIATE_CHECKOUT}componentDidMount(){Tt(()=>{let e=this.props.triggerContext.triggerData,r=this.props.triggerContext.selectedItems;e.calculateDiscountData(r,this.props.triggerContext.shouldGiveFBTDiscount)})}render(){return K(Br,{children:[K("div",{style:this.getCompiledStyles(),class:"lc-container",onClick:e=>{this.onClick(e,{clickAction:this.clickAction})},children:K(Fn,{elements:this.props.elements,element:this.props.element,triggerContext:this.props.triggerContext})}),this.props.triggerContext.triggerData.id==="preview"&&K("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 bt=class t{constructor(e){this.engagementTrigger=e;this.triggerContext=new Cr(new Date,this.engagementTrigger)}static currentEngagements=new Set;static engagementIDsWithTrackedDisplay=new Set;static DEBOUNCE_TIME=1e3;rootContainer;widgetElement;widget;triggerContext;observers=[];runtimeData=ve.get();widgetAPIService=me.get(Yr);eventAPIService=me.get(Re);renderedCount=0;scrollSubscription;variation;isExclusionWithBVariation;isRendering=!1;renderSilently(){this.render().catch(e=>{ae(e,"render-widget",{triggerContext:this.triggerContext})})}destroy(){b.verbose(`${this.engagementTrigger} will be destroyed`),this.preDestroy(),this.removeFromRendered(),this.rootContainer?.remove(),t.engagementIDsWithTrackedDisplay.delete(this.engagementTrigger.shortID),Cf(this.engagementTrigger.content?.afterDeleteJS)}async render(){if(this.isRendering){b.verbose(`${this.engagementTrigger} rendering already in progress, skipping`);return}this.isRendering=!0;try{if(this.engagementTrigger.shouldGetVariationImmediately()){let e=await this.getVariation();this.handleVariationResponse(e)}if(this.rootContainer=await this.getWidgetContainer(!0),!this.rootContainer){b.warn(`${this.engagementTrigger} no section found to render the widget`);return}this.afterRootContainerCreated(),this.widget=this.engagementTrigger.widget,await this.getVariationIfRequired(),await this.runChoresBeforeRender(),this.attachScroll(),await this.checkAndSendEvent(),this.triggerContext.renderer=this,Cf(this.engagementTrigger.content?.afterRenderJS)}finally{this.isRendering=!1}}matches(e){return this.engagementTrigger.shortID===e.shortID}async updateAndReRender(e){b.info(`${this.engagementTrigger} will be updated`),this.updateItems(e.items,this.engagementTrigger.items),await this.update(e),await this.render()}async update(e){}rerender(){this.rootContainer?.isConnected||(b.info(`${this.engagementTrigger} deleted. Will be re-rendered`),this.preDestroy(),this.renderSilently())}preDestroy(){this.scrollSubscription?.unsubscribe(),this.observers.forEach(e=>{e?.disconnect&&e.disconnect()})}afterRootContainerCreated(){}isAllOkToRender(){return!!this.widget}async getVariationIfRequired(){if(this.engagementTrigger.shouldSkipVariation()){b.verbose(`${this.engagementTrigger} already has necessary data to render`);return}let e=await this.observeWidgetContainerInViewport();this.handleVariationResponse(e)}handleVariationResponse(e){e&&(b.log(`${this.engagementTrigger} visitor has been assigned to variation ${e.variation}`),e.items?.length&&(this.engagementTrigger.items=e.items.map(r=>new Dt(r)),this.engagementTrigger.nonMutableItems=e.items.map(r=>new Dt(r))),e.bundleFrom&&(this.engagementTrigger.bundleFrom=new Dt(e.bundleFrom)),e.discount&&(this.engagementTrigger.discount=e.discount),e.placement&&(this.triggerContext.triggerData.placement=e.placement),e.props&&rr.hasKeys(e.props)&&(this.engagementTrigger.props=_(_({},this.engagementTrigger.props),e.props)),e.content&&(this.triggerContext.triggerData.content=new cs(e.content)),this.triggerContext.triggerData.widget=this.widget=new ro(e.widget),this.triggerContext.triggerData.contentID=e.contentID,this.triggerContext.triggerData.variation=this.variation=e.variation,this.triggerContext.triggerData.placement=e.placement,this.triggerContext.triggerData.manipulation=e.manipulation,this.triggerContext.triggerData.entryAnimation=e.entryAnimation??"NONE",this.isExclusionWithBVariation=this.engagementTrigger.isExclusionTesting()&&this.variation==="b",this.isExclusionWithBVariation&&(this.rootContainer.style.height="0.5px"))}addToRendered(){this.renderedCount++,b.info(`${this.engagementTrigger} rendered \u2705 ${Fh(this.renderedCount)} time`)}removeFromRendered(){this instanceof gt?gt.currentEngagements.delete(this):t.currentEngagements.delete(this)}async getVariation(){b.log(`${this.engagementTrigger} get variation`);let e={engagementID:this.engagementTrigger.engagementID,isPreview:this.engagementTrigger.id==="preview"};try{return(await this.widgetAPIService.getVariation(e)).data}catch(r){ae(r,"get-variation",{engagementTrigger:this.engagementTrigger});return}}async observeWidgetContainerInViewport(){if(!this.rootContainer){b.warn(`${this.engagementTrigger} No root container found to watch for viewport`);return}let e=window.innerHeight*.3,r={root:null,rootMargin:`${e}px 0px ${e}px 0px`,threshold:0};return this.isInViewport()?this.getVariation():new Promise(n=>{let i=new IntersectionObserver((o,s)=>{o.forEach(async a=>{if(a.isIntersecting){b.log(`${this.engagementTrigger} root container is near the viewport. Fetching variation`);let c=await this.getVariation();n(c),s.unobserve(this.rootContainer)}})},r);i.observe(this.rootContainer),this.observers.push(i)})}attachScroll(){this.scrollSubscription=mi(window,"scroll").pipe(Tr(t.DEBOUNCE_TIME)).subscribe(()=>{this.checkAndSendEvent()})}async checkAndSendEvent(){let e=this.engagementTrigger.shortID;if(t.engagementIDsWithTrackedDisplay.has(e)||!this.isInViewport())return;let n={};this.triggerContext.triggerData.items?.length&&(n.promotedMIDs=this.engagementTrigger.items?.map(s=>s.mID));let i=this.isExclusionWithBVariation?"CE Campaign Holdout":"CE Trigger Displayed",o=new Ie(i,n,this.engagementTrigger);o.name==="CE Campaign Holdout"&&(o.trigger.holdout=!0),this.eventAPIService.sendSilently(o),t.engagementIDsWithTrackedDisplay.add(e),this.scrollSubscription.unsubscribe()}generateParentElementID(){return`letscooee-${this.engagementTrigger.shortID}`}createAngularWidget(e){let r=this.widgetElement=document.createElement(e);return r.cart=ge.getCurrent(),r.triggerContext=this.triggerContext,r.engagementTrigger=this.engagementTrigger,r.setAttribute("engagement",this.engagementTrigger.shortID),this.rootContainer.appendChild(r),this.addToRendered(),r}getParentElement(e,r=document){let n=r.getElementById(e);if(n)return n;let i=this.engagementTrigger.objective.toLowerCase().replaceAll("_","-"),o=this.engagementTrigger.shortID;return n=document.createElement("div"),n.id=e,n.className=`letscooee letscooee-engagement engagement-${o} lc-${i}`,n.dataset.engagementId=o,this.engagementTrigger.id==="preview"&&(n.className+=" letscooee-preview"),n.style.display="block",n.style.minHeight="0.5px",n.style.minWidth="0.5px",n}startRendering(){let e=this.rootContainer;this.triggerContext.triggerData.hasSwiperElement()&&(e=this.rootContainer?.shadowRoot||this.rootContainer?.attachShadow({mode:"open"}),Rf(e)),tg(Wp(js,{element:this.widget.cont,triggerContext:this.triggerContext,elements:this.widget.elems}),e),this.addToRendered()}isInViewport(){let e=this.rootContainer?.getBoundingClientRect();if(!e)return!1;let r=window.innerHeight||document.documentElement.clientHeight,i=(Math.min(e.bottom,r)-Math.max(e.top,0))*e.width,o=e.width*e.height,s=i/o*100;return this.engagementTrigger.isAnySplit()?s>0:s>=30}async getWidgetContainer(e){if(this.rootContainer?.isConnected)return this.rootContainer;let r=await this.createParentElementWithPlacement(e);if(r)return r;let n=`.letscooee[data-engagement-id="${this.triggerContext.triggerData.shortID}"]`;return document.querySelector(n)}async createParentElementWithPlacement(e){let r=this.engagementTrigger.placement;if(!r?.selector)return b.info(`\u26A0\uFE0F${this.engagementTrigger} does not have a selector`),null;let n=r.selector,i;if(n.includes(":shadow")){let c=n.split(":shadow");i=(await Fi(c[0].trim()))?.shadowRoot,n=c[1].trim(),i&&Rf(i,!1)}b.verbose(`${this.engagementTrigger} attempt to render ${r.position} "${n}"`);let o=await Fi(n,10,i??document);if(!o)return b.warn(`${this.engagementTrigger} no placement found with ${n}`),null;let s=this.generateParentElementID(),a=this.getParentElement(s);if(!e)return a;switch(r.position){case Ii.BEFORE:{o.parentElement?.insertBefore(a,o);break}case Ii.INSIDE_FIRST:{o.insertBefore(a,o.firstChild);break}case Ii.INSIDE_LAST:{o.appendChild(a);break}case Ii.AFTER:default:o.parentElement?.insertBefore(a,o.nextSibling)}return a}async runChoresBeforeRender(){if(this.isExclusionWithBVariation)return;if(!this.isAllOkToRender()){b.info(`\u26A0\uFE0F ${this.engagementTrigger} could not be rendered`);return}b.verbose(`${this.engagementTrigger} will be rendered`);let e;try{e=await Dl(this.engagementTrigger)}catch(r){b.info(`\u203C\uFE0F${this.engagementTrigger} could not render as items failed to refresh`,r);return}if(!this.engagementTrigger.isCollectionPromoted()&&!e?.length&&this.engagementTrigger.isProductPromoted()){b.info(`\u203C\uFE0F${this.engagementTrigger} could not render as no products promoted`);return}this.engagementTrigger.items=e,this.startRendering()}updateItems(e,r){let n=this.getItemDiff(e,r),i=this.getItemDiff(r,e);r.push(...n);for(let o of i)Jr.remove(r,o)}getItemDiff(e,r){return e.filter(n=>!r.some(i=>i.selectedOrFirstVariant.value.mID===n.selectedOrFirstVariant.value.mID))}};var gt=class extends bt{static currentEngagements=new Set;constructor(e){super(e)}observeWidgetContainerInViewport(){return this.getVariation()}generateParentElementID(){let e=super.generateParentElementID();return this.engagementTrigger.isSubscriptionUpsell()&&(e+=`-${this.engagementTrigger.items[0].selectedOrFirstVariant.value.mID}`),e}async checkAndSendEvent(){if(!rt.get().isOpen()&&this.runtimeData.pageName!=="cart"){b.log("Do not send display event as neither the cart drawer nor the cart page is open.");return}return super.checkAndSendEvent()}};var N0=t=>t,sv=t=>t.filter(e=>e.removedNodes&&e.removedNodes.length>0);function av(t,e={childList:!0,subtree:!0},r=500,n=N0){return ml(i=>{let o=new MutationObserver(s=>i(s));return o.observe(t,e),o},(i,o)=>o.disconnect()).pipe(fn(i=>n(i)),rm(i=>i.length>0),Tr(r))}var Bl=class t{constructor(e,r){this.engagementTrigger=e;this.element=r;this.cartItems=ge.getCurrent().items}cartItems;static renderCartUpsell(e){let r=e.placement;if(!r?.selector){b.warn(`No placement available for ${e.objective}`,e.shortID);return}let n=Array.from(document.querySelectorAll(r.selector));if(!n?.length){b.warn(`No placement found for ${e.objective}`,e.shortID);return}for(let i of n)new t(e,i).render()}render(){let e=this.findCartItemFromHTMLElement();if(!e||this.engagementTrigger.skipSubscribedItems&&e.selling_plan_allocation)return;let r=this.engagementTrigger.items.find(d=>d.mID===e.product_id.toString());if(!r)return;let n=r.vars.find(d=>d.mID===e.id.toString());if(!n)return;let i=new kr(n),o=e.selling_plan_allocation?.selling_plan;if(o)for(let d of i.sellingPlans??[])d.mID===o.id.toString()&&(d.isSelected=!0,i.changeSellingPlan(d));let s=new Dt(r);s.vars=[i],s.selectedOrFirstVariant.value=i;let a=`lc-cart-item-${this.engagementTrigger.shortID}-${r.mID}`;this.element.classList.add(a);let c=new xt(this.engagementTrigger);c.placement.selector=`.${a}`,c.items=[s];let p=new gt(c);p.renderSilently(),this.watchForCartItemDeletion(p,a)}watchForCartItemDeletion(e,r){let n=new MutationObserver(i=>{i.forEach(o=>{o.removedNodes.forEach(s=>{s===this.element&&(b.verbose(`${r} has been removed`),e.destroy(),n.disconnect())})})});n.observe(this.element.parentElement,{childList:!0,subtree:!0})}findCartItemFromHTMLElement(){let e=this.element.innerHTML;return this.cartItems.find(r=>{if(!(e.includes(r.url)||e.includes(r.variant_id))&&(!e.includes(r.product_title)||r.variant_title&&!e.includes(r.variant_title)))return!1;let n=r.selling_plan_allocation?.selling_plan?.name;return!(n&&!e.includes(n))})}};var kl=class extends gt{ctaExecutor=new Bn;constructor(e){super(e)}async update(e){await super.update(e),this.engagementTrigger.progressBarConfig.update(e.progressBarConfig),await this.checkMilestoneTryCatch(),this.widgetElement.update()}isAllOkToRender(){return!!this.engagementTrigger.progressBarConfig}startRendering(){if(this.widgetElement?.isConnected){this.widgetElement.update(),this.addToRendered();return}this.createAngularWidget("cooee-progressbar"),this.checkMilestoneTryCatch()}async checkMilestoneTryCatch(){try{await this.checkMilestone()}catch(e){ae(e,"apply-milestones",{engagementTrigger:this.engagementTrigger})}}async checkMilestone(){let e=await ge.getCurrent().getNormalisedCart(),r=this.engagementTrigger.progressBarConfig,n,i=[],o=[],s=[],a,c,p=[...r.milestones];for(let f of p){if(f.rewardType!==uu.FREE_AUTO_GIFT)continue;if(f.isUIOnly&&!f.allowATC){b.verbose(`Skipping milestone ${f.label} as it is UI only and does not allow ATC`);continue}let E=f.items[0],y=f.reached,T=e.items.find(D=>(D.vID===E.vID||D.mID===E.mID)&&D.properties._letscooee_campaign===this.engagementTrigger.shortID);y&&(a=f,c=T),T&&i.push(T),!y&&T&&r.removeIneligibleItem?(b.verbose(`Removing free gift ${T.vID} from cart`),s.push(T)):y&&!T&&(b.verbose(`Adding free gift ${E.vID} to cart`),o.push(E))}r.restrictToLatestFreebie&&a&&(c?(i=i.filter(f=>f.vID!==c.vID),o=[]):o=[a.items[0]],s.push(...i)),s.length&&await this.removeFreeGifts(s),o.length&&(n=await this.ctaExecutor.addToCart(o,this.engagementTrigger));let d=r.coupons;if(d?.length)try{await zr.applyWithStorefront(d.map(f=>f.couponCode)),rt.get().refreshUI(n,!1)}catch(f){ae(f,"cart-apply-discount",{extra:{coupons:d},engagementTrigger:this.engagementTrigger})}}async removeFreeGifts(e){await Promise.all(e.map(r=>this.ctaExecutor.updateLineItem(r,{quantity:0})))}};var Gs=class extends gt{constructor(e){super(e)}async update(e){await super.update(e),this.engagementTrigger.content.update(e.content),this.widgetElement.update()}isAllOkToRender(){return!!this.engagementTrigger.content}startRendering(){if(this.widgetElement?.isConnected){this.addToRendered();return}this.createAngularWidget("cooee-savings-bar")}};var Ul=class extends bt{constructor(e){super(e)}isAllOkToRender(){return!!this.engagementTrigger.content?.videoConfig}startRendering(){if(this.widgetElement?.isConnected){this.addToRendered();return}let e,r=this.engagementTrigger.content.videoConfig;r.template==="FLOATING_POPUP"?e="cooee-video-popup":r.template==="STORY"?e="cooee-video-stories":e="cooee-video-playlist",this.createAngularWidget(e)}};var Fl=class extends bt{constructor(e){super(e)}isAllOkToRender(){return!0}startRendering(){if(this.widgetElement?.isConnected){this.addToRendered();return}this.createAngularWidget("cooee-sticky-atc")}};var Hl=class extends bt{constructor(e){super(e)}isAllOkToRender(){return!0}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),!1)}async inboundCTAListener(e){let r=this.engagementTrigger,n=`Engagement(id: ${r.engagementID}, shortID: ${r.shortID})`,i=e.detail;if(!rr.hasKeys(i)){b.error(`No detail received for ${n}`);return}b.log("Detail received for BYOB",i);let o=i.campaignID??i.campaignId??i.campaign_id;if(o!==r.shortID&&o!==r.engagementID){b.warn(`Current ${n} is not BYOB. Received: ${o}`);return}let s=i.items;if(!s?.length)return;let a=s.map(c=>new Rt({mID:c.product_id,vID:c.variant_id,quantity:c.quantity||1}));await new mn(this.triggerContext).execute({embeddedItems:a,clickAction:{at:we.ADD_BUNDLE,applyDiscount:!0}})}};var fm=!1,mm=!1,Vl=null,$l=null;av(document.body,{childList:!0,subtree:!0},500,sv).subscribe(()=>{bt.currentEngagements.forEach(t=>t.rerender()),gt.currentEngagements.forEach(t=>t.rerender())});function dm(t){if(fm){b.verbose("Cart widget processing in progress, queuing latest triggers"),Vl=t;return}fm=!0;try{O0(t)}finally{if(fm=!1,Vl){let e=Vl;Vl=null,b.verbose("Processing queued cart triggers"),dm(e)}}}function hm(t){if(mm){b.verbose("Page widget processing in progress, queuing latest triggers"),$l=t;return}mm=!0;try{P0(t)}finally{if(mm=!1,$l){let e=$l;$l=null,b.verbose("Processing queued page triggers"),hm(e)}}}function O0(t){lv(gt.currentEngagements,t);for(let e of t){b.info(`${e} received as cart embed`);let r=cv(gt.currentEngagements,e);if(r&&!e.isSubscriptionUpsell()){r.updateAndReRender(e).catch(i=>{ae(i,"update-and-re-render",{engagementTrigger:e})});continue}b.verbose(`${e} is new`);let n;if(e.isProgressBar())n=new kl(e);else if(e.isSubscriptionUpsell()){Bl.renderCartUpsell(e);continue}else e.isSavingsBar()?n=new Gs(e):n=new gt(e);gt.currentEngagements.add(n),n.renderSilently()}}function P0(t){lv(bt.currentEngagements,t);for(let e of t){b.info(`${e} received as page embed`);let r=cv(bt.currentEngagements,e);if(r){r.updateAndReRender(e).catch(i=>{ae(i,"update-and-re-render",{engagementTrigger:e})});continue}b.verbose(`${e} is new`);let n;e.isShoppableVideo()?n=new Ul(e):e.isBYOB()?n=new Hl(e):e.isStickyATC()?n=new Fl(e):e.isSavingsBar()?n=new Gs(e):n=new bt(e),bt.currentEngagements.add(n),n.renderSilently()}}function cv(t,e){for(let r of t)if(r.matches(e))return r}function lv(t,e){let r=new Set(e.map(n=>n.shortID));for(let n of t)r.has(n.engagementTrigger.shortID)||n.destroy()}var uv=new Jt,Yr=class t extends Un{static INSTANCE;pageWidgetLoadCount=0;constructor(){super(),uv.pipe(Tr(50),nm(e=>em(Promise.all([this.loadPageWidgetsFromServer().catch(r=>{ae(r,"load-page-widgets",{extra:{firstLoad:e}})}),this.loadCartWidgetsFromServer().catch(r=>{ae(r,"load-cart-widgets",{extra:{firstLoad:e}})})])))).subscribe(),window.CooeeSDK.cartChange$.subscribe(()=>{this.loadWidgetsSafe()})}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}loadWidgetsSafe(e=!1){jr(_t.replaySubject).then(()=>{uv.next(e)})}renderCachedCartWidgets(){gt.currentEngagements.forEach(e=>e.rerender())}async getVariation(e){let r=await this.getAllContext();return Object.assign(e,r),this.backendAPIService.post("/v1/engagement/get-variant",e)}async loadPageWidgetsFromServer(){this.pageWidgetLoadCount++,this.pageWidgetLoadCount===1?b.info("Fetch page widgets (after \u23F0",ve.get().getSDKLoadTimeDiff()+" of SDK load)"):b.info("Fetch page widgets");let e=await this.getAllContext(),r=_({},e);this.backendAPIService.post("/v1/engagement/page-widgets",r).then(n=>{b.info(`Page widgets loaded in \u23F0 ${gr(n.timeTakenMs)}`);let i=n.data.widgets.map(o=>new xt(o));hm(i)}).catch(n=>{b.error("Error sending widget getter",n)})}async loadCartWidgetsFromServer(){b.info("Fetch cart widgets");let e=await this.getAllContext(),r=_({},e);this.backendAPIService.post("/v1/engagement/cart-widgets",r).then(n=>{b.info(`Cart widgets loaded in \u23F0 ${gr(n.timeTakenMs)}`);let i=n.data.widgets.map(o=>new xt(o));dm(i)}).catch(n=>{b.error("Error sending widget getter",n)})}};var Wl=class t{static INSTANCE;constructor(){this.init()}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}init(){Os.get("conf",{}).then(e=>this.updateGlobalConfig(e))}async processAppConfigurations(e){b.verbose("Received app configuration",e),e.currencyCount=e.currencies?.length;let r=this.updateGlobalConfig(e);Os.set("conf",r).catch(n=>b.error(n)),Pl.processConfiguration(),r.website&&(ey(r.website.commonJS),xf(r.website.commonCSS)),window.CooeeSDK.cartDrawerToggle$.subscribe(async({open:n})=>{b.info("Cart drawer is now",n?"open":"closed"),n&&(Yr.getInstance().renderCachedCartWidgets(),await this.trackViewCartEvent())})}updateGlobalConfig(e){let r=Me.globalRef.config.update(e);return rt.forceUpdate(),b.verbose("App configurations",r),r}async trackViewCartEvent(){let e=await ge.getCurrent().getNormalisedCart(),r={value:e.amount,currency:e.currency},n={items:e.items,amount:r,drawer:!0};me.get(Re).sendSafe(new Ie("View Cart",n))}};var pv="App ID or Shopify shop is not set",_t=class t{static replaySubject=new Ts(1);static INSTANCE;backendAPIService=Pt.getInstance();coreService=Wl.getInstance();userID="";deviceID="";appID="";shopifyShop="";constructor(){}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}async populateAuthDataFromStorage(){await this.getOrSetDeviceIDSafe(),this.userID=await Ye.get("id"),this.updateAPIClient()}isAuthenticated(){return!!this.deviceID}authenticate(e){if(b.verbose("Initialising SDK",e),Ky(navigator.userAgent)){b.info("This seems to be a bot. Disabling SDK");return}this.appID=e.appID,this.shopifyShop=e.shopifyShop,this.checkForNewSessionOnPageLoad().then(async()=>{t.replaySubject.next(!0),t.replaySubject.complete()}).catch(r=>{r?.message?.includes(pv)&&ae(r,"initiate-session",{extra:e}),b.error("Unable to initiate session",r)})}async storeAndPopulateAuthData(e){e&&(e.userID&&(this.userID=e.userID,await Ye.set("id",e.userID)),e.deviceID&&(this.deviceID=e.deviceID,await Ye.set("did",e.deviceID)),this.updateAPIClient())}async checkSessionAndGetContext(){return await this.checkForNewSessionUnsafe(!1),this.getContext()}async checkForNewSessionOnPageLoad(){await this.checkForNewSessionSafe(!0)}async getOrSetDeviceIDSafe(){await yl.request("gen_did",async()=>{let e=await Ye.get("did");e||(e=new Et().toHexString(),await Ye.set("did",e)),this.deviceID=e,b.info("Device ID:",this.deviceID)})}async getContext(){At.set("lastUsedTime",new Date().getTime());let[e,r,n]=await Promise.all([At.get("id",""),Ye.get("sessionNumber",1),At.get("landing",{})]);return Bi({"cooee_session.number":r}),Ga("Visitor Session",{id:e,number:r,landing_page:n}),{sessionID:e,sessionNumber:r,landingPage:n}}async checkForNewSessionSafe(e){await this.checkForNewSessionUnsafe(e)}async checkForNewSessionUnsafe(e){let r=!1;if(await this.isNewSessionRequired()?(b.info("New session to be started"),await this.startNewSession(),e=!0,r=!0):await this.notSynced()&&(r=!0),e){let n=await this.getContext();b.info(`Session ID: ${n.sessionID} & number: ${n.sessionNumber}`),await this.validateSessionFromServer(Z(_({},n),{newSession:r})),await At.set("synced",!0)}}async startNewSession(){b.verbose("Starting new session"),await At.clear(),b.verbose("Cleared SessionStorage before starting new session");let e=new Date,r=new Et().toHexString();b.verbose("New session ID to be used",r);let n=await Ye.get("sessionNumber",0)+1;await Promise.all([Ye.set("sessionNumber",n),At.set("id",r),At.set("lastUsedTime",e.getTime()),At.set("landing",Qs())])}async isNewSessionRequired(){if(!await At.get("id"))return!0;let e=await At.get("lastUsedTime",0);return e?(new Date().getTime()-e)/1e3>1800:!0}async notSynced(){return!await At.get("synced",!1)}async getSessionValidateData(e){if(!this.appID&&!this.shopifyShop)throw new Error(pv);let r=await Qy(),n=hl();return Z(_(_({deviceID:this.deviceID,deviceProps:r,appID:this.appID,shopifyShop:this.shopifyShop},e),n),{sdk:Ys,ad:dl.getAdParams(),occurred:L0(ve.get().jsLoadTime),properties:{}})}async validateSessionFromServer(e){b.verbose("Validating session with server"),await this.populateFirstSeen();let r=await this.getSessionValidateData(e);try{let n=await this.backendAPIService.validateSession(r),i=n.data;b.info(`Auth finished in \u23F0 ${gr(n.timeTakenMs)}`),b.verbose("Validate session Response",i),await this.coreService.processAppConfigurations(i.appSettings),await this.storeAndPopulateAuthData(i)}catch(n){throw b.error(n),n}}async populateFirstSeen(){let e=await Ye.get("firstSeen"),r=e?new Date(e):new Date;e||await Ye.set("firstSeen",r.toISOString()),this.backendAPIService.setFirstSeen(r),Ga("Visitor Info",{first_seen:r.toISOString()})}updateAPIClient(){this.userID&&b.info("User ID:",this.userID),Io.trackDeviceID(this.deviceID),this.backendAPIService.setDeviceId(this.deviceID),Ga("Visitor Info",{device_id:this.deviceID,user_id:this.userID}),Ph({id:this.deviceID})}};function L0(t){return(new Date().getTime()-t.getTime())/1e3>1800?new Date:t}var Pt=class t{static INSTANCE;deviceID="";firstSeen="";constructor(){}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}async validateSession(e){return this.post("/v1/event/validate-session",e)}updateProfileSafe(e){jr(_t.replaySubject).then(()=>this.updateProfile(e??{}))}updateProfile(e){this.put("/v1/user/update",e).then(async r=>{b.verbose("Updated user profile"),await _t.getInstance().storeAndPopulateAuthData(r.data)}).catch(r=>{b.error("Error saving user profile",r)})}generateDiscount(e){return this.post("/v1/event/generate-discount",e)}updateDevicePropsSafe(e){jr(_t.replaySubject).then(()=>this.updateDeviceProps({props:e}))}updateDeviceProps(e){this.put("/v1/device/update",e).then(()=>{b.verbose("Updated device properties")}).catch(async r=>{b.error("Error saving device property",r)})}setDeviceId(e){this.deviceID=e??""}setFirstSeen(e){this.firstSeen=e?.toUTCString()??""}get(e){return this.requestBackend("GET",e)}post(e,r){return this.requestBackend("POST",e,r)}put(e,r){return this.requestBackend("PUT",e,r)}async requestBackend(e,r,n){if(!di.isECommerceApp()&&!di.getFlags().allowEvents)return b.log(`Rejecting ${e} ${r} as this is not e-commerce app`),Promise.reject();r.startsWith("http")||(r=Gt.apiURL+r);let i=this.getDefaultHeaders(),o="keepalive"in new Request(""),s=n?JSON.stringify(n):void 0;if(n&&!o&&s?.includes("CE App Background"))try{return this.performXMLHttpRequest(r,i,n)}catch(c){throw ae(c,"http-request",{extra:{body:s}}),c}let a={method:e,headers:i,keepalive:!0};return n&&(a.body=s),en(r,a)}performXMLHttpRequest(e,r,n){return new Promise((i,o)=>{let s=new XMLHttpRequest;s.open("POST",e,!0),r.forEach((a,c)=>{s.setRequestHeader(c,a)}),s.onreadystatechange=()=>{if(s.readyState===XMLHttpRequest.DONE)if(s.status>=200&&s.status<300)try{if(s.getResponseHeader("Content-Type")?.includes("application/json")){let c=JSON.parse(s.responseText);i({data:c,headers:r,request:s,status:s.status,statusText:s.statusText})}else o(new Error("Content-Type of response header is not json"))}catch(a){o(a)}else o(new Error(`Received status - ${s.status}(${s.statusText})`))},s.onerror=()=>{o(new Error("Network error occurred during the request."))},s.send(JSON.stringify(n))})}getDefaultHeaders(){let e=new Headers;return e.set("content-type","application/json"),e.set("cooee-sdk",Ys),e.set("cooee-sdk-code",xm.toString()),e.set("cooee-sdk-version",Xr),e.set("cooee-first-seen",this.firstSeen),e.set("cooee-shop-name",cc()??""),this.deviceID&&e.append("cooee-device-id",this.deviceID),Gt.debug&&e.set("cooee-sdk-debug",String(1)),e}};var mn=class{constructor(e){this.triggerContext=e}backendAPIService=Pt.getInstance();eventAPIService=Re.getInstance();async execute(e){let r=ve.get().getCurrentItem(),n=e.clickAction;if(!n)return;let i=e.item,o=this.triggerContext,s=new Bn,a=o.triggerData.redirectBehaviour,c=!!o.triggerData.discount?.type&&!!n?.applyDiscount,p={selectedVariants:o.triggerData.nonMutableItems.map(N=>({itemMID:N.mID,mID:N.selectedOrFirstVariant.value.mID,variantID:N.selectedOrFirstVariant.value.mID})),eID:o.triggerData.engagementID,cID:o.triggerData.contentID},d="",f=[],E=[];if(i?E=[i.toEmbed()]:e.embeddedItem&&(E=[e.embeddedItem]),n.at===we.ADD_BUNDLE){let N=o.selectedItems;if(E=e.embeddedItems??N.map(k=>k.toEmbed()),o.shouldGiveFBTDiscount||e.embeddedItems?.length){let k;e.embeddedItems?k=e.embeddedItems.map(P=>({itemMID:P.mID,mID:P.vID,variantID:P.vID,quantity:P.quantity})):k=N.map(P=>({itemMID:P.mID,mID:P.selectedOrFirstVariant.value.mID,variantID:P.selectedOrFirstVariant.value.mID}));let G=o.triggerData.bundleFrom;o.triggerData.isBundleOnCartDrawer()&&G&&(k.push({itemMID:G.mID,mID:G.selectedOrFirstVariant.value.mID,isPrimary:!0}),E.unshift(G.toEmbed())),p.selectedVariants=k,o.triggerData.isBundleOnPDP()&&p.selectedVariants.forEach(P=>{P.mID===r.vID&&(P.isPrimary=!0)})}else p=void 0;f=e.embeddedItems??N}else if(n.at===we.INITIATE_CHECKOUT){let N=await ge.getCurrent().getNormalisedCart();E=N.items,p.selectedVariants=N.items.map(k=>({itemMID:k.mID,mID:k.vID}))}else if(n.at===we.ADD_TO_CART)f=i?[i]:[e.embeddedItem];else if(n.at===we.QUICK_VIEW){window.cooeeShowQuickItem(this.triggerContext,i),this.sendTriggerClicked(E,{from:"button"},e.video);return}else if(n.at===we.GO_TO_PRODUCT)d=i?Gi("/products/"+i.slug):e.embeddedItem?.link;else if(n.at===we.GO_TO_URL){let N=ki(n.gu?.u);N&&(d=N.href)}else if(n.at===we.UPGRADE_TO_SUBSCRIPTION){let N=await s.upgradeToSubscription(i,o.triggerData);this.triggerContext.triggerData.skipSubscribedItems&&this.triggerContext.renderer.destroy(),rt.get().refreshUI(N)}else if(n.at===we.GO_TO_COLLECTION){let N=this.triggerContext.triggerData.collections?.[0];N&&(d="collections/"+N.handle)}if(this.sendTriggerClicked(E,{from:"button"},e.video),b.verbose({redirectPath:d,redirectBehaviour:a,hasDiscount:c}),!c&&d){location.href=d;return}let y,T=!1;try{y=await this.getOrGenerateDiscountCode(p),b.verbose("Discount code (if any) to apply",y)}catch(N){if(!this.triggerContext.triggerData.isBYOB()){fv.default.error("Unable to get a discount code",N);return}}if(y&&n.at===we.COPY_COUPON_CODE)await s.copyDiscountCode(y);else if(n.at===we.BUY_NOW){let N=await s.createNewCart(r,y,o.triggerData);N&&(location.href=N);return}try{y&&await zr.applyWithStorefront([y])}catch(N){b.error(N),T=!0}let D;if(f?.length&&(D=await s.addToCart(f,o.triggerData)),T&&y){zr.navigate(y,a,d);return}if(d){location.href=d;return}zr.navigateWithoutDiscount(a,D)}sendTriggerClicked(e,r,n){let i=new Ie("CE Trigger Clicked",r,this.triggerContext.triggerData);i.items=e,i.setVideos(n),this.eventAPIService.sendSilently(i)}async getOrGenerateDiscountCode(e){let r=this.triggerContext.triggerData.discount;if(!r?.type)return;let n="";if(r.type===er.STATIC){if(!r.code)throw Oh("No discount code found","warning",{triggerContext:this.triggerContext}),new Error("No discount code found");return r.code}if(e){if(n=await this.generateDiscount(e),!n)throw b.error("No discount code found",e),new Error("Discount code not found or generated");return n}}async generateDiscount(e){try{return(await this.backendAPIService.generateDiscount(e)).data.code}catch(r){throw br("Failed to generate a discount code"),ae(r,"backend-generate-discount",{triggerContext:this.triggerContext}),r}}};var jl=class{eventAPIService;modifications=[];constructor(){this.eventAPIService=me.get(Hn)}execute(e){for(let r of e){if(!r.experimentConfig)continue;this.executeExperiment(r)&&this.trackExperimentRan(r)}if(document.querySelector("#lc-hide-body")?.remove(),!document.body){xa("No body element found","error");return}this.setupMutationObserver()}executeExperiment(e){let r=e.experimentConfig?.modifications;return r?.length?r.some(n=>{if(!n.cssSelector)return b.verbose("No CSS Selector available",e?.toString()),!1;this.modifications.push(n);let i=Array.from(document.querySelectorAll(n.cssSelector));return i?.length?(this.executeSingleModification(n,i),!0):!1}):(b.log("Nothing to experiment",e.toString()),!0)}executeSingleModification(e,r){if(r?.length)for(let n of r)Object.assign(n.style,e.style),e.type==="TEXT"&&e.text?n.innerHTML=e.text:e.type==="IMAGE"&&this.updateImage(e,n)}trackExperimentRan(e){if(e.id==="preview"){b.warn("Skipping experiment attribution as its preview",e.toString());return}this.eventAPIService.trackExperiment({name:"CE Experiment Start",experiment:new Dn(e)}).catch(r=>{b.error("Fail to track experiment",r)})}setupMutationObserver(){new MutationObserver(r=>{r.forEach(n=>{n.addedNodes.forEach(i=>{i instanceof HTMLElement&&this.modifications.forEach(o=>{i.matches&&i.matches(o.cssSelector)?(b.verbose("Re-applying experiment",o.toString()),this.executeSingleModification(o,[i])):i.querySelectorAll&&(b.verbose("Re-applying experiment",o.toString()),this.executeSingleModification(o,Array.from(i.querySelectorAll(o.cssSelector))))})})})}).observe(document.body,{childList:!0,subtree:!0})}updateImage(e,r){let n=e.image?.lg?.src,i=e.image?.sm?.src;!n&&!i||(r instanceof HTMLPictureElement?this.updatePictureElement({desktop:n,mobile:i},r):this.updateImageElement({desktop:n,mobile:i},r))}updateImageElement(e,r){Gr()&&e.mobile?(r.setAttribute("src",e.mobile),r.removeAttribute("srcset")):e.desktop&&(r.setAttribute("src",e.desktop),r.removeAttribute("srcset"))}updatePictureElement(e,r){if(r.innerHTML="",e.mobile){let i=document.createElement("source");i.srcset=e.mobile,i.media="(max-width: 767px)",r.append(i)}if(e.desktop){let i=document.createElement("source");i.srcset=e.desktop,i.media="(min-width: 768px)",r.append(i)}let n=document.createElement("img");n.src=e.desktop??e.mobile??"",r.append(n)}};var Hn=class t extends Un{static INSTANCE;constructor(){super()}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}fetchExperimentsSilently(){this.fetchExperimentsSafe().catch(e=>ae(e,"fetch-experiments"))}async trackExperiment(e){let r=await this.getAllContext(),n=_(_({},e),r);await this.backendAPIService.post("/v1/event/experiment",n)}async fetchExperimentsSafe(){if(!this.runtimeData.activeExperiments)return;_t.getInstance().isAuthenticated()?await this.fetchExperiments():(await jr(_t.replaySubject),await this.fetchExperiments())}async fetchExperiments(){b.info("Fetch experiments after \u23F0",ve.get().getSDKLoadTimeDiff()+" of SDK load");let e=await this.getAllContext(),r=_({},e);this.backendAPIService.post("/v1/engagement/experiments",r).then(async n=>{b.info(`Experiments fetched in \u23F0 ${gr(n.timeTakenMs)}`);let i=n.data.experiments.map(o=>new xt(o));new jl().execute(i)}).catch(n=>{b.error("Error sending experiment getter",n)})}};var Gl=class{runtimeData=ve.get();widgetAPIService=me.get(Yr);experimentAPIService=me.get(Hn);meddle(){let e=Me.globalRef;e.account=e.account??[],e.profile=e.profile??[],e.events=e.events??[],e.page=e.page??[],this.meddlePage(),this.meddleAccount(),this.meddleEvents(),this.meddleProfile(),this.exposeMethods()}exposeMethods(){let e=Me.globalRef;e.loadWidgets=e.loadCartWidgets=e.loadPageWidgets=()=>{this.widgetAPIService.loadWidgetsSafe()},e.loadExperiments=()=>{this.experimentAPIService.fetchExperimentsSilently()},e.testCartUpdate=this.testCartUpdate.bind(this),e.previewWidget=Me.previewWidget.bind(Me),e.previewPopup=Me.previewPopup.bind(Me),e.executeCTA=(r,n)=>{new mn(r).execute(n)},e.sendEvent=r=>{Re.getInstance().sendSafe(r)}}overwritePush(e,r){Lr(e,"push",r)}meddleAccount(){this.overwritePush(Me.globalRef.account,(...e)=>{this.processAccount(e[0])}),Me.globalRef.account.forEach(this.processAccount.bind(this))}meddleEvents(){this.overwritePush(Me.globalRef.events,(...e)=>{this.processEvent(e[0])}),Me.globalRef.events.forEach(this.processEvent.bind(this))}meddleProfile(){this.overwritePush(Me.globalRef.profile,(...e)=>{this.processProfile(e[0])}),Me.globalRef.profile.forEach(this.processProfile.bind(this))}processAccount(e){e&&(e.appID&&Me.authenticate(e),e.flags&&di.setFlags(e.flags))}processEvent(e){e&&(Am.includes(e[0])?Me.sendEvent(e[0],e[1],_({occurred:this.runtimeData.jsLoadTime},e[2])):Me.sendEvent(e[0],e[1],e[2]))}processProfile(e){e&&Me.updateProfile(e)}processPageName(e){e&&Me.setPageName(e)}meddlePage(){this.overwritePush(Me.globalRef.page,(...e)=>{this.processPage(e[0])}),Me.globalRef.page.forEach(this.processPage.bind(this))}processPage(e){e.currentItem&&this.runtimeData.setCurrentItem(e.currentItem),e.currency&&(this.runtimeData.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&&Me.setPageName(e.pageName),e.activeExperiment&&(this.runtimeData.activeExperiments=e.activeExperiment),e.cart&&ge.getCurrent().update(e.cart),e.customContext&&(this.runtimeData.customContext=_(_({},this.runtimeData.customContext),e.customContext))}async testCartUpdate(){if(this.runtimeData.pageName!=="product"){window.alert("This feature is only available on a product page");return}let e=Ey();if(e||(e=this.runtimeData.getCurrentItem()?.vID),!e){window.alert("Could not find a variant to test. Please try a different product page");return}let r=new xt({id:"preview",shortID:"1",redirectBehaviour:tr.CART_DRAWER});await new mn(new Cr(new Date,r)).execute({clickAction:{at:we.ADD_TO_CART},embeddedItem:new Rt({vID:e})})}};var xo=class{static SESSION_STORAGE=window.sessionStorage;static SESSION_STORAGE_KEY_PREFIX="cooee".concat("-");static getString(e,r){return this.getItem(e)||r}static setString(e,r){this.setItem(e,r)}static remove(e){this.removeItem(e)}static getItem(e){return this.SESSION_STORAGE.getItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e))}static setItem(e,r){this.SESSION_STORAGE.setItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e),r)}static removeItem(e){this.SESSION_STORAGE.removeItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e))}};var Co=class t{static INSTANCE;static DEBOUNCE_TIME=1e3;static THRESHOLD=10;lastPercent=0;_lastScreenOrScroll=new Date;constructor(){}set lastScreenOrScroll(e){this._lastScreenOrScroll=e}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}resetScrollID(e){xo.remove("sleid"),this.lastScreenOrScroll=e??new Date}listen(){if(window.scrollY){let e=this.getPercentScrolledY();this.shouldSendScroll(e)&&this.sendScroll(e)}Ui(()=>{this.observeWindowScroll()})}observeWindowScroll(){mi(window,"scroll").pipe(Tr(t.DEBOUNCE_TIME),fn(()=>{let e=this.getPercentScrolledY();if(e>100){b.warn("Received scroll percent is more than 100",e);return}if(this.shouldSendScroll(e))return e})).subscribe(e=>{this.sendScroll(e)})}shouldSendScroll(e){return Math.abs(this.lastPercent-e)>=t.THRESHOLD||this.lastPercent!==e&&e===100}sendScroll(e){if(e==null)return;let r={percent:e,timeMS:new Date().getTime()-this._lastScreenOrScroll.getTime()};this.lastPercent=e;let n=xo.getString("sleid",""),i=new Ie("CE Scroll",r,null,n);me.get(Re).sendSafe(i),xo.setString("sleid",i.id.toHexString()),this._lastScreenOrScroll=new Date(i.occurred)}getPercentScrolledY(){let e=window.document.body.scrollHeight,r=window.innerHeight;return Math.ceil((window.scrollY+r)/e*100)}};var zl=class t{static ACTIVE_DURATION="aDur";static INACTIVE_DURATION="iaDur";runtimeData=ve.get();listen(){document.onvisibilitychange=()=>{document.visibilityState==="visible"?this.onVisible():document.visibilityState==="hidden"&&this.onHidden()}}async onVisible(){}async onHidden(){let e=await this.runtimeData.setInactive();if(e===0){b.info("Not sending background event as user was inactive on website");return}b.info(`Sending background event with ${e} seconds`);let r={};r[t.ACTIVE_DURATION]=e,me.get(Re).sendSafe(new Ie("CE App Background",r))}};var ql=class{listen(){return this.overwriteFetchMethod(),this}overwriteFetchMethod(){let e=this,r=window.fetch;window.fetch=async function(n,i){try{await e.modifyRequest(n,i)}catch(o){ae(o,"modify-graphql-request",{extra:{body:JSON.stringify(i?.body)}})}return r(n,i)},b.verbose("Securely overwritten window.fetch method for graphql query")}async modifyRequest(e,r){let n=typeof e=="string"?e:e instanceof Request?e.url:"";if(!(n.includes("graphql.json")&&r?.method==="POST")||!r.body)return;let i;if(typeof r.body=="string")try{i=JSON.parse(r.body)}catch{return}else i=r.body;i?.variables?.input&&(b.verbose("Intercepted fetch request of:",n),i?.query.includes("cartCreate")&&(r.body=await this.updatedBody(i),this.sendBuyNowEvent()))}async updatedBody(e){let r=e.variables.input.attributes??[],n=await Ya("Buy Now");return e.variables.input.attributes=[...r,...n],JSON.stringify(e)}sendBuyNowEvent(){let e=ve.get().getCurrentItem();if(!e)return;let r=new Ie("Buy Now Clicked",{items:[e]});me.get(Re).sendSafe(r)}};var Ro=class{constructor(e,r){this.selectors=e;this.eventName=r;this.selectorString=e.join(",")}static INSTANCE;elements;selectorString;clickListenerCallback=e=>{let r=e.currentTarget,n=new Ie(this.eventName,{class:r.className||void 0,tagName:r.tagName||void 0,id:r.id||void 0});me.get(Re).sendSafe(n),this.removeClickListener(this.clickListenerCallback)};listenSilently(){this.listen().catch(e=>b.error(e))}async listen(){this.elements=await Bp(this.selectorString),this.elements.forEach(e=>{e.addEventListener("click",this.clickListenerCallback)})}removeClickListener(e){this.elements?.forEach(r=>{r.removeEventListener("click",e)})}};var Yl=class t extends Ro{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(t.selectors,"Item Thumbnail Clicked")}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}};var Kl=class t extends Ro{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(t.selectors,"Review Clicked")}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}};var Xl=class{selector=[".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(",");listen(){Ui(()=>{b.verbose("Execution order:","document ready"),this.useLocationHash()})}useLocationHash(){let e=window.location.hash?.substring(1);if(e)if(e.includes("initiate-checkout")){document.dispatchEvent(new Event("letscooee:outbound:third-party-initiate-checkout"));let r=document.querySelector(this.selector);if(!r){b.verbose("No clickable cart checkout button found");return}b.verbose("Clickable cart checkout button found",r),r.click()}else e.includes("open-cart-drawer")&&rt.get().open()}};var zs=class{static attachCheckoutListener(){window.gokwikSdk&&window.gokwikSdk.on("checkout_initiated",async()=>{let e=await ge.getCurrent().getNormalisedCart(),r={via:"GoKwik",items:e.items,cartToken:e.token,amount:{value:e.amount,currency:e.currency}},n=new Ie("Checkout Started",r);me.get(Re).sendSafe(n)})}};var Jl=class{static watch(){let e=ou();(e==="1"||e==="on")&&Pt.getInstance().updateDevicePropsSafe({debugTill:this.getDebugMillis()}),e==="on"?sessionStorage.cooeeDebug="1":e==="off"&&sessionStorage.removeItem("cooeeDebug"),sessionStorage.cooeeDebug&&this.renderDebugBar()}static renderDebugBar(){let e=document.createElement("cooee-debugger");e.logs=this.logs,Ui(()=>{document.body.appendChild(e)})}static getDebugMillis(){return new Date().getTime()+360*60*1e3}};var Me=class{static globalRef;static authenticated;static async initForMerchantWebsiteOnly(e){if(window.cooeeSDKPreview)return;let r=(window.CooeeSDK?.pageLoadTime??e).getTime()-e.getTime();b.info(`Initialising SDK after ${gr(r)} of page load`),this.initGlobalReference(e),await me.get(_t).populateAuthDataFromStorage(),this.autoAuthenticate(),new Gl().meddle(),km(),me.get(Yr).loadWidgetsSafe(!0),me.get(Hn).fetchExperimentsSilently(),new zl().listen(),new Ol().listen(),new ql().listen(),new Xl().listen(),me.get(Co).listen(),me.get(Kl).listenSilently(),me.get(Yl).listenSilently(),this.attachGoKwikListeners(),this.setupPreviewListeners(),Jl.watch()}static async initForAll(){this.injectWidgetAssets()}static initGlobalReference(e){window.CooeeSDK||Lr(window,"CooeeSDK",{}),this.globalRef=window.CooeeSDK,Lr(this.globalRef,"config",new Xe),Lr(this.globalRef,"runtimeData",new ve(e)),Lr(this.globalRef,"uaParser",new Sr,!0),Lr(this.globalRef,"cart",ge.getCurrent()),Lr(this.globalRef,"cartChange$",iv()),Lr(this.globalRef,"cartDrawerToggle$",rt.cartDrawerToggle$.asObservable()),b.verbose("Global reference initialised"),new Bc(()=>{this.globalRef.uaParser=new Sr})}static injectWidgetAssets(){Qg(Gt.widgetURL,"cooee-widget-sdk"),Tf()}static autoAuthenticate(){let e=cc();e&&this.authenticate({shopifyShop:e})}static authenticate(e){if(this.authenticated)return;b.info("Begin auth after \u23F0",ve.get().getSDKLoadTimeDiff(),"of SDK load");let r=e.appID?.trim(),n=e.shopifyShop;if((Lp(r)||r.length!==24)&&Lp(n)){b.warn("Cooee App ID or Shop name is not configured");return}this.authenticated=!0,me.get(_t).authenticate(e)}static sendEvent(e,r,n){let i=new Ie(e,r,n?.triggerData);n?.occurred&&(i.occurred=n.occurred),me.get(Re).sendSafe(i)}static updateProfile(e){for(let r in e)if(r.toLowerCase().startsWith("ce "))throw new Error("User property name cannot start with 'CE '");me.get(Pt).updateProfileSafe(e)}static setPageName(e){if(!e)return;let r=ve.get(),n=r.pageName;if(e===n)return;if(r.pageName=e,Cm.some(s=>e.includes(s))){me.get(Co).resetScrollID();return}let i={};n&&(i.ps=n);let o=new Ie("CE Screen View",i);o.occurred=r.jsLoadTime,me.get(Re).sendSafe(o),me.get(Co).resetScrollID(o.occurred)}static previewPopup(e,r){new kn(r).render(e)}static previewWidget(e){new bt(new xt(e)).renderSilently()}static setupPreviewListeners(){if(window.opener){try{window.opener.postMessage({action:"COOEE_READY_FOR_PREVIEW"},"*")}catch(e){b.error(e)}window.addEventListener("message",e=>{if(b.verbose("Received event",e),!e.origin.includes("letscooee.com")&&!e.origin.includes("localhost"))return;let r=e.data;typeof r=="object"&&(r.action==="POPUP_PREVIEW"?(this.previewPopup(r.engagementTrigger),e.source?.postMessage({action:"PREVIEW_SUCCESSFUL"},e.origin)):r.action==="WIDGET_PREVIEW"&&(this.previewWidget(r.engagementTrigger),e.source?.postMessage({action:"PREVIEW_SUCCESSFUL"},e.origin)))})}}static attachGoKwikListeners(){let e=ve.get();window.addEventListener("kp-modal:opened",()=>{e.isGoKwikPopupOpen=!0}),window.addEventListener("user-loggedin",r=>{let{token:n}=r.detail;n&&this.updateProfile({goKwikToken:n})}),window.gokwikSdk?zs.attachCheckoutListener():window.addEventListener("gokwikLoaded",zs.attachCheckoutListener)}};var M0=new Date;Nm();Om();b.verbose("Execution order:","top");window.cooeeShopifyScriptLoaded||(window.cooeeShopifyScriptLoaded=!0,(async()=>(b.verbose("Execution order:","IIFE start"),await Me.initForMerchantWebsiteOnly(M0),await Me.initForAll(),b.verbose("Execution order:","IIFE end")))());b.verbose("Execution order:","bottom");
74
+ `},navigation:{nextEl:t.querySelector(".swiper-button-next"),prevEl:t.querySelector(".swiper-button-prev")},autoplay:e.autoplay?.enabled?{delay:e.autoplay?.delay,disableOnInteraction:!1,pauseOnMouseEnter:!1}:!1,autoHeight:!0};e.marquee&&r.autoplay&&typeof r.autoplay=="object"&&(r.speed=e.speed,r.autoplay.pauseOnMouseEnter=!0,t.style.setProperty("--swiper-wrapper-transition-timing-function","linear"));let n=new window.CooeeSDK.Swiper(t,r);return t.style.setProperty("--swiper-navigation-size",`${e.navigation.size}px`),n}function Ml(t,e,r){let n={color:t.navigation.color?.rgba};return t.pagination.enabled&&(n.transform="translateY(-25%)"),K("div",{class:"swiper-container",ref:e,style:"max-width: 100%",children:[K("div",{class:"swiper-wrapper",children:r()}),t.navigation.enabled&&K("div",{class:"swiper-button-next",style:n,children:K("span",{})}),t.navigation.enabled&&K("div",{class:"swiper-button-prev",style:n,children:K("span",{})}),t.pagination.enabled&&K("div",{className:"swiper-pagination",style:{bottom:0,top:"unset",position:"relative",color:t.pagination.color?.rgba}})]})}var ks=class extends Fe{componentDidMount(){Tt(()=>{this.setState(()=>({checked:this.props.item.selected.value}))})}render(){return K("div",{style:this.getCompiledStyles(),className:"lc-checkbox",children:K("input",{type:"checkbox",checked:this.state.checked,onChange:this.onChange.bind(this),style:{appearance:"auto"}})})}onChange(e){let{checked:r}=e.target;this.props.item.selected.value=r}getTypoStyles(){let e={},r=this.mediaStyle.typo??new lt;return e.textAlign=r.alignment,e.justifyContent=r.alignment,e}getComponentStyles(){return Z(_({},this.getTypoStyles()),{display:"flex"})}};var dn=class extends Fe{constructor(e,r){super(e,r)}render(){let e=this.props.element[this.deviceTypeKey],r=e?.src||this.props.element.src||this.props.element.lg?.src;return K("img",{onClick:this.customOnClick.bind(this),className:"lc-image",alt:e?.name||"Image",onMouseEnter:this.handleMouseEnter.bind(this),onMouseLeave:this.handleMouseLeave.bind(this),src:r,style:this.getCompiledStyles()})}customOnClick(e){this.props.element.clc?.at===we.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 r={zIndex:e.zIndex,cursor:this.props.element.clc?.at?"pointer":"auto"};return this.mediaStyle.size?.w&&(r.width=this.mediaStyle.size.w),this.mediaStyle.size?.h&&(r.height=this.mediaStyle.size.h),r}handleMouseEnter(e){let r=this.props.element[this.deviceTypeKey]?.secondarySrc;r&&(e.currentTarget.src=r)}handleMouseLeave(e){e.currentTarget.src=this.props.element[this.deviceTypeKey]?.src}};var hn=class extends Fe{render(){if(!(this.props.element.hide||!this.matchWhenCondition(this.props.element.when)))return K("div",{style:this.getCompiledStyles(),class:"lc-flexbox",children:K(Fn,{elements:this.props.elements,element:this.props.element,triggerContext:this.props.triggerContext})})}getComponentStyles(){let e=this.mediaStyle.flex??new Qi,r={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"?r["overflow-y"]="auto":r["overflow-x"]="auto"),r}};var Us=class extends hn{render(){if(!(this.props.element.hide||!this.matchWhenCondition(this.props.element.when)))return K("div",{style:this.getCompiledStyles(),class:"lc-flexbox",children:K(To,{elements:this.props.elements,element:this.props.element,triggerContext:this.props.triggerContext,item:this.props.item,noLinks:this.props.noLinks})})}};var Fs=class extends Fe{render(){return K("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(){Tt(()=>{this.setState(()=>({disabled:this.props.triggerContext.triggerData.isBundle()?!this.props.item.selected.value:!1}))})}getTypoStyles(){let e={},r=this.mediaStyle.typo??new lt;return e.letterSpacing=r.letterSpacing,e.fontSize=r.fs+"px",e.lineHeight=r.lh,e.fontFamily="inherit",e.textAlign=r.alignment,e.fontWeight=r.fw,this.stylesConverter.getColourStyles(r.tc,"color",e),e.boxShadow="none",e}getComponentStyles(){let e={};return this.props.selectedVariant.sellingPlans?.length||(e.visibility="hidden"),_(_({},e),this.getTypoStyles())}createSelectItems(){let e=[],r=this.props.selectedVariant;if(!r.sellingPlans?.length)return[];this.props.triggerContext.triggerData.skipSubscribedItems?r.selectedSellingPlan.value||(r.sellingPlans[0].isSelected=!0,r.changeSellingPlan(r.sellingPlans[0])):e.push(K("option",{value:"",selected:!r.selectedSellingPlan,children:"One time purchase"}));for(let n of r.sellingPlans??[])e.push(K("option",{value:n.mID,selected:n.isSelected,children:n.name}));return e}onChange(e){let r=e.target.value;r?this.props.selectedVariant.selectedSellingPlan.value=this.props.selectedVariant.sellingPlans.find(n=>n.mID===r):this.props.selectedVariant.selectedSellingPlan.value=void 0}};var D0=new RegExp('fill="#[a-zA-Z0-9]+"'),Hs=class extends Fe{constructor(){super()}render(){let e=this.getCompiledStyles(),r=this.getRating();return r||(e.display="none",r=""),K("div",{style:e,className:"lc-star-rating",dangerouslySetInnerHTML:{__html:r}})}getRating(){let e={size:this.props.element.iconSize,color:this.props.element.c.hex},r=ji(this.props.element.fullStar,{svg:e},this.props.triggerContext),n=ji(this.props.element.halfStart,{svg:e},this.props.triggerContext),i=this.props.review;if(!i?.rating)return"";let o="";if(this.props.element.showSingleStar)o=r;else{let s=5,a=`${i.rating}`.split(".");for(let c=0;c<+a[0];c++)o+=r,s--;a[1]&&(o+=n,s--);for(let c=0;c<s;c++)o+=r.replace(D0,'fill="#f1f1f1"')}return o}getComponentStyles(){return{display:"flex",alignItems:"center"}}};var Vs=class extends Fe{render(){return K("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(){Tt(()=>{this.setState(()=>({disabled:this.props.triggerContext.triggerData.isBundle()?!this.props.item.selected.value:!1}))})}getTypoStyles(){let e={},r=this.mediaStyle.typo??new lt;return e.letterSpacing=r.letterSpacing,e.fontSize=r.fs+"px",e.lineHeight=r.lh,e.fontFamily="inherit",e.textAlign=r.alignment,e.fontWeight=r.fw,this.stylesConverter.getColourStyles(r.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"),_(_({},e),this.getTypoStyles())}createSelectItems(){let e=[];for(let r of this.props.item.vars)e.push(K("option",{value:r.mID,disabled:!r.isAvailable,children:r.name}));return e}onChange(e){let r=e.target.value,n=this.props.item.vars.find(i=>i.mID===r);this.props.item.setSelectedVariant(n)}};var To=class extends Fe{constructor(e,r){super(e,r),this.setState(()=>({decoration:"unset"}))}renderElement(e){if(!(e.hide||!this.matchWhenCondition(e.when))){if(e.t===4){let r=e;return r.l==="Star Rating"&&!this.props.item.reviews?.rating?void 0:K(Us,{element:r,triggerContext:this.props.triggerContext,elements:r.elems,item:this.props.item,noLinks:this.props.noLinks})}if(e.t===6)return this.props.triggerContext.triggerData.isBundle()?K(ks,{element:e,item:this.props.item,triggerContext:this.props.triggerContext}):void 0;if(e.t===13){let r=e,n=this.props.item,i=n.variantImage??n.firstImageURL,o=n.variantSecondaryImage??n.secondaryImageURL;r.lg=r.sm={src:i,name:n.name,secondarySrc:o};let s=K(dn,{element:r,onClick:this.customOnClick.bind(this),triggerContext:this.props.triggerContext});return this.props.noLinks?s:K("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 r=e;return this.props.triggerContext.triggerData.isCartEmbed()&&this.props.item.vars?.length===1&&this.props.item.vars[0].name==="Default Title"?void 0:r.showChips?K("cooee-product-options-picker",{item:this.props.item}):K(Vs,{element:r,item:this.props.item,triggerContext:this.props.triggerContext})}return e.t===16?K(Fs,{element:e,selectedVariant:this.props.item.selectedOrFirstVariant.value,item:this.props.item,triggerContext:this.props.triggerContext}):e.t===19?K(Hs,{element:e,triggerContext:this.props.triggerContext,review:this.props.item.reviews}):e.t===18||e.t===3?K(vi,{element:e,item:this.props.item,triggerContext:this.props.triggerContext}):K(Fn,{elements:[e],element:this.props.element,triggerContext:this.props.triggerContext})}}render(){return this.props.elements.map(e=>this.renderElement(e))}getComponentStyles(){return{}}renderProductTitle(e){let r=K(Qt,{element:e,onClick:this.customOnClick.bind(this),triggerContext:this.props.triggerContext});return this.props.noLinks?r:K("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:r})}customOnClick(e){this.sendTriggerClicked([this.props.item.toEmbed()],{from:e})}onMouseEnter(){this.setState(()=>({decoration:"underline"}))}onMouseLeave(){this.setState(()=>({decoration:"unset"}))}};var Ei=class extends Fe{productElement;constructor(e,r){super(e,r),this.setState(()=>({decoration:"unset"}))}render(){let e=Zn(this.props.element,this.getProductData(),this.props.triggerContext);if(this.productElement=new Rn(e),!(this.productElement.hide||!this.matchWhenCondition(this.productElement.when)))return K("div",{style:_({},this.getCompiledStyles()),class:"lc-single-product",children:K(To,{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,r=e.selectedOrFirstVariant.value,n=e.getTemplateVariables();n.product.quantity=this.props.triggerContext.hasManipulatedProductQuantity()?this.props.triggerContext.getManipulatedQuantity(this.props.item.quantity):this.props.item.quantity;let i=this.props.triggerContext.triggerData.discount?.type===er.BXGY;return!r.hasEffectivePrice()&&i&&(n.product=Z(_(_({},n.product),kt("effective_price",r.effectivePrice.value)),{price:""})),n.variant.quantity=this.props.triggerContext.hasManipulatedProductQuantity()?this.props.triggerContext.getManipulatedQuantity(r.quantity):r.quantity,{product:n.product,variant:n.variant,svg:{color:"{{ svg.color }}",size:"{{ svg.size }}"}}}};var $s=class extends Fe{swiperRef=null;swiperInstance=null;configuration;gap;constructor(e,r){super(e,r),this.configuration=Gr()?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&&Mc().then(()=>{this.swiperInstance=Ll(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 r;if(this.configuration.disp===2){let n=o=>{this.swiperRef=o},i=()=>e?.map(o=>K("div",{class:"swiper-slide",children:this.getProductFragment(o)}));r=K("div",{style:Z(_({},this.getCompiledStyles()),{display:"block"}),class:"lc-product-swiper-list",children:Ml(this.configuration,n,i)})}else r=K("div",{style:this.getCompiledStyles(),class:"lc-product-list",children:e?.map((n,i)=>this.getProductFragment(n,i!==e.length-1))});return r}getComponentStyles(){let e=[0,2].includes(this.configuration.disp),r={display:e?"flex":"grid",justifyContent:"safe "+(this.mediaStyle.flex?.jc??"center"),gap:this.gap,flexDirection:this.mediaStyle.flex?.dir??"row"};if(r.flexDirection==="row"){if(e)r.maxWidth="100%",r.overflowY="auto";else if(this.configuration.disp===1){let n=this.props.triggerContext.triggerData,i=n.items.length,o;n.isBundle()?o=this.props.element.prod.symbol?.hide!==!0?i*2-1:i:o=this.props.element.conf[this.deviceTypeKey].maxInRow,r.gridTemplateColumns=`repeat(${o}, auto)`}}return r}getProductFragment(e,r=!1){return K(Br,{children:[K(Ei,{element:this.props.element.prod,item:e,triggerContext:this.props.triggerContext}),this.props.triggerContext.triggerData.isBundle()&&r&&this.props.element.prod.symbol&&!this.props.element.prod.symbol.hide&&K("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:K(Qt,{element:this.props.element.prod.symbol,triggerContext:this.props.triggerContext})})]},e.mID)}};var Ws=class extends Fe{swiperRef=null;swiperInstance=null;constructor(e,r){super(e,r)}componentDidMount(){Mc().then(()=>{this.swiperInstance=Ll(this.swiperRef,this.props.element.conf)})}componentWillUnmount(){this.swiperInstance&&this.swiperInstance.destroy()}render(){let e=this.props.element,r=i=>{this.swiperRef=i},n=()=>{let i=e.values?.map(a=>K("div",{class:"swiper-slide",onClick:c=>this.onClick(c,{clickAction:this.getClickAction(a)}),children:this.renderElement(a)}));if(!i?.length)return[];let o=e.conf,s=i.length;if(o.marquee&&s<=Number(o.maxInRow)){let a=Number(o.maxInRow)-s+1;for(let c=0;c<a;c++)i.push(i[c%s])}return i};return Ml(e.conf,r,n)}getComponentStyles(){return{}}renderElement(e){let r=this.valueAddedSlide(this.props.element.slide,e);switch(r?.t){case 1:return K(dn,{element:r,triggerContext:this.props.triggerContext});case 4:return K(hn,{elements:r.elems,element:r,triggerContext:this.props.triggerContext});default:b.warn("Unknown slide type for carousal")}}valueAddedSlide(e,r){let n=Zn(e,{form:r},this.props.triggerContext);return Xt.getParsedElement(n)}getClickAction(e){return Zn(this.props.element.clc??{},{form:e},this.props.triggerContext)}};var Fn=class extends Fe{constructor(e,r){super(e,r),this.setState(()=>({decoration:"unset"})),Tt(()=>{this.setState(()=>({showButton:!this.props.triggerContext.triggerData.isBundle()||!!this.props.triggerContext.selectedItems.length}))})}renderElement(e){if(!e.hide){if(e.t===4){let r=e;return K(hn,{element:r,triggerContext:this.props.triggerContext,elements:r.elems})}if(e.t===61)return K(Bs,{element:e,triggerContext:this.props.triggerContext});if(e.t===3)return this.state.showButton?K(vi,{element:e,triggerContext:this.props.triggerContext}):void 0;if(e.t===2)return K(Qt,{element:e,triggerContext:this.props.triggerContext});if(e.t===1)return K(dn,{element:e,triggerContext:this.props.triggerContext});if(e.t===11)return K($s,{element:e,triggerContext:this.props.triggerContext});if(e.t===12)return K(Ei,{element:e,item:this.props.triggerContext.triggerData.items[0],triggerContext:this.props.triggerContext});if(e.t===62)return K(Ws,{element:e,triggerContext:this.props.triggerContext})}}render(){return this.props.elements.map(e=>this.renderElement(e))}getComponentStyles(){return{}}};var js=class extends Fe{clickAction;isClickable;constructor(e,r){super(e,r),this.clickAction=this.props.element.clc,this.isClickable=this.clickAction?.at===we.GO_TO_URL&&!!ki(this.clickAction.gu?.u)||this.clickAction?.at===we.OPEN_CART||this.clickAction?.at===we.INITIATE_CHECKOUT}componentDidMount(){Tt(()=>{let e=this.props.triggerContext.triggerData,r=this.props.triggerContext.selectedItems;e.calculateDiscountData(r,this.props.triggerContext.shouldGiveFBTDiscount)})}render(){return K(Br,{children:[K("div",{style:this.getCompiledStyles(),class:"lc-container",onClick:e=>{this.onClick(e,{clickAction:this.clickAction})},children:K(Fn,{elements:this.props.elements,element:this.props.element,triggerContext:this.props.triggerContext})}),this.props.triggerContext.triggerData.id==="preview"&&K("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 bt=class t{constructor(e){this.engagementTrigger=e;this.triggerContext=new Cr(new Date,this.engagementTrigger)}static currentEngagements=new Set;static engagementIDsWithTrackedDisplay=new Set;static DEBOUNCE_TIME=1e3;rootContainer;widgetElement;widget;triggerContext;observers=[];runtimeData=ve.get();widgetAPIService=me.get(Yr);eventAPIService=me.get(Re);renderedCount=0;scrollSubscription;variation;isExclusionWithBVariation;isRendering=!1;renderSilently(){this.render().catch(e=>{ae(e,"render-widget",{triggerContext:this.triggerContext})})}destroy(){b.verbose(`${this.engagementTrigger} will be destroyed`),this.preDestroy(),this.removeFromRendered(),this.rootContainer?.remove(),t.engagementIDsWithTrackedDisplay.delete(this.engagementTrigger.shortID),Cf(this.engagementTrigger.content?.afterDeleteJS)}async render(){if(this.isRendering){b.verbose(`${this.engagementTrigger} rendering already in progress, skipping`);return}this.isRendering=!0;try{if(this.engagementTrigger.shouldGetVariationImmediately()){let e=await this.getVariation();this.handleVariationResponse(e)}if(this.rootContainer=await this.getWidgetContainer(!0),!this.rootContainer){b.warn(`${this.engagementTrigger} no section found to render the widget`);return}this.afterRootContainerCreated(),this.widget=this.engagementTrigger.widget,await this.getVariationIfRequired(),await this.runChoresBeforeRender(),this.attachScroll(),await this.checkAndSendEvent(),this.triggerContext.renderer=this,Cf(this.engagementTrigger.content?.afterRenderJS)}finally{this.isRendering=!1}}matches(e){return this.engagementTrigger.shortID===e.shortID}async updateAndReRender(e){b.info(`${this.engagementTrigger} will be updated`),this.updateItems(e.items,this.engagementTrigger.items),await this.update(e),await this.render()}async update(e){}rerender(){this.rootContainer?.isConnected||(b.info(`${this.engagementTrigger} deleted. Will be re-rendered`),this.preDestroy(),this.renderSilently())}preDestroy(){this.scrollSubscription?.unsubscribe(),this.observers.forEach(e=>{e?.disconnect&&e.disconnect()})}afterRootContainerCreated(){}isAllOkToRender(){return!!this.widget}async getVariationIfRequired(){if(this.engagementTrigger.shouldSkipVariation()){b.verbose(`${this.engagementTrigger} already has necessary data to render`);return}let e=await this.observeWidgetContainerInViewport();this.handleVariationResponse(e)}handleVariationResponse(e){e&&(b.log(`${this.engagementTrigger} visitor has been assigned to variation ${e.variation}`),e.items?.length&&(this.engagementTrigger.items=e.items.map(r=>new Dt(r)),this.engagementTrigger.nonMutableItems=e.items.map(r=>new Dt(r))),e.bundleFrom&&(this.engagementTrigger.bundleFrom=new Dt(e.bundleFrom)),e.discount&&(this.engagementTrigger.discount=e.discount),e.placement&&(this.triggerContext.triggerData.placement=e.placement),e.props&&rr.hasKeys(e.props)&&(this.engagementTrigger.props=_(_({},this.engagementTrigger.props),e.props)),e.content&&(this.triggerContext.triggerData.content=new cs(e.content)),this.triggerContext.triggerData.widget=this.widget=new ro(e.widget),this.triggerContext.triggerData.contentID=e.contentID,this.triggerContext.triggerData.variation=this.variation=e.variation,this.triggerContext.triggerData.placement=e.placement,this.triggerContext.triggerData.manipulation=e.manipulation,this.triggerContext.triggerData.entryAnimation=e.entryAnimation??"NONE",this.isExclusionWithBVariation=this.engagementTrigger.isExclusionTesting()&&this.variation==="b",this.isExclusionWithBVariation&&(this.rootContainer.style.height="0.5px"))}addToRendered(){this.renderedCount++,b.info(`${this.engagementTrigger} rendered \u2705 ${Fh(this.renderedCount)} time`)}removeFromRendered(){this instanceof gt?gt.currentEngagements.delete(this):t.currentEngagements.delete(this)}async getVariation(){b.log(`${this.engagementTrigger} get variation`);let e={engagementID:this.engagementTrigger.engagementID,isPreview:this.engagementTrigger.id==="preview"};try{return(await this.widgetAPIService.getVariation(e)).data}catch(r){ae(r,"get-variation",{engagementTrigger:this.engagementTrigger});return}}async observeWidgetContainerInViewport(){if(!this.rootContainer){b.warn(`${this.engagementTrigger} No root container found to watch for viewport`);return}let e=window.innerHeight*.3,r={root:null,rootMargin:`${e}px 0px ${e}px 0px`,threshold:0};return this.isInViewport()?this.getVariation():new Promise(n=>{let i=new IntersectionObserver((o,s)=>{o.forEach(async a=>{if(a.isIntersecting){b.log(`${this.engagementTrigger} root container is near the viewport. Fetching variation`);let c=await this.getVariation();n(c),s.unobserve(this.rootContainer)}})},r);i.observe(this.rootContainer),this.observers.push(i)})}attachScroll(){this.scrollSubscription=mi(window,"scroll").pipe(Tr(t.DEBOUNCE_TIME)).subscribe(()=>{this.checkAndSendEvent()})}async checkAndSendEvent(){let e=this.engagementTrigger.shortID;if(t.engagementIDsWithTrackedDisplay.has(e)||!this.isInViewport())return;let n={};this.triggerContext.triggerData.items?.length&&(n.promotedMIDs=this.engagementTrigger.items?.map(s=>s.mID));let i=this.isExclusionWithBVariation?"CE Campaign Holdout":"CE Trigger Displayed",o=new Ie(i,n,this.engagementTrigger);o.name==="CE Campaign Holdout"&&(o.trigger.holdout=!0),this.eventAPIService.sendSilently(o),t.engagementIDsWithTrackedDisplay.add(e),this.scrollSubscription.unsubscribe()}generateParentElementID(){return`letscooee-${this.engagementTrigger.shortID}`}createAngularWidget(e){let r=this.widgetElement=document.createElement(e);return r.cart=ge.getCurrent(),r.triggerContext=this.triggerContext,r.engagementTrigger=this.engagementTrigger,r.setAttribute("engagement",this.engagementTrigger.shortID),this.rootContainer.appendChild(r),this.addToRendered(),r}getParentElement(e,r=document){let n=r.getElementById(e);if(n)return n;let i=this.engagementTrigger.objective.toLowerCase().replaceAll("_","-"),o=this.engagementTrigger.shortID;return n=document.createElement("div"),n.id=e,n.className=`letscooee letscooee-engagement engagement-${o} lc-${i}`,n.dataset.engagementId=o,this.engagementTrigger.id==="preview"&&(n.className+=" letscooee-preview"),n.style.display="block",n.style.minHeight="0.5px",n.style.minWidth="0.5px",n}startRendering(){let e=this.rootContainer;this.triggerContext.triggerData.hasSwiperElement()&&(e=this.rootContainer?.shadowRoot||this.rootContainer?.attachShadow({mode:"open"}),Rf(e)),tg(Wp(js,{element:this.widget.cont,triggerContext:this.triggerContext,elements:this.widget.elems}),e),this.addToRendered()}isInViewport(){let e=this.rootContainer?.getBoundingClientRect();if(!e)return!1;let r=window.innerHeight||document.documentElement.clientHeight,i=(Math.min(e.bottom,r)-Math.max(e.top,0))*e.width,o=e.width*e.height,s=i/o*100;return this.engagementTrigger.isAnySplit()?s>0:s>=30}async getWidgetContainer(e){if(this.rootContainer?.isConnected)return this.rootContainer;let r=await this.createParentElementWithPlacement(e);if(r)return r;let n=`.letscooee[data-engagement-id="${this.triggerContext.triggerData.shortID}"]`;return document.querySelector(n)}async createParentElementWithPlacement(e){let r=this.engagementTrigger.placement;if(!r?.selector)return b.info(`\u26A0\uFE0F${this.engagementTrigger} does not have a selector`),null;let n=r.selector,i;if(n.includes(":shadow")){let c=n.split(":shadow");i=(await Fi(c[0].trim()))?.shadowRoot,n=c[1].trim(),i&&Rf(i,!1)}b.verbose(`${this.engagementTrigger} attempt to render ${r.position} "${n}"`);let o=await Fi(n,10,i??document);if(!o)return b.warn(`${this.engagementTrigger} no placement found with ${n}`),null;let s=this.generateParentElementID(),a=this.getParentElement(s);if(!e)return a;switch(r.position){case Ii.BEFORE:{o.parentElement?.insertBefore(a,o);break}case Ii.INSIDE_FIRST:{o.insertBefore(a,o.firstChild);break}case Ii.INSIDE_LAST:{o.appendChild(a);break}case Ii.AFTER:default:o.parentElement?.insertBefore(a,o.nextSibling)}return a}async runChoresBeforeRender(){if(this.isExclusionWithBVariation)return;if(!this.isAllOkToRender()){b.info(`\u26A0\uFE0F ${this.engagementTrigger} could not be rendered`);return}b.verbose(`${this.engagementTrigger} will be rendered`);let e;try{e=await Dl(this.engagementTrigger)}catch(r){b.info(`\u203C\uFE0F${this.engagementTrigger} could not render as items failed to refresh`,r);return}if(!this.engagementTrigger.isCollectionPromoted()&&!e?.length&&this.engagementTrigger.isProductPromoted()){b.info(`\u203C\uFE0F${this.engagementTrigger} could not render as no products promoted`);return}this.engagementTrigger.items=e,this.startRendering()}updateItems(e,r){let n=this.getItemDiff(e,r),i=this.getItemDiff(r,e);r.push(...n);for(let o of i)Jr.remove(r,o)}getItemDiff(e,r){return e.filter(n=>!r.some(i=>i.selectedOrFirstVariant.value.mID===n.selectedOrFirstVariant.value.mID))}};var gt=class extends bt{static currentEngagements=new Set;constructor(e){super(e)}observeWidgetContainerInViewport(){return this.getVariation()}generateParentElementID(){let e=super.generateParentElementID();return this.engagementTrigger.isSubscriptionUpsell()&&(e+=`-${this.engagementTrigger.items[0].selectedOrFirstVariant.value.mID}`),e}async checkAndSendEvent(){if(!rt.get().isOpen()&&this.runtimeData.pageName!=="cart"){b.log("Do not send display event as neither the cart drawer nor the cart page is open.");return}return super.checkAndSendEvent()}};var N0=t=>t,sv=t=>t.filter(e=>e.removedNodes&&e.removedNodes.length>0);function av(t,e={childList:!0,subtree:!0},r=500,n=N0){return ml(i=>{let o=new MutationObserver(s=>i(s));return o.observe(t,e),o},(i,o)=>o.disconnect()).pipe(fn(i=>n(i)),rm(i=>i.length>0),Tr(r))}var Bl=class t{constructor(e,r){this.engagementTrigger=e;this.element=r;this.cartItems=ge.getCurrent().items}cartItems;static renderCartUpsell(e){let r=e.placement;if(!r?.selector){b.warn(`No placement available for ${e.objective}`,e.shortID);return}let n=Array.from(document.querySelectorAll(r.selector));if(!n?.length){b.warn(`No placement found for ${e.objective}`,e.shortID);return}for(let i of n)new t(e,i).render()}render(){let e=this.findCartItemFromHTMLElement();if(!e||this.engagementTrigger.skipSubscribedItems&&e.selling_plan_allocation)return;let r=this.engagementTrigger.items.find(d=>d.mID===e.product_id.toString());if(!r)return;let n=r.vars.find(d=>d.mID===e.id.toString());if(!n)return;let i=new kr(n),o=e.selling_plan_allocation?.selling_plan;if(o)for(let d of i.sellingPlans??[])d.mID===o.id.toString()&&(d.isSelected=!0,i.changeSellingPlan(d));let s=new Dt(r);s.vars=[i],s.selectedOrFirstVariant.value=i;let a=`lc-cart-item-${this.engagementTrigger.shortID}-${r.mID}`;this.element.classList.add(a);let c=new xt(this.engagementTrigger);c.placement.selector=`.${a}`,c.items=[s];let p=new gt(c);p.renderSilently(),this.watchForCartItemDeletion(p,a)}watchForCartItemDeletion(e,r){let n=new MutationObserver(i=>{i.forEach(o=>{o.removedNodes.forEach(s=>{s===this.element&&(b.verbose(`${r} has been removed`),e.destroy(),n.disconnect())})})});n.observe(this.element.parentElement,{childList:!0,subtree:!0})}findCartItemFromHTMLElement(){let e=this.element.innerHTML;return this.cartItems.find(r=>{if(!(e.includes(r.url)||e.includes(r.variant_id))&&(!e.includes(r.product_title)||r.variant_title&&!e.includes(r.variant_title)))return!1;let n=r.selling_plan_allocation?.selling_plan?.name;return!(n&&!e.includes(n))})}};var kl=class extends gt{ctaExecutor=new Bn;constructor(e){super(e)}async update(e){await super.update(e),this.engagementTrigger.progressBarConfig.update(e.progressBarConfig),await this.checkMilestoneTryCatch(),this.widgetElement.update()}isAllOkToRender(){return!!this.engagementTrigger.progressBarConfig}startRendering(){if(this.widgetElement?.isConnected){this.widgetElement.update(),this.addToRendered();return}this.createAngularWidget("cooee-progressbar"),this.checkMilestoneTryCatch()}async checkMilestoneTryCatch(){try{await this.checkMilestone()}catch(e){ae(e,"apply-milestones",{engagementTrigger:this.engagementTrigger})}}async checkMilestone(){let e=await ge.getCurrent().getNormalisedCart(),r=this.engagementTrigger.progressBarConfig,n,i=[],o=[],s=[],a,c,p=[...r.milestones];for(let f of p){if(f.rewardType!==uu.FREE_AUTO_GIFT)continue;if(f.isUIOnly&&!f.allowATC){b.verbose(`Skipping milestone ${f.label} as it is UI only and does not allow ATC`);continue}let E=f.items[0],y=f.reached,T=e.items.find(D=>(D.vID===E.vID||D.mID===E.mID)&&D.properties._letscooee_campaign===this.engagementTrigger.shortID);y&&(a=f,c=T),T&&i.push(T),!y&&T&&r.removeIneligibleItem?(b.verbose(`Removing free gift ${T.vID} from cart`),s.push(T)):y&&!T&&(b.verbose(`Adding free gift ${E.vID} to cart`),o.push(E))}r.restrictToLatestFreebie&&a&&(c?(i=i.filter(f=>f.vID!==c.vID),o=[]):o=[a.items[0]],s.push(...i)),s.length&&await this.removeFreeGifts(s),o.length&&(n=await this.ctaExecutor.addToCart(o,this.engagementTrigger));let d=r.coupons;if(d?.length)try{await zr.applyWithStorefront(d.map(f=>f.couponCode)),rt.get().refreshUI(n,!1)}catch(f){ae(f,"cart-apply-discount",{extra:{coupons:d},engagementTrigger:this.engagementTrigger})}}async removeFreeGifts(e){await Promise.all(e.map(r=>this.ctaExecutor.updateLineItem(r,{quantity:0})))}};var Gs=class extends gt{constructor(e){super(e)}async update(e){await super.update(e),this.engagementTrigger.content.update(e.content),this.widgetElement.update()}isAllOkToRender(){return!!this.engagementTrigger.content}startRendering(){if(this.widgetElement?.isConnected){this.addToRendered();return}this.createAngularWidget("cooee-savings-bar")}};var Ul=class extends bt{constructor(e){super(e)}isAllOkToRender(){return!!this.engagementTrigger.content?.videoConfig}startRendering(){if(this.widgetElement?.isConnected){this.addToRendered();return}let e,r=this.engagementTrigger.content.videoConfig;r.template==="FLOATING_POPUP"?e="cooee-video-popup":r.template==="STORY"?e="cooee-video-stories":e="cooee-video-playlist",this.createAngularWidget(e)}};var Fl=class extends bt{constructor(e){super(e)}isAllOkToRender(){return!0}startRendering(){if(this.widgetElement?.isConnected){this.addToRendered();return}this.createAngularWidget("cooee-sticky-atc")}};var Hl=class extends bt{constructor(e){super(e)}isAllOkToRender(){return!0}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),!1)}async inboundCTAListener(e){let r=this.engagementTrigger,n=`Engagement(id: ${r.engagementID}, shortID: ${r.shortID})`,i=e.detail;if(!rr.hasKeys(i)){b.error(`No detail received for ${n}`);return}b.log("Detail received for BYOB",i);let o=i.campaignID??i.campaignId??i.campaign_id;if(o!==r.shortID&&o!==r.engagementID){b.warn(`Current ${n} is not BYOB. Received: ${o}`);return}let s=i.items;if(!s?.length)return;let a=s.map(c=>new Rt({mID:c.product_id,vID:c.variant_id,quantity:c.quantity||1}));await new mn(this.triggerContext).execute({embeddedItems:a,clickAction:{at:we.ADD_BUNDLE,applyDiscount:!0}})}};var fm=!1,mm=!1,Vl=null,$l=null;av(document.body,{childList:!0,subtree:!0},500,sv).subscribe(()=>{bt.currentEngagements.forEach(t=>t.rerender()),gt.currentEngagements.forEach(t=>t.rerender())});function dm(t){if(fm){b.verbose("Cart widget processing in progress, queuing latest triggers"),Vl=t;return}fm=!0;try{O0(t)}finally{if(fm=!1,Vl){let e=Vl;Vl=null,b.verbose("Processing queued cart triggers"),dm(e)}}}function hm(t){if(mm){b.verbose("Page widget processing in progress, queuing latest triggers"),$l=t;return}mm=!0;try{P0(t)}finally{if(mm=!1,$l){let e=$l;$l=null,b.verbose("Processing queued page triggers"),hm(e)}}}function O0(t){lv(gt.currentEngagements,t);for(let e of t){b.info(`${e} received as cart embed`);let r=cv(gt.currentEngagements,e);if(r&&!e.isSubscriptionUpsell()){r.updateAndReRender(e).catch(i=>{ae(i,"update-and-re-render",{engagementTrigger:e})});continue}b.verbose(`${e} is new`);let n;if(e.isProgressBar())n=new kl(e);else if(e.isSubscriptionUpsell()){Bl.renderCartUpsell(e);continue}else e.isSavingsBar()?n=new Gs(e):n=new gt(e);gt.currentEngagements.add(n),n.renderSilently()}}function P0(t){lv(bt.currentEngagements,t);for(let e of t){b.info(`${e} received as page embed`);let r=cv(bt.currentEngagements,e);if(r){r.updateAndReRender(e).catch(i=>{ae(i,"update-and-re-render",{engagementTrigger:e})});continue}b.verbose(`${e} is new`);let n;e.isShoppableVideo()?n=new Ul(e):e.isBYOB()?n=new Hl(e):e.isStickyATC()?n=new Fl(e):e.isSavingsBar()?n=new Gs(e):n=new bt(e),bt.currentEngagements.add(n),n.renderSilently()}}function cv(t,e){for(let r of t)if(r.matches(e))return r}function lv(t,e){let r=new Set(e.map(n=>n.shortID));for(let n of t)r.has(n.engagementTrigger.shortID)||n.destroy()}var uv=new Jt,Yr=class t extends Un{static INSTANCE;pageWidgetLoadCount=0;constructor(){super(),uv.pipe(Tr(50),nm(e=>em(Promise.all([this.loadPageWidgetsFromServer().catch(r=>{ae(r,"load-page-widgets",{extra:{firstLoad:e}})}),this.loadCartWidgetsFromServer().catch(r=>{ae(r,"load-cart-widgets",{extra:{firstLoad:e}})})])))).subscribe(),window.CooeeSDK.cartChange$.subscribe(()=>{this.loadWidgetsSafe()})}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}loadWidgetsSafe(e=!1){jr(_t.replaySubject).then(()=>{uv.next(e)})}renderCachedCartWidgets(){gt.currentEngagements.forEach(e=>e.rerender())}async getVariation(e){let r=await this.getAllContext();return Object.assign(e,r),this.backendAPIService.post("/v1/engagement/get-variant",e)}async loadPageWidgetsFromServer(){this.pageWidgetLoadCount++,this.pageWidgetLoadCount===1?b.info("Fetch page widgets (after \u23F0",ve.get().getSDKLoadTimeDiff()+" of SDK load)"):b.info("Fetch page widgets");let e=await this.getAllContext(),r=_({},e);this.backendAPIService.post("/v1/engagement/page-widgets",r).then(n=>{b.info(`Page widgets loaded in \u23F0 ${gr(n.timeTakenMs)}`);let i=n.data.widgets.map(o=>new xt(o));hm(i)}).catch(n=>{b.error("Error sending widget getter",n)})}async loadCartWidgetsFromServer(){b.info("Fetch cart widgets");let e=await this.getAllContext(),r=_({},e);this.backendAPIService.post("/v1/engagement/cart-widgets",r).then(n=>{b.info(`Cart widgets loaded in \u23F0 ${gr(n.timeTakenMs)}`);let i=n.data.widgets.map(o=>new xt(o));dm(i)}).catch(n=>{b.error("Error sending widget getter",n)})}};var Wl=class t{static INSTANCE;constructor(){this.init()}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}init(){Os.get("conf",{}).then(e=>this.updateGlobalConfig(e))}async processAppConfigurations(e){b.verbose("Received app configuration",e),e.currencyCount=e.currencies?.length;let r=this.updateGlobalConfig(e);Os.set("conf",r).catch(n=>b.error(n)),Pl.processConfiguration(),r.website&&(ey(r.website.commonJS),xf(r.website.commonCSS)),window.CooeeSDK.cartDrawerToggle$.subscribe(async({open:n})=>{b.info("Cart drawer is now",n?"open":"closed"),n&&(Yr.getInstance().renderCachedCartWidgets(),await this.trackViewCartEvent())})}updateGlobalConfig(e){let r=Me.globalRef.config.update(e);return rt.forceUpdate(),b.verbose("App configurations",r),r}async trackViewCartEvent(){let e=await ge.getCurrent().getNormalisedCart(),r={value:e.amount,currency:e.currency},n={items:e.items,amount:r,drawer:!0};me.get(Re).sendSafe(new Ie("View Cart",n))}};var pv="App ID or Shopify shop is not set",_t=class t{static replaySubject=new Ts(1);static INSTANCE;backendAPIService=Pt.getInstance();coreService=Wl.getInstance();userID="";deviceID="";appID="";shopifyShop="";constructor(){}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}async populateAuthDataFromStorage(){await this.getOrSetDeviceIDSafe(),this.userID=await Ye.get("id"),this.updateAPIClient()}isAuthenticated(){return!!this.deviceID}authenticate(e){if(b.verbose("Initialising SDK",e),Ky(navigator.userAgent)){b.info("This seems to be a bot. Disabling SDK");return}this.appID=e.appID,this.shopifyShop=e.shopifyShop,this.checkForNewSessionOnPageLoad().then(async()=>{t.replaySubject.next(!0),t.replaySubject.complete()}).catch(r=>{r?.message?.includes(pv)&&ae(r,"initiate-session",{extra:e}),b.error("Unable to initiate session",r)})}async storeAndPopulateAuthData(e){e&&(e.userID&&(this.userID=e.userID,await Ye.set("id",e.userID)),e.deviceID&&(this.deviceID=e.deviceID,await Ye.set("did",e.deviceID)),this.updateAPIClient())}async checkSessionAndGetContext(){return await this.checkForNewSessionUnsafe(!1),this.getContext()}async checkForNewSessionOnPageLoad(){await this.checkForNewSessionSafe(!0)}async getOrSetDeviceIDSafe(){await yl.request("gen_did",async()=>{let e=await Ye.get("did");e||(e=new Et().toHexString(),await Ye.set("did",e)),this.deviceID=e,b.info("Device ID:",this.deviceID)})}async getContext(){At.set("lastUsedTime",new Date().getTime());let[e,r,n]=await Promise.all([At.get("id",""),Ye.get("sessionNumber",1),At.get("landing",{})]);return Bi({"cooee_session.number":r}),Ga("Visitor Session",{id:e,number:r,landing_page:n}),{sessionID:e,sessionNumber:r,landingPage:n}}async checkForNewSessionSafe(e){await this.checkForNewSessionUnsafe(e)}async checkForNewSessionUnsafe(e){let r=!1;if(await this.isNewSessionRequired()?(b.info("New session to be started"),await this.startNewSession(),e=!0,r=!0):await this.notSynced()&&(r=!0),e){let n=await this.getContext();b.info(`Session ID: ${n.sessionID} & number: ${n.sessionNumber}`),await this.validateSessionFromServer(Z(_({},n),{newSession:r})),await At.set("synced",!0)}}async startNewSession(){b.verbose("Starting new session"),await At.clear(),b.verbose("Cleared SessionStorage before starting new session");let e=new Date,r=new Et().toHexString();b.verbose("New session ID to be used",r);let n=await Ye.get("sessionNumber",0)+1;await Promise.all([Ye.set("sessionNumber",n),At.set("id",r),At.set("lastUsedTime",e.getTime()),At.set("landing",Qs())])}async isNewSessionRequired(){if(!await At.get("id"))return!0;let e=await At.get("lastUsedTime",0);return e?(new Date().getTime()-e)/1e3>1800:!0}async notSynced(){return!await At.get("synced",!1)}async getSessionValidateData(e){if(!this.appID&&!this.shopifyShop)throw new Error(pv);let r=await Qy(),n=hl();return Z(_(_({deviceID:this.deviceID,deviceProps:r,appID:this.appID,shopifyShop:this.shopifyShop},e),n),{sdk:Ys,ad:dl.getAdParams(),occurred:L0(ve.get().jsLoadTime),properties:{}})}async validateSessionFromServer(e){b.verbose("Validating session with server"),await this.populateFirstSeen();let r=await this.getSessionValidateData(e);try{let n=await this.backendAPIService.validateSession(r),i=n.data;b.info(`Auth finished in \u23F0 ${gr(n.timeTakenMs)}`),b.verbose("Validate session Response",i),await this.coreService.processAppConfigurations(i.appSettings),await this.storeAndPopulateAuthData(i)}catch(n){throw b.error(n),n}}async populateFirstSeen(){let e=await Ye.get("firstSeen"),r=e?new Date(e):new Date;e||await Ye.set("firstSeen",r.toISOString()),this.backendAPIService.setFirstSeen(r),Ga("Visitor Info",{first_seen:r.toISOString()})}updateAPIClient(){this.userID&&b.info("User ID:",this.userID),Io.trackDeviceID(this.deviceID),this.backendAPIService.setDeviceId(this.deviceID),Ga("Visitor Info",{device_id:this.deviceID,user_id:this.userID}),Ph({id:this.deviceID})}};function L0(t){return(new Date().getTime()-t.getTime())/1e3>1800?new Date:t}var Pt=class t{static INSTANCE;deviceID="";firstSeen="";constructor(){}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}async validateSession(e){return this.post("/v1/event/validate-session",e)}updateProfileSafe(e){jr(_t.replaySubject).then(()=>this.updateProfile(e??{}))}updateProfile(e){this.put("/v1/user/update",e).then(async r=>{b.verbose("Updated user profile"),await _t.getInstance().storeAndPopulateAuthData(r.data)}).catch(r=>{b.error("Error saving user profile",r)})}generateDiscount(e){return this.post("/v1/event/generate-discount",e)}updateDevicePropsSafe(e){jr(_t.replaySubject).then(()=>this.updateDeviceProps({props:e}))}updateDeviceProps(e){this.put("/v1/device/update",e).then(()=>{b.verbose("Updated device properties")}).catch(async r=>{b.error("Error saving device property",r)})}setDeviceId(e){this.deviceID=e??""}setFirstSeen(e){this.firstSeen=e?.toUTCString()??""}get(e){return this.requestBackend("GET",e)}post(e,r){return this.requestBackend("POST",e,r)}put(e,r){return this.requestBackend("PUT",e,r)}async requestBackend(e,r,n){if(!di.isECommerceApp()&&!di.getFlags().allowEvents)return b.log(`Rejecting ${e} ${r} as this is not e-commerce app`),Promise.reject();r.startsWith("http")||(r=Gt.apiURL+r);let i=this.getDefaultHeaders(),o="keepalive"in new Request(""),s=n?JSON.stringify(n):void 0;if(n&&!o&&s?.includes("CE App Background"))try{return this.performXMLHttpRequest(r,i,n)}catch(c){throw ae(c,"http-request",{extra:{body:s}}),c}let a={method:e,headers:i,keepalive:!0};return n&&(a.body=s),en(r,a)}performXMLHttpRequest(e,r,n){return new Promise((i,o)=>{let s=new XMLHttpRequest;s.open("POST",e,!0),r.forEach((a,c)=>{s.setRequestHeader(c,a)}),s.onreadystatechange=()=>{if(s.readyState===XMLHttpRequest.DONE)if(s.status>=200&&s.status<300)try{if(s.getResponseHeader("Content-Type")?.includes("application/json")){let c=JSON.parse(s.responseText);i({data:c,headers:r,request:s,status:s.status,statusText:s.statusText})}else o(new Error("Content-Type of response header is not json"))}catch(a){o(a)}else o(new Error(`Received status - ${s.status}(${s.statusText})`))},s.onerror=()=>{o(new Error("Network error occurred during the request."))},s.send(JSON.stringify(n))})}getDefaultHeaders(){let e=new Headers;return e.set("content-type","application/json"),e.set("cooee-sdk",Ys),e.set("cooee-sdk-code",xm.toString()),e.set("cooee-sdk-version",Xr),e.set("cooee-first-seen",this.firstSeen),e.set("cooee-shop-name",cc()??""),this.deviceID&&e.append("cooee-device-id",this.deviceID),Gt.debug&&e.set("cooee-sdk-debug",String(1)),e}};var mn=class{constructor(e){this.triggerContext=e}backendAPIService=Pt.getInstance();eventAPIService=Re.getInstance();async execute(e){let r=ve.get().getCurrentItem(),n=e.clickAction;if(!n)return;let i=e.item,o=this.triggerContext,s=new Bn,a=o.triggerData.redirectBehaviour,c=!!o.triggerData.discount?.type&&!!n?.applyDiscount,p={selectedVariants:o.triggerData.nonMutableItems.map(N=>({itemMID:N.mID,mID:N.selectedOrFirstVariant.value.mID,variantID:N.selectedOrFirstVariant.value.mID})),eID:o.triggerData.engagementID,cID:o.triggerData.contentID},d="",f=[],E=[];if(i?E=[i.toEmbed()]:e.embeddedItem&&(E=[e.embeddedItem]),n.at===we.ADD_BUNDLE){let N=o.selectedItems;if(E=e.embeddedItems??N.map(k=>k.toEmbed()),o.shouldGiveFBTDiscount||e.embeddedItems?.length){let k;e.embeddedItems?k=e.embeddedItems.map(P=>({itemMID:P.mID,mID:P.vID,variantID:P.vID,quantity:P.quantity})):k=N.map(P=>({itemMID:P.mID,mID:P.selectedOrFirstVariant.value.mID,variantID:P.selectedOrFirstVariant.value.mID}));let G=o.triggerData.bundleFrom;o.triggerData.isBundleOnCartDrawer()&&G&&(k.push({itemMID:G.mID,mID:G.selectedOrFirstVariant.value.mID,isPrimary:!0}),E.unshift(G.toEmbed())),p.selectedVariants=k,o.triggerData.isBundleOnPDP()&&p.selectedVariants.forEach(P=>{P.mID===r.vID&&(P.isPrimary=!0)})}else p=void 0;f=e.embeddedItems??N}else if(n.at===we.INITIATE_CHECKOUT){let N=await ge.getCurrent().getNormalisedCart();E=N.items,p.selectedVariants=N.items.map(k=>({itemMID:k.mID,mID:k.vID}))}else if(n.at===we.ADD_TO_CART)f=i?[i]:[e.embeddedItem];else if(n.at===we.QUICK_VIEW){window.cooeeShowQuickItem(this.triggerContext,i),this.sendTriggerClicked(E,{from:"button"},e.video);return}else if(n.at===we.GO_TO_PRODUCT)d=i?Gi("/products/"+i.slug):e.embeddedItem?.link;else if(n.at===we.GO_TO_URL){let N=ki(n.gu?.u);N&&(d=N.href)}else if(n.at===we.UPGRADE_TO_SUBSCRIPTION){let N=await s.upgradeToSubscription(i,o.triggerData);this.triggerContext.triggerData.skipSubscribedItems&&this.triggerContext.renderer.destroy(),rt.get().refreshUI(N)}else if(n.at===we.GO_TO_COLLECTION){let N=this.triggerContext.triggerData.collections?.[0];N&&(d="collections/"+N.handle)}if(this.sendTriggerClicked(E,{from:"button"},e.video),b.verbose({redirectPath:d,redirectBehaviour:a,hasDiscount:c}),!c&&d){location.href=d;return}let y,T=!1;try{y=await this.getOrGenerateDiscountCode(p),b.verbose("Discount code (if any) to apply",y)}catch(N){if(!this.triggerContext.triggerData.isBYOB()){fv.default.error("Unable to get a discount code",N);return}}if(y&&n.at===we.COPY_COUPON_CODE)await s.copyDiscountCode(y);else if(n.at===we.BUY_NOW){let N=await s.createNewCart(r,y,o.triggerData);N&&(location.href=N);return}try{y&&await zr.applyWithStorefront([y])}catch(N){b.error(N),T=!0}let D;if(f?.length&&(D=await s.addToCart(f,o.triggerData)),T&&y){zr.navigate(y,a,d);return}if(d){location.href=d;return}zr.navigateWithoutDiscount(a,D)}sendTriggerClicked(e,r,n){let i=new Ie("CE Trigger Clicked",r,this.triggerContext.triggerData);i.items=e,i.setVideos(n),this.eventAPIService.sendSilently(i)}async getOrGenerateDiscountCode(e){let r=this.triggerContext.triggerData.discount;if(!r?.type)return;let n="";if(r.type===er.STATIC){if(!r.code)throw Oh("No discount code found","warning",{triggerContext:this.triggerContext}),new Error("No discount code found");return r.code}if(e){if(n=await this.generateDiscount(e),!n)throw b.error("No discount code found",e),new Error("Discount code not found or generated");return n}}async generateDiscount(e){try{return(await this.backendAPIService.generateDiscount(e)).data.code}catch(r){throw br("Failed to generate a discount code"),ae(r,"backend-generate-discount",{triggerContext:this.triggerContext}),r}}};var jl=class{eventAPIService;modifications=[];constructor(){this.eventAPIService=me.get(Hn)}execute(e){for(let r of e){if(!r.experimentConfig)continue;this.executeExperiment(r)&&this.trackExperimentRan(r)}if(document.querySelector("#lc-hide-body")?.remove(),!document.body){xa("No body element found","error");return}this.setupMutationObserver()}executeExperiment(e){let r=e.experimentConfig?.modifications;return r?.length?r.some(n=>{if(!n.cssSelector)return b.verbose("No CSS Selector available",e?.toString()),!1;this.modifications.push(n);let i=Array.from(document.querySelectorAll(n.cssSelector));return i?.length?(this.executeSingleModification(n,i),!0):!1}):(b.log("Nothing to experiment",e.toString()),!0)}executeSingleModification(e,r){if(r?.length)for(let n of r)Object.assign(n.style,e.style),e.type==="TEXT"&&e.text?n.innerHTML=e.text:e.type==="IMAGE"&&this.updateImage(e,n)}trackExperimentRan(e){if(e.id==="preview"){b.warn("Skipping experiment attribution as its preview",e.toString());return}this.eventAPIService.trackExperiment({name:"CE Experiment Start",experiment:new Dn(e)}).catch(r=>{b.error("Fail to track experiment",r)})}setupMutationObserver(){new MutationObserver(r=>{r.forEach(n=>{n.addedNodes.forEach(i=>{i instanceof HTMLElement&&this.modifications.forEach(o=>{i.matches&&i.matches(o.cssSelector)?(b.verbose("Re-applying experiment",o.toString()),this.executeSingleModification(o,[i])):i.querySelectorAll&&(b.verbose("Re-applying experiment",o.toString()),this.executeSingleModification(o,Array.from(i.querySelectorAll(o.cssSelector))))})})})}).observe(document.body,{childList:!0,subtree:!0})}updateImage(e,r){let n=e.image?.lg?.src,i=e.image?.sm?.src;!n&&!i||(r instanceof HTMLPictureElement?this.updatePictureElement({desktop:n,mobile:i},r):this.updateImageElement({desktop:n,mobile:i},r))}updateImageElement(e,r){Gr()&&e.mobile?(r.setAttribute("src",e.mobile),r.removeAttribute("srcset")):e.desktop&&(r.setAttribute("src",e.desktop),r.removeAttribute("srcset"))}updatePictureElement(e,r){if(r.innerHTML="",e.mobile){let i=document.createElement("source");i.srcset=e.mobile,i.media="(max-width: 767px)",r.append(i)}if(e.desktop){let i=document.createElement("source");i.srcset=e.desktop,i.media="(min-width: 768px)",r.append(i)}let n=document.createElement("img");n.src=e.desktop??e.mobile??"",r.append(n)}};var Hn=class t extends Un{static INSTANCE;constructor(){super()}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}fetchExperimentsSilently(){this.fetchExperimentsSafe().catch(e=>ae(e,"fetch-experiments"))}async trackExperiment(e){let r=await this.getAllContext(),n=_(_({},e),r);await this.backendAPIService.post("/v1/event/experiment",n)}async fetchExperimentsSafe(){if(!this.runtimeData.activeExperiments)return;_t.getInstance().isAuthenticated()?await this.fetchExperiments():(await jr(_t.replaySubject),await this.fetchExperiments())}async fetchExperiments(){b.info("Fetch experiments after \u23F0",ve.get().getSDKLoadTimeDiff()+" of SDK load");let e=await this.getAllContext(),r=_({},e);this.backendAPIService.post("/v1/engagement/experiments",r).then(async n=>{b.info(`Experiments fetched in \u23F0 ${gr(n.timeTakenMs)}`);let i=n.data.experiments.map(o=>new xt(o));new jl().execute(i)}).catch(n=>{b.error("Error sending experiment getter",n)})}};var Gl=class{runtimeData=ve.get();widgetAPIService=me.get(Yr);experimentAPIService=me.get(Hn);meddle(){let e=Me.globalRef;e.account=e.account??[],e.profile=e.profile??[],e.events=e.events??[],e.page=e.page??[],this.meddlePage(),this.meddleAccount(),this.meddleEvents(),this.meddleProfile(),this.exposeMethods()}exposeMethods(){let e=Me.globalRef;e.loadWidgets=e.loadCartWidgets=e.loadPageWidgets=()=>{this.widgetAPIService.loadWidgetsSafe()},e.loadExperiments=()=>{this.experimentAPIService.fetchExperimentsSilently()},e.testCartUpdate=this.testCartUpdate.bind(this),e.previewWidget=Me.previewWidget.bind(Me),e.previewPopup=Me.previewPopup.bind(Me),e.executeCTA=(r,n)=>{new mn(r).execute(n)},e.sendEvent=r=>{Re.getInstance().sendSafe(r)}}overwritePush(e,r){Lr(e,"push",r)}meddleAccount(){this.overwritePush(Me.globalRef.account,(...e)=>{this.processAccount(e[0])}),Me.globalRef.account.forEach(this.processAccount.bind(this))}meddleEvents(){this.overwritePush(Me.globalRef.events,(...e)=>{this.processEvent(e[0])}),Me.globalRef.events.forEach(this.processEvent.bind(this))}meddleProfile(){this.overwritePush(Me.globalRef.profile,(...e)=>{this.processProfile(e[0])}),Me.globalRef.profile.forEach(this.processProfile.bind(this))}processAccount(e){e&&(e.appID&&Me.authenticate(e),e.flags&&di.setFlags(e.flags))}processEvent(e){e&&(Am.includes(e[0])?Me.sendEvent(e[0],e[1],_({occurred:this.runtimeData.jsLoadTime},e[2])):Me.sendEvent(e[0],e[1],e[2]))}processProfile(e){e&&Me.updateProfile(e)}processPageName(e){e&&Me.setPageName(e)}meddlePage(){this.overwritePush(Me.globalRef.page,(...e)=>{this.processPage(e[0])}),Me.globalRef.page.forEach(this.processPage.bind(this))}processPage(e){e.currentItem&&this.runtimeData.setCurrentItem(e.currentItem),e.currency&&(this.runtimeData.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&&Me.setPageName(e.pageName),e.activeExperiment&&(this.runtimeData.activeExperiments=e.activeExperiment),e.cart&&ge.getCurrent().update(e.cart),e.customContext&&(this.runtimeData.customContext=_(_({},this.runtimeData.customContext),e.customContext))}async testCartUpdate(){if(this.runtimeData.pageName!=="product"){window.alert("This feature is only available on a product page");return}let e=Ey();if(e||(e=this.runtimeData.getCurrentItem()?.vID),!e){window.alert("Could not find a variant to test. Please try a different product page");return}let r=new xt({id:"preview",shortID:"1",redirectBehaviour:tr.CART_DRAWER});await new mn(new Cr(new Date,r)).execute({clickAction:{at:we.ADD_TO_CART},embeddedItem:new Rt({vID:e})})}};var xo=class{static SESSION_STORAGE=window.sessionStorage;static SESSION_STORAGE_KEY_PREFIX="cooee".concat("-");static getString(e,r){return this.getItem(e)||r}static setString(e,r){this.setItem(e,r)}static remove(e){this.removeItem(e)}static getItem(e){return this.SESSION_STORAGE.getItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e))}static setItem(e,r){this.SESSION_STORAGE.setItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e),r)}static removeItem(e){this.SESSION_STORAGE.removeItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e))}};var Co=class t{static INSTANCE;static DEBOUNCE_TIME=1e3;static THRESHOLD=10;lastPercent=0;_lastScreenOrScroll=new Date;constructor(){}set lastScreenOrScroll(e){this._lastScreenOrScroll=e}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}resetScrollID(e){xo.remove("sleid"),this.lastScreenOrScroll=e??new Date}listen(){if(window.scrollY){let e=this.getPercentScrolledY();this.shouldSendScroll(e)&&this.sendScroll(e)}Ui(()=>{this.observeWindowScroll()})}observeWindowScroll(){mi(window,"scroll").pipe(Tr(t.DEBOUNCE_TIME),fn(()=>{let e=this.getPercentScrolledY();if(e>100){b.warn("Received scroll percent is more than 100",e);return}if(this.shouldSendScroll(e))return e})).subscribe(e=>{this.sendScroll(e)})}shouldSendScroll(e){return Math.abs(this.lastPercent-e)>=t.THRESHOLD||this.lastPercent!==e&&e===100}sendScroll(e){if(e==null)return;let r={percent:e,timeMS:new Date().getTime()-this._lastScreenOrScroll.getTime()};this.lastPercent=e;let n=xo.getString("sleid",""),i=new Ie("CE Scroll",r,null,n);me.get(Re).sendSafe(i),xo.setString("sleid",i.id.toHexString()),this._lastScreenOrScroll=new Date(i.occurred)}getPercentScrolledY(){let e=window.document.body.scrollHeight,r=window.innerHeight;return Math.ceil((window.scrollY+r)/e*100)}};var zl=class t{static ACTIVE_DURATION="aDur";static INACTIVE_DURATION="iaDur";runtimeData=ve.get();listen(){document.onvisibilitychange=()=>{document.visibilityState==="visible"?this.onVisible():document.visibilityState==="hidden"&&this.onHidden()}}async onVisible(){}async onHidden(){let e=await this.runtimeData.setInactive();if(e===0){b.info("Not sending background event as user was inactive on website");return}b.info(`Sending background event with ${e} seconds`);let r={};r[t.ACTIVE_DURATION]=e,me.get(Re).sendSafe(new Ie("CE App Background",r))}};var ql=class{listen(){return this.overwriteFetchMethod(),this}overwriteFetchMethod(){let e=this,r=window.fetch;window.fetch=async function(n,i){try{await e.modifyRequest(n,i)}catch(o){ae(o,"modify-graphql-request",{extra:{body:JSON.stringify(i?.body)}})}return r(n,i)},b.verbose("Securely overwritten window.fetch method for graphql query")}async modifyRequest(e,r){let n=typeof e=="string"?e:e instanceof Request?e.url:"";if(!(n.includes("graphql.json")&&r?.method==="POST")||!r.body)return;let i;if(typeof r.body=="string")try{i=JSON.parse(r.body)}catch{return}else i=r.body;i?.variables?.input&&(b.verbose("Intercepted fetch request of:",n),i?.query.includes("cartCreate")&&(r.body=await this.updatedBody(i),this.sendBuyNowEvent()))}async updatedBody(e){let r=e.variables.input.attributes??[],n=await Ya("Buy Now");return e.variables.input.attributes=[...r,...n],JSON.stringify(e)}sendBuyNowEvent(){let e=ve.get().getCurrentItem();if(!e)return;let r=new Ie("Buy Now Clicked",{items:[e]});me.get(Re).sendSafe(r)}};var Ro=class{constructor(e,r){this.selectors=e;this.eventName=r;this.selectorString=e.join(",")}static INSTANCE;elements;selectorString;clickListenerCallback=e=>{let r=e.currentTarget,n=new Ie(this.eventName,{class:r.className||void 0,tagName:r.tagName||void 0,id:r.id||void 0});me.get(Re).sendSafe(n),this.removeClickListener(this.clickListenerCallback)};listenSilently(){this.listen().catch(e=>b.error(e))}async listen(){this.elements=await Bp(this.selectorString),this.elements.forEach(e=>{e.addEventListener("click",this.clickListenerCallback)})}removeClickListener(e){this.elements?.forEach(r=>{r.removeEventListener("click",e)})}};var Yl=class t extends Ro{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(t.selectors,"Item Thumbnail Clicked")}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}};var Kl=class t extends Ro{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(t.selectors,"Review Clicked")}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}};var Xl=class{selector=[".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(",");listen(){Ui(()=>{b.verbose("Execution order:","document ready"),this.useLocationHash()})}useLocationHash(){let e=window.location.hash?.substring(1);if(e)if(e.includes("initiate-checkout")){document.dispatchEvent(new Event("letscooee:outbound:third-party-initiate-checkout"));let r=document.querySelector(this.selector);if(!r){b.verbose("No clickable cart checkout button found");return}b.verbose("Clickable cart checkout button found",r),r.click()}else e.includes("open-cart-drawer")&&rt.get().open()}};var zs=class{static attachCheckoutListener(){window.gokwikSdk&&window.gokwikSdk.on("checkout_initiated",async()=>{let e=await ge.getCurrent().getNormalisedCart(),r={via:"GoKwik",items:e.items,cartToken:e.token,amount:{value:e.amount,currency:e.currency}},n=new Ie("Checkout Started",r);me.get(Re).sendSafe(n)})}};var Jl=class{static watch(){let e=ou();(e==="1"||e==="on")&&Pt.getInstance().updateDevicePropsSafe({debugTill:this.getDebugMillis()}),e==="on"?sessionStorage.cooeeDebug="1":e==="off"&&sessionStorage.removeItem("cooeeDebug"),sessionStorage.cooeeDebug&&this.renderDebugBar()}static renderDebugBar(){let e=document.createElement("cooee-debugger");e.logs=this.logs,Ui(()=>{document.body.appendChild(e)})}static getDebugMillis(){return new Date().getTime()+360*60*1e3}};var Me=class{static globalRef;static authenticated;static async initForMerchantWebsiteOnly(e){if(window.cooeeSDKPreview)return;let r=(window.CooeeSDK?.pageLoadTime??e).getTime()-e.getTime();b.info(`Initialising SDK after ${gr(r)} of page load`),this.initGlobalReference(e),await me.get(_t).populateAuthDataFromStorage(),this.autoAuthenticate(),new Gl().meddle(),km(),me.get(Yr).loadWidgetsSafe(!0),me.get(Hn).fetchExperimentsSilently(),new zl().listen(),new Ol().listen(),new ql().listen(),new Xl().listen(),me.get(Co).listen(),me.get(Kl).listenSilently(),me.get(Yl).listenSilently(),this.attachGoKwikListeners(),this.setupPreviewListeners(),Jl.watch()}static async initForAll(){this.injectWidgetAssets()}static initGlobalReference(e){window.CooeeSDK||Lr(window,"CooeeSDK",{}),this.globalRef=window.CooeeSDK,Lr(this.globalRef,"config",new Xe),Lr(this.globalRef,"runtimeData",new ve(e)),Lr(this.globalRef,"uaParser",new Sr,!0),Lr(this.globalRef,"cart",ge.getCurrent()),Lr(this.globalRef,"cartChange$",iv()),Lr(this.globalRef,"cartDrawerToggle$",rt.cartDrawerToggle$.asObservable()),b.verbose("Global reference initialised"),new Bc(()=>{this.globalRef.uaParser=new Sr})}static injectWidgetAssets(){Qg(Gt.widgetURL,"cooee-widget-sdk"),Tf()}static autoAuthenticate(){let e=cc();e&&this.authenticate({shopifyShop:e})}static authenticate(e){if(this.authenticated)return;b.info("Begin auth after \u23F0",ve.get().getSDKLoadTimeDiff(),"of SDK load");let r=e.appID?.trim(),n=e.shopifyShop;if((Lp(r)||r.length!==24)&&Lp(n)){b.warn("Cooee App ID or Shop name is not configured");return}this.authenticated=!0,me.get(_t).authenticate(e)}static sendEvent(e,r,n){let i=new Ie(e,r,n?.triggerData);n?.occurred&&(i.occurred=n.occurred),me.get(Re).sendSafe(i)}static updateProfile(e){for(let r in e)if(r.toLowerCase().startsWith("ce "))throw new Error("User property name cannot start with 'CE '");me.get(Pt).updateProfileSafe(e)}static setPageName(e){if(!e)return;let r=ve.get(),n=r.pageName;if(e===n)return;if(r.pageName=e,Cm.some(s=>e.includes(s))){me.get(Co).resetScrollID();return}let i={};n&&(i.ps=n);let o=new Ie("CE Screen View",i);o.occurred=r.jsLoadTime,me.get(Re).sendSafe(o),me.get(Co).resetScrollID(o.occurred)}static previewPopup(e,r){new kn(r).render(e)}static previewWidget(e){new bt(new xt(e)).renderSilently()}static setupPreviewListeners(){if(window.opener){try{window.opener.postMessage({action:"COOEE_READY_FOR_PREVIEW"},"*")}catch(e){b.error(e)}window.addEventListener("message",e=>{if(b.verbose("Received event",e),!e.origin.includes("letscooee.com")&&!e.origin.includes("localhost"))return;let r=e.data;typeof r=="object"&&(r.action==="POPUP_PREVIEW"?(this.previewPopup(r.engagementTrigger),e.source?.postMessage({action:"PREVIEW_SUCCESSFUL"},e.origin)):r.action==="WIDGET_PREVIEW"&&(this.previewWidget(r.engagementTrigger),e.source?.postMessage({action:"PREVIEW_SUCCESSFUL"},e.origin)))})}}static attachGoKwikListeners(){let e=ve.get();window.addEventListener("kp-modal:opened",()=>{e.isGoKwikPopupOpen=!0}),window.addEventListener("user-loggedin",r=>{let{token:n}=r.detail;n&&this.updateProfile({goKwikToken:n})}),window.gokwikSdk?zs.attachCheckoutListener():window.addEventListener("gokwikLoaded",zs.attachCheckoutListener)}};var M0=new Date;Nm();Om();b.verbose("Execution order:","top");window.cooeeShopifyScriptLoaded||(window.cooeeShopifyScriptLoaded=!0,(async()=>(b.verbose("Execution order:","IIFE start"),await Me.initForMerchantWebsiteOnly(M0),await Me.initForAll(),b.verbose("Execution order:","IIFE end")))());b.verbose("Execution order:","bottom");
@@ -1 +1 @@
1
- import{a as C,b}from"./chunk-V7PYPZW6.js";import{e as g,f as h,i as u,l as f}from"./chunk-XJGHCCKJ.js";import{Ba as l,Qa as c,X as m,na as n,oa as i,pa as r,v as s}from"./chunk-I62LO6BZ.js";import"./chunk-V7UGKYBN.js";var _=class d{dialogRef=s(u);eventData=s(h);triggerData=s(g)().triggerData;onShareAndClose(p,o){p.stopPropagation();let{url:t,text:a}=b(this.triggerData,this.eventData.video,o!=="Clipboard");switch(o){case"Whatsapp":window.open(`https://wa.me/?text=${a}%20${t}`,"_blank","noopener,noreferrer");break;case"X(Twitter)":window.open(`https://x.com/intent/post?text=${a}&url=${t}`,"_blank","noopener,noreferrer");break;case"Clipboard":navigator.clipboard.writeText(t).catch(()=>{let e=document.createElement("textarea");e.value=t,document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)});break;default:}o&&C(this.triggerData,this.eventData.video,this.eventData.index,o),this.dialogRef.close()}static \u0275fac=function(o){return new(o||d)};static \u0275cmp=m({type:d,selectors:[["cooee-share-dialog"]],decls:19,vars:0,consts:[[1,"share-dialog"],[1,"share-dialog-header"],["type","button","aria-label","Close",1,"close-button",3,"click"],["name","close","aria-hidden","true"],[1,"share-options"],["type","button","aria-label","Share on WhatsApp",1,"share-option",3,"click"],["name","whatsapp","aria-hidden","true"],["type","button","aria-label","Share on X",1,"share-option",3,"click"],["name","x-twitter","aria-hidden","true"],["type","button","aria-label","Copy link",1,"share-option",3,"click"],["name","copy","aria-hidden","true"]],template:function(o,t){o&1&&(n(0,"div",0)(1,"div",1)(2,"h3"),c(3,"Share"),i(),n(4,"button",2),l("click",function(e){return t.onShareAndClose(e)}),r(5,"cooee-icon",3),i()(),n(6,"div",4)(7,"button",5),l("click",function(e){return t.onShareAndClose(e,"Whatsapp")}),r(8,"cooee-icon",6),n(9,"span"),c(10,"Whatsapp"),i()(),n(11,"button",7),l("click",function(e){return t.onShareAndClose(e,"X(Twitter)")}),r(12,"cooee-icon",8),n(13,"span"),c(14,"X"),i()(),n(15,"button",9),l("click",function(e){return t.onShareAndClose(e,"Clipboard")}),r(16,"cooee-icon",10),n(17,"span"),c(18,"Copy link"),i()()()())},dependencies:[f],styles:["@keyframes _ngcontent-%COMP%_slideInScale{0%{opacity:0;transform:scale(.9) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.share-dialog[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:20px;min-width:280px;box-shadow:0 8px 32px #00000026;color:#333;animation:_ngcontent-%COMP%_slideInScale .25s ease-out}.share-dialog-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.share-dialog-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-family:var(--lc-heading-family),serif;margin:0;font-size:18px;font-weight:600}.share-options[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px;font-family:var(--lc-text-family),serif}.share-option[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#0002;border:1px solid #e9ecef;border-radius:8px;color:#333;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s ease}.share-option[_ngcontent-%COMP%]:hover{background:#0004;border-color:#dee2e6;transform:translateY(-1px)}.share-option[_ngcontent-%COMP%]:active{transform:translateY(0)}.share-option[_ngcontent-%COMP%] cooee-icon[_ngcontent-%COMP%]{width:24px;height:24px}.share-option[_ngcontent-%COMP%] cooee-icon[name=whatsapp][_ngcontent-%COMP%]{color:#25d366}.share-option[_ngcontent-%COMP%] cooee-icon[name=x-twitter][_ngcontent-%COMP%], .share-option[_ngcontent-%COMP%] cooee-icon[name=copy][_ngcontent-%COMP%]{color:#000}.share-option[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex:1;text-align:left}button.close-button[_ngcontent-%COMP%]{background-color:transparent;border:none}button.close-button[_ngcontent-%COMP%] cooee-icon[name=close][_ngcontent-%COMP%]{border-radius:100%;color:#000}"]})};export{_ as ShareDialogComponent};
1
+ import{a as C,b}from"./chunk-OUJ4FG3T.js";import{e as g,f as h,i as u,l as f}from"./chunk-PUMES7ZS.js";import{Ba as l,Qa as c,X as m,na as n,oa as i,pa as r,v as s}from"./chunk-I62LO6BZ.js";import"./chunk-V7UGKYBN.js";var _=class d{dialogRef=s(u);eventData=s(h);triggerData=s(g)().triggerData;onShareAndClose(p,o){p.stopPropagation();let{url:t,text:a}=b(this.triggerData,this.eventData.video,o!=="Clipboard");switch(o){case"Whatsapp":window.open(`https://wa.me/?text=${a}%20${t}`,"_blank","noopener,noreferrer");break;case"X(Twitter)":window.open(`https://x.com/intent/post?text=${a}&url=${t}`,"_blank","noopener,noreferrer");break;case"Clipboard":navigator.clipboard.writeText(t).catch(()=>{let e=document.createElement("textarea");e.value=t,document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)});break;default:}o&&C(this.triggerData,this.eventData.video,this.eventData.index,o),this.dialogRef.close()}static \u0275fac=function(o){return new(o||d)};static \u0275cmp=m({type:d,selectors:[["cooee-share-dialog"]],decls:19,vars:0,consts:[[1,"share-dialog"],[1,"share-dialog-header"],["type","button","aria-label","Close",1,"close-button",3,"click"],["name","close","aria-hidden","true"],[1,"share-options"],["type","button","aria-label","Share on WhatsApp",1,"share-option",3,"click"],["name","whatsapp","aria-hidden","true"],["type","button","aria-label","Share on X",1,"share-option",3,"click"],["name","x-twitter","aria-hidden","true"],["type","button","aria-label","Copy link",1,"share-option",3,"click"],["name","copy","aria-hidden","true"]],template:function(o,t){o&1&&(n(0,"div",0)(1,"div",1)(2,"h3"),c(3,"Share"),i(),n(4,"button",2),l("click",function(e){return t.onShareAndClose(e)}),r(5,"cooee-icon",3),i()(),n(6,"div",4)(7,"button",5),l("click",function(e){return t.onShareAndClose(e,"Whatsapp")}),r(8,"cooee-icon",6),n(9,"span"),c(10,"Whatsapp"),i()(),n(11,"button",7),l("click",function(e){return t.onShareAndClose(e,"X(Twitter)")}),r(12,"cooee-icon",8),n(13,"span"),c(14,"X"),i()(),n(15,"button",9),l("click",function(e){return t.onShareAndClose(e,"Clipboard")}),r(16,"cooee-icon",10),n(17,"span"),c(18,"Copy link"),i()()()())},dependencies:[f],styles:["@keyframes _ngcontent-%COMP%_slideInScale{0%{opacity:0;transform:scale(.9) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.share-dialog[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:20px;min-width:280px;box-shadow:0 8px 32px #00000026;color:#333;animation:_ngcontent-%COMP%_slideInScale .25s ease-out}.share-dialog-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.share-dialog-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-family:var(--lc-heading-family),serif;margin:0;font-size:18px;font-weight:600}.share-options[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px;font-family:var(--lc-text-family),serif}.share-option[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#0002;border:1px solid #e9ecef;border-radius:8px;color:#333;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s ease}.share-option[_ngcontent-%COMP%]:hover{background:#0004;border-color:#dee2e6;transform:translateY(-1px)}.share-option[_ngcontent-%COMP%]:active{transform:translateY(0)}.share-option[_ngcontent-%COMP%] cooee-icon[_ngcontent-%COMP%]{width:24px;height:24px}.share-option[_ngcontent-%COMP%] cooee-icon[name=whatsapp][_ngcontent-%COMP%]{color:#25d366}.share-option[_ngcontent-%COMP%] cooee-icon[name=x-twitter][_ngcontent-%COMP%], .share-option[_ngcontent-%COMP%] cooee-icon[name=copy][_ngcontent-%COMP%]{color:#000}.share-option[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex:1;text-align:left}button.close-button[_ngcontent-%COMP%]{background-color:transparent;border:none}button.close-button[_ngcontent-%COMP%] cooee-icon[name=close][_ngcontent-%COMP%]{border-radius:100%;color:#000}"]})};export{_ as ShareDialogComponent};