wineater-bot 2.0.0 → 2.0.2

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.
@@ -186,7 +186,7 @@ const _n = `
186
186
  .wine-item {
187
187
  display: flex;
188
188
  align-items: center;
189
- border: 1px solid #ddd;
189
+ border: 1px solid #7E27ED;
190
190
  border-radius: 8px;
191
191
  padding: 10px;
192
192
  margin-top: 10px;
@@ -317,7 +317,7 @@ function Dn() {
317
317
  return e || (e = On(), Fe(t, e, 365)), e;
318
318
  }
319
319
  function Se(t, e) {
320
- fetch("https://api.wineater.com/proxy/track", {
320
+ fetch("https://wineater-backend.vercel.app/proxy/track", {
321
321
  method: "POST",
322
322
  headers: {
323
323
  "Content-Type": "application/json"
@@ -5795,7 +5795,7 @@ const Ao = ["climats", "telckel", "biobio", "weinpoint", "vinigrandi"], Po = "Ou
5795
5795
  class qt {
5796
5796
  constructor(e) {
5797
5797
  var s;
5798
- this.baseURL = "https://api.wineater.com/", this.store = Ao.find((n) => window.location.href.includes(n)), this.token = ((s = window == null ? void 0 : window.wineaterData) == null ? void 0 : s.CLIENT_TOKEN) || Po;
5798
+ this.baseURL = "https://wineater-backend.vercel.app/", this.store = Ao.find((n) => window.location.href.includes(n)), this.token = ((s = window == null ? void 0 : window.wineaterData) == null ? void 0 : s.CLIENT_TOKEN) || Po;
5799
5799
  }
5800
5800
  async getStoreConfig(e) {
5801
5801
  console.log(e);
@@ -186,7 +186,7 @@
186
186
  .wine-item {
187
187
  display: flex;
188
188
  align-items: center;
189
- border: 1px solid #ddd;
189
+ border: 1px solid #7E27ED;
190
190
  border-radius: 8px;
191
191
  padding: 10px;
192
192
  margin-top: 10px;
@@ -279,7 +279,7 @@
279
279
  .typing-indicator.visible {
280
280
  visibility: visible;
281
281
  height: 50px;
282
- }`,Kt=document.createElement("style");Kt.textContent=ve,document.head.appendChild(Kt);function Rn(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){const e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})}function Ce(t,e,s){console.log(t,s);let n="";if(s){const i=new Date;i.setTime(i.getTime()+s*24*60*60*1e3),n="; expires="+i.toUTCString()}document.cookie=t+"="+(e||"")+n+"; path=/; secure; samesite=strict"}function j(t){const e=t+"=",s=document.cookie.split(";");for(let n=0;n<s.length;n++){let i=s[n];for(;i.charAt(0)===" ";)i=i.substring(1,i.length);if(i.indexOf(e)===0)return i.substring(e.length,i.length)}return null}function Dn(t){document.cookie=t+"=; Max-Age=-99999999;"}function Mn(){const t="uniqueUserID";let e=j(t);return e||(e=Rn(),Ce(t,e,365)),e}function le(t,e){fetch("https://api.wineater.com/proxy/track",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({event:t,properties:e})}).then(i=>{i.ok||console.error("Mixpanel tracking failed",i)}).catch(i=>{console.error("Mixpanel tracking error",i)})}function Jt(){le("Chatbot Opened",{distinct_id:j("uniqueUserID"),client:j("chatbotToken")})}function An(t){le("Chatbot Opened Auto",{distinct_id:j("uniqueUserID"),url:t,client:j("chatbotToken")})}function Yt(){le("Chatbot Closed",{distinct_id:j("uniqueUserID"),client:j("chatbotToken")})}function Pn(t){le("Message Sent",{distinct_id:j("uniqueUserID"),message_content:t,client:j("chatbotToken")})}function Ln(t){le("Products Got",{distinct_id:j("uniqueUserID"),products:t,client:j("chatbotToken")})}function Fn(t){le("Product Clicked",{distinct_id:j("uniqueUserID"),product_id:t,client:j("chatbotToken")})}var Qt={},Bn=function(t,e,s,n,i){var r=new Worker(Qt[e]||(Qt[e]=URL.createObjectURL(new Blob([t+';addEventListener("error",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'],{type:"text/javascript"}))));return r.onmessage=function(o){var l=o.data,a=l.$e$;if(a){var h=new Error(a[0]);h.code=a[1],h.stack=a[2],i(h,null)}else i(null,l)},r.postMessage(s,n),r},W=Uint8Array,z=Uint16Array,Ne=Int32Array,_e=new W([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Oe=new W([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),tt=new W([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Zt=function(t,e){for(var s=new z(31),n=0;n<31;++n)s[n]=e+=1<<t[n-1];for(var i=new Ne(s[30]),n=1;n<30;++n)for(var r=s[n];r<s[n+1];++r)i[r]=r-s[n]<<5|n;return{b:s,r:i}},es=Zt(_e,2),Un=es.b,Re=es.r;Un[28]=258,Re[258]=28;for(var Hn=Zt(Oe,0),st=Hn.r,De=new z(32768),P=0;P<32768;++P){var se=(P&43690)>>1|(P&21845)<<1;se=(se&52428)>>2|(se&13107)<<2,se=(se&61680)>>4|(se&3855)<<4,De[P]=((se&65280)>>8|(se&255)<<8)>>1}for(var he=function(t,e,s){for(var n=t.length,i=0,r=new z(e);i<n;++i)t[i]&&++r[t[i]-1];var o=new z(e);for(i=1;i<e;++i)o[i]=o[i-1]+r[i-1]<<1;var l;if(s){l=new z(1<<e);var a=15-e;for(i=0;i<n;++i)if(t[i])for(var h=i<<4|t[i],c=e-t[i],u=o[t[i]-1]++<<c,d=u|(1<<c)-1;u<=d;++u)l[De[u]>>a]=h}else for(l=new z(n),i=0;i<n;++i)t[i]&&(l[i]=De[o[t[i]-1]++]>>15-t[i]);return l},ne=new W(288),P=0;P<144;++P)ne[P]=8;for(var P=144;P<256;++P)ne[P]=9;for(var P=256;P<280;++P)ne[P]=7;for(var P=280;P<288;++P)ne[P]=8;for(var ke=new W(32),P=0;P<32;++P)ke[P]=5;var ts=he(ne,9,0),ss=he(ke,5,0),nt=function(t){return(t+7)/8|0},ns=function(t,e,s){return(e==null||e<0)&&(e=0),(s==null||s>t.length)&&(s=t.length),new W(t.subarray(e,s))},jn=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],is=function(t,e,s){var n=new Error(e||jn[t]);if(n.code=t,Error.captureStackTrace&&Error.captureStackTrace(n,is),!s)throw n;return n},G=function(t,e,s){s<<=e&7;var n=e/8|0;t[n]|=s,t[n+1]|=s>>8},ue=function(t,e,s){s<<=e&7;var n=e/8|0;t[n]|=s,t[n+1]|=s>>8,t[n+2]|=s>>16},Me=function(t,e){for(var s=[],n=0;n<t.length;++n)t[n]&&s.push({s:n,f:t[n]});var i=s.length,r=s.slice();if(!i)return{t:at,l:0};if(i==1){var o=new W(s[0].s+1);return o[s[0].s]=1,{t:o,l:1}}s.sort(function(w,k){return w.f-k.f}),s.push({s:-1,f:25001});var l=s[0],a=s[1],h=0,c=1,u=2;for(s[0]={s:-1,f:l.f+a.f,l,r:a};c!=i-1;)l=s[s[h].f<s[u].f?h++:u++],a=s[h!=c&&s[h].f<s[u].f?h++:u++],s[c++]={s:-1,f:l.f+a.f,l,r:a};for(var d=r[0].s,n=1;n<i;++n)r[n].s>d&&(d=r[n].s);var f=new z(d+1),g=Ae(s[c-1],f,0);if(g>e){var n=0,p=0,y=g-e,E=1<<y;for(r.sort(function(k,x){return f[x.s]-f[k.s]||k.f-x.f});n<i;++n){var N=r[n].s;if(f[N]>e)p+=E-(1<<g-f[N]),f[N]=e;else break}for(p>>=y;p>0;){var T=r[n].s;f[T]<e?p-=1<<e-f[T]++-1:++n}for(;n>=0&&p;--n){var m=r[n].s;f[m]==e&&(--f[m],++p)}g=e}return{t:new W(f),l:g}},Ae=function(t,e,s){return t.s==-1?Math.max(Ae(t.l,e,s+1),Ae(t.r,e,s+1)):e[t.s]=s},it=function(t){for(var e=t.length;e&&!t[--e];);for(var s=new z(++e),n=0,i=t[0],r=1,o=function(a){s[n++]=a},l=1;l<=e;++l)if(t[l]==i&&l!=e)++r;else{if(!i&&r>2){for(;r>138;r-=138)o(32754);r>2&&(o(r>10?r-11<<5|28690:r-3<<5|12305),r=0)}else if(r>3){for(o(i),--r;r>6;r-=6)o(8304);r>2&&(o(r-3<<5|8208),r=0)}for(;r--;)o(i);r=1,i=t[l]}return{c:s.subarray(0,n),n:e}},de=function(t,e){for(var s=0,n=0;n<e.length;++n)s+=t[n]*e[n];return s},rt=function(t,e,s){var n=s.length,i=nt(e+2);t[i]=n&255,t[i+1]=n>>8,t[i+2]=t[i]^255,t[i+3]=t[i+1]^255;for(var r=0;r<n;++r)t[i+r+4]=s[r];return(i+4+n)*8},ot=function(t,e,s,n,i,r,o,l,a,h,c){G(e,c++,s),++i[256];for(var u=Me(i,15),d=u.t,f=u.l,g=Me(r,15),p=g.t,y=g.l,E=it(d),N=E.c,T=E.n,m=it(p),w=m.c,k=m.n,x=new z(19),S=0;S<N.length;++S)++x[N[S]&31];for(var S=0;S<w.length;++S)++x[w[S]&31];for(var b=Me(x,7),_=b.t,M=b.l,O=19;O>4&&!_[tt[O-1]];--O);var D=h+5<<3,v=de(i,ne)+de(r,ke)+o,I=de(i,d)+de(r,p)+o+14+3*O+de(x,_)+2*x[16]+3*x[17]+7*x[18];if(a>=0&&D<=v&&D<=I)return rt(e,c,t.subarray(a,a+h));var A,L,R,U;if(G(e,c,1+(I<v)),c+=2,I<v){A=he(d,f,0),L=d,R=he(p,y,0),U=p;var $t=he(_,M,0);G(e,c,T-257),G(e,c+5,k-1),G(e,c+10,O-4),c+=14;for(var S=0;S<O;++S)G(e,c+3*S,_[tt[S]]);c+=3*O;for(var Q=[N,w],Ee=0;Ee<2;++Ee)for(var Se=Q[Ee],S=0;S<Se.length;++S){var Z=Se[S]&31;G(e,c,$t[Z]),c+=_[Z],Z>15&&(G(e,c,Se[S]>>5&127),c+=Se[S]>>12)}}else A=ts,L=ne,R=ss,U=ke;for(var S=0;S<l;++S){var H=n[S];if(H>255){var Z=H>>18&31;ue(e,c,A[Z+257]),c+=L[Z+257],Z>7&&(G(e,c,H>>23&31),c+=_e[Z]);var we=H&31;ue(e,c,R[we]),c+=U[we],we>3&&(ue(e,c,H>>5&8191),c+=Oe[we])}else ue(e,c,A[H]),c+=L[H]}return ue(e,c,A[256]),c+L[256]},rs=new Ne([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),at=new W(0),os=function(t,e,s,n,i,r){var o=r.z||t.length,l=new W(n+o+5*(1+Math.ceil(o/7e3))+i),a=l.subarray(n,l.length-i),h=r.l,c=(r.r||0)&7;if(e){c&&(a[0]=r.r>>3);for(var u=rs[e-1],d=u>>13,f=u&8191,g=(1<<s)-1,p=r.p||new z(32768),y=r.h||new z(g+1),E=Math.ceil(s/3),N=2*E,T=function(Gt){return(t[Gt]^t[Gt+1]<<E^t[Gt+2]<<N)&g},m=new Ne(25e3),w=new z(288),k=new z(32),x=0,S=0,b=r.i||0,_=0,M=r.w||0,O=0;b+2<o;++b){var D=T(b),v=b&32767,I=y[D];if(p[v]=I,y[D]=v,M<=b){var A=o-b;if((x>7e3||_>24576)&&(A>423||!h)){c=ot(t,a,0,m,w,k,S,_,O,b-O,c),_=x=S=0,O=b;for(var L=0;L<286;++L)w[L]=0;for(var L=0;L<30;++L)k[L]=0}var R=2,U=0,$t=f,Q=v-I&32767;if(A>2&&D==T(b-Q))for(var Ee=Math.min(d,A)-1,Se=Math.min(32767,b),Z=Math.min(258,A);Q<=Se&&--$t&&v!=I;){if(t[b+R]==t[b+R-Q]){for(var H=0;H<Z&&t[b+H]==t[b+H-Q];++H);if(H>R){if(R=H,U=Q,H>Ee)break;for(var we=Math.min(Q,H-2),Cn=0,L=0;L<we;++L){var Vt=b-Q+L&32767,Qo=p[Vt],Nn=Vt-Qo&32767;Nn>Cn&&(Cn=Nn,I=Vt)}}}v=I,I=p[v],Q+=v-I&32767}if(U){m[_++]=268435456|Re[R]<<18|st[U];var _n=Re[R]&31,On=st[U]&31;S+=_e[_n]+Oe[On],++w[257+_n],++k[On],M=b+R,++x}else m[_++]=t[b],++w[t[b]]}}for(b=Math.max(b,M);b<o;++b)m[_++]=t[b],++w[t[b]];c=ot(t,a,h,m,w,k,S,_,O,b-O,c),h||(r.r=c&7|a[c/8|0]<<3,c-=7,r.h=y,r.p=p,r.i=b,r.w=M)}else{for(var b=r.w||0;b<o+h;b+=65535){var Xt=b+65535;Xt>=o&&(a[c/8|0]=h,Xt=o),c=rt(a,c+1,t.subarray(b,Xt))}r.i=o}return ns(l,0,n+nt(c)+i)},as=function(){for(var t=new Int32Array(256),e=0;e<256;++e){for(var s=e,n=9;--n;)s=(s&1&&-306674912)^s>>>1;t[e]=s}return t}(),cs=function(){var t=-1;return{p:function(e){for(var s=t,n=0;n<e.length;++n)s=as[s&255^e[n]]^s>>>8;t=s},d:function(){return~t}}},ct=function(t,e,s,n,i){if(!i&&(i={l:1},e.dictionary)){var r=e.dictionary.subarray(-32768),o=new W(r.length+t.length);o.set(r),o.set(t,r.length),t=o,i.w=r.length}return os(t,e.level==null?6:e.level,e.mem==null?i.l?Math.ceil(Math.max(8,Math.min(13,Math.log(t.length)))*1.5):20:12+e.mem,s,n,i)},zn=function(t,e){var s={};for(var n in t)s[n]=t[n];for(var n in e)s[n]=e[n];return s},ls=function(t,e,s){for(var n=t(),i=t.toString(),r=i.slice(i.indexOf("[")+1,i.lastIndexOf("]")).replace(/\s+/g,"").split(","),o=0;o<n.length;++o){var l=n[o],a=r[o];if(typeof l=="function"){e+=";"+a+"=";var h=l.toString();if(l.prototype)if(h.indexOf("[native code]")!=-1){var c=h.indexOf(" ",8)+1;e+=h.slice(c,h.indexOf("(",c))}else{e+=h;for(var u in l.prototype)e+=";"+a+".prototype."+u+"="+l.prototype[u].toString()}else e+=h}else s[a]=l}return e},Pe=[],Wn=function(t){var e=[];for(var s in t)t[s].buffer&&e.push((t[s]=new t[s].constructor(t[s])).buffer);return e},qn=function(t,e,s,n){if(!Pe[s]){for(var i="",r={},o=t.length-1,l=0;l<o;++l)i=ls(t[l],i,r);Pe[s]={c:ls(t[o],i,r),e:r}}var a=zn({},Pe[s].e);return Bn(Pe[s].c+";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage="+e.toString()+"}",s,a,Wn(a),n)},$n=function(){return[W,z,Ne,_e,Oe,tt,Re,st,ts,ne,ss,ke,De,rs,at,he,G,ue,Me,Ae,it,de,rt,ot,nt,ns,os,ct,Gn,hs]},Vn=function(){return[us,ds,Le,cs,as]},hs=function(t){return postMessage(t,[t.buffer])},Xn=function(t,e,s,n,i,r){var o=qn(s,n,i,function(l,a){o.terminate(),r(l,a)});return o.postMessage([t,e],e.consume?[t.buffer]:[]),function(){o.terminate()}},Le=function(t,e,s){for(;s;++e)t[e]=s,s>>>=8},us=function(t,e){var s=e.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=e.level<2?4:e.level==9?2:0,t[9]=3,e.mtime!=0&&Le(t,4,Math.floor(new Date(e.mtime||Date.now())/1e3)),s){t[3]=8;for(var n=0;n<=s.length;++n)t[n+10]=s.charCodeAt(n)}},ds=function(t){return 10+(t.filename?t.filename.length+1:0)};function Gn(t,e){return ct(t,e||{},0,0)}function Kn(t,e,s){return s||(s=e,e={}),typeof s!="function"&&is(7),Xn(t,e,[$n,Vn,function(){return[fs]}],function(n){return hs(fs(n.data[0],n.data[1]))},2,s)}function fs(t,e){e||(e={});var s=cs(),n=t.length;s.p(t);var i=ct(t,e,ds(e),8),r=i.length;return us(i,e),Le(i,r-8,s.d()),Le(i,r-4,n),i}var Jn=typeof TextDecoder<"u"&&new TextDecoder,Yn=0;try{Jn.decode(at,{stream:!0}),Yn=1}catch{}class ps{constructor(){this.idx=1,this.backDict={}}getKey(e){let s=!1;return this.backDict[e]||(s=!0,this.backDict[e]=this.idx++),[this.backDict[e],s]}}class Qn{constructor(e,s){this.app=e,this.isDictDisabled=s,this.dict=new ps}sendSetAttribute(e,s,n){if(this.isDictDisabled){const i=[12,e,s,n];return this.app.send(i)}else{const i=[51,e,this.applyDict(s),this.applyDict(n)];return this.app.send(i)}}applyDict(e){const[s,n]=this.dict.getKey(e);return n&&this.app.send([50,s,e]),s}clear(){this.dict=new ps}}class Zn{constructor(e,s){this.app=e,this.startParams=s,this.conditions=[],this.hasStarted=!1,this.createConditionFromFilter=n=>{if(n.value.length){const i=ei(n);if(i.type)return i}},this.durationInt=null}setConditions(e){this.conditions=e}async fetchConditions(e,s){try{const n=await fetch(`${this.app.options.ingestPoint}/v1/web/conditions/${e}`,{method:"GET",headers:{Authorization:`Bearer ${s}`}}),{conditions:i}=await n.json(),r=[];i.forEach(o=>{o.filters.forEach(a=>{let h;a.type==="fetch"?(h={type:"network_request",subConditions:[],name:o.name},a.filters.forEach(c=>{const u=this.createConditionFromFilter(c);u&&h.subConditions.push(u)})):h=this.createConditionFromFilter(a),h&&(h.type==="session_duration"&&this.processDuration(h.value[0],o.name),r.push({...h,name:o.name}))})}),this.conditions=r}catch{this.app.debug.error("Critical: cannot fetch start conditions")}}trigger(e){if(!this.hasStarted)try{this.hasStarted=!0,this.app.start(this.startParams,void 0,e)}catch(s){this.app.debug.error(s)}}processMessage(e){if(!this.hasStarted)switch(e[0]){case 78:this.jsExceptionEvent(e);break;case 27:this.customEvent(e);break;case 68:this.clickEvent(e);break;case 122:this.pageLocationEvent(e);break;case 83:this.networkRequest(e);break}}processFlags(e){const s=this.conditions.filter(n=>n.type==="feature_flag");s.length&&s.forEach(n=>{const i=fe[n.operator];i&&e.find(r=>i(r.key,n.value))&&this.trigger(n.name)})}processDuration(e,s){this.durationInt=setInterval(()=>{performance.now()>e&&this.trigger(s)},1e3),this.app.attachStopCallback(()=>{this.durationInt&&clearInterval(this.durationInt)})}networkRequest(e){const s=this.conditions.filter(n=>n.type==="network_request");s.length&&s.forEach(n=>{const i=n.subConditions.filter(r=>r.operator!=="isAny");i.length?i.every(o=>{let l;switch(o.key){case"url":l=e[3];break;case"status":l=e[6];break;case"method":l=e[2];break;case"duration":l=e[8];break}const a=fe[o.operator];if(a&&a(l,o.value))return!0})&&this.trigger(n.name):i.length===0&&n.subConditions.length&&this.trigger(n.name)})}customEvent(e){const s=this.conditions.filter(n=>n.type==="custom_event");s.length&&s.forEach(n=>{const i=fe[n.operator];i&&(i(e[1],n.value)||i(e[2],n.value))&&this.trigger(n.name)})}clickEvent(e){const s=this.conditions.filter(n=>n.type==="click");s.length&&s.forEach(n=>{const i=fe[n.operator];i&&(i(e[3],n.value)||i(e[4],n.value))&&this.trigger(n.name)})}pageLocationEvent(e){const s=this.conditions.filter(n=>n.type==="visited_url");s&&s.forEach(n=>{const i=fe[n.operator];i&&i(e[1],n.value)&&this.trigger(n.name)})}jsExceptionEvent(e){const s=[e[1],e[2],e[3]],n=this.conditions.filter(i=>i.type==="exception");n&&n.forEach(i=>{const r=fe[i.operator];r&&s.some(o=>r(o,i.value))&&this.trigger(i.name)})}}const fe={is:(t,e)=>e.some(s=>t.includes(s)),isAny:()=>!0,isNot:(t,e)=>!e.some(s=>t.includes(s)),contains:(t,e)=>e.some(s=>t.includes(s)),notContains:(t,e)=>!e.some(s=>t.includes(s)),startsWith:(t,e)=>e.some(s=>t.startsWith(s)),endsWith:(t,e)=>e.some(s=>t.endsWith(s)),greaterThan:(t,e)=>t>e,greaterOrEqual:(t,e)=>t>=e,lessOrEqual:(t,e)=>t<=e,lessThan:(t,e)=>t<e},ei=t=>{const e={on:"is",notOn:"isNot",">":"greaterThan","<":"lessThan","=":"is","<=":"lessOrEqual",">=":"greaterOrEqual"},s=i=>{if(Object.keys(e).includes(i))return e[i]};let n={type:"",operator:"",value:t.value,key:""};switch(t.type){case"click":n={type:"click",operator:s(t.operator),value:t.value,key:""};break;case"location":n={type:"visited_url",operator:t.operator,value:t.value,key:""};break;case"custom":n={type:"custom_event",operator:t.operator,value:t.value,key:""};break;case"metadata":n={type:t.source==="featureFlag"?"feature_flag":t.type,operator:t.operator,value:t.value,key:""};break;case"error":n={type:"exception",operator:t.operator,value:t.value,key:""};break;case"duration":n={type:"session_duration",value:t.value[0],key:""};break;case"fetchUrl":n={type:"network_request",key:"url",operator:t.operator,value:t.value};break;case"fetchStatusCode":n={type:"network_request",key:"status",operator:s(t.operator),value:t.value};break;case"fetchMethod":n={type:"network_request",key:"method",operator:s(t.operator),value:t.value};break;case"fetchDuration":n={type:"network_request",key:"duration",operator:s(t.operator),value:t.value};break}return n};class ti{constructor(e){this.app=e,this.flags=[],this.storageKey="__openreplay_flags";const s=this.app.sessionStorage.getItem(this.storageKey);if(s){const n=s.split(";").filter(Boolean);this.flags=n.map(i=>JSON.parse(i))}}getFeatureFlag(e){return this.flags.find(s=>s.key===e)}isFlagEnabled(e){return this.flags.findIndex(s=>s.key===e)!==-1}onFlagsLoad(e){this.onFlagsCb=e}async reloadFlags(e){const s=this.app.sessionStorage.getItem(this.storageKey),n={};s&&s.split(";").filter(Boolean).forEach(c=>{const u=JSON.parse(c);n[u.key]={key:u.key,value:u.value}});const i=this.app.session.getInfo(),r=this.app.session.userInfo,o={projectID:i.projectID,userID:i.userID,metadata:i.metadata,referrer:document.referrer,os:r.userOS,device:r.userDevice,country:r.userCountry,state:r.userState,city:r.userCity,browser:r.userBrowser,persistFlags:n},l=e??this.app.session.getSessionToken(),a=await fetch(this.app.options.ingestPoint+"/v1/web/feature-flags",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify(o)});if(a.status===200){const h=await a.json();return this.handleFlags(h.flags)}}handleFlags(e){var r;const s=[];e.forEach(o=>{o.is_persist&&s.push(o)});let n="";return this.diffPersist(s).forEach(o=>{n+=`${JSON.stringify(o)};`}),this.app.sessionStorage.setItem(this.storageKey,n),this.flags=e,(r=this.onFlagsCb)==null?void 0:r.call(this,e)}clearPersistFlags(){this.app.sessionStorage.removeItem(this.storageKey)}diffPersist(e){const s=this.app.sessionStorage.getItem(this.storageKey);if(!s)return e;const i=s.split(";").filter(Boolean).map(r=>JSON.parse(r));return e.filter(r=>i.findIndex(o=>o.key===r.key)===-1)}}const gs={htmlmasked:"hidden",masked:"obscured"},K=!(typeof window>"u"),si=K&&navigator.userAgent.match(/firefox|fxios/i),ni=1e5;let lt=K?Date.now()-performance.now():0;function ht(){lt=Date.now()-performance.now()}function pe(){return lt}const X=K&&performance.now?()=>Math.round(performance.now()+lt):()=>Date.now(),ut="repeat"in String.prototype?t=>"*".repeat(t.length):t=>t.replace(/./g,"*");function ms(t){return t.trim().replace(/\s+/g," ")}function bs(t){return t.startsWith("https://")||t.startsWith("http://")}const Fe="https://docs.openreplay.com",ys={};function ie(t,e,s="/"){ys[t]||(console.warn(`OpenReplay: ${t} is deprecated. ${e?`Please, use ${e} instead.`:""} Visit ${Fe}${s} for more information.`),ys[t]=!0)}function dt(t){let e=t.getAttribute("data-openreplay-label");return e!==null||(e=t.getAttribute("data-asayer-label"),e!==null&&ie('"data-asayer-label" attribute','"data-openreplay-label" attribute',"/")),e}function oe(t,e){const s=`data-openreplay-${e}`;return t.hasAttribute(s)?(gs[e]&&ie(`"${s}" attribute`,`"${gs[e]}" attribute`,"/installation/sanitize-data"),!0):!1}function ii(t){try{return!!t.contentDocument}catch{return!1}}function Ss(t){return t.toString(16).padStart(2,"0")}function ri(t){const e=new Uint8Array((t||40)/2),s=window.crypto||window.msCrypto;return s?(s.getRandomValues(e),Array.from(e,Ss).join("")):Array.from({length:t||40},()=>Ss(Math.floor(Math.random()*16))).join("")}function oi(){try{return window.self&&window.top&&window.self!==window.top}catch{return!0}}function ft(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}function ws(t){const e=ft("MutationObserver");return new window[e](t)}function vs(t,e,s,n){const i=ft("addEventListener");try{t[i](e,s,n)}catch(r){const o=r.message;console.debug(`Openreplay: ${o}; if this error is caused by an IframeObserver, ignore it`)}}function ks(t,e,s,n){const i=ft("removeEventListener");try{t[i](e,s,n)}catch(r){const o=r.message;console.debug(`Openreplay: ${o}; if this error is caused by an IframeObserver, ignore it`)}}class ai{constructor(){this.taskQueue=[],this.isRunning=!1}addTask(e){this.taskQueue.push(e),this.runTasks()}runTasks(){if(this.isRunning||this.taskQueue.length===0)return;this.isRunning=!0;const e=()=>{if(this.taskQueue.length===0){this.isRunning=!1;return}const s=this.taskQueue.shift();Promise.resolve(s()).then(()=>{requestAnimationFrame(()=>e())})};e()}}const ci=new ai;function li(t){ci.addTask(t)}function Ts(t,e){const s={...t};for(const n in e)if(e.hasOwnProperty(n)){const i=e[n],r=t[n];typeof i=="object"&&!Array.isArray(i)&&i!==null?s[n]=Ts(r||{},i):s[n]=i}return s}function ae(t){return[0,t]}function hi(t,e){return[5,t,e]}function ui(t,e){return[6,t,e]}function di(){return[7]}function fi(t,e,s,n,i){return[8,t,e,s,n,i]}function pi(t,e,s){return[9,t,e,s]}function gi(t,e,s){return[10,t,e,s]}function mi(t){return[11,t]}function Is(t,e){return[13,t,e]}function bi(t,e){return[14,t,e]}function yi(t,e,s){return[16,t,e,s]}function Si(t,e,s){return[18,t,e,s]}function wi(t,e){return[19,t,e]}function vi(t,e){return[20,t,e]}function ki(t,e){return[22,t,e]}function Ti(t,e,s,n,i,r,o,l,a){return[23,t,e,s,n,i,r,o,l,a]}function Ii(t,e,s){return[24,t,e,s]}function xi(t,e){return[27,t,e]}function Ei(t){return[28,t]}function Ci(t){return[29,t]}function xs(t,e){return[30,t,e]}function Ni(t,e,s,n){return[49,t,e,s,n]}function _i(t,e){return[54,t,e]}function Oi(t){return[55,t]}function Es(t,e,s,n){return[57,t,e,s,n]}function Cs(t){return[58,t]}function pt(t,e,s,n){return[60,t,e,s,n]}function Ri(t,e,s){return[61,t,e,s]}function Di(t,e){return[63,t,e]}function Mi(t,e){return[64,t,e]}function Ai(t,e,s,n,i,r){return[68,t,e,s,n,i,r]}function gt(t,e){return[70,t,e]}function Ns(t,e,s){return[71,t,e,s]}function mt(t,e,s,n){return[73,t,e,s,n]}function _s(t,e){return[75,t,e]}function Os(t,e){return[76,t,e]}function Pi(t,e){return[77,t,e]}function bt(t,e,s,n){return[78,t,e,s,n]}function Be(t,e,s,n,i,r,o,l,a){return[83,t,e,s,n,i,r,o,l,a]}function Li(t,e,s,n,i,r){return[84,t,e,s,n,i,r]}function Fi(t,e,s,n,i,r){return[112,t,e,s,n,i,r]}function Rs(t,e,s){return[113,t,e,s]}function Bi(t){return[114,t]}function Ui(t){return[115,t]}function Ds(t,e,s,n,i,r,o,l,a,h){return[116,t,e,s,n,i,r,o,l,a,h]}function Ue(t){return[117,t]}function ce(t){return[118,t]}function Hi(t,e){return[119,t,e]}function ji(t){return[120,t]}function zi(t,e,s,n){return[122,t,e,s,n]}const yt=K&&"performance"in window&&"memory"in performance?performance:{memory:{}},St=K?(navigator.deviceMemory||0)*1024:0,wt=yt.memory.jsHeapSizeLimit||0;function Wi(t,e){if(!Object.assign({capturePerformance:!0},e).capturePerformance)return;let n,i;const r=()=>{n===void 0||n===-1||(n++,requestAnimationFrame(r))};t.ticker.attach(()=>{i===void 0||i===-1||i++},0,!1);const o=()=>{n===void 0||i===void 0||(t.send(Ni(n,i,yt.memory.totalJSHeapSize||0,yt.memory.usedJSHeapSize||0)),i=n=document.hidden?-1:0)};t.attachStartCallback(()=>{i=n=-1,o(),r()}),t.attachStopCallback(()=>{i=n=void 0}),t.ticker.attach(o,40,!1),document.hidden!==void 0&&t.attachEventListener(document,"visibilitychange",o,!1,!1)}const Ms="__or__watched_tags__";class qi{constructor(e,s,n){this.sessionStorage=e,this.errLog=s,this.onTag=n,this.intervals={},this.tags=[];const i=JSON.parse(e.getItem(Ms)??"[]");this.setTags(i),this.observer=new IntersectionObserver(r=>{r.forEach(o=>{if(o.isIntersecting&&o.target){const l=o.target.__or_watcher_tagname;l&&this.onTagRendered(l),this.observer.unobserve(o.target)}})})}async fetchTags(e,s){return fetch(`${e}/v1/web/tags`,{method:"GET",headers:{Authorization:`Bearer ${s}`}}).then(n=>n.json()).then(({tags:n})=>{if(n&&n.length){this.setTags(n);const i=JSON.stringify(n);this.sessionStorage.setItem(Ms,i||"")}}).catch(n=>this.errLog(n))}setTags(e){this.tags=e,this.intervals={},e.forEach(s=>{this.intervals[s.id]=setInterval(()=>{const n=document.querySelectorAll(s.selector);if(n.length>0){const i=n[0];i.__or_watcher_tagname=s.id,this.observer.observe(i)}},500)})}onTagRendered(e){this.intervals[e]&&clearInterval(this.intervals[e]),this.onTag(e)}clear(){this.tags.forEach(e=>{clearInterval(this.intervals[e.id])}),this.tags=[],this.intervals={},this.observer.disconnect()}}const $i={position:"fixed",top:0,left:0,width:"100vw",height:"100vh",background:"rgba(0, 0, 0, 0.40)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:999999,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'},Vi={display:"flex",flexDirection:"column",gap:"2rem",alignItems:"center",padding:"1.5rem",borderRadius:"2px",border:"1px solid #D9D9D9",background:"#FFF",width:"22rem"},He={display:"flex","flex-direction":"column",gap:"unset","align-items":"center",padding:"unset",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',"border-radius":"2px",border:"1px solid #D9D9D9",background:"rgba(255, 255, 255, 0.75)",width:"22rem"},Xi={fontFamily:"Verdana, sans-serif",fontSize:"1.25rem",fontStyle:"normal",fontWeight:"500",lineHeight:"1.75rem",color:"rgba(0, 0, 0, 0.85)"},Gi={borderTop:"1px solid rgba(0, 0, 0, 0.06)",borderBottom:"1px solid rgba(0, 0, 0, 0.06)",padding:"1.25rem 0rem",color:"rgba(0, 0, 0, 0.85)",fontFamily:"Verdana, sans-serif",fontSize:"13px",fontStyle:"normal",fontWeight:"400",lineHeight:"auto",whiteSpace:"pre-wrap"},Ki={display:"flex",padding:"0.4rem 0.9375rem",justifyContent:"center",alignItems:"center",gap:"0.625rem",borderRadius:"0.25rem",border:"1px solid #394EFF",background:"#394EFF",boxShadow:"0px 2px 0px 0px rgba(0, 0, 0, 0.04)",color:"#FFF",textAlign:"center",fontFamily:"Verdana, sans-serif",fontSize:"1rem",fontStyle:"normal",fontWeight:"500",lineHeight:"1.5rem",cursor:"pointer"},As={fontFamily:"Verdana, sans-serif",fontSize:"13px",fontWeight:"500",lineHeight:"auto",display:"flex",justifyContent:"space-between",width:"100%",cursor:"pointer"},ge={display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"0.625rem",fontSize:"13px",lineHeight:"auto"},Ji={padding:"0.5rem",gap:"0.5rem",fontFamily:"Verdana, sans-serif",fontSize:"16px",fontStyle:"normal",fontWeight:"500",lineHeight:"auto",color:"white",display:"flex",alignItems:"center",width:"100%",borderRadius:"2px",background:"rgba(0, 0, 0, 0.75)",boxSizing:"border-box"},me={boxSizing:"border-box",display:"block",width:"100%",borderBottom:"1px solid #D9D9D9",background:"#FFF",padding:"0.65rem",alignSelf:"stretch",color:"#000",fontFamily:"Verdana, sans-serif",fontStyle:"normal",fontWeight:"400"},Yi={...me,display:"flex",flexDirection:"column",alignItems:"center",gap:"0.625rem"},Ps={fontSize:"1.25rem",fontWeight:"500",cursor:"pointer",color:"#394EFF"},Ls={display:"flex",padding:"0.4rem 0.9375rem",justifyContent:"center",alignItems:"center",gap:"0.625rem",borderRadius:"0.25rem",border:"1px solid #394EFF",background:"#394EFF",boxShadow:"0px 2px 0px 0px rgba(0, 0, 0, 0.04)",color:"#FFF",textAlign:"center",fontFamily:"Verdana, sans-serif",fontSize:"1rem",fontStyle:"normal",fontWeight:"500",lineHeight:"1.5rem",width:"100%",boxSizing:"border-box",cursor:"pointer"},Fs={marginTop:"1rem",marginBottom:"1rem",cursor:"pointer",display:"block",fontWeight:"500",fontSize:"13px!important",lineHeight:"auto"},Qi={display:"flex",justifyContent:"space-between",alignItems:"center",gap:"1rem",padding:"0.5rem",width:"100%",boxSizing:"border-box"},Bs={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",borderRadius:"6.25em",outline:"1px solid #394EFF",fontSize:"13px",height:"24px",width:"24px"},Zi={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",borderRadius:"6.25em",outline:"1px solid #D2DFFF",boxShadow:"0px 2px 0px 0px rgba(0, 0, 0, 0.04)",background:"#D2DFFF",fontSize:"13px",height:"24px",width:"24px"},Us={borderRadius:"0.375rem",border:"1px solid rgba(0, 0, 0, 0.06)",background:"#F5F7FF",boxShadow:"0px 2px 0px 0px rgba(0, 0, 0, 0.04)",display:"flex",flexDirection:"column",padding:"0.625rem 0.9375rem",gap:"0.5rem",alignSelf:"stretch"},Hs={fontWeight:"bold"},er={fontSize:"13px",lineHeight:"auto"},js={marginRight:"0.5rem",cursor:"pointer",color:"#394EFF",textAlign:"center",fontFamily:"Verdana, sans-serif",fontSize:"13px",fontStyle:"normal",fontWeight:"500",lineHeight:"auto"},tr={...js,display:"flex",padding:"0.25rem 0.9375rem",justifyContent:"center",alignItems:"center",gap:"0.5rem",borderRadius:"0.25rem",border:"1px solid #394EFF"},sr={display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",boxSizing:"border-box"},nr={border:"4px solid rgba(255, 255, 255, 0.4)",width:"16px",height:"16px",borderRadius:"50%",borderLeftColor:"#fff",animation:"spin 0.5s linear infinite"},zs={Standard:{width:1280,height:720},High:{width:1920,height:1080}};class ir{constructor(e){this.app=e,this.mediaRecorder=null,this.recordedChunks=[],this.stream=null,this.recStartTs=null}async startRecording(e,s,n,i){this.recStartTs=this.app.timestamp();const r=s;try{this.stream=await navigator.mediaDevices.getUserMedia({video:i?{...r,frameRate:{ideal:e}}:!1,audio:n}),this.mediaRecorder=new MediaRecorder(this.stream,{mimeType:"video/webm;codecs=vp9"}),this.recordedChunks=[],this.mediaRecorder.ondataavailable=o=>{o.data.size>0&&this.recordedChunks.push(o.data)},this.mediaRecorder.start()}catch(o){console.error(o)}}async stopRecording(){return new Promise(e=>{this.mediaRecorder&&(this.mediaRecorder.onstop=()=>{const s=new Blob(this.recordedChunks,{type:"video/webm"});e(s)},this.mediaRecorder.stop())})}async sendToAPI(){const e=await this.stopRecording();return fetch(`${this.app.options.ingestPoint}/v1/web/uxt/upload-url`,{headers:{Authorization:`Bearer ${this.app.session.getSessionToken()}`}}).then(s=>{if(s.ok)return s.json();throw new Error("Failed to get upload url")}).then(({url:s})=>fetch(s,{method:"PUT",headers:{"Content-Type":"video/webm"},body:e})).catch(console.error).finally(()=>{this.discard()})}async saveToFile(e="recorded-video.webm"){const s=await this.stopRecording(),n=URL.createObjectURL(s),i=document.createElement("a");i.style.display="none",i.href=n,i.download=e,document.body.appendChild(i),i.click(),window.URL.revokeObjectURL(n),document.body.removeChild(i)}discard(){var e,s;(e=this.mediaRecorder)==null||e.stop(),(s=this.stream)==null||s.getTracks().forEach(n=>n.stop())}}function rr(t,e){e.onmousedown=function(s){const n=t.getBoundingClientRect(),i=s.clientX-n.left,r=s.clientY-n.top;t.style.position="fixed",t.style.zIndex=99999999999999,o(s.pageX,s.pageY);function o(h,c){let u=h-i,d=c-r;u<=5&&(u=5),d<=5&&(d=5),u>=window.innerWidth-n.width&&(u=window.innerWidth-n.width),d>=window.innerHeight-n.height&&(d=window.innerHeight-n.height),t.style.left=`${u}px`,t.style.top=`${d}px`}function l(h){o(h.pageX,h.pageY)}document.addEventListener("mousemove",l);const a=()=>{document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",a)};document.addEventListener("mouseup",a)},e.ondragstart=function(){return!1}}function or(){const t=document.createElement("div");t.className="grid";for(let e=0;e<16;e++){const s=document.createElement("div");Object.assign(s.style,{width:"2px",height:"2px",borderRadius:"10px",background:"white"}),s.className="cell",t.appendChild(s)}return Object.assign(t.style,{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gridTemplateRows:"repeat(4, 1fr)",gap:"2px",cursor:"grab"}),t}function ar(){const t=document.createElement("div");Object.assign(t.style,{width:"0",height:"0",borderLeft:"7px solid transparent",borderRight:"7px solid transparent",borderBottom:"7px solid white"});const e=document.createElement("div");return e.appendChild(t),Object.assign(e.style,{display:"flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",cursor:"pointer",marginLeft:"auto",transform:"rotate(180deg)"}),e}function cr(){const t=document.createElement("style");t.type="text/css",t.innerText=`@keyframes spin {
282
+ }`,Kt=document.createElement("style");Kt.textContent=ve,document.head.appendChild(Kt);function Rn(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){const e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})}function Ce(t,e,s){console.log(t,s);let n="";if(s){const i=new Date;i.setTime(i.getTime()+s*24*60*60*1e3),n="; expires="+i.toUTCString()}document.cookie=t+"="+(e||"")+n+"; path=/; secure; samesite=strict"}function j(t){const e=t+"=",s=document.cookie.split(";");for(let n=0;n<s.length;n++){let i=s[n];for(;i.charAt(0)===" ";)i=i.substring(1,i.length);if(i.indexOf(e)===0)return i.substring(e.length,i.length)}return null}function Dn(t){document.cookie=t+"=; Max-Age=-99999999;"}function Mn(){const t="uniqueUserID";let e=j(t);return e||(e=Rn(),Ce(t,e,365)),e}function le(t,e){fetch("https://wineater-backend.vercel.app/proxy/track",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({event:t,properties:e})}).then(i=>{i.ok||console.error("Mixpanel tracking failed",i)}).catch(i=>{console.error("Mixpanel tracking error",i)})}function Jt(){le("Chatbot Opened",{distinct_id:j("uniqueUserID"),client:j("chatbotToken")})}function An(t){le("Chatbot Opened Auto",{distinct_id:j("uniqueUserID"),url:t,client:j("chatbotToken")})}function Yt(){le("Chatbot Closed",{distinct_id:j("uniqueUserID"),client:j("chatbotToken")})}function Pn(t){le("Message Sent",{distinct_id:j("uniqueUserID"),message_content:t,client:j("chatbotToken")})}function Ln(t){le("Products Got",{distinct_id:j("uniqueUserID"),products:t,client:j("chatbotToken")})}function Fn(t){le("Product Clicked",{distinct_id:j("uniqueUserID"),product_id:t,client:j("chatbotToken")})}var Qt={},Bn=function(t,e,s,n,i){var r=new Worker(Qt[e]||(Qt[e]=URL.createObjectURL(new Blob([t+';addEventListener("error",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'],{type:"text/javascript"}))));return r.onmessage=function(o){var l=o.data,a=l.$e$;if(a){var h=new Error(a[0]);h.code=a[1],h.stack=a[2],i(h,null)}else i(null,l)},r.postMessage(s,n),r},W=Uint8Array,z=Uint16Array,Ne=Int32Array,_e=new W([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Oe=new W([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),tt=new W([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Zt=function(t,e){for(var s=new z(31),n=0;n<31;++n)s[n]=e+=1<<t[n-1];for(var i=new Ne(s[30]),n=1;n<30;++n)for(var r=s[n];r<s[n+1];++r)i[r]=r-s[n]<<5|n;return{b:s,r:i}},es=Zt(_e,2),Un=es.b,Re=es.r;Un[28]=258,Re[258]=28;for(var Hn=Zt(Oe,0),st=Hn.r,De=new z(32768),P=0;P<32768;++P){var se=(P&43690)>>1|(P&21845)<<1;se=(se&52428)>>2|(se&13107)<<2,se=(se&61680)>>4|(se&3855)<<4,De[P]=((se&65280)>>8|(se&255)<<8)>>1}for(var he=function(t,e,s){for(var n=t.length,i=0,r=new z(e);i<n;++i)t[i]&&++r[t[i]-1];var o=new z(e);for(i=1;i<e;++i)o[i]=o[i-1]+r[i-1]<<1;var l;if(s){l=new z(1<<e);var a=15-e;for(i=0;i<n;++i)if(t[i])for(var h=i<<4|t[i],c=e-t[i],u=o[t[i]-1]++<<c,d=u|(1<<c)-1;u<=d;++u)l[De[u]>>a]=h}else for(l=new z(n),i=0;i<n;++i)t[i]&&(l[i]=De[o[t[i]-1]++]>>15-t[i]);return l},ne=new W(288),P=0;P<144;++P)ne[P]=8;for(var P=144;P<256;++P)ne[P]=9;for(var P=256;P<280;++P)ne[P]=7;for(var P=280;P<288;++P)ne[P]=8;for(var ke=new W(32),P=0;P<32;++P)ke[P]=5;var ts=he(ne,9,0),ss=he(ke,5,0),nt=function(t){return(t+7)/8|0},ns=function(t,e,s){return(e==null||e<0)&&(e=0),(s==null||s>t.length)&&(s=t.length),new W(t.subarray(e,s))},jn=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],is=function(t,e,s){var n=new Error(e||jn[t]);if(n.code=t,Error.captureStackTrace&&Error.captureStackTrace(n,is),!s)throw n;return n},G=function(t,e,s){s<<=e&7;var n=e/8|0;t[n]|=s,t[n+1]|=s>>8},ue=function(t,e,s){s<<=e&7;var n=e/8|0;t[n]|=s,t[n+1]|=s>>8,t[n+2]|=s>>16},Me=function(t,e){for(var s=[],n=0;n<t.length;++n)t[n]&&s.push({s:n,f:t[n]});var i=s.length,r=s.slice();if(!i)return{t:at,l:0};if(i==1){var o=new W(s[0].s+1);return o[s[0].s]=1,{t:o,l:1}}s.sort(function(w,k){return w.f-k.f}),s.push({s:-1,f:25001});var l=s[0],a=s[1],h=0,c=1,u=2;for(s[0]={s:-1,f:l.f+a.f,l,r:a};c!=i-1;)l=s[s[h].f<s[u].f?h++:u++],a=s[h!=c&&s[h].f<s[u].f?h++:u++],s[c++]={s:-1,f:l.f+a.f,l,r:a};for(var d=r[0].s,n=1;n<i;++n)r[n].s>d&&(d=r[n].s);var f=new z(d+1),g=Ae(s[c-1],f,0);if(g>e){var n=0,p=0,y=g-e,E=1<<y;for(r.sort(function(k,x){return f[x.s]-f[k.s]||k.f-x.f});n<i;++n){var N=r[n].s;if(f[N]>e)p+=E-(1<<g-f[N]),f[N]=e;else break}for(p>>=y;p>0;){var T=r[n].s;f[T]<e?p-=1<<e-f[T]++-1:++n}for(;n>=0&&p;--n){var m=r[n].s;f[m]==e&&(--f[m],++p)}g=e}return{t:new W(f),l:g}},Ae=function(t,e,s){return t.s==-1?Math.max(Ae(t.l,e,s+1),Ae(t.r,e,s+1)):e[t.s]=s},it=function(t){for(var e=t.length;e&&!t[--e];);for(var s=new z(++e),n=0,i=t[0],r=1,o=function(a){s[n++]=a},l=1;l<=e;++l)if(t[l]==i&&l!=e)++r;else{if(!i&&r>2){for(;r>138;r-=138)o(32754);r>2&&(o(r>10?r-11<<5|28690:r-3<<5|12305),r=0)}else if(r>3){for(o(i),--r;r>6;r-=6)o(8304);r>2&&(o(r-3<<5|8208),r=0)}for(;r--;)o(i);r=1,i=t[l]}return{c:s.subarray(0,n),n:e}},de=function(t,e){for(var s=0,n=0;n<e.length;++n)s+=t[n]*e[n];return s},rt=function(t,e,s){var n=s.length,i=nt(e+2);t[i]=n&255,t[i+1]=n>>8,t[i+2]=t[i]^255,t[i+3]=t[i+1]^255;for(var r=0;r<n;++r)t[i+r+4]=s[r];return(i+4+n)*8},ot=function(t,e,s,n,i,r,o,l,a,h,c){G(e,c++,s),++i[256];for(var u=Me(i,15),d=u.t,f=u.l,g=Me(r,15),p=g.t,y=g.l,E=it(d),N=E.c,T=E.n,m=it(p),w=m.c,k=m.n,x=new z(19),S=0;S<N.length;++S)++x[N[S]&31];for(var S=0;S<w.length;++S)++x[w[S]&31];for(var b=Me(x,7),_=b.t,M=b.l,O=19;O>4&&!_[tt[O-1]];--O);var D=h+5<<3,v=de(i,ne)+de(r,ke)+o,I=de(i,d)+de(r,p)+o+14+3*O+de(x,_)+2*x[16]+3*x[17]+7*x[18];if(a>=0&&D<=v&&D<=I)return rt(e,c,t.subarray(a,a+h));var A,L,R,U;if(G(e,c,1+(I<v)),c+=2,I<v){A=he(d,f,0),L=d,R=he(p,y,0),U=p;var $t=he(_,M,0);G(e,c,T-257),G(e,c+5,k-1),G(e,c+10,O-4),c+=14;for(var S=0;S<O;++S)G(e,c+3*S,_[tt[S]]);c+=3*O;for(var Q=[N,w],Ee=0;Ee<2;++Ee)for(var Se=Q[Ee],S=0;S<Se.length;++S){var Z=Se[S]&31;G(e,c,$t[Z]),c+=_[Z],Z>15&&(G(e,c,Se[S]>>5&127),c+=Se[S]>>12)}}else A=ts,L=ne,R=ss,U=ke;for(var S=0;S<l;++S){var H=n[S];if(H>255){var Z=H>>18&31;ue(e,c,A[Z+257]),c+=L[Z+257],Z>7&&(G(e,c,H>>23&31),c+=_e[Z]);var we=H&31;ue(e,c,R[we]),c+=U[we],we>3&&(ue(e,c,H>>5&8191),c+=Oe[we])}else ue(e,c,A[H]),c+=L[H]}return ue(e,c,A[256]),c+L[256]},rs=new Ne([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),at=new W(0),os=function(t,e,s,n,i,r){var o=r.z||t.length,l=new W(n+o+5*(1+Math.ceil(o/7e3))+i),a=l.subarray(n,l.length-i),h=r.l,c=(r.r||0)&7;if(e){c&&(a[0]=r.r>>3);for(var u=rs[e-1],d=u>>13,f=u&8191,g=(1<<s)-1,p=r.p||new z(32768),y=r.h||new z(g+1),E=Math.ceil(s/3),N=2*E,T=function(Gt){return(t[Gt]^t[Gt+1]<<E^t[Gt+2]<<N)&g},m=new Ne(25e3),w=new z(288),k=new z(32),x=0,S=0,b=r.i||0,_=0,M=r.w||0,O=0;b+2<o;++b){var D=T(b),v=b&32767,I=y[D];if(p[v]=I,y[D]=v,M<=b){var A=o-b;if((x>7e3||_>24576)&&(A>423||!h)){c=ot(t,a,0,m,w,k,S,_,O,b-O,c),_=x=S=0,O=b;for(var L=0;L<286;++L)w[L]=0;for(var L=0;L<30;++L)k[L]=0}var R=2,U=0,$t=f,Q=v-I&32767;if(A>2&&D==T(b-Q))for(var Ee=Math.min(d,A)-1,Se=Math.min(32767,b),Z=Math.min(258,A);Q<=Se&&--$t&&v!=I;){if(t[b+R]==t[b+R-Q]){for(var H=0;H<Z&&t[b+H]==t[b+H-Q];++H);if(H>R){if(R=H,U=Q,H>Ee)break;for(var we=Math.min(Q,H-2),Cn=0,L=0;L<we;++L){var Vt=b-Q+L&32767,Qo=p[Vt],Nn=Vt-Qo&32767;Nn>Cn&&(Cn=Nn,I=Vt)}}}v=I,I=p[v],Q+=v-I&32767}if(U){m[_++]=268435456|Re[R]<<18|st[U];var _n=Re[R]&31,On=st[U]&31;S+=_e[_n]+Oe[On],++w[257+_n],++k[On],M=b+R,++x}else m[_++]=t[b],++w[t[b]]}}for(b=Math.max(b,M);b<o;++b)m[_++]=t[b],++w[t[b]];c=ot(t,a,h,m,w,k,S,_,O,b-O,c),h||(r.r=c&7|a[c/8|0]<<3,c-=7,r.h=y,r.p=p,r.i=b,r.w=M)}else{for(var b=r.w||0;b<o+h;b+=65535){var Xt=b+65535;Xt>=o&&(a[c/8|0]=h,Xt=o),c=rt(a,c+1,t.subarray(b,Xt))}r.i=o}return ns(l,0,n+nt(c)+i)},as=function(){for(var t=new Int32Array(256),e=0;e<256;++e){for(var s=e,n=9;--n;)s=(s&1&&-306674912)^s>>>1;t[e]=s}return t}(),cs=function(){var t=-1;return{p:function(e){for(var s=t,n=0;n<e.length;++n)s=as[s&255^e[n]]^s>>>8;t=s},d:function(){return~t}}},ct=function(t,e,s,n,i){if(!i&&(i={l:1},e.dictionary)){var r=e.dictionary.subarray(-32768),o=new W(r.length+t.length);o.set(r),o.set(t,r.length),t=o,i.w=r.length}return os(t,e.level==null?6:e.level,e.mem==null?i.l?Math.ceil(Math.max(8,Math.min(13,Math.log(t.length)))*1.5):20:12+e.mem,s,n,i)},zn=function(t,e){var s={};for(var n in t)s[n]=t[n];for(var n in e)s[n]=e[n];return s},ls=function(t,e,s){for(var n=t(),i=t.toString(),r=i.slice(i.indexOf("[")+1,i.lastIndexOf("]")).replace(/\s+/g,"").split(","),o=0;o<n.length;++o){var l=n[o],a=r[o];if(typeof l=="function"){e+=";"+a+"=";var h=l.toString();if(l.prototype)if(h.indexOf("[native code]")!=-1){var c=h.indexOf(" ",8)+1;e+=h.slice(c,h.indexOf("(",c))}else{e+=h;for(var u in l.prototype)e+=";"+a+".prototype."+u+"="+l.prototype[u].toString()}else e+=h}else s[a]=l}return e},Pe=[],Wn=function(t){var e=[];for(var s in t)t[s].buffer&&e.push((t[s]=new t[s].constructor(t[s])).buffer);return e},qn=function(t,e,s,n){if(!Pe[s]){for(var i="",r={},o=t.length-1,l=0;l<o;++l)i=ls(t[l],i,r);Pe[s]={c:ls(t[o],i,r),e:r}}var a=zn({},Pe[s].e);return Bn(Pe[s].c+";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage="+e.toString()+"}",s,a,Wn(a),n)},$n=function(){return[W,z,Ne,_e,Oe,tt,Re,st,ts,ne,ss,ke,De,rs,at,he,G,ue,Me,Ae,it,de,rt,ot,nt,ns,os,ct,Gn,hs]},Vn=function(){return[us,ds,Le,cs,as]},hs=function(t){return postMessage(t,[t.buffer])},Xn=function(t,e,s,n,i,r){var o=qn(s,n,i,function(l,a){o.terminate(),r(l,a)});return o.postMessage([t,e],e.consume?[t.buffer]:[]),function(){o.terminate()}},Le=function(t,e,s){for(;s;++e)t[e]=s,s>>>=8},us=function(t,e){var s=e.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=e.level<2?4:e.level==9?2:0,t[9]=3,e.mtime!=0&&Le(t,4,Math.floor(new Date(e.mtime||Date.now())/1e3)),s){t[3]=8;for(var n=0;n<=s.length;++n)t[n+10]=s.charCodeAt(n)}},ds=function(t){return 10+(t.filename?t.filename.length+1:0)};function Gn(t,e){return ct(t,e||{},0,0)}function Kn(t,e,s){return s||(s=e,e={}),typeof s!="function"&&is(7),Xn(t,e,[$n,Vn,function(){return[fs]}],function(n){return hs(fs(n.data[0],n.data[1]))},2,s)}function fs(t,e){e||(e={});var s=cs(),n=t.length;s.p(t);var i=ct(t,e,ds(e),8),r=i.length;return us(i,e),Le(i,r-8,s.d()),Le(i,r-4,n),i}var Jn=typeof TextDecoder<"u"&&new TextDecoder,Yn=0;try{Jn.decode(at,{stream:!0}),Yn=1}catch{}class ps{constructor(){this.idx=1,this.backDict={}}getKey(e){let s=!1;return this.backDict[e]||(s=!0,this.backDict[e]=this.idx++),[this.backDict[e],s]}}class Qn{constructor(e,s){this.app=e,this.isDictDisabled=s,this.dict=new ps}sendSetAttribute(e,s,n){if(this.isDictDisabled){const i=[12,e,s,n];return this.app.send(i)}else{const i=[51,e,this.applyDict(s),this.applyDict(n)];return this.app.send(i)}}applyDict(e){const[s,n]=this.dict.getKey(e);return n&&this.app.send([50,s,e]),s}clear(){this.dict=new ps}}class Zn{constructor(e,s){this.app=e,this.startParams=s,this.conditions=[],this.hasStarted=!1,this.createConditionFromFilter=n=>{if(n.value.length){const i=ei(n);if(i.type)return i}},this.durationInt=null}setConditions(e){this.conditions=e}async fetchConditions(e,s){try{const n=await fetch(`${this.app.options.ingestPoint}/v1/web/conditions/${e}`,{method:"GET",headers:{Authorization:`Bearer ${s}`}}),{conditions:i}=await n.json(),r=[];i.forEach(o=>{o.filters.forEach(a=>{let h;a.type==="fetch"?(h={type:"network_request",subConditions:[],name:o.name},a.filters.forEach(c=>{const u=this.createConditionFromFilter(c);u&&h.subConditions.push(u)})):h=this.createConditionFromFilter(a),h&&(h.type==="session_duration"&&this.processDuration(h.value[0],o.name),r.push({...h,name:o.name}))})}),this.conditions=r}catch{this.app.debug.error("Critical: cannot fetch start conditions")}}trigger(e){if(!this.hasStarted)try{this.hasStarted=!0,this.app.start(this.startParams,void 0,e)}catch(s){this.app.debug.error(s)}}processMessage(e){if(!this.hasStarted)switch(e[0]){case 78:this.jsExceptionEvent(e);break;case 27:this.customEvent(e);break;case 68:this.clickEvent(e);break;case 122:this.pageLocationEvent(e);break;case 83:this.networkRequest(e);break}}processFlags(e){const s=this.conditions.filter(n=>n.type==="feature_flag");s.length&&s.forEach(n=>{const i=fe[n.operator];i&&e.find(r=>i(r.key,n.value))&&this.trigger(n.name)})}processDuration(e,s){this.durationInt=setInterval(()=>{performance.now()>e&&this.trigger(s)},1e3),this.app.attachStopCallback(()=>{this.durationInt&&clearInterval(this.durationInt)})}networkRequest(e){const s=this.conditions.filter(n=>n.type==="network_request");s.length&&s.forEach(n=>{const i=n.subConditions.filter(r=>r.operator!=="isAny");i.length?i.every(o=>{let l;switch(o.key){case"url":l=e[3];break;case"status":l=e[6];break;case"method":l=e[2];break;case"duration":l=e[8];break}const a=fe[o.operator];if(a&&a(l,o.value))return!0})&&this.trigger(n.name):i.length===0&&n.subConditions.length&&this.trigger(n.name)})}customEvent(e){const s=this.conditions.filter(n=>n.type==="custom_event");s.length&&s.forEach(n=>{const i=fe[n.operator];i&&(i(e[1],n.value)||i(e[2],n.value))&&this.trigger(n.name)})}clickEvent(e){const s=this.conditions.filter(n=>n.type==="click");s.length&&s.forEach(n=>{const i=fe[n.operator];i&&(i(e[3],n.value)||i(e[4],n.value))&&this.trigger(n.name)})}pageLocationEvent(e){const s=this.conditions.filter(n=>n.type==="visited_url");s&&s.forEach(n=>{const i=fe[n.operator];i&&i(e[1],n.value)&&this.trigger(n.name)})}jsExceptionEvent(e){const s=[e[1],e[2],e[3]],n=this.conditions.filter(i=>i.type==="exception");n&&n.forEach(i=>{const r=fe[i.operator];r&&s.some(o=>r(o,i.value))&&this.trigger(i.name)})}}const fe={is:(t,e)=>e.some(s=>t.includes(s)),isAny:()=>!0,isNot:(t,e)=>!e.some(s=>t.includes(s)),contains:(t,e)=>e.some(s=>t.includes(s)),notContains:(t,e)=>!e.some(s=>t.includes(s)),startsWith:(t,e)=>e.some(s=>t.startsWith(s)),endsWith:(t,e)=>e.some(s=>t.endsWith(s)),greaterThan:(t,e)=>t>e,greaterOrEqual:(t,e)=>t>=e,lessOrEqual:(t,e)=>t<=e,lessThan:(t,e)=>t<e},ei=t=>{const e={on:"is",notOn:"isNot",">":"greaterThan","<":"lessThan","=":"is","<=":"lessOrEqual",">=":"greaterOrEqual"},s=i=>{if(Object.keys(e).includes(i))return e[i]};let n={type:"",operator:"",value:t.value,key:""};switch(t.type){case"click":n={type:"click",operator:s(t.operator),value:t.value,key:""};break;case"location":n={type:"visited_url",operator:t.operator,value:t.value,key:""};break;case"custom":n={type:"custom_event",operator:t.operator,value:t.value,key:""};break;case"metadata":n={type:t.source==="featureFlag"?"feature_flag":t.type,operator:t.operator,value:t.value,key:""};break;case"error":n={type:"exception",operator:t.operator,value:t.value,key:""};break;case"duration":n={type:"session_duration",value:t.value[0],key:""};break;case"fetchUrl":n={type:"network_request",key:"url",operator:t.operator,value:t.value};break;case"fetchStatusCode":n={type:"network_request",key:"status",operator:s(t.operator),value:t.value};break;case"fetchMethod":n={type:"network_request",key:"method",operator:s(t.operator),value:t.value};break;case"fetchDuration":n={type:"network_request",key:"duration",operator:s(t.operator),value:t.value};break}return n};class ti{constructor(e){this.app=e,this.flags=[],this.storageKey="__openreplay_flags";const s=this.app.sessionStorage.getItem(this.storageKey);if(s){const n=s.split(";").filter(Boolean);this.flags=n.map(i=>JSON.parse(i))}}getFeatureFlag(e){return this.flags.find(s=>s.key===e)}isFlagEnabled(e){return this.flags.findIndex(s=>s.key===e)!==-1}onFlagsLoad(e){this.onFlagsCb=e}async reloadFlags(e){const s=this.app.sessionStorage.getItem(this.storageKey),n={};s&&s.split(";").filter(Boolean).forEach(c=>{const u=JSON.parse(c);n[u.key]={key:u.key,value:u.value}});const i=this.app.session.getInfo(),r=this.app.session.userInfo,o={projectID:i.projectID,userID:i.userID,metadata:i.metadata,referrer:document.referrer,os:r.userOS,device:r.userDevice,country:r.userCountry,state:r.userState,city:r.userCity,browser:r.userBrowser,persistFlags:n},l=e??this.app.session.getSessionToken(),a=await fetch(this.app.options.ingestPoint+"/v1/web/feature-flags",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${l}`},body:JSON.stringify(o)});if(a.status===200){const h=await a.json();return this.handleFlags(h.flags)}}handleFlags(e){var r;const s=[];e.forEach(o=>{o.is_persist&&s.push(o)});let n="";return this.diffPersist(s).forEach(o=>{n+=`${JSON.stringify(o)};`}),this.app.sessionStorage.setItem(this.storageKey,n),this.flags=e,(r=this.onFlagsCb)==null?void 0:r.call(this,e)}clearPersistFlags(){this.app.sessionStorage.removeItem(this.storageKey)}diffPersist(e){const s=this.app.sessionStorage.getItem(this.storageKey);if(!s)return e;const i=s.split(";").filter(Boolean).map(r=>JSON.parse(r));return e.filter(r=>i.findIndex(o=>o.key===r.key)===-1)}}const gs={htmlmasked:"hidden",masked:"obscured"},K=!(typeof window>"u"),si=K&&navigator.userAgent.match(/firefox|fxios/i),ni=1e5;let lt=K?Date.now()-performance.now():0;function ht(){lt=Date.now()-performance.now()}function pe(){return lt}const X=K&&performance.now?()=>Math.round(performance.now()+lt):()=>Date.now(),ut="repeat"in String.prototype?t=>"*".repeat(t.length):t=>t.replace(/./g,"*");function ms(t){return t.trim().replace(/\s+/g," ")}function bs(t){return t.startsWith("https://")||t.startsWith("http://")}const Fe="https://docs.openreplay.com",ys={};function ie(t,e,s="/"){ys[t]||(console.warn(`OpenReplay: ${t} is deprecated. ${e?`Please, use ${e} instead.`:""} Visit ${Fe}${s} for more information.`),ys[t]=!0)}function dt(t){let e=t.getAttribute("data-openreplay-label");return e!==null||(e=t.getAttribute("data-asayer-label"),e!==null&&ie('"data-asayer-label" attribute','"data-openreplay-label" attribute',"/")),e}function oe(t,e){const s=`data-openreplay-${e}`;return t.hasAttribute(s)?(gs[e]&&ie(`"${s}" attribute`,`"${gs[e]}" attribute`,"/installation/sanitize-data"),!0):!1}function ii(t){try{return!!t.contentDocument}catch{return!1}}function Ss(t){return t.toString(16).padStart(2,"0")}function ri(t){const e=new Uint8Array((t||40)/2),s=window.crypto||window.msCrypto;return s?(s.getRandomValues(e),Array.from(e,Ss).join("")):Array.from({length:t||40},()=>Ss(Math.floor(Math.random()*16))).join("")}function oi(){try{return window.self&&window.top&&window.self!==window.top}catch{return!0}}function ft(t){return window.Zone&&"__symbol__"in window.Zone?window.Zone.__symbol__(t):t}function ws(t){const e=ft("MutationObserver");return new window[e](t)}function vs(t,e,s,n){const i=ft("addEventListener");try{t[i](e,s,n)}catch(r){const o=r.message;console.debug(`Openreplay: ${o}; if this error is caused by an IframeObserver, ignore it`)}}function ks(t,e,s,n){const i=ft("removeEventListener");try{t[i](e,s,n)}catch(r){const o=r.message;console.debug(`Openreplay: ${o}; if this error is caused by an IframeObserver, ignore it`)}}class ai{constructor(){this.taskQueue=[],this.isRunning=!1}addTask(e){this.taskQueue.push(e),this.runTasks()}runTasks(){if(this.isRunning||this.taskQueue.length===0)return;this.isRunning=!0;const e=()=>{if(this.taskQueue.length===0){this.isRunning=!1;return}const s=this.taskQueue.shift();Promise.resolve(s()).then(()=>{requestAnimationFrame(()=>e())})};e()}}const ci=new ai;function li(t){ci.addTask(t)}function Ts(t,e){const s={...t};for(const n in e)if(e.hasOwnProperty(n)){const i=e[n],r=t[n];typeof i=="object"&&!Array.isArray(i)&&i!==null?s[n]=Ts(r||{},i):s[n]=i}return s}function ae(t){return[0,t]}function hi(t,e){return[5,t,e]}function ui(t,e){return[6,t,e]}function di(){return[7]}function fi(t,e,s,n,i){return[8,t,e,s,n,i]}function pi(t,e,s){return[9,t,e,s]}function gi(t,e,s){return[10,t,e,s]}function mi(t){return[11,t]}function Is(t,e){return[13,t,e]}function bi(t,e){return[14,t,e]}function yi(t,e,s){return[16,t,e,s]}function Si(t,e,s){return[18,t,e,s]}function wi(t,e){return[19,t,e]}function vi(t,e){return[20,t,e]}function ki(t,e){return[22,t,e]}function Ti(t,e,s,n,i,r,o,l,a){return[23,t,e,s,n,i,r,o,l,a]}function Ii(t,e,s){return[24,t,e,s]}function xi(t,e){return[27,t,e]}function Ei(t){return[28,t]}function Ci(t){return[29,t]}function xs(t,e){return[30,t,e]}function Ni(t,e,s,n){return[49,t,e,s,n]}function _i(t,e){return[54,t,e]}function Oi(t){return[55,t]}function Es(t,e,s,n){return[57,t,e,s,n]}function Cs(t){return[58,t]}function pt(t,e,s,n){return[60,t,e,s,n]}function Ri(t,e,s){return[61,t,e,s]}function Di(t,e){return[63,t,e]}function Mi(t,e){return[64,t,e]}function Ai(t,e,s,n,i,r){return[68,t,e,s,n,i,r]}function gt(t,e){return[70,t,e]}function Ns(t,e,s){return[71,t,e,s]}function mt(t,e,s,n){return[73,t,e,s,n]}function _s(t,e){return[75,t,e]}function Os(t,e){return[76,t,e]}function Pi(t,e){return[77,t,e]}function bt(t,e,s,n){return[78,t,e,s,n]}function Be(t,e,s,n,i,r,o,l,a){return[83,t,e,s,n,i,r,o,l,a]}function Li(t,e,s,n,i,r){return[84,t,e,s,n,i,r]}function Fi(t,e,s,n,i,r){return[112,t,e,s,n,i,r]}function Rs(t,e,s){return[113,t,e,s]}function Bi(t){return[114,t]}function Ui(t){return[115,t]}function Ds(t,e,s,n,i,r,o,l,a,h){return[116,t,e,s,n,i,r,o,l,a,h]}function Ue(t){return[117,t]}function ce(t){return[118,t]}function Hi(t,e){return[119,t,e]}function ji(t){return[120,t]}function zi(t,e,s,n){return[122,t,e,s,n]}const yt=K&&"performance"in window&&"memory"in performance?performance:{memory:{}},St=K?(navigator.deviceMemory||0)*1024:0,wt=yt.memory.jsHeapSizeLimit||0;function Wi(t,e){if(!Object.assign({capturePerformance:!0},e).capturePerformance)return;let n,i;const r=()=>{n===void 0||n===-1||(n++,requestAnimationFrame(r))};t.ticker.attach(()=>{i===void 0||i===-1||i++},0,!1);const o=()=>{n===void 0||i===void 0||(t.send(Ni(n,i,yt.memory.totalJSHeapSize||0,yt.memory.usedJSHeapSize||0)),i=n=document.hidden?-1:0)};t.attachStartCallback(()=>{i=n=-1,o(),r()}),t.attachStopCallback(()=>{i=n=void 0}),t.ticker.attach(o,40,!1),document.hidden!==void 0&&t.attachEventListener(document,"visibilitychange",o,!1,!1)}const Ms="__or__watched_tags__";class qi{constructor(e,s,n){this.sessionStorage=e,this.errLog=s,this.onTag=n,this.intervals={},this.tags=[];const i=JSON.parse(e.getItem(Ms)??"[]");this.setTags(i),this.observer=new IntersectionObserver(r=>{r.forEach(o=>{if(o.isIntersecting&&o.target){const l=o.target.__or_watcher_tagname;l&&this.onTagRendered(l),this.observer.unobserve(o.target)}})})}async fetchTags(e,s){return fetch(`${e}/v1/web/tags`,{method:"GET",headers:{Authorization:`Bearer ${s}`}}).then(n=>n.json()).then(({tags:n})=>{if(n&&n.length){this.setTags(n);const i=JSON.stringify(n);this.sessionStorage.setItem(Ms,i||"")}}).catch(n=>this.errLog(n))}setTags(e){this.tags=e,this.intervals={},e.forEach(s=>{this.intervals[s.id]=setInterval(()=>{const n=document.querySelectorAll(s.selector);if(n.length>0){const i=n[0];i.__or_watcher_tagname=s.id,this.observer.observe(i)}},500)})}onTagRendered(e){this.intervals[e]&&clearInterval(this.intervals[e]),this.onTag(e)}clear(){this.tags.forEach(e=>{clearInterval(this.intervals[e.id])}),this.tags=[],this.intervals={},this.observer.disconnect()}}const $i={position:"fixed",top:0,left:0,width:"100vw",height:"100vh",background:"rgba(0, 0, 0, 0.40)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:999999,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'},Vi={display:"flex",flexDirection:"column",gap:"2rem",alignItems:"center",padding:"1.5rem",borderRadius:"2px",border:"1px solid #D9D9D9",background:"#FFF",width:"22rem"},He={display:"flex","flex-direction":"column",gap:"unset","align-items":"center",padding:"unset",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',"border-radius":"2px",border:"1px solid #D9D9D9",background:"rgba(255, 255, 255, 0.75)",width:"22rem"},Xi={fontFamily:"Verdana, sans-serif",fontSize:"1.25rem",fontStyle:"normal",fontWeight:"500",lineHeight:"1.75rem",color:"rgba(0, 0, 0, 0.85)"},Gi={borderTop:"1px solid rgba(0, 0, 0, 0.06)",borderBottom:"1px solid rgba(0, 0, 0, 0.06)",padding:"1.25rem 0rem",color:"rgba(0, 0, 0, 0.85)",fontFamily:"Verdana, sans-serif",fontSize:"13px",fontStyle:"normal",fontWeight:"400",lineHeight:"auto",whiteSpace:"pre-wrap"},Ki={display:"flex",padding:"0.4rem 0.9375rem",justifyContent:"center",alignItems:"center",gap:"0.625rem",borderRadius:"0.25rem",border:"1px solid #394EFF",background:"#394EFF",boxShadow:"0px 2px 0px 0px rgba(0, 0, 0, 0.04)",color:"#FFF",textAlign:"center",fontFamily:"Verdana, sans-serif",fontSize:"1rem",fontStyle:"normal",fontWeight:"500",lineHeight:"1.5rem",cursor:"pointer"},As={fontFamily:"Verdana, sans-serif",fontSize:"13px",fontWeight:"500",lineHeight:"auto",display:"flex",justifyContent:"space-between",width:"100%",cursor:"pointer"},ge={display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"0.625rem",fontSize:"13px",lineHeight:"auto"},Ji={padding:"0.5rem",gap:"0.5rem",fontFamily:"Verdana, sans-serif",fontSize:"16px",fontStyle:"normal",fontWeight:"500",lineHeight:"auto",color:"white",display:"flex",alignItems:"center",width:"100%",borderRadius:"2px",background:"rgba(0, 0, 0, 0.75)",boxSizing:"border-box"},me={boxSizing:"border-box",display:"block",width:"100%",borderBottom:"1px solid #D9D9D9",background:"#FFF",padding:"0.65rem",alignSelf:"stretch",color:"#000",fontFamily:"Verdana, sans-serif",fontStyle:"normal",fontWeight:"400"},Yi={...me,display:"flex",flexDirection:"column",alignItems:"center",gap:"0.625rem"},Ps={fontSize:"1.25rem",fontWeight:"500",cursor:"pointer",color:"#394EFF"},Ls={display:"flex",padding:"0.4rem 0.9375rem",justifyContent:"center",alignItems:"center",gap:"0.625rem",borderRadius:"0.25rem",border:"1px solid #394EFF",background:"#394EFF",boxShadow:"0px 2px 0px 0px rgba(0, 0, 0, 0.04)",color:"#FFF",textAlign:"center",fontFamily:"Verdana, sans-serif",fontSize:"1rem",fontStyle:"normal",fontWeight:"500",lineHeight:"1.5rem",width:"100%",boxSizing:"border-box",cursor:"pointer"},Fs={marginTop:"1rem",marginBottom:"1rem",cursor:"pointer",display:"block",fontWeight:"500",fontSize:"13px!important",lineHeight:"auto"},Qi={display:"flex",justifyContent:"space-between",alignItems:"center",gap:"1rem",padding:"0.5rem",width:"100%",boxSizing:"border-box"},Bs={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",borderRadius:"6.25em",outline:"1px solid #394EFF",fontSize:"13px",height:"24px",width:"24px"},Zi={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",borderRadius:"6.25em",outline:"1px solid #D2DFFF",boxShadow:"0px 2px 0px 0px rgba(0, 0, 0, 0.04)",background:"#D2DFFF",fontSize:"13px",height:"24px",width:"24px"},Us={borderRadius:"0.375rem",border:"1px solid rgba(0, 0, 0, 0.06)",background:"#F5F7FF",boxShadow:"0px 2px 0px 0px rgba(0, 0, 0, 0.04)",display:"flex",flexDirection:"column",padding:"0.625rem 0.9375rem",gap:"0.5rem",alignSelf:"stretch"},Hs={fontWeight:"bold"},er={fontSize:"13px",lineHeight:"auto"},js={marginRight:"0.5rem",cursor:"pointer",color:"#394EFF",textAlign:"center",fontFamily:"Verdana, sans-serif",fontSize:"13px",fontStyle:"normal",fontWeight:"500",lineHeight:"auto"},tr={...js,display:"flex",padding:"0.25rem 0.9375rem",justifyContent:"center",alignItems:"center",gap:"0.5rem",borderRadius:"0.25rem",border:"1px solid #394EFF"},sr={display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",boxSizing:"border-box"},nr={border:"4px solid rgba(255, 255, 255, 0.4)",width:"16px",height:"16px",borderRadius:"50%",borderLeftColor:"#fff",animation:"spin 0.5s linear infinite"},zs={Standard:{width:1280,height:720},High:{width:1920,height:1080}};class ir{constructor(e){this.app=e,this.mediaRecorder=null,this.recordedChunks=[],this.stream=null,this.recStartTs=null}async startRecording(e,s,n,i){this.recStartTs=this.app.timestamp();const r=s;try{this.stream=await navigator.mediaDevices.getUserMedia({video:i?{...r,frameRate:{ideal:e}}:!1,audio:n}),this.mediaRecorder=new MediaRecorder(this.stream,{mimeType:"video/webm;codecs=vp9"}),this.recordedChunks=[],this.mediaRecorder.ondataavailable=o=>{o.data.size>0&&this.recordedChunks.push(o.data)},this.mediaRecorder.start()}catch(o){console.error(o)}}async stopRecording(){return new Promise(e=>{this.mediaRecorder&&(this.mediaRecorder.onstop=()=>{const s=new Blob(this.recordedChunks,{type:"video/webm"});e(s)},this.mediaRecorder.stop())})}async sendToAPI(){const e=await this.stopRecording();return fetch(`${this.app.options.ingestPoint}/v1/web/uxt/upload-url`,{headers:{Authorization:`Bearer ${this.app.session.getSessionToken()}`}}).then(s=>{if(s.ok)return s.json();throw new Error("Failed to get upload url")}).then(({url:s})=>fetch(s,{method:"PUT",headers:{"Content-Type":"video/webm"},body:e})).catch(console.error).finally(()=>{this.discard()})}async saveToFile(e="recorded-video.webm"){const s=await this.stopRecording(),n=URL.createObjectURL(s),i=document.createElement("a");i.style.display="none",i.href=n,i.download=e,document.body.appendChild(i),i.click(),window.URL.revokeObjectURL(n),document.body.removeChild(i)}discard(){var e,s;(e=this.mediaRecorder)==null||e.stop(),(s=this.stream)==null||s.getTracks().forEach(n=>n.stop())}}function rr(t,e){e.onmousedown=function(s){const n=t.getBoundingClientRect(),i=s.clientX-n.left,r=s.clientY-n.top;t.style.position="fixed",t.style.zIndex=99999999999999,o(s.pageX,s.pageY);function o(h,c){let u=h-i,d=c-r;u<=5&&(u=5),d<=5&&(d=5),u>=window.innerWidth-n.width&&(u=window.innerWidth-n.width),d>=window.innerHeight-n.height&&(d=window.innerHeight-n.height),t.style.left=`${u}px`,t.style.top=`${d}px`}function l(h){o(h.pageX,h.pageY)}document.addEventListener("mousemove",l);const a=()=>{document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",a)};document.addEventListener("mouseup",a)},e.ondragstart=function(){return!1}}function or(){const t=document.createElement("div");t.className="grid";for(let e=0;e<16;e++){const s=document.createElement("div");Object.assign(s.style,{width:"2px",height:"2px",borderRadius:"10px",background:"white"}),s.className="cell",t.appendChild(s)}return Object.assign(t.style,{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gridTemplateRows:"repeat(4, 1fr)",gap:"2px",cursor:"grab"}),t}function ar(){const t=document.createElement("div");Object.assign(t.style,{width:"0",height:"0",borderLeft:"7px solid transparent",borderRight:"7px solid transparent",borderBottom:"7px solid white"});const e=document.createElement("div");return e.appendChild(t),Object.assign(e.style,{display:"flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",cursor:"pointer",marginLeft:"auto",transform:"rotate(180deg)"}),e}function cr(){const t=document.createElement("style");t.type="text/css",t.innerText=`@keyframes spin {
283
283
  0% { transform: rotate(0deg); }
284
284
  100% { transform: rotate(360deg); }
285
285
  }`,document.head.appendChild(t)}function lr(){cr();const t=document.createElement("div");return t.classList.add("spinner"),Object.assign(t.style,nr),t}function C(t,e,s,n,i){const r=document.createElement(t);return r.className=e,Object.assign(r.style,s),n&&(r.textContent=n),i&&(r.id=i),r}const je="or_uxt_test_start",vt="or_uxt_task_index",kt="or_uxt_session_id",hr="or_uxt_test_id";class ur{constructor(e,s,n,i,r,o,l,a,h){this.ingestPoint=e,this.getTimestamp=s,this.token=n,this.testId=i,this.storageKey=r,this.setStorageKey=o,this.removeStorageKey=l,this.getStorageKey=a,this.getSessionId=h,this.durations={testStart:0,tasks:[]},this.getDurations=()=>this.durations,this.setDurations=u=>{this.durations.testStart=u.testStart,this.durations.tasks=u.tasks},this.signalTask=(u,d,f)=>{if(!u)return console.error("User Testing: No Task ID Given");const g=this.durations.tasks.find(E=>E.taskId===u),p=this.getTimestamp(),y=g?p-g.started:0;return fetch(`${this.ingestPoint}/v1/web/uxt/signals/task`,{method:"POST",headers:{Authorization:`Bearer ${this.token}`},body:JSON.stringify({testId:this.testId,taskId:u,status:d,duration:y,timestamp:p,taskAnswer:f})})},this.signalTest=u=>{const d=this.getTimestamp();if(u==="begin"&&this.testId){const p=this.getSessionId();this.setStorageKey(kt,p),this.setStorageKey(this.storageKey,this.testId.toString()),this.setStorageKey(je,d.toString())}else this.removeStorageKey(this.storageKey),this.removeStorageKey(vt),this.removeStorageKey(je);const f=this.durations.testStart||d,g=d-f;return fetch(`${this.ingestPoint}/v1/web/uxt/signals/test`,{method:"POST",headers:{Authorization:`Bearer ${this.token}`},body:JSON.stringify({testId:this.testId,status:u,duration:g,timestamp:d})})};const c=this.getStorageKey(je);c&&(this.durations.testStart=parseInt(c,10))}}class dr{constructor(e,s){this.app=e,this.storageKey=s,this.bg=C("div","bg",$i,void 0,"__or_ut_bg"),this.container=C("div","container",Vi,void 0,"__or_ut_ct"),this.widgetGuidelinesVisible=!0,this.widgetTasksVisible=!1,this.widgetVisible=!0,this.isActive=!1,this.descriptionSection=null,this.taskSection=null,this.endSection=null,this.stopButton=null,this.stopButtonContainer=null,this.test=null,this.testId=null,this.signalManager=null,this.getTest=(o,l,a)=>{this.testId=o;const h=this.app.options.ingestPoint;return fetch(`${h}/v1/web/uxt/test/${o}`,{headers:{Authorization:`Bearer ${l}`}}).then(c=>c.json()).then(({test:c})=>{this.isActive=!0,this.test=c,this.signalManager=new ur(this.app.options.ingestPoint,()=>this.app.timestamp(),l,o,this.storageKey,(u,d)=>this.app.localStorage.setItem(u,d),u=>this.app.localStorage.removeItem(u),u=>this.app.localStorage.getItem(u),()=>this.app.getSessionID()),this.createGreeting(c.title,c.reqMic,c.reqCamera),a&&((c.reqMic||c.reqCamera)&&this.userRecorder.startRecording(30,zs.Standard,c.reqMic,c.reqCamera),this.showWidget(c.description,c.tasks,!0),this.showTaskSection())}).then(()=>o).catch(c=>{console.log("OR: Error fetching test",c)})},this.hideTaskSection=()=>!1,this.showTaskSection=()=>!0,this.collapseWidget=()=>!1,this.removeGreeting=()=>!1,this.toggleDescriptionVisibility=()=>{},this.currentTaskIndex=0,this.userRecorder=new ir(e);const n=this.app.getSessionID(),i=this.app.localStorage.getItem(kt);n!==i&&(this.app.localStorage.removeItem(this.storageKey),this.app.localStorage.removeItem(kt),this.app.localStorage.removeItem(hr),this.app.localStorage.removeItem(vt),this.app.localStorage.removeItem(je));const r=this.app.localStorage.getItem(vt);r&&(this.currentTaskIndex=parseInt(r,10))}getTestId(){return this.testId}createGreeting(e,s,n){const i=C("div","title",Xi,e),r=C("div","description",Gi,`Welcome, you're here to help us improve, not to be judged. Your insights matter!
