@letscooee/web-sdk 13.0.4 → 13.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.min.js CHANGED
@@ -1,4 +1,4 @@
1
- import{a as Ws,b as js,c as um,d as pm,e as fm,f as mm,g as dm,h as dr,i as Gs,j as w,k as hm,l as gm,m as ym,n as vm,o as zr}from"./chunk-FYQWOZT2.js";import{a as E,b as Z,c as Ai,d as lm,e as Vl,f as qr,g as So}from"./chunk-V7UGKYBN.js";var Wl=Vl(qs=>{"use strict";Object.defineProperty(qs,"__esModule",{value:!0});qs.URLBuilder=void 0;var yE=(function(){function t(e){try{this.base=new URL(e),this.params=new URLSearchParams(this.base.search.slice(1))}catch(r){console.error("Un-parsable URL",r)}}return t.prototype.appendQueryParam=function(e,r){this.params.append(e,r?r.toString():"")},t.prototype.clearQueryParams=function(){return this.params=new URLSearchParams,this},t.prototype.deleteQueryParam=function(e){this.params.delete(e)},t.prototype.getBase=function(){return this.base},t.prototype.getPath=function(){return this.base.pathname},t.prototype.getHostname=function(){return this.base.hostname},t.prototype.getParams=function(){return this.params},t.prototype.getQueryParam=function(e){if(!this.params)return"";var r=this.params.get(e);return!r||r==="undefined"||r==="null"?void 0:r},t.prototype.getQueryString=function(){return this.params.toString()},t.prototype.setPath=function(e){return this.base.pathname=e,this},t.prototype.setQueryParam=function(e,r){return this.params.set(e,r?r.toString():""),this},t.prototype.setQueryString=function(e){if(e)return e[0]==="?"&&(e=e.slice(1)),this.params=new URLSearchParams(e),this},t.prototype.toString=function(){var e=this.params.toString();return e===""?this.base.search="":this.base.search="?"+e,this.base.toString()},t})();qs.URLBuilder=yE});var xm=Vl((Im,Jl)=>{"use strict";(function(t){if(typeof Im=="object"&&typeof Jl<"u")Jl.exports=t();else if(typeof define=="function"&&define.amd)define([],t);else{var e;typeof window<"u"?e=window:typeof global<"u"?e=global:typeof self<"u"?e=self:e=this,e.localforage=t()}})(function(){var t,e,r;return(function n(o,i,s){function a(m,d){if(!i[m]){if(!o[m]){var _=typeof Ai=="function"&&Ai;if(!d&&_)return _(m,!0);if(l)return l(m,!0);var y=new Error("Cannot find module '"+m+"'");throw y.code="MODULE_NOT_FOUND",y}var C=i[m]={exports:{}};o[m][0].call(C.exports,function(N){var A=o[m][1][N];return a(A||N)},C,C.exports,n,o,i,s)}return i[m].exports}for(var l=typeof Ai=="function"&&Ai,p=0;p<s.length;p++)a(s[p]);return a})({1:[function(n,o,i){(function(s){"use strict";var a=s.MutationObserver||s.WebKitMutationObserver,l;if(a){var p=0,m=new a(N),d=s.document.createTextNode("");m.observe(d,{characterData:!0}),l=function(){d.data=p=++p%2}}else if(!s.setImmediate&&typeof s.MessageChannel<"u"){var _=new s.MessageChannel;_.port1.onmessage=N,l=function(){_.port2.postMessage(0)}}else"document"in s&&"onreadystatechange"in s.document.createElement("script")?l=function(){var B=s.document.createElement("script");B.onreadystatechange=function(){N(),B.onreadystatechange=null,B.parentNode.removeChild(B),B=null},s.document.documentElement.appendChild(B)}:l=function(){setTimeout(N,0)};var y,C=[];function N(){y=!0;for(var B,q,P=C.length;P;){for(q=C,C=[],B=-1;++B<P;)q[B]();P=C.length}y=!1}o.exports=A;function A(B){C.push(B)===1&&!y&&l()}}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{}],2:[function(n,o,i){"use strict";var s=n(1);function a(){}var l={},p=["REJECTED"],m=["FULFILLED"],d=["PENDING"];o.exports=_;function _(X){if(typeof X!="function")throw new TypeError("resolver must be a function");this.state=d,this.queue=[],this.outcome=void 0,X!==a&&A(this,X)}_.prototype.catch=function(X){return this.then(null,X)},_.prototype.then=function(X,ce){if(typeof X!="function"&&this.state===m||typeof ce!="function"&&this.state===p)return this;var se=new this.constructor(a);if(this.state!==d){var de=this.state===m?X:ce;C(se,de,this.outcome)}else this.queue.push(new y(se,X,ce));return se};function y(X,ce,se){this.promise=X,typeof ce=="function"&&(this.onFulfilled=ce,this.callFulfilled=this.otherCallFulfilled),typeof se=="function"&&(this.onRejected=se,this.callRejected=this.otherCallRejected)}y.prototype.callFulfilled=function(X){l.resolve(this.promise,X)},y.prototype.otherCallFulfilled=function(X){C(this.promise,this.onFulfilled,X)},y.prototype.callRejected=function(X){l.reject(this.promise,X)},y.prototype.otherCallRejected=function(X){C(this.promise,this.onRejected,X)};function C(X,ce,se){s(function(){var de;try{de=ce(se)}catch(Le){return l.reject(X,Le)}de===X?l.reject(X,new TypeError("Cannot resolve promise with itself")):l.resolve(X,de)})}l.resolve=function(X,ce){var se=B(N,ce);if(se.status==="error")return l.reject(X,se.value);var de=se.value;if(de)A(X,de);else{X.state=m,X.outcome=ce;for(var Le=-1,Se=X.queue.length;++Le<Se;)X.queue[Le].callFulfilled(ce)}return X},l.reject=function(X,ce){X.state=p,X.outcome=ce;for(var se=-1,de=X.queue.length;++se<de;)X.queue[se].callRejected(ce);return X};function N(X){var ce=X&&X.then;if(X&&(typeof X=="object"||typeof X=="function")&&typeof ce=="function")return function(){ce.apply(X,arguments)}}function A(X,ce){var se=!1;function de(Ge){se||(se=!0,l.reject(X,Ge))}function Le(Ge){se||(se=!0,l.resolve(X,Ge))}function Se(){ce(Le,de)}var Re=B(Se);Re.status==="error"&&de(Re.value)}function B(X,ce){var se={};try{se.value=X(ce),se.status="success"}catch(de){se.status="error",se.value=de}return se}_.resolve=q;function q(X){return X instanceof this?X:l.resolve(new this(a),X)}_.reject=P;function P(X){var ce=new this(a);return l.reject(ce,X)}_.all=Q;function Q(X){var ce=this;if(Object.prototype.toString.call(X)!=="[object Array]")return this.reject(new TypeError("must be an array"));var se=X.length,de=!1;if(!se)return this.resolve([]);for(var Le=new Array(se),Se=0,Re=-1,Ge=new this(a);++Re<se;)Je(X[Re],Re);return Ge;function Je(Bt,D){ce.resolve(Bt).then(R,function(V){de||(de=!0,l.reject(Ge,V))});function R(V){Le[D]=V,++Se===se&&!de&&(de=!0,l.resolve(Ge,Le))}}}_.race=Ee;function Ee(X){var ce=this;if(Object.prototype.toString.call(X)!=="[object Array]")return this.reject(new TypeError("must be an array"));var se=X.length,de=!1;if(!se)return this.resolve([]);for(var Le=-1,Se=new this(a);++Le<se;)Re(X[Le]);return Se;function Re(Ge){ce.resolve(Ge).then(function(Je){de||(de=!0,l.resolve(Se,Je))},function(Je){de||(de=!0,l.reject(Se,Je))})}}},{1:1}],3:[function(n,o,i){(function(s){"use strict";typeof s.Promise!="function"&&(s.Promise=n(2))}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{2:2}],4:[function(n,o,i){"use strict";var s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(f){return typeof f}:function(f){return f&&typeof Symbol=="function"&&f.constructor===Symbol&&f!==Symbol.prototype?"symbol":typeof f};function a(f,b){if(!(f instanceof b))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 p=l();function m(){try{if(!p||!p.open)return!1;var f=typeof openDatabase<"u"&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),b=typeof fetch=="function"&&fetch.toString().indexOf("[native code")!==-1;return(!f||b)&&typeof indexedDB<"u"&&typeof IDBKeyRange<"u"}catch{return!1}}function d(f,b){f=f||[],b=b||{};try{return new Blob(f,b)}catch(S){if(S.name!=="TypeError")throw S;for(var g=typeof BlobBuilder<"u"?BlobBuilder:typeof MSBlobBuilder<"u"?MSBlobBuilder:typeof MozBlobBuilder<"u"?MozBlobBuilder:WebKitBlobBuilder,T=new g,I=0;I<f.length;I+=1)T.append(f[I]);return T.getBlob(b.type)}}typeof Promise>"u"&&n(3);var _=Promise;function y(f,b){b&&f.then(function(g){b(null,g)},function(g){b(g)})}function C(f,b,g){typeof b=="function"&&f.then(b),typeof g=="function"&&f.catch(g)}function N(f){return typeof f!="string"&&(console.warn(f+" used as a key, but it is not a string."),f=String(f)),f}function A(){if(arguments.length&&typeof arguments[arguments.length-1]=="function")return arguments[arguments.length-1]}var B="local-forage-detect-blob-support",q=void 0,P={},Q=Object.prototype.toString,Ee="readonly",X="readwrite";function ce(f){for(var b=f.length,g=new ArrayBuffer(b),T=new Uint8Array(g),I=0;I<b;I++)T[I]=f.charCodeAt(I);return g}function se(f){return new _(function(b){var g=f.transaction(B,X),T=d([""]);g.objectStore(B).put(T,"key"),g.onabort=function(I){I.preventDefault(),I.stopPropagation(),b(!1)},g.oncomplete=function(){var I=navigator.userAgent.match(/Chrome\/(\d+)/),S=navigator.userAgent.match(/Edge\//);b(S||!I||parseInt(I[1],10)>=43)}}).catch(function(){return!1})}function de(f){return typeof q=="boolean"?_.resolve(q):se(f).then(function(b){return q=b,q})}function Le(f){var b=P[f.name],g={};g.promise=new _(function(T,I){g.resolve=T,g.reject=I}),b.deferredOperations.push(g),b.dbReady?b.dbReady=b.dbReady.then(function(){return g.promise}):b.dbReady=g.promise}function Se(f){var b=P[f.name],g=b.deferredOperations.pop();if(g)return g.resolve(),g.promise}function Re(f,b){var g=P[f.name],T=g.deferredOperations.pop();if(T)return T.reject(b),T.promise}function Ge(f,b){return new _(function(g,T){if(P[f.name]=P[f.name]||qe(),f.db)if(b)Le(f),f.db.close();else return g(f.db);var I=[f.name];b&&I.push(f.version);var S=p.open.apply(p,I);b&&(S.onupgradeneeded=function(M){var G=S.result;try{G.createObjectStore(f.storeName),M.oldVersion<=1&&G.createObjectStore(B)}catch(z){if(z.name==="ConstraintError")console.warn('The database "'+f.name+'" has been upgraded from version '+M.oldVersion+" to version "+M.newVersion+', but the storage "'+f.storeName+'" already exists.');else throw z}}),S.onerror=function(M){M.preventDefault(),T(S.error)},S.onsuccess=function(){var M=S.result;M.onversionchange=function(G){G.target.close()},g(M),Se(f)}})}function Je(f){return Ge(f,!1)}function Bt(f){return Ge(f,!0)}function D(f,b){if(!f.db)return!0;var g=!f.db.objectStoreNames.contains(f.storeName),T=f.version<f.db.version,I=f.version>f.db.version;if(T&&(f.version!==b&&console.warn('The database "'+f.name+`" can't be downgraded from version `+f.db.version+" to version "+f.version+"."),f.version=f.db.version),I||g){if(g){var S=f.db.version+1;S>f.version&&(f.version=S)}return!0}return!1}function R(f){return new _(function(b,g){var T=new FileReader;T.onerror=g,T.onloadend=function(I){var S=btoa(I.target.result||"");b({__local_forage_encoded_blob:!0,data:S,type:f.type})},T.readAsBinaryString(f)})}function V(f){var b=ce(atob(f.data));return d([b],{type:f.type})}function k(f){return f&&f.__local_forage_encoded_blob}function H(f){var b=this,g=b._initReady().then(function(){var T=P[b._dbInfo.name];if(T&&T.dbReady)return T.dbReady});return C(g,f,f),g}function ne(f){Le(f);for(var b=P[f.name],g=b.forages,T=0;T<g.length;T++){var I=g[T];I._dbInfo.db&&(I._dbInfo.db.close(),I._dbInfo.db=null)}return f.db=null,Je(f).then(function(S){return f.db=S,D(f)?Bt(f):S}).then(function(S){f.db=b.db=S;for(var M=0;M<g.length;M++)g[M]._dbInfo.db=S}).catch(function(S){throw Re(f,S),S})}function he(f,b,g,T){T===void 0&&(T=1);try{var I=f.db.transaction(f.storeName,b);g(null,I)}catch(S){if(T>0&&(!f.db||S.name==="InvalidStateError"||S.name==="NotFoundError"))return _.resolve().then(function(){if(!f.db||S.name==="NotFoundError"&&!f.db.objectStoreNames.contains(f.storeName)&&f.version<=f.db.version)return f.db&&(f.version=f.db.version+1),Bt(f)}).then(function(){return ne(f).then(function(){he(f,b,g,T-1)})}).catch(g);g(S)}}function qe(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function Ze(f){var b=this,g={db:null};if(f)for(var T in f)g[T]=f[T];var I=P[g.name];I||(I=qe(),P[g.name]=I),I.forages.push(b),b._initReady||(b._initReady=b.ready,b.ready=H);var S=[];function M(){return _.resolve()}for(var G=0;G<I.forages.length;G++){var z=I.forages[G];z!==b&&S.push(z._initReady().catch(M))}var Y=I.forages.slice(0);return _.all(S).then(function(){return g.db=I.db,Je(g)}).then(function(J){return g.db=J,D(g,b._defaultConfig.version)?Bt(g):J}).then(function(J){g.db=I.db=J,b._dbInfo=g;for(var te=0;te<Y.length;te++){var ve=Y[te];ve!==b&&(ve._dbInfo.db=g.db,ve._dbInfo.version=g.version)}})}function et(f,b){var g=this;f=N(f);var T=new _(function(I,S){g.ready().then(function(){he(g._dbInfo,Ee,function(M,G){if(M)return S(M);try{var z=G.objectStore(g._dbInfo.storeName),Y=z.get(f);Y.onsuccess=function(){var J=Y.result;J===void 0&&(J=null),k(J)&&(J=V(J)),I(J)},Y.onerror=function(){S(Y.error)}}catch(J){S(J)}})}).catch(S)});return y(T,b),T}function vt(f,b){var g=this,T=new _(function(I,S){g.ready().then(function(){he(g._dbInfo,Ee,function(M,G){if(M)return S(M);try{var z=G.objectStore(g._dbInfo.storeName),Y=z.openCursor(),J=1;Y.onsuccess=function(){var te=Y.result;if(te){var ve=te.value;k(ve)&&(ve=V(ve));var Oe=f(ve,te.key,J++);Oe!==void 0?I(Oe):te.continue()}else I()},Y.onerror=function(){S(Y.error)}}catch(te){S(te)}})}).catch(S)});return y(T,b),T}function Et(f,b,g){var T=this;f=N(f);var I=new _(function(S,M){var G;T.ready().then(function(){return G=T._dbInfo,Q.call(b)==="[object Blob]"?de(G.db).then(function(z){return z?b:R(b)}):b}).then(function(z){he(T._dbInfo,X,function(Y,J){if(Y)return M(Y);try{var te=J.objectStore(T._dbInfo.storeName);z===null&&(z=void 0);var ve=te.put(z,f);J.oncomplete=function(){z===void 0&&(z=null),S(z)},J.onabort=J.onerror=function(){var Oe=ve.error?ve.error:ve.transaction.error;M(Oe)}}catch(Oe){M(Oe)}})}).catch(M)});return y(I,g),I}function it(f,b){var g=this;f=N(f);var T=new _(function(I,S){g.ready().then(function(){he(g._dbInfo,X,function(M,G){if(M)return S(M);try{var z=G.objectStore(g._dbInfo.storeName),Y=z.delete(f);G.oncomplete=function(){I()},G.onerror=function(){S(Y.error)},G.onabort=function(){var J=Y.error?Y.error:Y.transaction.error;S(J)}}catch(J){S(J)}})}).catch(S)});return y(T,b),T}function be(f){var b=this,g=new _(function(T,I){b.ready().then(function(){he(b._dbInfo,X,function(S,M){if(S)return I(S);try{var G=M.objectStore(b._dbInfo.storeName),z=G.clear();M.oncomplete=function(){T()},M.onabort=M.onerror=function(){var Y=z.error?z.error:z.transaction.error;I(Y)}}catch(Y){I(Y)}})}).catch(I)});return y(g,f),g}function He(f){var b=this,g=new _(function(T,I){b.ready().then(function(){he(b._dbInfo,Ee,function(S,M){if(S)return I(S);try{var G=M.objectStore(b._dbInfo.storeName),z=G.count();z.onsuccess=function(){T(z.result)},z.onerror=function(){I(z.error)}}catch(Y){I(Y)}})}).catch(I)});return y(g,f),g}function Ae(f,b){var g=this,T=new _(function(I,S){if(f<0){I(null);return}g.ready().then(function(){he(g._dbInfo,Ee,function(M,G){if(M)return S(M);try{var z=G.objectStore(g._dbInfo.storeName),Y=!1,J=z.openKeyCursor();J.onsuccess=function(){var te=J.result;if(!te){I(null);return}f===0||Y?I(te.key):(Y=!0,te.advance(f))},J.onerror=function(){S(J.error)}}catch(te){S(te)}})}).catch(S)});return y(T,b),T}function $e(f){var b=this,g=new _(function(T,I){b.ready().then(function(){he(b._dbInfo,Ee,function(S,M){if(S)return I(S);try{var G=M.objectStore(b._dbInfo.storeName),z=G.openKeyCursor(),Y=[];z.onsuccess=function(){var J=z.result;if(!J){T(Y);return}Y.push(J.key),J.continue()},z.onerror=function(){I(z.error)}}catch(J){I(J)}})}).catch(I)});return y(g,f),g}function De(f,b){b=A.apply(this,arguments);var g=this.config();f=typeof f!="function"&&f||{},f.name||(f.name=f.name||g.name,f.storeName=f.storeName||g.storeName);var T=this,I;if(!f.name)I=_.reject("Invalid arguments");else{var S=f.name===g.name&&T._dbInfo.db,M=S?_.resolve(T._dbInfo.db):Je(f).then(function(G){var z=P[f.name],Y=z.forages;z.db=G;for(var J=0;J<Y.length;J++)Y[J]._dbInfo.db=G;return G});f.storeName?I=M.then(function(G){if(G.objectStoreNames.contains(f.storeName)){var z=G.version+1;Le(f);var Y=P[f.name],J=Y.forages;G.close();for(var te=0;te<J.length;te++){var ve=J[te];ve._dbInfo.db=null,ve._dbInfo.version=z}var Oe=new _(function(Ne,rt){var Qe=p.open(f.name,z);Qe.onerror=function(Xt){var Ri=Qe.result;Ri.close(),rt(Xt)},Qe.onupgradeneeded=function(){var Xt=Qe.result;Xt.deleteObjectStore(f.storeName)},Qe.onsuccess=function(){var Xt=Qe.result;Xt.close(),Ne(Xt)}});return Oe.then(function(Ne){Y.db=Ne;for(var rt=0;rt<J.length;rt++){var Qe=J[rt];Qe._dbInfo.db=Ne,Se(Qe._dbInfo)}}).catch(function(Ne){throw(Re(f,Ne)||_.resolve()).catch(function(){}),Ne})}}):I=M.then(function(G){Le(f);var z=P[f.name],Y=z.forages;G.close();for(var J=0;J<Y.length;J++){var te=Y[J];te._dbInfo.db=null}var ve=new _(function(Oe,Ne){var rt=p.deleteDatabase(f.name);rt.onerror=function(){var Qe=rt.result;Qe&&Qe.close(),Ne(rt.error)},rt.onblocked=function(){console.warn('dropInstance blocked for database "'+f.name+'" until all open connections are closed')},rt.onsuccess=function(){var Qe=rt.result;Qe&&Qe.close(),Oe(Qe)}});return ve.then(function(Oe){z.db=Oe;for(var Ne=0;Ne<Y.length;Ne++){var rt=Y[Ne];Se(rt._dbInfo)}}).catch(function(Oe){throw(Re(f,Oe)||_.resolve()).catch(function(){}),Oe})})}return y(I,b),I}var $t={_driver:"asyncStorage",_initStorage:Ze,_support:m(),iterate:vt,getItem:et,setItem:Et,removeItem:it,clear:be,length:He,key:Ae,keys:$e,dropInstance:De};function h(){return typeof openDatabase=="function"}var c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u="~~local_forage_type~",v=/^~~local_forage_type~([^~]+)~/,x="__lfsc__:",O=x.length,W="arbf",ue="blob",_e="si08",ge="ui08",Me="uic8",ke="si16",tt="si32",pr="ur16",Gr="ui32",wo="fl32",fr="fl64",mr=O+W.length,tm=Object.prototype.toString;function rm(f){var b=f.length*.75,g=f.length,T,I=0,S,M,G,z;f[f.length-1]==="="&&(b--,f[f.length-2]==="="&&b--);var Y=new ArrayBuffer(b),J=new Uint8Array(Y);for(T=0;T<g;T+=4)S=c.indexOf(f[T]),M=c.indexOf(f[T+1]),G=c.indexOf(f[T+2]),z=c.indexOf(f[T+3]),J[I++]=S<<2|M>>4,J[I++]=(M&15)<<4|G>>2,J[I++]=(G&3)<<6|z&63;return Y}function Bl(f){var b=new Uint8Array(f),g="",T;for(T=0;T<b.length;T+=3)g+=c[b[T]>>2],g+=c[(b[T]&3)<<4|b[T+1]>>4],g+=c[(b[T+1]&15)<<2|b[T+2]>>6],g+=c[b[T+2]&63];return b.length%3===2?g=g.substring(0,g.length-1)+"=":b.length%3===1&&(g=g.substring(0,g.length-2)+"=="),g}function Pv(f,b){var g="";if(f&&(g=tm.call(f)),f&&(g==="[object ArrayBuffer]"||f.buffer&&tm.call(f.buffer)==="[object ArrayBuffer]")){var T,I=x;f instanceof ArrayBuffer?(T=f,I+=W):(T=f.buffer,g==="[object Int8Array]"?I+=_e:g==="[object Uint8Array]"?I+=ge:g==="[object Uint8ClampedArray]"?I+=Me:g==="[object Int16Array]"?I+=ke:g==="[object Uint16Array]"?I+=pr:g==="[object Int32Array]"?I+=tt:g==="[object Uint32Array]"?I+=Gr:g==="[object Float32Array]"?I+=wo:g==="[object Float64Array]"?I+=fr:b(new Error("Failed to get type for BinaryArray"))),b(I+Bl(T))}else if(g==="[object Blob]"){var S=new FileReader;S.onload=function(){var M=u+f.type+"~"+Bl(this.result);b(x+ue+M)},S.readAsArrayBuffer(f)}else try{b(JSON.stringify(f))}catch(M){console.error("Couldn't convert value into a JSON string: ",f),b(null,M)}}function Lv(f){if(f.substring(0,O)!==x)return JSON.parse(f);var b=f.substring(mr),g=f.substring(O,mr),T;if(g===ue&&v.test(b)){var I=b.match(v);T=I[1],b=b.substring(I[0].length)}var S=rm(b);switch(g){case W:return S;case ue:return d([S],{type:T});case _e:return new Int8Array(S);case ge:return new Uint8Array(S);case Me:return new Uint8ClampedArray(S);case ke:return new Int16Array(S);case pr:return new Uint16Array(S);case tt:return new Int32Array(S);case Gr:return new Uint32Array(S);case wo:return new Float32Array(S);case fr:return new Float64Array(S);default:throw new Error("Unkown type: "+g)}}var Ul={serialize:Pv,deserialize:Lv,stringToBuffer:rm,bufferToString:Bl};function nm(f,b,g,T){f.executeSql("CREATE TABLE IF NOT EXISTS "+b.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],g,T)}function Mv(f){var b=this,g={db:null};if(f)for(var T in f)g[T]=typeof f[T]!="string"?f[T].toString():f[T];var I=new _(function(S,M){try{g.db=openDatabase(g.name,String(g.version),g.description,g.size)}catch(G){return M(G)}g.db.transaction(function(G){nm(G,g,function(){b._dbInfo=g,S()},function(z,Y){M(Y)})},M)});return g.serializer=Ul,I}function dn(f,b,g,T,I,S){f.executeSql(g,T,I,function(M,G){G.code===G.SYNTAX_ERR?M.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[b.storeName],function(z,Y){Y.rows.length?S(z,G):nm(z,b,function(){z.executeSql(g,T,I,S)},S)},S):S(M,G)},S)}function Bv(f,b){var g=this;f=N(f);var T=new _(function(I,S){g.ready().then(function(){var M=g._dbInfo;M.db.transaction(function(G){dn(G,M,"SELECT * FROM "+M.storeName+" WHERE key = ? LIMIT 1",[f],function(z,Y){var J=Y.rows.length?Y.rows.item(0).value:null;J&&(J=M.serializer.deserialize(J)),I(J)},function(z,Y){S(Y)})})}).catch(S)});return y(T,b),T}function Uv(f,b){var g=this,T=new _(function(I,S){g.ready().then(function(){var M=g._dbInfo;M.db.transaction(function(G){dn(G,M,"SELECT * FROM "+M.storeName,[],function(z,Y){for(var J=Y.rows,te=J.length,ve=0;ve<te;ve++){var Oe=J.item(ve),Ne=Oe.value;if(Ne&&(Ne=M.serializer.deserialize(Ne)),Ne=f(Ne,Oe.key,ve+1),Ne!==void 0){I(Ne);return}}I()},function(z,Y){S(Y)})})}).catch(S)});return y(T,b),T}function om(f,b,g,T){var I=this;f=N(f);var S=new _(function(M,G){I.ready().then(function(){b===void 0&&(b=null);var z=b,Y=I._dbInfo;Y.serializer.serialize(b,function(J,te){te?G(te):Y.db.transaction(function(ve){dn(ve,Y,"INSERT OR REPLACE INTO "+Y.storeName+" (key, value) VALUES (?, ?)",[f,J],function(){M(z)},function(Oe,Ne){G(Ne)})},function(ve){if(ve.code===ve.QUOTA_ERR){if(T>0){M(om.apply(I,[f,z,g,T-1]));return}G(ve)}})})}).catch(G)});return y(S,g),S}function kv(f,b,g){return om.apply(this,[f,b,g,1])}function Fv(f,b){var g=this;f=N(f);var T=new _(function(I,S){g.ready().then(function(){var M=g._dbInfo;M.db.transaction(function(G){dn(G,M,"DELETE FROM "+M.storeName+" WHERE key = ?",[f],function(){I()},function(z,Y){S(Y)})})}).catch(S)});return y(T,b),T}function Hv(f){var b=this,g=new _(function(T,I){b.ready().then(function(){var S=b._dbInfo;S.db.transaction(function(M){dn(M,S,"DELETE FROM "+S.storeName,[],function(){T()},function(G,z){I(z)})})}).catch(I)});return y(g,f),g}function $v(f){var b=this,g=new _(function(T,I){b.ready().then(function(){var S=b._dbInfo;S.db.transaction(function(M){dn(M,S,"SELECT COUNT(key) as c FROM "+S.storeName,[],function(G,z){var Y=z.rows.item(0).c;T(Y)},function(G,z){I(z)})})}).catch(I)});return y(g,f),g}function Vv(f,b){var g=this,T=new _(function(I,S){g.ready().then(function(){var M=g._dbInfo;M.db.transaction(function(G){dn(G,M,"SELECT key FROM "+M.storeName+" WHERE id = ? LIMIT 1",[f+1],function(z,Y){var J=Y.rows.length?Y.rows.item(0).key:null;I(J)},function(z,Y){S(Y)})})}).catch(S)});return y(T,b),T}function Wv(f){var b=this,g=new _(function(T,I){b.ready().then(function(){var S=b._dbInfo;S.db.transaction(function(M){dn(M,S,"SELECT key FROM "+S.storeName,[],function(G,z){for(var Y=[],J=0;J<z.rows.length;J++)Y.push(z.rows.item(J).key);T(Y)},function(G,z){I(z)})})}).catch(I)});return y(g,f),g}function jv(f){return new _(function(b,g){f.transaction(function(T){T.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],function(I,S){for(var M=[],G=0;G<S.rows.length;G++)M.push(S.rows.item(G).name);b({db:f,storeNames:M})},function(I,S){g(S)})},function(T){g(T)})})}function Gv(f,b){b=A.apply(this,arguments);var g=this.config();f=typeof f!="function"&&f||{},f.name||(f.name=f.name||g.name,f.storeName=f.storeName||g.storeName);var T=this,I;return f.name?I=new _(function(S){var M;f.name===g.name?M=T._dbInfo.db:M=openDatabase(f.name,"","",0),f.storeName?S({db:M,storeNames:[f.storeName]}):S(jv(M))}).then(function(S){return new _(function(M,G){S.db.transaction(function(z){function Y(Oe){return new _(function(Ne,rt){z.executeSql("DROP TABLE IF EXISTS "+Oe,[],function(){Ne()},function(Qe,Xt){rt(Xt)})})}for(var J=[],te=0,ve=S.storeNames.length;te<ve;te++)J.push(Y(S.storeNames[te]));_.all(J).then(function(){M()}).catch(function(Oe){G(Oe)})},function(z){G(z)})})}):I=_.reject("Invalid arguments"),y(I,b),I}var qv={_driver:"webSQLStorage",_initStorage:Mv,_support:h(),iterate:Uv,getItem:Bv,setItem:kv,removeItem:Fv,clear:Hv,length:$v,key:Vv,keys:Wv,dropInstance:Gv};function zv(){try{return typeof localStorage<"u"&&"setItem"in localStorage&&!!localStorage.setItem}catch{return!1}}function im(f,b){var g=f.name+"/";return f.storeName!==b.storeName&&(g+=f.storeName+"/"),g}function Yv(){var f="_localforage_support_test";try{return localStorage.setItem(f,!0),localStorage.removeItem(f),!1}catch{return!0}}function Kv(){return!Yv()||localStorage.length>0}function Xv(f){var b=this,g={};if(f)for(var T in f)g[T]=f[T];return g.keyPrefix=im(f,b._defaultConfig),Kv()?(b._dbInfo=g,g.serializer=Ul,_.resolve()):_.reject()}function Jv(f){var b=this,g=b.ready().then(function(){for(var T=b._dbInfo.keyPrefix,I=localStorage.length-1;I>=0;I--){var S=localStorage.key(I);S.indexOf(T)===0&&localStorage.removeItem(S)}});return y(g,f),g}function Qv(f,b){var g=this;f=N(f);var T=g.ready().then(function(){var I=g._dbInfo,S=localStorage.getItem(I.keyPrefix+f);return S&&(S=I.serializer.deserialize(S)),S});return y(T,b),T}function Zv(f,b){var g=this,T=g.ready().then(function(){for(var I=g._dbInfo,S=I.keyPrefix,M=S.length,G=localStorage.length,z=1,Y=0;Y<G;Y++){var J=localStorage.key(Y);if(J.indexOf(S)===0){var te=localStorage.getItem(J);if(te&&(te=I.serializer.deserialize(te)),te=f(te,J.substring(M),z++),te!==void 0)return te}}});return y(T,b),T}function eE(f,b){var g=this,T=g.ready().then(function(){var I=g._dbInfo,S;try{S=localStorage.key(f)}catch{S=null}return S&&(S=S.substring(I.keyPrefix.length)),S});return y(T,b),T}function tE(f){var b=this,g=b.ready().then(function(){for(var T=b._dbInfo,I=localStorage.length,S=[],M=0;M<I;M++){var G=localStorage.key(M);G.indexOf(T.keyPrefix)===0&&S.push(G.substring(T.keyPrefix.length))}return S});return y(g,f),g}function rE(f){var b=this,g=b.keys().then(function(T){return T.length});return y(g,f),g}function nE(f,b){var g=this;f=N(f);var T=g.ready().then(function(){var I=g._dbInfo;localStorage.removeItem(I.keyPrefix+f)});return y(T,b),T}function oE(f,b,g){var T=this;f=N(f);var I=T.ready().then(function(){b===void 0&&(b=null);var S=b;return new _(function(M,G){var z=T._dbInfo;z.serializer.serialize(b,function(Y,J){if(J)G(J);else try{localStorage.setItem(z.keyPrefix+f,Y),M(S)}catch(te){(te.name==="QuotaExceededError"||te.name==="NS_ERROR_DOM_QUOTA_REACHED")&&G(te),G(te)}})})});return y(I,g),I}function iE(f,b){if(b=A.apply(this,arguments),f=typeof f!="function"&&f||{},!f.name){var g=this.config();f.name=f.name||g.name,f.storeName=f.storeName||g.storeName}var T=this,I;return f.name?I=new _(function(S){f.storeName?S(im(f,T._defaultConfig)):S(f.name+"/")}).then(function(S){for(var M=localStorage.length-1;M>=0;M--){var G=localStorage.key(M);G.indexOf(S)===0&&localStorage.removeItem(G)}}):I=_.reject("Invalid arguments"),y(I,b),I}var sE={_driver:"localStorageWrapper",_initStorage:Xv,_support:zv(),iterate:Zv,getItem:Qv,setItem:oE,removeItem:nE,clear:Jv,length:rE,key:eE,keys:tE,dropInstance:iE},aE=function(b,g){return b===g||typeof b=="number"&&typeof g=="number"&&isNaN(b)&&isNaN(g)},cE=function(b,g){for(var T=b.length,I=0;I<T;){if(aE(b[I],g))return!0;I++}return!1},sm=Array.isArray||function(f){return Object.prototype.toString.call(f)==="[object Array]"},Ci={},am={},bo={INDEXEDDB:$t,WEBSQL:qv,LOCALSTORAGE:sE},lE=[bo.INDEXEDDB._driver,bo.WEBSQL._driver,bo.LOCALSTORAGE._driver],Vs=["dropInstance"],kl=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(Vs),uE={description:"",driver:lE.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function pE(f,b){f[b]=function(){var g=arguments;return f.ready().then(function(){return f[b].apply(f,g)})}}function Fl(){for(var f=1;f<arguments.length;f++){var b=arguments[f];if(b)for(var g in b)b.hasOwnProperty(g)&&(sm(b[g])?arguments[0][g]=b[g].slice():arguments[0][g]=b[g])}return arguments[0]}var fE=(function(){function f(b){a(this,f);for(var g in bo)if(bo.hasOwnProperty(g)){var T=bo[g],I=T._driver;this[g]=I,Ci[I]||this.defineDriver(T)}this._defaultConfig=Fl({},uE),this._config=Fl({},this._defaultConfig,b),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch(function(){})}return f.prototype.config=function(g){if((typeof g>"u"?"undefined":s(g))==="object"){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var T in g){if(T==="storeName"&&(g[T]=g[T].replace(/\W/g,"_")),T==="version"&&typeof g[T]!="number")return new Error("Database version must be a number.");this._config[T]=g[T]}return"driver"in g&&g.driver?this.setDriver(this._config.driver):!0}else return typeof g=="string"?this._config[g]:this._config},f.prototype.defineDriver=function(g,T,I){var S=new _(function(M,G){try{var z=g._driver,Y=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!g._driver){G(Y);return}for(var J=kl.concat("_initStorage"),te=0,ve=J.length;te<ve;te++){var Oe=J[te],Ne=!cE(Vs,Oe);if((Ne||g[Oe])&&typeof g[Oe]!="function"){G(Y);return}}var rt=function(){for(var Ri=function(hE){return function(){var gE=new Error("Method "+hE+" is not implemented by the current driver"),cm=_.reject(gE);return y(cm,arguments[arguments.length-1]),cm}},Hl=0,dE=Vs.length;Hl<dE;Hl++){var $l=Vs[Hl];g[$l]||(g[$l]=Ri($l))}};rt();var Qe=function(Ri){Ci[z]&&console.info("Redefining LocalForage driver: "+z),Ci[z]=g,am[z]=Ri,M()};"_support"in g?g._support&&typeof g._support=="function"?g._support().then(Qe,G):Qe(!!g._support):Qe(!0)}catch(Xt){G(Xt)}});return C(S,T,I),S},f.prototype.driver=function(){return this._driver||null},f.prototype.getDriver=function(g,T,I){var S=Ci[g]?_.resolve(Ci[g]):_.reject(new Error("Driver not found."));return C(S,T,I),S},f.prototype.getSerializer=function(g){var T=_.resolve(Ul);return C(T,g),T},f.prototype.ready=function(g){var T=this,I=T._driverSet.then(function(){return T._ready===null&&(T._ready=T._initDriver()),T._ready});return C(I,g,g),I},f.prototype.setDriver=function(g,T,I){var S=this;sm(g)||(g=[g]);var M=this._getSupportedDrivers(g);function G(){S._config.driver=S.driver()}function z(te){return S._extend(te),G(),S._ready=S._initStorage(S._config),S._ready}function Y(te){return function(){var ve=0;function Oe(){for(;ve<te.length;){var Ne=te[ve];return ve++,S._dbInfo=null,S._ready=null,S.getDriver(Ne).then(z).catch(Oe)}G();var rt=new Error("No available storage method found.");return S._driverSet=_.reject(rt),S._driverSet}return Oe()}}var J=this._driverSet!==null?this._driverSet.catch(function(){return _.resolve()}):_.resolve();return this._driverSet=J.then(function(){var te=M[0];return S._dbInfo=null,S._ready=null,S.getDriver(te).then(function(ve){S._driver=ve._driver,G(),S._wrapLibraryMethodsWithReady(),S._initDriver=Y(M)})}).catch(function(){G();var te=new Error("No available storage method found.");return S._driverSet=_.reject(te),S._driverSet}),C(this._driverSet,T,I),this._driverSet},f.prototype.supports=function(g){return!!am[g]},f.prototype._extend=function(g){Fl(this,g)},f.prototype._getSupportedDrivers=function(g){for(var T=[],I=0,S=g.length;I<S;I++){var M=g[I];this.supports(M)&&T.push(M)}return T},f.prototype._wrapLibraryMethodsWithReady=function(){for(var g=0,T=kl.length;g<T;g++)pE(this,kl[g])},f.prototype.createInstance=function(g){return new f(g)},f})(),mE=new fE;o.exports=mE},{3:3}]},{},[4])(4)})});var $p=Vl((rc,ng)=>{"use strict";(function(t,e){typeof rc=="object"&&typeof ng<"u"?e(rc):typeof define=="function"&&define.amd?define(["exports"],e):e((t=typeof globalThis<"u"?globalThis:t||self).Sqrl={})})(rc,function(t){"use strict";function e(D){var R,V,k=new Error(D);return R=k,V=e.prototype,Object.setPrototypeOf?Object.setPrototypeOf(R,V):R.__proto__=V,k}function r(D,R,V){var k=R.slice(0,V).split(/\n/),H=k.length,ne=k[H-1].length+1;throw e(D+=" at line "+H+" col "+ne+`:
1
+ import{a as Ws,b as js,c as um,d as pm,e as fm,f as mm,g as dm,h as dr,i as Gs,j as w,k as hm,l as gm,m as ym,n as vm,o as zr}from"./chunk-OLFUHHMY.js";import{a as E,b as Z,c as Ai,d as lm,e as Vl,f as qr,g as So}from"./chunk-V7UGKYBN.js";var Wl=Vl(qs=>{"use strict";Object.defineProperty(qs,"__esModule",{value:!0});qs.URLBuilder=void 0;var yE=(function(){function t(e){try{this.base=new URL(e),this.params=new URLSearchParams(this.base.search.slice(1))}catch(r){console.error("Un-parsable URL",r)}}return t.prototype.appendQueryParam=function(e,r){this.params.append(e,r?r.toString():"")},t.prototype.clearQueryParams=function(){return this.params=new URLSearchParams,this},t.prototype.deleteQueryParam=function(e){this.params.delete(e)},t.prototype.getBase=function(){return this.base},t.prototype.getPath=function(){return this.base.pathname},t.prototype.getHostname=function(){return this.base.hostname},t.prototype.getParams=function(){return this.params},t.prototype.getQueryParam=function(e){if(!this.params)return"";var r=this.params.get(e);return!r||r==="undefined"||r==="null"?void 0:r},t.prototype.getQueryString=function(){return this.params.toString()},t.prototype.setPath=function(e){return this.base.pathname=e,this},t.prototype.setQueryParam=function(e,r){return this.params.set(e,r?r.toString():""),this},t.prototype.setQueryString=function(e){if(e)return e[0]==="?"&&(e=e.slice(1)),this.params=new URLSearchParams(e),this},t.prototype.toString=function(){var e=this.params.toString();return e===""?this.base.search="":this.base.search="?"+e,this.base.toString()},t})();qs.URLBuilder=yE});var xm=Vl((Im,Jl)=>{"use strict";(function(t){if(typeof Im=="object"&&typeof Jl<"u")Jl.exports=t();else if(typeof define=="function"&&define.amd)define([],t);else{var e;typeof window<"u"?e=window:typeof global<"u"?e=global:typeof self<"u"?e=self:e=this,e.localforage=t()}})(function(){var t,e,r;return(function n(o,i,s){function a(m,d){if(!i[m]){if(!o[m]){var _=typeof Ai=="function"&&Ai;if(!d&&_)return _(m,!0);if(l)return l(m,!0);var y=new Error("Cannot find module '"+m+"'");throw y.code="MODULE_NOT_FOUND",y}var C=i[m]={exports:{}};o[m][0].call(C.exports,function(N){var A=o[m][1][N];return a(A||N)},C,C.exports,n,o,i,s)}return i[m].exports}for(var l=typeof Ai=="function"&&Ai,p=0;p<s.length;p++)a(s[p]);return a})({1:[function(n,o,i){(function(s){"use strict";var a=s.MutationObserver||s.WebKitMutationObserver,l;if(a){var p=0,m=new a(N),d=s.document.createTextNode("");m.observe(d,{characterData:!0}),l=function(){d.data=p=++p%2}}else if(!s.setImmediate&&typeof s.MessageChannel<"u"){var _=new s.MessageChannel;_.port1.onmessage=N,l=function(){_.port2.postMessage(0)}}else"document"in s&&"onreadystatechange"in s.document.createElement("script")?l=function(){var B=s.document.createElement("script");B.onreadystatechange=function(){N(),B.onreadystatechange=null,B.parentNode.removeChild(B),B=null},s.document.documentElement.appendChild(B)}:l=function(){setTimeout(N,0)};var y,C=[];function N(){y=!0;for(var B,q,P=C.length;P;){for(q=C,C=[],B=-1;++B<P;)q[B]();P=C.length}y=!1}o.exports=A;function A(B){C.push(B)===1&&!y&&l()}}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{}],2:[function(n,o,i){"use strict";var s=n(1);function a(){}var l={},p=["REJECTED"],m=["FULFILLED"],d=["PENDING"];o.exports=_;function _(X){if(typeof X!="function")throw new TypeError("resolver must be a function");this.state=d,this.queue=[],this.outcome=void 0,X!==a&&A(this,X)}_.prototype.catch=function(X){return this.then(null,X)},_.prototype.then=function(X,ce){if(typeof X!="function"&&this.state===m||typeof ce!="function"&&this.state===p)return this;var se=new this.constructor(a);if(this.state!==d){var de=this.state===m?X:ce;C(se,de,this.outcome)}else this.queue.push(new y(se,X,ce));return se};function y(X,ce,se){this.promise=X,typeof ce=="function"&&(this.onFulfilled=ce,this.callFulfilled=this.otherCallFulfilled),typeof se=="function"&&(this.onRejected=se,this.callRejected=this.otherCallRejected)}y.prototype.callFulfilled=function(X){l.resolve(this.promise,X)},y.prototype.otherCallFulfilled=function(X){C(this.promise,this.onFulfilled,X)},y.prototype.callRejected=function(X){l.reject(this.promise,X)},y.prototype.otherCallRejected=function(X){C(this.promise,this.onRejected,X)};function C(X,ce,se){s(function(){var de;try{de=ce(se)}catch(Le){return l.reject(X,Le)}de===X?l.reject(X,new TypeError("Cannot resolve promise with itself")):l.resolve(X,de)})}l.resolve=function(X,ce){var se=B(N,ce);if(se.status==="error")return l.reject(X,se.value);var de=se.value;if(de)A(X,de);else{X.state=m,X.outcome=ce;for(var Le=-1,Se=X.queue.length;++Le<Se;)X.queue[Le].callFulfilled(ce)}return X},l.reject=function(X,ce){X.state=p,X.outcome=ce;for(var se=-1,de=X.queue.length;++se<de;)X.queue[se].callRejected(ce);return X};function N(X){var ce=X&&X.then;if(X&&(typeof X=="object"||typeof X=="function")&&typeof ce=="function")return function(){ce.apply(X,arguments)}}function A(X,ce){var se=!1;function de(Ge){se||(se=!0,l.reject(X,Ge))}function Le(Ge){se||(se=!0,l.resolve(X,Ge))}function Se(){ce(Le,de)}var Re=B(Se);Re.status==="error"&&de(Re.value)}function B(X,ce){var se={};try{se.value=X(ce),se.status="success"}catch(de){se.status="error",se.value=de}return se}_.resolve=q;function q(X){return X instanceof this?X:l.resolve(new this(a),X)}_.reject=P;function P(X){var ce=new this(a);return l.reject(ce,X)}_.all=Q;function Q(X){var ce=this;if(Object.prototype.toString.call(X)!=="[object Array]")return this.reject(new TypeError("must be an array"));var se=X.length,de=!1;if(!se)return this.resolve([]);for(var Le=new Array(se),Se=0,Re=-1,Ge=new this(a);++Re<se;)Je(X[Re],Re);return Ge;function Je(Bt,D){ce.resolve(Bt).then(R,function(V){de||(de=!0,l.reject(Ge,V))});function R(V){Le[D]=V,++Se===se&&!de&&(de=!0,l.resolve(Ge,Le))}}}_.race=Ee;function Ee(X){var ce=this;if(Object.prototype.toString.call(X)!=="[object Array]")return this.reject(new TypeError("must be an array"));var se=X.length,de=!1;if(!se)return this.resolve([]);for(var Le=-1,Se=new this(a);++Le<se;)Re(X[Le]);return Se;function Re(Ge){ce.resolve(Ge).then(function(Je){de||(de=!0,l.resolve(Se,Je))},function(Je){de||(de=!0,l.reject(Se,Je))})}}},{1:1}],3:[function(n,o,i){(function(s){"use strict";typeof s.Promise!="function"&&(s.Promise=n(2))}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{2:2}],4:[function(n,o,i){"use strict";var s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(f){return typeof f}:function(f){return f&&typeof Symbol=="function"&&f.constructor===Symbol&&f!==Symbol.prototype?"symbol":typeof f};function a(f,b){if(!(f instanceof b))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 p=l();function m(){try{if(!p||!p.open)return!1;var f=typeof openDatabase<"u"&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),b=typeof fetch=="function"&&fetch.toString().indexOf("[native code")!==-1;return(!f||b)&&typeof indexedDB<"u"&&typeof IDBKeyRange<"u"}catch{return!1}}function d(f,b){f=f||[],b=b||{};try{return new Blob(f,b)}catch(S){if(S.name!=="TypeError")throw S;for(var g=typeof BlobBuilder<"u"?BlobBuilder:typeof MSBlobBuilder<"u"?MSBlobBuilder:typeof MozBlobBuilder<"u"?MozBlobBuilder:WebKitBlobBuilder,T=new g,I=0;I<f.length;I+=1)T.append(f[I]);return T.getBlob(b.type)}}typeof Promise>"u"&&n(3);var _=Promise;function y(f,b){b&&f.then(function(g){b(null,g)},function(g){b(g)})}function C(f,b,g){typeof b=="function"&&f.then(b),typeof g=="function"&&f.catch(g)}function N(f){return typeof f!="string"&&(console.warn(f+" used as a key, but it is not a string."),f=String(f)),f}function A(){if(arguments.length&&typeof arguments[arguments.length-1]=="function")return arguments[arguments.length-1]}var B="local-forage-detect-blob-support",q=void 0,P={},Q=Object.prototype.toString,Ee="readonly",X="readwrite";function ce(f){for(var b=f.length,g=new ArrayBuffer(b),T=new Uint8Array(g),I=0;I<b;I++)T[I]=f.charCodeAt(I);return g}function se(f){return new _(function(b){var g=f.transaction(B,X),T=d([""]);g.objectStore(B).put(T,"key"),g.onabort=function(I){I.preventDefault(),I.stopPropagation(),b(!1)},g.oncomplete=function(){var I=navigator.userAgent.match(/Chrome\/(\d+)/),S=navigator.userAgent.match(/Edge\//);b(S||!I||parseInt(I[1],10)>=43)}}).catch(function(){return!1})}function de(f){return typeof q=="boolean"?_.resolve(q):se(f).then(function(b){return q=b,q})}function Le(f){var b=P[f.name],g={};g.promise=new _(function(T,I){g.resolve=T,g.reject=I}),b.deferredOperations.push(g),b.dbReady?b.dbReady=b.dbReady.then(function(){return g.promise}):b.dbReady=g.promise}function Se(f){var b=P[f.name],g=b.deferredOperations.pop();if(g)return g.resolve(),g.promise}function Re(f,b){var g=P[f.name],T=g.deferredOperations.pop();if(T)return T.reject(b),T.promise}function Ge(f,b){return new _(function(g,T){if(P[f.name]=P[f.name]||qe(),f.db)if(b)Le(f),f.db.close();else return g(f.db);var I=[f.name];b&&I.push(f.version);var S=p.open.apply(p,I);b&&(S.onupgradeneeded=function(M){var G=S.result;try{G.createObjectStore(f.storeName),M.oldVersion<=1&&G.createObjectStore(B)}catch(z){if(z.name==="ConstraintError")console.warn('The database "'+f.name+'" has been upgraded from version '+M.oldVersion+" to version "+M.newVersion+', but the storage "'+f.storeName+'" already exists.');else throw z}}),S.onerror=function(M){M.preventDefault(),T(S.error)},S.onsuccess=function(){var M=S.result;M.onversionchange=function(G){G.target.close()},g(M),Se(f)}})}function Je(f){return Ge(f,!1)}function Bt(f){return Ge(f,!0)}function D(f,b){if(!f.db)return!0;var g=!f.db.objectStoreNames.contains(f.storeName),T=f.version<f.db.version,I=f.version>f.db.version;if(T&&(f.version!==b&&console.warn('The database "'+f.name+`" can't be downgraded from version `+f.db.version+" to version "+f.version+"."),f.version=f.db.version),I||g){if(g){var S=f.db.version+1;S>f.version&&(f.version=S)}return!0}return!1}function R(f){return new _(function(b,g){var T=new FileReader;T.onerror=g,T.onloadend=function(I){var S=btoa(I.target.result||"");b({__local_forage_encoded_blob:!0,data:S,type:f.type})},T.readAsBinaryString(f)})}function V(f){var b=ce(atob(f.data));return d([b],{type:f.type})}function k(f){return f&&f.__local_forage_encoded_blob}function H(f){var b=this,g=b._initReady().then(function(){var T=P[b._dbInfo.name];if(T&&T.dbReady)return T.dbReady});return C(g,f,f),g}function ne(f){Le(f);for(var b=P[f.name],g=b.forages,T=0;T<g.length;T++){var I=g[T];I._dbInfo.db&&(I._dbInfo.db.close(),I._dbInfo.db=null)}return f.db=null,Je(f).then(function(S){return f.db=S,D(f)?Bt(f):S}).then(function(S){f.db=b.db=S;for(var M=0;M<g.length;M++)g[M]._dbInfo.db=S}).catch(function(S){throw Re(f,S),S})}function he(f,b,g,T){T===void 0&&(T=1);try{var I=f.db.transaction(f.storeName,b);g(null,I)}catch(S){if(T>0&&(!f.db||S.name==="InvalidStateError"||S.name==="NotFoundError"))return _.resolve().then(function(){if(!f.db||S.name==="NotFoundError"&&!f.db.objectStoreNames.contains(f.storeName)&&f.version<=f.db.version)return f.db&&(f.version=f.db.version+1),Bt(f)}).then(function(){return ne(f).then(function(){he(f,b,g,T-1)})}).catch(g);g(S)}}function qe(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function Ze(f){var b=this,g={db:null};if(f)for(var T in f)g[T]=f[T];var I=P[g.name];I||(I=qe(),P[g.name]=I),I.forages.push(b),b._initReady||(b._initReady=b.ready,b.ready=H);var S=[];function M(){return _.resolve()}for(var G=0;G<I.forages.length;G++){var z=I.forages[G];z!==b&&S.push(z._initReady().catch(M))}var Y=I.forages.slice(0);return _.all(S).then(function(){return g.db=I.db,Je(g)}).then(function(J){return g.db=J,D(g,b._defaultConfig.version)?Bt(g):J}).then(function(J){g.db=I.db=J,b._dbInfo=g;for(var te=0;te<Y.length;te++){var ve=Y[te];ve!==b&&(ve._dbInfo.db=g.db,ve._dbInfo.version=g.version)}})}function et(f,b){var g=this;f=N(f);var T=new _(function(I,S){g.ready().then(function(){he(g._dbInfo,Ee,function(M,G){if(M)return S(M);try{var z=G.objectStore(g._dbInfo.storeName),Y=z.get(f);Y.onsuccess=function(){var J=Y.result;J===void 0&&(J=null),k(J)&&(J=V(J)),I(J)},Y.onerror=function(){S(Y.error)}}catch(J){S(J)}})}).catch(S)});return y(T,b),T}function vt(f,b){var g=this,T=new _(function(I,S){g.ready().then(function(){he(g._dbInfo,Ee,function(M,G){if(M)return S(M);try{var z=G.objectStore(g._dbInfo.storeName),Y=z.openCursor(),J=1;Y.onsuccess=function(){var te=Y.result;if(te){var ve=te.value;k(ve)&&(ve=V(ve));var Oe=f(ve,te.key,J++);Oe!==void 0?I(Oe):te.continue()}else I()},Y.onerror=function(){S(Y.error)}}catch(te){S(te)}})}).catch(S)});return y(T,b),T}function Et(f,b,g){var T=this;f=N(f);var I=new _(function(S,M){var G;T.ready().then(function(){return G=T._dbInfo,Q.call(b)==="[object Blob]"?de(G.db).then(function(z){return z?b:R(b)}):b}).then(function(z){he(T._dbInfo,X,function(Y,J){if(Y)return M(Y);try{var te=J.objectStore(T._dbInfo.storeName);z===null&&(z=void 0);var ve=te.put(z,f);J.oncomplete=function(){z===void 0&&(z=null),S(z)},J.onabort=J.onerror=function(){var Oe=ve.error?ve.error:ve.transaction.error;M(Oe)}}catch(Oe){M(Oe)}})}).catch(M)});return y(I,g),I}function it(f,b){var g=this;f=N(f);var T=new _(function(I,S){g.ready().then(function(){he(g._dbInfo,X,function(M,G){if(M)return S(M);try{var z=G.objectStore(g._dbInfo.storeName),Y=z.delete(f);G.oncomplete=function(){I()},G.onerror=function(){S(Y.error)},G.onabort=function(){var J=Y.error?Y.error:Y.transaction.error;S(J)}}catch(J){S(J)}})}).catch(S)});return y(T,b),T}function be(f){var b=this,g=new _(function(T,I){b.ready().then(function(){he(b._dbInfo,X,function(S,M){if(S)return I(S);try{var G=M.objectStore(b._dbInfo.storeName),z=G.clear();M.oncomplete=function(){T()},M.onabort=M.onerror=function(){var Y=z.error?z.error:z.transaction.error;I(Y)}}catch(Y){I(Y)}})}).catch(I)});return y(g,f),g}function He(f){var b=this,g=new _(function(T,I){b.ready().then(function(){he(b._dbInfo,Ee,function(S,M){if(S)return I(S);try{var G=M.objectStore(b._dbInfo.storeName),z=G.count();z.onsuccess=function(){T(z.result)},z.onerror=function(){I(z.error)}}catch(Y){I(Y)}})}).catch(I)});return y(g,f),g}function Ae(f,b){var g=this,T=new _(function(I,S){if(f<0){I(null);return}g.ready().then(function(){he(g._dbInfo,Ee,function(M,G){if(M)return S(M);try{var z=G.objectStore(g._dbInfo.storeName),Y=!1,J=z.openKeyCursor();J.onsuccess=function(){var te=J.result;if(!te){I(null);return}f===0||Y?I(te.key):(Y=!0,te.advance(f))},J.onerror=function(){S(J.error)}}catch(te){S(te)}})}).catch(S)});return y(T,b),T}function $e(f){var b=this,g=new _(function(T,I){b.ready().then(function(){he(b._dbInfo,Ee,function(S,M){if(S)return I(S);try{var G=M.objectStore(b._dbInfo.storeName),z=G.openKeyCursor(),Y=[];z.onsuccess=function(){var J=z.result;if(!J){T(Y);return}Y.push(J.key),J.continue()},z.onerror=function(){I(z.error)}}catch(J){I(J)}})}).catch(I)});return y(g,f),g}function De(f,b){b=A.apply(this,arguments);var g=this.config();f=typeof f!="function"&&f||{},f.name||(f.name=f.name||g.name,f.storeName=f.storeName||g.storeName);var T=this,I;if(!f.name)I=_.reject("Invalid arguments");else{var S=f.name===g.name&&T._dbInfo.db,M=S?_.resolve(T._dbInfo.db):Je(f).then(function(G){var z=P[f.name],Y=z.forages;z.db=G;for(var J=0;J<Y.length;J++)Y[J]._dbInfo.db=G;return G});f.storeName?I=M.then(function(G){if(G.objectStoreNames.contains(f.storeName)){var z=G.version+1;Le(f);var Y=P[f.name],J=Y.forages;G.close();for(var te=0;te<J.length;te++){var ve=J[te];ve._dbInfo.db=null,ve._dbInfo.version=z}var Oe=new _(function(Ne,rt){var Qe=p.open(f.name,z);Qe.onerror=function(Xt){var Ri=Qe.result;Ri.close(),rt(Xt)},Qe.onupgradeneeded=function(){var Xt=Qe.result;Xt.deleteObjectStore(f.storeName)},Qe.onsuccess=function(){var Xt=Qe.result;Xt.close(),Ne(Xt)}});return Oe.then(function(Ne){Y.db=Ne;for(var rt=0;rt<J.length;rt++){var Qe=J[rt];Qe._dbInfo.db=Ne,Se(Qe._dbInfo)}}).catch(function(Ne){throw(Re(f,Ne)||_.resolve()).catch(function(){}),Ne})}}):I=M.then(function(G){Le(f);var z=P[f.name],Y=z.forages;G.close();for(var J=0;J<Y.length;J++){var te=Y[J];te._dbInfo.db=null}var ve=new _(function(Oe,Ne){var rt=p.deleteDatabase(f.name);rt.onerror=function(){var Qe=rt.result;Qe&&Qe.close(),Ne(rt.error)},rt.onblocked=function(){console.warn('dropInstance blocked for database "'+f.name+'" until all open connections are closed')},rt.onsuccess=function(){var Qe=rt.result;Qe&&Qe.close(),Oe(Qe)}});return ve.then(function(Oe){z.db=Oe;for(var Ne=0;Ne<Y.length;Ne++){var rt=Y[Ne];Se(rt._dbInfo)}}).catch(function(Oe){throw(Re(f,Oe)||_.resolve()).catch(function(){}),Oe})})}return y(I,b),I}var $t={_driver:"asyncStorage",_initStorage:Ze,_support:m(),iterate:vt,getItem:et,setItem:Et,removeItem:it,clear:be,length:He,key:Ae,keys:$e,dropInstance:De};function h(){return typeof openDatabase=="function"}var c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u="~~local_forage_type~",v=/^~~local_forage_type~([^~]+)~/,x="__lfsc__:",O=x.length,W="arbf",ue="blob",_e="si08",ge="ui08",Me="uic8",ke="si16",tt="si32",pr="ur16",Gr="ui32",wo="fl32",fr="fl64",mr=O+W.length,tm=Object.prototype.toString;function rm(f){var b=f.length*.75,g=f.length,T,I=0,S,M,G,z;f[f.length-1]==="="&&(b--,f[f.length-2]==="="&&b--);var Y=new ArrayBuffer(b),J=new Uint8Array(Y);for(T=0;T<g;T+=4)S=c.indexOf(f[T]),M=c.indexOf(f[T+1]),G=c.indexOf(f[T+2]),z=c.indexOf(f[T+3]),J[I++]=S<<2|M>>4,J[I++]=(M&15)<<4|G>>2,J[I++]=(G&3)<<6|z&63;return Y}function Bl(f){var b=new Uint8Array(f),g="",T;for(T=0;T<b.length;T+=3)g+=c[b[T]>>2],g+=c[(b[T]&3)<<4|b[T+1]>>4],g+=c[(b[T+1]&15)<<2|b[T+2]>>6],g+=c[b[T+2]&63];return b.length%3===2?g=g.substring(0,g.length-1)+"=":b.length%3===1&&(g=g.substring(0,g.length-2)+"=="),g}function Pv(f,b){var g="";if(f&&(g=tm.call(f)),f&&(g==="[object ArrayBuffer]"||f.buffer&&tm.call(f.buffer)==="[object ArrayBuffer]")){var T,I=x;f instanceof ArrayBuffer?(T=f,I+=W):(T=f.buffer,g==="[object Int8Array]"?I+=_e:g==="[object Uint8Array]"?I+=ge:g==="[object Uint8ClampedArray]"?I+=Me:g==="[object Int16Array]"?I+=ke:g==="[object Uint16Array]"?I+=pr:g==="[object Int32Array]"?I+=tt:g==="[object Uint32Array]"?I+=Gr:g==="[object Float32Array]"?I+=wo:g==="[object Float64Array]"?I+=fr:b(new Error("Failed to get type for BinaryArray"))),b(I+Bl(T))}else if(g==="[object Blob]"){var S=new FileReader;S.onload=function(){var M=u+f.type+"~"+Bl(this.result);b(x+ue+M)},S.readAsArrayBuffer(f)}else try{b(JSON.stringify(f))}catch(M){console.error("Couldn't convert value into a JSON string: ",f),b(null,M)}}function Lv(f){if(f.substring(0,O)!==x)return JSON.parse(f);var b=f.substring(mr),g=f.substring(O,mr),T;if(g===ue&&v.test(b)){var I=b.match(v);T=I[1],b=b.substring(I[0].length)}var S=rm(b);switch(g){case W:return S;case ue:return d([S],{type:T});case _e:return new Int8Array(S);case ge:return new Uint8Array(S);case Me:return new Uint8ClampedArray(S);case ke:return new Int16Array(S);case pr:return new Uint16Array(S);case tt:return new Int32Array(S);case Gr:return new Uint32Array(S);case wo:return new Float32Array(S);case fr:return new Float64Array(S);default:throw new Error("Unkown type: "+g)}}var Ul={serialize:Pv,deserialize:Lv,stringToBuffer:rm,bufferToString:Bl};function nm(f,b,g,T){f.executeSql("CREATE TABLE IF NOT EXISTS "+b.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],g,T)}function Mv(f){var b=this,g={db:null};if(f)for(var T in f)g[T]=typeof f[T]!="string"?f[T].toString():f[T];var I=new _(function(S,M){try{g.db=openDatabase(g.name,String(g.version),g.description,g.size)}catch(G){return M(G)}g.db.transaction(function(G){nm(G,g,function(){b._dbInfo=g,S()},function(z,Y){M(Y)})},M)});return g.serializer=Ul,I}function dn(f,b,g,T,I,S){f.executeSql(g,T,I,function(M,G){G.code===G.SYNTAX_ERR?M.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[b.storeName],function(z,Y){Y.rows.length?S(z,G):nm(z,b,function(){z.executeSql(g,T,I,S)},S)},S):S(M,G)},S)}function Bv(f,b){var g=this;f=N(f);var T=new _(function(I,S){g.ready().then(function(){var M=g._dbInfo;M.db.transaction(function(G){dn(G,M,"SELECT * FROM "+M.storeName+" WHERE key = ? LIMIT 1",[f],function(z,Y){var J=Y.rows.length?Y.rows.item(0).value:null;J&&(J=M.serializer.deserialize(J)),I(J)},function(z,Y){S(Y)})})}).catch(S)});return y(T,b),T}function Uv(f,b){var g=this,T=new _(function(I,S){g.ready().then(function(){var M=g._dbInfo;M.db.transaction(function(G){dn(G,M,"SELECT * FROM "+M.storeName,[],function(z,Y){for(var J=Y.rows,te=J.length,ve=0;ve<te;ve++){var Oe=J.item(ve),Ne=Oe.value;if(Ne&&(Ne=M.serializer.deserialize(Ne)),Ne=f(Ne,Oe.key,ve+1),Ne!==void 0){I(Ne);return}}I()},function(z,Y){S(Y)})})}).catch(S)});return y(T,b),T}function om(f,b,g,T){var I=this;f=N(f);var S=new _(function(M,G){I.ready().then(function(){b===void 0&&(b=null);var z=b,Y=I._dbInfo;Y.serializer.serialize(b,function(J,te){te?G(te):Y.db.transaction(function(ve){dn(ve,Y,"INSERT OR REPLACE INTO "+Y.storeName+" (key, value) VALUES (?, ?)",[f,J],function(){M(z)},function(Oe,Ne){G(Ne)})},function(ve){if(ve.code===ve.QUOTA_ERR){if(T>0){M(om.apply(I,[f,z,g,T-1]));return}G(ve)}})})}).catch(G)});return y(S,g),S}function kv(f,b,g){return om.apply(this,[f,b,g,1])}function Fv(f,b){var g=this;f=N(f);var T=new _(function(I,S){g.ready().then(function(){var M=g._dbInfo;M.db.transaction(function(G){dn(G,M,"DELETE FROM "+M.storeName+" WHERE key = ?",[f],function(){I()},function(z,Y){S(Y)})})}).catch(S)});return y(T,b),T}function Hv(f){var b=this,g=new _(function(T,I){b.ready().then(function(){var S=b._dbInfo;S.db.transaction(function(M){dn(M,S,"DELETE FROM "+S.storeName,[],function(){T()},function(G,z){I(z)})})}).catch(I)});return y(g,f),g}function $v(f){var b=this,g=new _(function(T,I){b.ready().then(function(){var S=b._dbInfo;S.db.transaction(function(M){dn(M,S,"SELECT COUNT(key) as c FROM "+S.storeName,[],function(G,z){var Y=z.rows.item(0).c;T(Y)},function(G,z){I(z)})})}).catch(I)});return y(g,f),g}function Vv(f,b){var g=this,T=new _(function(I,S){g.ready().then(function(){var M=g._dbInfo;M.db.transaction(function(G){dn(G,M,"SELECT key FROM "+M.storeName+" WHERE id = ? LIMIT 1",[f+1],function(z,Y){var J=Y.rows.length?Y.rows.item(0).key:null;I(J)},function(z,Y){S(Y)})})}).catch(S)});return y(T,b),T}function Wv(f){var b=this,g=new _(function(T,I){b.ready().then(function(){var S=b._dbInfo;S.db.transaction(function(M){dn(M,S,"SELECT key FROM "+S.storeName,[],function(G,z){for(var Y=[],J=0;J<z.rows.length;J++)Y.push(z.rows.item(J).key);T(Y)},function(G,z){I(z)})})}).catch(I)});return y(g,f),g}function jv(f){return new _(function(b,g){f.transaction(function(T){T.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],function(I,S){for(var M=[],G=0;G<S.rows.length;G++)M.push(S.rows.item(G).name);b({db:f,storeNames:M})},function(I,S){g(S)})},function(T){g(T)})})}function Gv(f,b){b=A.apply(this,arguments);var g=this.config();f=typeof f!="function"&&f||{},f.name||(f.name=f.name||g.name,f.storeName=f.storeName||g.storeName);var T=this,I;return f.name?I=new _(function(S){var M;f.name===g.name?M=T._dbInfo.db:M=openDatabase(f.name,"","",0),f.storeName?S({db:M,storeNames:[f.storeName]}):S(jv(M))}).then(function(S){return new _(function(M,G){S.db.transaction(function(z){function Y(Oe){return new _(function(Ne,rt){z.executeSql("DROP TABLE IF EXISTS "+Oe,[],function(){Ne()},function(Qe,Xt){rt(Xt)})})}for(var J=[],te=0,ve=S.storeNames.length;te<ve;te++)J.push(Y(S.storeNames[te]));_.all(J).then(function(){M()}).catch(function(Oe){G(Oe)})},function(z){G(z)})})}):I=_.reject("Invalid arguments"),y(I,b),I}var qv={_driver:"webSQLStorage",_initStorage:Mv,_support:h(),iterate:Uv,getItem:Bv,setItem:kv,removeItem:Fv,clear:Hv,length:$v,key:Vv,keys:Wv,dropInstance:Gv};function zv(){try{return typeof localStorage<"u"&&"setItem"in localStorage&&!!localStorage.setItem}catch{return!1}}function im(f,b){var g=f.name+"/";return f.storeName!==b.storeName&&(g+=f.storeName+"/"),g}function Yv(){var f="_localforage_support_test";try{return localStorage.setItem(f,!0),localStorage.removeItem(f),!1}catch{return!0}}function Kv(){return!Yv()||localStorage.length>0}function Xv(f){var b=this,g={};if(f)for(var T in f)g[T]=f[T];return g.keyPrefix=im(f,b._defaultConfig),Kv()?(b._dbInfo=g,g.serializer=Ul,_.resolve()):_.reject()}function Jv(f){var b=this,g=b.ready().then(function(){for(var T=b._dbInfo.keyPrefix,I=localStorage.length-1;I>=0;I--){var S=localStorage.key(I);S.indexOf(T)===0&&localStorage.removeItem(S)}});return y(g,f),g}function Qv(f,b){var g=this;f=N(f);var T=g.ready().then(function(){var I=g._dbInfo,S=localStorage.getItem(I.keyPrefix+f);return S&&(S=I.serializer.deserialize(S)),S});return y(T,b),T}function Zv(f,b){var g=this,T=g.ready().then(function(){for(var I=g._dbInfo,S=I.keyPrefix,M=S.length,G=localStorage.length,z=1,Y=0;Y<G;Y++){var J=localStorage.key(Y);if(J.indexOf(S)===0){var te=localStorage.getItem(J);if(te&&(te=I.serializer.deserialize(te)),te=f(te,J.substring(M),z++),te!==void 0)return te}}});return y(T,b),T}function eE(f,b){var g=this,T=g.ready().then(function(){var I=g._dbInfo,S;try{S=localStorage.key(f)}catch{S=null}return S&&(S=S.substring(I.keyPrefix.length)),S});return y(T,b),T}function tE(f){var b=this,g=b.ready().then(function(){for(var T=b._dbInfo,I=localStorage.length,S=[],M=0;M<I;M++){var G=localStorage.key(M);G.indexOf(T.keyPrefix)===0&&S.push(G.substring(T.keyPrefix.length))}return S});return y(g,f),g}function rE(f){var b=this,g=b.keys().then(function(T){return T.length});return y(g,f),g}function nE(f,b){var g=this;f=N(f);var T=g.ready().then(function(){var I=g._dbInfo;localStorage.removeItem(I.keyPrefix+f)});return y(T,b),T}function oE(f,b,g){var T=this;f=N(f);var I=T.ready().then(function(){b===void 0&&(b=null);var S=b;return new _(function(M,G){var z=T._dbInfo;z.serializer.serialize(b,function(Y,J){if(J)G(J);else try{localStorage.setItem(z.keyPrefix+f,Y),M(S)}catch(te){(te.name==="QuotaExceededError"||te.name==="NS_ERROR_DOM_QUOTA_REACHED")&&G(te),G(te)}})})});return y(I,g),I}function iE(f,b){if(b=A.apply(this,arguments),f=typeof f!="function"&&f||{},!f.name){var g=this.config();f.name=f.name||g.name,f.storeName=f.storeName||g.storeName}var T=this,I;return f.name?I=new _(function(S){f.storeName?S(im(f,T._defaultConfig)):S(f.name+"/")}).then(function(S){for(var M=localStorage.length-1;M>=0;M--){var G=localStorage.key(M);G.indexOf(S)===0&&localStorage.removeItem(G)}}):I=_.reject("Invalid arguments"),y(I,b),I}var sE={_driver:"localStorageWrapper",_initStorage:Xv,_support:zv(),iterate:Zv,getItem:Qv,setItem:oE,removeItem:nE,clear:Jv,length:rE,key:eE,keys:tE,dropInstance:iE},aE=function(b,g){return b===g||typeof b=="number"&&typeof g=="number"&&isNaN(b)&&isNaN(g)},cE=function(b,g){for(var T=b.length,I=0;I<T;){if(aE(b[I],g))return!0;I++}return!1},sm=Array.isArray||function(f){return Object.prototype.toString.call(f)==="[object Array]"},Ci={},am={},bo={INDEXEDDB:$t,WEBSQL:qv,LOCALSTORAGE:sE},lE=[bo.INDEXEDDB._driver,bo.WEBSQL._driver,bo.LOCALSTORAGE._driver],Vs=["dropInstance"],kl=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(Vs),uE={description:"",driver:lE.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function pE(f,b){f[b]=function(){var g=arguments;return f.ready().then(function(){return f[b].apply(f,g)})}}function Fl(){for(var f=1;f<arguments.length;f++){var b=arguments[f];if(b)for(var g in b)b.hasOwnProperty(g)&&(sm(b[g])?arguments[0][g]=b[g].slice():arguments[0][g]=b[g])}return arguments[0]}var fE=(function(){function f(b){a(this,f);for(var g in bo)if(bo.hasOwnProperty(g)){var T=bo[g],I=T._driver;this[g]=I,Ci[I]||this.defineDriver(T)}this._defaultConfig=Fl({},uE),this._config=Fl({},this._defaultConfig,b),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch(function(){})}return f.prototype.config=function(g){if((typeof g>"u"?"undefined":s(g))==="object"){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var T in g){if(T==="storeName"&&(g[T]=g[T].replace(/\W/g,"_")),T==="version"&&typeof g[T]!="number")return new Error("Database version must be a number.");this._config[T]=g[T]}return"driver"in g&&g.driver?this.setDriver(this._config.driver):!0}else return typeof g=="string"?this._config[g]:this._config},f.prototype.defineDriver=function(g,T,I){var S=new _(function(M,G){try{var z=g._driver,Y=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!g._driver){G(Y);return}for(var J=kl.concat("_initStorage"),te=0,ve=J.length;te<ve;te++){var Oe=J[te],Ne=!cE(Vs,Oe);if((Ne||g[Oe])&&typeof g[Oe]!="function"){G(Y);return}}var rt=function(){for(var Ri=function(hE){return function(){var gE=new Error("Method "+hE+" is not implemented by the current driver"),cm=_.reject(gE);return y(cm,arguments[arguments.length-1]),cm}},Hl=0,dE=Vs.length;Hl<dE;Hl++){var $l=Vs[Hl];g[$l]||(g[$l]=Ri($l))}};rt();var Qe=function(Ri){Ci[z]&&console.info("Redefining LocalForage driver: "+z),Ci[z]=g,am[z]=Ri,M()};"_support"in g?g._support&&typeof g._support=="function"?g._support().then(Qe,G):Qe(!!g._support):Qe(!0)}catch(Xt){G(Xt)}});return C(S,T,I),S},f.prototype.driver=function(){return this._driver||null},f.prototype.getDriver=function(g,T,I){var S=Ci[g]?_.resolve(Ci[g]):_.reject(new Error("Driver not found."));return C(S,T,I),S},f.prototype.getSerializer=function(g){var T=_.resolve(Ul);return C(T,g),T},f.prototype.ready=function(g){var T=this,I=T._driverSet.then(function(){return T._ready===null&&(T._ready=T._initDriver()),T._ready});return C(I,g,g),I},f.prototype.setDriver=function(g,T,I){var S=this;sm(g)||(g=[g]);var M=this._getSupportedDrivers(g);function G(){S._config.driver=S.driver()}function z(te){return S._extend(te),G(),S._ready=S._initStorage(S._config),S._ready}function Y(te){return function(){var ve=0;function Oe(){for(;ve<te.length;){var Ne=te[ve];return ve++,S._dbInfo=null,S._ready=null,S.getDriver(Ne).then(z).catch(Oe)}G();var rt=new Error("No available storage method found.");return S._driverSet=_.reject(rt),S._driverSet}return Oe()}}var J=this._driverSet!==null?this._driverSet.catch(function(){return _.resolve()}):_.resolve();return this._driverSet=J.then(function(){var te=M[0];return S._dbInfo=null,S._ready=null,S.getDriver(te).then(function(ve){S._driver=ve._driver,G(),S._wrapLibraryMethodsWithReady(),S._initDriver=Y(M)})}).catch(function(){G();var te=new Error("No available storage method found.");return S._driverSet=_.reject(te),S._driverSet}),C(this._driverSet,T,I),this._driverSet},f.prototype.supports=function(g){return!!am[g]},f.prototype._extend=function(g){Fl(this,g)},f.prototype._getSupportedDrivers=function(g){for(var T=[],I=0,S=g.length;I<S;I++){var M=g[I];this.supports(M)&&T.push(M)}return T},f.prototype._wrapLibraryMethodsWithReady=function(){for(var g=0,T=kl.length;g<T;g++)pE(this,kl[g])},f.prototype.createInstance=function(g){return new f(g)},f})(),mE=new fE;o.exports=mE},{3:3}]},{},[4])(4)})});var $p=Vl((rc,ng)=>{"use strict";(function(t,e){typeof rc=="object"&&typeof ng<"u"?e(rc):typeof define=="function"&&define.amd?define(["exports"],e):e((t=typeof globalThis<"u"?globalThis:t||self).Sqrl={})})(rc,function(t){"use strict";function e(D){var R,V,k=new Error(D);return R=k,V=e.prototype,Object.setPrototypeOf?Object.setPrototypeOf(R,V):R.__proto__=V,k}function r(D,R,V){var k=R.slice(0,V).split(/\n/),H=k.length,ne=k[H-1].length+1;throw e(D+=" at line "+H+" col "+ne+`:
2
2
 
3
3
  `+R.split(/\n/)[H-1]+`
4
4
  `+Array(ne).join(" ")+"^")}e.prototype=Object.create(Error.prototype,{name:{value:"Squirrelly Error",enumerable:!1}});var n=new Function("return this")().Promise,o=!1;try{o=new Function("return (async function(){}).constructor")()}catch(D){if(!(D instanceof SyntaxError))throw D}function i(D,R){return Object.prototype.hasOwnProperty.call(D,R)}function s(D,R,V){for(var k in R)i(R,k)&&(R[k]==null||typeof R[k]!="object"||k!=="storage"&&k!=="prefixes"||V?D[k]=R[k]:D[k]=s({},R[k]));return D}var a=/^async +/,l=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,p=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,m=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g,d=/[.*+\-?^${}()|[\]\\]/g;function _(D){return d.test(D)?D.replace(d,"\\$&"):D}function y(D,R){R.rmWhitespace&&(D=D.replace(/[\r\n]+/g,`
@@ -50,7 +50,7 @@ mutation cartDiscountCodesUpdate($cartId: ID!, $discountCodes: [String!]) {
50
50
  }
51
51
  }
52
52
  }
53
- `;function nv(t){let e=Xe.get();if(window.cooeeGetCartSections&&typeof window.cooeeGetCartSections=="function")try{return{sections_url:window.location.pathname,sections:window.cooeeGetCartSections()}}catch(r){ae(r,"execute-cooeeGetCartSections",{engagementTrigger:t})}else{if(e.isMiniCart())return{sections:["mini-cart"]};if(e.isShopifyDefaultDrawer())return{sections:e.element.getSectionsToRender?.().map((r=>r.section??r.id))}}return{}}async function ov(t,e){if(!_t.hasKeys(t)){w.warn("No update fields provided");return}let r=nv(e),n=E(E({},t),r);try{let o=await go("/cart/update.js",n);return w.log("Updated cart",t),me.getCurrent().update(o.data),o.data}catch(o){ae(o,"cart-update"),Er("Failed to update item in cart")}}var _i=class{async addToCart(e,r){if(!e.length)return;let n=e.map(s=>{let{vID:a,vName:l,quantity:p}=this.getVariantDetails(s),m=r.getPrivateAttributesForLineItem();if(_t.hasKeys(window.CooeeSDK.customItemProperties)){let d={name:l},_={templateSuffix:s.templateSuffix},y=rv.render(JSON.stringify(window.CooeeSDK.customItemProperties),{variant:d,product:_});m=E(E({},JSON.parse(y)),m)}return{id:a?+a:+s.mID,quantity:p,properties:m}}),o=nv(r),i=E({items:n},o);try{let s=await go("/cart/add.js",i);return w.log(`Added ${e.length} items to Cart`),Er("Product added to your cart"),s.data}catch(s){ae(s,"cart-item-add",{engagementTrigger:r});let a=["Failed to add product in cart."];if(s instanceof Zt&&s.is40x()&&s.responseText){let l=s.responseText;l.description&&a.push(`Reason: ${l.description}`)}a.push("Please try again later."),Er(a.join(" "))}}async copyDiscountCode(e){if(e)try{await navigator.clipboard.writeText(e),w.log(`Code-${e} copied`),Er("Discount code copied")}catch(r){w.error("Failed to copy code",r)}}getProductURL(e){if(!e?.link)return;let r=og(e.link);if(r)return jo("/products/"+r)}async upgradeToSubscription(e,r){if(!e){w.warn("Trying to upgrade to subscription with no item");return}let n=await me.getCurrent().getNormalisedCart(),o=e.selectedOrFirstVariant.value,i=n.items.findIndex(l=>l.vID===o.mID),s=o.selectedSellingPlan.value,a={line:i+1,selling_plan:s?.mID||null,properties:r.getPrivateAttributesForLineItem()};try{let l=await go("/cart/change.js",a);return w.log(`Upgraded ${e} selling plan`),Er("Line item updated"),me.getCurrent().update(l.data),l.data}catch(l){ae(l,"cart-switch-subscription",{engagementTrigger:r}),Er("Failed to update subscription")}}async createNewCart(e,r,n){if(!e?.vID){w.error("No variant ID found to perform Buy now",e);return}let o=r?[r]:[],i=[{merchandiseId:`gid://shopify/ProductVariant/${e.vID}`,quantity:1,attributes:n.getKVFormatPrivateAttributesForLineItem()}],s=await Wa("Buy Now");return(await ol(K0,{input:{lines:i,discountCodes:o,attributes:s}},"storefront-create-cart")).data.data?.cartCreate?.cart?.checkoutUrl}async process(e){let r=e.clickAction,n=e.items,o=e.triggerData,i;if(r.at){let s=r;if(w.log(`Performing ${JSON.stringify(s)} action`),s.at===we.GO_TO_PRODUCT)i=this.getProductURL(n[0]);else if(s.at===we.ADD_TO_CART)n?.length&&await this.addToCart(n,o);else if(s.at===we.COPY_COUPON_CODE)await this.copyDiscountCode(o.discount?.code);else if(s.at===we.OPEN_CART)Xe.get().open();else if(s.at===we.GO_TO_COLLECTION){let a=e.collections;if(!a?.length)return;i=jo("/collections/"+a[0].handle)}}r.applyDiscount&&o.discount?.code?Un.navigate(o.discount.code,o.redirectBehaviour,i):i&&(location.pathname=i)}getVariantDetails(e){let r,n,o;if(e instanceof At)r=e.vID,n=e.vName,o=e.quantity??1;else{if(!e.vars?.length)return{};r=e.selectedOrFirstVariant.value.mID,n=e.selectedOrFirstVariant.value.name,o=1}return{vID:r,quantity:o,vName:n}}};async function iv(t,e){if(!_t.hasKeys(e)){w.warn("No update fields provided");return}let r=E({id:t.key},e);try{let n=await go("/cart/change.js",r);w.log("Updated line-item",t),me.getCurrent().update(n.data)}catch(n){ae(n,"cart-item-update")}}var al=class{static updateIdentity(e){if(!this.isInstalled())return;let r={};e.email&&(r.email=e.email),e.mobile&&(r.phone_number=e.mobile),w.verbose("Sending email/mobile to Klaviyo"),window.klaviyo.push(["identify",r])}static isInstalled(){return window.klaviyo&&typeof window.klaviyo=="object"}};var cl=class{action;triggerContext;constructor(e,r){this.action=e,this.triggerContext=r}async execute(){let e=this.containsCTA()?"CE Trigger Clicked":"CE Trigger Closed";switch(this.action.at!==we.SUBMIT_FORM&&await this.closeTriggerAndSendEvent(e),this.action.at){case we.ACCEPT_POPUP:break;case we.GO_TO_URL:this.gotoURLAction();break;case we.SHARE:this.shareAction();break;case we.SUBMIT_FORM:await this.collectFormData();break;case void 0:case we.OPEN_CART:break;default:w.error("Received an invalid ClickActionType: ",this.action.at);return}}externalAction(){this.action.ext?.u&&window.open(this.action.ext.u,"_blank")?.focus()}gotoURLAction(){if(this.action.gu?.u){let e=this.action.gu.u;ko(e)||(e=`//${e}`),window.open(e,"_self")}}async closeTriggerAndSendEvent(e,r){this.triggerContext.closeInApp(e,r),await this.dispatchEvent()}shareAction(){if(!this.action.share)return;if(!navigator.share){w.warn("Navigator.share is not compatible with this browser");return}navigator.share({text:this.action.share.text,title:"Share"}).then(r=>console.log(r)).catch(r=>console.error(r))}containsCTA(){return this.action.at&&this.action.at!==we.REJECT_POPUP?!0:!(this.isEmpty(this.action.custKV)&&this.isEmpty(this.action.up))}isEmpty(e){return e?Object.keys(e).length===0:!0}async collectFormData(){let e={};for(let r of this.triggerContext.inputs){if(!r.isValid)return;let o=document.getElementById(r.id).value;r.type===51?e.email=o:r.type===52&&(e.mobile=o)}await this.closeTriggerAndSendEvent("CE Form Submitted",{form:e}),this.action.applyDiscount&&Er("Coupon applied on cart"),al.updateIdentity(e)}async dispatchEvent(){let e=this.triggerContext.triggerData,r={clickAction:this.action,items:this.triggerContext.selectedEmbeddedItems??e.embeddedItems??e.items,collections:e.collections,triggerData:e};await new _i().process(r);let n={action:this.containsCTA()?"CLICKED":"CLOSED"};document.dispatchEvent(new CustomEvent("letscooee:outbound:popup-activities",{detail:n}))}};var ur=class{renderer=kn.get();parentHTMLEl;inappElement;inappHTMLEl;triggerContext;stylesConverter;scalingFactor;constructor(e,r,n){this.parentHTMLEl=e,this.inappElement=r,this.triggerContext=n,this.stylesConverter=new Ei(this.renderer.getScalingFactor())}getHTMLElement(){return this.inappHTMLEl}insertElement(){this.parentHTMLEl.appendChild(this.inappHTMLEl)}processCommonBlocks(){this.processWidthAndHeight(),this.processPositionBlock(),this.processTransformBlock(),this.processTransparency(),this.processShadow(),this.registerAction();let e=Z(E(E(E(E({},this.getDisplayStyles()),this.getSpaceStyles()),this.getBorderStyles()),this.getBackgroundStyles()),{boxSizing:"border-box",outline:"none"});yo(this.inappHTMLEl,e)}getDisplayStyles(){return{display:"block"}}processWidthAndHeight(){this.inappElement.w&&re(this.inappHTMLEl,"width",this.stylesConverter.getSizePx(this.inappElement.w)),this.inappElement.h&&re(this.inappHTMLEl,"height",this.stylesConverter.getSizePx(this.inappElement.h))}processPositionBlock(){let e={position:"absolute",left:this.stylesConverter.getSizePx(this.inappElement.x),top:this.stylesConverter.getSizePx(this.inappElement.y)};yo(this.inappHTMLEl,e)}getBorderStyles(){return this.stylesConverter.getBorderStyles(this.inappElement.br)}getSpaceStyles(){return this.stylesConverter.getSpaceStyles(this.inappElement.spc)}processTransparency(){let e=this.inappElement.alpha;if(!isNaN(e)){let r=(e/100).toFixed(2);re(this.inappHTMLEl,"opacity",r)}}processShadow(){let e=this.inappElement.shd;e?re(this.inappHTMLEl,"box-shadow",e.getStyle(this.scalingFactor)):re(this.inappHTMLEl,"box-shadow","unset")}processTransformBlock(){let e=new Vn(this.inappElement.trf);e&&e.rotate&&re(this.inappHTMLEl,"transform",`rotate(${e.rotate}deg)`)}registerAction(){let e=this.inappElement.clc;!e||Object.keys(e).length===0||(this.inappHTMLEl.addEventListener("click",r=>{r.stopPropagation(),new cl(e,this.triggerContext).execute()}),re(this.inappHTMLEl,"cursor","pointer"))}getBackgroundStyles(){return this.stylesConverter.getBackgroundStyles(this.inappElement.bg)}};var Wr=class extends ur{constructor(e,r,n){super(e,r,n)}processCommonBlocks(){super.processCommonBlocks(),this.processFontBlock(),this.processAlignment()}processFontBlock(){let e={},r=this.inappElement.typography;return r&&(e.fontSize=this.stylesConverter.getSizePx(r.fs),e.fontFamily="cooee"+r.fam?.name,e.lineHeight=`${r.lh}`,e.letterSpacing=r.letterSpacing),this.stylesConverter.getColourStyles(this.inappElement.color,"color",e),yo(this.inappHTMLEl,e),e}processPart(e,r){let n=[];r.u&&n.push("underline"),r.st&&n.push("line-through"),n.length||n.push("normal"),re(e,"font-weight",r.b?"bold":"normal"),re(e,"font-style",r.i?"italic":"normal"),re(e,"text-decoration",n.join(" ")),re(e,"color",r.c??"inherit"),re(e,"font-family","inherit")}processAlignment(){let e=this.inappElement.typography.ta,r=e?Io[e]?.toLowerCase():this.inappElement.typography.alignment;r||(r="start"),re(this.inappHTMLEl,"text-align",r)}};var Cs=class extends Wr{constructor(e,r,n){super(e,r,n),this.inappHTMLEl=document.createElement("div"),this.insertElement()}render(){this.inappElement.parts?.forEach(e=>{let r=document.createElement("span");r.innerHTML=e.txt?.toString()?.replace(/\n/g,"<br />"),this.processPart(r,e),this.inappHTMLEl.appendChild(r)}),this.processCommonBlocks()}};var Rs=class extends ur{constructor(e,r,n){super(e,r,n),this.inappHTMLEl=document.createElement("div"),this.insertElement()}render(){this.processCommonBlocks()}};var vo=class extends ur{constructor(e,r,n){super(e,r,n),this.inappHTMLEl=document.createElement("img"),this.insertElement()}render(){this.inappHTMLEl.setAttribute("src",this.inappElement.src),re(this.inappHTMLEl,"max-width","none"),re(this.inappHTMLEl,"max-height","none"),re(this.inappHTMLEl,"margin","0 auto"),this.processCommonBlocks()}};var As=class t extends ur{constructor(r,n,o){super(r,n,o);this.parent=r;this.inappHTMLEl=document.createElement("div")}static MAX_Z_INDEX="2147483647";render(){return this.parent||this.renderer.removeInApp(),this.insertElement(),this.processCommonBlocks(),this.inappHTMLEl.classList.add("cooee-wrapper"),this.inappHTMLEl.classList.add(this.triggerContext.rootClassName),re(this.inappHTMLEl,"z-index",t.MAX_Z_INDEX),this.inappHTMLEl}getBackgroundStyles(){return this.inappElement.cover?super.getBackgroundStyles():{}}processWidthAndHeight(){let r=this.inappElement.cont;if(this.inappElement.cover)this.renderer.isParentNotBody()?(re(this.inappHTMLEl,"width","100%"),re(this.inappHTMLEl,"height","100%")):(re(this.inappHTMLEl,"width","100vw"),re(this.inappHTMLEl,"height","100vh")),re(this.inappHTMLEl,"top","0"),re(this.inappHTMLEl,"left","0");else{let n=this.inappElement.spc,o=this.stylesConverter.getScaledSize(r.w)+n.getHorizontal(),i=this.stylesConverter.getScaledSize(r.h)+n.getVertical();re(this.inappHTMLEl,"width",o+"px"),re(this.inappHTMLEl,"height",i+"px")}}getSpaceStyles(){return{padding:this.inappElement.spc.getPaddingCSS()}}getDisplayStyles(){return E(E({display:"flex"},this.inappElement.getStylesForWrapper()),this.inappElement.getFlexStylesForContainer())}processPositionBlock(){this.renderer.isParentNotBody()?re(this.inappHTMLEl,"position","absolute"):re(this.inappHTMLEl,"position","fixed")}getBorderStyles(){return{}}processTransparency(){}processTransformBlock(){}processShadow(){}};var X0="cooee-container",ll=class extends ur{constructor(e,r,n){super(e,r,n),this.inappHTMLEl=document.createElement("div"),this.insertElement()}render(){return this.processCommonBlocks(),re(this.inappHTMLEl,"position","relative"),re(this.inappHTMLEl,"overflow","hidden"),this.inappHTMLEl.classList.add(X0),this}};var ul=class t extends Wr{static DAYS="Days";static HOURS="Hours";static MINUTES="Minutes";static SECONDS="Seconds";elements;spans=[];constructor(e,r,n){super(e,r,n),this.inappHTMLEl=document.createElement("div"),this.insertElement()}render(){this.addTimerChildren(),this.processAndStartTimer(),this.processCommonBlocks();let e=Z(E(E(E({flex:"1 1 0"},this.stylesConverter.getBackgroundStyles(this.inappElement.bg)),this.stylesConverter.getBorderStyles(this.inappElement.br)),this.stylesConverter.getSpaceStyles(this.inappElement.spc)),{marginLeft:this.stylesConverter.getSizePx(this.inappElement.gap),marginRight:this.stylesConverter.getSizePx(this.inappElement.gap)});this.addStylesToTimer(e)}getBackgroundStyles(){return{}}processFontBlock(){let e=super.processFontBlock();return this.stylesConverter.getColourStyles(this.inappElement.color,"color",e),this.addStylesToTimer(e),e}getSpaceStyles(){return{}}getBorderStyles(){return{}}getDisplayStyles(){return{display:"flex",flexWrap:"nowrap",justifyContent:"center"}}addStylesToTimer(e){this.elements.forEach(r=>yo(r,e))}addTimerChildren(){let e=this.inappElement.show;this.elements=[],e.day&&this.elements.push(this.getChild(t.DAYS)),e.hour&&this.elements.push(this.getChild(t.HOURS)),e.minute&&this.elements.push(this.getChild(t.MINUTES)),e.second&&this.elements.push(this.getChild(t.SECONDS)),this.elements.forEach(r=>this.inappHTMLEl.appendChild(r))}getChild(e){let r=document.createElement("div"),n=document.createElement("span"),o=document.createElement("span");return o.innerText=e,n.innerText="00",n.id=`lc-${e}`,re(o,"font-size","0.5em"),re(o,"text-align","center"),re(o,"font-family","inherit"),re(n,"text-align","center"),re(n,"font-family","inherit"),this.inappElement.lblPos==="start"?(r.appendChild(o),r.appendChild(n)):(r.appendChild(n),r.appendChild(o)),re(r,"display","flex"),re(r,"flex-direction",this.inappElement.horizontal?"":"column"),re(r,"justify-content","center"),re(r,"align-items","center"),re(r,"gap","5px"),this.spans.push(n),r}processAndStartTimer(){let e=this.inappElement.timer.start(this.inappElement.timerType,r=>{this.spans.forEach(n=>{n.id===`lc-${t.DAYS}`?n.innerText=String(r.days).padStart(2,"0"):n.id===`lc-${t.HOURS}`?n.innerText=String(r.hours).padStart(2,"0"):n.id===`lc-${t.MINUTES}`?n.innerText=String(r.minutes).padStart(2,"0"):n.id===`lc-${t.SECONDS}`&&(n.innerText=String(r.seconds).padStart(2,"0"))})});this.triggerContext.intervals.push(e)}};var pl=class extends Wr{constructor(e,r,n){super(e,r,n),this.inappHTMLEl=document.createElement("select"),this.insertElement()}render(){re(this.inappHTMLEl,"background","#ffffff00"),re(this.inappHTMLEl,"outline","none"),this.processCommonBlocks(),this.addListener(this.inappHTMLEl),this.addOptions()}addListener(e){this.triggerContext.selectedEmbeddedItems?.length||this.updateItems(this.triggerContext.triggerData.items[0].vars[0]),e.addEventListener("click",r=>{r.stopPropagation()}),e.addEventListener("change",()=>{let r=new Lr(JSON.parse(e.value));this.updateItems(r)})}updateItems(e){let r=this.triggerContext.triggerData.items[0];this.triggerContext.selectedEmbeddedItems=[r.toEmbed(e)];let n=this.parentHTMLEl.querySelector("#coo-13");if(!n)return;let o=e.imgs[0]??r.imgs?.at(0);o?.url&&n.setAttribute("src",o.url)}addOptions(){let e=this.triggerContext.triggerData.items,r=this.inappHTMLEl;if(!e?.length){r.add(this.createOption(this.inappElement.placeholderText));return}let n=this.triggerContext.selectedEmbeddedItems?.at(0);e[0].vars.forEach(o=>{r.add(this.createOption(o.name??"Default",o,o.mID===n?.vID))})}createOption(e,r,n){let o=document.createElement("option");return o.text=e,o.value=JSON.stringify(r),n&&(o.selected=!0),r||(o.disabled=!0),o}};var wi=class extends Wr{borderColor="";constructor(e,r,n){super(e,r,n),this.inappHTMLEl=document.createElement("input"),this.insertElement()}render(){let e=this.setInputType();this.inappHTMLEl.setAttribute("placeholder",this.inappElement.placeholderText),re(this.inappHTMLEl,"background","#ffffff00"),re(this.inappHTMLEl,"outline","none"),this.inappHTMLEl.addEventListener("click",r=>{r.stopPropagation()}),this.processCommonBlocks(),this.addListener(this.inappHTMLEl,e),this.triggerContext.addInputField(e,this.inappElement.t)}};var fl=class t extends wi{static EMAIL_REGEX=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;constructor(e,r,n){super(e,r,n)}setInputType(){let e=`coo-${this.inappElement.t}`;return this.inappHTMLEl.setAttribute("type","email"),this.inappHTMLEl.setAttribute("id",e),e}addListener(e,r){e.addEventListener("keydown",n=>{this.borderColor||(this.borderColor=this.inappHTMLEl.style.borderColor),e.value.match(t.EMAIL_REGEX)?(re(this.inappHTMLEl,"border-color",this.borderColor),this.triggerContext.updateValidation(r,!0)):(re(this.inappHTMLEl,"border-color","red"),this.triggerContext.updateValidation(r,!1)),n.stopPropagation()})}};var ml=class t extends wi{static MOBILE_REGEX=/^\d+$/;constructor(e,r,n){super(e,r,n)}setInputType(){let e=`coo-${this.inappElement.t}`;return this.inappHTMLEl.setAttribute("type","tel"),this.inappHTMLEl.setAttribute("id",e),e}addListener(e,r){e.addEventListener("keydown",n=>{this.borderColor||(this.borderColor=this.inappHTMLEl.style.borderColor),e.value.match(t.MOBILE_REGEX)?(re(this.inappHTMLEl,"border-color",this.borderColor),this.triggerContext.updateValidation(r,!0)):(re(this.inappHTMLEl,"border-color","red"),this.triggerContext.updateValidation(r,!1)),n.stopPropagation()})}};var dl=class extends vo{constructor(e,r,n){super(e,r,n)}render(){super.render(),this.inappHTMLEl.setAttribute("id",`coo-${this.inappElement.type}`)}};var kn=class t{static DOCUMENT_STANDARD_MODE="CSS1Compat";static ACTIVE_TRIGGER_DATA;static _instance;parent;rootContainer;containerHTMLElement;ian;scalingFactor=1;triggerContext;resizeListener;cartDrawerToggleSubscription;constructor(e){this.resizeListener=()=>this.screenResized(),this.setParentContainer(e)}static get(){return t._instance}render(e){this.renderEngagement(new St(e))}getScalingFactor(){return this.scalingFactor}calculateScalingFactor(e){let r=e.max,n=e.cont.w,o=e.cont.h,i=e.spc,s=this.getWidth(),a=this.getHeight();r&&(s=s?Math.min(s,r):r,a=a?Math.min(a,r):r),a&&(s-=i.getHorizontal(),a-=i.getVertical(),s/a<n/o?this.scalingFactor=s/n:this.scalingFactor=a/o,this.scalingFactor=Math.min(this.scalingFactor,1))}setParentContainer(e){this.parent=e||document.body,this.isParentNotBody()&&re(this.parent,"position","relative")}isParentNotBody(){return this.parent&&this.parent!==document.body}getWidth(){return this.isParentNotBody()?this.parent.clientWidth:document.compatMode===t.DOCUMENT_STANDARD_MODE?document.documentElement.clientWidth:window.innerWidth}getHeight(){return this.isParentNotBody()?this.parent.clientHeight:document.compatMode===t.DOCUMENT_STANDARD_MODE?document.documentElement.clientHeight:window.innerHeight}async renderEngagement(e){this.triggerContext=new Tr(new Date,e),this.triggerContext.onClose(r=>{this.closeInApp(r)}),this.ian=e.ian,(Vr()||e.previewType==="mobile")&&this.ian.overrideForMobileView(),await this.preloadImages(e),e.shouldDelay()?window.setTimeout(()=>{this.withCartDrawerClosed()},e.getDelaySeconds()):this.withCartDrawerClosed()}withCartDrawerClosed(){if(!Xe.get().isOpen()){this.startRenderingOnce();return}this.cartDrawerToggleSubscription=window.CooeeSDK.cartDrawerToggle$.subscribe(({open:r})=>{!r&&this.startRenderingOnce()})}startRenderingOnce(){if(!this.shouldSkipCampaign()){t.ACTIVE_TRIGGER_DATA=this.triggerContext.triggerData,t._instance=this;try{this.startRendering()}catch(e){ae(e,"render-popup",{triggerContext:this.triggerContext});return}this.sendTriggerDisplayed(),Vr()||window.addEventListener("resize",this.resizeListener),this.cartDrawerToggleSubscription?.unsubscribe()}}shouldSkipCampaign(){let e=this.triggerContext.triggerData;if(!e.previewType&&t.ACTIVE_TRIGGER_DATA){let n={triggerShown:new Dn(t.ACTIVE_TRIGGER_DATA??{})};return this.skipTrigger(e,n),!0}if(pe().isGoKwikPopupOpen)return this.skipTrigger(e,{reason:"GoKwik popup is open"}),!0;let r=fm.find(n=>!!document.querySelector(n.identifier));return r?(this.skipTrigger(e,{reason:`${r.gateway} modal is open`}),!0):!1}startRendering(){this.calculateScalingFactor(this.ian),this.rootContainer=new As(this.parent,this.ian,this.triggerContext).render();try{this.renderContainer(this.triggerContext)}catch(e){throw w.error(e),e}}sendTriggerDisplayed(){let e={};this.triggerContext.triggerData.items?.length&&(e.promotedMIDs=this.triggerContext.triggerData.items?.map(o=>o.mID));let r=new xe("CE Trigger Displayed",e,this.triggerContext.triggerData);Mt(r);let n={action:"DISPLAYED"};document.dispatchEvent(new CustomEvent("letscooee:outbound:popup-activities",{detail:n}))}sendTriggerClosed(e){let r=e.eventName;delete e.eventName;let n=new xe(r,e,this.triggerContext.triggerData);n.name==="CE Trigger Clicked"&&(n.items=this.triggerContext.selectedEmbeddedItems??this.triggerContext.triggerData.items?.map(o=>o.toEmbed())),Mt(n)}addEnterAnimation(e){this.containerHTMLElement.animate(e.getEnterAnimation(),{duration:500})}renderElement(e,r,n){r instanceof Yo?new fl(e,r,n).render():r instanceof Ko?new ml(e,r,n).render():r instanceof In?new Cs(e,r,n).render():r instanceof Xo?new dl(e,r,n).render():r instanceof on?new vo(e,r,n).render():r instanceof Zn?new Rs(e,r,n).render():r instanceof qo?new ul(e,r,n).render():r instanceof zo?new pl(e,r,n).render():w.error("Unsupported element type- "+r.type)}renderContainer(e){let r=this.ian?.cont;r&&(this.containerHTMLElement=new ll(this.rootContainer,r,e).render().getHTMLElement(),new il().loadAllFonts(this.ian),this.ian.elems?.forEach(async n=>{await this.renderElement(this.containerHTMLElement,n,e)}),this.addEnterAnimation(this.ian.anim))}closeInApp(e){let r=this.ian.anim.getExitAnimation();this.sendTriggerClosed(e),t.ACTIVE_TRIGGER_DATA=void 0;let n=this.containerHTMLElement.animate(r,{duration:500,easing:"ease-in-out"});n.onfinish=()=>{this.removeInApp(),window.removeEventListener("resize",this.resizeListener)}}screenResized(){this.removeInApp(),this.startRendering()}removeInApp(){let e=document.querySelector(`.${this.triggerContext.rootClassName}`);e&&e.parentElement.removeChild(e)}skipTrigger(e,r){let n=new xe("CE Campaign Rejected",r,e);Mt(n)}async preloadImages(e){let r=e.ian;if(!r)return;let n=[];r.elems.forEach(o=>{let i=o.bg?.img?.src;if(i&&n.push(i),o.t===1){let s=o.src;if(!s)return;n.push(s)}}),r.bg?.img?.src&&n.push(r.bg.img.src),r.cont.bg?.img?.src&&n.push(r.cont.bg.img.src),await Promise.allSettled(n.map(o=>Yy(o)))}};var hl=class{triggerData;render(e){e.contentSource===Ni.KLAVIYO&&(this.triggerData=e,window.addEventListener("klaviyoForms",this.handleKlaviyoEvents.bind(this)),window._klOnsite=window._klOnsite||[],window._klOnsite.push(["openForm",e.klaviyoFormID]))}handleKlaviyoEvents(e){if(e.type!=="klaviyoForms")return;let r=e.detail;if(r.formId!==this.triggerData.klaviyoFormID){w.warn("Received invalid trigger callback");return}switch(r.type){case"open":Mt(new xe("CE Trigger Displayed",{form:{id:r.formId}},this.triggerData));break;case"stepSubmit":{let n=this.getFormDetails(r);Mt(new xe("CE Form Submitted",{form:n},this.triggerData)),bi(n);break}case"close":window.removeEventListener("klaviyoForms",this.handleKlaviyoEvents.bind(this)),Mt(new xe("CE Trigger Closed",{form:{id:r.formId}},this.triggerData));break}}getFormDetails(e){let r={id:e.formId},n=e.metaData;if(_t.hasKeys(n)){let o=["email","phone_number","first_name","last_name","$email","$phone_number","$first_name","$last_name"];Object.keys(n).forEach(a=>{o.includes(a)||(r[a]=n[a])}),r.email=n.$email??n.email,r.mobile=n.$phone_number??n.phone_number;let i=n.$first_name??n.first_name,s=n.$last_name??n.last_name;(i?.length||s?.length)&&(r.name=i+" "+s)}return r}};var gl=class{static trackIntent(e){if(!this.isInstalled()){w.verbose("Facebook pixel not installed");return}if(!ze.get().pixelPush){w.verbose("Facebook pixel push not enabled");return}let n=mo[e.intent]?.toLowerCase(),o=e.segmentName;!n&&!o||(w.verbose(`Sending ${n} intent and ${o} segment to Facebook Pixel`),window.fbq("trackCustom","CooeeIntent",{intent_value:n,segment_value:e.segmentName}))}static isInstalled(){return window.fbq&&typeof window.fbq=="function"}};var jf=new Map,yl=async t=>{for(let i of t.items)if(window.cooeeManipulateProduct)try{window.cooeeManipulateProduct(i,t)}catch(s){w.error(s)}if(t.isCartEmbed()&&!t.isSubscriptionUpsell()){let s=(await me.getCurrent().getNormalisedCart()).items.map(a=>a.mID);t.items=t.items.filter(a=>!s.includes(a.mID))}if(t.items=sv(t),ze.get().currencyCount<=1)return t.items;if(t.isShoppableVideo())return await J0(t.content.videoConfig,t),t.items;let e=t.items.length,r=t.items.map(i=>av(i,t)),o=(await Promise.all(r)).filter(i=>i!=null);if(e&&!o.length){let i="Failed to fetch any product from Ajax API",s=new xe("CE Campaign Failed",{reason:i,currency:t.currency},t);throw Mt(s),new Error(i)}return sv(t,o)},sv=(t,e=t.items)=>{if(!t.isCartRecovery())return e;let r=me.getCurrent().items,n=[];for(let o of e)for(let i of o.vars){if(!i.isAvailable)continue;let s=r.find(p=>p.variant_id.toString()===i.mID);if(!s)continue;let a=new xt(o);a.name=s.title;let l=new Lr(i);l.name=s.variant_title,l.price.d=s.discounted_price/100,a.variants=[l],n.push(a)}return n},J0=async(t,e)=>{await Promise.all(t.videos.map(async r=>{r.items=await Promise.all(r.items.map(async n=>{let o=await av(n,e);return o||n}))}))},av=async(t,e)=>{if(jf.has(t.mID))return jf.get(t.mID);let r,n=`/products/${t.slug}.js`;try{r=(await Jr(n)).data}catch(o){return o instanceof Zt&&o.response?.status===404||ae(o,"fetch-shopify-product",{extra:{item:t,path:n},engagementTrigger:e}),null}return r?Q0(t,r):(w.error("Item not found after AJAX call for:",t),null)},Q0=(t,e)=>{if(!t||!e)return t;t.name=e.title,t.tags=e.tags,t.slug=e.handle;let r=t.selectedOrFirstVariant.value;return t.vars.map(n=>{let o=e.variants.find(i=>i.id===+n.mID);o!=null&&(n.name=o.title,n.isAvailable=o.available,n.price.d=o.price?o.price/100:o.price,n.price.effective=n.price.d,n.price.cmp=o.compare_at_price?o.compare_at_price/100:o.compare_at_price,+r.mID===o.id&&(r.effectivePrice.value=n.price.d))}),jf.set(t.mID,t),t};var Gf="/v1/event/track-page-unload";function Tt(t){w.verbose(`Waiting for auth to send event ${t.name}`),Sr(lr).then(()=>Mt(t))}function zy(t){Sr(lr).then(()=>{Z0(t).catch(e=>ae(e,"track-page-unload"))})}async function Z0(t){let e=pe().currentPageViewEvent;if(!e){w.warn("No page view event was stored previously");return}let r={pageViewEventID:e.id,pageViewEventName:e.name,pageActiveTimeMS:t};w.verbose("Sending page unload",r);try{await Yt(Gf,r)}catch(n){throw w.error(`Error sending page unload for ${e} to server`,n),n}}function Mt(t){eT(t).catch(e=>ae(e,"track-event",{extra:{event:t}}))}async function eT(t){if(w.verbose(`Sending event: ${t.name}`,t),sT(t)){w.warn(`Rejecting event ${t.name}`);return}jy();let e=await Fn();Object.assign(t,e),qy(),It.set("lastUsedTime",new Date().getTime());let r=iT(t.name),n=r.toLowerCase().replace(/\s+/g,"-");try{let o=await Yt(`/v1/event/track/${n}`,t);w.info("\u2705 Event tracked:",r),tT(t)&&(pe().currentPageViewEvent={id:t.id,name:t.name}),rT(t,o.data)}catch(o){throw w.error(`Error sending event ${t.name} to server`,o),o}}function tT(t){return dm.includes(t.name)?t.name==="View Cart"?!t.properties.drawer:!0:!1}function rT(t,e){nT(t,e).catch(r=>{ae(r,"process-popup-response",{extra:{event:t,response:e}})}),oT(e)}async function nT(t,e){if(!e.triggerData)return;let r=new St(e.triggerData);r.occurred=t.occurred,w.log(`${r} will be shown`);let n;try{n=await yl(r)}catch(o){w.error("Failed to refresh the products",o);return}if(r.items=n,r.contentSource===Ni.KLAVIYO){new hl().render(r);return}new kn().renderEngagement(r).catch(o=>{ae(o,"render-popup",{extra:{event:t},engagementTrigger:r})})}function oT(t){t.intent&&(vi.trackIntent(t.intent),gl.trackIntent(t),w.info(`Intent is ${mo[t.intent]}`))}function iT(t){return t.replace("CE ","").replace("Trigger","Campaign").replace("Screen","Page").replace("App ","")}function sT(t){return t.trigger?.triggerID==="test"||t.trigger?.triggerID==="preview"?(w.warn("Not sending event as this is a test trigger"),!0):!1}var aT="keepalive"in new Request(""),jr=new Headers;pT();async function Fn(){let[t]=await Promise.all([ho.getInstance().checkSessionAndGetContext()]);return E(E({},Vc()),t)}function bi(t){Sr(lr).then(()=>cT(t??{}))}function cT(t){lv("/v1/user/update",t).then(()=>{w.verbose("Updated user profile")}).catch(e=>{w.error("Error saving user profile",e)})}function cv(t){return Yt("/v1/event/generate-discount",t)}function vl(t){Sr(lr).then(()=>lT({props:t}))}function lT(t){lv("/v1/device/update",t).then(()=>{w.verbose("Updated device properties")}).catch(async e=>{w.error("Error saving device property",e)})}function $y(t){t&&jr.set("cooee-device-id",t)}function Vy(t){t&&jr.set("cooee-first-seen",t.toUTCString())}function Yt(t,e){return uv("POST",t,e)}function lv(t,e){return uv("PUT",t,e)}function uv(t,e,r){if(!rs()&&!pe().flags?.allowEvents)return w.log(`Rejecting ${t} ${e} as this is not e-commerce app`),Promise.reject();if(e.startsWith("http")||(e=dr.apiURL+e),r&&!aT&&e.includes(Gf))return uT(e,jr,r);let n={method:t,headers:jr,keepalive:!1};return r&&(n.body=JSON.stringify(r)),Jr(e,n)}function uT(t,e,r){return new Promise((n,o)=>{let i=new XMLHttpRequest;i.open("POST",t,!0),e.forEach((s,a)=>{i.setRequestHeader(a,s)}),i.onreadystatechange=()=>{if(i.readyState===XMLHttpRequest.DONE)if(i.status>=200&&i.status<300)try{if(i.getResponseHeader("Content-Type")?.includes("application/json")){let a=JSON.parse(i.responseText);n({data:a,headers:e,request:i,status:i.status,statusText:i.statusText})}else o(new Error("Content-Type of response header is not json"))}catch(s){o(s)}else o(new Error(`Received status - ${i.status}(${i.statusText})`))},i.onerror=()=>{o(new Error("Network error occurred during the request."))},i.send(JSON.stringify(r))})}function pT(){jr.set("Content-Type","application/json; charset=utf-8"),jr.set("cooee-sdk",Ws),jr.set("cooee-sdk-code",um.toString()),jr.set("cooee-sdk-version",js),jr.set("cooee-shop-name",nc()??""),dr.debug&&jr.set("cooee-sdk-debug",String(1))}var El=class{modifications=[];constructor(){sn(`.lc-hide {display: none !important;height: 0 !important;}
53
+ `;function nv(t){let e=Xe.get();if(window.cooeeGetCartSections&&typeof window.cooeeGetCartSections=="function")try{return{sections_url:window.location.pathname,sections:window.cooeeGetCartSections()}}catch(r){ae(r,"execute-cooeeGetCartSections",{engagementTrigger:t})}else{if(e.isMiniCart())return{sections:["mini-cart"]};if(e.isShopifyDefaultDrawer())return{sections:e.element.getSectionsToRender?.().map((r=>r.section??r.id))}}return{}}async function ov(t,e){if(!_t.hasKeys(t)){w.warn("No update fields provided");return}let r=nv(e),n=E(E({},t),r);try{let o=await go("/cart/update.js",n);return w.log("Updated cart",t),me.getCurrent().update(o.data),o.data}catch(o){ae(o,"cart-update"),Er("Failed to update item in cart")}}var _i=class{async addToCart(e,r){if(!e.length)return;let n=e.map(s=>{let{vID:a,vName:l,quantity:p}=this.getVariantDetails(s),m=r.getPrivateAttributesForLineItem();if(_t.hasKeys(window.CooeeSDK.customItemProperties)){let d={name:l},_={templateSuffix:s.templateSuffix},y=rv.render(JSON.stringify(window.CooeeSDK.customItemProperties),{variant:d,product:_});m=E(E({},JSON.parse(y)),m)}return{id:a?+a:+s.mID,quantity:p,properties:m}}),o=nv(r),i=E({items:n},o);try{let s=await go("/cart/add.js",i);return w.log(`Added ${e.length} items to Cart`),Er("Product added to your cart"),s.data}catch(s){ae(s,"cart-item-add",{engagementTrigger:r});let a=["Failed to add product in cart."];if(s instanceof Zt&&s.is40x()&&s.responseText){let l=s.responseText;l.description&&a.push(`Reason: ${l.description}`)}a.push("Please try again later."),Er(a.join(" "))}}async copyDiscountCode(e){if(e)try{await navigator.clipboard.writeText(e),w.log(`Code-${e} copied`),Er("Discount code copied")}catch(r){w.error("Failed to copy code",r)}}getProductURL(e){if(!e?.link)return;let r=og(e.link);if(r)return jo("/products/"+r)}async upgradeToSubscription(e,r){if(!e){w.warn("Trying to upgrade to subscription with no item");return}let n=await me.getCurrent().getNormalisedCart(),o=e.selectedOrFirstVariant.value,i=n.items.findIndex(l=>l.vID===o.mID),s=o.selectedSellingPlan.value,a={line:i+1,selling_plan:s?.mID||null,properties:r.getPrivateAttributesForLineItem()};try{let l=await go("/cart/change.js",a);return w.log(`Upgraded ${e} selling plan`),Er("Line item updated"),me.getCurrent().update(l.data),l.data}catch(l){ae(l,"cart-switch-subscription",{engagementTrigger:r}),Er("Failed to update subscription")}}async createNewCart(e,r,n){if(!e?.vID){w.error("No variant ID found to perform Buy now",e);return}let o=r?[r]:[],i=[{merchandiseId:`gid://shopify/ProductVariant/${e.vID}`,quantity:1,attributes:n.getKVFormatPrivateAttributesForLineItem()}],s=await Wa("Buy Now");return(await ol(K0,{input:{lines:i,discountCodes:o,attributes:s}},"storefront-create-cart")).data.data?.cartCreate?.cart?.checkoutUrl}async process(e){let r=e.clickAction,n=e.items,o=e.triggerData,i;if(r.at){let s=r;if(w.log(`Performing ${JSON.stringify(s)} action`),s.at===we.GO_TO_PRODUCT)i=this.getProductURL(n[0]);else if(s.at===we.ADD_TO_CART)n?.length&&await this.addToCart(n,o);else if(s.at===we.COPY_COUPON_CODE)await this.copyDiscountCode(o.discount?.code);else if(s.at===we.OPEN_CART)Xe.get().open();else if(s.at===we.GO_TO_COLLECTION){let a=e.collections;if(!a?.length)return;i=jo("/collections/"+a[0].handle)}}r.applyDiscount&&o.discount?.code?Un.navigate(o.discount.code,o.redirectBehaviour,i):i&&(location.pathname=i)}getVariantDetails(e){let r,n,o;if(e instanceof At)r=e.vID,n=e.vName,o=e.quantity??1;else{if(!e.vars?.length)return{};r=e.selectedOrFirstVariant.value.mID,n=e.selectedOrFirstVariant.value.name,o=1}return{vID:r,quantity:o,vName:n}}};async function iv(t,e){if(!_t.hasKeys(e)){w.warn("No update fields provided");return}let r=E({id:t.key},e);try{let n=await go("/cart/change.js",r);w.log("Updated line-item",t),me.getCurrent().update(n.data)}catch(n){ae(n,"cart-item-update")}}var al=class{static updateIdentity(e){if(!this.isInstalled())return;let r={};e.email&&(r.email=e.email),e.mobile&&(r.phone_number=e.mobile),w.verbose("Sending email/mobile to Klaviyo"),window.klaviyo.push(["identify",r])}static isInstalled(){return window.klaviyo&&typeof window.klaviyo=="object"}};var cl=class{action;triggerContext;constructor(e,r){this.action=e,this.triggerContext=r}async execute(){let e=this.containsCTA()?"CE Trigger Clicked":"CE Trigger Closed";switch(this.action.at!==we.SUBMIT_FORM&&await this.closeTriggerAndSendEvent(e),this.action.at){case we.ACCEPT_POPUP:break;case we.GO_TO_URL:this.gotoURLAction();break;case we.SHARE:this.shareAction();break;case we.SUBMIT_FORM:await this.collectFormData();break;case void 0:case we.OPEN_CART:break;default:w.error("Received an invalid ClickActionType: ",this.action.at);return}}externalAction(){this.action.ext?.u&&window.open(this.action.ext.u,"_blank")?.focus()}gotoURLAction(){if(this.action.gu?.u){let e=this.action.gu.u;ko(e)||(e=`//${e}`),window.open(e,"_self")}}async closeTriggerAndSendEvent(e,r){this.triggerContext.closeInApp(e,r),await this.dispatchEvent()}shareAction(){if(!this.action.share)return;if(!navigator.share){w.warn("Navigator.share is not compatible with this browser");return}navigator.share({text:this.action.share.text,title:"Share"}).then(r=>console.log(r)).catch(r=>console.error(r))}containsCTA(){return this.action.at&&this.action.at!==we.REJECT_POPUP?!0:!(this.isEmpty(this.action.custKV)&&this.isEmpty(this.action.up))}isEmpty(e){return e?Object.keys(e).length===0:!0}async collectFormData(){let e={};for(let r of this.triggerContext.inputs){if(!r.isValid)return;let o=document.getElementById(r.id).value;r.type===51?e.email=o:r.type===52&&(e.mobile=o)}await this.closeTriggerAndSendEvent("CE Form Submitted",{form:e}),this.action.applyDiscount&&Er("Coupon applied on cart"),al.updateIdentity(e)}async dispatchEvent(){let e=this.triggerContext.triggerData,r={clickAction:this.action,items:this.triggerContext.selectedEmbeddedItems??e.embeddedItems??e.items,collections:e.collections,triggerData:e};await new _i().process(r);let n={action:this.containsCTA()?"CLICKED":"CLOSED"};document.dispatchEvent(new CustomEvent("letscooee:outbound:popup-activities",{detail:n}))}};var ur=class{renderer=kn.get();parentHTMLEl;inappElement;inappHTMLEl;triggerContext;stylesConverter;scalingFactor;constructor(e,r,n){this.parentHTMLEl=e,this.inappElement=r,this.triggerContext=n,this.stylesConverter=new Ei(this.renderer.getScalingFactor())}getHTMLElement(){return this.inappHTMLEl}insertElement(){this.parentHTMLEl.appendChild(this.inappHTMLEl)}processCommonBlocks(){this.processWidthAndHeight(),this.processPositionBlock(),this.processTransformBlock(),this.processTransparency(),this.processShadow(),this.registerAction();let e=Z(E(E(E(E({},this.getDisplayStyles()),this.getSpaceStyles()),this.getBorderStyles()),this.getBackgroundStyles()),{boxSizing:"border-box",outline:"none"});yo(this.inappHTMLEl,e)}getDisplayStyles(){return{display:"block"}}processWidthAndHeight(){this.inappElement.w&&re(this.inappHTMLEl,"width",this.stylesConverter.getSizePx(this.inappElement.w)),this.inappElement.h&&re(this.inappHTMLEl,"height",this.stylesConverter.getSizePx(this.inappElement.h))}processPositionBlock(){let e={position:"absolute",left:this.stylesConverter.getSizePx(this.inappElement.x),top:this.stylesConverter.getSizePx(this.inappElement.y)};yo(this.inappHTMLEl,e)}getBorderStyles(){return this.stylesConverter.getBorderStyles(this.inappElement.br)}getSpaceStyles(){return this.stylesConverter.getSpaceStyles(this.inappElement.spc)}processTransparency(){let e=this.inappElement.alpha;if(!isNaN(e)){let r=(e/100).toFixed(2);re(this.inappHTMLEl,"opacity",r)}}processShadow(){let e=this.inappElement.shd;e?re(this.inappHTMLEl,"box-shadow",e.getStyle(this.scalingFactor)):re(this.inappHTMLEl,"box-shadow","unset")}processTransformBlock(){let e=new Vn(this.inappElement.trf);e&&e.rotate&&re(this.inappHTMLEl,"transform",`rotate(${e.rotate}deg)`)}registerAction(){let e=this.inappElement.clc;!e||Object.keys(e).length===0||(this.inappHTMLEl.addEventListener("click",r=>{r.stopPropagation(),new cl(e,this.triggerContext).execute()}),re(this.inappHTMLEl,"cursor","pointer"))}getBackgroundStyles(){return this.stylesConverter.getBackgroundStyles(this.inappElement.bg)}};var Wr=class extends ur{constructor(e,r,n){super(e,r,n)}processCommonBlocks(){super.processCommonBlocks(),this.processFontBlock(),this.processAlignment()}processFontBlock(){let e={},r=this.inappElement.typography;return r&&(e.fontSize=this.stylesConverter.getSizePx(r.fs),e.fontFamily="cooee"+r.fam?.name,e.lineHeight=`${r.lh}`,e.letterSpacing=r.letterSpacing),this.stylesConverter.getColourStyles(this.inappElement.color,"color",e),yo(this.inappHTMLEl,e),e}processPart(e,r){let n=[];r.u&&n.push("underline"),r.st&&n.push("line-through"),n.length||n.push("normal"),re(e,"font-weight",r.b?"bold":"normal"),re(e,"font-style",r.i?"italic":"normal"),re(e,"text-decoration",n.join(" ")),re(e,"color",r.c??"inherit"),re(e,"font-family","inherit")}processAlignment(){let e=this.inappElement.typography.ta,r=e?Io[e]?.toLowerCase():this.inappElement.typography.alignment;r||(r="start"),re(this.inappHTMLEl,"text-align",r)}};var Cs=class extends Wr{constructor(e,r,n){super(e,r,n),this.inappHTMLEl=document.createElement("div"),this.insertElement()}render(){this.inappElement.parts?.forEach(e=>{let r=document.createElement("span");r.innerHTML=e.txt?.toString()?.replace(/\n/g,"<br />"),this.processPart(r,e),this.inappHTMLEl.appendChild(r)}),this.processCommonBlocks()}};var Rs=class extends ur{constructor(e,r,n){super(e,r,n),this.inappHTMLEl=document.createElement("div"),this.insertElement()}render(){this.processCommonBlocks()}};var vo=class extends ur{constructor(e,r,n){super(e,r,n),this.inappHTMLEl=document.createElement("img"),this.insertElement()}render(){this.inappHTMLEl.setAttribute("src",this.inappElement.src),re(this.inappHTMLEl,"max-width","none"),re(this.inappHTMLEl,"max-height","none"),re(this.inappHTMLEl,"margin","0 auto"),this.processCommonBlocks()}};var As=class t extends ur{constructor(r,n,o){super(r,n,o);this.parent=r;this.inappHTMLEl=document.createElement("div")}static MAX_Z_INDEX="2147483647";render(){return this.parent||this.renderer.removeInApp(),this.insertElement(),this.processCommonBlocks(),this.inappHTMLEl.classList.add("cooee-wrapper"),this.inappHTMLEl.classList.add(this.triggerContext.rootClassName),re(this.inappHTMLEl,"z-index",t.MAX_Z_INDEX),this.inappHTMLEl}getBackgroundStyles(){return this.inappElement.cover?super.getBackgroundStyles():{}}processWidthAndHeight(){let r=this.inappElement.cont;if(this.inappElement.cover)this.renderer.isParentNotBody()?(re(this.inappHTMLEl,"width","100%"),re(this.inappHTMLEl,"height","100%")):(re(this.inappHTMLEl,"width","100vw"),re(this.inappHTMLEl,"height","100vh")),re(this.inappHTMLEl,"top","0"),re(this.inappHTMLEl,"left","0");else{let n=this.inappElement.spc,o=this.stylesConverter.getScaledSize(r.w)+n.getHorizontal(),i=this.stylesConverter.getScaledSize(r.h)+n.getVertical();re(this.inappHTMLEl,"width",o+"px"),re(this.inappHTMLEl,"height",i+"px")}}getSpaceStyles(){return{padding:this.inappElement.spc.getPaddingCSS()}}getDisplayStyles(){return E(E({display:"flex"},this.inappElement.getStylesForWrapper()),this.inappElement.getFlexStylesForContainer())}processPositionBlock(){this.renderer.isParentNotBody()?re(this.inappHTMLEl,"position","absolute"):re(this.inappHTMLEl,"position","fixed")}getBorderStyles(){return{}}processTransparency(){}processTransformBlock(){}processShadow(){}};var X0="cooee-container",ll=class extends ur{constructor(e,r,n){super(e,r,n),this.inappHTMLEl=document.createElement("div"),this.insertElement()}render(){return this.processCommonBlocks(),re(this.inappHTMLEl,"position","relative"),re(this.inappHTMLEl,"overflow","hidden"),this.inappHTMLEl.classList.add(X0),this}};var ul=class t extends Wr{static DAYS="Days";static HOURS="Hours";static MINUTES="Minutes";static SECONDS="Seconds";elements;spans=[];constructor(e,r,n){super(e,r,n),this.inappHTMLEl=document.createElement("div"),this.insertElement()}render(){this.addTimerChildren(),this.processAndStartTimer(),this.processCommonBlocks();let e=Z(E(E(E({flex:"1 1 0"},this.stylesConverter.getBackgroundStyles(this.inappElement.bg)),this.stylesConverter.getBorderStyles(this.inappElement.br)),this.stylesConverter.getSpaceStyles(this.inappElement.spc)),{marginLeft:this.stylesConverter.getSizePx(this.inappElement.gap),marginRight:this.stylesConverter.getSizePx(this.inappElement.gap)});this.addStylesToTimer(e)}getBackgroundStyles(){return{}}processFontBlock(){let e=super.processFontBlock();return this.stylesConverter.getColourStyles(this.inappElement.color,"color",e),this.addStylesToTimer(e),e}getSpaceStyles(){return{}}getBorderStyles(){return{}}getDisplayStyles(){return{display:"flex",flexWrap:"nowrap",justifyContent:"center"}}addStylesToTimer(e){this.elements.forEach(r=>yo(r,e))}addTimerChildren(){let e=this.inappElement.show;this.elements=[],e.day&&this.elements.push(this.getChild(t.DAYS)),e.hour&&this.elements.push(this.getChild(t.HOURS)),e.minute&&this.elements.push(this.getChild(t.MINUTES)),e.second&&this.elements.push(this.getChild(t.SECONDS)),this.elements.forEach(r=>this.inappHTMLEl.appendChild(r))}getChild(e){let r=document.createElement("div"),n=document.createElement("span"),o=document.createElement("span");return o.innerText=e,n.innerText="00",n.id=`lc-${e}`,re(o,"font-size","0.5em"),re(o,"text-align","center"),re(o,"font-family","inherit"),re(n,"text-align","center"),re(n,"font-family","inherit"),this.inappElement.lblPos==="start"?(r.appendChild(o),r.appendChild(n)):(r.appendChild(n),r.appendChild(o)),re(r,"display","flex"),re(r,"flex-direction",this.inappElement.horizontal?"":"column"),re(r,"justify-content","center"),re(r,"align-items","center"),re(r,"gap","5px"),this.spans.push(n),r}processAndStartTimer(){let e=this.inappElement.timer.start(this.inappElement.timerType,r=>{this.spans.forEach(n=>{n.id===`lc-${t.DAYS}`?n.innerText=String(r.days).padStart(2,"0"):n.id===`lc-${t.HOURS}`?n.innerText=String(r.hours).padStart(2,"0"):n.id===`lc-${t.MINUTES}`?n.innerText=String(r.minutes).padStart(2,"0"):n.id===`lc-${t.SECONDS}`&&(n.innerText=String(r.seconds).padStart(2,"0"))})});this.triggerContext.intervals.push(e)}};var pl=class extends Wr{constructor(e,r,n){super(e,r,n),this.inappHTMLEl=document.createElement("select"),this.insertElement()}render(){re(this.inappHTMLEl,"background","#ffffff00"),re(this.inappHTMLEl,"outline","none"),this.processCommonBlocks(),this.addListener(this.inappHTMLEl),this.addOptions()}addListener(e){this.triggerContext.selectedEmbeddedItems?.length||this.updateItems(this.triggerContext.triggerData.items[0].vars[0]),e.addEventListener("click",r=>{r.stopPropagation()}),e.addEventListener("change",()=>{let r=new Lr(JSON.parse(e.value));this.updateItems(r)})}updateItems(e){let r=this.triggerContext.triggerData.items[0];this.triggerContext.selectedEmbeddedItems=[r.toEmbed(e)];let n=this.parentHTMLEl.querySelector("#coo-13");if(!n)return;let o=e.imgs[0]??r.imgs?.at(0);o?.url&&n.setAttribute("src",o.url)}addOptions(){let e=this.triggerContext.triggerData.items,r=this.inappHTMLEl;if(!e?.length){r.add(this.createOption(this.inappElement.placeholderText));return}let n=this.triggerContext.selectedEmbeddedItems?.at(0);e[0].vars.forEach(o=>{r.add(this.createOption(o.name??"Default",o,o.mID===n?.vID))})}createOption(e,r,n){let o=document.createElement("option");return o.text=e,o.value=JSON.stringify(r),n&&(o.selected=!0),r||(o.disabled=!0),o}};var wi=class extends Wr{borderColor="";constructor(e,r,n){super(e,r,n),this.inappHTMLEl=document.createElement("input"),this.insertElement()}render(){let e=this.setInputType();this.inappHTMLEl.setAttribute("placeholder",this.inappElement.placeholderText),re(this.inappHTMLEl,"background","#ffffff00"),re(this.inappHTMLEl,"outline","none"),this.inappHTMLEl.addEventListener("click",r=>{r.stopPropagation()}),this.processCommonBlocks(),this.addListener(this.inappHTMLEl,e),this.triggerContext.addInputField(e,this.inappElement.t)}};var fl=class t extends wi{static EMAIL_REGEX=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;constructor(e,r,n){super(e,r,n)}setInputType(){let e=`coo-${this.inappElement.t}`;return this.inappHTMLEl.setAttribute("type","email"),this.inappHTMLEl.setAttribute("id",e),e}addListener(e,r){e.addEventListener("keydown",n=>{this.borderColor||(this.borderColor=this.inappHTMLEl.style.borderColor),e.value.match(t.EMAIL_REGEX)?(re(this.inappHTMLEl,"border-color",this.borderColor),this.triggerContext.updateValidation(r,!0)):(re(this.inappHTMLEl,"border-color","red"),this.triggerContext.updateValidation(r,!1)),n.stopPropagation()})}};var ml=class t extends wi{static MOBILE_REGEX=/^\d+$/;constructor(e,r,n){super(e,r,n)}setInputType(){let e=`coo-${this.inappElement.t}`;return this.inappHTMLEl.setAttribute("type","tel"),this.inappHTMLEl.setAttribute("id",e),e}addListener(e,r){e.addEventListener("keydown",n=>{this.borderColor||(this.borderColor=this.inappHTMLEl.style.borderColor),e.value.match(t.MOBILE_REGEX)?(re(this.inappHTMLEl,"border-color",this.borderColor),this.triggerContext.updateValidation(r,!0)):(re(this.inappHTMLEl,"border-color","red"),this.triggerContext.updateValidation(r,!1)),n.stopPropagation()})}};var dl=class extends vo{constructor(e,r,n){super(e,r,n)}render(){super.render(),this.inappHTMLEl.setAttribute("id",`coo-${this.inappElement.type}`)}};var kn=class t{static DOCUMENT_STANDARD_MODE="CSS1Compat";static ACTIVE_TRIGGER_DATA;static _instance;parent;rootContainer;containerHTMLElement;ian;scalingFactor=1;triggerContext;resizeListener;cartDrawerToggleSubscription;constructor(e){this.resizeListener=()=>this.screenResized(),this.setParentContainer(e)}static get(){return t._instance}render(e){this.renderEngagement(new St(e))}getScalingFactor(){return this.scalingFactor}calculateScalingFactor(e){let r=e.max,n=e.cont.w,o=e.cont.h,i=e.spc,s=this.getWidth(),a=this.getHeight();r&&(s=s?Math.min(s,r):r,a=a?Math.min(a,r):r),a&&(s-=i.getHorizontal(),a-=i.getVertical(),s/a<n/o?this.scalingFactor=s/n:this.scalingFactor=a/o,this.scalingFactor=Math.min(this.scalingFactor,1))}setParentContainer(e){this.parent=e||document.body,this.isParentNotBody()&&re(this.parent,"position","relative")}isParentNotBody(){return this.parent&&this.parent!==document.body}getWidth(){return this.isParentNotBody()?this.parent.clientWidth:document.compatMode===t.DOCUMENT_STANDARD_MODE?document.documentElement.clientWidth:window.innerWidth}getHeight(){return this.isParentNotBody()?this.parent.clientHeight:document.compatMode===t.DOCUMENT_STANDARD_MODE?document.documentElement.clientHeight:window.innerHeight}async renderEngagement(e){this.triggerContext=new Tr(new Date,e),this.triggerContext.onClose(r=>{this.closeInApp(r)}),this.ian=e.ian,(Vr()||e.previewType==="mobile")&&this.ian.overrideForMobileView(),await this.preloadImages(e),e.shouldDelay()?window.setTimeout(()=>{this.withCartDrawerClosed()},e.getDelaySeconds()):this.withCartDrawerClosed()}withCartDrawerClosed(){if(!Xe.get().isOpen()){this.startRenderingOnce();return}this.cartDrawerToggleSubscription=window.CooeeSDK.cartDrawerToggle$.subscribe(({open:r})=>{!r&&this.startRenderingOnce()})}startRenderingOnce(){if(!this.shouldSkipCampaign()){t.ACTIVE_TRIGGER_DATA=this.triggerContext.triggerData,t._instance=this;try{this.startRendering()}catch(e){ae(e,"render-popup",{triggerContext:this.triggerContext});return}this.sendTriggerDisplayed(),Vr()||window.addEventListener("resize",this.resizeListener),this.cartDrawerToggleSubscription?.unsubscribe()}}shouldSkipCampaign(){let e=this.triggerContext.triggerData;if(!e.previewType&&t.ACTIVE_TRIGGER_DATA){let n={triggerShown:new Dn(t.ACTIVE_TRIGGER_DATA??{})};return this.skipTrigger(e,n),!0}if(pe().isGoKwikPopupOpen)return this.skipTrigger(e,{reason:"GoKwik popup is open"}),!0;let r=fm.find(n=>!!document.querySelector(n.identifier));return r?(this.skipTrigger(e,{reason:`${r.gateway} modal is open`}),!0):!1}startRendering(){this.calculateScalingFactor(this.ian),this.rootContainer=new As(this.parent,this.ian,this.triggerContext).render();try{this.renderContainer(this.triggerContext)}catch(e){throw w.error(e),e}}sendTriggerDisplayed(){let e={};this.triggerContext.triggerData.items?.length&&(e.promotedMIDs=this.triggerContext.triggerData.items?.map(o=>o.mID));let r=new xe("CE Trigger Displayed",e,this.triggerContext.triggerData);Mt(r);let n={action:"DISPLAYED"};document.dispatchEvent(new CustomEvent("letscooee:outbound:popup-activities",{detail:n}))}sendTriggerClosed(e){let r=e.eventName;delete e.eventName;let n=new xe(r,e,this.triggerContext.triggerData);n.name==="CE Trigger Clicked"&&(n.items=this.triggerContext.selectedEmbeddedItems??this.triggerContext.triggerData.items?.map(o=>o.toEmbed())),Mt(n)}addEnterAnimation(e){this.containerHTMLElement.animate(e.getEnterAnimation(),{duration:500})}renderElement(e,r,n){r instanceof Yo?new fl(e,r,n).render():r instanceof Ko?new ml(e,r,n).render():r instanceof In?new Cs(e,r,n).render():r instanceof Xo?new dl(e,r,n).render():r instanceof on?new vo(e,r,n).render():r instanceof Zn?new Rs(e,r,n).render():r instanceof qo?new ul(e,r,n).render():r instanceof zo?new pl(e,r,n).render():w.error("Unsupported element type- "+r.type)}renderContainer(e){let r=this.ian?.cont;r&&(this.containerHTMLElement=new ll(this.rootContainer,r,e).render().getHTMLElement(),new il().loadAllFonts(this.ian),this.ian.elems?.forEach(async n=>{await this.renderElement(this.containerHTMLElement,n,e)}),this.addEnterAnimation(this.ian.anim))}closeInApp(e){let r=this.ian.anim.getExitAnimation();this.sendTriggerClosed(e),t.ACTIVE_TRIGGER_DATA=void 0;let n=this.containerHTMLElement.animate(r,{duration:500,easing:"ease-in-out"});n.onfinish=()=>{this.removeInApp(),window.removeEventListener("resize",this.resizeListener)}}screenResized(){this.removeInApp(),this.startRendering()}removeInApp(){let e=document.querySelector(`.${this.triggerContext.rootClassName}`);e&&e.parentElement.removeChild(e)}skipTrigger(e,r){let n=new xe("CE Campaign Rejected",r,e);Mt(n)}async preloadImages(e){let r=e.ian;if(!r)return;let n=[];r.elems.forEach(o=>{let i=o.bg?.img?.src;if(i&&n.push(i),o.t===1){let s=o.src;if(!s)return;n.push(s)}}),r.bg?.img?.src&&n.push(r.bg.img.src),r.cont.bg?.img?.src&&n.push(r.cont.bg.img.src),await Promise.all(n.map(o=>Yy(o)))}};var hl=class{triggerData;render(e){e.contentSource===Ni.KLAVIYO&&(this.triggerData=e,window.addEventListener("klaviyoForms",this.handleKlaviyoEvents.bind(this)),window._klOnsite=window._klOnsite||[],window._klOnsite.push(["openForm",e.klaviyoFormID]))}handleKlaviyoEvents(e){if(e.type!=="klaviyoForms")return;let r=e.detail;if(r.formId!==this.triggerData.klaviyoFormID){w.warn("Received invalid trigger callback");return}switch(r.type){case"open":Mt(new xe("CE Trigger Displayed",{form:{id:r.formId}},this.triggerData));break;case"stepSubmit":{let n=this.getFormDetails(r);Mt(new xe("CE Form Submitted",{form:n},this.triggerData)),bi(n);break}case"close":window.removeEventListener("klaviyoForms",this.handleKlaviyoEvents.bind(this)),Mt(new xe("CE Trigger Closed",{form:{id:r.formId}},this.triggerData));break}}getFormDetails(e){let r={id:e.formId},n=e.metaData;if(_t.hasKeys(n)){let o=["email","phone_number","first_name","last_name","$email","$phone_number","$first_name","$last_name"];Object.keys(n).forEach(a=>{o.includes(a)||(r[a]=n[a])}),r.email=n.$email??n.email,r.mobile=n.$phone_number??n.phone_number;let i=n.$first_name??n.first_name,s=n.$last_name??n.last_name;(i?.length||s?.length)&&(r.name=i+" "+s)}return r}};var gl=class{static trackIntent(e){if(!this.isInstalled()){w.verbose("Facebook pixel not installed");return}if(!ze.get().pixelPush){w.verbose("Facebook pixel push not enabled");return}let n=mo[e.intent]?.toLowerCase(),o=e.segmentName;!n&&!o||(w.verbose(`Sending ${n} intent and ${o} segment to Facebook Pixel`),window.fbq("trackCustom","CooeeIntent",{intent_value:n,segment_value:e.segmentName}))}static isInstalled(){return window.fbq&&typeof window.fbq=="function"}};var jf=new Map,yl=async t=>{for(let i of t.items)if(window.cooeeManipulateProduct)try{window.cooeeManipulateProduct(i,t)}catch(s){w.error(s)}if(t.isCartEmbed()&&!t.isSubscriptionUpsell()){let s=(await me.getCurrent().getNormalisedCart()).items.map(a=>a.mID);t.items=t.items.filter(a=>!s.includes(a.mID))}if(t.items=sv(t),ze.get().currencyCount<=1)return t.items;if(t.isShoppableVideo())return await J0(t.content.videoConfig,t),t.items;let e=t.items.length,r=t.items.map(i=>av(i,t)),o=(await Promise.all(r)).filter(i=>i!=null);if(e&&!o.length){let i="Failed to fetch any product from Ajax API",s=new xe("CE Campaign Failed",{reason:i,currency:t.currency},t);throw Mt(s),new Error(i)}return sv(t,o)},sv=(t,e=t.items)=>{if(!t.isCartRecovery())return e;let r=me.getCurrent().items,n=[];for(let o of e)for(let i of o.vars){if(!i.isAvailable)continue;let s=r.find(p=>p.variant_id.toString()===i.mID);if(!s)continue;let a=new xt(o);a.name=s.title;let l=new Lr(i);l.name=s.variant_title,l.price.d=s.discounted_price/100,a.variants=[l],n.push(a)}return n},J0=async(t,e)=>{await Promise.all(t.videos.map(async r=>{r.items=await Promise.all(r.items.map(async n=>{let o=await av(n,e);return o||n}))}))},av=async(t,e)=>{if(jf.has(t.mID))return jf.get(t.mID);let r,n=`/products/${t.slug}.js`;try{r=(await Jr(n)).data}catch(o){return o instanceof Zt&&o.response?.status===404||ae(o,"fetch-shopify-product",{extra:{item:t,path:n},engagementTrigger:e}),null}return r?Q0(t,r):(w.error("Item not found after AJAX call for:",t),null)},Q0=(t,e)=>{if(!t||!e)return t;t.name=e.title,t.tags=e.tags,t.slug=e.handle;let r=t.selectedOrFirstVariant.value;return t.vars.map(n=>{let o=e.variants.find(i=>i.id===+n.mID);o!=null&&(n.name=o.title,n.isAvailable=o.available,n.price.d=o.price?o.price/100:o.price,n.price.effective=n.price.d,n.price.cmp=o.compare_at_price?o.compare_at_price/100:o.compare_at_price,+r.mID===o.id&&(r.effectivePrice.value=n.price.d))}),jf.set(t.mID,t),t};var Gf="/v1/event/track-page-unload";function Tt(t){w.verbose(`Waiting for auth to send event ${t.name}`),Sr(lr).then(()=>Mt(t))}function zy(t){Sr(lr).then(()=>{Z0(t).catch(e=>ae(e,"track-page-unload"))})}async function Z0(t){let e=pe().currentPageViewEvent;if(!e){w.warn("No page view event was stored previously");return}let r={pageViewEventID:e.id,pageViewEventName:e.name,pageActiveTimeMS:t};w.verbose("Sending page unload",r);try{await Yt(Gf,r)}catch(n){throw w.error(`Error sending page unload for ${e} to server`,n),n}}function Mt(t){eT(t).catch(e=>ae(e,"track-event",{extra:{event:t}}))}async function eT(t){if(w.verbose(`Sending event: ${t.name}`,t),sT(t)){w.warn(`Rejecting event ${t.name}`);return}jy();let e=await Fn();Object.assign(t,e),qy(),It.set("lastUsedTime",new Date().getTime());let r=iT(t.name),n=r.toLowerCase().replace(/\s+/g,"-");try{let o=await Yt(`/v1/event/track/${n}`,t);w.info("\u2705 Event tracked:",r),tT(t)&&(pe().currentPageViewEvent={id:t.id,name:t.name}),rT(t,o.data)}catch(o){throw w.error(`Error sending event ${t.name} to server`,o),o}}function tT(t){return dm.includes(t.name)?t.name==="View Cart"?!t.properties.drawer:!0:!1}function rT(t,e){nT(t,e).catch(r=>{ae(r,"process-popup-response",{extra:{event:t,response:e}})}),oT(e)}async function nT(t,e){if(!e.triggerData)return;let r=new St(e.triggerData);r.occurred=t.occurred,w.log(`${r} will be shown`);let n;try{n=await yl(r)}catch(o){w.error("Failed to refresh the products",o);return}if(r.items=n,r.contentSource===Ni.KLAVIYO){new hl().render(r);return}new kn().renderEngagement(r).catch(o=>{ae(o,"render-popup",{extra:{event:t},engagementTrigger:r})})}function oT(t){t.intent&&(vi.trackIntent(t.intent),gl.trackIntent(t),w.info(`Intent is ${mo[t.intent]}`))}function iT(t){return t.replace("CE ","").replace("Trigger","Campaign").replace("Screen","Page").replace("App ","")}function sT(t){return t.trigger?.triggerID==="test"||t.trigger?.triggerID==="preview"?(w.warn("Not sending event as this is a test trigger"),!0):!1}var aT="keepalive"in new Request(""),jr=new Headers;pT();async function Fn(){let[t]=await Promise.all([ho.getInstance().checkSessionAndGetContext()]);return E(E({},Vc()),t)}function bi(t){Sr(lr).then(()=>cT(t??{}))}function cT(t){lv("/v1/user/update",t).then(()=>{w.verbose("Updated user profile")}).catch(e=>{w.error("Error saving user profile",e)})}function cv(t){return Yt("/v1/event/generate-discount",t)}function vl(t){Sr(lr).then(()=>lT({props:t}))}function lT(t){lv("/v1/device/update",t).then(()=>{w.verbose("Updated device properties")}).catch(async e=>{w.error("Error saving device property",e)})}function $y(t){t&&jr.set("cooee-device-id",t)}function Vy(t){t&&jr.set("cooee-first-seen",t.toUTCString())}function Yt(t,e){return uv("POST",t,e)}function lv(t,e){return uv("PUT",t,e)}function uv(t,e,r){if(!rs()&&!pe().flags?.allowEvents)return w.log(`Rejecting ${t} ${e} as this is not e-commerce app`),Promise.reject();if(e.startsWith("http")||(e=dr.apiURL+e),r&&!aT&&e.includes(Gf))return uT(e,jr,r);let n={method:t,headers:jr,keepalive:!1};return r&&(n.body=JSON.stringify(r)),Jr(e,n)}function uT(t,e,r){return new Promise((n,o)=>{let i=new XMLHttpRequest;i.open("POST",t,!0),e.forEach((s,a)=>{i.setRequestHeader(a,s)}),i.onreadystatechange=()=>{if(i.readyState===XMLHttpRequest.DONE)if(i.status>=200&&i.status<300)try{if(i.getResponseHeader("Content-Type")?.includes("application/json")){let a=JSON.parse(i.responseText);n({data:a,headers:e,request:i,status:i.status,statusText:i.statusText})}else o(new Error("Content-Type of response header is not json"))}catch(s){o(s)}else o(new Error(`Received status - ${i.status}(${i.statusText})`))},i.onerror=()=>{o(new Error("Network error occurred during the request."))},i.send(JSON.stringify(r))})}function pT(){jr.set("Content-Type","application/json; charset=utf-8"),jr.set("cooee-sdk",Ws),jr.set("cooee-sdk-code",um.toString()),jr.set("cooee-sdk-version",js),jr.set("cooee-shop-name",nc()??""),dr.debug&&jr.set("cooee-sdk-debug",String(1))}var El=class{modifications=[];constructor(){sn(`.lc-hide {display: none !important;height: 0 !important;}
54
54
  .lc-display-block {display: block !important;}
55
55
  .lc-display-inline {display: inline !important;}`,document.body)}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){wa("No body element found","error");return}this.setupMutationObserver()}executeExperiment(e){let r=e.experimentConfig?.modifications;if(!r?.length)return w.log("Nothing to experiment",e.toString()),!0;let n=!1;for(let o of r){if(!o.cssSelector){w.verbose("No CSS Selector available",e?.toString());continue}this.modifications.push(o);let i=Array.from(document.querySelectorAll(o.cssSelector));i?.length&&(this.executeSingleModification(o,i),n=!0)}return n}executeSingleModification(e,r){if(r?.length)for(let n of r)Object.assign(n.style,e.style),e.display==="HIDE"?n.classList.add("lc-hide"):e.display==="BLOCK"?n.classList.add("lc-display-block"):e.display==="INLINE"&&n.classList.add("lc-display-inline"),e.type==="TEXT"&&e.text?n.innerHTML=e.text:e.type==="IMAGE"&&this.updateImage(e,n),e.moveTo?.selector&&this.changePlacement(e,n).catch(console.error)}async changePlacement(e,r){let n=await Sn(e.moveTo.selector);if(n)switch(e.moveTo.position){case Rt.BEFORE1:{r.nextElementSibling!==n&&n.parentElement?.insertBefore(r,n);break}case Rt.INSIDE_FIRST1:{n.firstChild!==r&&n.insertBefore(r,n.firstChild);break}case Rt.INSIDE_LAST1:{n.lastChild!==r&&n.appendChild(r);break}case Rt.AFTER1:default:r.previousElementSibling!==n&&n.parentElement?.insertBefore(r,n.nextSibling)}}trackExperimentRan(e){if(e.id==="preview"){w.warn("Skipping experiment attribution as its preview",e.toString());return}pv({name:"CE Experiment Start",experiment:new Dn(e)}).catch(r=>{w.error("Fail to track experiment",r)})}setupMutationObserver(){new MutationObserver(r=>{r.forEach(n=>{n.addedNodes.forEach(o=>{o instanceof HTMLElement&&this.modifications.forEach(i=>{o.matches&&o.matches(i.cssSelector)?(w.verbose("Re-applying experiment",i.toString()),this.executeSingleModification(i,[o])):o.querySelectorAll&&(w.verbose("Re-applying experiment",i.toString()),this.executeSingleModification(i,Array.from(o.querySelectorAll(i.cssSelector))))})})})}).observe(document.body,{childList:!0,subtree:!0})}updateImage(e,r){let n=e.image?.lg?.src,o=e.image?.sm?.src;!n&&!o||(r instanceof HTMLPictureElement?this.updatePictureElement({desktop:n,mobile:o},r):this.updateImageElement({desktop:n,mobile:o},r))}updateImageElement(e,r){Vr()&&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 o=document.createElement("source");o.srcset=e.mobile,o.media="(max-width: 767px)",r.append(o)}if(e.desktop){let o=document.createElement("source");o.srcset=e.desktop,o.media="(min-width: 768px)",r.append(o)}let n=document.createElement("img");n.src=e.desktop??e.mobile??"",r.append(n)}};async function pv(t){let e=await Fn(),r=E(E({},t),e);await Yt("/v1/event/experiment",r)}function _l(){fT().catch(t=>ae(t,"fetch-experiments"))}async function fT(){pe().activeExperiments&&(await Sr(lr),await mT())}async function mT(){w.info("Fetch experiments after \u23F0",To()+" of SDK load");let t=await Fn(),e=E({},t);Yt("/v1/engagement/experiments",e).then(async r=>{w.info(`Experiments fetched in \u23F0 ${zr(r.timeTakenMs)}`);let n=r.data.experiments.map(o=>new St(o));new El().execute(n)}).catch(r=>{w.error("Error sending experiment getter",r)})}var fv=qr(Gs());var pn=class{constructor(e){this.triggerContext=e}async execute(e){let r=pe().currentItem,n=e.clickAction;if(!n)return;let o=e.item,i=this.triggerContext,s=new _i,a=i.triggerData.redirectBehaviour,l=!!i.triggerData.discount?.type&&!!n?.applyDiscount,p={selectedVariants:i.triggerData.nonMutableItems.map(A=>({itemMID:A.mID,mID:A.selectedOrFirstVariant.value.mID,variantID:A.selectedOrFirstVariant.value.mID})),eID:i.triggerData.engagementID,cID:i.triggerData.contentID},m="",d=[],_=[];if(o?_=[o.toEmbed()]:e.embeddedItem&&(_=[e.embeddedItem]),n.at===we.ADD_BUNDLE){let A=i.selectedItems;if(_=e.embeddedItems??A.map(B=>B.toEmbed()),i.shouldGiveFBTDiscount||e.embeddedItems?.length){let B;e.embeddedItems?B=e.embeddedItems.map(P=>({itemMID:P.mID,mID:P.vID,variantID:P.vID,quantity:P.quantity})):B=A.map(P=>({itemMID:P.mID,mID:P.selectedOrFirstVariant.value.mID,variantID:P.selectedOrFirstVariant.value.mID}));let q=i.triggerData.bundleFrom;i.triggerData.isBundleOnCartDrawer()&&q&&(B.push({itemMID:q.mID,mID:q.selectedOrFirstVariant.value.mID,isPrimary:!0}),_.unshift(q.toEmbed())),p.selectedVariants=B,i.triggerData.isBundleOnPDP()&&p.selectedVariants.forEach(P=>{P.mID===r.vID&&(P.isPrimary=!0)})}else p=void 0;d=e.embeddedItems??A}else if(n.at===we.INITIATE_CHECKOUT){let A=await me.getCurrent().getNormalisedCart();_=A.items,p.selectedVariants=A.items.map(B=>({itemMID:B.mID,mID:B.vID}))}else if(n.at===we.ADD_TO_CART)d=o?[o]:[e.embeddedItem];else if(n.at===we.QUICK_VIEW){window.cooeeShowQuickItem(this.triggerContext,o),this.sendTriggerClicked(_,{from:"button"},e.video);return}else if(n.at===we.GO_TO_PRODUCT)m=o?jo("/products/"+o.slug):e.embeddedItem?.link;else if(n.at===we.GO_TO_URL){let A=ko(n.gu?.u);window.CooeeSDK.allowExternalURL?A&&(m=A.href):A&&(m=A.pathname+A.search+A.hash)}else if(n.at===we.UPGRADE_TO_SUBSCRIPTION){let A=await s.upgradeToSubscription(o,i.triggerData);this.triggerContext.triggerData.skipSubscribedItems&&this.triggerContext.renderer.destroy(),Xe.get().refreshUI(A)}else if(n.at===we.GO_TO_COLLECTION){let A=this.triggerContext.triggerData.collections?.[0];A&&(m="collections/"+A.handle)}if(this.sendTriggerClicked(_,{from:"button"},e.video),w.verbose({redirectPath:m,redirectBehaviour:a,hasDiscount:l}),!l&&m){location.href=m;return}let y,C=!1;try{y=await this.getOrGenerateDiscountCode(p),w.verbose("Discount code (if any) to apply",y)}catch(A){if(!this.triggerContext.triggerData.isBYOB()){fv.default.error("Unable to get a discount code",A);return}}if(y&&n.at===we.COPY_COUPON_CODE)await s.copyDiscountCode(y);else if(n.at===we.BUY_NOW){let A=await s.createNewCart(r,y,i.triggerData);A&&(location.href=A);return}try{y&&await Un.applyWithStorefront([y])}catch(A){w.error(A),C=!0}let N;if(d?.length&&(N=await s.addToCart(d,i.triggerData)),C&&y){Un.navigate(y,a,m);return}if(m){location.href=m;return}Un.navigateWithoutDiscount(a,N)}sendTriggerClicked(e,r,n){let o=new xe("CE Trigger Clicked",r,this.triggerContext.triggerData);o.items=e,o.setVideos(n),Mt(o)}async getOrGenerateDiscountCode(e){let r=this.triggerContext.triggerData.discount;if(!r?.type)return;let n="";if(r.type===Jt.STATIC){if(!r.code)throw yh("No discount code found","warning",{triggerContext:this.triggerContext}),new Error("No discount code found");return r.code}if(e){if(n=await dT(e,this.triggerContext),!n)throw w.error("No discount code found",e),new Error("Discount code not found or generated");return n}}};async function dT(t,e){try{return(await cv(t)).data.code}catch(r){throw Er("Failed to generate a discount code"),ae(r,"backend-generate-discount",{triggerContext:e}),r}}var Ue=class extends Nr{stylesConverter=new Ei(1);mediaStyle={};deviceTypeKey;clickExecutor;componentWillMount(){this.deviceTypeKey=Vr()?"sm":"lg",this.clickExecutor=new pn(this.props.triggerContext)}getCompiledStyles(){return this.putStyleAccordingToDevice(),E(E(Z(E(E(E(E(E(E({},this.stylesConverter.getFlexStyles(this.mediaStyle.flex)),this.stylesConverter.getBackgroundStyles(this.mediaStyle.bg)),this.stylesConverter.getBorderStyles(this.mediaStyle.br)),this.stylesConverter.getSizeStyles(this.mediaStyle.size)),this.stylesConverter.getSpaceStyles(this.mediaStyle.spc)),this.stylesConverter.getLayoutStyles(this.mediaStyle.lout)),{boxSizing:"border-box",outline:"none"}),this.getComponentStyles()),this.props.style)}matchWhenCondition(e){if(!e?.op)return!0;let{lhs:r,rhs:n}=e;switch(e.op){case"eq":return r===n;case"gt":return+r>+n;case"gte":return+r>=+n;case"lt":return+r<+n;case"lte":return+r<=+n;case"ne":return r!==n;case"null":return r==null;case"empty":return r.trim()==="";case"in":return new RegExp(`\\b${n}\\b`).test(r);case"nin":return!new RegExp(`\\b${n}\\b`).test(r);default:return w.error(`Invalid operator found for when condition - ${e.op}`),!1}}putStyleAccordingToDevice(){let e=this.props.element;this.mediaStyle=e.style.lg,Vr()&&e.style.sm&&Object.keys(e.style.sm).length&&(this.mediaStyle=E(E({},this.mediaStyle),e.style.sm))}sendTriggerClicked(e,r){this.clickExecutor.sendTriggerClicked(e,r)}async onClick(e,r){e.stopPropagation(),r.clickAction||(r.clickAction=this.props.element.clc),r.clickAction?.at&&await this.clickExecutor.execute(r)}};var hT=0,Bj=Array.isArray;function K(t,e,r,n,o,i){e||(e={});var s,a,l=e;if("ref"in l)for(a in l={},e)a=="ref"?s=e[a]:l[a]=e[a];var p={type:t,props:l,key:r,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--hT,__i:-1,__u:0,__source:o,__self:i};if(typeof t=="function"&&(s=t.defaultProps))for(a in s)l[a]===void 0&&(l[a]=s[a]);return Te.vnode&&Te.vnode(p),p}var Kt=class extends Ue{componentDidMount(){this.setState(()=>({text:this.props.element.text})),bt(this.onChange.bind(this))}componentWillReceiveProps(e){this.props.element=e.element,this.onChange()}render(){let e=this.getCompiledStyles(),r=this.state.text;return r||(e.display="none",r=""),K("div",{style:e,onClick:this.customOnClick.bind(this),className:"lc-text",children:K("span",{style:this.getSpanStyle(),dangerouslySetInnerHTML:{__html:r}})})}customOnClick(){this.props.onClick&&this.props.onClick("title")}onChange(){if(this.props.element.text==null)return;let e=this.props.triggerContext.triggerData,r={bundle:e.discountData.value,customer:e.customerData,cart:e.getCartMagicVariables()},n=Qn(this.props.element,r,this.props.triggerContext),o=new ht(n);if(!this.matchWhenCondition(o.when)){this.setState(()=>({text:""}));return}this.setState(()=>({text:o.text}))}getTypoStyles(){let e={},r=this.mediaStyle.typo??new st;return e.letterSpacing=r.letterSpacing,e.fontSize=r.fs+"px",e.lineHeight=r.lh,e.fontFamily=r.fam.name||"inherit",e.textAlign=r.alignment,e.fontWeight=r.fw,e.textDecoration=r.td??"none",this.stylesConverter.getColourStyles(r.tc,"color",e),e}getComponentStyles(){return E({},this.getTypoStyles())}getSpanStyle(){return{overflow:"hidden",display:"-webkit-box",webkitBoxOrient:"vertical",webkitLineClamp:2,color:"inherit",fontSize:"inherit",fontWeight:"inherit",fontFamily:"inherit"}}};var Eo=class extends Kt{render(){return K("div",{style:this.getCompiledStyles(),className:"lc-button",onClick:e=>this.onClick(e,{item:this.props.item}),children:K("span",{style:this.getSpanStyle(),dangerouslySetInnerHTML:{__html:this.state.text}})})}getComponentStyles(){return Z(E({},super.getComponentStyles()),{cursor:"pointer"})}};var qf=class extends Nr{render(){if(this.props.element.show[this.props.label.toLowerCase()])return this.props.element.lblPos==="end"?K("div",{style:E(E({},this.getElementStyle()),this.props.styles),children:[K("span",{children:this.props.time}),K("span",{style:this.getTimeLabelStyle(),children:this.props.label})]}):K("div",{style:E(E({},this.getElementStyle()),this.props.styles),children:[K("span",{style:this.getTimeLabelStyle(),children:this.props.label}),K("span",{children:this.props.time})]})}getDesign(){}getTimeLabelStyle(){return{fontSize:"0.5em",alignContent:"center"}}getElementStyle(){let e={display:"flex",flexDirection:"column",placeContent:"center center",textAlign:"center"};return this.props.element.horizontal&&(e.gridTemplateColumns="repeat(2, minmax(0, 1fr))"),e}},Ds=class extends Kt{labels={Days:"00",Hours:"00",Minutes:"00",Seconds:"00"};componentWillMount(){super.componentWillMount(),this.setState(()=>E({},this.labels)),this.processAndStartTimer()}render(){return K("div",{style:this.getLabelsParentStyle(),children:Object.keys(this.labels).map(e=>K(qf,{styles:this.getCompiledStyles(),label:e,time:this.state[e],element:this.props.element}))})}getLabelsParentStyle(){return{display:"grid",justifyContent:"center",gridTemplateColumns:"repeat(4, auto)",gap:this.stylesConverter.getSizePx(this.props.element.gap)}}getDisplayStyles(){return{display:"grid",placeContent:"center center"}}getComponentStyles(){return E(E({},super.getComponentStyles()),this.getDisplayStyles())}processAndStartTimer(){this.props.element.timer.start(this.props.element.timerType,e=>{this.labels.Days=String(e.days).padStart(2,"0"),this.labels.Hours=String(e.hours).padStart(2,"0"),this.labels.Minutes=String(e.minutes).padStart(2,"0"),this.labels.Seconds=String(e.seconds).padStart(2,"0"),this.setState(()=>E({},this.labels))})}};function wl(t,e){if(!t)return;let r={loop:e.loop,slidesPerView:e.maxInRow,spaceBetween:e.gap+"px",pagination:{type:e.pagination.type,el:t.querySelector(".swiper-pagination"),clickable:!0,renderBullet:(o,i)=>`
56
56
  <span class="${i}"
@@ -60,4 +60,4 @@ mutation cartDiscountCodesUpdate($cartId: ID!, $discountCodes: [String!]) {
60
60
  style="background-color: ${e.pagination.color?.rgba};">
61
61
  </span>
62
62
  `},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 bl(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 Os=class extends Ue{componentDidMount(){bt(()=>{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 st;return e.textAlign=r.alignment,e.justifyContent=r.alignment,e}getComponentStyles(){return Z(E({},this.getTypoStyles()),{display:"flex"})}};var fn=class extends Ue{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 mn=class extends Ue{render(){if(!(this.props.element.hide||!this.matchWhenCondition(this.props.element.when)))return K("div",{style:this.getCompiledStyles(),class:"lc-flexbox",children:K(Hn,{elements:this.props.elements,element:this.props.element,triggerContext:this.props.triggerContext})})}getComponentStyles(){let e=this.mediaStyle.flex??new Jo,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 Ns=class extends mn{render(){if(!(this.props.element.hide||!this.matchWhenCondition(this.props.element.when)))return K("div",{style:this.getCompiledStyles(),class:"lc-flexbox",children:K(Si,{elements:this.props.elements,element:this.props.element,triggerContext:this.props.triggerContext,item:this.props.item,noLinks:this.props.noLinks})})}};var Ps=class extends Ue{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(){bt(()=>{this.setState(()=>({disabled:this.props.triggerContext.triggerData.isBundle()?!this.props.item.selected.value:!1}))})}getTypoStyles(){let e={},r=this.mediaStyle.typo??new st;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(E({},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 gT=new RegExp('fill="#[a-zA-Z0-9]+"'),Ls=class extends Ue{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=Wo(this.props.element.fullStar,{svg:e},this.props.triggerContext),n=Wo(this.props.element.halfStart,{svg:e},this.props.triggerContext),o=this.props.review;if(!o?.rating)return"";let i="";if(this.props.element.showSingleStar)i=r;else{let s=5,a=`${o.rating}`.split(".");for(let l=0;l<+a[0];l++)i+=r,s--;a[1]&&(i+=n,s--);for(let l=0;l<s;l++)i+=r.replace(gT,'fill="#f1f1f1"')}return i}getComponentStyles(){return{display:"flex",alignItems:"center"}}};var Ms=class extends Ue{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(){bt(()=>{this.setState(()=>({disabled:this.props.triggerContext.triggerData.isBundle()?!this.props.item.selected.value:!1}))})}getTypoStyles(){let e={},r=this.mediaStyle.typo??new st;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(E({},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(o=>o.mID===r);this.props.item.setSelectedVariant(n)}};var mv=()=>{let t=window.ShopifyAnalytics?.meta??{},e=t.selectedVariantId;if(e)return e;if(t.product?.variants?.length>0)return t.product.variants[0].id},zf=t=>{if(!t)return;let e;try{e=new URL(t)}catch{return}if(e.hostname!=="cdn.shopify.com")return t;let r=e.pathname.split(".");return r.length!==2?t:(e.pathname=r[0]+"_large."+r[1],e.toString())};var Si=class extends Ue{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(Ns,{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(Os,{element:e,item:this.props.item,triggerContext:this.props.triggerContext}):void 0;if(e.t===13){let r=e,n=this.props.item,o=zf(n.variantImage??n.firstImageURL),i=zf(n.variantSecondaryImage??n.secondaryImageURL);r.lg=r.sm={src:o,name:n.name,secondarySrc:i};let s=K(fn,{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(Ms,{element:r,item:this.props.item,triggerContext:this.props.triggerContext})}return e.t===16?K(Ps,{element:e,selectedVariant:this.props.item.selectedOrFirstVariant.value,item:this.props.item,triggerContext:this.props.triggerContext}):e.t===19?K(Ls,{element:e,triggerContext:this.props.triggerContext,review:this.props.item.reviews}):e.t===18||e.t===3?K(Eo,{element:e,item:this.props.item,triggerContext:this.props.triggerContext}):K(Hn,{elements:[e],element:this.props.element,triggerContext:this.props.triggerContext})}}render(){return this.attachListener(),this.props.elements.map(e=>this.renderElement(e))}getComponentStyles(){return{}}renderProductTitle(e){let r=K(Kt,{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"}))}attachListener(){document.addEventListener("letscooee:variant-change",e=>{let r=e;if(!r.detail||this.props.item.mID!==r.detail.productID)return;let n=r.detail.variantID;this.props.item.setSelectedVariantByID(n)})}};var _o=class extends Ue{productElement;constructor(e,r){super(e,r),this.setState(()=>({decoration:"unset"}))}render(){let e=Qn(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:E({},this.getCompiledStyles()),class:"lc-single-product",children:K(Si,{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 o=this.props.triggerContext.triggerData.discount?.type===Jt.BXGY;return!r.hasEffectivePrice()&&o&&(n.product=Z(E(E({},n.product),Pt("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 Bs=class extends Ue{swiperRef=null;swiperInstance=null;configuration;gap;constructor(e,r){super(e,r),this.configuration=Vr()?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&&Dc().then(()=>{this.swiperInstance=wl(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=i=>{this.swiperRef=i},o=()=>e?.map(i=>K("div",{class:"swiper-slide",children:this.getProductFragment(i)}));r=K("div",{style:Z(E({},this.getCompiledStyles()),{display:"block"}),class:"lc-product-swiper-list",children:bl(this.configuration,n,o)})}else r=K("div",{style:this.getCompiledStyles(),class:"lc-product-list",children:e?.map((n,o)=>this.getProductFragment(n,o!==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,o=n.items.length,i;n.isBundle()?i=this.props.element.prod.symbol?.hide!==!0?o*2-1:o:i=this.props.element.conf[this.deviceTypeKey].maxInRow,r.gridTemplateColumns=`repeat(${i}, auto)`}}return r}getProductFragment(e,r=!1){return K(Pr,{children:[K(_o,{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(Kt,{element:this.props.element.prod.symbol,triggerContext:this.props.triggerContext})})]},e.mID)}};var Us=class extends Ue{swiperRef=null;swiperInstance=null;constructor(e,r){super(e,r)}componentDidMount(){Dc().then(()=>{this.swiperInstance=wl(this.swiperRef,this.props.element.conf)})}componentWillUnmount(){this.swiperInstance&&this.swiperInstance.destroy()}render(){let e=this.props.element,r=o=>{this.swiperRef=o},n=()=>{let o=e.values?.map(a=>K("div",{class:"swiper-slide",onClick:l=>this.onClick(l,{clickAction:this.getClickAction(a)}),children:this.renderElement(a)}));if(!o?.length)return[];let i=e.conf,s=o.length;if(i.marquee&&s<=Number(i.maxInRow)){let a=Number(i.maxInRow)-s+1;for(let l=0;l<a;l++)o.push(o[l%s])}return o};return bl(e.conf,r,n)}getComponentStyles(){return{}}renderElement(e){let r=this.valueAddedSlide(this.props.element.slide,e);switch(r?.t){case 1:return K(fn,{element:r,triggerContext:this.props.triggerContext});case 4:return K(mn,{elements:r.elems,element:r,triggerContext:this.props.triggerContext});default:w.warn("Unknown slide type for carousal")}}valueAddedSlide(e,r){let n=Qn(e,{form:r},this.props.triggerContext);return Gt.getParsedElement(n)}getClickAction(e){return Qn(this.props.element.clc??{},{form:e},this.props.triggerContext)}};var Hn=class extends Ue{constructor(e,r){super(e,r),this.setState(()=>({decoration:"unset"})),bt(()=>{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(mn,{element:r,triggerContext:this.props.triggerContext,elements:r.elems})}if(e.t===61)return K(Ds,{element:e,triggerContext:this.props.triggerContext});if(e.t===3)return this.state.showButton?K(Eo,{element:e,triggerContext:this.props.triggerContext}):void 0;if(e.t===2)return K(Kt,{element:e,triggerContext:this.props.triggerContext});if(e.t===1)return K(fn,{element:e,triggerContext:this.props.triggerContext});if(e.t===11)return K(Bs,{element:e,triggerContext:this.props.triggerContext});if(e.t===12)return K(_o,{element:e,item:this.props.triggerContext.triggerData.items[0],triggerContext:this.props.triggerContext});if(e.t===62)return K(Us,{element:e,triggerContext:this.props.triggerContext})}}render(){return this.props.elements.map(e=>this.renderElement(e))}getComponentStyles(){return{}}};var ks=class extends Ue{clickAction;isClickable;constructor(e,r){super(e,r),this.clickAction=this.props.element.clc,this.isClickable=this.clickAction?.at===we.GO_TO_URL&&!!ko(this.clickAction.gu?.u)||this.clickAction?.at===we.OPEN_CART||this.clickAction?.at===we.INITIATE_CHECKOUT}componentDidMount(){bt(()=>{let e=this.props.triggerContext.triggerData,r=this.props.triggerContext.selectedItems;e.calculateDiscountData(r,this.props.triggerContext.shouldGiveFBTDiscount)})}render(){return K(Pr,{children:[K("div",{style:this.getCompiledStyles(),class:"lc-container",onClick:e=>{this.onClick(e,{clickAction:this.clickAction})},children:K(Hn,{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 yt=class t{constructor(e){this.engagementTrigger=e;this.triggerContext=new Tr(new Date,this.engagementTrigger)}static currentEngagements=new Set;static engagementIDsWithTrackedDisplay=new Set;static DEBOUNCE_TIME=1e3;rootContainer;widgetElement;widget;triggerContext;observers=[];renderedCount=0;scrollSubscription;variation;isExclusionWithBVariation;isProcessing=!1;renderSilently(){this.acquireProcessingLock()||this.render().finally(()=>this.releaseProcessingLock()).catch(e=>{ae(e,"render-widget",{triggerContext:this.triggerContext})})}destroy(){w.verbose(`${this.engagementTrigger} will be destroyed`),this.preDestroy(),this.removeFromRendered(),this.rootContainer?.remove(),t.engagementIDsWithTrackedDisplay.delete(this.engagementTrigger.shortID),cf(this.engagementTrigger.content?.afterDeleteJS)}matches(e){return this.engagementTrigger.shortID===e.shortID}async render(){if(this.engagementTrigger.shouldGetVariationImmediately()){let e=await this.getVariation();this.handleVariationResponse(e)}if(this.rootContainer=await this.getWidgetContainer(!0),!this.rootContainer){w.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(),this.checkAndSendEvent(),this.triggerContext.renderer=this,cf(this.engagementTrigger.content?.afterRenderJS)}async updateAndReRender(e){if(!this.acquireProcessingLock())try{this.updateItems(e.items,this.engagementTrigger.items),await this.update(e),await this.render()}finally{this.releaseProcessingLock()}}async update(e){}async rerenderIfDeleted(){if(!this.rootContainer?.isConnected&&!this.acquireProcessingLock()){w.info(`${this.engagementTrigger} deleted. Will be re-rendered`);try{this.preDestroy(),await this.render()}finally{this.releaseProcessingLock()}}}updateAngularWidget(){return this.widgetElement?.isConnected?(this.widgetElement.update(),!0):!1}preDestroy(){this.scrollSubscription?.unsubscribe(),this.observers.forEach(e=>{e?.disconnect&&e.disconnect()})}acquireProcessingLock(){return this.isProcessing?(w.verbose(`Lock could not be acquired for ${this.engagementTrigger}`),!0):(w.verbose(`Acquiring rendering lock for ${this.engagementTrigger}`),this.isProcessing=!0,!1)}releaseProcessingLock(){w.verbose(`Releasing rendering lock for ${this.engagementTrigger}`),this.isProcessing=!1}afterRootContainerCreated(){}isAllOkToRender(){return!!this.widget}async getVariationIfRequired(){if(this.engagementTrigger.shouldSkipVariation()){w.verbose(`${this.engagementTrigger} already has necessary data to render`);return}let e=await this.observeWidgetContainerInViewport();this.handleVariationResponse(e)}handleVariationResponse(e){e&&(w.log(`${this.engagementTrigger} visitor has been assigned to variation ${e.variation}`),e.items?.length&&(this.engagementTrigger.items=e.items.map(r=>new xt(r)),this.engagementTrigger.nonMutableItems=e.items.map(r=>new xt(r))),e.bundleFrom&&(this.engagementTrigger.bundleFrom=new xt(e.bundleFrom)),e.discount&&(this.engagementTrigger.discount=e.discount),e.placement&&(this.triggerContext.triggerData.placement=e.placement),e.props&&_t.hasKeys(e.props)&&(this.engagementTrigger.props=E(E({},this.engagementTrigger.props),e.props)),e.content&&(this.triggerContext.triggerData.content=new os(e.content)),this.triggerContext.triggerData.widget=this.widget=new ti(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++,w.info(`${this.engagementTrigger} rendered \u2705 ${Th(this.renderedCount)} time`)}removeFromRendered(){this instanceof mt?mt.currentEngagements.delete(this):t.currentEngagements.delete(this)}async getVariation(){w.log(`${this.engagementTrigger} get variation`);let e={engagementID:this.engagementTrigger.engagementID,isPreview:this.engagementTrigger.id==="preview"};try{return(await dv(e)).data}catch(r){if(r instanceof Zt&&r.response?.status===400)return;ae(r,"get-variation",{engagementTrigger:this.engagementTrigger});return}}async observeWidgetContainerInViewport(){if(!this.rootContainer){w.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 o=new IntersectionObserver((i,s)=>{i.forEach(async a=>{if(a.isIntersecting){w.log(`${this.engagementTrigger} root container is near the viewport. Fetching variation`);let l=await this.getVariation();n(l),s.unobserve(this.rootContainer)}})},r);o.observe(this.rootContainer),this.observers.push(o)})}attachScroll(){this.scrollSubscription=fo(window,"scroll").pipe(zt(t.DEBOUNCE_TIME)).subscribe(()=>{this.checkAndSendEvent()})}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 o=this.isExclusionWithBVariation?"CE Campaign Holdout":"CE Trigger Displayed",i=new xe(o,n,this.engagementTrigger);i.name==="CE Campaign Holdout"&&(i.trigger.holdout=!0),Mt(i),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=me.getCurrent(),r.triggerContext=this.triggerContext,r.engagementTrigger=this.engagementTrigger,r.setAttribute("engagement",this.engagementTrigger.shortID),this.rootContainer.appendChild(r),this.addToRendered(),this.injectOuterCSSOnly(),r}getParentElement(e,r=document){let n=r.getElementById(e);if(n)return n;let o=this.engagementTrigger.objective.toLowerCase().replaceAll("_","-"),i=this.engagementTrigger.shortID;return n=document.createElement("div"),n.id=e,n.className=`letscooee letscooee-engagement engagement-${i} lc-${o}`,n.dataset.engagementId=i,this.engagementTrigger.id==="preview"&&(n.className+=" letscooee-preview"),n.style.display="block",n.style.minHeight="0.5px",n.style.minWidth="0.5px",n}async startRendering(){let e=this.rootContainer,r=this.triggerContext.triggerData.hasSwiperElement();r&&(e=this.rootContainer?.shadowRoot||this.rootContainer?.attachShadow({mode:"open"}),lf(e)),this.injectCampaignCSS(r,e),Hh(Tp(ks,{element:this.widget.cont,triggerContext:this.triggerContext,elements:this.widget.elems}),e),this.addToRendered()}injectCampaignCSS(e,r){let n=this.engagementTrigger.content?.outerCSS?.trim()??"",o=this.engagementTrigger.content?.innerCSS?.trim()??"";if(!n&&!o)return;let i=this.rootContainer.id;if(e){sn(o,r),this.injectOuterCSSOnly();return}let s=n+`
63
- ${o}`;sn(`#${i} { ${s} }`)}injectOuterCSSOnly(){let e=this.engagementTrigger.content?.outerCSS?.trim();if(!e)return;let r=this.rootContainer.id;sn(`#${r} { ${e} }`)}isInViewport(){let e=this.rootContainer?.getBoundingClientRect();if(!e)return!1;let r=window.innerHeight||document.documentElement.clientHeight,o=(Math.min(e.bottom,r)-Math.max(e.top,0))*e.width,i=e.width*e.height,s=o/i*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 w.info(`\u26A0\uFE0F${this.engagementTrigger} does not have a selector`),null;let n=r.selector,o;if(n.includes(":shadow")){let l=n.split(":shadow");o=(await Sn(l[0].trim()))?.shadowRoot,n=l[1].trim(),o&&lf(o,!1)}w.verbose(`${this.engagementTrigger} attempt to render "${r.position}" "${n}"`);let i=await Sn(n,3,o??document);if(!i)return w.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 Rt.BEFORE1:case Rt.BEFORE:{i.parentElement?.insertBefore(a,i);break}case Rt.INSIDE_FIRST1:case Rt.INSIDE_FIRST:{i.insertBefore(a,i.firstChild);break}case Rt.INSIDE_LAST1:case Rt.INSIDE_LAST:{i.appendChild(a);break}case Rt.AFTER1:case Rt.AFTER:default:i.parentElement?.insertBefore(a,i.nextSibling)}return a}async runChoresBeforeRender(){if(this.isExclusionWithBVariation)return;if(!this.isAllOkToRender()){w.info(`\u26A0\uFE0F ${this.engagementTrigger} could not be rendered`);return}w.verbose(`${this.engagementTrigger} will be rendered`);let e;try{e=await yl(this.engagementTrigger)}catch(r){w.info(`\u203C\uFE0F${this.engagementTrigger} could not render as items failed to refresh`,r);return}if(!this.engagementTrigger.isCollectionPromoted()&&!e?.length&&this.engagementTrigger.isProductPromoted()){w.info(`\u203C\uFE0F${this.engagementTrigger} could not render as no products promoted`);return}this.engagementTrigger.items=e,await this.startRendering()}updateItems(e,r){let n=this.getItemDiff(e,r),o=this.getItemDiff(r,e);r.push(...n);for(let i of o)Yr.remove(r,i)}getItemDiff(e,r){return e.filter(n=>!r.some(o=>o.selectedOrFirstVariant.value.mID===n.selectedOrFirstVariant.value.mID))}};var mt=class extends yt{static currentEngagements=new Set;constructor(e){super(e)}rerenderAfterCartOpened(){this.rerenderIfDeleted(),this.checkAndSendEvent()}observeWidgetContainerInViewport(){return this.getVariation()}generateParentElementID(){let e=super.generateParentElementID();return this.engagementTrigger.isSubscriptionUpsell()&&(e+=`-${this.engagementTrigger.items[0].selectedOrFirstVariant.value.mID}`),e}checkAndSendEvent(){if(!Xe.get().isOpen()&&pe().pageName!=="cart"){w.log("Do not send display event as neither the cart drawer nor the cart page is open.");return}return super.checkAndSendEvent()}};var yT=t=>t,hv=t=>t.filter(e=>e.removedNodes&&e.removedNodes.length>0);function gv(t,e={childList:!0,subtree:!0},r=500,n=yT){return Zc(o=>{let i=new MutationObserver(s=>o(s));return i.observe(t,e),i},(o,i)=>i.disconnect()).pipe(un(o=>n(o)),Bf(o=>o.length>0),zt(r))}var Sl=class t{constructor(e,r){this.engagementTrigger=e;this.element=r;this.cartItems=me.getCurrent().items}cartItems;static renderCartUpsell(e){let r=e.placement;if(!r?.selector){w.warn(`No placement available for ${e.objective}`,e.shortID);return}let n=Array.from(document.querySelectorAll(r.selector));if(!n?.length){w.warn(`No placement found for ${e.objective}`,e.shortID);return}for(let o of n)new t(e,o).render()}render(){let e=this.findCartItemFromHTMLElement();if(!e||this.engagementTrigger.skipSubscribedItems&&e.selling_plan_allocation)return;let r=this.engagementTrigger.items.find(m=>m.mID===e.product_id.toString());if(!r)return;let n=r.vars.find(m=>m.mID===e.id.toString());if(!n)return;let o=new Lr(n),i=e.selling_plan_allocation?.selling_plan;if(i)for(let m of o.sellingPlans??[])m.mID===i.id.toString()&&(m.isSelected=!0,o.changeSellingPlan(m));let s=new xt(r);s.vars=[o],s.selectedOrFirstVariant.value=o;let a=`lc-cart-item-${this.engagementTrigger.shortID}-${r.mID}`;this.element.classList.add(a);let l=new St(this.engagementTrigger);l.placement.selector=`.${a}`,l.items=[s];let p=new mt(l);p.renderSilently(),this.watchForCartItemDeletion(p,a)}watchForCartItemDeletion(e,r){let n=new MutationObserver(o=>{o.forEach(i=>{i.removedNodes.forEach(s=>{s===this.element&&(w.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 Tl=class extends mt{constructor(e){super(e)}async update(e){await super.update(e),this.engagementTrigger.progressBarConfig.update(e.progressBarConfig),await this.checkMilestoneTryCatch(),this.updateAngularWidget()}isAllOkToRender(){return!!this.engagementTrigger.progressBarConfig}async startRendering(){if(this.updateAngularWidget()){this.addToRendered();return}this.createAngularWidget("cooee-progressbar"),await this.checkMilestoneTryCatch()}async checkMilestoneTryCatch(){try{await this.checkMilestone()}catch(e){ae(e,"apply-milestones",{engagementTrigger:this.engagementTrigger})}}async checkMilestone(){let e=await me.getCurrent().getNormalisedCart(),r=this.engagementTrigger.progressBarConfig,n=[],o=[],i=[],s,a,l=[...r.milestones];for(let A of l){if(A.rewardType!==zl.FREE_AUTO_GIFT)continue;if(A.isUIOnly&&!A.allowATC){w.verbose(`Skipping milestone ${A.label} as it is UI only and does not allow ATC`);continue}let B=A.items[0],q=A.reached,P=e.items.find(Q=>(Q.vID===B.vID||Q.mID===B.mID)&&Q.properties._letscooee_campaign===this.engagementTrigger.shortID);q&&(s=A,a=P),P&&n.push(P),!q&&P&&r.removeIneligibleItem?(w.verbose(`Removing free gift ${P.vID} from cart`),i.push(P)):q&&!P&&(w.verbose(`Adding free gift ${B.vID} to cart`),o.push(B))}r.restrictToLatestFreebie&&s&&(a?(n=n.filter(A=>A.vID!==a.vID),o=[]):o=[s.items[0]],i.push(...n));let p={},m={};i.length&&i.forEach(A=>m[A.key??A.vID]=0),o.length&&o.forEach(A=>m[A.vID]=1);let d=r.coupons,_=[];if(d?.length){_=d.map(q=>q.couponCode);let A=me.getCurrent().discount_codes?.map(q=>q.code)??[];_.every(q=>A.some(P=>P===q))||(p.discount=_.join(","))}if(_t.hasKeys(m)&&(p.updates=m),!_t.hasKeys(p))return;let y=await ov(p,this.engagementTrigger),C=y?.items,N=[];for(let A of o){let B=C?.find(q=>_?.length?q.id+""===A.vID&&q.discounts?.some(P=>_.includes(P.title)):q.id+""===A.vID);B&&N.push(B)}if(!N.length){Xe.get().refreshUI(y,!1);return}try{await Promise.all(N.map(A=>iv(A,{properties:this.engagementTrigger.getPrivateAttributesForLineItem()})))}catch(A){ae(A,"add-private-attribute",{engagementTrigger:this.engagementTrigger,extra:{productAddedByCooee:N}})}finally{Xe.get().refreshUI(y,!1)}}};var Fs=class extends mt{constructor(e){super(e)}async update(e){await super.update(e),this.engagementTrigger.content.update(e.content),this.updateAngularWidget()}isAllOkToRender(){return!!this.engagementTrigger.content}async startRendering(){if(this.updateAngularWidget()){this.addToRendered();return}this.createAngularWidget("cooee-savings-bar")}};var Il=class extends yt{constructor(e){super(e)}isAllOkToRender(){return!!this.engagementTrigger.content?.videoConfig}async 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 xl=class extends yt{constructor(e){super(e)}isAllOkToRender(){return!0}async startRendering(){if(this.widgetElement?.isConnected){this.addToRendered();return}this.createAngularWidget("cooee-sticky-atc")}};var Cl=class extends yt{constructor(e){super(e)}isAllOkToRender(){return!0}async startRendering(){let e=this.getParentElement(`inner-letscooee-${this.engagementTrigger.shortID}`);this.rootContainer.appendChild(e),document.addEventListener("letscooee:inbound:cta:add-bundle",this.inboundCTAListener.bind(this),!1)}async inboundCTAListener(e){let r=this.engagementTrigger,n=`Engagement(id: ${r.engagementID}, shortID: ${r.shortID})`,o=e.detail;if(!_t.hasKeys(o)){w.error(`No detail received for ${n}`);return}w.log("Detail received for BYOB",o);let i=o.campaignID??o.campaignId??o.campaign_id;if(i!==r.shortID&&i!==r.engagementID){w.warn(`Current ${n} is not BYOB. Received: ${i}`);return}let s=o.items;if(!s?.length)return;let a=s.map(l=>new At({mID:l.product_id,vID:l.variant_id,quantity:l.quantity||1}));await new pn(this.triggerContext).execute({embeddedItems:a,clickAction:{at:we.ADD_BUNDLE,applyDiscount:!0}})}};var Yf=!1,Kf=!1,Rl=null,Al=null,yv=!1;function vv(){yv||(yv=!0,bn(()=>{gv(document.body,{childList:!0,subtree:!0},500,hv).subscribe(()=>{yt.currentEngagements.forEach(t=>t.rerenderIfDeleted()),mt.currentEngagements.forEach(t=>t.rerenderIfDeleted())})}))}function Xf(t){if(vv(),Yf){w.verbose("Cart widget processing in progress, queuing latest triggers"),Rl=t;return}Yf=!0;try{vT(t)}finally{if(Yf=!1,Rl){let e=Rl;Rl=null,w.verbose("Processing queued cart triggers"),Xf(e)}}}function Jf(t){if(vv(),Kf){w.verbose("Page widget processing in progress, queuing latest triggers"),Al=t;return}Kf=!0;try{ET(t)}finally{if(Kf=!1,Al){let e=Al;Al=null,w.verbose("Processing queued page triggers"),Jf(e)}}}function vT(t){_v(mt.currentEngagements,t);for(let e of t){w.info(`${e} received as cart embed`);let r=Ev(mt.currentEngagements,e);if(r&&!e.isSubscriptionUpsell()){r.updateAndReRender(e).catch(o=>{ae(o,"update-and-re-render",{engagementTrigger:e})});continue}w.verbose(`${e} is new`);let n;if(e.isProgressBar())n=new Tl(e);else if(e.isSubscriptionUpsell()){Sl.renderCartUpsell(e);continue}else e.isSavingsBar()?n=new Fs(e):n=new mt(e);mt.currentEngagements.add(n),n.renderSilently()}}function ET(t){_v(yt.currentEngagements,t);for(let e of t){w.info(`${e} received as page embed`);let r=Ev(yt.currentEngagements,e);if(r){r.updateAndReRender(e).catch(o=>{ae(o,"update-and-re-render",{engagementTrigger:e})});continue}w.verbose(`${e} is new`);let n;e.isShoppableVideo()?n=new Il(e):e.isBYOB()?n=new Cl(e):e.isStickyATC()?n=new xl(e):e.isSavingsBar()?n=new Fs(e):n=new yt(e),yt.currentEngagements.add(n),n.renderSilently()}}function Ev(t,e){for(let r of t)if(r.matches(e))return r}function _v(t,e){let r=new Set(e.map(n=>n.shortID));for(let n of t)r.has(n.engagementTrigger.shortID)||n.destroy()}var bv=new qt,wv=0;bv.pipe(zt(50)).subscribe(async t=>{let e=await Fn();_T(e).catch(r=>{ae(r,"load-page-widgets",{extra:{firstLoad:t}})}),wT(e).catch(r=>{ae(r,"load-cart-widgets",{extra:{firstLoad:t}})})});function Ti(t=!1){Sr(lr).then(()=>{bv.next(t)})}function Sv(){mt.currentEngagements.forEach(t=>t.rerenderAfterCartOpened())}async function dv(t){let e=await Fn();return Object.assign(t,e),Yt("/v1/engagement/get-variant",t)}async function _T(t){wv++,wv===1?w.info("Fetch page widgets (after \u23F0",To()+" of SDK load)"):w.info("Fetch page widgets");let e=E({},t);try{let r=await Yt("/v1/engagement/page-widgets",e);w.info(`Page widgets loaded in \u23F0 ${zr(r.timeTakenMs)}`);let n=r.data.widgets.map(o=>new St(o));Jf(n)}catch(r){w.error("Error sending widget getter",r)}}async function wT(t){w.info("Fetch cart widgets");let e=E({},t);try{let r=await Yt("/v1/engagement/cart-widgets",e);w.info(`Cart widgets loaded in \u23F0 ${zr(r.timeTakenMs)}`);let n=r.data.widgets.map(o=>new St(o));Xf(n)}catch(r){w.error("Error sending widget getter",r)}}var Hs=class Hs extends hn{};So(Hs,"storeName","app"),Hs.storage=xo(Hs.storeName);var $s=Hs;var Dl=class{static processConfiguration(){let e=ze.get();!e.gaMeasurementID||!e.gaEnabled||this.sendClientID()}static async sendClientID(){let e=await this.getClientID();e&&vl({gaClientID:e})}static async getClientID(){let e=await nt.get("gacid"),r=await this.getClientIDViaGTag();if(e!==r)return await nt.set("gacid",r),r}static async getClientIDViaGTag(){let r=ze.get().gaMeasurementID;if(!(!r||!window.gtag))return new Promise(n=>{window.gtag("get",r,"client_id",o=>{n(o)})})}};var Ol=class t{static INSTANCE;constructor(){this.init()}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}init(){$s.get("conf",{}).then(e=>this.updateGlobalConfig(e)),window.CooeeSDK.cartChange$.subscribe(()=>{Ti()})}async processAppConfigurations(e){w.verbose("Received app configuration",e),e.currencyCount=e.currencies?.length;let r=this.updateGlobalConfig(e);$s.set("conf",r).catch(n=>w.error(n)),Dl.processConfiguration(),r.website&&(kg(r.website.commonJS),sn(r.website.commonCSS)),window.CooeeSDK.cartDrawerToggle$.pipe(zt(10)).subscribe(async({open:n})=>{w.info("Cart drawer is now",n?"open":"closed"),n&&(Sv(),await this.trackViewCartEvent())})}updateGlobalConfig(e){let r=Ce.globalRef.config.update(e);return Xe.forceUpdate(),w.verbose("App configurations",r),r}async trackViewCartEvent(){let e=await me.getCurrent().getNormalisedCart(),r={value:e.amount,currency:e.currency},n={items:e.items,amount:r,drawer:!0};Tt(new xe("View Cart",n))}};var Nl=class{runtimeData=pe();meddle(){let e=Ce.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=Ce.globalRef;e.loadWidgets=e.loadCartWidgets=e.loadPageWidgets=()=>{Ti()},e.loadExperiments=()=>{_l()},e.testCartUpdate=this.testCartUpdate.bind(this),e.previewWidget=Ce.previewWidget.bind(Ce),e.previewPopup=Ce.previewPopup.bind(Ce),e.executeCTA=(r,n)=>{new pn(r).execute(n)},e.sendEvent=r=>{Tt(r)}}overwritePush(e,r){Or(e,"push",r)}meddleAccount(){this.overwritePush(Ce.globalRef.account,(...e)=>{this.processAccount(e[0])}),Ce.globalRef.account.forEach(this.processAccount.bind(this))}meddleEvents(){this.overwritePush(Ce.globalRef.events,(...e)=>{this.processEvent(e[0])}),Ce.globalRef.events.forEach(this.processEvent.bind(this))}meddleProfile(){this.overwritePush(Ce.globalRef.profile,(...e)=>{this.processProfile(e[0])}),Ce.globalRef.profile.forEach(this.processProfile.bind(this))}processAccount(e){e&&(e.appID&&Ce.authenticate(e),e.flags&&(this.runtimeData.flags=e.flags))}processEvent(e){e&&(mm.includes(e[0])?Ce.sendEvent(e[0],e[1],E({occurred:this.runtimeData.jsLoadTime},e[2])):Ce.sendEvent(e[0],e[1],e[2]))}processProfile(e){e&&Ce.updateProfile(e)}processPageName(e){e&&Ce.setPageName(e)}meddlePage(){this.overwritePush(Ce.globalRef.page,(...e)=>{this.processPage(e[0])}),Ce.globalRef.page.forEach(this.processPage.bind(this))}processPage(e){e.currentItem&&bT(e.currentItem),e.currency&&(pe().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&&Ce.setPageName(e.pageName),e.activeExperiment&&(this.runtimeData.activeExperiments=e.activeExperiment),e.cart&&me.getCurrent().update(e.cart),e.configurations&&Ol.getInstance().processAppConfigurations(e.configurations),e.customContext&&(this.runtimeData.customContext=E(E({},this.runtimeData.customContext),e.customContext))}async testCartUpdate(){if(pe().pageName!=="product"){window.alert("This feature is only available on a product page");return}let e=mv();if(e||(e=pe().currentItem?.vID),!e){window.alert("Could not find a variant to test. Please try a different product page");return}let r=new St({id:"preview",shortID:"1",redirectBehaviour:Qt.CART_DRAWER});await new pn(new Tr(new Date,r)).execute({clickAction:{at:we.ADD_TO_CART},embeddedItem:new At({vID:e})})}};function bT(t){let e=pe();if(e.currentItem&&e.currentItem.vID!==t.vID){let r=new CustomEvent("letscooee:variant-change",{detail:{variantID:t.vID,productID:t.mID}});document.dispatchEvent(r)}e.currentItem=new At(t)}var Ii=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 ST=1e3,TT=10,Qf=0,Zf=new Date;function em(t){Ii.remove("sleid"),Zf=t??new Date}function Tv(){if(window.scrollY){let t=Cv();Iv(t)&&xv(t)}bn(()=>{IT()})}function IT(){fo(window,"scroll").pipe(zt(ST),un(()=>{let t=Cv();if(t>100){w.warn("Received scroll percent is more than 100",t);return}if(Iv(t))return t})).subscribe(t=>{xv(t)})}function Iv(t){return Math.abs(Qf-t)>=TT||Qf!==t&&t===100}function xv(t){if(t==null)return;let e={percent:t,timeMS:new Date().getTime()-Zf.getTime()};Qf=t;let r=Ii.getString("sleid",""),n=new xe("CE Scroll",e,null,r);Tt(n),Ii.setString("sleid",n.id.toHexString()),Zf=new Date(n.occurred)}function Cv(){let t=window.document.body.scrollHeight,e=window.innerHeight;return Math.ceil((window.scrollY+e)/t*100)}function Rv(){xT()}function xT(){let t=window.fetch;window.fetch=async function(e,r){try{await CT(e,r)}catch(n){ae(n,"modify-graphql-request",{extra:{body:JSON.stringify(r?.body)}})}return t(e,r)},w.verbose("Securely overwritten window.fetch method for graphql query")}async function CT(t,e){let r=typeof t=="string"?t:t instanceof Request?t.url:"";if(!(r.includes("graphql.json")&&e?.method==="POST")||!e.body)return;let n;if(typeof e.body=="string")try{n=JSON.parse(e.body)}catch{return}else n=e.body;n?.variables?.input&&(w.verbose("Intercepted fetch request of:",r),n?.query.includes("cartCreate")&&(e.body=await RT(n),AT()))}async function RT(t){let e=t.variables.input.attributes??[],r=await Wa("Buy Now");return t.variables.input.attributes=[...e,...r],JSON.stringify(t)}function AT(){let t=pe().currentItem;if(!t)return;let e=new xe("Buy Now Clicked",{items:[t]});Tt(e)}var xi=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 xe(this.eventName,{class:r.className||void 0,tagName:r.tagName||void 0,id:r.id||void 0});Tt(n),this.removeClickListener(this.clickListenerCallback)};listenSilently(){this.listen().catch(e=>w.error(e))}async listen(){this.elements=await yp(this.selectorString),this.elements.forEach(e=>{e.addEventListener("click",this.clickListenerCallback)})}removeClickListener(e){this.elements?.forEach(r=>{r.removeEventListener("click",e)})}};var Pl=class t extends xi{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 Ll=class t extends xi{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 DT=[".gokwik-checkout button","button.cart__checkout-button","button.cart__checkout","button#checkout","button#checkout2",'button[id*="checkout" i]','button[name*="checkout" i]','button[class*="checkout" i]'].join(",");function Av(){bn(()=>{w.verbose("Execution order:","document ready"),OT()})}function OT(){let t=window.location.hash?.substring(1);if(t)if(t.includes("initiate-checkout")){document.dispatchEvent(new Event("letscooee:outbound:third-party-initiate-checkout"));let e=document.querySelector(DT);if(!e){w.verbose("No clickable cart checkout button found");return}w.verbose("Clickable cart checkout button found",e),e.click()}else t.includes("open-cart-drawer")&&Xe.get().open()}function Ov(){window.addEventListener("kp-modal:opened",()=>{pe().isGoKwikPopupOpen=!0}),window.addEventListener("user-loggedin",t=>{let{token:e}=t.detail;e&&bi({goKwikToken:e})}),window.gokwikSdk?Dv():window.addEventListener("gokwikLoaded",Dv)}function Dv(){window.gokwikSdk&&window.gokwikSdk.on("checkout_initiated",async()=>{let t=await me.getCurrent().getNormalisedCart(),e={via:"GoKwik",items:t.items,cartToken:t.token,amount:{value:t.amount,currency:t.currency}},r=new xe("Checkout Started",e);Tt(r)})}var Ml=class{static watch(){let e=ym();(e==="1"||e==="on")&&vl({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,bn(()=>{document.body.appendChild(e)})}static getDebugMillis(){return new Date().getTime()+360*60*1e3}};var Ce=class{static globalRef;static authenticated;static async initForMerchantWebsiteOnly(e){window.cooeeSDKPreview||(this.initGlobalReference(e),await ho.getInstance().getOrSetDeviceIDSafe(),this.autoAuthenticate(),new Nl().meddle(),Sm(),Ti(!0),_l(),Gy(),Zy(),Rv(),Av(),Tv(),Ll.getInstance().listenSilently(),Pl.getInstance().listenSilently(),Ov(),NT(),Ml.watch())}static async initForAll(){this.injectWidgetAssets()}static initGlobalReference(e){window.CooeeSDK||Or(window,"CooeeSDK",{}),this.globalRef=window.CooeeSDK,Or(this.globalRef,"config",new ze),Or(this.globalRef,"runtimeData",{sdkLoadTime:e,jsLoadTime:new Date,lastEnterActive:new Date}),Or(this.globalRef,"uaParser",new wr,!0),Or(this.globalRef,"cart",me.getCurrent()),Or(this.globalRef,"cartChange$",Qy()),Or(this.globalRef,"cartDrawerToggle$",Xe.cartDrawerToggle$.asObservable()),w.verbose("Global reference initialised"),new Oc(()=>{this.globalRef.uaParser=new wr})}static injectWidgetAssets(){Bg(dr.widgetURL,"cooee-widget-sdk"),af()}static autoAuthenticate(){let e=nc();e&&this.authenticate({shopifyShop:e})}static authenticate(e){if(this.authenticated)return;w.info("Begin auth after \u23F0",To(),"of SDK load");let r=e.appID?.trim(),n=e.shopifyShop;if((hp(r)||r.length!==24)&&hp(n)){w.warn("Cooee App ID or Shop name is not configured");return}this.authenticated=!0,ho.getInstance().authenticate(e)}static sendEvent(e,r,n){let o=new xe(e,r,n?.triggerData);n?.occurred&&(o.occurred=n.occurred),Tt(o)}static updateProfile(e){for(let r in e)if(r.toLowerCase().startsWith("ce "))throw new Error("User property name cannot start with 'CE '");bi(e)}static setPageName(e){if(!e)return;let r=pe(),n=r.pageName;if(e===n)return;if(r.pageName=e,pm.some(s=>e.includes(s))){em();return}let o={};n&&(o.ps=n);let i=new xe("CE Screen View",o);i.occurred=r.jsLoadTime,Tt(i),em(i.occurred)}static previewPopup(e,r){new kn(r).render(e)}static previewWidget(e){new yt(new St(e)).renderSilently()}};function NT(){if(window.opener){try{window.opener.postMessage({action:"COOEE_READY_FOR_PREVIEW"},"*")}catch(t){w.error(t)}window.addEventListener("message",t=>{if(w.verbose("Received event",t),!t.origin.includes("letscooee.com")&&!t.origin.includes("localhost"))return;let e=t.data;typeof e=="object"&&(e.action==="POPUP_PREVIEW"?(Ce.previewPopup(e.engagementTrigger),t.source?.postMessage({action:"PREVIEW_SUCCESSFUL"},t.origin)):e.action==="WIDGET_PREVIEW"&&(Ce.previewWidget(e.engagementTrigger),t.source?.postMessage({action:"PREVIEW_SUCCESSFUL"},t.origin)))})}}var Nv=new Date;hm();vm();w.verbose("Execution order:","top");window.cooeeShopifyScriptLoaded||(window.cooeeShopifyScriptLoaded=!0,(async()=>(w.verbose("Execution order:","IIFE start"),await Ce.initForMerchantWebsiteOnly(Nv),await Ce.initForAll(),PT(),w.verbose("Execution order:","IIFE end")))());w.verbose("Execution order:","bottom");function PT(){gm()&&import("./debug-logs-WFAAFYFC.js").then(({printAllDebugLogs:t})=>t(Nv))}
63
+ ${o}`;sn(`#${i} { ${s} }`)}injectOuterCSSOnly(){let e=this.engagementTrigger.content?.outerCSS?.trim();if(!e)return;let r=this.rootContainer.id;sn(`#${r} { ${e} }`)}isInViewport(){let e=this.rootContainer?.getBoundingClientRect();if(!e)return!1;let r=window.innerHeight||document.documentElement.clientHeight,o=(Math.min(e.bottom,r)-Math.max(e.top,0))*e.width,i=e.width*e.height,s=o/i*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 w.info(`\u26A0\uFE0F${this.engagementTrigger} does not have a selector`),null;let n=r.selector,o;if(n.includes(":shadow")){let l=n.split(":shadow");o=(await Sn(l[0].trim()))?.shadowRoot,n=l[1].trim(),o&&lf(o,!1)}w.verbose(`${this.engagementTrigger} attempt to render "${r.position}" "${n}"`);let i=await Sn(n,3,o??document);if(!i)return w.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 Rt.BEFORE1:case Rt.BEFORE:{i.parentElement?.insertBefore(a,i);break}case Rt.INSIDE_FIRST1:case Rt.INSIDE_FIRST:{i.insertBefore(a,i.firstChild);break}case Rt.INSIDE_LAST1:case Rt.INSIDE_LAST:{i.appendChild(a);break}case Rt.AFTER1:case Rt.AFTER:default:i.parentElement?.insertBefore(a,i.nextSibling)}return a}async runChoresBeforeRender(){if(this.isExclusionWithBVariation)return;if(!this.isAllOkToRender()){w.info(`\u26A0\uFE0F ${this.engagementTrigger} could not be rendered`);return}w.verbose(`${this.engagementTrigger} will be rendered`);let e;try{e=await yl(this.engagementTrigger)}catch(r){w.info(`\u203C\uFE0F${this.engagementTrigger} could not render as items failed to refresh`,r);return}if(!this.engagementTrigger.isCollectionPromoted()&&!e?.length&&this.engagementTrigger.isProductPromoted()){w.info(`\u203C\uFE0F${this.engagementTrigger} could not render as no products promoted`);return}this.engagementTrigger.items=e,await this.startRendering()}updateItems(e,r){let n=this.getItemDiff(e,r),o=this.getItemDiff(r,e);r.push(...n);for(let i of o)Yr.remove(r,i)}getItemDiff(e,r){return e.filter(n=>!r.some(o=>o.selectedOrFirstVariant.value.mID===n.selectedOrFirstVariant.value.mID))}};var mt=class extends yt{static currentEngagements=new Set;constructor(e){super(e)}rerenderAfterCartOpened(){this.rerenderIfDeleted(),this.checkAndSendEvent()}observeWidgetContainerInViewport(){return this.getVariation()}generateParentElementID(){let e=super.generateParentElementID();return this.engagementTrigger.isSubscriptionUpsell()&&(e+=`-${this.engagementTrigger.items[0].selectedOrFirstVariant.value.mID}`),e}checkAndSendEvent(){if(!Xe.get().isOpen()&&pe().pageName!=="cart"){w.log("Do not send display event as neither the cart drawer nor the cart page is open.");return}return super.checkAndSendEvent()}};var yT=t=>t,hv=t=>t.filter(e=>e.removedNodes&&e.removedNodes.length>0);function gv(t,e={childList:!0,subtree:!0},r=500,n=yT){return Zc(o=>{let i=new MutationObserver(s=>o(s));return i.observe(t,e),i},(o,i)=>i.disconnect()).pipe(un(o=>n(o)),Bf(o=>o.length>0),zt(r))}var Sl=class t{constructor(e,r){this.engagementTrigger=e;this.element=r;this.cartItems=me.getCurrent().items}cartItems;static renderCartUpsell(e){let r=e.placement;if(!r?.selector){w.warn(`No placement available for ${e.objective}`,e.shortID);return}let n=Array.from(document.querySelectorAll(r.selector));if(!n?.length){w.warn(`No placement found for ${e.objective}`,e.shortID);return}for(let o of n)new t(e,o).render()}render(){let e=this.findCartItemFromHTMLElement();if(!e||this.engagementTrigger.skipSubscribedItems&&e.selling_plan_allocation)return;let r=this.engagementTrigger.items.find(m=>m.mID===e.product_id.toString());if(!r)return;let n=r.vars.find(m=>m.mID===e.id.toString());if(!n)return;let o=new Lr(n),i=e.selling_plan_allocation?.selling_plan;if(i)for(let m of o.sellingPlans??[])m.mID===i.id.toString()&&(m.isSelected=!0,o.changeSellingPlan(m));let s=new xt(r);s.vars=[o],s.selectedOrFirstVariant.value=o;let a=`lc-cart-item-${this.engagementTrigger.shortID}-${r.mID}`;this.element.classList.add(a);let l=new St(this.engagementTrigger);l.placement.selector=`.${a}`,l.items=[s];let p=new mt(l);p.renderSilently(),this.watchForCartItemDeletion(p,a)}watchForCartItemDeletion(e,r){let n=new MutationObserver(o=>{o.forEach(i=>{i.removedNodes.forEach(s=>{s===this.element&&(w.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 Tl=class extends mt{constructor(e){super(e)}async update(e){await super.update(e),this.engagementTrigger.progressBarConfig.update(e.progressBarConfig),await this.checkMilestoneTryCatch(),this.updateAngularWidget()}isAllOkToRender(){return!!this.engagementTrigger.progressBarConfig}async startRendering(){if(this.updateAngularWidget()){this.addToRendered();return}this.createAngularWidget("cooee-progressbar"),await this.checkMilestoneTryCatch()}async checkMilestoneTryCatch(){try{await this.checkMilestone()}catch(e){ae(e,"apply-milestones",{engagementTrigger:this.engagementTrigger})}}async checkMilestone(){let e=await me.getCurrent().getNormalisedCart(),r=this.engagementTrigger.progressBarConfig,n=[],o=[],i=[],s,a,l=[...r.milestones];for(let A of l){if(A.rewardType!==zl.FREE_AUTO_GIFT)continue;if(A.isUIOnly&&!A.allowATC){w.verbose(`Skipping milestone ${A.label} as it is UI only and does not allow ATC`);continue}let B=A.items[0],q=A.reached,P=e.items.find(Q=>(Q.vID===B.vID||Q.mID===B.mID)&&Q.properties._letscooee_campaign===this.engagementTrigger.shortID);q&&(s=A,a=P),P&&n.push(P),!q&&P&&r.removeIneligibleItem?(w.verbose(`Removing free gift ${P.vID} from cart`),i.push(P)):q&&!P&&(w.verbose(`Adding free gift ${B.vID} to cart`),o.push(B))}r.restrictToLatestFreebie&&s&&(a?(n=n.filter(A=>A.vID!==a.vID),o=[]):o=[s.items[0]],i.push(...n));let p={},m={};i.length&&i.forEach(A=>m[A.key??A.vID]=0),o.length&&o.forEach(A=>m[A.vID]=1);let d=r.coupons,_=[];if(d?.length){_=d.map(q=>q.couponCode);let A=me.getCurrent().discount_codes?.map(q=>q.code)??[];_.every(q=>A.some(P=>P===q))||(p.discount=_.join(","))}if(_t.hasKeys(m)&&(p.updates=m),!_t.hasKeys(p))return;let y=await ov(p,this.engagementTrigger),C=y?.items,N=[];for(let A of o){let B=C?.find(q=>_?.length?q.id+""===A.vID&&q.discounts?.some(P=>_.includes(P.title)):q.id+""===A.vID);B&&N.push(B)}if(!N.length){Xe.get().refreshUI(y,!1);return}try{await Promise.all(N.map(A=>iv(A,{properties:this.engagementTrigger.getPrivateAttributesForLineItem()})))}catch(A){ae(A,"add-private-attribute",{engagementTrigger:this.engagementTrigger,extra:{productAddedByCooee:N}})}finally{Xe.get().refreshUI(y,!1)}}};var Fs=class extends mt{constructor(e){super(e)}async update(e){await super.update(e),this.engagementTrigger.content.update(e.content),this.updateAngularWidget()}isAllOkToRender(){return!!this.engagementTrigger.content}async startRendering(){if(this.updateAngularWidget()){this.addToRendered();return}this.createAngularWidget("cooee-savings-bar")}};var Il=class extends yt{constructor(e){super(e)}isAllOkToRender(){return!!this.engagementTrigger.content?.videoConfig}async 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 xl=class extends yt{constructor(e){super(e)}isAllOkToRender(){return!0}async startRendering(){if(this.widgetElement?.isConnected){this.addToRendered();return}this.createAngularWidget("cooee-sticky-atc")}};var Cl=class extends yt{constructor(e){super(e)}isAllOkToRender(){return!0}async startRendering(){let e=this.getParentElement(`inner-letscooee-${this.engagementTrigger.shortID}`);this.rootContainer.appendChild(e),document.addEventListener("letscooee:inbound:cta:add-bundle",this.inboundCTAListener.bind(this),!1)}async inboundCTAListener(e){let r=this.engagementTrigger,n=`Engagement(id: ${r.engagementID}, shortID: ${r.shortID})`,o=e.detail;if(!_t.hasKeys(o)){w.error(`No detail received for ${n}`);return}w.log("Detail received for BYOB",o);let i=o.campaignID??o.campaignId??o.campaign_id;if(i!==r.shortID&&i!==r.engagementID){w.warn(`Current ${n} is not BYOB. Received: ${i}`);return}let s=o.items;if(!s?.length)return;let a=s.map(l=>new At({mID:l.product_id,vID:l.variant_id,quantity:l.quantity||1}));await new pn(this.triggerContext).execute({embeddedItems:a,clickAction:{at:we.ADD_BUNDLE,applyDiscount:!0}})}};var Yf=!1,Kf=!1,Rl=null,Al=null,yv=!1;function vv(){yv||(yv=!0,bn(()=>{gv(document.body,{childList:!0,subtree:!0},500,hv).subscribe(()=>{yt.currentEngagements.forEach(t=>t.rerenderIfDeleted()),mt.currentEngagements.forEach(t=>t.rerenderIfDeleted())})}))}function Xf(t){if(vv(),Yf){w.verbose("Cart widget processing in progress, queuing latest triggers"),Rl=t;return}Yf=!0;try{vT(t)}finally{if(Yf=!1,Rl){let e=Rl;Rl=null,w.verbose("Processing queued cart triggers"),Xf(e)}}}function Jf(t){if(vv(),Kf){w.verbose("Page widget processing in progress, queuing latest triggers"),Al=t;return}Kf=!0;try{ET(t)}finally{if(Kf=!1,Al){let e=Al;Al=null,w.verbose("Processing queued page triggers"),Jf(e)}}}function vT(t){_v(mt.currentEngagements,t);for(let e of t){w.info(`${e} received as cart embed`);let r=Ev(mt.currentEngagements,e);if(r&&!e.isSubscriptionUpsell()){r.updateAndReRender(e).catch(o=>{ae(o,"update-and-re-render",{engagementTrigger:e})});continue}w.verbose(`${e} is new`);let n;if(e.isProgressBar())n=new Tl(e);else if(e.isSubscriptionUpsell()){Sl.renderCartUpsell(e);continue}else e.isSavingsBar()?n=new Fs(e):n=new mt(e);mt.currentEngagements.add(n),n.renderSilently()}}function ET(t){_v(yt.currentEngagements,t);for(let e of t){w.info(`${e} received as page embed`);let r=Ev(yt.currentEngagements,e);if(r){r.updateAndReRender(e).catch(o=>{ae(o,"update-and-re-render",{engagementTrigger:e})});continue}w.verbose(`${e} is new`);let n;e.isShoppableVideo()?n=new Il(e):e.isBYOB()?n=new Cl(e):e.isStickyATC()?n=new xl(e):e.isSavingsBar()?n=new Fs(e):n=new yt(e),yt.currentEngagements.add(n),n.renderSilently()}}function Ev(t,e){for(let r of t)if(r.matches(e))return r}function _v(t,e){let r=new Set(e.map(n=>n.shortID));for(let n of t)r.has(n.engagementTrigger.shortID)||n.destroy()}var bv=new qt,wv=0;bv.pipe(zt(50)).subscribe(async t=>{let e=await Fn();_T(e).catch(r=>{ae(r,"load-page-widgets",{extra:{firstLoad:t}})}),wT(e).catch(r=>{ae(r,"load-cart-widgets",{extra:{firstLoad:t}})})});function Ti(t=!1){Sr(lr).then(()=>{bv.next(t)})}function Sv(){mt.currentEngagements.forEach(t=>t.rerenderAfterCartOpened())}async function dv(t){let e=await Fn();return Object.assign(t,e),Yt("/v1/engagement/get-variant",t)}async function _T(t){wv++,wv===1?w.info("Fetch page widgets (after \u23F0",To()+" of SDK load)"):w.info("Fetch page widgets");let e=E({},t);try{let r=await Yt("/v1/engagement/page-widgets",e);w.info(`Page widgets loaded in \u23F0 ${zr(r.timeTakenMs)}`);let n=r.data.widgets.map(o=>new St(o));Jf(n)}catch(r){w.error("Error sending widget getter",r)}}async function wT(t){w.info("Fetch cart widgets");let e=E({},t);try{let r=await Yt("/v1/engagement/cart-widgets",e);w.info(`Cart widgets loaded in \u23F0 ${zr(r.timeTakenMs)}`);let n=r.data.widgets.map(o=>new St(o));Xf(n)}catch(r){w.error("Error sending widget getter",r)}}var Hs=class Hs extends hn{};So(Hs,"storeName","app"),Hs.storage=xo(Hs.storeName);var $s=Hs;var Dl=class{static processConfiguration(){let e=ze.get();!e.gaMeasurementID||!e.gaEnabled||this.sendClientID()}static async sendClientID(){let e=await this.getClientID();e&&vl({gaClientID:e})}static async getClientID(){let e=await nt.get("gacid"),r=await this.getClientIDViaGTag();if(e!==r)return await nt.set("gacid",r),r}static async getClientIDViaGTag(){let r=ze.get().gaMeasurementID;if(!(!r||!window.gtag))return new Promise(n=>{window.gtag("get",r,"client_id",o=>{n(o)})})}};var Ol=class t{static INSTANCE;constructor(){this.init()}static getInstance(){return this.INSTANCE||(this.INSTANCE=new t),this.INSTANCE}init(){$s.get("conf",{}).then(e=>this.updateGlobalConfig(e)),window.CooeeSDK.cartChange$.subscribe(()=>{Ti()})}async processAppConfigurations(e){w.verbose("Received app configuration",e),e.currencyCount=e.currencies?.length;let r=this.updateGlobalConfig(e);$s.set("conf",r).catch(n=>w.error(n)),Dl.processConfiguration(),r.website&&(kg(r.website.commonJS),sn(r.website.commonCSS)),window.CooeeSDK.cartDrawerToggle$.pipe(zt(10)).subscribe(async({open:n})=>{w.info("Cart drawer is now",n?"open":"closed"),n&&(Sv(),await this.trackViewCartEvent())})}updateGlobalConfig(e){let r=Ce.globalRef.config.update(e);return Xe.forceUpdate(),w.verbose("App configurations",r),r}async trackViewCartEvent(){let e=await me.getCurrent().getNormalisedCart(),r={value:e.amount,currency:e.currency},n={items:e.items,amount:r,drawer:!0};Tt(new xe("View Cart",n))}};var Nl=class{runtimeData=pe();meddle(){let e=Ce.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=Ce.globalRef;e.loadWidgets=e.loadCartWidgets=e.loadPageWidgets=()=>{Ti()},e.loadExperiments=()=>{_l()},e.testCartUpdate=this.testCartUpdate.bind(this),e.previewWidget=Ce.previewWidget.bind(Ce),e.previewPopup=Ce.previewPopup.bind(Ce),e.executeCTA=(r,n)=>{new pn(r).execute(n)},e.sendEvent=r=>{Tt(r)}}overwritePush(e,r){Or(e,"push",r)}meddleAccount(){this.overwritePush(Ce.globalRef.account,(...e)=>{this.processAccount(e[0])}),Ce.globalRef.account.forEach(this.processAccount.bind(this))}meddleEvents(){this.overwritePush(Ce.globalRef.events,(...e)=>{this.processEvent(e[0])}),Ce.globalRef.events.forEach(this.processEvent.bind(this))}meddleProfile(){this.overwritePush(Ce.globalRef.profile,(...e)=>{this.processProfile(e[0])}),Ce.globalRef.profile.forEach(this.processProfile.bind(this))}processAccount(e){e&&(e.appID&&Ce.authenticate(e),e.flags&&(this.runtimeData.flags=e.flags))}processEvent(e){e&&(mm.includes(e[0])?Ce.sendEvent(e[0],e[1],E({occurred:this.runtimeData.jsLoadTime},e[2])):Ce.sendEvent(e[0],e[1],e[2]))}processProfile(e){e&&Ce.updateProfile(e)}processPageName(e){e&&Ce.setPageName(e)}meddlePage(){this.overwritePush(Ce.globalRef.page,(...e)=>{this.processPage(e[0])}),Ce.globalRef.page.forEach(this.processPage.bind(this))}processPage(e){e.currentItem&&bT(e.currentItem),e.currency&&(pe().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&&Ce.setPageName(e.pageName),e.activeExperiment&&(this.runtimeData.activeExperiments=e.activeExperiment),e.cart&&me.getCurrent().update(e.cart),e.configurations&&Ol.getInstance().processAppConfigurations(e.configurations),e.customContext&&(this.runtimeData.customContext=E(E({},this.runtimeData.customContext),e.customContext))}async testCartUpdate(){if(pe().pageName!=="product"){window.alert("This feature is only available on a product page");return}let e=mv();if(e||(e=pe().currentItem?.vID),!e){window.alert("Could not find a variant to test. Please try a different product page");return}let r=new St({id:"preview",shortID:"1",redirectBehaviour:Qt.CART_DRAWER});await new pn(new Tr(new Date,r)).execute({clickAction:{at:we.ADD_TO_CART},embeddedItem:new At({vID:e})})}};function bT(t){let e=pe();if(e.currentItem&&e.currentItem.vID!==t.vID){let r=new CustomEvent("letscooee:variant-change",{detail:{variantID:t.vID,productID:t.mID}});document.dispatchEvent(r)}e.currentItem=new At(t)}var Ii=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 ST=1e3,TT=10,Qf=0,Zf=new Date;function em(t){Ii.remove("sleid"),Zf=t??new Date}function Tv(){if(window.scrollY){let t=Cv();Iv(t)&&xv(t)}bn(()=>{IT()})}function IT(){fo(window,"scroll").pipe(zt(ST),un(()=>{let t=Cv();if(t>100){w.warn("Received scroll percent is more than 100",t);return}if(Iv(t))return t})).subscribe(t=>{xv(t)})}function Iv(t){return Math.abs(Qf-t)>=TT||Qf!==t&&t===100}function xv(t){if(t==null)return;let e={percent:t,timeMS:new Date().getTime()-Zf.getTime()};Qf=t;let r=Ii.getString("sleid",""),n=new xe("CE Scroll",e,null,r);Tt(n),Ii.setString("sleid",n.id.toHexString()),Zf=new Date(n.occurred)}function Cv(){let t=window.document.body.scrollHeight,e=window.innerHeight;return Math.ceil((window.scrollY+e)/t*100)}function Rv(){xT()}function xT(){let t=window.fetch;window.fetch=async function(e,r){try{await CT(e,r)}catch(n){ae(n,"modify-graphql-request",{extra:{body:JSON.stringify(r?.body)}})}return t(e,r)},w.verbose("Securely overwritten window.fetch method for graphql query")}async function CT(t,e){let r=typeof t=="string"?t:t instanceof Request?t.url:"";if(!(r.includes("graphql.json")&&e?.method==="POST")||!e.body)return;let n;if(typeof e.body=="string")try{n=JSON.parse(e.body)}catch{return}else n=e.body;n?.variables?.input&&(w.verbose("Intercepted fetch request of:",r),n?.query.includes("cartCreate")&&(e.body=await RT(n),AT()))}async function RT(t){let e=t.variables.input.attributes??[],r=await Wa("Buy Now");return t.variables.input.attributes=[...e,...r],JSON.stringify(t)}function AT(){let t=pe().currentItem;if(!t)return;let e=new xe("Buy Now Clicked",{items:[t]});Tt(e)}var xi=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 xe(this.eventName,{class:r.className||void 0,tagName:r.tagName||void 0,id:r.id||void 0});Tt(n),this.removeClickListener(this.clickListenerCallback)};listenSilently(){this.listen().catch(e=>w.error(e))}async listen(){this.elements=await yp(this.selectorString),this.elements.forEach(e=>{e.addEventListener("click",this.clickListenerCallback)})}removeClickListener(e){this.elements?.forEach(r=>{r.removeEventListener("click",e)})}};var Pl=class t extends xi{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 Ll=class t extends xi{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 DT=[".gokwik-checkout button","button.cart__checkout-button","button.cart__checkout","button#checkout","button#checkout2",'button[id*="checkout" i]','button[name*="checkout" i]','button[class*="checkout" i]'].join(",");function Av(){bn(()=>{w.verbose("Execution order:","document ready"),OT()})}function OT(){let t=window.location.hash?.substring(1);if(t)if(t.includes("initiate-checkout")){document.dispatchEvent(new Event("letscooee:outbound:third-party-initiate-checkout"));let e=document.querySelector(DT);if(!e){w.verbose("No clickable cart checkout button found");return}w.verbose("Clickable cart checkout button found",e),e.click()}else t.includes("open-cart-drawer")&&Xe.get().open()}function Ov(){window.addEventListener("kp-modal:opened",()=>{pe().isGoKwikPopupOpen=!0}),window.addEventListener("user-loggedin",t=>{let{token:e}=t.detail;e&&bi({goKwikToken:e})}),window.gokwikSdk?Dv():window.addEventListener("gokwikLoaded",Dv)}function Dv(){window.gokwikSdk&&window.gokwikSdk.on("checkout_initiated",async()=>{let t=await me.getCurrent().getNormalisedCart(),e={via:"GoKwik",items:t.items,cartToken:t.token,amount:{value:t.amount,currency:t.currency}},r=new xe("Checkout Started",e);Tt(r)})}var Ml=class{static watch(){let e=ym();(e==="1"||e==="on")&&vl({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,bn(()=>{document.body.appendChild(e)})}static getDebugMillis(){return new Date().getTime()+360*60*1e3}};var Ce=class{static globalRef;static authenticated;static async initForMerchantWebsiteOnly(e){window.cooeeSDKPreview||(this.initGlobalReference(e),await ho.getInstance().getOrSetDeviceIDSafe(),this.autoAuthenticate(),new Nl().meddle(),Sm(),Ti(!0),_l(),Gy(),Zy(),Rv(),Av(),Tv(),Ll.getInstance().listenSilently(),Pl.getInstance().listenSilently(),Ov(),NT(),Ml.watch())}static async initForAll(){this.injectWidgetAssets()}static initGlobalReference(e){window.CooeeSDK||Or(window,"CooeeSDK",{}),this.globalRef=window.CooeeSDK,Or(this.globalRef,"config",new ze),Or(this.globalRef,"runtimeData",{sdkLoadTime:e,jsLoadTime:new Date,lastEnterActive:new Date}),Or(this.globalRef,"uaParser",new wr,!0),Or(this.globalRef,"cart",me.getCurrent()),Or(this.globalRef,"cartChange$",Qy()),Or(this.globalRef,"cartDrawerToggle$",Xe.cartDrawerToggle$.asObservable()),w.verbose("Global reference initialised"),new Oc(()=>{this.globalRef.uaParser=new wr})}static injectWidgetAssets(){Bg(dr.widgetURL,"cooee-widget-sdk"),af()}static autoAuthenticate(){let e=nc();e&&this.authenticate({shopifyShop:e})}static authenticate(e){if(this.authenticated)return;w.info("Begin auth after \u23F0",To(),"of SDK load");let r=e.appID?.trim(),n=e.shopifyShop;if((hp(r)||r.length!==24)&&hp(n)){w.warn("Cooee App ID or Shop name is not configured");return}this.authenticated=!0,ho.getInstance().authenticate(e)}static sendEvent(e,r,n){let o=new xe(e,r,n?.triggerData);n?.occurred&&(o.occurred=n.occurred),Tt(o)}static updateProfile(e){for(let r in e)if(r.toLowerCase().startsWith("ce "))throw new Error("User property name cannot start with 'CE '");bi(e)}static setPageName(e){if(!e)return;let r=pe(),n=r.pageName;if(e===n)return;if(r.pageName=e,pm.some(s=>e.includes(s))){em();return}let o={};n&&(o.ps=n);let i=new xe("CE Screen View",o);i.occurred=r.jsLoadTime,Tt(i),em(i.occurred)}static previewPopup(e,r){new kn(r).render(e)}static previewWidget(e){new yt(new St(e)).renderSilently()}};function NT(){if(window.opener){try{window.opener.postMessage({action:"COOEE_READY_FOR_PREVIEW"},"*")}catch(t){w.error(t)}window.addEventListener("message",t=>{if(w.verbose("Received event",t),!t.origin.includes("letscooee.com")&&!t.origin.includes("localhost"))return;let e=t.data;typeof e=="object"&&(e.action==="POPUP_PREVIEW"?(Ce.previewPopup(e.engagementTrigger),t.source?.postMessage({action:"PREVIEW_SUCCESSFUL"},t.origin)):e.action==="WIDGET_PREVIEW"&&(Ce.previewWidget(e.engagementTrigger),t.source?.postMessage({action:"PREVIEW_SUCCESSFUL"},t.origin)))})}}var Nv=new Date;hm();vm();w.verbose("Execution order:","top");window.cooeeShopifyScriptLoaded||(window.cooeeShopifyScriptLoaded=!0,(async()=>(w.verbose("Execution order:","IIFE start"),await Ce.initForMerchantWebsiteOnly(Nv),await Ce.initForAll(),PT(),w.verbose("Execution order:","IIFE end")))());w.verbose("Execution order:","bottom");function PT(){gm()&&import("./debug-logs-HITCJJ25.js").then(({printAllDebugLogs:t})=>t(Nv))}
@@ -1 +1 @@
1
- import{a as C,b}from"./chunk-QIHD454P.js";import{e as g,f as h,i as u,l as f}from"./chunk-3LDVHPDI.js";import{Aa as l,Pa as c,X as m,oa as n,pa as i,qa as r,v as s}from"./chunk-I4NX4HQ6.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-3GZ4BSKI.js";import{e as g,f as h,i as u,l as f}from"./chunk-K52QD6ZW.js";import{Aa as l,Pa as c,X as m,oa as n,pa as i,qa as r,v as s}from"./chunk-I4NX4HQ6.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};