@letscooee/web-sdk 13.0.0 → 13.0.1

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 pm,d as fm,e as mm,f as dm,g as hm,h as mr,i as Gs,j as w,k as gm,l as ym,m as vm,n as Em,o as qr}from"./chunk-4EBKD5OK.js";import{a as E,b as Z,c as Ai,d as um,e as Wl,f as zr,g as So}from"./chunk-V7UGKYBN.js";var jl=Wl(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.URLBuilder=void 0;var hE=(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})();zs.URLBuilder=hE});var Cm=Wl((xm,Ql)=>{"use strict";(function(t){if(typeof xm=="object"&&typeof Ql<"u")Ql.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(d,m){if(!i[d]){if(!o[d]){var _=typeof Ai=="function"&&Ai;if(!m&&_)return _(d,!0);if(l)return l(d,!0);var y=new Error("Cannot find module '"+d+"'");throw y.code="MODULE_NOT_FOUND",y}var C=i[d]={exports:{}};o[d][0].call(C.exports,function(N){var A=o[d][1][N];return a(A||N)},C,C.exports,n,o,i,s)}return i[d].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,d=new a(N),m=s.document.createTextNode("");d.observe(m,{characterData:!0}),l=function(){m.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,z,P=C.length;P;){for(z=C,C=[],B=-1;++B<P;)z[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"],d=["FULFILLED"],m=["PENDING"];o.exports=_;function _(X){if(typeof X!="function")throw new TypeError("resolver must be a function");this.state=m,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===d||typeof ce!="function"&&this.state===p)return this;var se=new this.constructor(a);if(this.state!==m){var de=this.state===d?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=d,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=z;function z(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 d(){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 m(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",z=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=m([""]);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 z=="boolean"?_.resolve(z):se(f).then(function(b){return z=b,z})}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]||ze(),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(q){if(q.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 q}}),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 m([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 ze(){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=ze(),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 q=I.forages[G];q!==b&&S.push(q._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 q=G.objectStore(g._dbInfo.storeName),Y=q.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 q=G.objectStore(g._dbInfo.storeName),Y=q.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(q){return q?b:R(b)}):b}).then(function(q){he(T._dbInfo,X,function(Y,J){if(Y)return M(Y);try{var te=J.objectStore(T._dbInfo.storeName);q===null&&(q=void 0);var ve=te.put(q,f);J.oncomplete=function(){q===void 0&&(q=null),S(q)},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 q=G.objectStore(g._dbInfo.storeName),Y=q.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),q=G.clear();M.oncomplete=function(){T()},M.onabort=M.onerror=function(){var Y=q.error?q.error:q.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),q=G.count();q.onsuccess=function(){T(q.result)},q.onerror=function(){I(q.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 q=G.objectStore(g._dbInfo.storeName),Y=!1,J=q.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),q=G.openKeyCursor(),Y=[];q.onsuccess=function(){var J=q.result;if(!J){T(Y);return}Y.push(J.key),J.continue()},q.onerror=function(){I(q.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 q=P[f.name],Y=q.forages;q.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 q=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=q}var Oe=new _(function(Ne,rt){var Qe=p.open(f.name,q);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 q=P[f.name],Y=q.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){q.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:d(),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",ur="ur16",Gr="ui32",wo="fl32",pr="fl64",fr=O+W.length,rm=Object.prototype.toString;function nm(f){var b=f.length*.75,g=f.length,T,I=0,S,M,G,q;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]),q=c.indexOf(f[T+3]),J[I++]=S<<2|M>>4,J[I++]=(M&15)<<4|G>>2,J[I++]=(G&3)<<6|q&63;return Y}function Ul(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 Ov(f,b){var g="";if(f&&(g=rm.call(f)),f&&(g==="[object ArrayBuffer]"||f.buffer&&rm.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+=ur:g==="[object Int32Array]"?I+=tt:g==="[object Uint32Array]"?I+=Gr:g==="[object Float32Array]"?I+=wo:g==="[object Float64Array]"?I+=pr:b(new Error("Failed to get type for BinaryArray"))),b(I+Ul(T))}else if(g==="[object Blob]"){var S=new FileReader;S.onload=function(){var M=u+f.type+"~"+Ul(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 Nv(f){if(f.substring(0,O)!==x)return JSON.parse(f);var b=f.substring(fr),g=f.substring(O,fr),T;if(g===ue&&v.test(b)){var I=b.match(v);T=I[1],b=b.substring(I[0].length)}var S=nm(b);switch(g){case W:return S;case ue:return m([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 ur:return new Uint16Array(S);case tt:return new Int32Array(S);case Gr:return new Uint32Array(S);case wo:return new Float32Array(S);case pr:return new Float64Array(S);default:throw new Error("Unkown type: "+g)}}var kl={serialize:Ov,deserialize:Nv,stringToBuffer:nm,bufferToString:Ul};function om(f,b,g,T){f.executeSql("CREATE TABLE IF NOT EXISTS "+b.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],g,T)}function Pv(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){om(G,g,function(){b._dbInfo=g,S()},function(q,Y){M(Y)})},M)});return g.serializer=kl,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(q,Y){Y.rows.length?S(q,G):om(q,b,function(){q.executeSql(g,T,I,S)},S)},S):S(M,G)},S)}function Lv(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(q,Y){var J=Y.rows.length?Y.rows.item(0).value:null;J&&(J=M.serializer.deserialize(J)),I(J)},function(q,Y){S(Y)})})}).catch(S)});return y(T,b),T}function Mv(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(q,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(q,Y){S(Y)})})}).catch(S)});return y(T,b),T}function im(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 q=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(q)},function(Oe,Ne){G(Ne)})},function(ve){if(ve.code===ve.QUOTA_ERR){if(T>0){M(im.apply(I,[f,q,g,T-1]));return}G(ve)}})})}).catch(G)});return y(S,g),S}function Bv(f,b,g){return im.apply(this,[f,b,g,1])}function Uv(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(q,Y){S(Y)})})}).catch(S)});return y(T,b),T}function kv(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,q){I(q)})})}).catch(I)});return y(g,f),g}function Fv(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,q){var Y=q.rows.item(0).c;T(Y)},function(G,q){I(q)})})}).catch(I)});return y(g,f),g}function Hv(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(q,Y){var J=Y.rows.length?Y.rows.item(0).key:null;I(J)},function(q,Y){S(Y)})})}).catch(S)});return y(T,b),T}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 key FROM "+S.storeName,[],function(G,q){for(var Y=[],J=0;J<q.rows.length;J++)Y.push(q.rows.item(J).key);T(Y)},function(G,q){I(q)})})}).catch(I)});return y(g,f),g}function Vv(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 Wv(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(Vv(M))}).then(function(S){return new _(function(M,G){S.db.transaction(function(q){function Y(Oe){return new _(function(Ne,rt){q.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(q){G(q)})})}):I=_.reject("Invalid arguments"),y(I,b),I}var jv={_driver:"webSQLStorage",_initStorage:Pv,_support:h(),iterate:Mv,getItem:Lv,setItem:Bv,removeItem:Uv,clear:kv,length:Fv,key:Hv,keys:$v,dropInstance:Wv};function Gv(){try{return typeof localStorage<"u"&&"setItem"in localStorage&&!!localStorage.setItem}catch{return!1}}function sm(f,b){var g=f.name+"/";return f.storeName!==b.storeName&&(g+=f.storeName+"/"),g}function zv(){var f="_localforage_support_test";try{return localStorage.setItem(f,!0),localStorage.removeItem(f),!1}catch{return!0}}function qv(){return!zv()||localStorage.length>0}function Yv(f){var b=this,g={};if(f)for(var T in f)g[T]=f[T];return g.keyPrefix=sm(f,b._defaultConfig),qv()?(b._dbInfo=g,g.serializer=kl,_.resolve()):_.reject()}function Kv(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 Xv(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 Jv(f,b){var g=this,T=g.ready().then(function(){for(var I=g._dbInfo,S=I.keyPrefix,M=S.length,G=localStorage.length,q=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),q++),te!==void 0)return te}}});return y(T,b),T}function Qv(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 Zv(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 eE(f){var b=this,g=b.keys().then(function(T){return T.length});return y(g,f),g}function tE(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 rE(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 q=T._dbInfo;q.serializer.serialize(b,function(Y,J){if(J)G(J);else try{localStorage.setItem(q.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 nE(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(sm(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 oE={_driver:"localStorageWrapper",_initStorage:Yv,_support:Gv(),iterate:Jv,getItem:Xv,setItem:rE,removeItem:tE,clear:Kv,length:eE,key:Qv,keys:Zv,dropInstance:nE},iE=function(b,g){return b===g||typeof b=="number"&&typeof g=="number"&&isNaN(b)&&isNaN(g)},sE=function(b,g){for(var T=b.length,I=0;I<T;){if(iE(b[I],g))return!0;I++}return!1},am=Array.isArray||function(f){return Object.prototype.toString.call(f)==="[object Array]"},Ci={},cm={},bo={INDEXEDDB:$t,WEBSQL:jv,LOCALSTORAGE:oE},aE=[bo.INDEXEDDB._driver,bo.WEBSQL._driver,bo.LOCALSTORAGE._driver],Vs=["dropInstance"],Fl=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(Vs),cE={description:"",driver:aE.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function lE(f,b){f[b]=function(){var g=arguments;return f.ready().then(function(){return f[b].apply(f,g)})}}function Hl(){for(var f=1;f<arguments.length;f++){var b=arguments[f];if(b)for(var g in b)b.hasOwnProperty(g)&&(am(b[g])?arguments[0][g]=b[g].slice():arguments[0][g]=b[g])}return arguments[0]}var uE=(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=Hl({},cE),this._config=Hl({},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 q=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=Fl.concat("_initStorage"),te=0,ve=J.length;te<ve;te++){var Oe=J[te],Ne=!sE(Vs,Oe);if((Ne||g[Oe])&&typeof g[Oe]!="function"){G(Y);return}}var rt=function(){for(var Ri=function(mE){return function(){var dE=new Error("Method "+mE+" is not implemented by the current driver"),lm=_.reject(dE);return y(lm,arguments[arguments.length-1]),lm}},$l=0,fE=Vs.length;$l<fE;$l++){var Vl=Vs[$l];g[Vl]||(g[Vl]=Ri(Vl))}};rt();var Qe=function(Ri){Ci[q]&&console.info("Redefining LocalForage driver: "+q),Ci[q]=g,cm[q]=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(kl);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;am(g)||(g=[g]);var M=this._getSupportedDrivers(g);function G(){S._config.driver=S.driver()}function q(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(q).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!!cm[g]},f.prototype._extend=function(g){Hl(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=Fl.length;g<T;g++)lE(this,Fl[g])},f.prototype.createInstance=function(g){return new f(g)},f})(),pE=new uE;o.exports=pE},{3:3}]},{},[4])(4)})});var Vp=Wl((nc,rg)=>{"use strict";(function(t,e){typeof nc=="object"&&typeof rg<"u"?e(nc):typeof define=="function"&&define.amd?define(["exports"],e):e((t=typeof globalThis<"u"?globalThis:t||self).Sqrl={})})(nc,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 pm,d as fm,e as mm,f as dm,g as hm,h as mr,i as Gs,j as w,k as gm,l as ym,m as vm,n as Em,o as qr}from"./chunk-ZKFNVFYE.js";import{a as E,b as Z,c as Ai,d as um,e as Wl,f as zr,g as So}from"./chunk-V7UGKYBN.js";var jl=Wl(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.URLBuilder=void 0;var hE=(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})();zs.URLBuilder=hE});var Cm=Wl((xm,Ql)=>{"use strict";(function(t){if(typeof xm=="object"&&typeof Ql<"u")Ql.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(d,m){if(!i[d]){if(!o[d]){var _=typeof Ai=="function"&&Ai;if(!m&&_)return _(d,!0);if(l)return l(d,!0);var y=new Error("Cannot find module '"+d+"'");throw y.code="MODULE_NOT_FOUND",y}var C=i[d]={exports:{}};o[d][0].call(C.exports,function(N){var A=o[d][1][N];return a(A||N)},C,C.exports,n,o,i,s)}return i[d].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,d=new a(N),m=s.document.createTextNode("");d.observe(m,{characterData:!0}),l=function(){m.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,z,P=C.length;P;){for(z=C,C=[],B=-1;++B<P;)z[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"],d=["FULFILLED"],m=["PENDING"];o.exports=_;function _(X){if(typeof X!="function")throw new TypeError("resolver must be a function");this.state=m,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===d||typeof ce!="function"&&this.state===p)return this;var se=new this.constructor(a);if(this.state!==m){var de=this.state===d?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=d,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=z;function z(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 d(){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 m(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",z=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=m([""]);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 z=="boolean"?_.resolve(z):se(f).then(function(b){return z=b,z})}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]||ze(),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(q){if(q.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 q}}),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 m([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 ze(){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=ze(),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 q=I.forages[G];q!==b&&S.push(q._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 q=G.objectStore(g._dbInfo.storeName),Y=q.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 q=G.objectStore(g._dbInfo.storeName),Y=q.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(q){return q?b:R(b)}):b}).then(function(q){he(T._dbInfo,X,function(Y,J){if(Y)return M(Y);try{var te=J.objectStore(T._dbInfo.storeName);q===null&&(q=void 0);var ve=te.put(q,f);J.oncomplete=function(){q===void 0&&(q=null),S(q)},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 q=G.objectStore(g._dbInfo.storeName),Y=q.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),q=G.clear();M.oncomplete=function(){T()},M.onabort=M.onerror=function(){var Y=q.error?q.error:q.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),q=G.count();q.onsuccess=function(){T(q.result)},q.onerror=function(){I(q.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 q=G.objectStore(g._dbInfo.storeName),Y=!1,J=q.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),q=G.openKeyCursor(),Y=[];q.onsuccess=function(){var J=q.result;if(!J){T(Y);return}Y.push(J.key),J.continue()},q.onerror=function(){I(q.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 q=P[f.name],Y=q.forages;q.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 q=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=q}var Oe=new _(function(Ne,rt){var Qe=p.open(f.name,q);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 q=P[f.name],Y=q.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){q.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:d(),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",ur="ur16",Gr="ui32",wo="fl32",pr="fl64",fr=O+W.length,rm=Object.prototype.toString;function nm(f){var b=f.length*.75,g=f.length,T,I=0,S,M,G,q;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]),q=c.indexOf(f[T+3]),J[I++]=S<<2|M>>4,J[I++]=(M&15)<<4|G>>2,J[I++]=(G&3)<<6|q&63;return Y}function Ul(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 Ov(f,b){var g="";if(f&&(g=rm.call(f)),f&&(g==="[object ArrayBuffer]"||f.buffer&&rm.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+=ur:g==="[object Int32Array]"?I+=tt:g==="[object Uint32Array]"?I+=Gr:g==="[object Float32Array]"?I+=wo:g==="[object Float64Array]"?I+=pr:b(new Error("Failed to get type for BinaryArray"))),b(I+Ul(T))}else if(g==="[object Blob]"){var S=new FileReader;S.onload=function(){var M=u+f.type+"~"+Ul(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 Nv(f){if(f.substring(0,O)!==x)return JSON.parse(f);var b=f.substring(fr),g=f.substring(O,fr),T;if(g===ue&&v.test(b)){var I=b.match(v);T=I[1],b=b.substring(I[0].length)}var S=nm(b);switch(g){case W:return S;case ue:return m([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 ur:return new Uint16Array(S);case tt:return new Int32Array(S);case Gr:return new Uint32Array(S);case wo:return new Float32Array(S);case pr:return new Float64Array(S);default:throw new Error("Unkown type: "+g)}}var kl={serialize:Ov,deserialize:Nv,stringToBuffer:nm,bufferToString:Ul};function om(f,b,g,T){f.executeSql("CREATE TABLE IF NOT EXISTS "+b.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],g,T)}function Pv(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){om(G,g,function(){b._dbInfo=g,S()},function(q,Y){M(Y)})},M)});return g.serializer=kl,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(q,Y){Y.rows.length?S(q,G):om(q,b,function(){q.executeSql(g,T,I,S)},S)},S):S(M,G)},S)}function Lv(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(q,Y){var J=Y.rows.length?Y.rows.item(0).value:null;J&&(J=M.serializer.deserialize(J)),I(J)},function(q,Y){S(Y)})})}).catch(S)});return y(T,b),T}function Mv(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(q,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(q,Y){S(Y)})})}).catch(S)});return y(T,b),T}function im(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 q=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(q)},function(Oe,Ne){G(Ne)})},function(ve){if(ve.code===ve.QUOTA_ERR){if(T>0){M(im.apply(I,[f,q,g,T-1]));return}G(ve)}})})}).catch(G)});return y(S,g),S}function Bv(f,b,g){return im.apply(this,[f,b,g,1])}function Uv(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(q,Y){S(Y)})})}).catch(S)});return y(T,b),T}function kv(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,q){I(q)})})}).catch(I)});return y(g,f),g}function Fv(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,q){var Y=q.rows.item(0).c;T(Y)},function(G,q){I(q)})})}).catch(I)});return y(g,f),g}function Hv(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(q,Y){var J=Y.rows.length?Y.rows.item(0).key:null;I(J)},function(q,Y){S(Y)})})}).catch(S)});return y(T,b),T}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 key FROM "+S.storeName,[],function(G,q){for(var Y=[],J=0;J<q.rows.length;J++)Y.push(q.rows.item(J).key);T(Y)},function(G,q){I(q)})})}).catch(I)});return y(g,f),g}function Vv(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 Wv(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(Vv(M))}).then(function(S){return new _(function(M,G){S.db.transaction(function(q){function Y(Oe){return new _(function(Ne,rt){q.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(q){G(q)})})}):I=_.reject("Invalid arguments"),y(I,b),I}var jv={_driver:"webSQLStorage",_initStorage:Pv,_support:h(),iterate:Mv,getItem:Lv,setItem:Bv,removeItem:Uv,clear:kv,length:Fv,key:Hv,keys:$v,dropInstance:Wv};function Gv(){try{return typeof localStorage<"u"&&"setItem"in localStorage&&!!localStorage.setItem}catch{return!1}}function sm(f,b){var g=f.name+"/";return f.storeName!==b.storeName&&(g+=f.storeName+"/"),g}function zv(){var f="_localforage_support_test";try{return localStorage.setItem(f,!0),localStorage.removeItem(f),!1}catch{return!0}}function qv(){return!zv()||localStorage.length>0}function Yv(f){var b=this,g={};if(f)for(var T in f)g[T]=f[T];return g.keyPrefix=sm(f,b._defaultConfig),qv()?(b._dbInfo=g,g.serializer=kl,_.resolve()):_.reject()}function Kv(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 Xv(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 Jv(f,b){var g=this,T=g.ready().then(function(){for(var I=g._dbInfo,S=I.keyPrefix,M=S.length,G=localStorage.length,q=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),q++),te!==void 0)return te}}});return y(T,b),T}function Qv(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 Zv(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 eE(f){var b=this,g=b.keys().then(function(T){return T.length});return y(g,f),g}function tE(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 rE(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 q=T._dbInfo;q.serializer.serialize(b,function(Y,J){if(J)G(J);else try{localStorage.setItem(q.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 nE(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(sm(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 oE={_driver:"localStorageWrapper",_initStorage:Yv,_support:Gv(),iterate:Jv,getItem:Xv,setItem:rE,removeItem:tE,clear:Kv,length:eE,key:Qv,keys:Zv,dropInstance:nE},iE=function(b,g){return b===g||typeof b=="number"&&typeof g=="number"&&isNaN(b)&&isNaN(g)},sE=function(b,g){for(var T=b.length,I=0;I<T;){if(iE(b[I],g))return!0;I++}return!1},am=Array.isArray||function(f){return Object.prototype.toString.call(f)==="[object Array]"},Ci={},cm={},bo={INDEXEDDB:$t,WEBSQL:jv,LOCALSTORAGE:oE},aE=[bo.INDEXEDDB._driver,bo.WEBSQL._driver,bo.LOCALSTORAGE._driver],Vs=["dropInstance"],Fl=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(Vs),cE={description:"",driver:aE.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function lE(f,b){f[b]=function(){var g=arguments;return f.ready().then(function(){return f[b].apply(f,g)})}}function Hl(){for(var f=1;f<arguments.length;f++){var b=arguments[f];if(b)for(var g in b)b.hasOwnProperty(g)&&(am(b[g])?arguments[0][g]=b[g].slice():arguments[0][g]=b[g])}return arguments[0]}var uE=(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=Hl({},cE),this._config=Hl({},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 q=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=Fl.concat("_initStorage"),te=0,ve=J.length;te<ve;te++){var Oe=J[te],Ne=!sE(Vs,Oe);if((Ne||g[Oe])&&typeof g[Oe]!="function"){G(Y);return}}var rt=function(){for(var Ri=function(mE){return function(){var dE=new Error("Method "+mE+" is not implemented by the current driver"),lm=_.reject(dE);return y(lm,arguments[arguments.length-1]),lm}},$l=0,fE=Vs.length;$l<fE;$l++){var Vl=Vs[$l];g[Vl]||(g[Vl]=Ri(Vl))}};rt();var Qe=function(Ri){Ci[q]&&console.info("Redefining LocalForage driver: "+q),Ci[q]=g,cm[q]=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(kl);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;am(g)||(g=[g]);var M=this._getSupportedDrivers(g);function G(){S._config.driver=S.driver()}function q(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(q).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!!cm[g]},f.prototype._extend=function(g){Hl(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=Fl.length;g<T;g++)lE(this,Fl[g])},f.prototype.createInstance=function(g){return new f(g)},f})(),pE=new uE;o.exports=pE},{3:3}]},{},[4])(4)})});var Vp=Wl((nc,rg)=>{"use strict";(function(t,e){typeof nc=="object"&&typeof rg<"u"?e(nc):typeof define=="function"&&define.amd?define(["exports"],e):e((t=typeof globalThis<"u"?globalThis:t||self).Sqrl={})})(nc,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,d=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g,m=/[.*+\-?^${}()|[\]\\]/g;function _(D){return m.test(D)?D.replace(m,"\\$&"):D}function y(D,R){R.rmWhitespace&&(D=D.replace(/[\r\n]+/g,`
@@ -52,7 +52,7 @@ mutation cartDiscountCodesUpdate($cartId: ID!, $discountCodes: [String!]) {
52
52
  }
53
53
  `;function tv(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 rv(t,e){if(!_t.hasKeys(t)){w.warn("No update fields provided");return}let r=tv(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),d=r.getPrivateAttributesForLineItem();if(_t.hasKeys(window.CooeeSDK.customItemProperties)){let m={name:l},_={templateSuffix:s.templateSuffix},y=ev.render(JSON.stringify(window.CooeeSDK.customItemProperties),{variant:m,product:_});d=E(E({},JSON.parse(y)),d)}return{id:a?+a:+s.mID,quantity:p,properties:d}}),o=tv(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 hr&&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=ng(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 ja("Buy Now");return(await il(Y0,{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 nv(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 cl=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 ll=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"),cl.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 lr=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 ll(e,this.triggerContext).execute()}),re(this.inappHTMLEl,"cursor","pointer"))}getBackgroundStyles(){return this.stylesConverter.getBackgroundStyles(this.inappElement.bg)}};var Wr=class extends lr{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 lr{constructor(e,r,n){super(e,r,n),this.inappHTMLEl=document.createElement("div"),this.insertElement()}render(){this.processCommonBlocks()}};var vo=class extends lr{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 lr{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 K0="cooee-container",ul=class extends lr{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(K0),this}};var pl=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 fl=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 ml=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 dl=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 hl=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=mm.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 ml(e,r,n).render():r instanceof Ko?new dl(e,r,n).render():r instanceof In?new Cs(e,r,n).render():r instanceof Xo?new hl(e,r,n).render():r instanceof on?new vo(e,r,n).render():r instanceof Zn?new Rs(e,r,n).render():r instanceof zo?new pl(e,r,n).render():r instanceof qo?new fl(e,r,n).render():w.error("Unsupported element type- "+r.type)}renderContainer(e){let r=this.ian?.cont;r&&(this.containerHTMLElement=new ul(this.rootContainer,r,e).render().getHTMLElement(),new sl().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(this.getPromise(i)),o.t===1){let s=o.src;if(!s)return;n.push(this.getPromise(s))}}),r.bg?.img?.src&&n.push(this.getPromise(r.bg.img.src)),r.cont.bg?.img?.src&&n.push(this.getPromise(r.cont.bg.img.src)),await Promise.all(n)}getPromise(e){return new Promise(r=>{let n=new Image;n.onload=r,n.src=e,n.style.display="none"})}};var gl=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 yl=class{static trackIntent(e){if(!this.isInstalled()){w.verbose("Facebook pixel not installed");return}if(!qe.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 Gf=new Map,vl=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=ov(t),qe.get().currencyCount<=1)return t.items;if(t.isShoppableVideo())return await X0(t.content.videoConfig,t),t.items;let e=t.items.length,r=t.items.map(i=>iv(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 ov(t,o)},ov=(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},X0=async(t,e)=>{await Promise.all(t.videos.map(async r=>{r.items=await Promise.all(r.items.map(async n=>{let o=await iv(n,e);return o||n}))}))},iv=async(t,e)=>{if(Gf.has(t.mID))return Gf.get(t.mID);let r,n=`/products/${t.slug}.js`;try{r=(await Jr(n)).data}catch(o){return o instanceof hr&&o.response?.status===404||ae(o,"fetch-shopify-product",{extra:{item:t,path:n},engagementTrigger:e}),null}return r?J0(t,r):(w.error("Item not found after AJAX call for:",t),null)},J0=(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))}),Gf.set(t.mID,t),t};var zf="/v1/event/track-page-unload";function Tt(t){w.verbose(`Waiting for auth to send event ${t.name}`),Sr(cr).then(()=>Mt(t))}function zy(t){Sr(cr).then(()=>{Q0(t).catch(e=>ae(e,"track-page-unload"))})}async function Q0(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(zf,r)}catch(n){throw w.error(`Error sending page unload for ${e} to server`,n),n}}function Mt(t){Z0(t).catch(e=>ae(e,"track-event",{extra:{event:t}}))}async function Z0(t){if(w.verbose(`Sending event: ${t.name}`,t),iT(t)){w.warn(`Rejecting event ${t.name}`);return}Wy();let e=await Fn();Object.assign(t,e),Gy(),It.set("lastUsedTime",new Date().getTime());let r=oT(t.name),n=r.toLowerCase().replace(/\s+/g,"-");try{let o=await Yt(`/v1/event/track/${n}`,t);w.info("\u2705 Event tracked:",r),eT(t)&&(pe().currentPageViewEvent={id:t.id,name:t.name}),tT(t,o.data)}catch(o){throw w.error(`Error sending event ${t.name} to server`,o),o}}function eT(t){return hm.includes(t.name)?t.name==="View Cart"?!t.properties.drawer:!0:!1}function tT(t,e){rT(t,e).catch(r=>{ae(r,"process-popup-response",{extra:{event:t,response:e}})}),nT(e)}async function rT(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 vl(r)}catch(o){w.error("Failed to refresh the products",o);return}if(r.items=n,r.contentSource===Ni.KLAVIYO){new gl().render(r);return}new kn().renderEngagement(r).catch(o=>{ae(o,"render-popup",{extra:{event:t},engagementTrigger:r})})}function nT(t){t.intent&&(vi.trackIntent(t.intent),yl.trackIntent(t),w.info(`Intent is ${mo[t.intent]}`))}function oT(t){return t.replace("CE ","").replace("Trigger","Campaign").replace("Screen","Page").replace("App ","")}function iT(t){return t.trigger?.triggerID==="test"||t.trigger?.triggerID==="preview"?(w.warn("Not sending event as this is a test trigger"),!0):!1}var sT="keepalive"in new Request(""),jr=new Headers;uT();async function Fn(){let[t]=await Promise.all([ho.getInstance().checkSessionAndGetContext()]);return E(E({},Wc()),t)}function bi(t){Sr(cr).then(()=>aT(t??{}))}function aT(t){av("/v1/user/update",t).then(()=>{w.verbose("Updated user profile")}).catch(e=>{w.error("Error saving user profile",e)})}function sv(t){return Yt("/v1/event/generate-discount",t)}function El(t){Sr(cr).then(()=>cT({props:t}))}function cT(t){av("/v1/device/update",t).then(()=>{w.verbose("Updated device properties")}).catch(async e=>{w.error("Error saving device property",e)})}function Hy(t){t&&jr.set("cooee-device-id",t)}function $y(t){t&&jr.set("cooee-first-seen",t.toUTCString())}function Yt(t,e){return cv("POST",t,e)}function av(t,e){return cv("PUT",t,e)}function cv(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=mr.apiURL+e),r&&!sT&&e.includes(zf))try{return lT(e,jr,r)}catch(o){throw ae(o,"http-request",{extra:{body:JSON.stringify(r)}}),o}let n={method:t,headers:jr,keepalive:!1};return r&&(n.body=JSON.stringify(r)),Jr(e,n)}function lT(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 uT(){jr.set("Content-Type","application/json; charset=utf-8"),jr.set("cooee-sdk",Ws),jr.set("cooee-sdk-code",pm.toString()),jr.set("cooee-sdk-version",js),jr.set("cooee-shop-name",oc()??""),mr.debug&&jr.set("cooee-sdk-debug",String(1))}var _l=class{modifications=[];constructor(){sn(`.lc-hide {display: none !important;height: 0 !important;}
54
54
  .lc-display-block {display: block !important;}
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}lv({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 lv(t){let e=await Fn(),r=E(E({},t),e);await Yt("/v1/event/experiment",r)}function wl(){pT().catch(t=>ae(t,"fetch-experiments"))}async function pT(){pe().activeExperiments&&(await Sr(cr),await fT())}async function fT(){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 ${qr(r.timeTakenMs)}`);let n=r.data.experiments.map(o=>new St(o));new _l().execute(n)}).catch(r=>{w.error("Error sending experiment getter",r)})}var uv=zr(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},d="",m=[],_=[];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 z=i.triggerData.bundleFrom;i.triggerData.isBundleOnCartDrawer()&&z&&(B.push({itemMID:z.mID,mID:z.selectedOrFirstVariant.value.mID,isPrimary:!0}),_.unshift(z.toEmbed())),p.selectedVariants=B,i.triggerData.isBundleOnPDP()&&p.selectedVariants.forEach(P=>{P.mID===r.vID&&(P.isPrimary=!0)})}else p=void 0;m=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)m=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)d=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&&(d=A.href):A&&(d=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&&(d="collections/"+A.handle)}if(this.sendTriggerClicked(_,{from:"button"},e.video),w.verbose({redirectPath:d,redirectBehaviour:a,hasDiscount:l}),!l&&d){location.href=d;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()){uv.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(m?.length&&(N=await s.addToCart(m,i.triggerData)),C&&y){Un.navigate(y,a,d);return}if(d){location.href=d;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 Ha("No discount code found","warning",{triggerContext:this.triggerContext}),new Error("No discount code found");return r.code}if(e){if(n=await mT(e,this.triggerContext),!n)throw w.error("No discount code found",e),new Error("Discount code not found or generated");return n}}};async function mT(t,e){try{return(await sv(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 dT=0,Mj=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:--dT,__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 bl(t,e){if(!t)return;let r={loop:!0,slidesPerView:e.maxInRow,spaceBetween:e.gap+"px",pagination:{type:e.pagination.type,el:t.querySelector(".swiper-pagination"),clickable:!0,renderBullet:(o,i)=>`
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}lv({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 lv(t){let e=await Fn(),r=E(E({},t),e);await Yt("/v1/event/experiment",r)}function wl(){pT().catch(t=>ae(t,"fetch-experiments"))}async function pT(){pe().activeExperiments&&(await Sr(cr),await fT())}async function fT(){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 ${qr(r.timeTakenMs)}`);let n=r.data.experiments.map(o=>new St(o));new _l().execute(n)}).catch(r=>{w.error("Error sending experiment getter",r)})}var uv=zr(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},d="",m=[],_=[];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 z=i.triggerData.bundleFrom;i.triggerData.isBundleOnCartDrawer()&&z&&(B.push({itemMID:z.mID,mID:z.selectedOrFirstVariant.value.mID,isPrimary:!0}),_.unshift(z.toEmbed())),p.selectedVariants=B,i.triggerData.isBundleOnPDP()&&p.selectedVariants.forEach(P=>{P.mID===r.vID&&(P.isPrimary=!0)})}else p=void 0;m=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)m=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)d=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&&(d=A.href):A&&(d=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&&(d="collections/"+A.handle)}if(this.sendTriggerClicked(_,{from:"button"},e.video),w.verbose({redirectPath:d,redirectBehaviour:a,hasDiscount:l}),!l&&d){location.href=d;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()){uv.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(m?.length&&(N=await s.addToCart(m,i.triggerData)),C&&y){Un.navigate(y,a,d);return}if(d){location.href=d;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 Ha("No discount code found","warning",{triggerContext:this.triggerContext}),new Error("No discount code found");return r.code}if(e){if(n=await mT(e,this.triggerContext),!n)throw w.error("No discount code found",e),new Error("Discount code not found or generated");return n}}};async function mT(t,e){try{return(await sv(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 dT=0,Mj=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:--dT,__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 bl(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}"
57
57
  style="background-color: ${e.pagination.color?.rgba};"></span>
58
58
  `,renderProgressbar:o=>`
@@ -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 Sl(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 hT=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(hT,'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 pv=()=>{let t=window.ShopifyAnalytics?.meta??{},e=t.selectedVariantId;if(e)return e;if(t.product?.variants?.length>0)return t.product.variants[0].id},Yf=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=Yf(n.variantImage??n.firstImageURL),i=Yf(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&&Oc().then(()=>{this.swiperInstance=bl(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:Sl(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(){Oc().then(()=>{this.swiperInstance=bl(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 Sl(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),lf(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,lf(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 ${Sh(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 fv(e)).data}catch(r){if(r instanceof hr&&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(qt(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"}),uf(e)),this.injectCampaignCSS(r,e),Fh(Ip(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&&uf(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 vl(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 gT=t=>t,mv=t=>t.filter(e=>e.removedNodes&&e.removedNodes.length>0);function dv(t,e={childList:!0,subtree:!0},r=500,n=gT){return el(o=>{let i=new MutationObserver(s=>o(s));return i.observe(t,e),i},(o,i)=>i.disconnect()).pipe(un(o=>n(o)),Uf(o=>o.length>0),qt(r))}var Tl=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(d=>d.mID===e.product_id.toString());if(!r)return;let n=r.vars.find(d=>d.mID===e.id.toString());if(!n)return;let o=new Lr(n),i=e.selling_plan_allocation?.selling_plan;if(i)for(let d of o.sellingPlans??[])d.mID===i.id.toString()&&(d.isSelected=!0,o.changeSellingPlan(d));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 Il=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!==Yl.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],z=A.reached,P=e.items.find(Q=>(Q.vID===B.vID||Q.mID===B.mID)&&Q.properties._letscooee_campaign===this.engagementTrigger.shortID);z&&(s=A,a=P),P&&n.push(P),!z&&P&&r.removeIneligibleItem?(w.verbose(`Removing free gift ${P.vID} from cart`),i.push(P)):z&&!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={},d={};i.length&&i.forEach(A=>d[A.key??A.vID]=0),o.length&&o.forEach(A=>d[A.vID]=1);let m=r.coupons,_=[];if(m?.length){_=m.map(z=>z.couponCode);let A=me.getCurrent().discount_codes?.map(z=>z.code)??[];_.every(z=>A.some(P=>P===z))||(p.discount=_.join(","))}if(_t.hasKeys(d)&&(p.updates=d),!_t.hasKeys(p))return;let y=await rv(p,this.engagementTrigger),C=y?.items,N=[];for(let A of o){let B=C?.find(z=>_?.length?z.id+""===A.vID&&z.discounts?.some(P=>_.includes(P.title)):z.id+""===A.vID);B&&N.push(B)}if(!N.length){Xe.get().refreshUI(y,!1);return}try{await Promise.all(N.map(A=>nv(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 xl=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 Cl=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 Rl=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 Kf=!1,Xf=!1,Al=null,Dl=null,hv=!1;function gv(){hv||(hv=!0,bn(()=>{dv(document.body,{childList:!0,subtree:!0},500,mv).subscribe(()=>{yt.currentEngagements.forEach(t=>t.rerenderIfDeleted()),mt.currentEngagements.forEach(t=>t.rerenderIfDeleted())})}))}function Jf(t){if(gv(),Kf){w.verbose("Cart widget processing in progress, queuing latest triggers"),Al=t;return}Kf=!0;try{yT(t)}finally{if(Kf=!1,Al){let e=Al;Al=null,w.verbose("Processing queued cart triggers"),Jf(e)}}}function Qf(t){if(gv(),Xf){w.verbose("Page widget processing in progress, queuing latest triggers"),Dl=t;return}Xf=!0;try{vT(t)}finally{if(Xf=!1,Dl){let e=Dl;Dl=null,w.verbose("Processing queued page triggers"),Qf(e)}}}function yT(t){vv(mt.currentEngagements,t);for(let e of t){w.info(`${e} received as cart embed`);let r=yv(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 Il(e);else if(e.isSubscriptionUpsell()){Tl.renderCartUpsell(e);continue}else e.isSavingsBar()?n=new Fs(e):n=new mt(e);mt.currentEngagements.add(n),n.renderSilently()}}function vT(t){vv(yt.currentEngagements,t);for(let e of t){w.info(`${e} received as page embed`);let r=yv(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 xl(e):e.isBYOB()?n=new Rl(e):e.isStickyATC()?n=new Cl(e):e.isSavingsBar()?n=new Fs(e):n=new yt(e),yt.currentEngagements.add(n),n.renderSilently()}}function yv(t,e){for(let r of t)if(r.matches(e))return r}function vv(t,e){let r=new Set(e.map(n=>n.shortID));for(let n of t)r.has(n.engagementTrigger.shortID)||n.destroy()}var _v=new zt,Ev=0;_v.pipe(qt(50)).subscribe(async t=>{let e=await Fn();ET(e).catch(r=>{ae(r,"load-page-widgets",{extra:{firstLoad:t}})}),_T(e).catch(r=>{ae(r,"load-cart-widgets",{extra:{firstLoad:t}})})});function Ti(t=!1){Sr(cr).then(()=>{_v.next(t)})}function wv(){mt.currentEngagements.forEach(t=>t.rerenderAfterCartOpened())}async function fv(t){let e=await Fn();return Object.assign(t,e),Yt("/v1/engagement/get-variant",t)}async function ET(t){Ev++,Ev===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 ${qr(r.timeTakenMs)}`);let n=r.data.widgets.map(o=>new St(o));Qf(n)}catch(r){w.error("Error sending widget getter",r)}}async function _T(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 ${qr(r.timeTakenMs)}`);let n=r.data.widgets.map(o=>new St(o));Jf(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 Ol=class{static processConfiguration(){let e=qe.get();!e.gaMeasurementID||!e.gaEnabled||this.sendClientID()}static async sendClientID(){let e=await this.getClientID();e&&El({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=qe.get().gaMeasurementID;if(!(!r||!window.gtag))return new Promise(n=>{window.gtag("get",r,"client_id",o=>{n(o)})})}};var Nl=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)),Ol.processConfiguration(),r.website&&(Ug(r.website.commonJS),sn(r.website.commonCSS)),window.CooeeSDK.cartDrawerToggle$.pipe(qt(10)).subscribe(async({open:n})=>{w.info("Cart drawer is now",n?"open":"closed"),n&&(wv(),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 Pl=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=()=>{wl()},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&&(dm.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&&wT(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&&Nl.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=pv();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 wT(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 bT=1e3,ST=10,Zf=0,em=new Date;function tm(t){Ii.remove("sleid"),em=t??new Date}function bv(){if(window.scrollY){let t=Iv();Sv(t)&&Tv(t)}bn(()=>{TT()})}function TT(){fo(window,"scroll").pipe(qt(bT),un(()=>{let t=Iv();if(t>100){w.warn("Received scroll percent is more than 100",t);return}if(Sv(t))return t})).subscribe(t=>{Tv(t)})}function Sv(t){return Math.abs(Zf-t)>=ST||Zf!==t&&t===100}function Tv(t){if(t==null)return;let e={percent:t,timeMS:new Date().getTime()-em.getTime()};Zf=t;let r=Ii.getString("sleid",""),n=new xe("CE Scroll",e,null,r);Tt(n),Ii.setString("sleid",n.id.toHexString()),em=new Date(n.occurred)}function Iv(){let t=window.document.body.scrollHeight,e=window.innerHeight;return Math.ceil((window.scrollY+e)/t*100)}function xv(){IT()}function IT(){let t=window.fetch;window.fetch=async function(e,r){try{await xT(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 xT(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 CT(n),RT()))}async function CT(t){let e=t.variables.input.attributes??[],r=await ja("Buy Now");return t.variables.input.attributes=[...e,...r],JSON.stringify(t)}function RT(){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 vp(this.selectorString),this.elements.forEach(e=>{e.addEventListener("click",this.clickListenerCallback)})}removeClickListener(e){this.elements?.forEach(r=>{r.removeEventListener("click",e)})}};var Ll=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 Ml=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 AT=[".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 Cv(){bn(()=>{w.verbose("Execution order:","document ready"),DT()})}function DT(){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(AT);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 Av(){window.addEventListener("kp-modal:opened",()=>{pe().isGoKwikPopupOpen=!0}),window.addEventListener("user-loggedin",t=>{let{token:e}=t.detail;e&&bi({goKwikToken:e})}),window.gokwikSdk?Rv():window.addEventListener("gokwikLoaded",Rv)}function Rv(){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 Bl=class{static watch(){let e=vm();(e==="1"||e==="on")&&El({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 Pl().meddle(),Tm(),Ti(!0),wl(),jy(),Jy(),xv(),Cv(),bv(),Ml.getInstance().listenSilently(),Ll.getInstance().listenSilently(),Av(),OT(),Bl.watch())}static async initForAll(){this.injectWidgetAssets()}static initGlobalReference(e){window.CooeeSDK||Or(window,"CooeeSDK",{}),this.globalRef=window.CooeeSDK,Or(this.globalRef,"config",new qe),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$",Xy()),Or(this.globalRef,"cartDrawerToggle$",Xe.cartDrawerToggle$.asObservable()),w.verbose("Global reference initialised"),new Nc(()=>{this.globalRef.uaParser=new wr})}static injectWidgetAssets(){Mg(mr.widgetURL,"cooee-widget-sdk"),cf()}static autoAuthenticate(){let e=oc();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((gp(r)||r.length!==24)&&gp(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,fm.some(s=>e.includes(s))){tm();return}let o={};n&&(o.ps=n);let i=new xe("CE Screen View",o);i.occurred=r.jsLoadTime,Tt(i),tm(i.occurred)}static previewPopup(e,r){new kn(r).render(e)}static previewWidget(e){new yt(new St(e)).renderSilently()}};function OT(){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 Dv=new Date;gm();Em();w.verbose("Execution order:","top");window.cooeeShopifyScriptLoaded||(window.cooeeShopifyScriptLoaded=!0,(async()=>(w.verbose("Execution order:","IIFE start"),await Ce.initForMerchantWebsiteOnly(Dv),await Ce.initForAll(),NT(),w.verbose("Execution order:","IIFE end")))());w.verbose("Execution order:","bottom");function NT(){ym()&&import("./debug-logs-VHOA7RF2.js").then(({printAllDebugLogs:t})=>t(Dv))}
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&&uf(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 vl(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 gT=t=>t,mv=t=>t.filter(e=>e.removedNodes&&e.removedNodes.length>0);function dv(t,e={childList:!0,subtree:!0},r=500,n=gT){return el(o=>{let i=new MutationObserver(s=>o(s));return i.observe(t,e),i},(o,i)=>i.disconnect()).pipe(un(o=>n(o)),Uf(o=>o.length>0),qt(r))}var Tl=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(d=>d.mID===e.product_id.toString());if(!r)return;let n=r.vars.find(d=>d.mID===e.id.toString());if(!n)return;let o=new Lr(n),i=e.selling_plan_allocation?.selling_plan;if(i)for(let d of o.sellingPlans??[])d.mID===i.id.toString()&&(d.isSelected=!0,o.changeSellingPlan(d));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 Il=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!==Yl.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],z=A.reached,P=e.items.find(Q=>(Q.vID===B.vID||Q.mID===B.mID)&&Q.properties._letscooee_campaign===this.engagementTrigger.shortID);z&&(s=A,a=P),P&&n.push(P),!z&&P&&r.removeIneligibleItem?(w.verbose(`Removing free gift ${P.vID} from cart`),i.push(P)):z&&!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={},d={};i.length&&i.forEach(A=>d[A.key??A.vID]=0),o.length&&o.forEach(A=>d[A.vID]=1);let m=r.coupons,_=[];if(m?.length){_=m.map(z=>z.couponCode);let A=me.getCurrent().discount_codes?.map(z=>z.code)??[];_.every(z=>A.some(P=>P===z))||(p.discount=_.join(","))}if(_t.hasKeys(d)&&(p.updates=d),!_t.hasKeys(p))return;let y=await rv(p,this.engagementTrigger),C=y?.items,N=[];for(let A of o){let B=C?.find(z=>_?.length?z.id+""===A.vID&&z.discounts?.some(P=>_.includes(P.title)):z.id+""===A.vID);B&&N.push(B)}if(!N.length){Xe.get().refreshUI(y,!1);return}try{await Promise.all(N.map(A=>nv(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 xl=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 Cl=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 Rl=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 Kf=!1,Xf=!1,Al=null,Dl=null,hv=!1;function gv(){hv||(hv=!0,bn(()=>{dv(document.body,{childList:!0,subtree:!0},500,mv).subscribe(()=>{yt.currentEngagements.forEach(t=>t.rerenderIfDeleted()),mt.currentEngagements.forEach(t=>t.rerenderIfDeleted())})}))}function Jf(t){if(gv(),Kf){w.verbose("Cart widget processing in progress, queuing latest triggers"),Al=t;return}Kf=!0;try{yT(t)}finally{if(Kf=!1,Al){let e=Al;Al=null,w.verbose("Processing queued cart triggers"),Jf(e)}}}function Qf(t){if(gv(),Xf){w.verbose("Page widget processing in progress, queuing latest triggers"),Dl=t;return}Xf=!0;try{vT(t)}finally{if(Xf=!1,Dl){let e=Dl;Dl=null,w.verbose("Processing queued page triggers"),Qf(e)}}}function yT(t){vv(mt.currentEngagements,t);for(let e of t){w.info(`${e} received as cart embed`);let r=yv(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 Il(e);else if(e.isSubscriptionUpsell()){Tl.renderCartUpsell(e);continue}else e.isSavingsBar()?n=new Fs(e):n=new mt(e);mt.currentEngagements.add(n),n.renderSilently()}}function vT(t){vv(yt.currentEngagements,t);for(let e of t){w.info(`${e} received as page embed`);let r=yv(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 xl(e):e.isBYOB()?n=new Rl(e):e.isStickyATC()?n=new Cl(e):e.isSavingsBar()?n=new Fs(e):n=new yt(e),yt.currentEngagements.add(n),n.renderSilently()}}function yv(t,e){for(let r of t)if(r.matches(e))return r}function vv(t,e){let r=new Set(e.map(n=>n.shortID));for(let n of t)r.has(n.engagementTrigger.shortID)||n.destroy()}var _v=new zt,Ev=0;_v.pipe(qt(50)).subscribe(async t=>{let e=await Fn();ET(e).catch(r=>{ae(r,"load-page-widgets",{extra:{firstLoad:t}})}),_T(e).catch(r=>{ae(r,"load-cart-widgets",{extra:{firstLoad:t}})})});function Ti(t=!1){Sr(cr).then(()=>{_v.next(t)})}function wv(){mt.currentEngagements.forEach(t=>t.rerenderAfterCartOpened())}async function fv(t){let e=await Fn();return Object.assign(t,e),Yt("/v1/engagement/get-variant",t)}async function ET(t){Ev++,Ev===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 ${qr(r.timeTakenMs)}`);let n=r.data.widgets.map(o=>new St(o));Qf(n)}catch(r){w.error("Error sending widget getter",r)}}async function _T(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 ${qr(r.timeTakenMs)}`);let n=r.data.widgets.map(o=>new St(o));Jf(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 Ol=class{static processConfiguration(){let e=qe.get();!e.gaMeasurementID||!e.gaEnabled||this.sendClientID()}static async sendClientID(){let e=await this.getClientID();e&&El({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=qe.get().gaMeasurementID;if(!(!r||!window.gtag))return new Promise(n=>{window.gtag("get",r,"client_id",o=>{n(o)})})}};var Nl=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)),Ol.processConfiguration(),r.website&&(Ug(r.website.commonJS),sn(r.website.commonCSS)),window.CooeeSDK.cartDrawerToggle$.pipe(qt(10)).subscribe(async({open:n})=>{w.info("Cart drawer is now",n?"open":"closed"),n&&(wv(),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 Pl=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=()=>{wl()},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&&(dm.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&&wT(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&&Nl.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=pv();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 wT(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 bT=1e3,ST=10,Zf=0,em=new Date;function tm(t){Ii.remove("sleid"),em=t??new Date}function bv(){if(window.scrollY){let t=Iv();Sv(t)&&Tv(t)}bn(()=>{TT()})}function TT(){fo(window,"scroll").pipe(qt(bT),un(()=>{let t=Iv();if(t>100){w.warn("Received scroll percent is more than 100",t);return}if(Sv(t))return t})).subscribe(t=>{Tv(t)})}function Sv(t){return Math.abs(Zf-t)>=ST||Zf!==t&&t===100}function Tv(t){if(t==null)return;let e={percent:t,timeMS:new Date().getTime()-em.getTime()};Zf=t;let r=Ii.getString("sleid",""),n=new xe("CE Scroll",e,null,r);Tt(n),Ii.setString("sleid",n.id.toHexString()),em=new Date(n.occurred)}function Iv(){let t=window.document.body.scrollHeight,e=window.innerHeight;return Math.ceil((window.scrollY+e)/t*100)}function xv(){IT()}function IT(){let t=window.fetch;window.fetch=async function(e,r){try{await xT(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 xT(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 CT(n),RT()))}async function CT(t){let e=t.variables.input.attributes??[],r=await ja("Buy Now");return t.variables.input.attributes=[...e,...r],JSON.stringify(t)}function RT(){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 vp(this.selectorString),this.elements.forEach(e=>{e.addEventListener("click",this.clickListenerCallback)})}removeClickListener(e){this.elements?.forEach(r=>{r.removeEventListener("click",e)})}};var Ll=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 Ml=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 AT=[".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 Cv(){bn(()=>{w.verbose("Execution order:","document ready"),DT()})}function DT(){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(AT);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 Av(){window.addEventListener("kp-modal:opened",()=>{pe().isGoKwikPopupOpen=!0}),window.addEventListener("user-loggedin",t=>{let{token:e}=t.detail;e&&bi({goKwikToken:e})}),window.gokwikSdk?Rv():window.addEventListener("gokwikLoaded",Rv)}function Rv(){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 Bl=class{static watch(){let e=vm();(e==="1"||e==="on")&&El({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 Pl().meddle(),Tm(),Ti(!0),wl(),jy(),Jy(),xv(),Cv(),bv(),Ml.getInstance().listenSilently(),Ll.getInstance().listenSilently(),Av(),OT(),Bl.watch())}static async initForAll(){this.injectWidgetAssets()}static initGlobalReference(e){window.CooeeSDK||Or(window,"CooeeSDK",{}),this.globalRef=window.CooeeSDK,Or(this.globalRef,"config",new qe),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$",Xy()),Or(this.globalRef,"cartDrawerToggle$",Xe.cartDrawerToggle$.asObservable()),w.verbose("Global reference initialised"),new Nc(()=>{this.globalRef.uaParser=new wr})}static injectWidgetAssets(){Mg(mr.widgetURL,"cooee-widget-sdk"),cf()}static autoAuthenticate(){let e=oc();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((gp(r)||r.length!==24)&&gp(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,fm.some(s=>e.includes(s))){tm();return}let o={};n&&(o.ps=n);let i=new xe("CE Screen View",o);i.occurred=r.jsLoadTime,Tt(i),tm(i.occurred)}static previewPopup(e,r){new kn(r).render(e)}static previewWidget(e){new yt(new St(e)).renderSilently()}};function OT(){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 Dv=new Date;gm();Em();w.verbose("Execution order:","top");window.cooeeShopifyScriptLoaded||(window.cooeeShopifyScriptLoaded=!0,(async()=>(w.verbose("Execution order:","IIFE start"),await Ce.initForMerchantWebsiteOnly(Dv),await Ce.initForAll(),NT(),w.verbose("Execution order:","IIFE end")))());w.verbose("Execution order:","bottom");function NT(){ym()&&import("./debug-logs-DNOG26DC.js").then(({printAllDebugLogs:t})=>t(Dv))}
@@ -1 +1 @@
1
- import{a as C,b}from"./chunk-7THB3JNS.js";import{e as g,f as h,i as u,l as f}from"./chunk-LUGFMRZ3.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-ATKMVIID.js";import{e as g,f as h,i as u,l as f}from"./chunk-2USDOMNC.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};