@@ -298,7 +298,7 @@ We appreciate your time and valuable input.`),r=C("div","end_button_or",Ls,"Subm
298
298
  `),u=[],d=0,f=c.length;d<f;d+=2){var g=h.exec(c[d]);g&&u.push(new n({functionName:g[3]||void 0,fileName:g[2],lineNumber:g[1],source:c[d]}))}return u},parseOpera11:function(a){var h=a.stack.split(`
299
299
  `).filter(function(c){return!!c.match(i)&&!c.match(/^Error created at/)},this);return h.map(function(c){var u=c.split("@"),d=this.extractLocation(u.pop()),f=u.shift()||"",g=f.replace(/<anonymous function(: (\w+))?>/,"$2").replace(/\([^)]*\)/g,"")||void 0,p;f.match(/\(([^)]*)\)/)&&(p=f.replace(/^[^(]+\(([^)]*)\)$/,"$1"));var y=p===void 0||p==="[arguments not available]"?void 0:p.split(",");return new n({functionName:g,args:y,fileName:d[0],lineNumber:d[1],columnNumber:d[2],source:c})},this)}}})})(Qs);var Fr=Qs.exports;const Br=Pr(Fr);function en(t){return[{columnNumber:t.colno,lineNumber:t.lineno,fileName:t.filename,functionName:"",source:""}]}function $e(t,e,s={}){let n=e;try{n=Br.parse(t)}catch{}return bt(t.name,t.message,JSON.stringify(n),JSON.stringify(s))}function tn(t,e=window,s={}){if(t instanceof ErrorEvent){if(t.error instanceof Error)return $e(t.error,en(t),s);{let[n,i]=t.message.split(":");return i||(n="Error",i=t.message),bt(n,i,JSON.stringify(en(t)),JSON.stringify(s))}}else if("PromiseRejectionEvent"in e&&t instanceof e.PromiseRejectionEvent){if(t.reason instanceof Error)return $e(t.reason,[],s);{let n;try{n=JSON.stringify(t.reason)}catch{n=String(t.reason)}return bt("Unhandled Promise Rejection",n,"[]",JSON.stringify(s))}}return null}function Ur(t,e){const s=Object.assign({captureExceptions:!0},e);function n(i){function r(o){const l=tn(o,i);l!=null&&t.send(l)}t.attachEventListener(i,"unhandledrejection",r),t.attachEventListener(i,"error",r)}s.captureExceptions&&(t.observer.attachContextCallback(n),n(window))}function sn(t,e=document.location){return t=t.trim(),t.startsWith("//")||t.startsWith("http://")||t.startsWith("https://")||t.startsWith("data:")?t:t.startsWith("/")?e.origin+t:e.origin+e.pathname+t}function Hr(t){return si&&(t.startsWith("data:image/svg+xml")||t.match(/.svg$|/i))}const jr="https://static.openreplay.com/tracker/placeholder.jpeg";function zr(t){function e(l,a){t.attributeSender.sendSetAttribute(l,"src",jr);const{width:h,height:c}=a.getBoundingClientRect();a.hasAttribute("width")||t.attributeSender.sendSetAttribute(l,"width",String(h)),a.hasAttribute("height")||t.attributeSender.sendSetAttribute(l,"height",String(c))}const s=function(l,a){const{srcset:h}=a;if(!h)return;const c=h.split(h.match(/,\s+/)?/,\s+/:",").map(u=>sn(u)).join(", ");t.attributeSender.sendSetAttribute(l,"srcset",c)},n=function(l,a){a.src.length>ni&&e(l,a),t.send(pt(l,"src",a.src,t.getBaseHref()))},i=t.safe(function(l){const a=sn(l.src||"");bs(a)&&t.send(Ds(t.timestamp(),0,0,0,0,0,a,"img",0,!1))}),r=t.safe(function(l){const a=t.nodes.getID(l);a!==void 0&&l.complete&&(l.naturalHeight===0&&l.naturalWidth===0&&!Hr(l.src)?i(l):t.sanitizer.isHidden(a)||t.sanitizer.isObscured(a)?e(a,l):(n(a,l),s(a,l)))}),o=ws(t.safe(l=>{for(const a of l)if(a.type==="attributes"){const h=a.target,c=t.nodes.getID(h);if(c===void 0)return;a.attributeName==="src"&&n(c,h),a.attributeName==="srcset"&&s(c,h)}}));t.attachStopCallback(()=>{o.disconnect()}),t.nodes.attachNodeCallback(l=>{F(l,"img")&&(t.nodes.attachNodeListener(l,"error",()=>i(l)),t.nodes.attachNodeListener(l,"load",()=>r(l)),r(l),o.observe(l,{attributes:!0,attributeFilter:["src","srcset"]}))})}const Wr=["text","password","email","search","number","range","date","tel","time"];function qr(t){return F(t,"textarea")?!0:F(t,"input")?Wr.includes(t.type):!1}function $r(t){if(!F(t,"input"))return!1;const e=t.type;return e==="checkbox"||e==="radio"}const Vr=K&&"labels"in HTMLInputElement.prototype?t=>{let e=t;for(;(e=e.parentNode)!==null;)if(F(e,"label"))return e;const s=t.labels;if(s!==null&&s.length===1)return s[0]}:t=>{let e=t;for(;(e=e.parentNode)!==null;)if(F(e,"label"))return e;const s=t.id;if(s){const n=t.ownerDocument.querySelectorAll('label[for="'+s+'"]');if(n!==null&&n.length===1)return n[0]}};function nn(t){let e=dt(t);if(e===null){const s=Vr(t);e=s&&s.innerText||t.placeholder||t.name||t.id||t.className||t.type}return ms(e).slice(0,100)}const be={Plain:0,Obscured:1,Hidden:2};function Xr(t,e){const s=Object.assign({obscureInputNumbers:!0,obscureInputEmails:!0,defaultInputMode:be.Obscured,obscureInputDates:!1},e);function n(c,u){let d=u.value,f=s.defaultInputMode;u.type==="password"||t.sanitizer.isHidden(c)?f=be.Hidden:(t.sanitizer.isObscured(c)||f===be.Plain&&(s.obscureInputNumbers&&u.type!=="date"&&/\d\d\d\d/.test(d)||s.obscureInputDates&&u.type==="date"||s.obscureInputEmails&&(u.type==="email"||~d.indexOf("@"))))&&(f=be.Obscured);let g=0;switch(f){case be.Hidden:g=-1,d="";break;case be.Obscured:g=d.length,d="";break}return{value:d,mask:g}}function i(c,u){const{value:d,mask:f}=n(c,u);t.send(Si(c,d,f))}const r=new Map,o=new Map;t.attachStopCallback(()=>{r.clear(),o.clear()});function l(c,u){r.get(c)!==u.value&&(r.set(c,u.value),i(c,u))}function a(c,u){o.get(c)!==u&&(o.set(c,u),t.send(wi(c,u)))}t.ticker.attach(()=>{r.forEach((c,u)=>{const d=t.nodes.getNode(u);if(!d)return r.delete(u);l(u,d)}),o.forEach((c,u)=>{const d=t.nodes.getNode(u);if(!d)return o.delete(u);a(u,d.checked)})},3);function h(c,u,d,f){const{value:g,mask:p}=n(c,u),y=nn(u);t.send(Fi(c,g,p!==0,y,d,f))}t.nodes.attachNodeCallback(t.safe(c=>{const u=t.nodes.getID(c);if(u!==void 0){if(F(c,"select")&&(i(u,c),t.nodes.attachNodeListener(c,"change",()=>i(u,c))),qr(c)){l(u,c);let d=0,f=0,g=0;const p=()=>{d=X()},y=()=>{f===0&&d!==0&&(f=X()-d)},E=()=>{d!==0&&(g=X()-d),h(u,c,f,g),f=0,g=0,d=0};t.nodes.attachNodeListener(c,"focus",p),t.nodes.attachNodeListener(c,"input",y),t.nodes.attachNodeListener(c,"change",E);return}if($r(c)){a(u,c.checked),t.nodes.attachNodeListener(c,"change",()=>a(u,c.checked));return}}}))}let $,Mt,rn;function Gr(t,e){if(rn=new Date,t.nodeType!==Node.ELEMENT_NODE)throw new Error("Can't generate CSS selector for non-element node type.");if(t.tagName.toLowerCase()==="html")return"html";const s={root:document.body,idName:i=>!0,className:i=>!0,tagName:i=>!0,attr:(i,r)=>!1,seedMinLength:1,optimizedMinLength:2,threshold:1e3,maxNumberOfTries:1e4,timeoutMs:void 0};$={...s,...e},Mt=Kr($.root,s);let n=Ve(t,"all",()=>Ve(t,"two",()=>Ve(t,"one",()=>Ve(t,"none"))));if(n){const i=un(dn(n,t));return i.length>0&&(n=i[0]),Xe(n)}else throw new Error("Selector was not found.")}function Kr(t,e){return t.nodeType===Node.DOCUMENT_NODE?t:t===e.root?t.ownerDocument:t}function Ve(t,e,s){let n=null,i=[],r=t,o=0;for(;r;){const l=new Date().getTime()-rn.getTime();if($.timeoutMs!==void 0&&l>$.timeoutMs)throw new Error(`Timeout: Can't find a unique selector after ${l}ms`);let a=Ke(Jr(r))||Ke(...Yr(r))||Ke(...Qr(r))||Ke(Zr(r))||[ln()];const h=eo(r);if(e=="all")h&&(a=a.concat(a.filter(At).map(c=>Ge(c,h))));else if(e=="two")a=a.slice(0,1),h&&(a=a.concat(a.filter(At).map(c=>Ge(c,h))));else if(e=="one"){const[c]=a=a.slice(0,1);h&&At(c)&&(a=[Ge(c,h)])}else e=="none"&&(a=[ln()],h&&(a=[Ge(a[0],h)]));for(let c of a)c.level=o;if(i.push(a),i.length>=$.seedMinLength&&(n=on(i,s),n))break;r=r.parentElement,o++}return n||(n=on(i,s)),!n&&s?s():n}function on(t,e){const s=un(hn(t));if(s.length>$.threshold)return e?e():null;for(let n of s)if(cn(n))return n;return null}function Xe(t){let e=t[0],s=e.name;for(let n=1;n<t.length;n++){const i=t[n].level||0;e.level===i-1?s=`${t[n].name} > ${s}`:s=`${t[n].name} ${s}`,e=t[n]}return s}function an(t){return t.map(e=>e.penalty).reduce((e,s)=>e+s,0)}function cn(t){const e=Xe(t);switch(Mt.querySelectorAll(e).length){case 0:throw new Error(`Can't select any node with this selector: ${e}`);case 1:return!0;default:return!1}}function Jr(t){const e=t.getAttribute("id");return e&&$.idName(e)?{name:"#"+CSS.escape(e),penalty:0}:null}function Yr(t){return Array.from(t.attributes).filter(s=>$.attr(s.name,s.value)).map(s=>({name:`[${CSS.escape(s.name)}="${CSS.escape(s.value)}"]`,penalty:.5}))}function Qr(t){return Array.from(t.classList).filter($.className).map(s=>({name:"."+CSS.escape(s),penalty:1}))}function Zr(t){const e=t.tagName.toLowerCase();return $.tagName(e)?{name:e,penalty:2}:null}function ln(){return{name:"*",penalty:3}}function eo(t){const e=t.parentNode;if(!e)return null;let s=e.firstChild;if(!s)return null;let n=0;for(;s&&(s.nodeType===Node.ELEMENT_NODE&&n++,s!==t);)s=s.nextSibling;return n}function Ge(t,e){return{name:t.name+`:nth-child(${e})`,penalty:t.penalty+1}}function At(t){return t.name!=="html"&&!t.name.startsWith("#")}function Ke(...t){const e=t.filter(to);return e.length>0?e:null}function to(t){return t!=null}function*hn(t,e=[]){if(t.length>0)for(let s of t[0])yield*hn(t.slice(1,t.length),e.concat(s));else yield e}function un(t){return[...t].sort((e,s)=>an(e)-an(s))}function*dn(t,e,s={counter:0,visited:new Map}){if(t.length>2&&t.length>$.optimizedMinLength)for(let n=1;n<t.length-1;n++){if(s.counter>$.maxNumberOfTries)return;s.counter+=1;const i=[...t];i.splice(n,1);const r=Xe(i);if(s.visited.has(r))return;cn(i)&&so(i,e)&&(yield i,s.visited.set(r,!0),yield*dn(i,e,s))}}function so(t,e){return Mt.querySelector(Xe(t))===e}function no(t,e,s){return Gr(t,{root:e.body,seedMinLength:3,optimizedMinLength:(s==null?void 0:s.minSelectorDepth)||2,threshold:(s==null?void 0:s.nthThreshold)||1e3,maxNumberOfTries:(s==null?void 0:s.maxOptimiseTries)||1e4})}function Pt(t){const e=t.tagName.toUpperCase();return e==="BUTTON"||e==="A"||e==="LI"||e==="SELECT"||e==="TR"||e==="TH"||t.onclick!=null||t.getAttribute("role")==="button"}function fn(t,e){return t instanceof Element?io(t,e):null}function io(t,e){let s=t;for(;s!==null&&s!==e.documentElement;){if(oe(s,"masked"))return null;s=s.parentElement}if(Tt(t)){let n=t.ownerSVGElement;for(;n!==null;)t=n,n=n.ownerSVGElement}for(s=t;s!==null&&s!==e.documentElement;){const n=s.tagName.toUpperCase();if(n==="LABEL")return null;if(n==="INPUT"||Pt(s)||dt(s)!==null)return s;s=s.parentElement}return t===e.documentElement?null:t}function ro(t,e){const{disableClickmaps:s=!1}=e||{};function n(m){const w=dt(m);if(w!==null)return w;if(F(m,"input"))return nn(m);if(Pt(m)){let k="";return m instanceof HTMLElement&&(k=t.sanitizer.getInnerTextSecure(m)),k=k||m.id||m.className,ms(k).slice(0,100)}return""}let i=-1,r=-1,o=!1,l=null,a=0,h={},c=0,u=0,d=0,f=0,g;const p=.008,y=225;function E(){const m=f/y;if(!c){c=m;return}const w=(m-c)/y;d>4&&w>p&&t.send(Bi(X())),f=0,d=0,c=m}t.attachStartCallback(()=>{g=setInterval(()=>E(),y)}),t.attachStopCallback(()=>{i=-1,r=-1,o=!1,l=null,h={},g&&clearInterval(g)});const N=()=>{o&&(t.send(vi(i,r)),o=!1)},T=(m,w=!1)=>{function k(S,b,_){return h[S]=h[S]||no(b,m,_)}const x=w?t.attachEventListener.bind(t):t.nodes.attachNodeListener.bind(t.nodes);x(m.documentElement,"mouseover",S=>{const b=fn(S.target,m);b!==l&&(l=b,a=performance.now())}),x(m,"mousemove",S=>{const[b,_]=t.observer.getDocumentOffset(m);i=S.clientX+b,r=S.clientY+_,o=!0;const M=Math.sign(S.movementX);f+=Math.abs(S.movementX)+Math.abs(S.movementY),M!==u&&(u=M,d++)},!1),x(m,"click",S=>{const b=fn(S.target,m);if(!S.clientX&&!S.clientY||b===null)return;const _=t.nodes.getID(b);if(_!==void 0){const M=S.pageX,O=S.pageY,D=m.documentElement.scrollWidth,v=m.documentElement.scrollHeight,I=pn(M/D),A=pn(O/v);N(),t.send(Ai(_,l===b?Math.round(performance.now()-a):0,n(b),Pt(b)&&!s?k(_,b,e):"",I,A),!0)}l=null})};t.nodes.attachNodeCallback(m=>{ze(m)&&T(m)}),T(document,!0),t.ticker.attach(N,(e==null?void 0:e.trackingOffset)||7)}function pn(t){return Math.round(t*1e4)}function oo(t){const e=[],s=document.getElementsByTagName("*"),n=/url\(("[^"]*"|'[^']*'|[^)]*)\)/i;for(let i=0;i<s.length;i++){const r=s[i];let o="";if(F(r,"img")&&(o=r.currentSrc||r.src),!o){const g=getComputedStyle(r).getPropertyValue("background-image");if(g){const p=n.exec(g);p!==null&&(o=p[1],(o.startsWith('"')||o.startsWith("'"))&&(o=o.substr(1,o.length-2)))}}if(!o)continue;const l=o.substr(0,10)==="data:image"?0:t[o];if(l===void 0)continue;const a=r.getBoundingClientRect(),h=Math.max(a.top,0),c=Math.max(a.left,0),u=Math.min(a.bottom,window.innerHeight||document.documentElement&&document.documentElement.clientHeight||0),d=Math.min(a.right,window.innerWidth||document.documentElement&&document.documentElement.clientWidth||0);if(u<=h||d<=c)continue;const f=(u-h)*(d-c);e.push({time:l,area:f})}return e}function ao(t,e){let s=Math.max(document.documentElement&&document.documentElement.clientWidth||0,window.innerWidth||0)*Math.max(document.documentElement&&document.documentElement.clientHeight||0,window.innerHeight||0)/10,n=s*t;for(let i=0;i<e.length;i++){const{time:r,area:o}=e[i];s+=o,n+=o*(r>t?r:t)}return s===0?0:n/s}function co(t,e){const s=Object.assign({captureResourceTimings:!0,capturePageLoadTimings:!0,capturePageRenderTimings:!0,excludedResourceUrls:[]},e);if("PerformanceObserver"in window||(s.captureResourceTimings=!1),!s.captureResourceTimings)return;let n={};function i(h){var u;if(h.duration<0||!bs(h.name)||t.isServiceURL(h.name))return;n!==null&&(n[h.name]=h.startTime+h.duration);let c=!1;(u=s.excludedResourceUrls)==null||u.forEach(d=>{if(h.name.startsWith(d)){c=!0;return}}),!c&&t.send(Ds(h.startTime+pe(),h.duration,h.responseStart&&h.startTime?h.responseStart-h.startTime:0,h.transferSize>h.encodedBodySize?h.transferSize-h.encodedBodySize:0,h.encodedBodySize||0,h.decodedBodySize||0,h.name,h.initiatorType,h.transferSize,h.responseStatus&&h.responseStatus===304||h.transferSize===0))}const r=new PerformanceObserver(h=>h.getEntries().forEach(i));let o;t.attachStartCallback(function({sessionID:h}){h!==o&&(performance.getEntriesByType("resource").forEach(i),o=h),r.observe({entryTypes:["resource"]})}),t.attachStopCallback(function(){r.disconnect()});let l=0,a=0;if(s.capturePageLoadTimings){let h=!1;t.ticker.attach(()=>{if(!h&&((l===0||a===0)&&performance.getEntriesByType("paint").forEach(c=>{const{name:u,startTime:d}=c;switch(u){case"first-paint":l=d;break;case"first-contentful-paint":a=d;break}}),performance.timing.loadEventEnd||performance.now()>3e4)){h=!0;const{navigationStart:c,requestStart:u,responseStart:d,responseEnd:f,domContentLoadedEventStart:g,domContentLoadedEventEnd:p,loadEventStart:y,loadEventEnd:E}=performance.timing;t.send(Ti(u-c||0,d-c||0,f-c||0,g-c||0,p-c||0,y-c||0,E-c||0,l,a))}},30)}if(s.capturePageRenderTimings){let h=0,c=0,u=0,d=null,f=!1;t.ticker.attach(()=>{if(f)return;const g=performance.now();if(n!==null&&(h=Math.max.apply(null,Object.keys(n).map(p=>n[p])),g-h>1e3&&(d=oo(n),n=null)),u!==null&&(g-u>50&&(c=g),u=g-c>5e3?null:g),d!==null&&u===null||g>3e4){f=!0,n=null;const p=d===null?0:ao(a||l,d),{domContentLoadedEventEnd:y,navigationStart:E}=performance.timing,N=u===null?Math.max(c,a,y-E||0):0;t.send(Ii(p,a>h?a:h,N))}})}}function Lt(t){const e=t.defaultView;return[e&&e.scrollX||t.documentElement&&t.documentElement.scrollLeft||t.body&&t.body.scrollLeft||0,e&&e.scrollY||t.documentElement&&t.documentElement.scrollTop||t.body&&t.body.scrollTop||0]}function lo(t,e){let s=!1;const n=new Map;function i(l){Ws(l)&&(ee(l)&&n.set(l,[l.scrollLeft,l.scrollTop]),ze(l)&&n.set(l,Lt(l)))}const r=t.safe(()=>{e||t.send(ui(...Lt(document)))}),o=t.safe((l,a)=>{const h=t.nodes.getID(a);h!==void 0&&t.send(yi(h,l[0],l[1]))});t.attachStartCallback(r),t.attachStopCallback(()=>{s=!1,n.clear()}),t.nodes.attachNodeCallback((l,a)=>{a&&(ee(l)&&l.scrollLeft+l.scrollTop>0?n.set(l,[l.scrollLeft,l.scrollTop]):ze(l)&&n.set(l,Lt(l))),We(l)&&t.nodes.attachNodeListener(l,"scroll",h=>{i(h.target)})}),t.attachEventListener(document,"scroll",l=>{const a=l.target;if(a===document){s=!0;return}i(a)}),t.ticker.attach(()=>{s&&(r(),s=!1),n.forEach(o),n.clear()},5,!1)}function ho(t){let e,s,n,i,r=document.referrer;const o=t.safe(()=>{const{URL:h}=document;h!==e&&(e=h,t.send(zi(e,r,i,document.title)),i=0,r=e)}),l=t.safe(()=>{const{innerWidth:h,innerHeight:c}=window;(h!==s||c!==n)&&(s=h,n=c,t.send(hi(s,n)))}),a=document.hidden===void 0?Function.prototype:t.safe(()=>t.send(Oi(document.hidden)));t.attachStartCallback(()=>{e=null,i=pe(),s=n=-1,o(),l(),a()}),document.hidden!==void 0&&t.attachEventListener(document,"visibilitychange",a,!1,!1),t.ticker.attach(o,1,!1),t.ticker.attach(l,5,!1)}function gn(t){return We(t)&&!!t.adoptedStyleSheets}let uo=15;function mn(){return uo++}const Je=new Map;function fo(t){if(t===null||!gn(document))return;const e=new Map,s=new Map,n=o=>setTimeout(()=>{let l=t.nodes.getID(o);if(o===document&&(l=0),l===void 0)return;let a=s.get(l);a||(a=[]);const h=[],c=o.adoptedStyleSheets;if(c&&Symbol.iterator in c)for(const u of c){let d=e.get(u);const f=!d;if(d||(d=mn(),e.set(u,d)),a.includes(d)||t.send(Os(d,l)),f){const g=u.cssRules;for(let p=0;p<g.length;p++)t.send(mt(d,g[p].cssText,p,t.getBaseHref()))}h.push(d)}if(Symbol.iterator in a)for(const u of a)h.includes(u)||t.send(Pi(u,l));s.set(l,h)},20);function i(o){const l=Object.getOwnPropertyDescriptor(o,"adoptedStyleSheets");l&&Object.defineProperty(o,"adoptedStyleSheets",{...l,set:function(a){const h=l.set.call(this,a);return n(this),h}})}const r=o=>{if(o.__openreplay_adpss_patched__)return;o.__openreplay_adpss_patched__=!0,i(o.Document.prototype),i(o.ShadowRoot.prototype);const{replace:l,replaceSync:a}=o.CSSStyleSheet.prototype;o.CSSStyleSheet.prototype.replace=function(h){return l.call(this,h).then(c=>{const u=e.get(this);return u&&t.send(Ns(u,h,t.getBaseHref())),c})},o.CSSStyleSheet.prototype.replaceSync=function(h){const c=e.get(this);return c&&t.send(Ns(c,h,t.getBaseHref())),a.call(this,h)}};r(window),t.observer.attachContextCallback(t.safe(r)),t.attachStopCallback(()=>{e.clear(),s.clear()}),t.attachStartCallback(()=>{n(document)}),t.nodes.attachNodeCallback(o=>{gn(o)&&n(o)})}function po(t){if(t===null)return;if(!window.CSSStyleSheet){t.send(Di("no_stylesheet_prototype_in_window",""));return}const e=t.safe((i,r,o)=>{const l=Je.get(i);l&&(typeof o=="string"?t.send(mt(l,o,r,t.getBaseHref())):t.send(_s(l,r)))}),s=t.safe(i=>{let r=i;for(;r.parentRule;)r=r.parentRule;const o=r.parentStyleSheet;if(!o){t.debug.warn("No parent StyleSheet found for",r,i);return}const l=Je.get(o);if(!l){t.debug.warn("No sheedID found for",o,Je);return}const a=r.cssText,h=o.cssRules,c=Array.from(h).indexOf(r);c>=0?(t.send(mt(l,a,c,t.getBaseHref())),t.send(_s(l,c+1))):t.debug.warn("Rule index not found in",o,r)}),n=t.safe(i=>{const{insertRule:r,deleteRule:o}=i.CSSStyleSheet.prototype,{insertRule:l,deleteRule:a}=i.CSSGroupingRule.prototype;i.CSSStyleSheet.prototype.insertRule=function(h,c=0){return e(this,c,h),r.call(this,h,c)},i.CSSStyleSheet.prototype.deleteRule=function(h){return e(this,h),o.call(this,h)},i.CSSGroupingRule.prototype.insertRule=function(h,c=0){const u=l.call(this,h,c);return s(this),u},i.CSSGroupingRule.prototype.deleteRule=function(h=0){const c=a.call(this,h);return s(this),c}});n(window),t.observer.attachContextCallback(n),t.nodes.attachNodeCallback(i=>{if(!F(i,"style")||!i.sheet||i.textContent!==null&&i.textContent.trim().length>0)return;const r=t.nodes.getID(i);if(!r)return;const o=i.sheet,l=mn();Je.set(o,l),t.send(Os(l,r));const a=o.cssRules;for(let h=0;h<a.length;h++)e(o,h,a[h].cssText)})}function go(t){function e(n){const i=t.nodes.getID(n);i!==void 0&&t.send(Cs(i))}let s=!1;t.nodes.attachNodeCallback(n=>{F(n,"body")&&(t.nodes.attachNodeListener(n,"focus",i=>{Ws(i.target)&&(e(i.target),s=!1)}),t.nodes.attachNodeListener(n,"blur",i=>{i.relatedTarget===null&&(s=!0,setTimeout(()=>{s&&t.send(Cs(-1))},0))}))}),t.attachStartCallback(()=>{let n=document.activeElement;for(;n&&F(n,"iframe")&&n.contentDocument;)n=n.contentDocument.activeElement;n&&n!==n.ownerDocument.body&&e(n)},!0)}function mo(t){if(!window.FontFace)return;const e=new Map,s=n=>{class i extends n.FontFace{constructor(...o){if(typeof o[1]=="string"){let l="";o[2]&&t.safe(()=>{l=JSON.stringify(o[2])});const a=[o[0],o[1],l],h=e.get(n.document)||[];h.push(a),e.set(n.document,h);const c=n===window?0:t.nodes.getID(n.document);if(c===void 0)return;t.active()&&t.send(Es(c,...a))}super(...o)}}n.FontFace=i};t.observer.attachContextCallback(s),s(window),t.nodes.attachNodeCallback(t.safe(n=>{if(!ze(n))return;const i=e.get(n);if(!i)return;const r=n.defaultView===window?0:t.nodes.getID(n);r!==void 0&&i.forEach(o=>{t.send(Es(r,...o))})}))}function bo(t,e,s,n,i){t.debug.log("Openreplay: attaching axios spy to instance",e);function r(d){t.debug.log("Openreplay: capturing axios response data",d);const{headers:f,data:g,method:p,url:y,baseURL:E}=d.config,{data:N,headers:T,status:m,response:w}=d,{data:k,headers:x,status:S}=w||{},b=s.ignoreHeaders,_=Array.isArray(b)?R=>b.includes(R):()=>b;function M(R,U){_(U[0])||(R[U[0]]=U[1])}let O={},D={};f.toJSON?O=f.toJSON():f instanceof Headers?f.forEach((R,U)=>M(O,[U,R])):Array.isArray(f)?f.forEach(R=>M(O,R)):typeof f=="object"&&Object.entries(f).forEach(R=>M(O,R));const v=x||T;v.toJSON?D=v.toJSON():v instanceof Headers?v.forEach((R,U)=>M(D,[U,R])):Array.isArray(v)?v.forEach(R=>M(D,R)):typeof v=="object"&&Object.entries(v).forEach(([R,U])=>{_(R)||(D[R]=U)});const I=n({url:y,method:p||"",status:m||S||0,request:{headers:O,body:g},response:{headers:D,body:k||N}});if(!I){t.debug.log("Openreplay: empty request/response info, skipping");return}const A=d.config.__openreplay_timing,L=performance.now()-A;t.debug.log("Openreplay: final req object",I),t.send(Be("xhr",String(p),String(I.url),i(I.request),i(I.response),I.status,A+pe(),L,0))}function o(d){if(t.debug.log("Openreplay: capturing API request",d),d.__openreplay_timing=performance.now(),s.sessionTokenHeader){const f=typeof s.sessionTokenHeader=="string"?s.sessionTokenHeader:"X-OpenReplay-Session-Token",g=t.getSessionToken();g&&d.headers.set(f,g)}return d}function l(d){return s.failuresOnly||r(d),d}function a(d){return t.debug.log("Openreplay: capturing API request error",d),yo(d)&&d.response?r(d.response):d instanceof Error&&t.send($e(d,[])),Promise.reject(d)}function h(d){t.debug.log("Openreplay: failed API request, skipping",d)}const c=e.interceptors.request.use(o,h,{synchronous:!0}),u=e.interceptors.response.use(l,a,{synchronous:!0});t.attachStopCallback(()=>{var d,f,g,p;(f=(d=e.interceptors.request).eject)==null||f.call(d,c),(p=(g=e.interceptors.response).eject)==null||p.call(g,u)})}function yo(t){return So(t)&&t.isAxiosError===!0}function So(t){return t!==null&&typeof t=="object"}var Y;(function(t){t[t.UNSENT=0]="UNSENT",t[t.OPENED=1]="OPENED",t[t.HEADERS_RECEIVED=2]="HEADERS_RECEIVED",t[t.LOADING=3]="LOADING",t[t.DONE=4]="DONE"})(Y||(Y={}));class Ft{constructor(e=[],s,n){this.ignoredHeaders=e,this.setSessionTokenHeader=s,this.sanitize=n,this.id="",this.name="",this.method="",this.url="",this.status=0,this.statusText="",this.cancelState=0,this.readyState=0,this.header={},this.responseType="",this.requestHeader={},this.responseSize=0,this.responseSizeText="",this.startTime=0,this.endTime=0,this.duration=0,this.getData={},this.requestData=null}getMessage(){const{reqHs:e,resHs:s}=this.writeHeaders(),n={headers:e,body:this.method==="GET"?JSON.stringify(this.getData):this.requestData},i={headers:s,body:this.response},r=this.sanitize({url:this.url,method:this.method,status:this.status,request:n,response:i});if(r)return Be(this.requestType,r.method,r.url,JSON.stringify(r.request),JSON.stringify(r.response),r.status,this.startTime+pe(),this.duration,this.responseSize)}writeHeaders(){const e={};Object.entries(this.requestHeader).forEach(([n,i])=>{this.isHeaderIgnored(n)||(e[n]=i)}),this.setSessionTokenHeader((n,i)=>{e[n]=i});const s={};return Object.entries(this.header).forEach(([n,i])=>{this.isHeaderIgnored(n)||(s[n]=i)}),{reqHs:e,resHs:s}}isHeaderIgnored(e){return Array.isArray(this.ignoredHeaders)?this.ignoredHeaders.map(s=>s.toLowerCase()).includes(e.toLowerCase()):this.ignoredHeaders}}const xe=(t,e)=>{let s="";switch(t){case"":case"text":case"json":typeof e=="string"?s=e:Ut(e)||Array.isArray(e)?s=JSON.stringify(e):typeof e<"u"&&(s=Object.prototype.toString.call(e));break;case"blob":case"document":case"arraybuffer":default:typeof e<"u"&&(s=Object.prototype.toString.call(e));break}return s},Bt=t=>{if(!t)return null;let e;if(typeof t=="string"){(t[0]==="{"||t[0]==="[")&&(e=t);const s=t.split("&");s.length===1?e=t:e=s.join(",")}else if(vo(t)){const s=[];for(const[n,i]of t)s.push(`${n}=${typeof i=="string"?i:"[object Object]"}`);e=s.join(",")}else t instanceof Blob||t instanceof ReadableStream||t instanceof ArrayBuffer?e="byte data":Ut(t)?e=t:e=`can't parse body ${typeof t}`;return e},wo=(t,e={})=>{Ut(e)||(e={});let s=t?t.split("?"):[];if(s.shift(),s.length>0){s=s.join("?").split("&");for(const n of s){const i=n.split("=");try{e[i[0]]=decodeURIComponent(i[1])}catch{e[i[0]]=i[1]}}}return e};function Ut(t){return t!==null&&typeof t=="object"}function vo(t){return t==null||ArrayBuffer.isView(t)?!1:typeof Symbol<"u"&&typeof t[Symbol.iterator]=="function"}function Ye(t){return t<=0?"":t>=1e3*1e3?(t/1e3/1e3).toFixed(1)+" MB":t>=1e3?(t/1e3).toFixed(1)+" KB":`${t}B`}const Ht=t=>(t.startsWith("//")&&(t=`${new URL(window.location.href).protocol}${t}`),t.startsWith("http")?new URL(t):new URL(t,window.location.href));class ko{constructor(e,s){this.resp=e,this.item=s,this.mockReader()}set(e,s,n){return Reflect.set(e,s,n)}get(e,s){const n=Reflect.get(e,s);switch(s){case"arrayBuffer":case"blob":case"formData":case"json":case"text":return()=>(this.item.responseType=s.toLowerCase(),n.apply(e).then(i=>(this.item.response=xe(this.item.responseType,i),i)))}return typeof n=="function"?n.bind(e):n}mockReader(){let e;if(!this.resp.body||typeof this.resp.body.getReader!="function")return;const s=this.resp.body.getReader;this.resp.body.getReader=()=>{const n=s.apply(this.resp.body);if(this.item.readyState===Y.DONE)return n;const i=n.read,r=n.cancel;return this.item.responseType="arraybuffer",n.read=()=>i.apply(n).then(o=>{if(!e)e=new Uint8Array(o.value);else{const l=new Uint8Array(e.length+o.value.length);l.set(e),l.set(o.value,e.length),e=l}return this.item.endTime=performance.now(),this.item.duration=this.item.endTime-(this.item.startTime||this.item.endTime),this.item.readyState=o.done?4:3,this.item.statusText=o.done?String(this.item.status):"Loading",this.item.responseSize=e.length,this.item.responseSizeText=Ye(this.item.responseSize),o.done&&(this.item.response=xe(this.item.responseType,e)),o}),n.cancel=(...o)=>(this.item.cancelState=2,this.item.statusText="Cancel",this.item.endTime=performance.now(),this.item.duration=this.item.endTime-(this.item.startTime||this.item.endTime),this.item.response=xe(this.item.responseType,e),r.apply(n,o)),n}}}class To{constructor(e,s,n,i,r,o){this.ignoredHeaders=e,this.setSessionTokenHeader=s,this.sanitize=n,this.sendMessage=i,this.isServiceUrl=r,this.tokenUrlMatcher=o}apply(e,s,n){const i=n[0],r=n[1];if(!i||typeof i!="string"&&!(i!=null&&i.url)||(i instanceof URL||typeof i=="string"?this.isServiceUrl(String(i)):this.isServiceUrl(String(i.url))))return e.apply(window,n);const l=new Ft(this.ignoredHeaders,this.setSessionTokenHeader,this.sanitize);return this.beforeFetch(l,i,r),this.setSessionTokenHeader((a,h)=>{if(!(this.tokenUrlMatcher!==void 0&&!this.tokenUrlMatcher(l.url))){if(n[1]===void 0&&n[0]instanceof Request)return n[0].headers.append(a,h);n[1]||(n[1]={}),n[1].headers===void 0&&(n[1]={...n[1],headers:{}}),n[1].headers instanceof Headers?n[1].headers.append(a,h):Array.isArray(n[1].headers)?n[1].headers.push([a,h]):n[1].headers[a]=h}}),e.apply(window,n).then(this.afterFetch(l)).catch(a=>{throw l.endTime=performance.now(),l.duration=l.endTime-(l.startTime||l.endTime),a})}beforeFetch(e,s,n){let i,r="GET",o={};if(typeof s=="string"?(r=(n==null?void 0:n.method)||"GET",i=Ht(s),o=(n==null?void 0:n.headers)||{}):(r=s.method||"GET",i=Ht(s.url),o=s.headers),e.method=r,e.requestType="fetch",e.requestHeader=o,e.url=i.toString(),e.name=(i.pathname.split("/").pop()||"")+i.search,e.status=0,e.statusText="Pending",e.readyState=1,e.startTime||(e.startTime=performance.now()),Object.prototype.toString.call(o)==="[object Headers]"){e.requestHeader={};for(const[l,a]of o)e.requestHeader[l]=a}else e.requestHeader=o;if(i.search&&i.searchParams){e.getData={};for(const[l,a]of i.searchParams)e.getData[l]=a}n!=null&&n.body&&(e.requestData=Bt(n.body))}afterFetch(e){return s=>{e.endTime=performance.now(),e.duration=e.endTime-(e.startTime||e.endTime),e.status=s.status,e.statusText=String(s.status);let n=!1;e.header={};for(const[i,r]of s.headers)e.header[i]=r,n=r.toLowerCase().indexOf("chunked")>-1?!0:n;return n?e.readyState=3:(e.readyState=4,this.handleResponseBody(s.clone(),e).then(i=>{e.responseSize=typeof i=="string"?i.length:i.byteLength,e.responseSizeText=Ye(e.responseSize),e.response=xe(e.responseType,i);const r=e.getMessage();r&&this.sendMessage(r)}).catch(i=>{if(i.name!=="AbortError")throw i})),new Proxy(s,new ko(s,e))}}handleResponseBody(e,s){const n=e.headers.get("content-type");return n&&n.includes("application/json")?(s.responseType="json",e.text()):n&&(n.includes("text/html")||n.includes("text/plain"))?(s.responseType="text",e.text()):(s.responseType="arraybuffer",e.arrayBuffer())}}class Io{static create(e,s,n,i,r,o){return new Proxy(fetch,new To(e,s,n,i,r,o))}}class xo{constructor(e,s,n,i,r,o,l){this.ignoredHeaders=s,this.setSessionTokenHeader=n,this.sanitize=i,this.sendMessage=r,this.isServiceUrl=o,this.tokenUrlMatcher=l,this.XMLReq=e,this.XMLReq.onreadystatechange=()=>{this.onReadyStateChange()},this.XMLReq.onabort=()=>{this.onAbort()},this.XMLReq.ontimeout=()=>{this.onTimeout()},this.item=new Ft(s,n,i),this.item.requestType="xhr"}get(e,s){switch(s){case"open":return this.getOpen(e);case"send":return this.setSessionTokenHeader((i,r)=>{this.tokenUrlMatcher!==void 0&&!this.tokenUrlMatcher(this.item.url)||e.setRequestHeader(i,r)}),this.getSend(e);case"setRequestHeader":return this.getSetRequestHeader(e);default:const n=Reflect.get(e,s);return typeof n=="function"?n.bind(e):n}}set(e,s,n){switch(s){case"onreadystatechange":return this.setOnReadyStateChange(e,s,n);case"onabort":return this.setOnAbort(e,s,n);case"ontimeout":return this.setOnTimeout(e,s,n)}return Reflect.set(e,s,n)}onReadyStateChange(){if(!(this.item.url&&this.isServiceUrl(this.item.url))&&(this.item.readyState=this.XMLReq.readyState,this.item.responseType=this.XMLReq.responseType,this.item.endTime=performance.now(),this.item.duration=this.item.endTime-this.item.startTime,this.updateItemByReadyState(),setTimeout(()=>{this.item.response=xe(this.item.responseType,this.item.response)},0),this.XMLReq.readyState===Y.DONE)){const e=this.item.getMessage();e&&this.sendMessage(e)}}onAbort(){this.item.cancelState=1,this.item.statusText="Abort";const e=this.item.getMessage();e&&this.sendMessage(e)}onTimeout(){this.item.cancelState=3,this.item.statusText="Timeout";const e=this.item.getMessage();e&&this.sendMessage(e)}getOpen(e){const s=Reflect.get(e,"open");return(...n)=>{var o,l;const i=n[0],r=n[1];return this.item.method=i?i.toUpperCase():"GET",this.item.url=((o=r.toString)==null?void 0:o.call(r))||"",this.item.name=((l=this.item.url)==null?void 0:l.replace(new RegExp("/*$"),"").split("/").pop())??"",this.item.getData=wo(this.item.url,{}),s.apply(e,n)}}getSend(e){const s=Reflect.get(e,"send");return(...n)=>{const i=n[0];return this.item.requestData=Bt(i),s.apply(e,n)}}getSetRequestHeader(e){const s=Reflect.get(e,"setRequestHeader");return(...n)=>(this.item.requestHeader||(this.item.requestHeader={}),this.item.requestHeader[n[0]]=n[1],s.apply(e,n))}setOnReadyStateChange(e,s,n){return Reflect.set(e,s,(...i)=>{this.onReadyStateChange(),n==null||n.apply(e,i)})}setOnAbort(e,s,n){return Reflect.set(e,s,(...i)=>{this.onAbort(),n.apply(e,i)})}setOnTimeout(e,s,n){return Reflect.set(e,s,(...i)=>{this.onTimeout(),n.apply(e,i)})}updateItemByReadyState(){switch(this.XMLReq.readyState){case Y.UNSENT:case Y.OPENED:this.item.status=Y.UNSENT,this.item.statusText="Pending",this.item.startTime||(this.item.startTime=performance.now());break;case Y.HEADERS_RECEIVED:this.item.status=this.XMLReq.status,this.item.statusText="Loading",this.item.header={};const e=this.XMLReq.getAllResponseHeaders()||"",s=e.split(`
300
300
  `);for(let n=0;n<s.length;n++){const i=s[n];if(!i)continue;const r=i.split(": "),o=r[0];this.item.header[o]=r.slice(1).join(": ")}break;case Y.LOADING:this.item.status=this.XMLReq.status,this.item.statusText="Loading",this.XMLReq.response&&this.XMLReq.response.length&&(this.item.responseSize=this.XMLReq.response.length,this.item.responseSizeText=Ye(this.item.responseSize));break;case Y.DONE:this.item.status=this.XMLReq.status||this.item.status||0,this.item.statusText=String(this.item.status),this.item.endTime=performance.now(),this.item.duration=this.item.endTime-(this.item.startTime||this.item.endTime),this.item.response=this.XMLReq.response,this.XMLReq.response&&this.XMLReq.response.length&&(this.item.responseSize=this.XMLReq.response.length,this.item.responseSizeText=Ye(this.item.responseSize));break;default:this.item.status=this.XMLReq.status,this.item.statusText="Unknown";break}}}class Eo{static create(e,s,n,i,r,o){return new Proxy(XMLHttpRequest,{construct(l){const a=new l;return new Proxy(a,new xo(a,e,s,n,i,r,o))}})}}const Co=t=>t instanceof Blob?t.type:t instanceof FormData?"multipart/form-data":t instanceof URLSearchParams?"application/x-www-form-urlencoded;charset=UTF-8":"text/plain;charset=UTF-8";class No{constructor(e,s,n,i,r){this.ignoredHeaders=e,this.setSessionTokenHeader=s,this.sanitize=n,this.sendMessage=i,this.isServiceUrl=r}apply(e,s,n){const i=n[0],r=n[1],o=new Ft(this.ignoredHeaders,this.setSessionTokenHeader,this.sanitize);if(this.isServiceUrl(i))return e.apply(s,n);const l=Ht(i);if(o.method="POST",o.url=i,o.name=(l.pathname.split("/").pop()||"")+l.search,o.requestType="beacon",o.requestHeader={"Content-Type":Co(r)},o.status=0,o.statusText="Pending",l.search&&l.searchParams){o.getData={};for(const[c,u]of l.searchParams)o.getData[c]=u}o.requestData=Bt(r),o.startTime||(o.startTime=performance.now());const a=e.apply(s,n);a?(o.endTime=performance.now(),o.duration=o.endTime-(o.startTime||o.endTime),o.status=0,o.statusText="Sent",o.readyState=4):(o.status=500,o.statusText="Unknown");const h=o.getMessage();return h&&this.sendMessage(h),a}}class ye{static hasSendBeacon(){return!!ye.origSendBeacon}static create(e,s,n,i,r){if(ye.hasSendBeacon())return new Proxy(ye.origSendBeacon,new No(e,s,n,i,r))}}ye.origSendBeacon=(vn=window==null?void 0:window.navigator)==null?void 0:vn.sendBeacon;const bn=t=>console.warn(`Openreplay: Can't find ${t} in global context.
301
- If you're using serverside rendering in your app, make sure that tracker is loaded dynamically, otherwise ${t} won't be tracked.`);function _o(t,e,s,n,i,r,o){var l;t.XMLHttpRequest?t.XMLHttpRequest=Eo.create(e,s,n,i,r,o):bn("XMLHttpRequest"),t.fetch?t.fetch=Io.create(e,s,n,i,r,o):bn("fetch"),(l=t==null?void 0:t.navigator)!=null&&l.sendBeacon&&(t.navigator.sendBeacon=ye.create(e,s,n,i,r))}function jt(t){return t.__or_req_data__||(t.__or_req_data__={body:void 0,headers:{}}),t.__or_req_data__}function yn(t){return typeof t=="string"?t.toUpperCase():"GET"}function Oo(t,e={}){const s=Object.assign({failuresOnly:!1,ignoreHeaders:["cookie","set-cookie","authorization"],capturePayload:!1,sessionTokenHeader:!1,captureInIframes:!0,axiosInstances:void 0,useProxy:!0},e);s.useProxy===!1&&t.debug.warn("Network module is migrating to proxy api, to gradually migrate and test it set useProxy to true");const n=s.ignoreHeaders,i=Array.isArray(n)?c=>n.includes(c):()=>n,r=s.sessionTokenHeader===!0?"X-OpenReplay-SessionToken":s.sessionTokenHeader;function o(c){if(r){const u=t.getSessionToken();u&&t.safe(c)(r,u)}}function l(c){if(s.capturePayload||(delete c.request.body,delete c.response.body),s.sanitizer){const u=c.response.body;if(typeof u=="string")try{c.response.body=JSON.parse(u)}catch{}return s.sanitizer(c)}return c}function a(c){if(c&&typeof c.body!="string")try{c.body=JSON.stringify(c.body)}catch{c.body="<unable to stringify>",t.notify.warn("Openreplay fetch couldn't stringify body:",c.body)}return JSON.stringify(c)}const h=c=>{if(s.useProxy)return _o(c,s.ignoreHeaders,o,l,T=>t.send(T),T=>t.isServiceURL(T),s.tokenUrlMatcher);const u=c.fetch.bind(c),d=(T,m={})=>{if(!(typeof T=="string"||T instanceof URL)||t.isServiceURL(String(T)))return u(T,m);o(function(k,x){m.headers===void 0&&(m.headers={}),m.headers instanceof Headers?m.headers.append(k,x):Array.isArray(m.headers)?m.headers.push([k,x]):m.headers[k]=x});const w=performance.now();return u(T,m).then(k=>{const x=performance.now()-w;if(s.failuresOnly&&k.status<400)return k;const S=k.clone();return S.text().then(b=>{const _={},M={};if(n!==!0){const v=([I,A])=>{i(I)||(_[I]=A)};m.headers instanceof Headers?m.headers.forEach((I,A)=>v([A,I])):Array.isArray(m.headers)?m.headers.forEach(v):typeof m.headers=="object"&&Object.entries(m.headers).forEach(v),S.headers.forEach((I,A)=>{i(A)||(M[A]=I)})}const O=yn(m.method),D=l({url:String(T),method:O,status:S.status,request:{headers:_,body:m.body||null},response:{headers:M,body:b}});D&&t.send(Be("fetch",O,String(D.url),a(D.request),a(D.response),S.status,w+pe(),x,0))}).catch(b=>t.debug.error("Could not process Fetch response:",b)),k})};c.fetch=d;const f=c.XMLHttpRequest.prototype.open,g=c.XMLHttpRequest.prototype.setRequestHeader,p=c.XMLHttpRequest.prototype.send;function y(T,m){const w=this;o((x,S)=>w.setRequestHeader(x,S));let k=0;return w.addEventListener("loadstart",x=>{k=x.timeStamp}),w.addEventListener("load",t.safe(x=>{const{headers:S,body:b}=jt(w),_=k>0?x.timeStamp-k:0,O=(w.getAllResponseHeaders()||"").trim().split(/[\r\n]+/),D={};O.forEach(function(A){const L=A.split(": "),R=L.shift();i(R)||(D[R]=L.join(": "))});const v=yn(T),I=l({url:String(m),method:v,status:w.status,request:{headers:S,body:b||null},response:{headers:D,body:w.response}});I&&t.send(Be("xhr",v,String(I.url),a(I.request),a(I.response),w.status,k+pe(),_,0))})),f.apply(this,arguments)}function E(T){const m=jt(this);return m.body=T,p.apply(this,arguments)}function N(T,m){if(!i(T)){const w=jt(this);w.headers[T]=m}return g.apply(this,arguments)}s.axiosInstances||(c.XMLHttpRequest.prototype.open=y,c.XMLHttpRequest.prototype.send=E,c.XMLHttpRequest.prototype.setRequestHeader=N)};h(window),s.axiosInstances&&s.axiosInstances.forEach(c=>{bo(t,c,s,l,a)}),s.captureInIframes&&t.observer.attachContextCallback(t.safe(h))}function Ro(t){t.attachEventListener(document,"selectionchange",()=>{const e=document.getSelection();if(e!==null&&!e.isCollapsed){const s=t.nodes.getID(e.anchorNode),n=t.nodes.getID(e.focusNode),i=e.toString().replace(/\s+/g," ");s&&n&&t.send(Rs(s,n,i))}else t.send(Rs(-1,-1,""))})}function Do(t){function e(){document.hidden||(t.debug.log("Openreplay: tab change to"+t.session.getTabId()),t.send(Ue(t.session.getTabId())))}t.attachEventListener(window,"focus",e,!1,!1)}const Qe="/installation/javascript-sdk";function Mo(t){if(t==null)return console.error(`OpenReplay: invalid options argument type. Please, check documentation on ${Fe}${Qe}`),!1;if(typeof t.projectKey!="string")if(typeof t.projectKey!="number"){if(typeof t.projectID!="number")return console.error(`OpenReplay: projectKey is missing or wrong type (string is expected). Please, check ${Fe}${Qe} for more information.`),!1;t.projectKey=t.projectID.toString(),ie("`projectID` option","`projectKey` option",Qe)}else console.warn("OpenReplay: projectKey is expected to have a string type."),t.projectKey=t.projectKey.toString();return t.sessionToken!=null&&ie("`sessionToken` option","`sessionHash` start() option","/"),!0}class Ao{constructor(e){var l;if(this.options=e,this.app=null,this.crossdomainMode=!1,this.checkDoNotTrack=()=>this.options.respectDoNotTrack&&(navigator.doNotTrack=="1"||window.doNotTrack=="1"),this.signalStartIssue=(a,h)=>{const c=this.checkDoNotTrack(),u=new XMLHttpRequest,d=this.options.ingestPoint||Xs;u.open("POST",d+"/v1/web/not-started"),u.send(JSON.stringify({trackerVersion:"14.0.4",projectKey:this.options.projectKey,doNotTrack:c,reason:h.length?`missing api: ${h.join(",")}`:a}))},this.restartCanvasTracking=()=>{this.app!==null&&this.app.restartCanvasTracking()},this.handleError=(a,h={})=>{if(this.app!==null){if(a instanceof Error){const c=$e(a,[],h);this.app.send(c)}else if(a instanceof ErrorEvent||"PromiseRejectionEvent"in window&&a instanceof PromiseRejectionEvent){const c=tn(a,void 0,h);c!=null&&this.app.send(c)}}},this.crossdomainMode=!!(oi()&&((l=e.crossdomain)!=null&&l.enabled)),!K||!Mo(e))return;if(window.__OPENREPLAY__){console.error("OpenReplay: one tracker instance has been initialised already");return}if(!e.__DISABLE_SECURE_MODE&&location.protocol!=="https:"){console.error("OpenReplay: Your website must be publicly accessible and running on SSL in order for OpenReplay to properly capture and replay the user session. You can disable this check by setting `__DISABLE_SECURE_MODE` option to `true` if you are testing in localhost. Keep in mind, that asset files on a local machine are not available to the outside world. This might affect tracking if you use css files.");return}const s=this.checkDoNotTrack(),n=[],i=["Map","Set","MutationObserver","performance","timing","startsWith","Blob","Worker"];if(s)n.push("doNotTrack");else for(const a of i)if(a==="timing"){if("performance"in window&&!(a in performance)){n.push(a);break}}else if(a==="startsWith"){if(!(a in String.prototype)){n.push(a);break}}else if(!(a in window)){n.push(a);break}if(n.length>0){const a=n.join(",");console.error(`OpenReplay: browser doesn't support API required for tracking or doNotTrack is set to 1. Reason: ${a}`),this.signalStartIssue("missing_api",n);return}const r=new _r(e.projectKey,e.sessionToken,e,this.signalStartIssue,this.crossdomainMode);this.app=r,this.crossdomainMode||(ho(r),Or(r),Wi(r,e),Do(r)),ro(r,e.mouse),lo(r,this.crossdomainMode),po(r),fo(r),Ar(r,e),Ur(r,e),zr(r),Xr(r,e),co(r,e),go(r),mo(r),Oo(r,e.network),Ro(r),window.__OPENREPLAY__=this,e.flags&&e.flags.onFlagsLoad&&this.onFlagsLoad(e.flags.onFlagsLoad);const o=window.open;(e.autoResetOnWindowOpen||e.resetTabOnWindowOpen)&&(r.attachStartCallback(()=>{const a=r.getTabId(),h=r.sessionStorage??window.sessionStorage;window.open=function(...c){return e.autoResetOnWindowOpen&&r.resetNextPageSession(!0),e.resetTabOnWindowOpen&&h.removeItem(e.session_tabid_key||"__openreplay_tabid"),r.resetNextPageSession(!1),h.setItem(e.session_tabid_key||"__openreplay_tabid",a),o.call(window,...c)}}),r.attachStopCallback(()=>{window.open=o}))}isFlagEnabled(e){return this.featureFlags.isFlagEnabled(e)}onFlagsLoad(e){var s;(s=this.app)==null||s.featureFlags.onFlagsLoad(e)}clearPersistFlags(){var e;(e=this.app)==null||e.featureFlags.clearPersistFlags()}reloadFlags(){var e;return(e=this.app)==null?void 0:e.featureFlags.reloadFlags()}getFeatureFlag(e){var s;return(s=this.app)==null?void 0:s.featureFlags.getFeatureFlag(e)}getAllFeatureFlags(){var e;return(e=this.app)==null?void 0:e.featureFlags.flags}use(e){return e(this.app,this.options)}isActive(){return this.app===null?!1:this.app.active()}trackWs(e){if(this.app!==null)return this.app.trackWs(e)}start(e){return this.browserEnvCheck()?this.app===null?Promise.reject("Browser doesn't support required api, or doNotTrack is active."):this.app.start(e):Promise.reject("Trying to start not in browser.")}browserEnvCheck(){return K?!0:(console.error(`OpenReplay: you are trying to start Tracker on a node.js environment. If you want to use OpenReplay with SSR, please, use componentDidMount or useEffect API for placing the \`tracker.start()\` line. Check documentation on ${Fe}${Qe}`),!1)}coldStart(e,s){if(this.browserEnvCheck()){if(this.app===null)return Promise.reject("Tracker not initialized");this.app.coldStart(e,s)}else return Promise.reject("Trying to start not in browser.")}startOfflineRecording(e,s){return this.browserEnvCheck()?this.app===null?Promise.reject("Tracker not initialized"):this.app.offlineRecording(e,s):Promise.reject("Trying to start not in browser.")}uploadOfflineRecording(){if(this.app!==null)return this.app.uploadOfflineRecording()}stop(){if(this.app!==null)return this.app.stop(),this.app.session.getSessionHash()}forceFlushBatch(){this.app!==null&&this.app.forceFlushBatch()}getSessionToken(){return this.app===null?null:this.app.getSessionToken()}getSessionInfo(){return this.app===null?null:this.app.session.getInfo()}getSessionID(){return this.app===null?null:this.app.getSessionID()}getTabId(){return this.app===null?null:this.app.getTabId()}getUxId(){return this.app===null?null:this.app.getUxtId()}sessionID(){return ie("'sessionID' method","'getSessionID' method","/"),this.getSessionID()}getSessionURL(e){if(this.app!==null)return this.app.getSessionURL(e)}setUserID(e){typeof e=="string"&&this.app!==null&&this.app.session.setUserID(e)}userID(e){ie("'userID' method","'setUserID' method","/"),this.setUserID(e)}setUserAnonymousID(e){typeof e=="string"&&this.app!==null&&this.app.send(Ci(e))}userAnonymousID(e){ie("'userAnonymousID' method","'setUserAnonymousID' method","/"),this.setUserAnonymousID(e)}setMetadata(e,s){typeof e=="string"&&typeof s=="string"&&this.app!==null&&this.app.session.setMetadata(e,s)}metadata(e,s){ie("'metadata' method","'setMetadata' method","/"),this.setMetadata(e,s)}event(e,s=null,n=!1){if(typeof e=="string"&&this.app!==null){if(n)return this.issue(e,s);try{s=JSON.stringify(s)}catch{return}this.app.send(xi(e,s))}}issue(e,s=null){if(typeof e=="string"&&this.app!==null){try{s=JSON.stringify(s)}catch{return}this.app.send(Mi(e,s))}}}const Po=["climats","telckel","biobio","weinpoint","vinigrandi"],Lo="OuhXJRleF6sROjsQZPWx1yqjrL6APeJxmHswqyOBWbgIqtXcht3MDadvI9DtOOoL";class zt{constructor(e){var s;this.baseURL="https://api.wineater.com/",this.store=Po.find(n=>window.location.href.includes(n)),this.token=((s=window==null?void 0:window.wineaterData)==null?void 0:s.CLIENT_TOKEN)||Lo}async getStoreConfig(e){console.log(e);try{const s=await fetch(`${this.baseURL}stores/store`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.token}`},body:JSON.stringify({store:e})});if(!s.ok)throw new Error(`HTTP error! Status: ${s.status}`);return await s.json()}catch(s){throw console.error("Error fetching store configuration:",s),s}}async getWineRecommendations(e){console.log(window.location.href);try{const s=await fetch(`${this.baseURL}dish/recommendations`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.token}`},body:JSON.stringify({text:e,store:this.store?this.store.toString().charAt(0).toUpperCase()+this.store.slice(1):void 0})}),n=await s.json();if(!s.ok)throw new Error(`API call failed with status ${s.status}: ${n.message||"No additional error information"}`);return n}catch(s){throw console.error("Fetching wine recommendations failed:",s.message),new Error(`Error in getWineRecommendations: ${s.message}`)}}async getPossibleDishesWithMeta(e,s){try{const n=await fetch(`${this.baseURL}dish/possible_dishes`,{method:"POST",headers:{Authorization:`Bearer ${this.token}`,"Content-Type":"application/json"},body:JSON.stringify({title:e,description:s})}),i=await n.json();if(console.log(i),!n.ok)throw new Error(`API call failed with status ${n.status}: ${i.message||"No additional error information"}`);return i}catch(n){throw console.error("Error fetching possible dishes:",n),n}}}class Fo{constructor(){this.api=new zt,this.language="en",this.translations={fr:{welcomeMessage:"Sublimez votre expérience gastronomique. Il vous suffit de donner les détails de votre plat, et obtenez la recommandation de compagnon de vin idéale. Que voulez-vous manger?",noResultsFound:"Aucun résultat trouvé.",somethingWentWrong:"Désolé, quelque chose a mal tourné.",chatButton:"Accorder le vin au dîner",inputPlaceholder:"ex., Salade de thon",sendButton:"Accorder",price:"Prix",region:"Région",type:"Type",reason:"Suggestion",moreInfo:"Plus d'infos",winePairingIntro:"Pour ce vin, voici quelques suggestions de plats :",askForDinner:"Que voulez-vous manger ce soir?",clearChatButton:"Effacer le chat"},es:{welcomeMessage:"Mejore su experiencia gastronómica. Solo proporcione los detalles de su plato y obtenga la recomendación de vino ideal. ¿Qué le gustaría comer?",noResultsFound:"No se encontraron resultados.",somethingWentWrong:"Lo sentimos, algo salió mal.",chatButton:"Maridaje ideal",inputPlaceholder:"ej., Ensalada de atún",sendButton:"Maridar",price:"Precio",region:"Región",type:"Tipo",reason:"Sugerencia",moreInfo:"Más info",winePairingIntro:"Para este vino, aquí tienes algunas sugerencias de platos:",askForDinner:"¿Qué te gustaría cenar?",clearChatButton:"Limpiar el chat"},en:{welcomeMessage:"Enhance your dining experience. Just provide your dish details and get the ideal wine pairing. What would you like to eat?",noResultsFound:"No results found.",somethingWentWrong:"Sorry, something went wrong.",chatButton:"Pair wine with dinner",inputPlaceholder:"e.g., Tuna Salad",sendButton:"Pair",price:"Price",region:"Region",type:"Type",reason:"Suggestion",moreInfo:"More info",winePairingIntro:"For this wine, here are some suggested dishes:",askForDinner:"What would you like to have for dinner?",clearChatButton:"Clear Chat"},de:{welcomeMessage:"Verbessern Sie Ihr kulinarisches Erlebnis. Geben Sie einfach die Details Ihres Gerichts an und erhalten Sie die ideale Weinempfehlung. Was möchten Sie essen?",noResultsFound:"Keine Ergebnisse gefunden.",somethingWentWrong:"Entschuldigung, etwas ist schief gelaufen.",chatButton:"Wein zum Abendessen",inputPlaceholder:"z.B., Thunfischsalat",sendButton:"Kombinieren",price:"Preis",region:"Region",type:"Typ",reason:"Anregung",moreInfo:"Mehr Info",winePairingIntro:"Für diesen Wein gibt es folgende Essensvorschläge:",askForDinner:"Was möchten Sie zum Abendessen essen?",clearChatButton:"Chat löschen"}}}async fetchConfig(e="Demo"){try{const s=await this.api.getStoreConfig(e);this.language=s.lang}catch{this.language="en"}}translate(e){return this.translations[this.language][e]||e}}const V=new Fo,Bo=3;let Ze=null;function Wt(){const t=document.getElementById("chat-window"),e=document.getElementById("chat-icon");t.classList.contains("visible")?(Yt(),qt(),e.style.display="flex"):(Ze&&(clearTimeout(Ze),Ze=null),Jt(),t.classList.add("visible"),e.style.display="none")}function qt(){console.log("ghbdtn"),Yt(),document.getElementById("chat-window").classList.remove("visible");let e=parseInt(j("chatCloseCount"))||0;e+=1,e>=Bo?(console.log(e),Ce("disableAutoOpen","true",1),Dn("chatCloseCount")):(console.log(e),Ce("chatCloseCount",e,1))}function Uo(t){const e=document.getElementById("chat-window"),s=document.getElementById("message-container"),n=document.querySelector("#input-container input");s.innerHTML="",e.classList.add("visible");const i=document.createElement("div");i.className="message api",i.textContent=V.translate("winePairingIntro"),s.appendChild(i),t.slice(0,3).forEach(o=>{const l=document.createElement("div");l.className="message dish-message",l.textContent=o,l.addEventListener("click",()=>{n.value=o}),s.appendChild(l)});const r=document.createElement("div");r.className="message api",r.textContent=V.translate("askForDinner"),s.appendChild(r),s.scrollTop=s.scrollHeight}function Sn(t=null){t?An(t):Jt(),document.getElementById("chat-window").classList.add("visible")}document.addEventListener("DOMContentLoaded",()=>{setupCloseButton(),setupOutsideClick()});function Ho(t){Ze=t}class jo{constructor(){var s;this.api=new zt;const e=((s=window==null?void 0:window.wineaterData)==null?void 0:s.FIRST_MESSAGE_TEXT)||V.translate("welcomeMessage");this.displayFirstMessage(e)}initialize(){document.getElementById("send-button").addEventListener("click",()=>this.handleUserInput()),document.getElementById("user-input").addEventListener("keypress",n=>{n.key==="Enter"&&this.handleUserInput()})}displayFirstMessage(e,s="api"){const n=document.getElementById("message-container"),i=document.createElement("div");i.className=`message ${s}`,i.textContent=e,n.appendChild(i),n.scrollTop=n.scrollHeight}async handleUserInput(){const e=document.getElementById("user-input"),s=e.value.trim();if(s){this.displayMessage(s,"user"),e.value="",this.showTypingIndicator();try{Pn(s);const n=await this.api.getWineRecommendations(s);this.hideTypingIndicator(),n&&n.length?this.displayResults(n):this.displayMessage("No results found.","api")}catch{this.hideTypingIndicator(),this.displayMessage(V.translate("somethingWentWrong"),"api")}}}showTypingIndicator(){document.getElementById("typing-indicator").classList.add("visible")}hideTypingIndicator(){document.getElementById("typing-indicator").classList.remove("visible")}displayMessage(e,s){const n=document.getElementById("message-container"),i=document.createElement("div");i.textContent=e,i.className="message "+s,n.appendChild(i),n.scrollTop=n.scrollHeight}sendAnalytics(e){console.log(e),Fn(e)}displayResults(e){const s=document.getElementById("message-container");Ln(e.map(n=>n.Title)),e.forEach(n=>{const i=document.createElement("div");i.className="wine-item";const r=document.createElement("img");r.src=n.Image,i.appendChild(r);const o=document.createElement("div");o.innerHTML=`
301
+ If you're using serverside rendering in your app, make sure that tracker is loaded dynamically, otherwise ${t} won't be tracked.`);function _o(t,e,s,n,i,r,o){var l;t.XMLHttpRequest?t.XMLHttpRequest=Eo.create(e,s,n,i,r,o):bn("XMLHttpRequest"),t.fetch?t.fetch=Io.create(e,s,n,i,r,o):bn("fetch"),(l=t==null?void 0:t.navigator)!=null&&l.sendBeacon&&(t.navigator.sendBeacon=ye.create(e,s,n,i,r))}function jt(t){return t.__or_req_data__||(t.__or_req_data__={body:void 0,headers:{}}),t.__or_req_data__}function yn(t){return typeof t=="string"?t.toUpperCase():"GET"}function Oo(t,e={}){const s=Object.assign({failuresOnly:!1,ignoreHeaders:["cookie","set-cookie","authorization"],capturePayload:!1,sessionTokenHeader:!1,captureInIframes:!0,axiosInstances:void 0,useProxy:!0},e);s.useProxy===!1&&t.debug.warn("Network module is migrating to proxy api, to gradually migrate and test it set useProxy to true");const n=s.ignoreHeaders,i=Array.isArray(n)?c=>n.includes(c):()=>n,r=s.sessionTokenHeader===!0?"X-OpenReplay-SessionToken":s.sessionTokenHeader;function o(c){if(r){const u=t.getSessionToken();u&&t.safe(c)(r,u)}}function l(c){if(s.capturePayload||(delete c.request.body,delete c.response.body),s.sanitizer){const u=c.response.body;if(typeof u=="string")try{c.response.body=JSON.parse(u)}catch{}return s.sanitizer(c)}return c}function a(c){if(c&&typeof c.body!="string")try{c.body=JSON.stringify(c.body)}catch{c.body="<unable to stringify>",t.notify.warn("Openreplay fetch couldn't stringify body:",c.body)}return JSON.stringify(c)}const h=c=>{if(s.useProxy)return _o(c,s.ignoreHeaders,o,l,T=>t.send(T),T=>t.isServiceURL(T),s.tokenUrlMatcher);const u=c.fetch.bind(c),d=(T,m={})=>{if(!(typeof T=="string"||T instanceof URL)||t.isServiceURL(String(T)))return u(T,m);o(function(k,x){m.headers===void 0&&(m.headers={}),m.headers instanceof Headers?m.headers.append(k,x):Array.isArray(m.headers)?m.headers.push([k,x]):m.headers[k]=x});const w=performance.now();return u(T,m).then(k=>{const x=performance.now()-w;if(s.failuresOnly&&k.status<400)return k;const S=k.clone();return S.text().then(b=>{const _={},M={};if(n!==!0){const v=([I,A])=>{i(I)||(_[I]=A)};m.headers instanceof Headers?m.headers.forEach((I,A)=>v([A,I])):Array.isArray(m.headers)?m.headers.forEach(v):typeof m.headers=="object"&&Object.entries(m.headers).forEach(v),S.headers.forEach((I,A)=>{i(A)||(M[A]=I)})}const O=yn(m.method),D=l({url:String(T),method:O,status:S.status,request:{headers:_,body:m.body||null},response:{headers:M,body:b}});D&&t.send(Be("fetch",O,String(D.url),a(D.request),a(D.response),S.status,w+pe(),x,0))}).catch(b=>t.debug.error("Could not process Fetch response:",b)),k})};c.fetch=d;const f=c.XMLHttpRequest.prototype.open,g=c.XMLHttpRequest.prototype.setRequestHeader,p=c.XMLHttpRequest.prototype.send;function y(T,m){const w=this;o((x,S)=>w.setRequestHeader(x,S));let k=0;return w.addEventListener("loadstart",x=>{k=x.timeStamp}),w.addEventListener("load",t.safe(x=>{const{headers:S,body:b}=jt(w),_=k>0?x.timeStamp-k:0,O=(w.getAllResponseHeaders()||"").trim().split(/[\r\n]+/),D={};O.forEach(function(A){const L=A.split(": "),R=L.shift();i(R)||(D[R]=L.join(": "))});const v=yn(T),I=l({url:String(m),method:v,status:w.status,request:{headers:S,body:b||null},response:{headers:D,body:w.response}});I&&t.send(Be("xhr",v,String(I.url),a(I.request),a(I.response),w.status,k+pe(),_,0))})),f.apply(this,arguments)}function E(T){const m=jt(this);return m.body=T,p.apply(this,arguments)}function N(T,m){if(!i(T)){const w=jt(this);w.headers[T]=m}return g.apply(this,arguments)}s.axiosInstances||(c.XMLHttpRequest.prototype.open=y,c.XMLHttpRequest.prototype.send=E,c.XMLHttpRequest.prototype.setRequestHeader=N)};h(window),s.axiosInstances&&s.axiosInstances.forEach(c=>{bo(t,c,s,l,a)}),s.captureInIframes&&t.observer.attachContextCallback(t.safe(h))}function Ro(t){t.attachEventListener(document,"selectionchange",()=>{const e=document.getSelection();if(e!==null&&!e.isCollapsed){const s=t.nodes.getID(e.anchorNode),n=t.nodes.getID(e.focusNode),i=e.toString().replace(/\s+/g," ");s&&n&&t.send(Rs(s,n,i))}else t.send(Rs(-1,-1,""))})}function Do(t){function e(){document.hidden||(t.debug.log("Openreplay: tab change to"+t.session.getTabId()),t.send(Ue(t.session.getTabId())))}t.attachEventListener(window,"focus",e,!1,!1)}const Qe="/installation/javascript-sdk";function Mo(t){if(t==null)return console.error(`OpenReplay: invalid options argument type. Please, check documentation on ${Fe}${Qe}`),!1;if(typeof t.projectKey!="string")if(typeof t.projectKey!="number"){if(typeof t.projectID!="number")return console.error(`OpenReplay: projectKey is missing or wrong type (string is expected). Please, check ${Fe}${Qe} for more information.`),!1;t.projectKey=t.projectID.toString(),ie("`projectID` option","`projectKey` option",Qe)}else console.warn("OpenReplay: projectKey is expected to have a string type."),t.projectKey=t.projectKey.toString();return t.sessionToken!=null&&ie("`sessionToken` option","`sessionHash` start() option","/"),!0}class Ao{constructor(e){var l;if(this.options=e,this.app=null,this.crossdomainMode=!1,this.checkDoNotTrack=()=>this.options.respectDoNotTrack&&(navigator.doNotTrack=="1"||window.doNotTrack=="1"),this.signalStartIssue=(a,h)=>{const c=this.checkDoNotTrack(),u=new XMLHttpRequest,d=this.options.ingestPoint||Xs;u.open("POST",d+"/v1/web/not-started"),u.send(JSON.stringify({trackerVersion:"14.0.4",projectKey:this.options.projectKey,doNotTrack:c,reason:h.length?`missing api: ${h.join(",")}`:a}))},this.restartCanvasTracking=()=>{this.app!==null&&this.app.restartCanvasTracking()},this.handleError=(a,h={})=>{if(this.app!==null){if(a instanceof Error){const c=$e(a,[],h);this.app.send(c)}else if(a instanceof ErrorEvent||"PromiseRejectionEvent"in window&&a instanceof PromiseRejectionEvent){const c=tn(a,void 0,h);c!=null&&this.app.send(c)}}},this.crossdomainMode=!!(oi()&&((l=e.crossdomain)!=null&&l.enabled)),!K||!Mo(e))return;if(window.__OPENREPLAY__){console.error("OpenReplay: one tracker instance has been initialised already");return}if(!e.__DISABLE_SECURE_MODE&&location.protocol!=="https:"){console.error("OpenReplay: Your website must be publicly accessible and running on SSL in order for OpenReplay to properly capture and replay the user session. You can disable this check by setting `__DISABLE_SECURE_MODE` option to `true` if you are testing in localhost. Keep in mind, that asset files on a local machine are not available to the outside world. This might affect tracking if you use css files.");return}const s=this.checkDoNotTrack(),n=[],i=["Map","Set","MutationObserver","performance","timing","startsWith","Blob","Worker"];if(s)n.push("doNotTrack");else for(const a of i)if(a==="timing"){if("performance"in window&&!(a in performance)){n.push(a);break}}else if(a==="startsWith"){if(!(a in String.prototype)){n.push(a);break}}else if(!(a in window)){n.push(a);break}if(n.length>0){const a=n.join(",");console.error(`OpenReplay: browser doesn't support API required for tracking or doNotTrack is set to 1. Reason: ${a}`),this.signalStartIssue("missing_api",n);return}const r=new _r(e.projectKey,e.sessionToken,e,this.signalStartIssue,this.crossdomainMode);this.app=r,this.crossdomainMode||(ho(r),Or(r),Wi(r,e),Do(r)),ro(r,e.mouse),lo(r,this.crossdomainMode),po(r),fo(r),Ar(r,e),Ur(r,e),zr(r),Xr(r,e),co(r,e),go(r),mo(r),Oo(r,e.network),Ro(r),window.__OPENREPLAY__=this,e.flags&&e.flags.onFlagsLoad&&this.onFlagsLoad(e.flags.onFlagsLoad);const o=window.open;(e.autoResetOnWindowOpen||e.resetTabOnWindowOpen)&&(r.attachStartCallback(()=>{const a=r.getTabId(),h=r.sessionStorage??window.sessionStorage;window.open=function(...c){return e.autoResetOnWindowOpen&&r.resetNextPageSession(!0),e.resetTabOnWindowOpen&&h.removeItem(e.session_tabid_key||"__openreplay_tabid"),r.resetNextPageSession(!1),h.setItem(e.session_tabid_key||"__openreplay_tabid",a),o.call(window,...c)}}),r.attachStopCallback(()=>{window.open=o}))}isFlagEnabled(e){return this.featureFlags.isFlagEnabled(e)}onFlagsLoad(e){var s;(s=this.app)==null||s.featureFlags.onFlagsLoad(e)}clearPersistFlags(){var e;(e=this.app)==null||e.featureFlags.clearPersistFlags()}reloadFlags(){var e;return(e=this.app)==null?void 0:e.featureFlags.reloadFlags()}getFeatureFlag(e){var s;return(s=this.app)==null?void 0:s.featureFlags.getFeatureFlag(e)}getAllFeatureFlags(){var e;return(e=this.app)==null?void 0:e.featureFlags.flags}use(e){return e(this.app,this.options)}isActive(){return this.app===null?!1:this.app.active()}trackWs(e){if(this.app!==null)return this.app.trackWs(e)}start(e){return this.browserEnvCheck()?this.app===null?Promise.reject("Browser doesn't support required api, or doNotTrack is active."):this.app.start(e):Promise.reject("Trying to start not in browser.")}browserEnvCheck(){return K?!0:(console.error(`OpenReplay: you are trying to start Tracker on a node.js environment. If you want to use OpenReplay with SSR, please, use componentDidMount or useEffect API for placing the \`tracker.start()\` line. Check documentation on ${Fe}${Qe}`),!1)}coldStart(e,s){if(this.browserEnvCheck()){if(this.app===null)return Promise.reject("Tracker not initialized");this.app.coldStart(e,s)}else return Promise.reject("Trying to start not in browser.")}startOfflineRecording(e,s){return this.browserEnvCheck()?this.app===null?Promise.reject("Tracker not initialized"):this.app.offlineRecording(e,s):Promise.reject("Trying to start not in browser.")}uploadOfflineRecording(){if(this.app!==null)return this.app.uploadOfflineRecording()}stop(){if(this.app!==null)return this.app.stop(),this.app.session.getSessionHash()}forceFlushBatch(){this.app!==null&&this.app.forceFlushBatch()}getSessionToken(){return this.app===null?null:this.app.getSessionToken()}getSessionInfo(){return this.app===null?null:this.app.session.getInfo()}getSessionID(){return this.app===null?null:this.app.getSessionID()}getTabId(){return this.app===null?null:this.app.getTabId()}getUxId(){return this.app===null?null:this.app.getUxtId()}sessionID(){return ie("'sessionID' method","'getSessionID' method","/"),this.getSessionID()}getSessionURL(e){if(this.app!==null)return this.app.getSessionURL(e)}setUserID(e){typeof e=="string"&&this.app!==null&&this.app.session.setUserID(e)}userID(e){ie("'userID' method","'setUserID' method","/"),this.setUserID(e)}setUserAnonymousID(e){typeof e=="string"&&this.app!==null&&this.app.send(Ci(e))}userAnonymousID(e){ie("'userAnonymousID' method","'setUserAnonymousID' method","/"),this.setUserAnonymousID(e)}setMetadata(e,s){typeof e=="string"&&typeof s=="string"&&this.app!==null&&this.app.session.setMetadata(e,s)}metadata(e,s){ie("'metadata' method","'setMetadata' method","/"),this.setMetadata(e,s)}event(e,s=null,n=!1){if(typeof e=="string"&&this.app!==null){if(n)return this.issue(e,s);try{s=JSON.stringify(s)}catch{return}this.app.send(xi(e,s))}}issue(e,s=null){if(typeof e=="string"&&this.app!==null){try{s=JSON.stringify(s)}catch{return}this.app.send(Mi(e,s))}}}const Po=["climats","telckel","biobio","weinpoint","vinigrandi"],Lo="OuhXJRleF6sROjsQZPWx1yqjrL6APeJxmHswqyOBWbgIqtXcht3MDadvI9DtOOoL";class zt{constructor(e){var s;this.baseURL="https://wineater-backend.vercel.app/",this.store=Po.find(n=>window.location.href.includes(n)),this.token=((s=window==null?void 0:window.wineaterData)==null?void 0:s.CLIENT_TOKEN)||Lo}async getStoreConfig(e){console.log(e);try{const s=await fetch(`${this.baseURL}stores/store`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.token}`},body:JSON.stringify({store:e})});if(!s.ok)throw new Error(`HTTP error! Status: ${s.status}`);return await s.json()}catch(s){throw console.error("Error fetching store configuration:",s),s}}async getWineRecommendations(e){console.log(window.location.href);try{const s=await fetch(`${this.baseURL}dish/recommendations`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.token}`},body:JSON.stringify({text:e,store:this.store?this.store.toString().charAt(0).toUpperCase()+this.store.slice(1):void 0})}),n=await s.json();if(!s.ok)throw new Error(`API call failed with status ${s.status}: ${n.message||"No additional error information"}`);return n}catch(s){throw console.error("Fetching wine recommendations failed:",s.message),new Error(`Error in getWineRecommendations: ${s.message}`)}}async getPossibleDishesWithMeta(e,s){try{const n=await fetch(`${this.baseURL}dish/possible_dishes`,{method:"POST",headers:{Authorization:`Bearer ${this.token}`,"Content-Type":"application/json"},body:JSON.stringify({title:e,description:s})}),i=await n.json();if(console.log(i),!n.ok)throw new Error(`API call failed with status ${n.status}: ${i.message||"No additional error information"}`);return i}catch(n){throw console.error("Error fetching possible dishes:",n),n}}}class Fo{constructor(){this.api=new zt,this.language="en",this.translations={fr:{welcomeMessage:"Sublimez votre expérience gastronomique. Il vous suffit de donner les détails de votre plat, et obtenez la recommandation de compagnon de vin idéale. Que voulez-vous manger?",noResultsFound:"Aucun résultat trouvé.",somethingWentWrong:"Désolé, quelque chose a mal tourné.",chatButton:"Accorder le vin au dîner",inputPlaceholder:"ex., Salade de thon",sendButton:"Accorder",price:"Prix",region:"Région",type:"Type",reason:"Suggestion",moreInfo:"Plus d'infos",winePairingIntro:"Pour ce vin, voici quelques suggestions de plats :",askForDinner:"Que voulez-vous manger ce soir?",clearChatButton:"Effacer le chat"},es:{welcomeMessage:"Mejore su experiencia gastronómica. Solo proporcione los detalles de su plato y obtenga la recomendación de vino ideal. ¿Qué le gustaría comer?",noResultsFound:"No se encontraron resultados.",somethingWentWrong:"Lo sentimos, algo salió mal.",chatButton:"Maridaje ideal",inputPlaceholder:"ej., Ensalada de atún",sendButton:"Maridar",price:"Precio",region:"Región",type:"Tipo",reason:"Sugerencia",moreInfo:"Más info",winePairingIntro:"Para este vino, aquí tienes algunas sugerencias de platos:",askForDinner:"¿Qué te gustaría cenar?",clearChatButton:"Limpiar el chat"},en:{welcomeMessage:"Enhance your dining experience. Just provide your dish details and get the ideal wine pairing. What would you like to eat?",noResultsFound:"No results found.",somethingWentWrong:"Sorry, something went wrong.",chatButton:"Pair wine with dinner",inputPlaceholder:"e.g., Tuna Salad",sendButton:"Pair",price:"Price",region:"Region",type:"Type",reason:"Suggestion",moreInfo:"More info",winePairingIntro:"For this wine, here are some suggested dishes:",askForDinner:"What would you like to have for dinner?",clearChatButton:"Clear Chat"},de:{welcomeMessage:"Verbessern Sie Ihr kulinarisches Erlebnis. Geben Sie einfach die Details Ihres Gerichts an und erhalten Sie die ideale Weinempfehlung. Was möchten Sie essen?",noResultsFound:"Keine Ergebnisse gefunden.",somethingWentWrong:"Entschuldigung, etwas ist schief gelaufen.",chatButton:"Wein zum Abendessen",inputPlaceholder:"z.B., Thunfischsalat",sendButton:"Kombinieren",price:"Preis",region:"Region",type:"Typ",reason:"Anregung",moreInfo:"Mehr Info",winePairingIntro:"Für diesen Wein gibt es folgende Essensvorschläge:",askForDinner:"Was möchten Sie zum Abendessen essen?",clearChatButton:"Chat löschen"}}}async fetchConfig(e="Demo"){try{const s=await this.api.getStoreConfig(e);this.language=s.lang}catch{this.language="en"}}translate(e){return this.translations[this.language][e]||e}}const V=new Fo,Bo=3;let Ze=null;function Wt(){const t=document.getElementById("chat-window"),e=document.getElementById("chat-icon");t.classList.contains("visible")?(Yt(),qt(),e.style.display="flex"):(Ze&&(clearTimeout(Ze),Ze=null),Jt(),t.classList.add("visible"),e.style.display="none")}function qt(){console.log("ghbdtn"),Yt(),document.getElementById("chat-window").classList.remove("visible");let e=parseInt(j("chatCloseCount"))||0;e+=1,e>=Bo?(console.log(e),Ce("disableAutoOpen","true",1),Dn("chatCloseCount")):(console.log(e),Ce("chatCloseCount",e,1))}function Uo(t){const e=document.getElementById("chat-window"),s=document.getElementById("message-container"),n=document.querySelector("#input-container input");s.innerHTML="",e.classList.add("visible");const i=document.createElement("div");i.className="message api",i.textContent=V.translate("winePairingIntro"),s.appendChild(i),t.slice(0,3).forEach(o=>{const l=document.createElement("div");l.className="message dish-message",l.textContent=o,l.addEventListener("click",()=>{n.value=o}),s.appendChild(l)});const r=document.createElement("div");r.className="message api",r.textContent=V.translate("askForDinner"),s.appendChild(r),s.scrollTop=s.scrollHeight}function Sn(t=null){t?An(t):Jt(),document.getElementById("chat-window").classList.add("visible")}document.addEventListener("DOMContentLoaded",()=>{setupCloseButton(),setupOutsideClick()});function Ho(t){Ze=t}class jo{constructor(){var s;this.api=new zt;const e=((s=window==null?void 0:window.wineaterData)==null?void 0:s.FIRST_MESSAGE_TEXT)||V.translate("welcomeMessage");this.displayFirstMessage(e)}initialize(){document.getElementById("send-button").addEventListener("click",()=>this.handleUserInput()),document.getElementById("user-input").addEventListener("keypress",n=>{n.key==="Enter"&&this.handleUserInput()})}displayFirstMessage(e,s="api"){const n=document.getElementById("message-container"),i=document.createElement("div");i.className=`message ${s}`,i.textContent=e,n.appendChild(i),n.scrollTop=n.scrollHeight}async handleUserInput(){const e=document.getElementById("user-input"),s=e.value.trim();if(s){this.displayMessage(s,"user"),e.value="",this.showTypingIndicator();try{Pn(s);const n=await this.api.getWineRecommendations(s);this.hideTypingIndicator(),n&&n.length?this.displayResults(n):this.displayMessage("No results found.","api")}catch{this.hideTypingIndicator(),this.displayMessage(V.translate("somethingWentWrong"),"api")}}}showTypingIndicator(){document.getElementById("typing-indicator").classList.add("visible")}hideTypingIndicator(){document.getElementById("typing-indicator").classList.remove("visible")}displayMessage(e,s){const n=document.getElementById("message-container"),i=document.createElement("div");i.textContent=e,i.className="message "+s,n.appendChild(i),n.scrollTop=n.scrollHeight}sendAnalytics(e){console.log(e),Fn(e)}displayResults(e){const s=document.getElementById("message-container");Ln(e.map(n=>n.Title)),e.forEach(n=>{const i=document.createElement("div");i.className="wine-item";const r=document.createElement("img");r.src=n.Image,i.appendChild(r);const o=document.createElement("div");o.innerHTML=`
302
302
  <strong>${n.Title}</strong><br>
303
303
  ${V.translate("price")}: ${n.Price}<br>
304
304
  ${V.translate("region")}: ${n.Region}<br>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wineater-bot",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "src/index.js",
@@ -51,7 +51,7 @@ function setUniqueUserCookie() {
51
51
 
52
52
  // Функция для отправки событий в Mixpanel
53
53
  function trackEvent(event, properties) {
54
- const endpoint = 'https://api.wineater.com/proxy/track';
54
+ const endpoint = 'https://wineater-backend.vercel.app/proxy/track';
55
55
  const data = {
56
56
  event,
57
57
  properties
package/src/js/api.js CHANGED
@@ -6,8 +6,8 @@ const DEMO_TOKEN='OuhXJRleF6sROjsQZPWx1yqjrL6APeJxmHswqyOBWbgIqtXcht3MDadvI9DtOO
6
6
  export class Api {
7
7
  constructor(apiEndpoint) {
8
8
  // Allow users of the library to specify their own endpoint if needed
9
- this.baseURL = 'https://api.wineater.com/';
10
- // this.baseURL = 'http://localhost:3000/'
9
+ // this.baseURL = 'https://api.wineater.com/';
10
+ this.baseURL = 'https://wineater-backend.vercel.app/';
11
11
  this.store = stores.find(value => window.location.href.includes(value));
12
12
  this.token = window?.wineaterData?.CLIENT_TOKEN || DEMO_TOKEN;
13
13
  }
package/src/js/styles.js CHANGED
@@ -186,7 +186,7 @@ const css = `
186
186
  .wine-item {
187
187
  display: flex;
188
188
  align-items: center;
189
- border: 1px solid #ddd;
189
+ border: 1px solid #7E27ED;
190
190
  border-radius: 8px;
191
191
  padding: 10px;
192
192
  margin-top: 10px;